Link to: source code | source
2 | source
3 | source 4 | transactions
directory
Copyright Turtle Creek Software 1996-2006. All Rights Reserved.
This class manages basic accounting transactions in the Goldenseal accounting software,
estimating software, project
management software
and construction
accounting software.
class CTransaction : public DB_BaseTransaction,
public CCustomFieldOwner
{
public:
// breakdown base ID's are now in TCommonTags
static CLASS_DESC *sDescriptor;
static DB_PersistentObject *MakeNew() { return TCS_NEW CTransaction; }
CTransaction();
virtual ~CTransaction() {}
// ************* basic object data management *************
virtual void CopyFrom(DB_PersistentObject *source, const UInt8 copyFlags = 0);
virtual NeoSize GetFileLength(const CNeoFormat *aFormat) const;
virtual DBid GetDBClassID(void) const { return id_Transaction; }
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);
// ************* static utility functions *************
static ResIDT GetLayoutIDFromClassID(const DBid classID,
const UInt8 breakdown,
const SInt32 formType = form_long);
static DBid GetClassIDFromLayoutID(const ResIDT layoutID,
const UInt8 breakdown);
static ResIDT GetAccountMenuID(const DBid classID, const TagType tag);
static UInt8 GetJobCostArea(const DBid inClass);
static Boolean IsBreakdownTransaction(const DBClass inClassID,
const Boolean includeAssemblies = false);
static CDate CalculateBillingDate(const UInt8 termsClass, const DBid paymentTermID,
const CDate defaultDate);
// ************* member functions *************
virtual void CopyFromAnotherClass(DB_PersistentObject *source);
virtual CDate GetDate() const { return mDate; }
virtual void SetDate(const CDate inDate) { mDate = inDate; } // TCS 4/11/01
virtual Boolean GetFlagged() const { return mFlagged; }
virtual CTextString GetMenuName() const;
virtual SInt32 GetRefNum() const { return mReferenceNum; }
virtual void SetRefNum(const SInt32 newRef) { mReferenceNum = newRef; }
virtual CTextString GetRefNumString() const;
virtual CTextString GetDescription() const { return mDescription; }
virtual void SetMainAccount(DB_Account *dest);
virtual DBid GetMainAccountID() const { return mMainAccount; }
virtual void SetMainAccountID(const DBid id);
virtual DBClass GetSecondAccountRefClass() const { return 0; }
virtual DBid GetSecondAccountRefID() const { return 0; }
virtual DBClass GetJobAccountRefClass() const { return 0; }
virtual DBid GetJobAccountRefID() const { return 0; }
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 Boolean HasLockedStatus() const;
virtual CMoney GetAdjustmentAmount() const { return 0; } // TCS 1/26/00
virtual void SetAdjustmentAmount(const CMoney &/*inAmount*/) {}
virtual void AddAdjustmentAmount(const CMoney &/*inAmount*/) {} // TCS 10/19/01
virtual UInt8 GetStarterStatus() const { return status_Entered; } // TCS 11/16/99
virtual void SetStatus(const UInt8 inValue);
virtual void SetPaidStatus(const UInt8 /*inStatus*/) {} // TCS 12/18/99
virtual Boolean IsCreditTransaction(const DBClass /*acctClass*/, const DBid /*acctID*/) // TCS 3/13/02
{ return IsCredit(); }
virtual SInt32 VerifyImport();
virtual void PostImportNew(const Boolean fromPostAction = false);
virtual Boolean IsInLocalUse() const;
virtual void UpdateMainAccount(const DBClass classID, const DBid accountID);
virtual void FillCostItemInfo(TJobCostItemArray &itemArray, const UInt8 costType,
const DBid accountID) const;
virtual CTextString GetMainAccountName() const;
virtual DBid GetPaymentTerm() const { return 0; }
virtual void SetAmountPaid(const CMoney &/*inAmount*/) {}
virtual Boolean IsFlagged() const { return mFlagged; } // TCS 6/7/99
virtual void SetFlagged(const Boolean inValue) { mFlagged = inValue; } // TCS 2/22/04
virtual Boolean IsPrintFlagged() const { return mPrintFlagged; }
virtual Boolean UseOneTimeName() const { return false; } // TCS 1/23/01
virtual void SetUseOneTimeName(const Boolean /*inValue*/) {}
virtual CTextString GetOneTimeName() const { return GetName(); }
virtual void SetOneTimeName(const CTextString /*inName*/) {}
// most transactions require an account TCS 6/22/99
virtual Boolean NeedsMainAccountValue() const { return true; }
virtual Boolean WasOverpaid() const { return mBeenOverpaid; }
virtual void SetBeenOverpaid(const Boolean inValue = true) { mBeenOverpaid = inValue; }
virtual ResIDT GetEnumMenuID(const TagType tag, const Boolean importing = false) const;
virtual UInt8 GetJobCostClass() const;
virtual Boolean IsValidJobCost(const UInt8 costType) const;
virtual DBid GetCategoryFromBreakdowns() const { return 0; }
virtual Boolean CanBeJobCosted() const { return true; }
virtual Boolean HasPaidCommission() const;
virtual DBid GetBankAccountID() const { return 0; }
virtual UInt8 GetBankAccountClass() const { return 0; }
virtual DBid GetCompanyDivision() const;
virtual DBClass GetCreditAccountClass() const { return id_UtilityAccount; }
virtual DBClass GetDebitAccountClass() const { return id_UtilityAccount; }
virtual DBid GetCreditAccountID() const { return 0; }
virtual DBid GetDebitAccountID() const { return 0; }
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 Boolean GetPrintStatus() const { return mPrintFlagged; }
virtual void SetPrintStatus(const Boolean inValue) { mPrintFlagged = inValue; }
virtual void SetJustPrinted();
virtual void PayOnAccount(const CMoney &inAmount);
virtual UInt8 ExpenseIsAcceptable(CMoney &/*inAmount*/, const DBClass /*inClass*/, const DBid /*inID*/)
{ return save_success; }
virtual void ClearAmounts();
virtual void ClearJobCostInfo();
virtual void FetchMeetingArray(const DBClass inClass, TObjectIDArray &array) const;
virtual void FetchCostArray(const DBClass inClass, TObjectIDArray &array) const;
virtual void FinishNonViewerCreate();
virtual void FinishTemplateCreate();
virtual void FinishViewerCreate();
virtual Boolean CanBeDeleted(const Boolean giveMessage = true) const;
virtual void SetIsPosting(const Boolean inValue) { mIsPosting = inValue; } // TCS 10/24/00
virtual Boolean IsPosting() const { return mIsPosting; }
virtual CTextString GetMessageText(const DBid messageID) const; // TCS 11/13/00
virtual CTextString GetPaymentTermText(const DBClass messageClass, const DBid messageID) const; // TCS 11/13/00
virtual Boolean UsedAsTemplate() const { return mUsedAsTemplate; } // TCS 4/24/01
virtual void SetUsedAsTemplate(const Boolean inValue) { mUsedAsTemplate = inValue; }
virtual Boolean UsedAsRecurring() const { return mUsedAsRecurring; } // TCS 4/24/01
virtual void SetUsedAsRecurring(const Boolean inValue) { mUsedAsRecurring = inValue; }
virtual SInt32 GetNumContacts(const DBClass inClass = 0) const;
virtual SInt32 GetNumCosts(const DBClass inClass = 0) const;
virtual void HandleReplaceAll(const TMemberArray &memberArray);
virtual void HandleDateChanged() {}
virtual void SetTransactionBit(const Boolean inValue) { mTransactionBit = inValue; } // TCS 8/30/02
virtual Boolean GetTransactionBit() const { return mTransactionBit; }
virtual void SetTransactionBit2(const Boolean inValue) { mTransactionBit2 = inValue; }
virtual Boolean GetTransactionBit2() const { return mTransactionBit2; }
virtual void SetNeedsAttention(const Boolean inValue) { mNeedsAttention = inValue; }
virtual Boolean NeedsAttention() const { return mNeedsAttention; }
virtual Boolean IncludeInStarterFile() const { return mIncludeInStarterFile; } // TCS 12/5/02
virtual void FillDataReport(CTCS_Table *table, CNeoStream *stream) const;
virtual Boolean FillPurchaseInfo(SVendorInfo &/*vendorInfo*/, const CDate /*cutoffDate*/,
const DBClass /*accountClass*/, const DBid /*accountID*/) { return false; }
protected:
// string data
CTextString mDescription; // comments
// Copied Data
DBid mMainAccount; // id of account shown on the transaction
CDate mDate; // transaction date (user-accessible)
SInt32 mReferenceNum; // reference # (auto-generated)
// *** NEVER insert members before this bitfield!!!
UInt8 mFlagged:1, // general user-accessbile flag
mUseShortForm:1, // remember use of short form
mUsedAsTemplate:1, // TCS 4/24/01
mUsedAsRecurring:1,
mIncludeInStarterFile:1, // TCS 8/12/02
mTransactionBit:1, // CLease- tag_monthtomonth // TCS 8/30/02
mTransactionBit2:1,
mNeedsAttention:1; // TCS 4/26/04
UInt8 mTransCopiedPadding; // 3/27/02
// Calculated Data
UInt8 mTransFiller:4, // NOT USED rev TCS 6/27/03
mPrintFlagged:1, // print flag, also user-accessible
mSalesTaxPaid:1, // added TCS 6/30/99
mBeenOverpaid:1, // added TCS 9/15/99
transCalcFiller:1;
UInt8 mTransPadding; // 3/27/02
// Temporary data- do not add to file length
Boolean mIsPosting;
UInt8 mTempPadding; // TCS 5/28/03
enum
{
cCopyFileLength = sizeof(DBid) +
sizeof(CDate) +
sizeof(SInt32) +
2*sizeof(UInt8),
cFileLength = cCopyFileLength +
2*sizeof(UInt8)
};
}; |