Link to: source 1 | source 2 | source
3 | transactions
directory
Copyright Turtle Creek Software 1996-2006. All Rights Reserved.
This class manages breakdown transactions for the Goldenseal accounting software,
small business management software, construction
project management software and
construction
accounting software.
class CBreakdownTransaction : public CTransaction,
public CBreakdownArrayOwner
{
public:
enum
{
cPaymentMade = 1,
cPaymentReceived = 2,
cDeposited = 3
};
static CLASS_DESC *sDescriptor;
static DB_PersistentObject *MakeNew() { return TCS_NEW CBreakdownTransaction; }
CBreakdownTransaction();
virtual ~CBreakdownTransaction() {}
static Boolean IsValidBreakdownClass(const DBid inClassID);
static Boolean UsesBreakdown(const DBid classID, const DBid breakdownType,
const Boolean inPrintForm = false);
virtual void CopyFrom(DB_PersistentObject *source, const UInt8 copyFlags = 0);
virtual NeoSize GetFileLength(const CNeoFormat *aFormat) const;
virtual DBid GetDBClassID(void) const { return id_BreakdownTransaction; }
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 FillMemberFromAnother(DB_PersistentObject *source,
const TagType memberTag,
const MemberType memberType);
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 PostBreakdownChanging();
virtual void PostBreakdownsActivated(const TObjectIDArray &array,
const DBClass breakdownClassID,
const UInt8 creationType);
virtual void PostBreakdownsCancelled(const TObjectIDArray &array,
const DBClass breakdownClassID,
const UInt8 cancelType);
virtual void PostBreakdownsChanging(const TObjectIDArray &array,
const DBClass breakdownClassID,
const Boolean accountChanging = false,
const Boolean jobChanging = false);
virtual void PostBreakdownsChanged(const TObjectIDArray &array,
const DBClass breakdownClassID,
const CMoney &oldAmount,
const Boolean accountChanged = false,
const Boolean jobChanged = false);
virtual void HandlePaymentMade(const CMoney &inAmount, const UInt8 sourceClass,
const DBid sourceID, const UInt8 transactionType,
const Boolean removeItem = false);
virtual void HandlePaymentReceived(const CMoney &inAmount, const UInt8 sourceClass,
const DBid sourceID, const UInt8 transactionType,
const Boolean removeItem = false,
const Boolean fromDeposit = false,
const Boolean fromBillRecord = false);
virtual void HandleDeposit(const CMoney &amount, const UInt8 sourceClass,
const DBid sourceID, const Boolean removeItem = false,
const Boolean fromBillRecord = false);
virtual UInt8 GetBreakdownType() const { return mBreakdownType; }
virtual void SetBreakdownType(const UInt8 inType) { mBreakdownType = inType; }
virtual DBid GetBreakdownClassID() const { return mBreakdownClassID; }
virtual Boolean HasBreakdowns() const { return mBreakdownArray.GetCount() > 0; } // bugfix TCS 1/3/03
virtual Boolean UsesBreakdowns() const { return true; }
virtual Boolean UsesAmounts() const { return true; }
virtual Boolean CanCopyBreakdowns(const UInt8 type) const;
virtual CMoney GetTaxPercent() const;
virtual CTextString GetTaxName() const;
virtual CTextString GetWithholdingName() const;
virtual CMoney GetAmount() const { return mAmount; }
virtual void SetAmount(const CMoney &amount) { mAmount = amount; }
virtual CMoney GetAdjustedAmount() const { return mAmount; } // TCS 5/25/00
virtual Boolean IsNegative() const { return mAmount.IsNegative(); }
virtual void FillCostItemInfo(TJobCostItemArray &itemArray, const UInt8 costType,
const DBid accountID) const;
virtual CMoney GetPaymentReceiptAmount() const;
virtual void SetPaidStatus(const UInt8 inStatus); // TCS 12/18/99
virtual Boolean RemoveFromDatabase(const UInt32 clientID = cServerID);
virtual SInt32 ImportMember(const TagType tag,
const CTextString &inString);
virtual void FinishBreakdownImport(DB_PersistentObject *breakdown);
virtual void ClearAmounts();
virtual Boolean CopySelectedBreakdowns(CBreakdownTransaction */*source*/) { return false; }
virtual Boolean IsValidBreakdown(const UInt8 breakdownType);
virtual void FillCategoryArray(TJobCostCategoryArray &catArray,
const UInt8 breakdownType,
const DBid matchCategory,
const UInt8 restrictions = 0);
virtual void FillCompareArray(TJobCostCompareArray &compareArray, const DBid reportID);
virtual void FillProgressArray(TJobCostProgressArray &catArray,
const UInt8 breakdownType) const;
virtual void FillCatSubcatArray(const DBid reportID, TTwoLevelArray *twoLevelArray,
const Boolean hideSoftCosts, CMoney &softCostAmount,
CMoney &hardCostAmount) const;
virtual void FillCatItemArray(const DBid reportID, TReportGroupArray *catArray) const;
virtual void FillBreakdownsFromVendorStruct(SVendorInfo &/*vendorInfo*/, const UInt8 /*filterType*/) {}
virtual void HandleOverpayment(const CMoney &inAmount);
virtual void HandlePartialPayment(const CMoney &inAmount);
virtual void AdjustDepositedAmount(const CMoney &/*inAmount*/) {}
virtual DBClass GetPaymentTransactionClass() const;
virtual DBid GetPaymentTransactionID() const;
virtual DBid GetCategoryFromBreakdowns() const;
virtual void AddBreakdown(const DBid breakdownID);
virtual void RemoveAllBreakdownEntries(const Boolean removeFromDatabase = true);
virtual void SetJob(const DBid /*inValue*/) {}
virtual void SetJobClass(const UInt8 /*inValue*/) {}
virtual Boolean IsCredit() const
{ return mAmount.IsNegative(); } // rev TCS 2/19/01
virtual Boolean IsCostTransaction() const { return false; }
virtual Boolean AcceptsPartialPayment() const { return true; }
virtual Boolean HasPaymentReceipt() const { return false; }
virtual Boolean PaysOnAccount() const { return true; }
virtual Boolean ShowsDepositedStatus() const { return true; }
virtual void FinishBreakdownPosting(DB_PersistentObject */*breakdown*/, const UInt8 /*postType*/) {}
virtual void MarkBreakdownsPaid(TObjectIDArray &breakdownArray,
const DBClass breakdownClassID, const Boolean fullyPaid,
const CMoney &inAmount, const UInt8 sourceClass,
const DBid sourceID, const UInt8 transactionType,
const Boolean removeItem, const UInt8 paymentType);
virtual Boolean MatchesFindCriteria(CTCS_Array &selectorArray, const Boolean matchAny,
const SInt32 selectorCount) const;
virtual Boolean WriteToPrintFormTable(CReportTable *table);
virtual CMoney GetBreakdownLaborHours() const;
virtual CMoney FetchComponentCosts(SAssemblyUpdateInfo &info, const CMoney &inQuantity);
virtual void FillProjectReport(const DBid reportID, TReportRowArray *rowInfoArray);
virtual void FillTakeoffReport(const DBid reportID, TReportRowArray *rowInfoArray,
TTakeoffArray &takeoffArray);
virtual void FillDataReport(CTCS_Table *table, CNeoStream *stream) const;
virtual void ExportBreakdowns(CTextOutputStream &stream);
virtual void WriteContractSpecs(CTextOutputStream &stream, const DBid subcontractType,
const Boolean includeAllowances, const Boolean includeBids,
const Boolean includeCatBreakdowns, const Boolean includeUnlisted) const;
protected:
// array member
TObjectInfoArray mPaymentArray; // TCS 4/11/00 handles expense payments (check and/or bank payment),
// and income pmts (payment receipt and/or deposit). For some classes
// this array may include both payments made and payments received.
CMoney mAmount; // basic dollar amount of the transaction
enum
{
cCopyFileLength = sizeof(CMoney),
cFileLength = cCopyFileLength + 0
};
}; |