Link to: source code | transactions
directory
Copyright Turtle Creek Software 1996-2006. All Rights Reserved.
This class manages purchase orders in the Goldenseal accounting software,
estimating software, project
management software
and construction
accounting software.
class CPurchaseWorkOrder : public CJobCostTransaction
{
public:
static CLASS_DESC *sDescriptor;
static DB_PersistentObject *MakeNew() { return TCS_NEW CPurchaseWorkOrder; }
CPurchaseWorkOrder();
virtual ~CPurchaseWorkOrder() {}
virtual void CopyFrom(DB_PersistentObject *source, const UInt8 copyFlags = 0);
virtual NeoSize GetFileLength(const CNeoFormat *aFormat) const;
virtual DBid GetDBClassID(void) const { return id_PurchaseWorkOrder; }
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 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 PostRecordChanged(const CMoney &oldAmount,
const Boolean accountChanged,
const Boolean jobChanged);
virtual void UpdateEstimate(const Boolean removeItem = false);
virtual void FinishNonViewerCreate();
virtual DBid GetPaymentTerm() const { return mPaymentTerm; }
virtual void HandleExpenseTrans(const CMoney &amount, const CMoney &taxAmount,
const UInt8 classID, const DBid costID,
const Boolean removeIt = false);
virtual Boolean AddToExpenseArray(const UInt8 inClass, const DBid inID, const UInt8 transType,
const Boolean removeIt = false) // bugfix TCS 1/25/03
{ return AddToObjectInfoArray(mExpenseArray, inClass, inID, transType, removeIt); }
virtual UInt8 ExpenseIsAcceptable(CMoney &inAmount, const DBClass inClass, const DBid inID);
virtual UInt8 GetConditions() const { return mConditions; } // TCS 9/7/00
virtual UInt8 GetStatus() const { return mStatus; } // TCS 4/23/01
virtual DBid GetTaxID() const { return mTaxRate; } // TCS 10/25/00
virtual DBid GetTaxClass() const { return id_VendorSalesTax; } // TCS 2/11/01
virtual CMoney GetSalesTaxAmount() const { return mTaxAmount; } // TCS 10/27/00
virtual void SetSalesTaxAmount(const CMoney &inMoney) { mTaxAmount = inMoney; } // TCS 4/25/01
virtual CMoney GetGrossAmount() const { return mGrossAmount; } // TCS 10/27/00
virtual CMoney GetNetPrice() const { return mAmount; }
virtual CMoney GetAmountPending() const { return mGrossAmount - mCostsToDate; } // TCS 10/31/00
virtual Boolean PaysOnAccount() const { return false; } // TCS 11/1/00
virtual CMoney GetLaborHours() const { return mLaborHours; } // TCS 5/16/02
virtual CMoney GetCrewSize() const { return mCrewSize; } // TCS 5/16/02
virtual UInt8 GetMenuJobClass() const;
virtual DBid GetMenuJobID() const;
virtual void HandleEstimateUse(const DBid estimateID, const Boolean removeIt = false);
virtual DBid SetAwardedStatus(const UInt8 jobClass, const DBid jobID,
const Boolean removeItem = false, const DBid estimateID = 0);
virtual CMoney FetchComponentCosts(SAssemblyUpdateInfo &info, const CMoney &inQuantity);
// we don't need a job to be entered TCS 6/10/03
virtual Boolean NeedsJobAccountValue() const { return false; }
virtual void FillDataReport(CTCS_Table *table, CNeoStream *stream) const;
virtual void SetEndSafetyTag() { mEndSafetyTag = tag_endsafetytag; }
protected:
// array members
TObjectInfoArray mExpenseArray; // TCS 1/18/00
// copied members
DBid mPaymentTerm,
mTaxRate;
CMoney mGrossAmount,
mTaxAmount,
mLaborHours, // TCS 5/16/02
mCrewSize;
UInt8 mStatus,
mConditions; // TCS 7/14/00
// calculated members
CMoney mCostsToDate, // TCS 1/18/00
mSalesTaxToDate; // TCS 10/31/00
DBid mEstimate; // TCS 2/14/00
// if we ever add members, also add a picture field, currency amount and ID
TagType mEndSafetyTag; // TCS 9/8/02
enum
{
cCopyFileLength = 2*sizeof(DBid) +
4*sizeof(CMoney) +
2*sizeof(UInt8),
cFileLength = cCopyFileLength +
2*sizeof(CMoney) +
sizeof(DBid) +
sizeof(TagType)
};
}; |