Accounting Software
Small Business Software Estimating Software
Contact SoftwareInventory SoftwareInventory Tracking SoftwareInventory Management SoftwareInventory Control SoftwareCustomer Management SoftwareBusiness Management Software

Record Numbering (Header)

Link to: source code | prefs directory

Copyright Turtle Creek Software 1996-2006. All Rights Reserved.

This class manages record numbering for the Goldenseal accounting software,
small business management software, construction project management software and
construction estimating software.

class CNumbering : public DB_DescribedPersistent
{
public:

static CLASS_DESC *sDescriptor;
static DB_PersistentObject *MakeNew() { return TCS_NEW CNumbering; }

CNumbering();
virtual ~CNumbering() {}


static CTextString RefNumberToString(const DBClass inClassID, const SInt32 refNumber);

static CTextString GetNextNumberString(const DBClass inClassID, const SInt32 compareValue = 0,
const Boolean updateIt = true);
static CTextString PeekNextNumberString(const DBClass inClassID);
static SInt32 GetNextNumber(const DBClass inClassID, const SInt32 compareValue = 0,
const Boolean updateIt = true);
static SInt32 PeekNextNumber(const DBClass inClassID);
static void ResetNumber(const DBClass inClassID, const SInt32 compareValue = 0);
static Boolean UsesNumbering(const DBClass inClassID, const Boolean includeChecking = true);

static void EditNumbering(LCommander *inSuper);

virtual NeoID GetDBClassID(void) const { return id_Numbering; }
virtual NeoSize GetFileLength(const CNeoFormat *aFormat) const;

virtual void CopyFrom(DB_PersistentObject */*source*/, const UInt8 /*copyFlags*/ = 0) {}

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);

Boolean GetNumberString(const DBClass inClassID, CTextString &refString);
Boolean IncrementNumberString(const DBClass inClassID, const Boolean decreaseIt = false,
const SInt32 compareValue = 0);

Boolean RefNumberToString(const DBClass inClassID, const SInt32 refNumber,
CTextString &refString);

void ConvertRefString(CTextString &stockString, const SInt32 refNum,
CTextString &outString);

virtual void FinishNonViewerCreate();

virtual CTextString GetValidationString() const { return mValidationString; }

virtual Boolean NeedsName() const { return false; } // TCS 2/3/01
virtual Boolean ForbidDuplicateNames() const { return false; } // TCS 7/25/01

void CreateNextObjectIDArray();
DBid FetchNextObjectID(const DBid classID, const Boolean incrementIt);
void SetNextObjectID(const DBid classID, const DBid inItemID,
const Boolean alwaysReset = false);

virtual void FillDataReport(CTCS_Table *table, CNeoStream *stream) const;

virtual void SetEndSafetyTag() { mEndSafetyTag = tag_endsafetytag; }

protected:
// array members
TObjectIDArray mNextIDArray; // moved TCS 6/23/02

// string members
CTextString mNextBidNum,
mNextCallNum,
mNextCONum,
mNextCustomerNum,
mNextEstimateNum,
mNextLeaseNum,
mNextMiscCheckbookNum,
mNextPmtReceiptNum,
mNextProjectNum,
mNextProspectNum,
mNextPOWONum,
mNextRentalNum,
mNextSaleNum,
mNextTransmittalNum,
mValidationString;

// calculated members
TagType mEndSafetyTag; // TCS 9/8/02

enum
{
cCopyFileLength = 0,

cFileLength = cCopyFileLength +
sizeof(TagType)
};
};