def addNewCustomer(self, sender, pcode=""): self.editCustomer = False self.customerForm = self.builder.get_object("customersWindow") self.customerForm.set_title(_("Add New Customer")) self.builder.get_object("addCustSubmitBtn").set_label( _("Add Customer")) query = config.db.session.query( Subject.code).select_from(Subject).order_by(Subject.id.desc()) code = query.filter( Subject.parent_id == dbconf.get_int('custSubject')).first() if code == None: lastcode = "01" else: lastcode = "%02d" % (int(code[0][-2:]) + 1) self.builder.get_object("custCodeEntry").set_text(LN(lastcode)) #self.custgrpentry.set_text("") self.builder.get_object("custNameEntry").set_text("") self.builder.get_object("custEcnmcsCodeEntry").set_text("") self.builder.get_object("custPrsnalCodeEntry").set_text("") self.builder.get_object("custPhoneEntry").set_text("") self.builder.get_object("custCellEntry").set_text("") self.builder.get_object("custFaxEntry").set_text("") self.builder.get_object("custWebPageEntry").set_text("") self.builder.get_object("custEmailEntry").set_text("") self.builder.get_object("custRepViaEmailChk").get_active() self.builder.get_object("custAddressEntry").set_text("") self.builder.get_object("cusPostalCodeEntry").set_text("") self.builder.get_object("callResponsibleEntry").set_text("") self.builder.get_object("custConnectorEntry").set_text("") self.builder.get_object("custDescEntry").set_text("") #---------------------------------- self.builder.get_object("custTypeBuyerChk").set_active(True) self.builder.get_object("custTypeSellerChk").set_active(True) self.builder.get_object("custTypeMateChk").set_active(False) self.builder.get_object("custTypeAgentChk").set_active(False) self.custIntroducerEntry.set_text("") self.boxCommissionRateEntry.set_text("") self.boxDiscRateEntry.set_text("") self.builder.get_object("markedChk").set_active(False) self.builder.get_object("markedReasonEntry").set_text("") #---------------------------------- self.boxBalanceEntry.set_text("") self.boxCreditEntry.set_text("") self.builder.get_object("custAccName1Entry").set_text("") self.builder.get_object("custAccNo1Entry").set_text("") self.builder.get_object("custAccBank1Entry").set_text("") self.builder.get_object("custAccName2Entry").set_text("") self.builder.get_object("custAccNo2Entry").set_text("") self.builder.get_object("custAccBank2Entry").set_text("") self.customerForm.show_all()
def addNewCustomer(self, sender, pcode = ""): self.editCustomer = False self.customerForm = self.builder.get_object("customersWindow") self.customerForm.set_title(_("Add New Customer")) self.builder.get_object("addCustSubmitBtn").set_label(_("Add Customer")) query = config.db.session.query(Subject.code).select_from(Subject).order_by(Subject.id.desc()) code = query.filter(Subject.parent_id == dbconf.get_int('custSubject')).first() if code == None : lastcode = "01" else : lastcode = "%02d" % (int(code[0][-2:]) + 1) self.builder.get_object("custCodeEntry").set_text(LN(lastcode)) #self.custgrpentry.set_text("") self.builder.get_object("custNameEntry").set_text("") self.builder.get_object("custEcnmcsCodeEntry").set_text("") self.builder.get_object("custPrsnalCodeEntry").set_text("") self.builder.get_object("custPhoneEntry").set_text("") self.builder.get_object("custCellEntry").set_text("") self.builder.get_object("custFaxEntry").set_text("") self.builder.get_object("custWebPageEntry").set_text("") self.builder.get_object("custEmailEntry").set_text("") self.builder.get_object("custRepViaEmailChk").get_active() self.builder.get_object("custAddressEntry").set_text("") self.builder.get_object("cusPostalCodeEntry").set_text("") self.builder.get_object("callResponsibleEntry").set_text("") self.builder.get_object("custConnectorEntry").set_text("") self.builder.get_object("custDescEntry").set_text("") #---------------------------------- self.builder.get_object("custTypeBuyerChk").set_active(True) self.builder.get_object("custTypeSellerChk").set_active(True) self.builder.get_object("custTypeMateChk").set_active(False) self.builder.get_object("custTypeAgentChk").set_active(False) self.custIntroducerEntry.set_text("") self.boxCommissionRateEntry.set_text("") self.boxDiscRateEntry.set_text("") self.builder.get_object("markedChk").set_active(False) self.builder.get_object("markedReasonEntry").set_text("") #---------------------------------- self.boxBalanceEntry.set_text("") self.boxCreditEntry.set_text("") self.builder.get_object("custAccName1Entry").set_text("") self.builder.get_object("custAccNo1Entry").set_text("") self.builder.get_object("custAccBank1Entry").set_text("") self.builder.get_object("custAccName2Entry").set_text("") self.builder.get_object("custAccNo2Entry").set_text("") self.builder.get_object("custAccBank2Entry").set_text("") self.customerForm.show_all()
def deleteCustAndGrps(self, sender): selection = self.treeview.get_selection() iter = selection.get_selected()[1] if iter != None: msgbox = Gtk.MessageDialog(self.window, Gtk.DialogFlags.MODAL, Gtk.MessageType.WARNING, Gtk.ButtonsType.OK_CANCEL, _("Are you sure to remove this row?")) msgbox.set_title(_("Are you sure?")) result = msgbox.run() msgbox.destroy() if result != Gtk.ResponseType.OK: return if self.treestore.iter_parent(iter) == None: #Iter points to a customer group self.deleteCustomerGroup(sender) else: #Iter points to a customer code = utility.convertToLatin(self.treestore.get_value(iter, 0)) query = config.db.session.query(Customers) customer = query.filter(Customers.custCode == code).first() custId = customer.custId q1 = config.db.session.query(Factors.Cust).filter( Factors.Cust == custId) #.limit(1) q2 = config.db.session.query(Cheque.chqCust).filter( Cheque.chqCust == custId) #.limit(1) existsFlag = (q1.union(q2)).first() if existsFlag: msgbox = Gtk.MessageDialog( self.window, Gtk.DialogFlags.MODAL, Gtk.MessageType.ERROR, Gtk.ButtonsType.CLOSE, _("Customer can not be deleted, Because there are some Factors or Cheques related to it. \nPlease delete them first.\n(Note: If there is some cheque, deleting that will not be usefull.)" )) msgbox.set_title(_("Error deleting customer")) msgbox.run() msgbox.destroy() else: subjectCode = config.db.session.query(Subject).filter( Subject.id == dbconf.get_int('custSubject')).first().code subjectCode = unicode(subjectCode) + unicode(code) #TODO check if this customer is used somewhere else config.db.session.delete(customer) config.db.session.delete( config.db.session.query(Subject).filter( Subject.code == subjectCode).first()) config.db.session.commit() self.treestore.remove(iter)
def saveCustomer(self): custCode = unicode(self.builder.get_object("custCodeEntry").get_text()) custGrp = self.custgrpentry.get_int() custName = unicode(self.builder.get_object("custNameEntry").get_text()) custEcnmcsCode = unicode( self.builder.get_object("custEcnmcsCodeEntry").get_text()) custPersonalCode = unicode( self.builder.get_object("custPrsnalCodeEntry").get_text()) custPhone = unicode( self.builder.get_object("custPhoneEntry").get_text()) custCell = unicode(self.builder.get_object("custCellEntry").get_text()) custFax = unicode(self.builder.get_object("custFaxEntry").get_text()) custWebPage = unicode( self.builder.get_object("custWebPageEntry").get_text()) custEmail = unicode( self.builder.get_object("custEmailEntry").get_text()) custRepViaEmail = self.builder.get_object( "custRepViaEmailChk").get_active() custAddress = unicode( self.builder.get_object("custAddressEntry").get_text()) custPostalCode = unicode( self.builder.get_object("cusPostalCodeEntry").get_text()) callResponsible = unicode( self.builder.get_object("callResponsibleEntry").get_text()) custConnector = unicode( self.builder.get_object("custConnectorEntry").get_text()) custDesc = unicode(self.builder.get_object("custDescEntry").get_text()) #---------------------------------- custTypeBuyer = self.builder.get_object( "custTypeBuyerChk").get_active() custTypeSeller = self.builder.get_object( "custTypeSellerChk").get_active() custTypeMate = self.builder.get_object("custTypeMateChk").get_active() custTypeAgent = self.builder.get_object( "custTypeAgentChk").get_active() custIntroducer = self.custIntroducerEntry.get_int() custCommission = self.boxCommissionRateEntry.get_float() custDiscRate = self.boxDiscRateEntry.get_float() custMarked = self.builder.get_object("markedChk").get_active() custReason = unicode( self.builder.get_object("markedReasonEntry").get_text()) #---------------------------------- custBalance = self.boxBalanceEntry.get_float() custCredit = self.boxCreditEntry.get_float() custAccName1 = unicode( self.builder.get_object("custAccName1Entry").get_text()) custAccNo1 = unicode( self.builder.get_object("custAccNo1Entry").get_text()) custAccBank1 = unicode( self.builder.get_object("custAccBank1Entry").get_text()) custAccName2 = unicode( self.builder.get_object("custAccName2Entry").get_text()) custAccNo2 = unicode( self.builder.get_object("custAccNo2Entry").get_text()) custAccBank2 = unicode( self.builder.get_object("custAccBank2Entry").get_text()) msg = "" if custCode == "": msg += _("Customer code should not be empty.\n") else: codeQuery = config.db.session.query(Customers).select_from( Customers) codeQuery = codeQuery.filter(Customers.custCode == custCode) if self.editCustomer: codeQuery = codeQuery.filter( Customers.custId != self.customerId) codeQuery = codeQuery.first() if codeQuery: msg += _("Customer code has been used before.\n") #-------------------- groupid = 0 if custGrp == "": msg += _("Customer group should not be empty.\n") else: query = config.db.session.query( CustGroups.custGrpId).select_from(CustGroups).filter( CustGroups.custGrpCode == custGrp) groupid = query.first() if groupid == None: msg += _( "No customer group registered with code %s.\n") % custGrp else: groupid = groupid[0] #-------------------- if custName == "": msg += _("Customer name should not be empty.\n") #-------------------- if msg != "": msgbox = gtk.MessageDialog(self.customerForm, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE, msg) msgbox.set_title(_("Can not save customer")) msgbox.run() msgbox.destroy() return -1 if not self.editCustomer: #New Customer sub = class_subject.Subjects() custSubj = sub.add(dbconf.get_int('custSubject'), custName) customer = Customers( custCode, custName, custSubj, custPhone, custCell, custFax, custAddress, custEmail, custEcnmcsCode, custWebPage, callResponsible, custConnector, groupid, custPostalCode, custPersonalCode, custDesc, custBalance, custCredit, custRepViaEmail, custAccName1, custAccNo1, custAccBank1, custAccName2, custAccNo2, custAccBank2, custTypeBuyer, custTypeSeller, custTypeMate, custTypeAgent, custIntroducer, custCommission, custMarked, custReason, custDiscRate) else: query = config.db.session.query(Customers).select_from(Customers) customer = query.filter( Customers.custId == self.customerId).first() #customer code not need to change #customer.custCode = custCode customer.custName = custName customer.custPhone = custPhone customer.custCell = custCell customer.custFax = custFax customer.custAddress = custAddress customer.custPostalCode = custPostalCode customer.custEmail = custEmail customer.custEcnmcsCode = custEcnmcsCode customer.custPersonalCode = custPersonalCode customer.custWebPage = custWebPage customer.custResponsible = callResponsible customer.custConnector = custConnector customer.custGroup = groupid customer.custDesc = custDesc #---------------------------------- customer.custTypeBuyer = custTypeBuyer customer.custTypeSeller = custTypeSeller customer.custTypeMate = custTypeMate customer.custTypeAgent = custTypeAgent customer.custIntroducer = custIntroducer customer.custCommission = custCommission customer.custDiscRate = custDiscRate customer.custMarked = custMarked customer.custReason = custReason #---------------------------------- customer.custBalance = custBalance customer.custCredit = custCredit customer.custAccName1 = custAccName1 customer.custAccNo1 = custAccNo1 customer.custAccBank1 = custAccBank1 customer.custAccName2 = custAccName2 customer.custAccNo2 = custAccNo2 customer.custAccBank2 = custAccBank2 config.db.session.add(customer) config.db.session.commit() #Show new customer in table if self.treestore != None: parent_iter = self.treestore.get_iter_first() while parent_iter: itercode = self.treestore.get_value(parent_iter, 0) if itercode == str(custGrp): break parent_iter = self.treestore.iter_next(parent_iter) custCode = LN(custCode) if not self.editCustomer: self.treestore.append(parent_iter, (custCode, custName, "0", "0", "0")) else: self.treestore.set(self.editIter, 0, custCode, 1, custName) return 0
def saveCustomer(self): custCode = unicode(self.builder.get_object("custCodeEntry").get_text()) custGrp = self.custgrpentry.get_int() custName = unicode(self.builder.get_object("custNameEntry").get_text()) custEcnmcsCode = unicode(self.builder.get_object("custEcnmcsCodeEntry").get_text()) custPersonalCode = unicode(self.builder.get_object("custPrsnalCodeEntry").get_text()) custPhone = unicode(self.builder.get_object("custPhoneEntry").get_text()) custCell = unicode(self.builder.get_object("custCellEntry").get_text()) custFax = unicode(self.builder.get_object("custFaxEntry").get_text()) custWebPage = unicode(self.builder.get_object("custWebPageEntry").get_text()) custEmail = unicode(self.builder.get_object("custEmailEntry").get_text()) custRepViaEmail = self.builder.get_object("custRepViaEmailChk").get_active() custAddress = unicode(self.builder.get_object("custAddressEntry").get_text()) custPostalCode = unicode(self.builder.get_object("cusPostalCodeEntry").get_text()) callResponsible = unicode(self.builder.get_object("callResponsibleEntry").get_text()) custConnector = unicode(self.builder.get_object("custConnectorEntry").get_text()) custDesc = unicode(self.builder.get_object("custDescEntry").get_text()) #---------------------------------- custTypeBuyer = self.builder.get_object("custTypeBuyerChk").get_active() custTypeSeller = self.builder.get_object("custTypeSellerChk").get_active() custTypeMate = self.builder.get_object("custTypeMateChk").get_active() custTypeAgent = self.builder.get_object("custTypeAgentChk").get_active() custIntroducer = self.custIntroducerEntry.get_int() custCommission = self.boxCommissionRateEntry.get_float() custDiscRate = self.boxDiscRateEntry.get_float() custMarked = self.builder.get_object("markedChk").get_active() custReason = unicode(self.builder.get_object("markedReasonEntry").get_text()) #---------------------------------- custBalance = self.boxBalanceEntry.get_float() custCredit = self.boxCreditEntry.get_float() custAccName1 = unicode(self.builder.get_object("custAccName1Entry").get_text()) custAccNo1 = unicode(self.builder.get_object("custAccNo1Entry").get_text()) custAccBank1 = unicode(self.builder.get_object("custAccBank1Entry").get_text()) custAccName2 = unicode(self.builder.get_object("custAccName2Entry").get_text()) custAccNo2 = unicode(self.builder.get_object("custAccNo2Entry").get_text()) custAccBank2 = unicode(self.builder.get_object("custAccBank2Entry").get_text()) msg = "" if custCode == "": msg += _("Customer code should not be empty.\n") else: codeQuery = config.db.session.query( Customers ).select_from( Customers ) codeQuery = codeQuery.filter( Customers.custCode == custCode ) if self.editCustomer: codeQuery = codeQuery.filter( Customers.custId != self.customerId ) codeQuery = codeQuery.first() if codeQuery: msg += _("Customer code has been used before.\n") #-------------------- groupid = 0 if custGrp == "": msg += _("Customer group should not be empty.\n") else: query = config.db.session.query( CustGroups.custGrpId ).select_from( CustGroups ).filter( CustGroups.custGrpCode == custGrp ) groupid = query.first() if groupid == None: msg += _("No customer group registered with code %s.\n") % custGrp else: groupid = groupid[0] #-------------------- if custName == "": msg += _("Customer name should not be empty.\n") #-------------------- if msg != "": msgbox = gtk.MessageDialog(self.customerForm, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE, msg) msgbox.set_title(_("Can not save customer")) msgbox.run() msgbox.destroy() return -1 if not self.editCustomer: #New Customer sub = class_subject.Subjects() custSubj = sub.add(dbconf.get_int('custSubject'), custName) customer = Customers(custCode, custName, custSubj, custPhone, custCell, custFax, custAddress, custEmail, custEcnmcsCode, custWebPage, callResponsible, custConnector, groupid, custPostalCode, custPersonalCode, custDesc, custBalance, custCredit, custRepViaEmail, custAccName1, custAccNo1, custAccBank1, custAccName2, custAccNo2, custAccBank2, custTypeBuyer, custTypeSeller, custTypeMate, custTypeAgent, custIntroducer, custCommission, custMarked, custReason, custDiscRate ) else: query = config.db.session.query(Customers).select_from(Customers) customer = query.filter(Customers.custId == self.customerId).first() #customer code not need to change #customer.custCode = custCode customer.custName = custName customer.custPhone = custPhone customer.custCell = custCell customer.custFax = custFax customer.custAddress = custAddress customer.custPostalCode = custPostalCode customer.custEmail = custEmail customer.custEcnmcsCode = custEcnmcsCode customer.custPersonalCode = custPersonalCode customer.custWebPage = custWebPage customer.custResponsible = callResponsible customer.custConnector = custConnector customer.custGroup = groupid customer.custDesc = custDesc #---------------------------------- customer.custTypeBuyer = custTypeBuyer customer.custTypeSeller = custTypeSeller customer.custTypeMate = custTypeMate customer.custTypeAgent = custTypeAgent customer.custIntroducer = custIntroducer customer.custCommission = custCommission customer.custDiscRate = custDiscRate customer.custMarked = custMarked customer.custReason = custReason #---------------------------------- customer.custBalance = custBalance customer.custCredit = custCredit customer.custAccName1 = custAccName1 customer.custAccNo1 = custAccNo1 customer.custAccBank1 = custAccBank1 customer.custAccName2 = custAccName2 customer.custAccNo2 = custAccNo2 customer.custAccBank2 = custAccBank2 config.db.session.add(customer) config.db.session.commit() #Show new customer in table if self.treestore != None: parent_iter = self.treestore.get_iter_first() while parent_iter: itercode = self.treestore.get_value(parent_iter, 0) if itercode == str(custGrp): break parent_iter = self.treestore.iter_next(parent_iter) custCode = LN(custCode) if not self.editCustomer: self.treestore.append(parent_iter, (custCode, custName, "0.0", "0.0")) else: self.treestore.set(self.editIter, 0, custCode, 1, custName) return 0