Link to: source code | transactions
directory
Copyright Turtle Creek Software 1996-2006. All Rights Reserved.
This class manages material purchases for the Goldenseal accounting software,
small business management software, construction
project management software and
construction
accounting software.
class CMaterialPurchase : public CInventoryUsed
{
public:
static CLASS_DESC *sDescriptor;
static DB_PersistentObject *MakeNew() { return TCS_NEW CMaterialPurchase; }
CMaterialPurchase();
virtual ~CMaterialPurchase() {}
virtual void CopyFrom(DB_PersistentObject *source, const UInt8 copyFlags = 0);
virtual NeoSize GetFileLength(const CNeoFormat *aFormat) const;
virtual DBid GetDBClassID(void) const { return id_MaterialPurchase; }
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 PostRecordActivated(const UInt8 creationType);
virtual void PostRecordCancelled(const UInt8 cancelType);
virtual void PostNewVoidRecord(const UInt8 creationType);
virtual void PostVoidRecordDeleted();
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 PostRecordChangedRemotely(const CMoney &oldAmount,
const Boolean accountChanged,
const Boolean jobChanged);
virtual void PostVoidRecordChanged(const CMoney &oldAmount,
const Boolean accountChanged,
const Boolean jobChanged);
virtual UInt8 GetPaymentType() const { return mPaymentMethod; }
virtual DBid GetPaymentMethod() const { return mPaymentMethod; }
virtual void SetPaymentMethod(const UInt8 inMethod) { mPaymentMethod = inMethod; }
virtual CDate GetBillingDate() const { return mBillingDate; }
virtual void SetBillingDate(const CDate inDate) { mBillingDate = inDate; }
virtual CTextString GetBillNum() const { return mInvoiceNum; }
virtual UInt8 GetStarterStatus() const { return status_Entered; }
virtual CMoney GetChangeTestAmount() const { return mAmount; }
virtual Boolean ShouldBePaid() const;
virtual DBid GetTaxID() const { return mTaxRate; } // TCS 2/11/01
virtual DBid GetTaxClass() const { return id_VendorSalesTax; } // TCS 2/11/01
virtual CMoney GetSalesTaxAmount() const { return mTaxAmount; } // rev TCS 5/2/00
virtual void SetSalesTaxAmount(const CMoney &inMoney) { mTaxAmount = inMoney; } // TCS 4/25/01
virtual CMoney GetGrossAmount() const { return mGrossAmount; } // TCS 12/29/00
virtual Boolean HasBeenPartPaid() const
{ return mAmountPaid.IsPositive() && mAmount > mAmountPaid; }
virtual DBid GetDefaultExpenseAccount() const { return account_MaterialExpenses; }
virtual UInt8 GetConditions() const { return mConditions; }
virtual UInt8 GetStatus() const { return mStatus; } // TCS 4/23/01
virtual DBid GetPaymentDetails() const { return mPaymentTerms; }
virtual DBid GetPaymentTerm() const { return mPaymentTerms; }
virtual void SetPaymentTerm(const DBid inTerms) { mPaymentTerms = inTerms; }
virtual DBid GetPayablesAccount() const { return account_MaterialsPayable; }
virtual void PostVendorWithholding(const Boolean removeItem = false);
virtual void PostRetainage(const Boolean removeItem = false);
virtual CMoney GetJobCostAmount() const;
virtual void HandleTaxesPaid(const DBClass sourceClass, const DBid sourceID,
const Boolean removeItem = false);
virtual Boolean UseOneTimeName() const { return mUseOneTimeName; }
virtual void SetUseOneTimeName(const Boolean inValue) { mUseOneTimeName = inValue; }
virtual CTextString GetOneTimeName() const { return mOneTimeVendorName; }
virtual void SetOneTimeName(const CTextString inName) { mOneTimeVendorName = inName; }
virtual void HandlePaymentCancelled();
virtual void FinishNonViewerCreate();
virtual CMoney GetAmountUnpaid() const;
virtual CMoney GetAmountPaid() const { return mAmountPaid; }
virtual CMoney GetRetainageAmount() const { return mRetainageAmount; }
virtual void SetRetainageAmount(const CMoney &inAmount) { mRetainageAmount = inAmount; }
virtual DBid GetWithholdingRateID() const { return mWithholdingRate; }
virtual CMoney GetWithholdingAmount() const { return mWithholdingAmount; }
virtual CMoney GetWithholdingDeduction() const;
virtual CMoney GetAccountingAmount(const Boolean removeIt, const UInt8 type) const; // TCS 1/29/01
virtual CMoney GetAdjustedAmount() const { return mAmount + mAdjustmentAmount -
mWithholdingAmount - mRetainageAmount; } // TCS 10/9/02
virtual Boolean SkipUpdating() const { return mSkipUpdating; } // 11/1/01
virtual void FinishBreakdownUpdate(CBreakdownEntry *breakdown, CBreakdownTable *table);
virtual void HandleDateChanged();
virtual UInt8 GetTransDetails() const { return mPaymentMethod; } // TCS 10/20/00
virtual void FillDataReport(CTCS_Table *table, CNeoStream *stream) const;
protected:
// string data
CTextString mOneTimeVendorName, // TCS 8/17/00 moved 5/30/02
mInvoiceNum; // TCS 8/17/00
// Basic Data
DBid mPaymentTerms,
mWithholdingRate;
UInt8 mPaymentMethod; // moved TCS 9/29/02
// *** NEVER insert members before this bitfield!!!
UInt8 mUseOneTimeName:1, // TCS 8/17/00
mSkipUpdating:1, // TCS 11/1/01
mPurchasePadding:6; // TCS 10/21/99
CMoney mWithholdingAmount,
mRetainageAmount;
CDate mBillingDate;
DBid mCurrency; // VERSION 2- TCS 12/10/03
CMoney mForeignAmount;
// Calculated members
TagType mMatEndSafetyTag; // TCS 9/8/02
enum
{
cCopyFileLength = 2*sizeof(DBid) +
2*sizeof(UInt8) +
2*sizeof(CMoney) +
sizeof(CDate),
cCopyFileLength2 = cCopyFileLength +
sizeof(DBid) +
sizeof(CMoney),
cParentFileLength = cCopyFileLength,
cParentFileLength2 = cCopyFileLength2,
cFileLength = cCopyFileLength +
sizeof(TagType),
cFileLength2 = cCopyFileLength2 +
sizeof(TagType)
};
}; |