Example #1
0
 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)
Example #2
0
 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
Example #3
0
 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"))
Example #4
0
 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)
Example #5
0
 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()
Example #6
0
 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)
Example #7
0
 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]
Example #8
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)
Example #9
0
 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))
Example #10
0
 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))
Example #11
0
 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)
Example #12
0
 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)
Example #13
0
 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)
Example #14
0
 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)
Example #15
0
 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
Example #16
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))
Example #17
0
 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)
Example #18
0
 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)
Example #19
0
 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)
Example #20
0
 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)
Example #21
0
 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()
Example #22
0
 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
Example #23
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)])
Example #24
0
 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)
Example #25
0
 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"
Example #26
0
 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)
Example #27
0
 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
Example #28
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
Example #29
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
Example #30
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)