Link to: source code | source 2 | source 3| transactions
directory
Copyright Turtle Creek Software 1996-2006. All Rights Reserved.
This class manages payroll records for the Goldenseal accounting software,
payroll software and business
management software.
class CPayrollRecord : public CBreakdownTransaction
{
public:
static CLASS_DESC *sDescriptor;
static DB_PersistentObject *MakeNew() { return TCS_NEW CPayrollRecord; }
CPayrollRecord();
virtual ~CPayrollRecord() {}
virtual DBid GetDBClassID(void) const { return id_PayrollRecord; }
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);
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 void PostBreakdownChanging();
static void FillHoursFromStruct(DB_PersistentObject *entry,
const SLaborHoursInfo &itemInfo);
static void FillCommissionFromStruct(DB_PersistentObject *entry,
const SCommissionInfo &itemInfo);
static void FillDeductionFromStruct(DB_PersistentObject *entry,
const SDeductionInfo &itemInfo);
virtual CDate GetDueDate() const { return mDueDate; }
//virtual Boolean IsValidBreakdown(const UInt8 breakdownType);
virtual Boolean HasPayrollData();
virtual void FillTotalsFromStruct(SEmployeeInfo &employeeInfo);
virtual void FillBreakdownsFromPayStruct(SEmployeeInfo &employeeInfo,
const Boolean isTempRecord = false);
virtual void AddHourBreakdowns(const SEmployeeInfo &employeeInfo,
const Boolean isTempRecord = false);
virtual void AddCommissionBreakdowns(const SEmployeeInfo &employeeInfo,
const Boolean isTempRecord = false);
virtual void AddDeductionBreakdowns(const SEmployeeInfo &employeeInfo,
const Boolean isTempRecord = false);
/*virtual void UpdateDeductionBreakdowns(const SEmployeeInfo &employeeInfo,
const Boolean includeZeros = false);*/
virtual void AddEmployerTaxBreakdowns(const SEmployeeInfo &employeeInfo,
const Boolean isTempRecord = false);
virtual void AddCategoryTaxBreakdowns(const SEmployeeInfo &employeeInfo,
const Boolean isTempRecord = false);
virtual void AddBenefitBreakdowns(const SEmployeeInfo &employeeInfo,
const Boolean isTempRecord = false);
virtual void AddVacationBreakdowns(const SEmployeeInfo &employeeInfo,
const Boolean isTempRecord = false);
virtual void FillStructFromBreakdowns(SEmployeeInfo &employeeInfo);
virtual void FillFromHourBreakdowns(SEmployeeInfo &employeeInfo);
virtual void FillFromCommissionBreakdowns(SEmployeeInfo &employeeInfo);
virtual void FillFromDeductionBreakdowns(SEmployeeInfo &employeeInfo);
virtual void FillFromEmployerTaxBreakdowns(SEmployeeInfo &employeeInfo);
virtual void FillFromCategoryTaxBreakdowns(SEmployeeInfo &employeeInfo);
virtual void FillFromBenefitBreakdowns(SEmployeeInfo &employeeInfo);
virtual void FillFromVacationBreakdowns(SEmployeeInfo &employeeInfo);
virtual void SetWagesTotal(const CMoney &inValue) { mWagesTotal = inValue; }
virtual void SetHoursTotal(const CMoney &inValue) { mHoursTotal = inValue; }
virtual void SetCommissionsTotal(const CMoney &inValue) { mCommissionsTotal = inValue; }
virtual void SetDeductionsTotal(const CMoney &inValue) { mDeductionsTotal = inValue; }
virtual SInt32 GetDeductionCount() { return mDeductionArray.GetCount(); }
virtual SInt32 GetBenefitCount() { return mBenefitArray.GetCount(); }
virtual void SetCompTimeBalance(const CMoney inValue) { mCompTimeBalance = inValue; }
virtual void SetVacationBalance(const CMoney inValue) { mVacationBalance = inValue; }
virtual void SetSickTimeBalance(const CMoney inValue) { mSickTimeBalance = inValue; }
virtual void SetOtherVacationBalance(const CMoney inValue) { mOtherVacationBalance = inValue; }
virtual CMoney GetCompTimeBalance() const { return mCompTimeBalance; }
virtual CMoney GetVacationBalance() const { return mVacationBalance; }
virtual CMoney GetSickTimeBalance() const { return mSickTimeBalance; }
virtual CMoney GetOtherVacationBalance() const { return mOtherVacationBalance; }
virtual void AddCommissionBreakdown(const DBid breakdownID)
{ mCommissionArray.Append(breakdownID); }
virtual void AddDeductionBreakdown(const DBid breakdownID)
{ mDeductionArray.Append(breakdownID); }
virtual void AddEmployerTaxBreakdown(const DBid breakdownID)
{ mEmployerTaxArray.Append(breakdownID); }
virtual void AddCategoryTaxBreakdown(const DBid breakdownID)
{ mCategoryItemArray.Append(breakdownID); }
virtual void AddBenefitBreakdown(const DBid breakdownID)
{ mBenefitArray.Append(breakdownID); }
virtual void AddVacationBreakdown(const DBid breakdownID)
{ mVacationArray.Append(breakdownID); }
virtual void RemoveAllBreakdownEntries(const Boolean removeFromDatabase = true);
virtual void UpdateBreakdownsFromTable(CBreakdownTable *table,
const SInt32 breakdownType,
const DBid breakdownClassID,
DB_PersistentObject *owner = nil);
virtual Boolean FillTableFromBreakdowns(CBreakdownTable *table,
const DBid breakdownClassID);
virtual void FinishBreakdownUpdate(CBreakdownEntry *breakdown, CBreakdownTable *table);
virtual void FillYTD(SEmployeeInfo &employeeInfo);
virtual Boolean HasBreakdowns() const;
virtual void PostPayablesAccount(const Boolean removeItem = false);
virtual void PostVacationTime(const Boolean removeItem = false);
virtual void PostAdjustments(const Boolean removeItem = false);
virtual void PostTaxesDue(const Boolean removeItem);
virtual void PostBenefitsDue(const Boolean removeItem);
virtual void PostPayrollSources(const Boolean removeItem = false);
virtual void AddToEmployeeArray(const Boolean removeIt = false);
virtual Boolean CanBeDeleted(const Boolean giveMessage = true) const;
virtual UInt8 GetStarterStatus() const;
virtual CMoney GetTaxPaymentAmount() const { return GetAmount(); }
virtual void SetTransactionRef(const DBid inID) { mTransactionRef = inID; }
virtual DBid GetTransactionRef() const { return mTransactionRef; }
virtual Boolean HasPayrollBreakdown(const DBid breakdownClassID, const DBid breakdownID);
virtual void AddPayrollBreakdown(const DBid breakdownClassID, const DBid breakdownID);
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 void HandleTaxesPaid(const DBClass sourceClass, const DBid sourceID,
const Boolean removeItem = false);
virtual Boolean WriteToPrintFormTable(CReportTable *table);
virtual Boolean IsCostTransaction() const { return true; }
virtual Boolean HasCategoryTaxes() const { return mCategoryItemArray.GetCount() > 0; }
virtual CMoney GetCategoryTaxAmount(const DBid category, const CMoney &hours,
const CMoney &wageAmount) const;
virtual UInt8 GetConditions() const { return mConditions; } // TCS 9/7/00
virtual UInt8 GetStatus() const { return mStatus; } // TCS 4/23/01
virtual CDate GetPeriodStart() const { return mPeriodStartDate; }
virtual void SetPeriodStart(const CDate inDate) { mPeriodStartDate = inDate; }
virtual CDate GetPeriodEnd() const { return mPeriodCloseDate; }
virtual void SetPeriodEnd(const CDate inDate) { mPeriodCloseDate = inDate; }
virtual CDate GetPayday() const { return mDate; }
virtual void SetPayday(const CDate inDate) { mDate = inDate; }
virtual CTextString GetTaxName() const;
virtual DBClass GetTransactionRefClass() const;
virtual Boolean AcceptsPartialPayment() const { return false; } // TCS 9/30/03
virtual DBid GetWageSchedule() const { return mWageSchedule; }
virtual void SetWageSchedule(const DBid inValue) { mWageSchedule = inValue; }
virtual CMoney GetTaxFieldTotal(const UInt8 calcMethod, const TObjectInfoArray &taxArray);
virtual CMoney GetTaxFieldForArray(const TObjectIDArray &taxArray,
const DBClass breakdownClass, const DBid matchID, const UInt8 calcMethod);
virtual CMoney GetWageFieldForArray(const TObjectIDArray &taxArray,
const DBClass breakdownClass, const DBid matchID, const UInt8 calcMethod);
virtual void FillDeductionReport(const DBid reportID, TTwoLevelArray *breakdownArray,
const SReportInfo &matchInfo);
virtual void FillDeductReportFromBreakdowns(const TObjectIDArray &array, const DBClass breakdownClass,
const DBid reportID, TTwoLevelArray *breakdownArray);
virtual void ExportBreakdowns(CTextOutputStream &stream);
virtual void FillDataReport(CTCS_Table *table, CNeoStream *stream) const;
virtual void SetEndSafetyTag() { mEndSafetyTag = tag_endsafetytag; }
protected:
// Outside members
TObjectIDArray mCommissionArray,
mDeductionArray,
mEmployerTaxArray,
mCategoryItemArray,
mBenefitArray,
mVacationArray;
// mBreakdownArray is used for hours worked
// COPIED DATA
CDate mDueDate;
UInt8 mStatus,
mConditions,
mTimeUnit,
mPayRecPadding;
// CALCULATED DATA
DBid mTransactionRef,
mPriorRecord,
mNextRecord;
CMoney mWagesTotal,
mHoursTotal,
mCommissionsTotal,
mDeductionsTotal,
mEmployerTaxTotal, // rev TCS 12/19/99
mEmployerCatTaxTotal,
mEmployeeCatTaxTotal,
mEmployeeBenefitsTotal,
mEmployerBenefitsTotal,
mCompTimeBalance, // added TCS 5/8/00
mVacationBalance,
mSickTimeBalance,
mOtherVacationBalance,
mCompTimeChange,
mVacationChange,
mSickTimeChange,
mOtherVacationChange;
CDate mPeriodStartDate,
mPeriodCloseDate;
DBid mWageSchedule;
DBid mExpansionLong;
CMoney mExpansionMoney;
// calculated members
TagType mEndSafetyTag; // TCS 9/8/02
enum
{
cCopyFileLength = sizeof(CDate) +
4*sizeof(UInt8),
cFileLength = cCopyFileLength +
3*sizeof(DBid) +
17*sizeof(CMoney) +
2*sizeof(CDate) +
2*sizeof(DBid) +
sizeof(CMoney) +
sizeof(TagType)
};
}; |