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

Job Cost Transactions (Header)

Link to: source code | transactions directory

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

This class manages job cost transactions in the Goldenseal construction accounting software,
job costing software, and project management software.

Header file for transactions that handle job costing and expense tracking. Data for Goldenseal
job cost software.

class CJobCostTransaction : public CBreakdownTransaction
{
public:

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

CJobCostTransaction();
virtual ~CJobCostTransaction() {}

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

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

virtual NeoSize GetFileLength(const CNeoFormat *aFormat) const;

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 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 CMoney GetNetPrice() const { return mAmount; }

virtual CTextString GetName() const { return mName; }
virtual CTextString GetCustomerName() const;

virtual void SetName(const CTextString inName)
{
TCS_ASSERTMsg(!IsInDatabase(), TCS_GetErrString(errID_BadDatabaseChange));
mName = inName;
}

virtual DBid GetJobID() const { return mJob; } // moved TCS 7/19/99
virtual void SetJob(const DBid inValue) { mJob = inValue; }
virtual DBClass GetJobClass() const { return mJobClass; }
virtual void SetJobClass(const UInt8 inValue) { mJobClass = inValue; }

virtual DBid GetLocation() const { return mLocation; }
virtual DBid GetCategory() const { return mCategory; }
virtual void SetCategory(const DBid inValue) { mCategory = inValue; } // TCS 5/8/01
virtual DBid GetSubcategory() const { return mSubcat; }
virtual Boolean IsCostTransaction() const { return true; }

virtual Boolean UsesJobCosts() const { return true; }

virtual CTextString GetJobName();
virtual Boolean NeedsJobAccountValue() const;

virtual DBid GetCompanyDivision() const;

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

protected:
// Outside Strings
CTextString mName;

// copied data members
DBid mJob,
mLocation,
mCategory,
mSubcat;

UInt8 mJobClass, // class ID of job
mJobCostPadding; // TCS 3/27/02

// calculated data members - none right now
enum
{
cCopyFileLength = 4*sizeof(DBid) +
2*sizeof(UInt8),

cFileLength = cCopyFileLength + 0
};
};