def on_from_clicked(self, button): entry = self.from_entry dbconf = dbconfig.dbConfig() #3:from subj? 5:from key if self.type_index is not None and self.type_configs[self.type_index][3]: if self.type_configs[self.type_index][5] == None: sub = subjects.Subjects() else: keys = self.type_configs[self.type_index][5] parent_id=[] for key in keys.split(','): if key == 'cash': val = dbconf.get_value(key) sub = share.config.db.session.query(Subject).filter(Subject.id == val).first() pID = sub.parent_id if pID !=0: parent_id.append(pID) else: parent_id.append(key) else: parent_id+=dbconf.get_int_list(key) sub = subjects.Subjects(parent_id=parent_id) sub.connect('subject-selected', self.on_subject_selected, entry, False) else: cust = customers.Customer() cust.connect('customer-selected', self.on_customer_selected, entry, False) cust.viewCustomers(True)
def add_account(self, id, name, number="", type=0, owner="", bank=1, branch="", address="", phone="", webpage="", desc=""): name = unicode(name) number = unicode(number) owner = unicode(owner) bank = unicode(bank) branch = unicode(branch) address = unicode(address) phone = unicode(phone) webpage = unicode(webpage) desc = unicode(desc) bank_id = bank dbconf = dbconfig.dbConfig() if id == -1: bank_account = BankAccounts(name, number, type, owner, bank_id, branch, address, phone, webpage, desc) config.db.session.add(bank_account) config.db.session.commit() sub = class_subject.Subjects() # accountId = str(bank_account.accId) # accSubjectCode = accountId.rjust(3 - len(accountId)+1 , '0') sub.add(dbconf.get_int('bank'), name) else: query = config.db.session.query(BankAccounts).filter( BankAccounts.accId == id) prevName = query.first().accName q = config.db.session.query(Subject).filter( Subject.parent_id == (dbconf.get_int('bank'))).filter( Subject.name == prevName) if q: q.update({Subject.name: name}) query.update({ BankAccounts.accName: name, BankAccounts.accNumber: number, BankAccounts.accType: type, BankAccounts.accOwner: owner, BankAccounts.accBank: bank_id, BankAccounts.accBankBranch: branch, BankAccounts.accBankAddress: address, BankAccounts.accBankPhone: phone, BankAccounts.accBankWebPage: webpage, BankAccounts.accDesc: desc }) if id == -1 and bank_account: return bank_account.accId return id
def delete_account(self, id): query = config.db.session.query(BankAccounts).filter( BankAccounts.accId == id).first() if query: accName = query.accName query.delete() bankSubject = dbconfig.dbConfig().get_int('bank') config.db.session.query(Subject).filter( Subject.parent_id == bankSubject).filter( Subject.name == accName).delete() config.db.session.commit()
def on_to_clicked(self, button): entry = self.to_entry dbconf = dbconfig.dbConfig() if self.type_configs[self.type_index][4]: if self.type_configs[self.type_index][6] == None: sub = subjects.Subjects() else: keys = self.type_configs[self.type_index][6] parent_id=[] for key in keys.split(','): parent_id+=dbconf.get_int_list(key) sub = subjects.Subjects(parent_id=parent_id) sub.connect('subject-selected', self.on_subject_selected, entry, True) else: cust = customers.Customer() cust.connect('customer-selected', self.on_customer_selected, entry, True) cust.viewCustomers(True)
def on_conf_key_changed(self, entry): add = self.builder.get_object('add_config') entry.set_icon_from_stock(gtk.ENTRY_ICON_SECONDARY, None) key = entry.get_text() if len(key) == 0: add.set_sensitive(False) return conf = dbconfig.dbConfig() if conf.exists(key): entry.set_icon_from_stock(gtk.ENTRY_ICON_SECONDARY, gtk.STOCK_DIALOG_WARNING) entry.set_icon_tooltip_text(gtk.ENTRY_ICON_SECONDARY, 'Key already exists') add.set_sensitive(False) return add.set_sensitive(True)
def on_type_change(self, combo): iter = combo.get_active_iter() if iter == None: return self.chequeui.new_cheques = [] self.chequeui.spend_cheques = [] model = combo.get_model() index = model.get(iter, 0)[0] self.type_index = int(index) save_button = self.builder.get_object('save-button') non_cash, discount, spend_cheque = self.type_configs[self.type_index][:3] self.builder.get_object('discount-button').set_sensitive(discount) self.discount_entry.set_sensitive(discount) self.builder.get_object('list-cheque-button').set_sensitive(spend_cheque) self.builder.get_object('spend-cheque-label').set_sensitive(spend_cheque) self.builder.get_object('non-cash-payment-label').set_sensitive(non_cash) self.builder.get_object('non_cash_payment_button').set_sensitive(non_cash) self.cash_payment_entry.set_sensitive((non_cash or spend_cheque)) self.from_entry.set_text("") self.to_entry.set_text("") self.cash_payment_entry.set_text('0') self.total_credit_entry.set_text('0') self.discount_entry.set_text('0') dbconf = dbconfig.dbConfig() if self.type_index == 5: self.builder.get_object('to-button').set_sensitive(False) query = share.config.db.session.query(Subject).select_from(Subject) query = query.filter(Subject.id == dbconf.get_int('bank-wage')) query = query.first() self.to_id = query.id self.to_entry.set_text(query.name) else: self.builder.get_object('to-button').set_sensitive(True)
def on_conf_key_changed(self, entry): add = self.builder.get_object('add_config') entry.set_icon_from_stock(Gtk.EntryIconPosition.SECONDARY, None) key = entry.get_text() if len(key) == 0: add.set_sensitive(False) return conf = dbconfig.dbConfig() if conf.exists(key): entry.set_icon_from_stock(Gtk.EntryIconPosition.SECONDARY, Gtk.STOCK_DIALOG_WARNING) entry.set_icon_tooltip_text(Gtk.EntryIconPosition.SECONDARY, 'Key already exists') add.set_sensitive(False) return add.set_sensitive(True)
def applyConfigSetting(self): conf = dbconfig.dbConfig() sub = class_subject.Subjects() # self.config_items( 0 => item_id, 1 => get_val function, 2 => exists in subjects) for item in self.config_items: val = item[1]() if val == None or val == '': #TODO Can be return on empty row val = conf.get_default(item[3]) elif item[2] == True: ids = '' val = unicode(val) for name in val.split(','): ids += '%d,' % sub.get_id_from_name(name) val = ids[:-1] conf.set_value(item[0], val, False) config.db.session.commit()
def on_add_config_clicked(self, button): key = self.builder.get_object('conf_key').get_text() desc = self.builder.get_object('conf_desc').get_text() if self.builder.get_object('conf_mode_file').get_active(): mode = 0 elif self.builder.get_object('conf_mode_entry').get_active(): mode = 1 elif self.builder.get_object('conf_mode_single_subject').get_active(): mode = 2 else: mode = 3 self.builder.get_object('conf_key').set_text('') self.builder.get_object('conf_desc').set_text('') self.builder.get_object('conf_mode_file').set_active(True) conf = dbconfig.dbConfig() conf.add(key, mode, desc) self.setup_config_tab()
def add_account(self, id, name, number, type, owner, bank, branch, address, phone, webpage, desc): name = unicode(name) number = unicode(number) owner = unicode(owner) bank = unicode(bank) branch = unicode(branch) address = unicode(address) phone = unicode(phone) webpage = unicode(webpage) desc = unicode(desc) bank_id = config.db.session.query(BankNames).select_from(BankNames).filter(BankNames.Name == bank).first().Id if id == -1: bank_account = BankAccounts(name, number, type, owner, bank_id, branch, address, phone, webpage, desc) config.db.session.add(bank_account) sub = class_subject.Subjects() dbconf = dbconfig.dbConfig() sub.add(dbconf.get_int('bank'), name, str(bank_account.accId).rjust(2, '0')) else: query = config.db.session.query(BankAccounts).select_from(BankAccounts) query = query.filter(BankAccounts.accId == id) query.update( {BankAccounts.accName : name, BankAccounts.accNumber : number, BankAccounts.accType : type, BankAccounts.accOwner : owner, BankAccounts.accBank : bank_id, BankAccounts.accBankBranch : branch, BankAccounts.accBankAddress : address, BankAccounts.accBankPhone : phone, BankAccounts.accBankWebPage : webpage, BankAccounts.accDesc : desc}) config.db.session.commit() if id == -1: return bank_account.accId return id
def on_save_button_clicked(self, button): result = {} result['type'] = self.type_index result['total_value'] = self.total_credit_entry.get_float() result['cash_payment'] = self.cash_payment_entry.get_float() result['non_cash_payment'] = self.builder.get_object('non-cash-payment-label').get_text() result['spend_cheque'] = self.builder.get_object('spend-cheque-label').get_text() result['discount'] = self.discount_entry.get_float() result['non-cash-payment-info'] = None # TODO: = non cash payment infos result['spend-cheque-info'] = None # TODO = spent cheque infos result['desc'] = self.builder.get_object('desc').get_text() result['from'] = self.from_id result['to'] = self.to_id dbconf = dbconfig.dbConfig() #Save data in data base for single use if self.liststore == None: type(result['from']) document = class_document.Document() document.add_notebook(result['from'], result['total_value'], unicode(result['desc'])) document.add_notebook(result['to'] , -result['cash_payment'], unicode(result['desc'])) if result['discount'] : document.add_notebook(dbconf.get_int('sell-discount'), -result['discount'], result['desc']) cl_cheque = class_cheque.ClassCheque() for cheque in self.chequeui.new_cheques: if self.mode == 'our': document.add_cheque(dbconf.get_int('our_cheque'), -cheque['amount'], cheque['desc'], cheque['serial']) else: document.add_cheque(dbconf.get_int('other_cheque'), -cheque['amount'], cheque['desc'], cheque['serial']) #spendble cheque for sp_cheque in self.chequeui.spend_cheques: cl_cheque.update_status(sp_cheque['serial'],5) document.add_cheque(dbconf.get_int('other_cheque'), -sp_cheque['amount'] , unicode('kharj shodeh') , sp_cheque['serial']) result = document.save() if result < 0: dialog = gtk.MessageDialog(None, gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, 'Failed, %s' % document.get_error_message(result)) dialog.run() dialog.destroy() return if self.type_configs[self.type_index][3] == True: # from is subject customer_id = 0 else: # from is customer customer_id = share.config.db.session.query(Customers).select_from(Customers).filter(Customers.custSubj==self.from_id).first().custId for cheque in self.chequeui.new_cheques: notebook_id =document.cheques_result[cheque['serial']] cl_cheque.add_cheque(cheque['amount'], cheque['write_date'], cheque['due_date'], cheque['serial'], cheque['status'], customer_id, cheque['bank_account_id'], result, notebook_id, cheque['desc']) cl_cheque.save() cl_cheque.save_cheque_history(self.current_time) self.on_destroy(self.builder.get_object('general')) share.mainwin.silent_daialog(_('successfully added. Document number : %d') % document.number) # infobar = gtk.InfoBar() # label = gtk.Label(_('successfully added. Document number : %d') % document.number) # infobar.get_content_area().add(label) # width , height = self.main_window_background.window.get_size() # infobar.set_size_request(width, -1) # self.main_window_background.put(infobar ,0 , 0) # infobar.show_all() # # glib.timeout_add_seconds(3, lambda w: w.destroy(), infobar) #Store result in list store for showing in addeditdoc else: mysubject = Subjects() numrows = len(self.liststore) + 1 #document.add_notebook(result['from'], result['total_value'], result['desc']) self.liststore.append ((LN(numrows), LN(self.from_code), self.from_name, LN(0), LN(result['total_value']), result['desc'], None)) #self.liststore.append ((numrows, code, sub.name, debt, credit, desc, None)) #document.add_notebook(result['to'] , -result['cash_payment'], result['desc']) numrows += 1 self.liststore.append ((LN(numrows), LN(self.to_code), self.to_name, LN(result['cash_payment']), LN(0), result['desc'], None)) if result['discount'] : numrows += 1 self.liststore.append ((LN(numrows), LN(mysubject.get_code(dbconf.get_int('sell-discount'))), mysubject.get_name(dbconf.get_int('sell-discount')), LN(result['discount']), LN(0), result['desc'], None)) #cl_cheque = class_cheque.ClassCheque() #or cheque in self.chequeui.new_cheques: # if self.mode == 'our': # document.add_cheque(dbconf.get_int('our_cheque'), -cheque['amount'], cheque['desc'], cheque['serial']) # else: # document.add_cheque(dbconf.get_int('other_cheque'), -cheque['amount'], cheque['desc'], cheque['serial']) #spendble cheque #for sp_cheque in self.chequeui.spend_cheques: # cl_cheque.update_status(sp_cheque['serial'],5) # document.add_cheque(dbconf.get_int('other_cheque'), -sp_cheque['amount'] , unicode('kharj shodeh') , sp_cheque['serial']) #if self.type_configs[self.type_index][3] == True: # from is subject # customer_id = 0 #else: # from is customer # customer_id = config.db.session.query(Customers).select_from(Customers).filter(Customers.custSubj==self.from_id).first().custId #for cheque in self.chequeui.new_cheques: # notebook_id =document.cheques_result[cheque['serial']] # cl_cheque.add_cheque(cheque['amount'], cheque['write_date'], cheque['due_date'], # cheque['serial'], cheque['status'], # customer_id, cheque['bank_account_id'], # result, notebook_id, cheque['desc']) #cl_cheque.save() #cl_cheque.save_cheque_history(self.current_time) self.on_destroy(self.builder.get_object('general'))
def on_save_button_clicked(self, button): share.config.db.session.rollback() result = {} result['type'] = self.type_index result['total_value'] = self.total_credit_entry.get_float() result['cash_payment'] = self.cash_payment_entry.get_float() result['non_cash_payment'] = self.builder.get_object('non-cash-payment-label').get_text() result['spend_cheque'] = self.builder.get_object('spend-cheque-label').get_text() result['discount'] = self.discount_entry.get_float() result['non-cash-payment-info'] = None # TODO: = non cash payment infos result['spend-cheque-info'] = None # TODO = spent cheque infos result['desc'] = self.builder.get_object('desc').get_text() result['from'] = self.from_id result['to'] = self.to_id dbconf = dbconfig.dbConfig() #Save data in data base for single use if self.liststore == None: type(result['from']) if self.type_index is not None and self.type_configs[self.type_index][3]: mode = 'our' else: mode = 'other' desc = result['desc'] if desc =="": desc = self.type_names[self.type_index][1] document = class_document.Document() if result['cash_payment'] : document.add_notebook(result['from'], result['cash_payment'], unicode(desc)) document.add_notebook(result['to'] , -result['cash_payment'], unicode(desc )) if result['discount'] : document.add_notebook(dbconf.get_int('sell-discount'), -result['discount'], desc) if self.type_configs[self.type_index][3] == True: # from is subject custSubj = self.to_id else: # from is customer custSubj = self.from_id print custSubj customer_id = share.config.db.session.query(Customers).filter(Customers.custSubj==custSubj).first().custId for cheque in self.addChequeui.chequesList: if mode == 'our': document.add_cheque(dbconf.get_int('our_cheque'),custSubj,(cheque.chqAmount), cheque.chqDesc, cheque.chqId) else: document.add_cheque(dbconf.get_int('other_cheque'),custSubj, -cheque.chqAmount, cheque.chqDesc, cheque.chqId) cl_cheque = class_cheque.ClassCheque() #spendble cheques for sp_cheque in self.spendChequeui.chequesList: cl_cheque.update_status(sp_cheque.chqId,5 , customer_id) document.add_cheque(custSubj, dbconf.get_int('other_cheque'), -sp_cheque.chqAmount , unicode(_('Cheque No. %s spended') % sp_cheque.chqSerial) , sp_cheque.chqId) result = document.save() if result < 0: dialog = Gtk.MessageDialog(None, Gtk.DialogFlags.DESTROY_WITH_PARENT, Gtk.MessageType.ERROR, Gtk.ButtonsType.OK, _('Failed, %s') % document.get_error_message(result)) dialog.run() dialog.destroy() return for cheque in self.addChequeui.chequesList: cl_cheque.add_cheque(cheque.chqAmount, cheque.chqWrtDate, cheque.chqDueDate, cheque.chqSerial, cheque.chqStatus, customer_id, cheque.chqAccount, 0, 0, cheque.chqDesc, 0, 0) cl_cheque.save() cl_cheque.save_cheque_history(self.current_time) self.on_destroy(self.builder.get_object('general')) share.mainwin.silent_daialog(_('successfully added. Document number : %d') % document.number) #Store result in list store for showing in addeditdoc else: mysubject = Subjects() numrows = len(self.liststore) + 1 #document.add_notebook(result['from'], result['total_value'], result['desc']) self.liststore.append ((LN(numrows), unicode(self.from_code), unicode(self.from_name), LN(0), LN(result['total_value']), result['desc'], None)) #self.liststore.append ((numrows, code, sub.name, debt, credit, desc, None)) #document.add_notebook(result['to'] , -result['cash_payment'], result['desc']) numrows += 1 self.liststore.append ((LN(numrows), unicode(self.to_code), unicode(self.to_name), LN(result['cash_payment']), LN(0), result['desc'], None)) if result['discount'] : numrows += 1 self.liststore.append ((LN(numrows), unicode(mysubject.get_code(dbconf.get_int('sell-discount'))), mysubject.get_name(dbconf.get_int('sell-discount')), LN(result['discount']), LN(0), result['desc'], None)) self.on_destroy(self.builder.get_object('general'))
from flask_mysqldb import MySQL from wtforms import Form, StringField, TextAreaField, PasswordField, validators from passlib.hash import sha256_crypt import json #from data import Articles # do not need to import articles once db is connected. import requests from datetime import datetime from dbconfig import dbConfig from dbconfig import secretKey from functools import wraps app = Flask(__name__) creds = dbConfig() #using git ignore to keep db credentials secret print(secretKey()) #config MySQL app.config['MYSQL_HOST'] = 'localhost' app.config['MYSQL_USER'] = creds[0] app.config['MYSQL_PASSWORD'] = creds[1] app.config['MYSQL_DB'] = creds[2] app.config['MYSQL_CURSORCLASS'] = 'DictCursor' #sets to dictionary #init mySQL mysql = MySQL(app) #Articles = Articles(); #not needed once db is connected. app.debug=True
def on_delete_row_clicked(self, button, id): conf = dbconfig.dbConfig() conf.delete(id) self.setup_config_tab()
def saveProduct(self, code, accgrp, name, location, desc, quantity, quantity_warn, purchase_price, sell_price, oversell, formula, uMeasurement="", editId=0, edititer=None): msg = "" if code == "": msg += _("Product code should not be empty.\n") if accgrp == "": msg += _("Product group should not be empty.\n") if name == "": msg += _("Product name should not be empty.\n") if msg != "": msgbox = Gtk.MessageDialog(None, Gtk.DialogFlags.MODAL, Gtk.MessageType.WARNING, Gtk.ButtonsType.CLOSE, msg) msgbox.set_title(_("Empty fields")) msgbox.run() msgbox.destroy() return False result = 0 #Checks if the product code is repeated. query = config.db.session.query(count(Products.id)) query = query.filter(Products.code == code).filter( Products.accGroup == accgrp) if edititer != None: query = query.filter(Products.id != editId) result = query.first()[0] if result != 0: msg += _("A product with this code already exists.\n") query = config.db.session.query(ProductGroups).select_from( ProductGroups) group = query.filter(ProductGroups.code == accgrp).first() if group == None: msg += _("Group code is not valid.\n") if not quantity: quantity = 0 else: if not purchase_price or purchase_price == "": msg += _( "Product with initial balance must have purchase price. \n " ) firstnum = 0 secnum = 0 try: flist = formula.split(u',') for elm in flist: if elm != '': partlist = elm.split(u':') price = float(partlist[1]) numlist = partlist[0].split(u'-') if len(numlist) > 0: firstnum = float(numlist[0]) if firstnum < secnum: msg += _("Discount formula is not valid") break if len(numlist) > 1: secnum = float(numlist[1]) if firstnum > secnum: msg += _( "Discount formula should be typed in ascending order." ) break if len(numlist) > 2: msg += _("Discount formula is not valid") break else: msg += _("Discount formula is not valid") break except ValueError: msg += _("Discount formula is not valid") if msg != "": msgbox = Gtk.MessageDialog(None, Gtk.DialogFlags.MODAL, Gtk.MessageType.WARNING, Gtk.ButtonsType.CLOSE, msg) msgbox.set_title(_("Invalid product properties")) msgbox.run() msgbox.destroy() return False if edititer == None: product = Products(code, name, quantity_warn, oversell, location, quantity, purchase_price, sell_price, group.id, desc, formula, uMeasurement) config.db.session.add(product) config.db.session.commit() if quantity > 0: if config.db.session.query(Bill).filter(Bill.id == 1).first(): prevFund = 0 query = config.db.session.query(Notebook).filter( Notebook.bill_id == 1) pNote = query.first() if pNote: prevFund = pNote.value query.delete() val = float(quantity) * float(purchase_price) + abs( prevFund) dbconf = dbconfig.dbConfig() config.db.session.add( Notebook(dbconf.get_int('inventories'), 1, -val, _("Initial balance"))) config.db.session.add( Notebook(dbconf.get_int('fund'), 1, val, _("Initial funding (share capital)"))) config.db.session.add( FactorItems(1, product.id, quantity, purchase_price, 0, 0, _("Initial inventory"))) else: product = config.db.session.query(Products).filter( Products.id == editId).first() product.code = code product.name = name product.oversell = oversell product.location = location product.quantity = quantity product.accGroup = group.id product.productDesc = desc product.qntyWarning = quantity_warn product.sellingPrice = sell_price product.purchacePrice = purchase_price product.discountFormula = formula product.uMeasurement = uMeasurement config.db.session.commit() #Show new product in table self.fillTreeview() try: parent_iter = self.treestore.get_iter_first() except AttributeError: #skip if there is no table to show pass else: if not parent_iter: return True while self.treestore.iter_is_valid(parent_iter): itercode = self.treestore.get_value(parent_iter, 0) if itercode == accgrp: break parent_iter = self.treestore.iter_next(parent_iter) open_iter = parent_iter if edititer == None: i = 0 child = 1 while child: child = self.treestore.iter_nth_child(parent_iter, i) i += 1 if code == self.treestore.get_value(child, 0): open_iter = child break path = self.treestore.get_path(open_iter) self.treeview.expand_to_path(path) self.treeview.scroll_to_cell(path, None, False, 0, 0) self.treeview.set_cursor(path, None, False) self.treeview.grab_focus() # self.saveRow(edititer, (code, name, utility.LN(quantity), # utility.LN(purchase_price), utility.LN(sell_price) ) ) return True
def on_type_change(self, combo): iter = combo.get_active_iter() if iter == None: return # self.chequeui.new_cheques = [] # self.chequeui.spend_cheques = [] model = combo.get_model() index = model.get(iter, 0)[0] self.type_index = int(index) save_button = self.builder.get_object('save-button') non_cash, discount, spend_cheque = self.type_configs[self.type_index][:3] self.builder.get_object('discount-button').set_sensitive(discount) self.discount_entry.set_sensitive(discount) self.builder.get_object('list-cheque-button').set_sensitive(spend_cheque) self.builder.get_object('spend-cheque-label').set_sensitive(spend_cheque) self.builder.get_object('non-cash-payment-label').set_sensitive(non_cash) self.builder.get_object('non_cash_payment_button').set_sensitive(non_cash) self.cash_payment_entry.set_sensitive((non_cash or spend_cheque)) self.from_entry.set_text("") self.to_entry.set_text("") self.cash_payment_entry.set_text(LN(0)) self.total_credit_entry.set_text(LN(0)) self.discount_entry.set_text(LN(0)) dbconf = dbconfig.dbConfig() if self.type_index == 5: self.builder.get_object('to-button').set_sensitive(False) query = share.config.db.session.query(Subject).select_from(Subject) query = query.filter(Subject.id == dbconf.get_int('bank-wage')) query = query.first() self.to_id = query.id self.to_entry.set_text(query.name) self.to_code = query.code self.to_name = query.name elif self.type_index in [0,4] : self.builder.get_object('to-button').set_sensitive(False) query = share.config.db.session.query(Subject).select_from(Subject) query = query.filter(Subject.id == dbconf.get_int('cash')) query = query.first() self.to_id = query.id self.to_entry.set_text(query.name) self.to_code = query.code self.to_name = query.name else: self.builder.get_object('to-button').set_sensitive(True) # resetting non-cash payments UI for adding : sellMode = 0 if self.type_index is not None and self.type_configs[self.type_index][3]: #mode = 'our' sellMode = 0 # pardakhti customerEntry = self.to_entry else: #mode = 'other' sellMode = 1 # daryafti customerEntry = self.from_entry self.addChequeui = payments.Payments(0 , sellMode , False) self.addChequeui.fillChequeTable() self.addChequeui.customerNameLbl.set_text(customerEntry.get_text()) self.addChequeui.connect("payments-changed",self.update_non_cash_payment_label )
from database import * from dateentry import * from share import share from helpers import get_builder from gi.repository import Gdk from converter import * from datetime import datetime, timedelta import dateentry import class_document import dbconfig import subjects, customers import class_bankaccounts import decimalentry, utility import logging dbconf = dbconfig.dbConfig() config = share.config class ChequeReport(GObject.GObject): chequeStatus = [ "", _("Paid-Not passed"), _("Paid-Passed"), _("Recieved-Not cashed"), _("Recieved-Cashed"), _("Spent"), _("Returned from customer"), _("Returned to customer"), _("Paid-Bounced"), _("Recieved-Bounced"),