Accounting Software
Small Business Software Estimating Software
Time Tracking SoftwareTime Management SoftwareTime Billing SoftwareContact Management SoftwareCustomer Management SoftwareProject Management SoftwareBusiness Management Software

Cost Breakdown Tables (Header)

Link to: source cpde | source 2 | source 3 | tables directory

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

This class manages cost breakdown tables for the Goldenseal estimating software,
small business management software, construction project management software and
construction estimating software.

/***********************************************************************************
CCostBreakdownTable
***********************************************************************************/
class CCostBreakdownTable : public CBreakdownTable
{
public:

enum { class_ID = 'IBTB' };

CCostBreakdownTable(const SPaneInfo &inPaneInfo, const SViewInfo &inViewInfo,
DB_ClassDescriptor *desc);
virtual ~CCostBreakdownTable() {}

virtual Boolean NeedsRowRecalc(const TagType tag) { return tag != tag_taxable; } // TCS 8/14/01
virtual CMoney RecalcBreakdownRow(const TableIndexT row, const TagType changedCol);
virtual CMoney RecalcCostBreakdownRow(const TableIndexT row, const TagType changedCol,
const Boolean fromUpdateButton = false);
virtual CMoney RecalcHoursBreakdownRow(const TableIndexT row, const TagType changedCol);

virtual CMoney GetTaxableAmount();

virtual UInt8 GetCostArea(const TableIndexT row) const;

virtual void UpdateItemDetails(const TableIndexT row);
virtual void ResetCostItem(const TableIndexT row, const SInt32 oldValue, const SInt32 newValue);

virtual SInt32 GetColType(const TableIndexT row, const TableIndexT col) const;

virtual TagType GetAmountTestTag() const { return tag_quantity; } // changed TCS 8/23/99, 1/6/00
virtual TagType GetNameTestTag() const { return tag_costitem; }
virtual TagType GetFirstDataTag() const { return tag_costarea; } // TCS 12/12/01

virtual CMoney GetHardCostTotal();
virtual CMoney GetLaborTotal();
virtual CMoney GetMaterialTotal();
virtual CMoney GetSubcontractorTotal();

virtual Boolean IsMixedCV(const TableIndexT row,
const TableIndexT col) const;
virtual Boolean RowUsesObjectID(const TableIndexT /*row*/) const { return false; }
virtual Boolean RowUsesPercent(const TableIndexT /*row*/) const;

virtual void SetRowUsesVariableCost(const TableIndexT /*row*/, const Boolean /*inValue*/) {}

virtual void FillNewRowCells(const TableIndexT row);

virtual Boolean HasCostItem(const UInt8 costType) const;
//virtual Boolean AppendTaxText() const { return mAppendTaxText; }

virtual Boolean IsOnSale() { return mOnSale; }
virtual void PutOnSale(const Boolean inValue = true) { mOnSale = inValue; }

virtual TableIndexT GetAmountCol();
virtual UInt8 GetFieldType(const TableIndexT row, const TableIndexT col) const;

virtual CMoney GetHourlyRate() { return mHourlyRate; }
virtual void SetHourlyRate(const CMoney &inRate) { mHourlyRate = inRate; }
virtual void RecalculateRows();

virtual TagType GetDetailIDTag() const { return tag_costitem; }
virtual UInt8 GetDetailTransactionClass(const TableIndexT row) const;
virtual void SetTableCustomerDiscount(const DBid inValue) { mCustDiscount = inValue; } // BD 6/13/00
virtual DBid GetTableCustomerDiscount() const { return mCustDiscount; }

virtual Boolean CostItemIsSoftCost(const TableIndexT row) const;
virtual Boolean CostItemIsUnlisted(const TableIndexT row) const;
virtual Boolean CostItemIsUnitCost(const TableIndexT row) const;

virtual void FinishRowFill(const TableIndexT row);

virtual CMoney FillSuggestedQuantity(const TableIndexT /*row*/, DB_PersistentObject */*costItem*/)
{ return 0; }

virtual void HandleCellTextChanged(const TableIndexT row, const TableIndexT col,
const Boolean sendMessage = true);

virtual CMoney GetRowWorkHours(const TableIndexT row) const;
virtual CMoney GetRowCrewSize(const TableIndexT row) const;
virtual CDate GetRowEndDate(const TableIndexT row) const;

virtual void UpdateAllPrices() {}

virtual void RecalcScheduleRow(const TableIndexT row, const TagType changedCol);

virtual void SetWorkingHours(const DBid inID) { mWorkingHours = inID; }
virtual DBid GetWorkingHours() const { return mWorkingHours; }

virtual CDate UpdateSchedule(const CDate startDate, const TableIndexT startRow = 1);

virtual void RecalcAllPercentRows();
virtual void RecalcPercentRow(const TableIndexT row, const TableIndexT amountCol);

virtual void SetAdjustPercent(const CMoney inValue) { mAdjustPercent = inValue; }

virtual void SetStartDate(const CDate inDate) { mStartDate = inDate; }
virtual void SetFinishDate(const CDate inDate) { mFinishDate = inDate; }
virtual CDate GetFinishDate() const { return mFinishDate; }

virtual void ExportSchedule(CTextOutputStream &stream);

protected:
CMoney mHourlyRate,
mAdjustPercent; // TCS 1/22/04

DBid mCustDiscount, // added BD 6/13/00
mWorkingHours; // TCS 5/24/02

UInt8 mOnSale:1,
mCostTableFiller:7;

CDate mStartDate, // TCS 8/13/02
mFinishDate; // TCS 11/5/02
};