Accounting Software
Small Business Software Estimating Software
Unit Cost SoftwareConstruction Estimating SoftwareProject Estimating SoftwareCost Estimation SoftwareCost Estimating SoftwareConstruction Management SoftwareBusiness Management Software

Estimating Dimensions (Header)

Link to: source code | unit cost directory

Copyright Turtle Creek Software 1996-2006. All Rights Reserved.

This class manages estimating dimensions in the Goldenseal accounting software,
estimating software, unit cost software, job costing software and construction estimating software.

class CDimension : public DB_DescribedPersistent
{
public:

static CLASS_DESC *sDescriptor;
static DB_PersistentObject *MakeNew() { return TCS_NEW CDimension; }
static CMoney GetSuggestedAmount(const TagType tag);
static UInt8 GetFieldTypeForDimension(const DBClass classID, const DBid itemID);
static UInt8 GetFieldTypeForTag(const TagType tag);

CDimension();
virtual ~CDimension() {}

virtual DBid GetDBClassID(void) const { return id_Dimension; }

virtual void CopyFrom(DB_PersistentObject *source, const UInt8 copyFlags = 0);

virtual NeoSize GetFileLength(const CNeoFormat *aFormat) const;

virtual Boolean GetMemberValue(const NeoTag aTag, const NeoTag aType,
void *aValue) const;
virtual Boolean SetMemberValue(const NeoTag aTag, const NeoTag aType,
const void *aValue);
virtual void ReadObject(CNeoStream *aStream, const TagType aTag);
virtual void WriteObject(CNeoStream *aStream, const TagType aTag);

virtual void PostNewRecord(const UInt8 creationType);
virtual void PostDeletion(const Boolean postAudit);
virtual void PostRecordChanging(const Boolean accountChanging,
const Boolean jobChanging);
virtual void PostRecordChanged(const CMoney &oldAmount,
const Boolean accountChanged,
const Boolean jobChanged);

virtual CMoney GetSuggestedAmount() const;
virtual CMoney GetValue() const { return mSuggestAmount; }
virtual UInt8 GetDimensionType() const { return mDimensionType; }

virtual Boolean UseInLocations() const { return false; }

virtual UInt8 GetFieldType() const { return mDimensionType - 100; }

virtual void FillMenuHandle(TCS_MenuHandle menuH);

virtual CMoney GetCalcDimensionValue(TDimensionArray &dimensionArray,
TDimensionArray &locDimensionArray);
virtual CMoney GetCalcLocationValue(TDimensionArray &dimensionArray,
TDimensionArray &locDimensionArray,
const SInt32 locationID = 0);
virtual void UpdateDependentDimensions(TDimensionArray &dimensionArray,
TDimensionArray &locDimensionArray);
virtual void UpdateDependentLocations(TDimensionArray &dimensionArray,
TDimensionArray &locDimensionArray,
const SInt32 locationID);

virtual Boolean IsCalcDirty() const { return mCalcDirty; } // TCS 6/7/01
virtual void SetCalcDirty(const Boolean inValue) { mCalcDirty = inValue; }

virtual Boolean IsLocationDimension() const { return false; }
virtual Boolean AllowNegatives() const { return mAllowNegatives; }

virtual void SetLayoutID(const DBid inID) { mLayoutID = inID; }

virtual Boolean CanBeDeleted(const Boolean giveMessage = true) const;

virtual Boolean AddToDependentArray(const DBClass inClass, const DBid inID, const Boolean removeIt = false)
{ return AddToObjectInfoArray(mDependentArray, inClass, inID, 0, removeIt); }

virtual void FillUseReport(CTextOutputStream &stream, CEstimate *estimate,
const UInt8 level, SInt32 &counter);
virtual void FillCalculationReport(CTextOutputStream &stream, CEstimate *estimate,
const UInt8 level, SInt32 &counter,
const UInt8 calcType = 0);
virtual void FillDataReport(CTCS_Table *table, CNeoStream *stream) const;

virtual SInt32 GetDependentCount() const { return mDependentArray.GetCount(); }

virtual void SetEndSafetyTag() { mEndSafetyTag = tag_endsafetytag; }

protected:
TObjectInfoArray mDependentArray;
// string member
CTextString mChoiceList; // for popup of choices moved TCS 6/21/01
CMoney mSuggestAmount;

DBid mExpansionLong; // TCS 9/9/02
UInt16 mExpansionShort;

UInt8 mDimensionType;
// *** NEVER insert members before this bitfield!!!
UInt8 mCalcDirty:1, // TCS 6/7/01
mAllowNegatives:1, // TCS 3/25/02
mSpareByte:6;

DBid mUnitSize,
mLayoutID; // TCS 8/29/02

CMoney mExpansionMoney;

// calculated members
TagType mEndSafetyTag; // TCS 9/8/02

enum
{
cCopyFileLength = 2*sizeof(CMoney) +
2*sizeof(UInt8) +
2*sizeof(DBid) +
sizeof(CMoney),

cFileLength = cCopyFileLength +
sizeof(TagType)
};
};