def make_rec(line, payrun_id, employee_id): flds = line.split('^') return PayRecord.create( payrun=payrun_id, employee=employee_id, normal_hours_8b=int(flds[5]), normal_hours=int(flds[6]), oasdi_tax_va_share_cppd=to_float(flds[7]), fegli_va_share_cppd=to_float(flds[8]), health_benefits_va_share_cppd=to_float(flds[9]), retirement_va_share_cppd=to_float(flds[10]), tsp_csf_gov_basic_contrib=to_float(flds[11]), tsp_gsf_gov_basic_contrib=to_float(flds[12]), tsp_csf_gov_match_contrib=to_float(flds[13]), tsp_gsf_gov_match_contrib=to_float(flds[14]), base_pay_cppd=to_float(flds[15]), holiday_amt=to_float(flds[16]), overtime_amt_cppd=to_float(flds[17]), gross_pay_plus_benefits_cppd=to_float(flds[18]), overtime_hours_wk_1=to_float(flds[19]), overtime_hours_wk_2=to_float(flds[20]), overtime_amt_wk_1=to_float(flds[21]), overtime_amt_wk_2=to_float(flds[22]), hrs_excess_8_day_wk_1=to_float(flds[23]), hrs_excess_8_day_wk_2=to_float(flds[24]), hrs_excess_8_day_amt_wk_1=to_float(flds[25]), hrs_excess_8_day_amt_wk_2=to_float(flds[26]) )
def make_diffs(self): from models import PayRecord, PayDiff from app import db prev_rex = self._get_previous_records() if not prev_rex: return for current_rec in self.records: qry = prev_rex.select().where(PayRecord.employee == current_rec.employee) if not qry.exists(): continue rec_diffs = PayRecord.get_diffs(prev_rex.get(), current_rec) if rec_diffs: with db.atomic(): PayDiff.insert_many(rec_diffs).execute()
def _get_previous_records(self): from models import PayRecord prev_id = self.get_previous_run_id() return [PayRecord(r) for r in PayRecord.select().where(PayRecord.payrun == prev_id)] or None