Accounting Software
Small Business Software Estimating Software
Inventory SoftwareInventory Tracking SoftwareInventory Control SoftwareInventory Management SoftwareConstruction Management SoftwareProject Management SoftwareBusiness Management Software

Equipment Hours (Header)

Link to: source code | transactions directory

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

This class manages equipment hours for the Goldenseal accounting software,
time tracking software, construction project management software and
construction accounting software.

class CEquipmentLog : public CTimeLog
{
public:

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

CEquipmentLog();
virtual ~CEquipmentLog() {}

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

virtual NeoSize GetFileLength(const CNeoFormat *aFormat) const;

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

virtual Boolean GetMemberValue(const TagType aTag, const TagType aType,
void *aValue) const;
virtual Boolean SetMemberValue(const TagType aTag, const TagType aType,
const void *aValue);

virtual void ReadObject(CNeoStream *aStream, const TagType aTag);
virtual void WriteObject(CNeoStream *aStream, const TagType aTag);

//virtual Boolean IsValidBreakdown(const UInt8 breakdownType);
virtual void FinishViewerCreate();
virtual void FinishNonViewerCreate();
virtual void FinishTemplateCreate();
virtual void FinishImportCreate();

virtual void PostNewRecord(const UInt8 creationType);
virtual void PostDeletion(const Boolean postAudit);

virtual void PostRecordActivated(const UInt8 creationType);
virtual void PostRecordCancelled(const UInt8 cancelType);

virtual void PostRecordChanging(const Boolean accountChanging,
const Boolean jobChanging);
virtual void PostVoidRecordChanging(const Boolean accountChanging,
const Boolean jobChanging, const UInt8 startStatus,
const UInt8 finalStatus);
virtual void PostRecordChanged(const CMoney &oldAmount, const Boolean accountChanged,
const Boolean jobChanged);
virtual void PostVoidRecordChanged(const CMoney &oldAmount, const Boolean accountChanged,
const Boolean jobChanged);
virtual void PostRecordVoided(const Boolean accountChanged, const Boolean jobChanged,
const UInt8 startStatus, const UInt8 finalStatus);

virtual void PostEquipmentIncome(const CMoney &changeAmount, const Boolean removeItem = false);

// there are no payables for equipment
virtual void PostPayablesAccount(const Boolean /*removeItem*/ = false) {}

virtual DBid GetDefaultExpenseAccount() const { return account_EquipmentExpenses; }

virtual void HandleTandMBilling(const DBid billID, const Boolean removeItem);

virtual void HandlePaymentMade(const CMoney &inAmount, const UInt8 sourceClass,
const DBid sourceID, const UInt8 transactionType,
const Boolean removeItem = false);

virtual CMoney GetAmountPaid() const { return GetAmount(); } // TCS 5/18/00

virtual void FinishBreakdownUpdate(CBreakdownEntry *breakdown, CBreakdownTable *table);

virtual UInt8 GetStatus() const { return mStatus; } // TCS 4/23/01

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

virtual void SetEndSafetyTag() { mEndSafetyTag = tag_endsafetytag; }

protected:
// copied members
UInt8 mStatus,
mSpareByte;

DBid mEmployee,
mTMBillingRate, // TCS moved 9/29/02
mJobCostRate;

//mAmount is the billing amount

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

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

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