Link to: source code | transactions
directory
Copyright Turtle Creek Software 1996-2006. All Rights Reserved.
This class manages subcontractor time tracking and time billing in the Goldenseal accounting software,
time tracking software, time
billing software and job costing software.
class CSubcontractorLog : public CTimeLog
{
public:
static CLASS_DESC *sDescriptor;
static DB_PersistentObject *MakeNew() { return TCS_NEW CSubcontractorLog; }
CSubcontractorLog();
virtual ~CSubcontractorLog() {}
virtual void CopyFrom(DB_PersistentObject *source, const UInt8 copyFlags = 0);
virtual NeoSize GetFileLength(const CNeoFormat *aFormat) const;
virtual DBid GetDBClassID(void) const { return id_SubcontractorLog; }
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 CTextString GetBillNum() const { return mInvoiceNum; }
virtual CMoney GetAmountPaid() const { return mAmountPaid; }
virtual Boolean ShouldBePaid() const;
virtual UInt8 GetPaymentType() const { return mPaymentMethod; }
virtual DBid GetPaymentMethod() const { return mPaymentMethod; }
virtual void SetPaymentMethod(const UInt8 inMethod) { mPaymentMethod = inMethod; }
virtual CMoney GetAmountUnpaid() const;
virtual CMoney GetAmountPending() const { return GetAmountUnpaid(); }
virtual void FinishNonViewerCreate();
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 PostRecordChanged(const CMoney &oldAmount,
const Boolean accountChanged,
const Boolean jobChanged);
virtual void PostRecordChangedRemotely(const CMoney &oldAmount,
const Boolean accountChanged,
const Boolean jobChanged);
virtual void HandlePaymentCancelled();
virtual void PostVendorWithholding(const Boolean removeItem = false);
virtual void PostRetainage(const Boolean removeItem = false);
virtual void HandleTaxesPaid(const DBClass sourceClass, const DBid sourceID,
const Boolean removeItem = false);
virtual DBid GetTaxID() const { return mTaxRate; }
virtual DBid GetTaxClass() const { return id_VendorSalesTax; }
virtual CMoney GetSalesTaxAmount() const { return mTaxAmount; }
virtual void SetSalesTaxAmount(const CMoney &inMoney) { mTaxAmount = inMoney; } // TCS 4/25/01
virtual CMoney GetRetainageAmount() const { return mRetainageAmount; }
virtual void SetRetainageAmount(const CMoney &inAmount) { mRetainageAmount = inAmount; }
virtual CMoney GetAdjustedAmount() const { return mAmount + mAdjustmentAmount -
mWithholdingAmount - mRetainageAmount; } // TCS 10/9/02
/*virtual void PostChangedPurchase(const UInt8 jobClass, const DBid jobID,
const UInt8 vendorClass, const DBid vendorID,
const CMoney &amount);*/
virtual CMoney CalculateWageAmount(const CMoney &billedUnits, const DBid accountID,
const UInt8 timeUnit, const DBid wageRateID) const;
virtual CMoney GetTandMAmount(const Boolean /*includeTax*/ = false,
const Boolean /*includeAdjustments*/ = false) const { return mBillingAmount; }
virtual CMoney GetGrossAmount() const { return mGrossAmount; } // TCS 12/29/00
virtual CMoney GetSalesTaxPercent() const;
virtual DBid GetDefaultExpenseAccount() const { return account_SubcontractorExpenses; }
virtual CDate GetBillingDate() const { return mBillingDate; } // TCS 1/1/01
virtual void SetBillingDate(const CDate inDate) { mBillingDate = inDate; }
virtual DBid GetPaymentTerm() const { return mPaymentTerm; }
virtual void SetPaymentTerm(const DBid inTerm) { mPaymentTerm = inTerm; }
virtual DBid GetPaymentDetails() const { return mPaymentTerm; }
virtual DBid GetPayablesAccount() const { return account_SubsPayable; }
virtual UInt8 GetTransDetails() const { return mPaymentMethod; } // TCS 9/6/01
virtual UInt8 GetStatus() const { return mStatus; } // TCS 4/23/01
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;
virtual void FinishBreakdownUpdate(CBreakdownEntry *breakdown, CBreakdownTable *table);
virtual void FillDataReport(CTCS_Table *table, CNeoStream *stream) const;
virtual void SetEndSafetyTag() { mEndSafetyTag = tag_endsafetytag; }
protected:
// outside members
CTextString mInvoiceNum;
// compied members
DBid mPaymentTerm,
mTaxRate,
mChargeRate, // the billing rate used for pmt to sub
mWithholdingRate, // TCS 7/24/02
mTMBillingRate, // TCS moved 9/29/02
mJobCostRate;
CDate mBillingDate;
CMoney mBillingAmount,
mGrossAmount,
mTaxAmount, // TCS 1/13/00
mWithholdingAmount,
mRetainageAmount; // TCS 9/25/02
UInt8 mStatus,
mPaymentMethod;
// calculated members
TagType mEndSafetyTag; // TCS 9/8/02
enum
{
cCopyFileLength = 6*sizeof(DBid) +
sizeof(CDate) +
5*sizeof(CMoney) +
2*sizeof(UInt8),
cFileLength = cCopyFileLength +
sizeof(TagType)
};
}; |