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 if len(dat[2].strip()) < 14: continue desc = textFormat(dat[5], width=50) for n, d in enumerate(desc): if not n: own = dat[2][:7].strip() cod = dat[2][7:14].strip() acc = dat[2][14:].strip() nam = self.sql.getRec("rcatnm", cols=["rtn_name"], where=[("rtn_cono", "=", self.opts["conum"]), ("rtn_owner", "=", own), ("rtn_code", "=", cod), ("rtn_acno", "=", acc)], limit=1) if not nam: continue data.append([ own, cod, 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 = ["Rental's Masterfile Notes Listing"] cols = [["a", "NA", 7, "Own-Cod", "y"], ["b", "NA", 7, "Prm-Cod", "y"], ["c", "NA", 7, "Acc-Num", "y"], ["d", "NA", 30, "Acc-Name", "y"], ["e", "NA", 20, "User-Name", "y"], ["f", "NA", 10, "Cap-Date", "y"], ["g", "UA", 1, "F", "y"], ["h", "NA", 10, "Act-Date", "y"], ["i", "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: 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: 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 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 = "%-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 doEnd(self): self.df.closeProcess() data = [] recs = self.sql.getRec(tables=["bwlflt", "bwlfls"], cols=["bft_skip", "bft_player", "bft_position", "bft_shotsf", "bft_shotsa", "bft_points", "bft_rating1", "bft_rating2", "bft_rating3", "bft_rating4", "bft_remarks"], where=[("bft_cono", "=", self.opts["conum"]), ("bft_fmat", "=", self.fmat), ("bft_type", "=", self.ftyp), ("bft_date", "=", self.date), ("bfs_cono=bft_cono",), ("bfs_fmat=bft_fmat",), ("bfs_league", "=", "M"), ("bfs_code=bft_team",)], order="bfs_code, bft_skip, bft_position") for player in recs: pos = player[2] his = player[5 + pos] if pos == 1: names = self.sql.getRec(tables=["bwlflt", "bwltab"], cols=["btb_surname", "btb_names"], where=[("bft_cono", "=", self.opts["conum"]), ("bft_fmat", "=", self.fmat), ("bft_type", "=", self.ftyp), ("bft_date", "=", self.date), ("bft_skip", "=", player[0]), ("btb_cono=bft_cono",), ("btb_tab=bft_player",)], order="bft_position") for nm in names: nm[0] = self.getName(nm[0], nm.pop(1)) sc = self.sql.getRec("bwlflt", cols=["bft_rating%s" % pos], where=[("bft_cono", "=", self.opts["conum"]), ("bft_fmat", "=", self.fmat), ("bft_type", "=", self.ftyp), ('bft_date', '=', self.date), ("bft_skip", "=", player[0])]) tot = sc[0][0] + sc[1][0] + sc[2][0] + sc[3][0] tav = self.getHistory(player[1]) if tav == "error": break if not tav: tav = tot if self.forms == 1: if player[1] == player[0]: desc = textFormat(player[10], width=70) if desc: text = desc.pop(0) else: text = "" data.append([names[player[2]-1][0], self.pos[pos], player[3], player[4], player[5], sc[0][0], tav, text]) else: if his: div = 4.0 else: div = 3.0 data.append([names[player[2]-1][0], self.pos[pos], player[3], player[4], player[5], sc[0][0], sc[1][0], sc[2][0], sc[3][0], round(tot / div, 1), his, round((tot - his) / 3.0, 1), tav, player[10]]) if pos == 4: data.append(["BLANK"]) if tav != "error": head = ("Match Assessment for %s Match Played on %s" % \ (self.fnam, self.disp),) cols = [ ["a", "NA", 20, "Player", "y"], ["b", "NA", 4, "Posn", "y"], ["c", "UI", 3, "For", "y"], ["d", "UI", 3, "Agt", "y"], ["e", "UI", 1, "P", "y"]] if self.forms == 1: cols.append(["f", "UD", 4.1, " Ass", "y"]) elif self.forms == 4: cols.extend([ ["f", "UD", 4.1, " Skp", "y"], ["g", "UD", 4.1, " 3rd", "y"], ["h", "UD", 4.1, " 2nd", "y"], ["i", "UD", 4.1, "Lead", "y"], ["j", "UD", 4.1, " Avg", "y"], ["k", "UD", 4.1, " Own", "y"], ["l", "UD", 4.1, " Adj", "y"]]) cols.extend([ ["m", "UD", 4.1, " ATD", "y"], ["n", "NA", 70, "Remarks", "y"]]) RepPrt(self.opts["mf"], name=self.__class__.__name__, tables=data, heads=head, cols=cols, ttype="D", repprt=self.df.repprt, repeml=self.df.repeml, fromad=self.fromad) self.opts["mf"].closeLoop()
def doPrint(self): titl = "Select the Required Print Options" cols = (("a", "C", 1, "UA", "N"), ("b", "Description", 30, "NA", "N")) if self.df.last[0][0] != 1: data = [("A", "Print Card")] else: data = [] data.extend([("B", "Print Directory"), ("C", "Print Contacts"), ("D", "Print Notes")]) ss = SelectChoice(self.df.mstFrame, titl, cols, data, sort=False) self.opts["mf"].updateStatus("") if not ss.selection: self.df.focusField(self.df.frt, self.df.pag, self.df.col) return state = self.df.disableButtonsTags() self.df.setWidget(self.df.mstFrame, state="hide") if ss.selection[1] == "A": head = ["Card for %s" % self.name] whr = [("tdm_name", "=", self.name)] TabPrt(self.opts["mf"], name=self.__class__.__name__, tabs="telmst", head=head, where=whr) elif ss.selection[1] == "D": self.notes = NotesPrint(self.opts["mf"], 0, "", "TEL", loop=False) if not self.notes.data: pass else: 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: data.append([ dat[2], 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 = ["Telephone Directory Notes Listing"] cols = [["a", "NA", 30, "Name", "y"], ["b", "NA", 20, "User-Name", "y"], ["c", "NA", 10, "Cap-Date", "y"], ["d", "UA", 1, "F", "y"], ["e", "NA", 10, "Act-Date", "y"], ["f", "NA", 50, "Details", "y"]] RepPrt(self.opts["mf"], name=name, tables=data, heads=head, cols=cols, ttype="D", repprt=self.notes.df.repprt, repeml=self.notes.df.repeml) else: tit = ["Telephone Directory"] grp = { "stype": "R", "tables": ("telgrp", ), "cols": (("tdg_group", "UA", 3, "Grp"), ("tdg_desc", "NA", 30, "Description")), "order": "tdg_desc" } fld = ((("T", 0, 0, 0), "IUA", 3, "Group", "", "", "N", self.prGrp, grp, None, ("efld", )), ) self.pr = TartanDialog(self.opts["mf"], tops=True, title=tit, eflds=fld, tend=((self.prEnd, "y"), ), txit=(self.prExit, )) self.pr.mstFrame.wait_window() if not self.prxit: if self.prgrp: if ss.selection[1] == "B": head = ["Details for Group %s" % self.prgrp] whr = [("tdm_group", "=", self.prgrp)] else: head = ["Contacts for Group %s" % self.prgrp] whr = [("tdm_group", "=", self.prgrp), ("tdc_name=tdm_name", )] else: if ss.selection[1] == "B": head = ["Cards for All Groups"] whr = [] else: head = ["Contacts for All Groups"] whr = [] if ss.selection[1] == "B": tab = ["telmst"] col = [ "tdm_name", "tdm_telno", "tdm_faxno", "tdm_mobile", "tdm_email" ] else: tab = ["telmst", "telcon"] col = [ "tdm_name", "tdc_contact", "tdc_desig", "tdc_telno", "tdc_celno", "tdc_email" ] prtdia = (("Y", "V"), ("Y", "N")) RepPrt(self.opts["mf"], name=self.__class__.__name__, tables=tab, heads=head, cols=col, where=whr, order="tdm_name", prtdia=prtdia) self.df.setWidget(self.df.mstFrame, state="show") self.df.enableButtonsTags(state=state) self.df.focusField(self.df.frt, self.df.pag, self.df.col)
def doEnd(self): self.df.closeProcess() if self.allc == "N": recs = getSingleRecords(self.opts["mf"], "drsrcm", ("dcm_num", "dcm_desc"), where=self.wher) else: recs = self.sql.getRec("drsrcm", where=self.wher) if recs: if self.inv == "Y" and self.df.repeml[1] == "N": self.fpdf = MyFpdf(orientation="L", fmat="A4", name=self.__class__.__name__, head=128) for dcm in recs: num = dcm[self.sql.drsrcm_col.index("dcm_num")] desc = dcm[self.sql.drsrcm_col.index("dcm_desc")] day = dcm[self.sql.drsrcm_col.index("dcm_day")] if day == 30: self.trdt = mthendDate((self.bh.curdt * 100) + 1) else: self.trdt = (self.bh.curdt * 100) + day vat = dcm[self.sql.drsrcm_col.index("dcm_vat")] self.vatrte = getVatRate(self.sql, self.opts["conum"], vat, self.trdt) glac = dcm[self.sql.drsrcm_col.index("dcm_glac")] nxt = self.sql.getRec("drstrn", cols=["max(drt_ref1)"], where=[("drt_cono", "=", self.opts["conum"]), ("drt_ref1", "like", "RC%03i%s" % (num, "%"))], limit=1) if not nxt[0]: nxt = 0 else: nxt = int(nxt[0][5:]) tot_val = 0 tot_vat = 0 rec = self.sql.getRec("drsrct", where=[("dct_cono", "=", self.opts["conum"]), ("dct_num", "=", num), ("dct_start", "<=", self.bh.curdt), ("dct_end", ">=", self.bh.curdt)]) col = self.sql.drsrct_col for dct in rec: self.chain = dct[col.index("dct_chain")] self.acno = dct[col.index("dct_acno")] # Check for Redundancy chk = self.sql.getRec("drsmst", cols=["drm_stat"], where=[("drm_cono", "=", self.opts["conum"]), ("drm_chain", "=", self.chain), ("drm_acno", "=", self.acno)], limit=1) if chk[0] == "X": continue # Check for Valid Period charge = False start = dct[col.index("dct_start")] year = int(start / 100) month = start % 100 while start <= self.bh.curdt: if start == self.bh.curdt: charge = True break month += self.mths if month > 12: year += 1 month -= 12 start = (year * 100) + month if not charge: continue # Create Transactions nxt += 1 self.ref = "RC%03i%04i" % (num, nxt) self.detail = textFormat(dct[col.index("dct_detail")], 73) self.amnt = dct[col.index("dct_amnt")] self.vmnt = round(self.amnt * self.vatrte / 100, 2) self.tmnt = float(ASD(self.amnt) + ASD(self.vmnt)) tot_val = float(ASD(tot_val) + ASD(self.amnt)) tot_vat = float(ASD(tot_vat) + ASD(self.vmnt)) # Debtors (drstrn) self.sql.insRec("drstrn", data=[self.opts["conum"], self.chain, self.acno, 1, self.ref, self.bh.batno, self.trdt, self.ref2, self.tmnt, self.vmnt, self.bh.curdt, self.detail[0], vat, "Y", self.opts["capnm"], self.sysdtw, 0]) if self.inv == "Y": # Create Invoice self.doInvoice() # VAT (ctlvtf) amnt = float(ASD(0) - ASD(self.amnt)) vmnt = float(ASD(0) - ASD(self.vmnt)) data = [self.opts["conum"], vat, "O", self.bh.curdt, "D", 1, self.bh.batno, self.ref, self.trdt, self.acno, self.detail[0], amnt, vmnt, 0, self.opts["capnm"], self.sysdtw, 0] self.sql.insRec("ctlvtf", data=data) if self.glint == "Y": ref = "RC%07i" % num # Update Debtors Control amnt = float(ASD(tot_val) + ASD(tot_vat)) data = (self.opts["conum"], self.drsctl, self.bh.curdt, self.trdt, 1, ref, self.bh.batno, amnt, 0, desc, "", "", 0, self.opts["capnm"], self.sysdtw, 0) self.sql.insRec("gentrn", data=data) # Update Sales Account amnt = float(ASD(0) - ASD(tot_val)) data = (self.opts["conum"], glac, self.bh.curdt, self.trdt, 1, ref, self.bh.batno, amnt, 0, desc, "", "", 0, self.opts["capnm"], self.sysdtw, 0) self.sql.insRec("gentrn", data=data) amnt = float(ASD(0) - ASD(tot_vat)) if amnt: # Update VAT Control data = (self.opts["conum"], self.vatctl, self.bh.curdt, self.trdt, 1, ref, self.bh.batno, amnt, 0, desc, "", "", 0, self.opts["capnm"], self.sysdtw, 0) self.sql.insRec("gentrn", data=data) # Update Recurring Charge (drsrcm) self.sql.updRec("drsrcm", cols=["dcm_last"], data=[self.bh.curdt], where=[("dcm_cono", "=", self.opts["conum"]), ("dcm_num", "=", num), ("dcm_freq", "=", self.freq)]) self.opts["mf"].dbm.commitDbase() if self.inv == "Y" and self.df.repeml[1] == "N": self.doPrint() self.opts["mf"].closeLoop()