Link to: source code | lists
directory
Copyright Turtle Creek Software 1996-2006. All Rights Reserved.
This class manages employee wages for the Goldenseal accounting software,
time tracking software and payroll software.
class CWageSchedule : public CCommission
{
public:
static CLASS_DESC *sDescriptor;
static DB_PersistentObject *MakeNew() { return TCS_NEW CWageSchedule; }
CWageSchedule();
virtual ~CWageSchedule() {}
class CWageRate_Desc : public CLASS_DESC
{
public:
CWageRate_Desc()
: CLASS_DESC(id_WageSchedule, id_Commission, CWageSchedule::MakeNew) {}
virtual ~CWageRate_Desc() {}
virtual Boolean GetTableColInfo(const TagType tag, const TableIndexT col,
STableColInfo *colInfo);
virtual SInt32 GetNumTableCols(const TagType /*tableTag*/) { return 4; }
};
virtual DBid GetDBClassID(void) const { return id_WageSchedule; };
virtual void CopyFrom(DB_PersistentObject *source, const UInt8 copyFlags = 0);
virtual NeoSize GetFileLength(const CNeoFormat *aFormat) const
{ return CCommission::GetFileLength(aFormat) + cFileLength; }
virtual Boolean GetMemberValue(const NeoTag aTag, const NeoTag aType,
void *aValue) const;
virtual Boolean SetMemberValue(const NeoTag aTag, const NeoTag aType,
const void *aValue);
virtual void ReadObject(CNeoStream *aStream, const NeoTag aTag);
virtual void WriteObject(CNeoStream *aStream, const NeoTag aTag);
virtual void SetDailyOTRate(CMoney amount) { mDailyOTRate = amount; }
virtual void SetWeeklyOTRate(CMoney amount) { mWeeklyOTRate = amount; }
virtual void SetSaturdayOTRate(CMoney amount) { mSaturdayOTRate = amount; }
virtual void SetSundayOTRate(CMoney amount) { mSundayOTRate = amount; }
virtual CMoney GetDailyOTRate() const { return mDailyOTRate; }
virtual CMoney GetWeeklyOTRate() const { return mWeeklyOTRate; }
virtual CMoney GetSaturdayOTRate() const { return mSaturdayOTRate; }
virtual CMoney GetSundayOTRate() const { return mSundayOTRate; }
virtual Boolean DailyOTIsDollars() const { return mDailyOTRate == over_additional; }
virtual Boolean WeeklyOTIsDollars() const { return mWeeklyOTRate == over_additional; }
virtual Boolean SaturdayOTIsDollars() const { return mSaturdayOTRate == over_additional; }
virtual Boolean SundayOTIsDollars() const { return mSundayOTRate == over_additional; }
virtual UInt8 GetWageType() const { return mWageType; }
virtual UInt8 GetCommissionType(void) const { return 0; }
/*virtual CMoney ComputeOvertimeRate(const UInt8 timeUnit, const CMoney &timeAmount,
const UInt8 conditions, const CMoney &accountRate = 0);
virtual CMoney ComputeOvertimeAmount(const CMoney &timeAmount, const UInt8 timeUnit,
const UInt8 conditions, const CMoney &accountRate = 0);
virtual CMoney GetOvertimeAmount(const CMoney &inValue, const CMoney &timeAmount,
const UInt8 conditions);
virtual CMoney GetOvertimeAmount(const CMoney &inValue, const UInt8 rateType,
const CMoney &rate);*/
virtual SInt32 GetWeeklyOvertimeCutoff() const;
virtual SInt32 GetDailyOvertimeCutoff() const { return mDailyOTLimit; } // TCS 4/1/00
virtual Boolean IsSalary() const { return mWageType == wage_salary; }
virtual Boolean IsIrregularDraw() const { return mWageType == wage_ownerdraw ||
mWageType == wage_draw; }
virtual Boolean PayeeIsOwner() const { return mWageType == wage_ownerhourly ||
mWageType == wage_ownersalary || mWageType == wage_ownerdraw; } // TCS 12/5/00
virtual Boolean IsSweatEquity() const { return mWageType == wage_hourlyequity ||
mWageType == wage_salaryequity; } // TCS 12/5/00
virtual ResIDT GetEnumMenuID(const TagType tag, const Boolean importing) const;
virtual CMoney GetWageForPeriod(const CMoney &employeeAmount) const;
virtual CMoney GetWagesWithOvertime(const CMoney &timeAmount, const UInt8 timeUnit,
const CMoney &wageRate, const UInt8 conditions,
const CMoney &daysWorked) const;
virtual CMoney GetOvertimeRate(const UInt8 conditions, const UInt8 inTimeUnit = 0,
const CMoney &accountRate = 0) const;
virtual CMoney GetOvertimeRate(const CMoney &wageRate, const UInt8 OTType,
const CMoney &OTRate) const;
virtual CMoney GetOvertimeAmount(const CMoney &hours, const CMoney &wageRate,
const UInt8 OTType, const CMoney &OTRate) const;
virtual Boolean CanImportEnum(const TagType tag, const SInt32 value) const;
virtual void FillDataReport(CTCS_Table *table, CNeoStream *stream) const;
protected:
CMoney mDailyOTRate,
mWeeklyOTRate,
mSaturdayOTRate,
mSundayOTRate;
SInt32 mDailyOTLimit,
mWeeklyOTLimit;
UInt8 mDailyOTType,
mWeeklyOTType,
mSaturdayOTType,
mSundayOTType;
// calculated members
TagType mWageEndSafetyTag; // TCS 9/8/02
enum
{
cCopyFileLength = 4*sizeof(CMoney) +
2*sizeof(SInt32) +
4*sizeof(UInt8),
cFileLength = cCopyFileLength +
sizeof(TagType)
};
};
enum
{ // other tags are in TCommonTags
tag_dailyOTlimit = 'DOTL',
tag_weeklyOTlimit = 'WOTL',
tag_dailyOTtype = 'DOTT',
tag_weeklyOTtype = 'WOTT',
tag_satOTtype = 'SATT',
tag_sunOTtype = 'SUNT',
tag_dailyOTrate = 'DOTR',
tag_weeklyOTrate = 'WOTR',
tag_satOTrate = 'SATR',
tag_sunOTrate = 'SUNR'
}; |