Link to: source code | unit
cost directory
Copyright Turtle Creek Software 1996-2006. All Rights Reserved.
This class manages summation calculators in the Goldenseal accounting software,
estimating software, project
management software
and construction
accounting software.
class CCalcSummation : public DB_ArrayOwner<SSummationInfo>
{
public: enum
{
col_type = 1,
col_item = 2,
col_subtotal = 3
};
class CCalcSummations_Desc : public CLASS_DESC
{
public:
CCalcSummations_Desc()
: CLASS_DESC(id_CalcSummation, id_DescribedPersistent, CCalcSummation::MakeNew) {}
virtual ~CCalcSummations_Desc() {}
virtual Boolean GetTableColInfo(const TagType tag, const TableIndexT col,
STableColInfo *colInfo);
virtual SInt32 GetNumTableCols(const TagType /*tableTag*/) { return 3; }
};
static CLASS_DESC *sDescriptor;
static DB_PersistentObject *MakeNew() { return TCS_NEW CCalcSummation; }
CCalcSummation();
virtual ~CCalcSummation() {}
virtual DBid GetDBClassID(void) const { return id_CalcSummation; }
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 NeoTag aTag);
virtual void WriteObject(CNeoStream *aStream, const NeoTag aTag);
virtual Boolean GetEntryFromRow(const CTCS_Table &aTable,
const TableIndexT row,
SSummationInfo *outInfo);
virtual Boolean FillRowFromEntry(CTCS_Table *aTable, const TableIndexT row,
const SSummationInfo &inInfo);
virtual CTextString ExportColumnCString(const TableIndexT col,
const SSummationInfo &outInfo);
virtual Boolean ImportColumnCString(const TableIndexT col,
const CTextString &inString, SSummationInfo *inInfo);
virtual Boolean IsDirty() const { return true; }
virtual Boolean IsNumber() const { return true; }
virtual Boolean IsSimpleNumber() const { return true; }
virtual Boolean IsMathable() const { return true; } // TCS 9/7/99
virtual CTextString GetDisplayCString(const FormatType format = 0, const Boolean alwaysUpdate = false);
virtual CTextString GetStarterCString(const FormatType format) const;
virtual CMoney GetCalculatorMoney();
virtual SInt32 GetCalculatorInteger();
virtual void UpdateCalculatorValue(SInt32 &runLimit, const FormatType format, const Boolean alwaysUpdate = false);
virtual CMoney GetSummation(SInt32 &runLimit) const;
virtual Boolean DependsOnCalc(const UInt8 inClassID, const DBid inItemID,
Boolean deeply = true) const;
virtual CMoney CalculateDeduction(const CMoney &baseAmount, CEmployeeAccount *employee);
virtual UInt8 GetFieldType() const { return fieldtype_money; }
virtual UInt8 GetStatusForMenuArray() const { return calc_sum; } // 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:
// outside member
// copied members
CMoney mCurrentValue;
// calculated members rev TCS 12/19/00
// *** NEVER insert members before this bitfield!!!
UInt8 mCalcDirty:1,
mDisplayDirty:1,
filler:6;
UInt8 mPadding; // rev TCS 9/7/02
TagType mEndSafetyTag; // rev TCS 9/7/02
enum
{
cCopyFileLength = sizeof(CMoney),
cFileLength = cCopyFileLength +
2*sizeof(UInt8) + // bugfix TCS 9/27/02
sizeof(TagType)
};
}; |