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

Utility Account Calculators (Header)

Link to: source code | unit cost directory

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

This class manages calculated utility account quantities in the Goldenseal accounting software,
estimating software, project management software and construction accounting software.

class CCalcUtilityAccounts : public DB_DescribedPersistent
{
public:

static CLASS_DESC *sDescriptor;
static DB_PersistentObject *MakeNew() { return TCS_NEW CCalcUtilityAccounts; }

CCalcUtilityAccounts();
virtual ~CCalcUtilityAccounts() {}

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

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);

static CMoney GetCalculation(const DBid accountID, const UInt8 calcType,
const UInt8 rounding, const UInt8 timeRange);

// utility account calculators are always numbers TCS rev 4/29/04
virtual Boolean IsNumber() const { return true; }
virtual Boolean IsSimpleNumber() const { return true; }
virtual Boolean IsMathable() const { return true; }

virtual CTextString GetDisplayCString(const FormatType format = 0, const Boolean alwaysUpdate = false);
virtual CTextString GetStarterCString(const FormatType format) const;

virtual void UpdateCalculatorValue(SInt32 &runLimit, const FormatType format,
const Boolean alwaysUpdate = false);
virtual CMoney GetCalculatorMoney();

virtual UInt8 GetStatusForMenuArray() const { return mCalculationType; } // TCS 12/13/00

virtual Boolean IsDisplayDirty() const { return mDisplayDirty; }
virtual Boolean SetDisplayDirty(const UInt8 source);

virtual void SetCalcDirty(const Boolean inValue = true) { mCalcDirty = inValue; }
virtual Boolean IsCalcDirty() const { return mCalcDirty; }

virtual void FillDataReport(CTCS_Table *table, CNeoStream *stream) const;

virtual void SetEndSafetyTag() { mEndSafetyTag = tag_endsafetytag; }

protected:

// copied members
CMoney mCurrentValue;

DBid mAccount;

UInt8 mCalculationType,
mRoundingType,
mTimeRange,
mPadding; // TCS added padding 3/27/02

// calculated members
// *** NEVER insert members before this bitfield!!!
UInt8 mCalcDirty:1,
mDisplayDirty:1,
filler:6;
UInt8 mMorePadding;

CMoney mExpansionMoney;

TagType mEndSafetyTag; // TCS 9/8/02

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

cFileLength = cCopyFileLength +
2*sizeof (UInt8) +
sizeof(TagType)
};
};