def create_recovery_report(d, the_tweaks): camel_recoveries = tweaks.tweak_recoveries(the_tweaks) jobcodes_to_process = set(tweaks.tweaked_jobs(the_tweaks)) db_recoveries = get_dbase_recoveries(d) for k, v in db_recoveries.items(): if abs(v) >= 0.01: jobcodes_to_process.add(k) jobcodes_to_process = sorted(list(jobcodes_to_process)) output = ['RECOVERY RECONILIATION', ''] tweaks_grand_total = 0.0 pms_grand_total = 0.0 for job_code in jobcodes_to_process: job = d['jobs'][job_code] # TODO - d['jobs'][job_code] is a common idiom which ought to be abstracted camel_job_recoveries = dget(camel_recoveries, job_code, []) db_job_recovery = dget(db_recoveries, job_code) tweak_amount, recovery_text = create_recovery_text(job, camel_job_recoveries, db_job_recovery) output += recovery_text tweaks_grand_total += tweak_amount pms_grand_total += db_job_recovery output.append('SUMMARY:') output.append(line(tweaks_grand_total, 'TWEAKS GRAND TOTAL')) output.append(line(pms_grand_total, 'PMS GRAND TOTAL')) output.append(line(tweaks_grand_total - pms_grand_total, 'OVERALL DIFF')) period.save_report('recoveries.txt', output)
def accum_tweaks_to_job_level(the_tweaks): jobs = {} for entry in the_tweaks: code = entry['JobCode'] if not jobs.has_key(code): jobs[code] = {} job = jobs[code] for key in ['Inv3rdParty', 'InvAccrual', 'InvBIA', 'InvInvoice', 'InvTime', 'InvUBI', 'InvWIP']: common.dplus(job, key, common.dget(entry, key)) return jobs
def Show(self): if self.jobs is None: self.jobs = {} jobs = db.GetJobs() job_codes = sorted(jobs.keys()) for job_code in job_codes: job = jobs[job_code] if dget(job, 'active', False): self.jobs[job_code] = job self.opt_jobs.Append(job_code) self.opt_jobs.SetSelection(0) #print self.jobs self.clients = db.GetClients() #self.client_reverse_lookup = {} #for k in clients.keys(): # self.client_reverse_lookup[clients[k]] = k #self.client_opt_index for client in sorted(self.clients.values()): self.opt_client.Append(client) self.fill_frame() super(JobsFrame, self).Show()
def safe_set_text(text_control, field): text_control.SetValue(common.dget(job, field, ""))