hello all, I felt the most difficult part in pygtk is to maintain tree view in an application.After so much of googling i got a easy navigatable spreadsheet which is written by Lorenzo Gil Sanchez in the following link http://www.mail-archive.com/[email protected]/msg06091.html
When i used the module in my application, i stuck up with these issues 1) I cant add toggle signal to the check box and if i add it is showing unknown signal 2)When i set the values in the cell it is not showing up but when i try to retrive the value it is printing properly.I dont the problem behind this. I am attaching the py file in which i used the module in the above url. If anyone can help in this it would be of great help or if anyone have an alternative for this please share with me. Thanks in advance. Njoy the share of Freedom, Anusha Kadambala
""" This file is part of GNUKhata:A modular,robust and Free Accounting System. GNUKhata is Free Software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. GNUKhata is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNUKhata (COPYING); if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA59 Temple Place, Suite 330, Contributor: "Anusha Kadambala"<[email protected]> "Priyanka A Tawde"<[email protected]> "Shruti A Surve"<[email protected]> """ import pygtk pygtk.require('2.0') import os import sys import gtk,gobject import gtk.glade,gnome,gnome.ui,datetime,time import xmlrpclib import report import gnukhata_global import locale from time import strftime import gridset class purchase(gtk.Frame): def __init__(self,org_code,bill_no): """ [Purpose] This is constructor for intialising purchase_master class.It has all frame widget defination and intialisation [Arguments] It passes orgcode(datatype:varchar) and billno(datatype:varchar) [Returns] open window in glade format """ gtk.Frame.__init__(self) if os.path.exists(os.path.join(gnukhata_global.determine_path(), "data", "purchasebill.glade")): self.wTreeFileName = os.path.join(gnukhata_global.determine_path(),"data", "purchasebill.glade") else: self.wTreeFileName = "/usr/share/gnukhata/data/purchasebill.glade" self.wTreebill = gtk.glade.XML(self.wTreeFileName) self.billno = bill_no self.orgcode = org_code payment_mode='' self.mode='n' self.scrolledwindow = self.wTreebill.get_widget('scrolledwindow') self.scrolledwindow.reparent(self) self.label_billno=self.wTreebill.get_widget('label_billno') self.entry_billno = self.wTreebill.get_widget('entry_billno') self.entry_billno.set_text("") self.label_billno.set_mnemonic_widget(self.entry_billno) self.entry_billno.set_text(str(bill_no)) self.entry_billno.set_editable(False) self.label_ddno=self.wTreebill.get_widget('label_ddno') self.entry_ddno = self.wTreebill.get_widget('entry_ddno') self.label_ddno.set_mnemonic_widget(self.entry_ddno) self.label_ddno.hide() self.entry_ddno.hide() self.label_chequeno=self.wTreebill.get_widget('label_chequeno') self.entry_chequeno = self.wTreebill.get_widget('entry_chequeno') self.label_chequeno.set_mnemonic_widget(self.entry_chequeno) self.label_paymentmode = self.wTreebill.get_widget('label_paymentmode') self.combobox_paymentmode = self.wTreebill.get_widget('combobox_paymentmode') self.label_paymentmode.set_mnemonic_widget(self.combobox_paymentmode) self.combobox_paymentmode.connect('changed',self.paymentmode_change) self.label_transportername = self.wTreebill.get_widget('label_transportername') self.entry_transportername = self.wTreebill.get_widget('entry_transportername') self.label_transportername.set_mnemonic_widget(self.entry_transportername) self.label_vendorname = self.wTreebill.get_widget('label_vendorname') self.entry_vendorname = self.wTreebill.get_widget('entry_vendorname') self.label_vendorname.set_mnemonic_widget(self.entry_vendorname) self.label_bankname = self.wTreebill.get_widget('label_bankname') self.comboboxentry_bankname = self.wTreebill.get_widget('comboboxentry_bankname') self.label_bankname.set_mnemonic_widget(self.comboboxentry_bankname) self.label_date = self.wTreebill.get_widget('label_date') self.entry_date = self.wTreebill.get_widget('entry_date') self.label_date.set_mnemonic_widget(self.entry_date) self.entry_date.set_text(str(strftime("%d-%m-%Y %H:%M:%S"))) self.entry_date.set_editable(False) self.label_netamount = self.wTreebill.get_widget('label_netamount') self.entry_netamount = self.wTreebill.get_widget('entry_netamount') self.label_netamount.set_mnemonic_widget(self.entry_netamount) self.entry_netamount.set_editable(False) self.label_discount = self.wTreebill.get_widget('label_discount') self.entry_discount = self.wTreebill.get_widget('entry_discount') self.label_discount.set_mnemonic_widget(self.entry_discount) #self.entry_discount.connect('changed',self.discount_change) self.label_flatdiscount = self.wTreebill.get_widget('label_flatdiscount') self.entry_flatdiscount = self.wTreebill.get_widget('entry_flatdiscount') self.label_flatdiscount.set_mnemonic_widget(self.entry_flatdiscount) #self.entry_flatdiscount.connect('changed',self.flatdiscount_change) self.label_othercharges = self.wTreebill.get_widget('label_othercharges') self.entry_othercharges = self.wTreebill.get_widget('entry_othercharges') self.label_othercharges.set_mnemonic_widget(self.entry_othercharges) #self.entry_othercharges.connect('changed',self.othercharges_change) self.label_amountpaid = self.wTreebill.get_widget('label_amountpaid') self.entry_amountpaid = self.wTreebill.get_widget('entry_amountpaid') self.label_amountpaid.set_mnemonic_widget(self.entry_amountpaid) self.dateedit_referencedate= self.wTreebill.get_widget('dateedit_referencedate') self.dateedit_referencedate.set_time(0) self.button_forward = self.wTreebill.get_widget('button_forward') self.button_cancel = self.wTreebill.get_widget('button_cancel') #self.button_cancel.connect('clicked',self.cancelclicked) #self.button_forward.connect('clicked',self.forwardclicked) self.scrolledwindow_treeview = self.wTreebill.get_widget('scrolledwindow_treeview') self.taxnames = gnukhata_global.serverProxy.tax.getTaxNames(gnukhata_global.client_id) self.billList = gtk.ListStore(*(([gobject.TYPE_STRING] * 7)+([gobject.TYPE_BOOLEAN] * 2)+([gobject.TYPE_STRING] * 2)+([gobject.TYPE_BOOLEAN]*len(self.taxnames))+([gobject.TYPE_STRING] * 2))) lst=['', '','','','','','',False,False,'',''] for r in self.taxnames: lst.append(False) lst.append('') lst.append('') self.treeview_bill = gridset.Grid(self.billList) for i in range(10): iter = self.billList.append(tuple(lst)) self.scrolledwindow_treeview.add(self.treeview_bill) self.scrolledwindow_treeview.show_all() self.editors = [] column_labels=["Product code","Product name","Manufacturer/Publisher","Stock quantity","Quantity","Price/Product","Amount","Discount percentage/product","Flat discount","Discounted Amount","Total discount amount"] for i in range(0,7): renderer = gtk.CellRendererText() column = gtk.TreeViewColumn(column_labels[i], renderer, text=i) column.set_resizable(True) self.treeview_bill.append_column(column) self.editors.append(gridset.GridCellEditorText(self.treeview_bill, i)) renderer = gtk.CellRendererToggle() #renderer.connect("toggled",self.discountpercentChanged,self.billList,6) column = gtk.TreeViewColumn(column_labels[7], renderer, active=7) column.set_resizable(True) self.treeview_bill.append_column(column) self.editors.append(gridset.GridCellEditorToggle(self.treeview_bill, 7)) renderer = gtk.CellRendererToggle() #renderer.connect("toggled",self.flatdiscountChanged,self.billList,7) column = gtk.TreeViewColumn(column_labels[8], renderer, active=8) column.set_resizable(True) self.treeview_bill.append_column(column) self.editors.append(gridset.GridCellEditorToggle(self.treeview_bill, 8)) renderer = gtk.CellRendererText() column = gtk.TreeViewColumn(column_labels[9], renderer, text=9) column.set_resizable(True) self.treeview_bill.append_column(column) self.editors.append(gridset.GridCellEditorText(self.treeview_bill, 9)) renderer = gtk.CellRendererText() column = gtk.TreeViewColumn(column_labels[10], renderer, text=10) column.set_resizable(True) self.treeview_bill.append_column(column) self.editors.append(gridset.GridCellEditorText(self.treeview_bill, 10)) for r in range(0,len(self.taxnames)): renderer = gtk.CellRendererToggle() column = gtk.TreeViewColumn(self.taxnames[r][0], renderer, active=11+r) column.set_resizable(True) self.treeview_bill.append_column(column) self.editors.append(gridset.GridCellEditorToggle(self.treeview_bill,11+r)) renderer = gtk.CellRendererText() column = gtk.TreeViewColumn("Total Taxed amount", renderer, text=len(column_labels)+len(self.taxnames)+0) column.set_resizable(True) self.treeview_bill.append_column(column) self.editors.append(gridset.GridCellEditorText(self.treeview_bill, len(column_labels)+len(self.taxnames)+0)) renderer = gtk.CellRendererText() column = gtk.TreeViewColumn("Total amount", renderer, text=len(column_labels)+len(self.taxnames)+1) column.set_resizable(True) self.treeview_bill.append_column(column) self.editors.append(gridset.GridCellEditorText(self.treeview_bill, len(column_labels)+len(self.taxnames)+1)) self.treeview_bill.setEditors(self.editors) '''self.editors[4].setEditable(False) self.editors[5].setEditable(False) self.editors[8].setEditable(False)''' self.lst_allbanknames=[] self.lst_paymentmode=['Cash','Cheque','DD','To Be Paid'] for l in self.lst_paymentmode: self.combobox_paymentmode.append_text(l) self.liststore = gtk.ListStore(str) self.completion = gtk.EntryCompletion() self.comboboxentry_bankname.append_text("") res=gnukhata_global.serverProxy.account.getAllAccountBank(gnukhata_global.client_id) if res != False: for l in range(0,len(res)): self.lst_allbanknames.append(res[l][0]) for l in self.lst_allbanknames: self.comboboxentry_bankname.append_text(l) res=gnukhata_global.serverProxy.vendor.getAllVendorNames(gnukhata_global.client_id) if res==False: self.messagedialog_warning_validate = gtk.MessageDialog(type = gtk.MESSAGE_ERROR,buttons=gtk.BUTTONS_OK, message_format=("Vendors are not there !!!")) self.response = self.messagedialog_warning_validate.run() self.messagedialog_warning_validate.destroy() return else: for s in range(0,len(res)): self.liststore.append([res[s][0]]) self.completion.set_model(self.liststore) self.entry_vendorname.set_completion(self.completion) self.completion.set_text_column(0) self.completion.connect('match-selected', self.match_cb) self.entry_vendorname.connect('activate', self.activate_cb) if self.mode == 'f': queryParams =[self.billno] res=gnukhata_global.serverProxy.purchasebill.getPurchaseMaster(queryParams,gnukhata_global.client_id) if res == False: self.dialog_FindFail = gtk.MessageDialog(type=gtk.MESSAGE_INFO, buttons=gtk.BUTTONS_OK, message_format=("Record doesnt exist!!!")) self.response = self.dialog_FindFail.run() self.dialog_FindFail.destroy() return else: #self.queryParams_master = res[0] result = gnukhata_global.serverProxy.vendor.getVendor(['code',res[2]],gnukhata_global.client_id) self.entry_vendorname.set_text(result[1]) #self.entry_ddno.set_text(res[8]) #self.entry_bankname.set_text(res[7]) self.entry_chequeno.set_text(res[6]) for paymentmode_index in range(0,len(self.lst_paymentmode)): if self.lst_paymentmode[paymentmode_index] == res[4]: self.combobox_paymentmode.set_active(paymentmode_index) self.entry_transportername.set_text(res[3]) bill_date=time.mktime(time.strptime(str(res[1]),"%Y-%m-%d %H:%M:%S")) self.entry_date.set_time(int(bill_date)) self.entry_vendorname.set_editable(False) self.entry_ddno.set_editable(False) self.entry_chequeno.set_editable(False) self.entry_transportername.set_editable(False) self.entry_date.set_sensitive(False) self.combobox_bankname.set_sensitive(False) self.queryParams_details = gnukhata_global.serverProxy.purchasebill.getPurchaseDetails([self.orgcode],queryParams,gnukhata_global.client_id) self.queryParams_finddetails = self.queryParams_details[0][5] #self.editors[6].connect("toggled",self.discountpercentChanged) #self.editors[7].connect("toggled",self.flatdiscountChanged) self.editors[0].connect("focus-out-event",self.prodcode_lostfocus) self.entry_vendorname.grab_focus() self.show() def prodcode_lostfocus(self,widget,event): self.price=0 if self.editors[0] == "" or self.editors[0] == " ": self.dialog_EntryFail = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK, message_format=("Product Code cannot be empty")) self.response = self.dialog_EntryFail.run() self.dialog_EntryFail.destroy() self.editors[0].grabFocus() return else: res = gnukhata_global.serverProxy.product.getCategory(['code',self.editors[0].getValue()],gnukhata_global.client_id) if res == False: self.dialog_EntryFail = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK, message_format=("Product Code doesnot exist")) #self.entry_prodcode.set_text("") self.response = self.dialog_EntryFail.run() self.dialog_EntryFail.destroy() #self.entry_prodcode.grab_focus() return else: self.category = res[1] result = gnukhata_global.serverProxy.product.getPurchaseProductDetails(['code',self.editors[0].getValue()],gnukhata_global.client_id) self.editors[1].setValue(result[1]) self.editors[2].setValue(result[4]) #self.editors[3].setValue(str(result[3])) #self.editors[5].setValue(str(result[2])) print result print self.editors[2].getValue() print self.editors[3].getValue() print self.editors[5].getValue() self.editors[2].setVisibility(True) #self.editors[2].setEditable(False) #self.editors[3].setEditable(False) #self.editors[5].setEditable(False) '''result2=gnukhata_global.serverProxy.tax.getTaxByProdCode([self.entry_prodcode.get_text()],gnukhata_global.client_id) if result2 == [] : self.taxpercent = 0.00 self.taxlabel="" else : result3=gnukhata_global.serverProxy.vendor.getVendor(['code',self.vendorcode],gnukhata_global.client_id) for l in range(0,len(result2)) : if result2[l][2] == result3[5] and result2[l][3] == result3[3] : self.taxpercent=float(self.taxpercent)+float(result2[l][4]) self.taxlabel=self.taxlabel+","+result2[l][1] self.taxlabel = "These are all taxes which are applied to this product ie"+ self.taxlabel + '.' #self.entry_taxpercent.set_text(str(self.taxpercent)) self.label_taxpercent.set_text(self.taxlabel) if result == False: self.dialog_EntryFail = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK, message_format=("Product doesnt exists")) self.entry_prodcode.set_text("") self.response = self.dialog_EntryFail.run() self.dialog_EntryFail.destroy() self.entry_prodcode.grab_focus() return else: self.entry_prodname.set_text(result[1]) self.price =result[2] self.entry_prodprice.set_text(str(self.price)) self.vendorname=result[4]''' def prodname_lostfocus(self,widget,event): """ [Purpose] This function is used for as type prodname automatically all details come [Arguments] It passes event(Pointer) and prodcode(datatype:Varchar) [Returns] It returns and as type prodcode it returns a list of [prodname(datatype:Varchar),quantity(datatype:bigint),discount(datatype:float4), tax(datatype:float4),account(datatype:float4)] """ if self.entry_prodname.get_text() == "" or self.entry_prodname.get_text() == " ": return else: res = gnukhata_global.serverProxy.product.getCategory(['name',self.entry_prodname.get_text()],gnukhata_global.client_id) if res == False: self.dialog_EntryFail = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK, message_format=("Product name doesnt exists")) self.entry_prodname.set_text("") self.response = self.dialog_EntryFail.run() self.dialog_EntryFail.destroy() self.entry_prodname.grab_focus() return else: self.category = res[1] result = gnukhata_global.serverProxy.product.getPurchaseProductDetails(['name',self.entry_prodname.get_text()],gnukhata_global.client_id) if res == False: self.dialog_EntryFail = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK, message_format=("Product doesnt exists")) self.entry_prodname.set_text("") self.response = self.dialog_EntryFail.run() self.dialog_EntryFail.destroy() self.entry_prodname.grab_focus() return else: self.entry_prodcode.set_text(result[0]) self.price =result[2] self.entry_prodprice.set_text(str(result[2])) self.vendorname=str(result[4]) ####################### self.taxpercent=0.00 self.taxlabel="" if self.entry_prodname.get_text() == "" or self.entry_prodname.get_text() == " ": return else: res = gnukhata_global.serverProxy.product.getCategory(['name',self.entry_prodname.get_text()],gnukhata_global.client_id) if res == False: self.dialog_EntryFail = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK, message_format=("Product Code doesnot exist")) self.entry_prodcode.set_text("") self.response = self.dialog_EntryFail.run() self.dialog_EntryFail.destroy() self.entry_prodcode.grab_focus() return else: self.category = res[1] result = gnukhata_global.serverProxy.product.getPurchaseProductDetails(['code',self.entry_prodcode.get_text()],gnukhata_global.client_id) result2=gnukhata_global.serverProxy.tax.getTaxByProdCode([self.entry_prodcode.get_text()],gnukhata_global.client_id) if result2 == [] : self.taxpercent = 0.00 self.taxlabel="" else : result3=gnukhata_global.serverProxy.vendor.getVendor(['code',self.vendorcode],gnukhata_global.client_id) for l in range(0,len(result2)) : if result2[l][2] == result3[5] and result2[l][3] == result3[3] : self.taxpercent=float(self.taxpercent)+float(result2[l][4]) self.taxlabel=self.taxlabel+","+result2[l][1] self.taxlabel = "These are all taxes which are applied to this product ie"+ self.taxlabel + '.' self.entry_taxpercent.set_text(str(self.taxpercent)) self.label_taxpercent.set_text(self.taxlabel) if result == False: self.dialog_EntryFail = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK, message_format=("Product doesnt exists")) self.entry_prodcode.set_text("") self.response = self.dialog_EntryFail.run() self.dialog_EntryFail.destroy() self.entry_prodcode.grab_focus() return else: self.entry_prodname.set_text(result[1]) self.price =result[2] self.entry_prodprice.set_text(str(self.price)) self.vendorname=result[4] def match_cb(self, completion, model, iter): """ [Purpose] match_cb function used for dictonary purpose [Arguments] completion, model [Returns] None """ return def activate_cb(self, entry): """ [Purpose] This function used for upending list as dictonary [Arguments] entry [Returns] None """ self.text = self.entry_vendorname.get_text() if self.text: if self.text not in [row[0] for row in self.liststore]: self.liststore.append([self.text]) self.entry_vendorname.set_text('') return def forwardclicked(self,widget): """ [Purpose] This function used to ho next page of purchase bill discription and all types of validation [Arguments] None [Returns] It forwarded to next page arguments like list of[pbillno(datatype:varchar),pbilldate(datatype:timestamp), vendorcode(datatype:varchar),transportname(datatype:varchar),ppaymentmode(datatype:varchar),chequeno(datatype:varchar), bankname(datatype:varchar),othercharges(datatype:numeric),discount(datatype:float4),tax(datatype:float4)] """ if self.entry_vendorname.get_text() == '' or self.entry_vendorname.get_text == ' ': self.dialog_FindFail = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK, message_format=("Vendor name cant be empty")) self.response = self.dialog_FindFail.run() self.dialog_FindFail.destroy() self.entry_vendorname.grab_focus() return res = gnukhata_global.serverProxy.vendor.getVendor(['name',self.entry_vendorname.get_text()],gnukhata_global.client_id) self.vendorcode=res[0] if res == False: self.dialog_FindFail = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK, message_format=("Vendor doesnt exist!!!Enter a proper vendor name")) self.response = self.dialog_FindFail.run() self.dialog_FindFail.destroy() self.entry_vendorname.grab_focus() return if self.entry_transportername.get_text() == '' or self.entry_transportername.get_text() == ' ': self.messagedialog_warning_validate = gtk.MessageDialog(type = gtk.MESSAGE_ERROR,buttons=gtk.BUTTONS_OK, message_format=("The transporter name cannot be empty!")) self.response = self.messagedialog_warning_validate.run() self.messagedialog_warning_validate.destroy() self.entry_transportername.grab_focus() return if len(self.entry_transportername.get_text())>30: self.messagedialog_warning_validate = gtk.MessageDialog(type = gtk.MESSAGE_ERROR,buttons=gtk.BUTTONS_OK, message_format=("The length of transporter name cannot exceed 30!")) self.response = self.messagedialog_warning_validate.run() self.messagedialog_warning_validate.destroy() self.entry_transportername.grab_focus() return self.getParent_notebook = self.get_parent() self.page =self.getParent_notebook.get_current_page() model_paymentmode = self.combobox_paymentmode.get_model() active_paymentmode = self.combobox_paymentmode.get_active() model_bankname = self.combobox_bankname.get_model() active_bankname = self.combobox_bankname.get_active() self.bill_date=str(strftime("%Y-%m-%d %H:%M:%S")) self.reff_date=time.strftime("%m-%d-%Y %H:%M", time.localtime(self.dateedit_referencedate.get_time())) res = gnukhata_global.serverProxy.vendor.getVendor(['name',self.entry_vendorname.get_text()],gnukhata_global.client_id) if res == False: self.dialog_FindFail = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK, message_format=("Vendor doesnt exist!!!Enter a proper vendor name")) self.response = self.dialog_FindFail.run() self.dialog_FindFail.destroy() return if self.mode == 'n': if model_paymentmode[active_paymentmode][0]=='Cash': queryParams_master=[self.entry_billno.get_text(),self.bill_date,self.reff_date,res[0],self.entry_transportername.get_text(),model_paymentmode[active_paymentmode][0],self.entry_chequeno.get_text(),""] else : queryParams_master=[self.entry_billno.get_text(),self.bill_date,self.reff_date,res[0],self.entry_transportername.get_text(),model_paymentmode[active_paymentmode][0],self.entry_chequeno.get_text(),model_bankname[active_bankname][0]] self.bill_nextpage=purchase_details('n',self.orgcode,queryParams_master,self.entry_billno.get_text(),self.vendorcode) self.eventbox=self.create_custom_tab('New purchase bill -page 2') self.page=self.getParent_notebook.insert_page(self.bill_nextpage, self.eventbox,-1) self.tabButton.connect('event',self.on_tabButton_clicked,self.bill_nextpage) self.getParent_notebook.set_current_page(self.page) if self.mode == 'f': self.bill_nextpage=purchase_details('f',self.orgcode,self.queryParams_details,self.entry_billno.get_text(),self.queryParams_finddetails) self.getParent_notebook.insert_page(self.bill_nextpage,gtk.Label('Purchase bill-page 2')) self.getParent_notebook.next_page() if self.mode == 'e': self.bill_date=time.strftime("%m-%d-%Y %H:%M:%S", time.localtime(self.entry_date.get_time())) queryParams_master=[self.entry_billno.get_text(),self.bill_date,res[0],self.entry_transportername.get_text(),model_paymentmode[active_paymentmode][0],self.queryParams_details[1],self.entry_chequeno.get_text(),model_bankname[active_bankname][0],self.queryParams_details[0]] res = gnukhata_global.serverProxy.purchasebill.editPurchaseMaster(queryParams_master,gnukhata_global.client_id) if res == True: self.dialog_record_update = gtk.MessageDialog(type=gtk.MESSAGE_INFO, buttons=gtk.BUTTONS_YES_NO, message_format=("Record updated successfully !!! Do you want to edit Purchase Details")) self.response_record_update = self.dialog_record_update.run() if self.response_record_update == gtk.RESPONSE_YES : self.bill_nextpage=purchase_details('e',self.orgcode,self.queryParams_details,self.entry_billno.get_text(),self.queryParams_finddetails) self.getParent_notebook.insert_page(self.bill_nextpage,gtk.Label('Purchase bill-page 2')) self.getParent_notebook.next_page() self.dialog_record_update.destroy() return else: self.bill_nextpage=purchase_details('f',self.orgcode,self.queryParams_details,self.entry_billno.get_text(),self.queryParams_finddetails) self.getParent_notebook.insert_page(self.bill_nextpage,gtk.Label('Purchase bill-page 2')) self.getParent_notebook.next_page() self.dialog_record_update.destroy() def cancelclicked(self,widget): self.billno=gnukhata_global.serverProxy.voucher.getVoucherCode([gnukhata_global.orgcode],gnukhata_global.client_id) self.entry_billno.set_text(self.billno) self.entry_vendorname.set_text("") self.entry_ddno.set_text("") self.entry_chequeno.set_text("") self.entry_transportername.set_text("") self.entry_date.set_text(str(strftime("%d-%m-%Y %H:%M:%S"))) def editclicked(self,widget): self.mode='e' self.entry_vendorname.set_editable(True) self.entry_ddno.set_editable(True) self.entry_chequeno.set_editable(True) self.entry_transportername.set_editable(True) self.entry_date.set_sensitive(True) self.combobox_bankname.set_sensitive(True) def paymentmode_change(self,widget): model_paymentmode = self.combobox_paymentmode.get_model() active_paymentmode = self.combobox_paymentmode.get_active() payment_mode=model_paymentmode[active_paymentmode][0] if payment_mode == 'Cash': self.entry_chequeno.set_sensitive(False) self.entry_ddno.set_sensitive(False) self.combobox_bankname.set_sensitive(False) if payment_mode == 'Cheque': self.entry_chequeno.set_sensitive(True) self.entry_ddno.set_sensitive(False) self.combobox_bankname.set_sensitive(True) if payment_mode == 'DD': self.entry_chequeno.set_sensitive(False) self.entry_ddno.set_sensitive(True) self.combobox_bankname.set_sensitive(True) if payment_mode == 'To Be Paid': self.entry_chequeno.set_sensitive(False) self.entry_ddno.set_sensitive(False) self.combobox_bankname.set_sensitive(False)
_______________________________________________ pygtk mailing list [email protected] http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/
