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

Time Logs (Header)

Link to: source code | transactions directory

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

This class manages time tracking and time billing in the Goldenseal accounting software,
time tracking software, time billing software and job costing software.

class CTimeLog : public CExpenseTransaction
{
public:

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

CTimeLog();
virtual ~CTimeLog() {}

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

virtual NeoSize GetFileLength(const CNeoFormat *aFormat) const;

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

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

static CMoney CalculateTMBillingAmount(const DBClass logClass, const CMoney &billedUnits,
const DBid accountID, const UInt8 timeUnit, const DBid wageRateID,
const CMoney &baseAmount, const CMoney &extraAmount);

static CMoney CalculateJobCostAmount(const DBClass classID, const CMoney &billedUnits,
const DBid accountID, const UInt8 timeUnit, const DBid wageRateID,
const CMoney &baseAmount, const CMoney &extraAmount);

static CMoney FetchAccountRate(const TagType tag, const DBClass classID, const DBid accountID);

CMoney GetTimeUsed() const { return mTimeUsed; } // bugfix TCS 4/1/00
void SetTimeUsed(const CMoney inValue) { mTimeUsed = inValue; }

UInt8 GetTimeUnit() const { return mTimeUnit; }
void SetTimeUnit(const UInt8 inValue) { mTimeUnit = inValue; }

virtual void FinishImportCreate();

//virtual CMoney CalculateWageAmount(const CMoney &/*billedUnits*/, const DBid /*accountID*/,
// const UInt8 /*timeUnit*/, const DBid /*wageRateID*/,
// const UInt8 /*overtimeType*/ = 0, const CMoney &/*daysWorked*/ = 0) const { return 0; }

virtual CMoney GetJobCostAmount() const { return mJobCostAmount; }
virtual CMoney GetTandMAmount(const Boolean /*includeTax*/ = false,
const Boolean /*includeAdjustments*/ = false) const { return mAmount; }
virtual CMoney GetBilledAmount(const Boolean /*includeTax*/ = true) const { return mAmountBilled; }
virtual CMoney GetChangeTestAmount() const { return mJobCostAmount; }

virtual CMoney GetWagePerHour() const;
virtual CMoney GetWagePerUnit() const;
virtual CMoney GetJobCostPerHour() const;
virtual CMoney GetJobCostPerUnit() const;
virtual CMoney GetTandMPerHour() const;
virtual CMoney GetTandMPerUnit() const;

virtual UInt8 GetConditions() const { return mConditions; } // TCS 9/7/00 moved 9/29/02

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

//virtual CMoney GetCostAmount() const { return mAmount; }

protected:
CTextString mDetails; // TCS 1/30/03
// copied members
CMoney mTimeUsed,
mJobCostAmount;

UInt8 mTimeUnit, // moved TCS 1/12/00
mConditions; // moved TCS 9/29/02

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

cFileLength = cCopyFileLength + 0
};
};