def printTotals(self, cw, ld, ica, iva): tot = [0, 0, iva.work, ica.work] if iva.work: tot[0] = float(ASD(ica.work) - ASD(iva.work)) else: tot[1] = ica.work self.fpdf.drawText(x=32*cw, y=33.2*ld, txt=CCD(tot[0],"SD",13.2).disp) self.fpdf.drawText(x=56*cw, y=33.2*ld, txt=CCD(tot[1],"SD",13.2).disp) self.fpdf.drawText(x=78*cw, y=33.2*ld, txt=CCD(tot[2],"SD",13.2).disp) self.fpdf.drawText(x=103*cw, y=33.2*ld, txt=CCD(tot[3],"SD",13.2).disp)
def printTrans(self, trn, atc): for ct in trn: trdt = CCD(ct[0], "D1", 10) ref1 = CCD(ct[5], "Na", 9) trtp = CCD(ct[3], "UI", 1) batch = CCD(ct[2], "Na", 7) mtyp = CCD(ct[4], "UI", 1) amt1 = CCD(ct[6], "SD", 15.2) if self.rordp == "Y": amt2 = CCD(ct[7], "SD", 15.2) detail = CCD(ct[8], "NA", 30) else: detail = CCD(ct[7], "NA", 30) if self.pglin > self.fpdf.lpp: self.pageHeading() self.pageHeadingTrans() if self.rordp == "Y": self.fpdf.drawText( "%s %s %s %s %s %s %s %s" % (trdt.disp, ref1.disp, artrtp[(trtp.work - 1)][0], batch.disp, armvtp[(mtyp.work - 1)][0], amt1.disp, amt2.disp, detail.disp)) else: self.fpdf.drawText( "%s %s %s %s %s %s %s" % (trdt.disp, ref1.disp, artrtp[(trtp.work - 1)][0], batch.disp, armvtp[(mtyp.work - 1)][0], amt1.disp, detail.disp)) self.pglin += 1
def printTrans(self): whr = [ ("wlt_cono", "=", self.opts["conum"]), ("wlt_empno", "=", self.empno), ("wlt_loan", "=", self.loan)] odr = "wlt_trdt, wlt_type" if self.history == "N": whr.append(("wlt_curdt", ">=", int(self.opts["period"] / 100))) recs = self.sql.getRec("wagltf", where=whr, order=odr) for rec in recs: trd = CCD(rec[self.sql.wagltf_col.index("wlt_trdt")], "D1", 10) typ = CCD(rec[self.sql.wagltf_col.index("wlt_type")], "UI", 1) ref = CCD(rec[self.sql.wagltf_col.index("wlt_ref")], "Na", 9) bat = CCD(rec[self.sql.wagltf_col.index("wlt_batch")], "Na", 7) rte = CCD(rec[self.sql.wagltf_col.index("wlt_per")], "UD", 6.2) amt = CCD(rec[self.sql.wagltf_col.index("wlt_amt")], "SD", 13.2) ded = CCD(rec[self.sql.wagltf_col.index("wlt_ded")], "SD", 13.2) det = CCD(rec[self.sql.wagltf_col.index("wlt_desc")], "NA", 30) if self.pglin > self.fpdf.lpp: self.pageHeading() self.pageHeadingTrans() self.acctot = float(ASD(self.acctot) + ASD(amt.work)) self.fpdf.drawText("%s %s %s %s %s %s %s %s" % (trd.disp, sltrtp[(typ.work - 1)][0], ref.disp, bat.disp, rte.disp, amt.disp, ded.disp, det.disp)) self.pglin += 1 self.fpdf.underLine(txt=self.head) b = CCD(self.acctot, "SD", 13.2) self.fpdf.drawText("%-39s %13s %13s %-30s" % \ ("", b.disp, "", "Closing Balance"))
def printReport(self): p = ProgressBar(self.opts["mf"].body, mxs=(len(self.pays) + len(self.recs) + len(self.imps))) self.head = "%03u %-30s" % (self.opts["conum"], self.opts["conam"]) self.fpdf = MyFpdf(name=self.__class__.__name__, head=90) self.pglin = 999 self.tot_chq = 0 self.tot_dep = 0 self.tot_imp = 0 self.pageHeading() bal = CCD(self.bal, "SD", 13.2) self.fpdf.drawText("%-71s %-13s" % ("Balance as per Cash Book", bal.disp)) if self.pays: self.fpdf.drawText() self.fpdf.drawText("%-70s" % ("Add: Cheques Not Presented",)) self.fpdf.drawText() self.pglin += 4 mxs = len(self.pays) - 1 for num, pay in enumerate(self.pays): p.displayProgress(num) self.printLine(num, mxs, pay, "C") self.pglin += 1 if self.recs: self.fpdf.drawText() self.fpdf.drawText("%-70s" % ("Less: Deposits Not Presented",)) self.fpdf.drawText() self.pglin += 3 mxs = len(self.recs) - 1 for num, rec in enumerate(self.recs): p.displayProgress(len(self.pays) + num) self.printLine(num, mxs, rec, "D") # Bank Imports if self.imps: self.fpdf.drawText() self.fpdf.drawText("%-70s" % ("+-: Imports Not Captured",)) self.fpdf.drawText() self.pglin += 3 mxs = len(self.imps) - 1 for num, rec in enumerate(self.imps): p.displayProgress(len(self.pays) + len(self.imps) + num) self.printLine(num, mxs, rec, "I") p.closeProgress() self.fpdf.underLine(txt="%72s%12s" % ("", 12 * self.fpdf.suc)) b = float(ASD(self.bal) + ASD(self.tot_chq) - ASD(self.tot_dep) + \ ASD(self.tot_imp)) bal = CCD(b, "SD", 13.2) self.fpdf.drawText("%-71s %-13s" % ("Balance as per Bank Statement", bal.disp)) pdfnam = getModName(self.opts["mf"].rcdic["wrkdir"], self.__class__.__name__, self.opts["conum"], ext="pdf") self.fpdf.output(pdfnam, "F") doPrinter(mf=self.opts["mf"], conum=self.opts["conum"], pdfnam=pdfnam, header=self.tit, repprt=self.df.repprt, repeml=self.df.repeml)
def grandTotal(self): tot = [0, 0, 0, 0, 0] if self.df.repprt[2] == "export": for x in range(0, len(gltrtp)): tot[0] = float(ASD(tot[0]) + ASD(self.gdr[x])) tot[1] = float(ASD(tot[1]) + ASD(self.gcr[x])) tot[2] = float(ASD(tot[2]) + ASD(self.gvt[x])) self.expdatas.append(["ULINES"]) self.expdatas.append([ "TOTAL", [ "", "", "", "", "Grand Totals", "", "", tot[0], tot[1], tot[2], "" ] ]) self.expdatas.append(["ULINED"]) return self.totind = "Y" self.pageHeading() for x, t in enumerate(gltrtp): qt = CCD(self.gqt[x], "SI", 8) dr = CCD(self.gdr[x], "SD", 15.2) cr = CCD(self.gcr[x], "SD", 15.2) df = float(ASD(dr.work) + ASD(cr.work)) df = CCD(df, "SD", 15.2) vt = CCD(self.gvt[x], "SD", 15.2) if self.totsonly == "Y": self.fpdf.drawText( "%-27s %s %s %s %s %s" % (t[1], qt.disp, dr.disp, cr.disp, df.disp, vt.disp)) else: self.fpdf.drawText( "%-34s %s %s %s %s %s" % (t[1], qt.disp, dr.disp, cr.disp, df.disp, vt.disp)) tot[0] = tot[0] + qt.work tot[1] = float(ASD(tot[1]) + ASD(dr.work)) tot[2] = float(ASD(tot[2]) + ASD(cr.work)) tot[3] = float(ASD(tot[3]) + ASD(df.work)) tot[4] = float(ASD(tot[4]) + ASD(vt.work)) self.fpdf.drawText() qt = CCD(tot[0], "SI", 8) dr = CCD(tot[1], "SD", 15.2) cr = CCD(tot[2], "SD", 15.2) df = CCD(tot[3], "SD", 15.2) vt = CCD(tot[4], "SD", 15.2) if self.totsonly == "Y": self.fpdf.drawText( "%-27s %s %s %s %s %s" % ("Grand Totals", qt.disp, dr.disp, cr.disp, df.disp, vt.disp)) else: self.fpdf.drawText( "%-34s %s %s %s %s %s" % ("Grand Totals", qt.disp, dr.disp, cr.disp, df.disp, vt.disp)) self.fpdf.drawText()
def printReport(self, recs): p = ProgressBar(self.opts["mf"].body, mxs=len(recs), esc=True) self.head = "%03u %-95s" % (self.opts["conum"], self.opts["conam"]) self.fpdf = MyFpdf(name=self.__class__.__name__, head=self.head) self.tots = [0, 0] self.pglin = 999 for num, dat in enumerate(recs): p.displayProgress(num) if p.quit: break chn = CCD(dat[self.col.index("drm_chain")], "UI", 3) acno = CCD(dat[self.col.index("drm_acno")], "NA", 7) name = CCD(dat[self.col.index("drm_name")], "NA", 30) rft = CCD(dat[self.col.index("drm_rfterms")], "UI", 3) per = CCD(dat[self.col.index("drm_int_per")], "UD", 5.2) if not per.work: if not self.defrte: continue per = CCD(self.defrte, "UD", 5.2) bals = Balances(self.opts["mf"], "DRS", self.opts["conum"], int(self.cutoff / 100), (chn.work, acno.work)) obal, tbal, ages = bals.doAllBals() if tbal <= 0: continue bal = CCD(tbal, "SD", 13.2) tm = int(rft.work / 30) if tm > 4: tm = 4 od = 0 for x in range(tm, 5): od = float(ASD(od) + ASD(ages[x])) odu = CCD(od, "SD", 13.2) if odu.work <= 0 or (self.minbal and odu.work < self.minbal): continue b = round((odu.work * per.work / 1200), 2) amt = CCD(b, "SD", 13.2) if self.pglin > self.fpdf.lpp: self.pageHeading() self.fpdf.drawText("%s %s %s %s %s %s %s %s" % \ (chn.disp, acno.disp, name.disp, rft.disp, bal.disp, odu.disp, per.disp, amt.disp)) self.pglin += 1 self.tots[0] = float(ASD(self.tots[0]) + ASD(odu.work)) self.tots[1] = float(ASD(self.tots[1]) + ASD(amt.work)) p.closeProgress() if self.fpdf.page and not p.quit: self.grandTotal() pdfnam = getModName(self.opts["mf"].rcdic["wrkdir"], self.__class__.__name__, self.opts["conum"], ext="pdf") self.fpdf.output(pdfnam, "F") doPrinter(mf=self.opts["mf"], conum=self.opts["conum"], pdfnam=pdfnam, header=self.tit, repprt=self.df.repprt, fromad=self.fromad, repeml=self.df.repeml)
def accountTotal(self): j = CCD(self.ctots[0], "SD", 13.2) k = CCD(self.ctots[1], "SD", 13.2) l = CCD(self.ctots[2], "SD", 13.2) m = CCD(self.ctots[3], "SD", 13.2) n = CCD(self.ctots[4], "SD", 13.2) self.fpdf.drawText() self.fpdf.drawText("%-42s %13s %13s %13s %13s %13s" % \ ("Account Totals", j.disp, k.disp, l.disp, m.disp, n.disp)) self.pglin += 3 self.ctots = [0, 0, 0, 0, 0, 0]
def doTotal(self): tot = self.sql.getRec("genjlt", cols=["round(sum(gjt_amnt),2)"], where=[("gjt_cono", "=", self.opts["conum"]), ("gjt_num", "=", self.num)], limit=1) if not tot[0]: tot = CCD(0, "SD", 15.2) else: tot = CCD(tot[0], "SD", 15.2) showInfo(self.opts["mf"].body, "Journal Total", tot.disp) self.df.focusField(self.df.frt, self.df.pag, self.df.col)
def grandTotal(self): sll = CCD(self.gtot[0], "SD", 12.2) cst = CCD(self.gtot[1], "SD", 12.2) prf = float(ASD(sll.work) - ASD(cst.work)) prf = CCD(prf, "SD", 11.2) if sll.work == 0: pcn = 0 else: pcn = round((prf.work * 100.0 / sll.work), 2) pcn = CCD(pcn, "SD", 7.2) self.fpdf.drawText("%-56s %-41s %s%s %s %s" % \ (" ", "Grand Totals", sll.disp, cst.disp, prf.disp, pcn.disp))
def grandTotal(self): self.fpdf.drawText() mq = CCD(self.gtot[0], "SD", 13.2) ms = CCD(self.gtot[1], "SD", 13.2) mp = CCD(self.gtot[2], "SD", 13.2) if ms.work == 0: mn = 0 else: mn = round((mp.work * 100.0 / ms.work), 2) mn = CCD(mn, "SD", 7.2) self.fpdf.drawText("%-20s %-41s %s %s %s %s" % \ ("", "Grand Totals", mq.disp, ms.disp, mp.disp, mn.disp))
def mainProcess(self): data = [] p = ProgressBar(self.opts["mf"].body, typ="Generating the Report", mxs=len(self.notes.data), esc=True) for num, dat in enumerate(self.notes.data): p.displayProgress(num) if p.quit: break desc = textFormat(dat[5], width=50) for n, d in enumerate(desc): if not n: chn = int(dat[2][:3]) acc = dat[2][3:].strip() nam = self.sql.getRec("drsmst", cols=["drm_name"], where=[("drm_cono", "=", self.opts["conum"]), ("drm_chain", "=", chn), ("drm_acno", "=", acc)], limit=1) if not nam: nam = "Unknown" data.append([ chn, acc, nam[0], dat[4], CCD(dat[3], "d1", 10).disp, dat[6], CCD(dat[7], "d1", 10).disp, d ]) else: data.append(["", "", "", "", "", "", "", d]) p.closeProgress() if not p.quit: name = self.__class__.__name__ head = ["Debtor's Masterfile Notes Listing"] cols = [["a", "NA", 3, "Chn", "y"], ["b", "NA", 7, "Acc-Num", "y"], ["c", "NA", 30, "Acc-Name", "y"], ["d", "NA", 20, "User-Name", "y"], ["e", "NA", 10, "Cap-Date", "y"], ["f", "UA", 1, "F", "y"], ["g", "NA", 10, "Act-Date", "y"], ["h", "NA", 50, "Details", "y"]] RepPrt(self.opts["mf"], conum=self.opts["conum"], conam=self.opts["conam"], name=name, tables=data, heads=head, cols=cols, ttype="D", repprt=self.notes.df.repprt, repeml=self.notes.df.repeml, fromad=self.fromad)
def mainProcess(self): data = [] p = ProgressBar(self.opts["mf"].body, typ="Generating the Report", mxs=len(self.notes.data), esc=True) for num, dat in enumerate(self.notes.data): p.displayProgress(num) if p.quit: break desc = textFormat(dat[5], width=50) for n, d in enumerate(desc): if not n: bkn = dat[2] des = self.sql.getRec( tables=["bkmmst", "bkmcon"], cols=["bkc_title", "bkc_sname", "bkc_names"], where=[("bkm_cono", "=", self.opts["conum"]), ("bkm_number", "=", int(bkn)), ("bkc_cono=bkm_cono", ), ("bkc_ccode=bkm_ccode", )], limit=1) data.append([ bkn, "%s %s %s" % (des[0], des[2][0], des[1]), dat[4], CCD(dat[3], "d1", 10).disp, dat[6], CCD(dat[7], "d1", 10).disp, d ]) else: data.append(["", "", "", "", "", "", d]) p.closeProgress() if not p.quit: name = self.__class__.__name__ head = ["Booking Master Notes Listing"] cols = [["a", "NA", 7, "Booking", "y"], ["b", "NA", 30, "Name", "y"], ["c", "NA", 20, "User-Name", "y"], ["d", "NA", 10, "Capt-Date", "y"], ["e", "UA", 1, "F", "y"], ["f", "NA", 10, "Actn-Date", "y"], ["g", "NA", 50, "Details", "y"]] RepPrt(self.opts["mf"], conum=self.opts["conum"], conam=self.opts["conam"], name=name, tables=data, heads=head, cols=cols, ttype="D", repprt=self.notes.df.repprt, repeml=self.notes.df.repeml, fromad=self.fromad)
def mainProcess(self): data = [] p = ProgressBar(self.opts["mf"].body, typ="Generating the Report", mxs=len(self.notes.data), esc=True) for num, dat in enumerate(self.notes.data): p.displayProgress(num) if p.quit: break desc = textFormat(dat[5], width=50) for n, d in enumerate(desc): if not n: grp = dat[2][:3].strip() cod = dat[2][3:].strip() des = self.sql.getRec("strmf1", cols=["st1_desc"], where=[("st1_cono", "=", self.opts["conum"]), ("st1_group", "=", grp), ("st1_code", "=", cod)], limit=1) data.append([ grp, cod, des[0], dat[4], CCD(dat[3], "d1", 10).disp, dat[6], CCD(dat[7], "d1", 10).disp, d ]) else: data.append(["", "", "", "", "", "", "", d]) p.closeProgress() if not p.quit: name = self.__class__.__name__ head = ["Debtor's Masterfile Notes Listing"] cols = [["a", "NA", 3, "Grp", "y"], ["b", "NA", 20, "Cod-Num", "y"], ["c", "NA", 30, "Description", "y"], ["d", "NA", 20, "User-Name", "y"], ["e", "NA", 10, "Cap-Date", "y"], ["f", "UA", 1, "F", "y"], ["g", "NA", 10, "Act-Date", "y"], ["h", "NA", 50, "Details", "y"]] RepPrt(self.opts["mf"], conum=self.opts["conum"], conam=self.opts["conam"], name=name, tables=data, heads=head, cols=cols, ttype="D", repprt=self.notes.df.repprt, repeml=self.notes.df.repeml, fromad=self.fromad)
def extractCost(self): qbal = 0 vbal = 0 self.ucost = 0 stt_rslt = self.sql.getRec("strtrn", cols=["round(sum(stt_qty),2)", "round(sum(stt_cost),2)"], where=[("stt_cono", "=", self.opts["conum"]), ("stt_group", "=", self.group), ("stt_code", "=", self.code), ("stt_loc", "=", self.loc1)]) if stt_rslt: qbal = CCD(stt_rslt[0][0], "SD", 13.2).work vbal = CCD(stt_rslt[0][1], "SD", 13.2).work if qbal: self.ucost = round((vbal / qbal), 2)
def typeTotal(self): k = CCD(self.tmt1, "SD", 13.2) l = CCD(self.tmt2, "SD", 13.2) m = CCD(self.tvat, "SD", 13.2) if self.totsonly == "Y": self.fpdf.drawText() self.pglin += 1 self.fpdf.drawText("%-32s %-32s %13s %13s %13s" % \ (" ", "Type-Totals", k.disp, l.disp, m.disp)) self.pglin += 1 self.tcnt = 0 self.tmt1 = 0 self.tmt2 = 0 self.tvat = 0
def grandTotal(self): mq = CCD(self.gtot[0], "SI", 9) ms = CCD(self.gtot[1], "SI", 9) mp = CCD(self.gtot[2], "SI", 9) if ms.work == 0: mn = 0 else: mn = round((mp.work * 100 / ms.work), 2) mn = CCD(mn, "SD", 7.2) yq = CCD(self.gtot[3], "SI", 9) ys = CCD(self.gtot[4], "SI", 9) yp = CCD(self.gtot[5], "SI", 9) if ys.work == 0: yn = 0 else: yn = round((yp.work * 100 / ys.work), 2) yn = CCD(yn, "SD", 7.2) if self.df.repprt[2] == "export": self.expdatas.append(["ULINES"]) self.expdatas.append([ "TOTAL", [ "", "", "Grand Totals", "", mq.work, ms.work, mp.work, mn.work, yq.work, ys.work, yp.work, yn.work ] ]) self.expdatas.append(["ULINED"]) return self.fpdf.drawText() self.fpdf.drawText("%-20s %-41s %s %s %s %s %s %s %s %s" % \ ("", "Grand Totals", mq.disp, ms.disp, mp.disp, mn.disp, yq.disp, ys.disp, yp.disp, yn.disp))
def printReport(self, recs): chrs = len(self.colsh) for f in self.forms: chrs += int(f[1]) if f[0][0].lower() == "s": chrs -= 2 else: chrs -= 1 if self.opebal == "Y": date = CCD(self.opts["period"][1][0], "D1", 10.0) self.head2 = "General Ledger Opening Balances as at %s%s" % \ (date.disp, "%s%s") else: sdate = CCD(self.start, "D2", 7) edate = CCD(self.end, "D2", 7) self.head2 = "General Ledger Trial Balance for Period %s to %s" % \ (sdate.disp, edate.disp) p = ProgressBar(self.opts["mf"].body, mxs=len(recs), esc=True) if "args" not in self.opts or "noprint" in self.opts["args"]: self.fpdf = MyFpdf(name=self.__class__.__name__, head=80) self.pglin = 999 for num, rec in enumerate(recs): p.displayProgress(num) if p.quit: break vals = self.getValues(rec) if not vals: continue if self.pglin > self.fpdf.lpp: self.pageHeading() self.fpdf.drawText("%s %1s %-40s %s %s" % (vals[0].disp, vals[1].disp, vals[2].disp, vals[3].disp, vals[4].disp)) self.pglin += 1 p.closeProgress() if self.fpdf.page and not p.quit: self.grandTotal() if "args" not in self.opts: pdfnam = getModName(self.opts["mf"].rcdic["wrkdir"], self.__class__.__name__, self.opts["conum"], ext="pdf") self.fpdf.output(pdfnam, "F") doPrinter(mf=self.opts["mf"], conum=self.opts["conum"], pdfnam=pdfnam, header=self.tit, repprt=self.repprt, repeml=self.repeml)
def printReport(self, recs): p = ProgressBar(self.opts["mf"].body, mxs=len(recs), esc=True) self.head = "%-3u %-71s" % (self.opts["conum"], self.opts["conam"]) self.fpdf = MyFpdf(name=self.__class__.__name__, head=self.head) self.pglin = 999 old_sys = recs[0][0] for num, dat in enumerate(recs): p.displayProgress(num) if p.quit: if self.fpdf.page: self.fpdf.drawText() self.fpdf.drawText("Print Job ABORTED") break self.sys = CCD(dat[0], "NA", 3) mes = CCD(dat[1], "UI", 3) det = CCD(dat[2], "NA", 150) fmt = textFormat(det.work, width=30) if len(fmt) > 5: l = 5 else: l = len(fmt) if old_sys != self.sys.work: old_sys = self.sys.work self.pglin = self.fpdf.lpp if self.pglin > (self.fpdf.lpp - 5): self.pageHeading() self.fpdf.drawText("%-14s %s %-10s %s" % ("", mes.disp, "", fmt[0])) self.pglin += 1 for q in range(1, len(fmt)): self.fpdf.drawText("%-29s %s" % ("", fmt[q])) self.pglin += 1 self.fpdf.drawText() for r in range(l, 5): fmt.append("") self.pglin += 1 p.closeProgress() if self.fpdf.page and not p.quit: pdfnam = getModName(self.opts["mf"].rcdic["wrkdir"], self.__class__.__name__, 0, ext="pdf") self.fpdf.output(pdfnam, "F") doPrinter(mf=self.opts["mf"], pdfnam=pdfnam, header=self.tit, repprt=self.df.repprt, fromad=self.fromad, repeml=self.df.repeml)
def mainProcess(self): data = [] p = ProgressBar(self.opts["mf"].body, typ="Generating the Report", mxs=len(self.notes.data), esc=True) for num, dat in enumerate(self.notes.data): p.displayProgress(num) if p.quit: break desc = textFormat(dat[5], width=50) for n, d in enumerate(desc): if not n: mem = int(dat[2].strip()) des = self.sql.getRec( "memmst", cols=["mlm_title", "mlm_initial", "mlm_surname"], where=[("mlm_cono", "=", self.opts["conum"]), ("mlm_memno", "=", mem)], limit=1) data.append([ mem, "%s %s %s" % tuple(des), dat[4], CCD(dat[3], "d1", 10).disp, dat[6], CCD(dat[7], "d1", 10).disp, d ]) else: data.append(["", "", "", "", "", "", d]) p.closeProgress() if not p.quit: name = self.__class__.__name__ head = ["Member's Ledger Notes Listing"] cols = [["a", "NA", 6, "Mem-No", "y"], ["b", "NA", 30, "Name", "y"], ["c", "NA", 20, "User-Name", "y"], ["d", "NA", 10, "Cap-Date", "y"], ["e", "UA", 1, "F", "y"], ["f", "NA", 10, "Act-Date", "y"], ["g", "NA", 50, "Details", "y"]] RepPrt(self.opts["mf"], conum=self.opts["conum"], conam=self.opts["conam"], name=name, tables=data, heads=head, cols=cols, ttype="D", repprt=self.notes.df.repprt, repeml=self.notes.df.repeml, fromad=self.fromad)
def printReport(self, recs): p = ProgressBar(self.opts["mf"].body, mxs=len(recs), esc=True) self.head = "%03u %-71s" % (self.opts["conum"], self.opts["conam"]) self.fpdf = MyFpdf(name=self.__class__.__name__, head=self.head) self.tots = 0 self.pglin = 999 for num, rec in enumerate(recs): p.displayProgress(num) if p.quit: break acc = CCD(rec[0], "NA", 7) name = CCD(rec[1], "NA", 30) bals = self.sql.getRec("rcaowt", cols=["sum(rot_tramt)"], where=[("rot_cono", "=", self.opts["conum"]), ("rot_acno", "=", acc.work), ("rot_curdt", "<=", self.cutoff)], limit=1) if self.zero == "Y" and not bals[0]: continue bal = CCD(bals[0], "SD", 13.2) if self.totsonly != "Y": if self.pglin > self.fpdf.lpp: self.pageHeading() self.fpdf.drawText("%s %-53s %s" % (acc.disp, name.disp, bal.disp)) self.pglin += 1 self.tots = float(ASD(self.tots) + ASD(bal.work)) p.closeProgress() if p.quit: return if self.totsonly == "Y": self.pageHeading() if self.fpdf.page: self.grandTotal() pdfnam = getModName(self.opts["mf"].rcdic["wrkdir"], self.__class__.__name__, self.opts["conum"], ext="pdf") self.fpdf.output(pdfnam, "F") doPrinter(mf=self.opts["mf"], conum=self.opts["conum"], pdfnam=pdfnam, header=self.tit, repprt=self.df.repprt, fromad=self.fromad, repeml=self.df.repeml)
def printHeader(self): self.fpdf.add_page() self.pgnum += 1 self.fpdf.setFont(style="B") self.fpdf.drawText(self.head) self.fpdf.drawText() self.fpdf.drawText("%-42s %-34s %-18s %-7s" % \ (self.name.disp, "", "Acc-Num:", self.acno.disp)) self.fpdf.drawText("%-42s %-34s %-18s %-7s" % \ (self.add1.disp, "", "Period", self.curdd)) self.fpdf.drawText("%-42s %-34s %-24s %-5s" % \ (self.add2.disp, "", "Page:", self.pgnum)) self.fpdf.drawText("%-42s %-34s %-15s %-10s" % \ (self.add3.disp, "", "", "")) self.fpdf.drawText("%-42s %-34s" % \ (self.pcod.disp, "")) self.fpdf.drawText() self.fpdf.drawText("%-11s %-17s %-5s %-17s %-14s %-20s %-6s %-7s" % \ ("Terms Base:", self.termsb.disp, "Days:", self.terms.disp, "Statement Day:", self.stday.disp, "Disc-%:", self.pydis.disp)) self.fpdf.drawText() self.fpdf.drawText("%-10s %-9s %-9s %-16s %-13s %-13s %-13s "\ "%-13s" % (" Date", "Reference", "Ref-Num-2", "Type", "Orig-Amount", "Paid-Amount", " Bal-Amount", " Balance")) self.fpdf.underLine(txt=self.head) self.fpdf.setFont() if self.pgnum > 1: j = CCD(self.totbal, "SD", 13.2) self.fpdf.drawText("%-31s %-5s %-67s %s" % \ ("", "B/Fwd", "", j.disp)) self.pglin = 11 else: self.pglin = 10 self.fpdf.setFont()
def groupTotal(self): val = CCD(self.stot, "SD", 12.2) self.fpdf.drawText() self.fpdf.drawText("%-20s %-41s %12s %12s" % \ ("", "Group Totals", "", val.disp)) self.fpdf.drawText() self.stot = 0
def doUpdateTables(self, memno, ctyp, code, desc, trdt, amt): batch = "PROFORM" self.refno += 1 refno = "PF%07i" % self.refno curdt = int(trdt / 100) # VAT Rate and Amount vrte = getVatRate(self.sql, self.opts["conum"], self.taxdf, trdt) if vrte is None: vrte = 0.0 vat = CCD(round(((amt * vrte) / 114), 2), "UD", 12.2).work # Members Ledger Transaction (memtrn) self.sql.insRec("memtrn", data=[ self.opts["conum"], memno, 1, refno, batch, trdt, amt, vat, curdt, ctyp, code, desc, self.taxdf, "", self.opts["capnm"], self.sysdtw, 0 ], unique="mlt_refno") # Members Category Record (memcat) self.sql.updRec("memcat", cols=["mlc_last"], data=[trdt], where=[("mlc_cono", "=", self.opts["conum"]), ("mlc_memno", "=", memno), ("mlc_type", "=", ctyp), ("mlc_code", "=", code)])
def doDat(self, frt, pag, r, c, p, i, w): self.pro = False self.ynd = False if w > self.nne: showError(self.opts["mf"].body, "Month End Error", "More than Two Month Ends are Missing, Aborting ...") return "rf" if w > self.nme: if self.nme == self.opts["period"][2][0]: ok = askQuestion(self.opts["mf"].body, "Year End Error", "A Year End as at %s Has Not Been Run\n\n"\ "Would You Like to Raise Pro-Forma Charges?" % self.opts["period"][2][1]) if ok == "yes": self.pro = True self.ynd = True else: ok = askQuestion(self.opts["mf"].body, "Month End Error", "A Month End as at %s Has Not Been Run\n\n"\ "Would You Like to Raise Pro-Forma Charges?" % CCD(self.nme, "D1", 10).disp) if ok == "yes": self.pro = True self.datew = w self.dated = self.df.t_disp[pag][0][p] self.curdt = int(w / 100)
def doStartDate(self, frt, pag, r, c, p, i, w): self.start = CCD(w, "d1", 10) self.dte = int("%08i000000" % self.start.work) if self.reptyp == "P": self.end = self.start self.df.loadEntry(frt, pag, p + 1, data=self.end.work) return "sk1"
def printReport(self, recs): p = ProgressBar(self.opts["mf"].body, mxs=len(recs), esc=True) self.head = "%03u %-115s" % (self.opts["conum"], self.opts["conam"]) self.fpdf = MyFpdf(name=self.__class__.__name__, head=self.head) tot = 0 self.pglin = 999 for num, dat in enumerate(recs): p.displayProgress(num) if p.quit: break emp = CCD(dat[0], "UI", 5) nam = CCD("%s, %s" % (dat[1], dat[2].split()[0]), "NA", 40) lon = CCD(dat[3], "UI", 2) des = CCD(dat[4], "NA", 20) cod = CCD(dat[5], "UI", 2) dte = CCD(dat[6], "d1", 10) per = CCD(dat[7], "UD", 6.2) ded = CCD(dat[8], "SD", 13.2) bal = CCD(dat[9], "SD", 13.2) if self.zero == "Y" and not bal.work: continue tot = float(ASD(tot) + ASD(bal.work)) if self.pglin > self.fpdf.lpp: self.pageHeading() self.fpdf.drawText( "%s %s %s %s %s %s %s %s %s" % (emp.disp, nam.disp, lon.disp, des.disp, cod.disp, dte.disp, per.disp, ded.disp, bal.disp)) self.pglin += 1 p.closeProgress() if self.fpdf.page and not p.quit: tot = CCD(tot, "SD", 13.2) self.fpdf.drawText() self.fpdf.drawText("%5s %-100s%s" % ("", "Total", tot.disp)) pdfnam = getModName(self.opts["mf"].rcdic["wrkdir"], self.__class__.__name__, self.opts["conum"], ext="pdf") self.fpdf.output(pdfnam, "F") doPrinter(mf=self.opts["mf"], conum=self.opts["conum"], pdfnam=pdfnam, header=self.tit, repprt=self.df.repprt, fromad=self.fromad, repeml=self.df.repeml)
def batchTotal(self): k = CCD(self.bmt1, "SD", 13.2) l = CCD(self.bmt2, "SD", 13.2) m = CCD(self.bvat, "SD", 13.2) if self.totsonly != "Y": self.fpdf.drawText() self.pglin += 1 self.fpdf.drawText("%-32s %-32s %13s %13s %13s" % \ (" ", "Batch " + self.batch + " Totals", k.disp, l.disp, m.disp)) self.pglin += 1 if self.totsonly == "N": self.fpdf.drawText() self.pglin += 1 self.bcnt = 0 self.bmt1 = 0 self.bmt2 = 0 self.bvat = 0
def typeTotal(self): j = CCD(self.tdrs, "SD", 13.2) k = CCD(self.tcrs, "SD", 13.2) if self.totsonly == "Y": self.fpdf.drawText() self.fpdf.drawText("%-62s %13s %13s" % ("Type Totals", j.disp, k.disp)) self.pglin += 2 else: self.fpdf.drawText("%-31s %-30s %13s %13s" % (" ", "Type Totals", j.disp, k.disp)) self.pglin += 1 self.fpdf.drawText() self.pglin += 1 self.tqty = 0 self.tdrs = 0 self.tcrs = 0
def typeTotal(self): j = CCD(self.tamt, "SD", 13.2) k = CCD(self.tded, "SD", 13.2) if self.totsonly == "Y": self.fpdf.drawText() self.fpdf.drawText("%-53s %13s %13s" % ("Type Totals", j.disp, k.disp)) self.pglin += 2 else: self.fpdf.drawText("%-29s %-44s %13s %13s" % \ (" ", "Type Totals", j.disp, k.disp)) self.pglin += 1 self.fpdf.drawText() self.pglin += 1 self.tqty = 0 self.tamt = 0 self.tded = 0
def doRaiseExtra(self, num): for x in ("W", "E"): ref = CCD((num + 1), "Na", 9).work num += 1 if x == "W": if not self.con[10]: continue amt = self.con[10] typ = self.con[11] des = "Basic Water Charge" elif x == "E": if not self.con[12]: continue amt = self.con[12] typ = self.con[13] des = "Basic Electricity Charge" # Tenant Transaction data = self.con[:5] data.extend([ 1, ref, self.batch, self.nxtdt, 4, amt, 0, self.nxtcd, des, "", "", self.opts["capnm"], self.sysdtw, 0 ]) self.sql.insRec("rcatnt", data=data) if self.glint == "Y": gld = "%7s %7s %7s" % tuple(self.con[1:4]) data = [ self.opts["conum"], self.rcatnt, self.nxtcd, self.nxtdt, 4, num, self.batch, amt, 0, gld, "", "", 0, self.opts["capnm"], self.sysdtw, 0 ] self.sql.insRec("gentrn", data=data) amt = float(ASD(0) - ASD(amt)) if typ == 4: # Services - Owner Recovery des = "Services Recovery on %s" % self.con[2] data = [ self.opts["conum"], self.con[1], 4, num, self.batch, self.nxtdt, amt, 0, self.nxtcd, des, "", "", self.opts["capnm"], self.sysdtw, 0 ] self.sql.insRec("rcaowt", data=data) if self.glint == "Y": # General Ledger Transaction for Owner Control gld = "%7s Services Recovery" % self.con[2] data = [ self.opts["conum"], self.rcaown, self.nxtcd, self.nxtdt, 4, num, self.batch, amt, 0, gld, "", "", 0, self.opts["capnm"], self.sysdtw, 0 ] self.sql.insRec("gentrn", data=data) elif self.glint == "Y": # Non Recovery - Update Rental Control data = [ self.opts["conum"], self.rcatrx, self.nxtcd, self.nxtdt, 4, num, self.batch, amt, 0, gld, "", "", 0, self.opts["capnm"], self.sysdtw, 0 ] self.sql.insRec("gentrn", data=data)