コード例 #1
0
    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()
コード例 #2
0
    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()
コード例 #3
0
    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)
コード例 #4
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"))
            else:
                self.treestore.set(self.editIter, 0, custCode, 1, custName)

        return 0
コード例 #5
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