コード例 #1
0
ファイル: test.py プロジェクト: hey-mx/ventas_pygtk
from utils.Database import DataModel
model = DataModel('Proveedor')
#model.get_record(1)
model.update_record({'cp': 72420, 'email_contacto': '*****@*****.**'}, 1)
model.dispose()
コード例 #2
0
class ConfiguracionesFactory(gtk.Frame):
    
    __record_id = 0

    def __init__(self, main):
        super(ConfiguracionesFactory, self).__init__()
        self.main = main
        builder = gtk.Builder()
        builder.add_from_file("config_frame.glade")
        self.content = builder.get_object("vbox_content")
        self.entry = builder.get_object("pdf_entry")
        self.entry_margen_superior = builder.get_object("margen_superior")
        self.entry_margen_izquierdo = builder.get_object("margen_izquierdo")
        builder.connect_signals(self)
        self.content.reparent(self)
        self.content.show()
        self.config_model = DataModel('Configuracion')
        reader = get_pdf_reader()
        self.entry.set_text(reader['valor'])
        self.__record_id = reader['id']
        self.margen_izquierdo =  get_margen('margen_izquierdo')
        self.margen_superior = get_margen('margen_superior')
        if self.margen_superior is not None:
            self.entry_margen_superior.set_text(str(self.margen_superior['valor']).strip())
        if self.margen_izquierdo is not None:
            self.entry_margen_izquierdo.set_text(str(self.margen_izquierdo['valor']).strip())

    def on_aceptar_button_clicked(self, widget):
        pdf = self.entry.get_text()
        if self.__record_id == 0:
            self.config_model.create_record({'parametro': 'pdf_reader', 'valor': pdf})
        else:
            self.config_model.update_record({'parametro': 'pdf_reader', 'valor': pdf}, self.__record_id)

        #try:
        float(self.entry_margen_superior.get_text())
        """except:
            self._show_error_message('El valor para el margen superior debe de ser numerico')
            return"""
        if self.margen_superior is None:
            self.config_model.create_record({'parametro': 'margen_superior', 
                    'valor': self.entry_margen_superior.get_text()})
        else:
            self.config_model.update_record({'valor': self.entry_margen_superior.get_text()},
                self.margen_superior['id'])
        
        try:
            float(self.entry_margen_izquierdo.get_text())
        except:
            self._show_error_message('El valor para el margen izquierdo debe de ser numerico')
            return

        if self.margen_izquierdo is None:
            self.config_model.create_record({'parametro': 'margen_izquierdo', 
                    'valor': self.entry_margen_izquierdo.get_text()})
        else:
            self.config_model.update_record({'valor': self.entry_margen_izquierdo.get_text()},
                self.margen_izquierdo['id'])

    def on_cerrar_button_clicked(self, widget):
        page = self.parent.get_current_page()
        self.parent.remove_page(page)
        del self.main.pages[page]

    def _show_error_message(self, message):
        dialog = gtk.MessageDialog(self.parent.parent.parent, gtk.DIALOG_DESTROY_WITH_PARENT,
            gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, message)
        dialog.run()
        dialog.destroy()
コード例 #3
0
ファイル: Form.py プロジェクト: hey-mx/ventas_pygtk
class FormBuilder:
    __fields = []
    def __init__(self, builder, entity):
        self.builder = builder
        self.entity = entity
        self.model = DataModel(entity)
        self.__fields = self.model.get_colums()

    def get_entity(self, entity_id):
        row = self.model.get_record(entity_id)
        if row is not None:
            for field in self.__fields:
                self.load_widget_value(field, row[field])
    
    def save_entity(self, upsert=False, custom_id=False):
        id = self.__get_id()
        values = {}
        for field in self.__fields:
            if field != 'id' or (field == 'id' and custom_id == True):
                values[field] = self.get_widget_value(field)
        if id == 0 or id == '':
            self.model.create_record(values)
        else:
            self.model.update_record(values, id, upsert)
        self.clear_form()

    def delete_entity(self):
        id = self.__get_id()
        if id > 0 or id != '':
            dialog = gtk.MessageDialog(None, gtk.DIALOG_DESTROY_WITH_PARENT,
                gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, "¿Desea eliminar el registro actual?")
            response = dialog.run()
            dialog.destroy()
            if response == gtk.RESPONSE_YES:
                self.model.delete_record(id)
                self.clear_form()

    def clear_form(self):
        for field in self.__fields:
            self.load_widget_value(field, '')

    def load_widget_value(self, widget_name, value):
        widget = self.builder.get_object(widget_name)
        if isinstance(widget, gtk.Entry) or isinstance(widget, gtk.Label):
            widget.set_text(str(value))
        if isinstance(widget, gtk.ComboBox):
            model = widget.get_model()
            count = 0
            for row in model:
                if row[0] == value:
                    widget.set_active(count)
                count += 1
        if isinstance(widget, gtk.CheckButton):
            widget.set_active(True if value else False)
        if isinstance(widget, gtk.Calendar):
            widget.select_month(value[1], value[0])
            widget.select_day(value[2])
            
    def get_widget_value(self, widget_name):
        value = None
        widget = self.builder.get_object(widget_name)
        if isinstance(widget, gtk.Entry) or isinstance(widget, gtk.Label):
            value = widget.get_text()
        if isinstance(widget, gtk.ComboBox):
            model = widget.get_model()
            tree_iter = widget.get_active_iter()
            if tree_iter != None:
                value = str(model[tree_iter][0])
        if isinstance(widget, gtk.CheckButton):
            value = widget.get_active()
        if isinstance(widget, gtk.Calendar):
            value = widget.get_date()
        return value

    def get_model(self):
        return self.model

    def __get_id(self):
        id = 0
        widget = self.builder.get_object('id')
        if isinstance(widget, gtk.Label) or isinstance(widget, gtk.Entry):
            id = widget.get_text()
        return id