Accounting Software
Small Business Software Estimating Software
Inventory SoftwareInventory Tracking SoftwareInventory Control SoftwareInventory Management SoftwareConstruction Management SoftwareProject Management SoftwareBusiness Management Software

Supplier & Subcontractor Bids (Header)

Link to: source code | transactions directory

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

This class manages bids for the Goldenseal bidding software,
small business management software, construction project management software and
construction estimating software.

class CBid : public CJobCostTransaction
{
public:

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

CBid();
virtual ~CBid() {}

virtual DBid GetDBClassID(void) const { return id_Bid; }

virtual void CopyFrom(DB_PersistentObject *source, const UInt8 copyFlags = 0);

virtual NeoSize GetFileLength(const CNeoFormat *aFormat) const;

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 Boolean TransactionMatches(const STransInfo &info, const UInt8 source);

//virtual Boolean IsValidBreakdown(const UInt8 breakdownType);
virtual void FinishNonViewerCreate();
virtual void PostImportNew(const Boolean fromPostAction = false);

virtual Boolean CanBeDeleted(const Boolean giveMessage = true) const;

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

void UpdateEstimate(const Boolean removeItem = false);
DBid UpdateCompetitors(const Boolean removeItem = false);
DBid UpdateCompetingBidStatus();

virtual Boolean HasRecordLock() const;
virtual Boolean HasLockedStatus() const;

virtual DBid SetAwardedStatus(const UInt8 jobClass, const DBid jobID,
const Boolean removeItem = false, const DBid estimateID = 0);
virtual void SetCompletedStatus(const Boolean removeItem);

virtual void HandleEstimateUse(const DBid estimateID, const CMoney quantity, const Boolean removeIt = false);
virtual void HandleExpenseTrans(const CMoney &amount, const CMoney &taxAmount,
const UInt8 classID, const DBid costID,
const Boolean removeIt = false);

virtual Boolean AddToExpenseArray(const UInt8 inClass, const DBid inID, const UInt8 transType,
const Boolean removeIt = false) // bugfix TCS 1/25/03
{ return AddToObjectInfoArray(mExpenseArray, inClass, inID, transType, removeIt); }

virtual Boolean AddToCompetingBidArray(const DBid inID, const CMoney &inAmount,
const Boolean removeIt = false);

virtual UInt8 ExpenseIsAcceptable(CMoney &inAmount, const DBClass inClass, const DBid inID);
virtual Boolean IsCostPerUnit() { return mCostPerUnit; }

virtual DBid GetDetailTransactionID() const { return mEstimate; }
virtual UInt8 GetDetailTransactionClass() const { return id_Estimate; }

virtual Boolean PaysOnAccount() const { return false; } // TCS 11/1/00

virtual DBid GetTaxID() const { return mTaxRate; } // TCS 10/25/00
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 10/27/00
virtual CMoney GetNetPrice() const { return mAmount; }
virtual CMoney GetAmountPending() const { return mGrossAmount - mCostsToDate; } // TCS 10/31/00

// we don't need a job to be entered TCS 10/31/00
virtual Boolean NeedsJobAccountValue() const { return false; }
virtual Boolean NeedsMainAccountValue() const { return false; } // rev TCS 12/19/03

virtual CMoney GetProjectPrice() const;

virtual UInt8 GetStatus() const { return mStatus; } // TCS 4/23/01

virtual DBid GetEstimateID() const { return mEstimate; }
virtual void SetEstimateID(const DBid inValue) { mEstimate = inValue; }

virtual UInt8 GetJobClass() const { return id_ProjectAccount; }
virtual DBid GetJobID() const { return mProject; }
virtual void SetJob(const DBid inValue) { mProject = inValue; }

virtual CMoney GetLowBidAmount() const { return mLowBidAmount; } // TCS 12/20/00
virtual void SetLowBidAmount(const CMoney &inValue) { mLowBidAmount = inValue; }

virtual DBid GetMenuJobID() const { return mProject; }
virtual UInt8 GetMenuJobClass() const { return id_ProjectAccount; }

// changed GetMenuMainAccountClass && GetMenuMainAccountID TCS 11/8/01. See CBid::TransactionMatches

virtual UInt8 GetTransDetails() const;
virtual Boolean GetSpareBoolean() const { return mEstimate != 0; }

virtual Boolean IsMasterCompetitor() const { return mCompetingBidArray.GetCount() > 0; } // bugfix TCS 4/23/03
virtual DBid CompetesWith() const { return mCompetesWith; }
virtual Boolean IsRoughEstimate() const { return mRoughEstimate; }

virtual CTextString GetAdjustedName() const;

virtual CMoney GetLaborHours() const { return mLaborHours; }
virtual CMoney GetCrewSize() const { return mCrewSize; }

virtual CMoney GetQuantity() const { return mQuantity; }
virtual void SetQuantity(const CMoney inValue) { mQuantity = inValue; }

virtual CMoney FetchComponentCosts(SAssemblyUpdateInfo &info, const CMoney &inQuantity);
virtual void WriteContractSpecs(CTextOutputStream &stream, const DBid subcontractType,
const Boolean includeAllowances, const Boolean includeBids,
const Boolean includeCatBreakdowns, const Boolean includeUnlisted) const;

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

virtual void SetEndSafetyTag() { mEndSafetyTag = tag_endsafetytag; }

protected:
// array members
TObjectInfoArray mExpenseArray; // TCS 1/18/00
TMoneyIDInfoArray mCompetingBidArray; // TCS 9/6/00

// string members
CTextString mDetails,
mContractText; // TCS 10/23/03

// copied members
DBid mTaxRate,
mCompetesWith;

CMoney mGrossAmount,
mTaxAmount, // TCS 1/12/00
mLowBidAmount, // TCS 12/20/00
mLaborHours, // TCS 5/16/02
mCrewSize;

UInt8 mStatus;

// *** NEVER insert members before this bitfield!!!
UInt8 mCostPerUnit:1,
mFixedAmount:1,
mRoughEstimate:1,
bidFiller:5;

// calculated members
CMoney mCostsToDate, // TCS 1/18/00
mSalesTaxToDate, // TCS 10/31/00
mQuantity; // TCS 8/9/02

DBid mEstimate,
mProject; // TCS 12/20/00

DBid mPictureID; // TCS 10/23/03

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

enum
{
cCopyFileLength = 2*sizeof(DBid) +
5*sizeof(CMoney) +
2*sizeof(UInt8),

cFileLength = cCopyFileLength +
3*sizeof(CMoney) +
2*sizeof(DBid) +
sizeof(TagType),
cFileLength2 = cFileLength +
sizeof(DBid)
};
};