Link to: source code | unit
cost directory
Copyright Turtle Creek Software 1996-2006. All Rights Reserved.
This class manages cost items in the Goldenseal accounting software,
estimating software, unit
cost software, job costing software and construction
estimating software.
class CCostItem : public CUnitCost
{
public:
static CLASS_DESC *sDescriptor;
static DB_PersistentObject *MakeNew() { return TCS_NEW CCostItem; }
CCostItem();
virtual ~CCostItem() {}
virtual DBid GetDBClassID(void) const { return id_CostItem; }
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 void HandleReplaceAll(const TMemberArray &memberArray);
virtual DBid GetPurchaseCategoryID() const;
virtual Boolean AddToPurchaseArray(const DBClass inClass, const DBid inID,
const UInt8 transType, const Boolean removeIt = false)
{ return AddToObjectInfoArray(mPurchaseArray, inClass, inID, transType, removeIt); } // rev TCS 1/5/01 bugfix TCS 1/25/03 bugfix
TCS 4/7/04
virtual void UpdateFromNewPrice(const Boolean alwaysUpdate,
CCostItemBreakdownEntry *breakdown = nil,
const Boolean removeItem = false);
CMoney CalculatePurchasePrice(const UInt8 calcMethod, const DBid supplier,
const CMoney &startingPrice, const CDate cutoffDate,
CCostItemBreakdownEntry *breakdown = nil,
const Boolean removeItem = false);
virtual CMoney GetDateRangePurchases(const CDate startDate, const CDate endDate) const;
virtual CMoney GetDateRangeProjectUse(const CDate startDate, const CDate endDate) const;
TObjectIDArray GetDependentAssemblyArray() const;
DBClass GetPurchaseClass() const;
virtual SInt32 GetPurchaseCount() const { return mPurchaseArray.GetCount(); }
virtual SInt16 GetLeadTime() const { return mLeadTime; }
virtual void HandleItemsManufactured(const CMoney &changeAmount, const DBid account,
const Boolean isComponent, const Boolean removeItem);
virtual CMoney GetLaborHours() const;
virtual CMoney CalcLaborHours(const CMoney &quantity) const;
virtual CMoney GetSupplierPrice(const DBid supplierID) const;
virtual UInt8 GetCostArea() const { return mCostArea; }
virtual Boolean FillMemberFromAnother(DB_PersistentObject *source,
const TagType memberTag,
const MemberType memberType);
virtual void FillDataReport(CTCS_Table *table, CNeoStream *stream) const;
virtual void SetEndSafetyTag() { mEndSafetyTag = tag_endsafetytag; }
protected:
// array members
TObjectInfoArray mPurchaseArray; // TCS 11/1/99 renamed & resized 1/5/01
// string members
CTextString mSupplierCode, // code number for match to supplier price import TCS 9/13/00
mSupplier2Code,
mSupplier3Code;
// version 5 additional strings TCS 5/19/04
CTextString mProductName,
mProductName2,
mProductName3;
// copied members
DBid mSupplier;
SInt16 mLeadTime,
mOrderAmount,
mUpdateInterval;
UInt8 mCostArea,
mCalcMethod,
mUpdateUnit,
mCostItemPadding;
// version 2 additions TCS 3/5/04
DBid mSupplier2,
mSupplier3,
mPurchaseCategory; // TCS 3/17/04
CMoney mSupplierPrice,
mSupplier2Price,
mSupplier3Price;
// non-copied member
TagType mEndSafetyTag; // TCS 9/6/02
enum
{
cCopyFileLength = sizeof(DBid) +
3*sizeof(SInt16) +
4*sizeof(UInt8),
cCopyFileLength2 = cCopyFileLength +
3*sizeof(DBid) +
3*sizeof(CMoney),
cFileLength = cCopyFileLength +
sizeof(TagType),
cFileLength2 = cCopyFileLength2 +
sizeof(TagType)
};
}; |