def bt_nuevo_cb(self, widget): self.encabezado = False fac = self.entity.get_new( self.padre.tim_nc_ventas, self.padre.establecimiento, self.padre.idpunto_expedicion ) if str(fac[0]) == '1': fac = (self.padre.num_ini_nc_ventas,) if int(fac[0]) > self.padre.num_fin_nc_ventas: msg.errorMsgBox(self.nav('window1'), "Numero Maximo Alcanzado", "Se ha superado la cantidad de numeros permitidos en el timbrado actual, avise al CONTADOR!") return est = '{:0>3}'.format(str(self.padre.establecimiento)) pex = '{:0>3}'.format(str(self.padre.idpunto_expedicion)) num = '{:0>7}'.format(str(fac[0])) factura = "%s-%s-%s" % (est, pex, num) self.formulario() self.frm('entry1').set_text(factura) self.frm('entry8').set_text(self.padre.user_login.nombres_apellidos) self.frm('entry7').set_text(str(self.padre.tim_nc_ventas)) self.frm('entry2').set_text(datetime.now().strftime('%d/%m/%Y')) self.frm('entry3').grab_focus() self.frm('button2').set_sensitive(False)
def cargar_articulos(self): if len(self.frm('entry9').get_text()) == 0: return dato = self.articulos.find( idarticulo=self.frm('entry9').get_text() ) if dato[0] is None: msg.errorMsgBox( self.frm('window1'), "Articulo Inexistente", "El id ingresado no corresponde a ningún artículo registrado!" ) self.frm('entry8').grab_focus() self.limpiar_articulos() return if not self.articulos.habil_compras: msg.errorMsgBox( self.frm('window1'), "Atención", "El articulo no está habilitado para compras." ) self.limpiar_articulos() self.frm('entry8').grab_focus() return self.frm('entry10').set_text(self.articulos.descripcion) self.frm('label8').set_text(self.articulos.idunidad_medida + '-' + str(self.articulos.empaque)) self.frm('label9').set_text(str(self.articulos.get_iva(self.articulos.idarticulo))) self.frm('entry11').set_text(str(self.articulos.precio_costo)) self.frm('entry12').set_text('1')
def cargar_proveedor(self): if len(self.frm("entry4").get_text()) == 0: return dato = self.contactos.get_contacto(1, self.frm("entry4").get_text()) if dato is None: msg.errorMsgBox( self.frm("window1"), "Contacto Inexistente", "Contacto inexistente o no indicado como Cliente" ) return self.frm("entry5").set_text(dato[1]) self.frm("entry6").set_text(dato[2])
def treeview_key_press_cb(self, widget, event): if event.keyval == 65535: sl, it = self.frm("treeview1").get_selection().get_selected() try: idarticulo = sl.get_value(it, 0) except: msg.errorMsgBox(self.frm("window1"), "Sin selección", "Seleccione un registro para eliminar") return res = msg.preguntaMsgBox(self.frm("window1"), "Eliminando Registro", "Estas seguro?") if res == -8: quitar = self.detalle.quitar_detalle(self.frm("entry1").get_text(), idarticulo) self.refrescar_detalle()
def bt_eliminar_cb(self, widget): sl, it = self.nav('treeview1').get_selection().get_selected() try: pk = sl.get_value(it, 0) est = sl.get_value(it, 2) except: msg.errorMsgBox(self.nav('window1'), "Sin selección", "Es necesario seleccionar un registo") return res = msg.preguntaMsgBox(self.nav('window1'), "Eliminar Registro", "Estas Seguro?") if res == -8: datos = self.entity.find(idpunto_expedicion=pk, idestablecimiento=est) if self.entity.delete(): self.consultar()
def cargar_cuentas(self): if len(self.frm('entry1').get_text()) > 0: idcontacto = self.frm('entry1').get_text().split('-')[0] self.frm('liststore1').clear() for row in self.cuentas.cuentas_all(idcontacto): self.frm('liststore1').append([str(row[0]), str(row[1]), str(row[2]), Format.number(row[3]), row[4]]) if len(self.frm('liststore1')) == 0: msg.errorMsgBox(self.frm('window1'), "Cliente sin cuentas", "Cliente sin cuentas pendientes de pago.")
def bt_editar_cb(self, widget): sl, it = self.nav('treeview1').get_selection().get_selected() try: pk = sl.get_value(it, 0) except: msg.errorMsgBox(self.nav('window1'), "Sin selección", "Es necesario seleccionar un registo para la edición") return datos = self.entity.find(idestablecimiento=pk) self.formulario() self.frm('entry1').set_text(str(self.entity.idestablecimiento)) self.frm('entry2').set_text(self.entity.direccion) self.frm('entry3').set_text(self.entity.telefono) self.set_active_combo(self.entity.idempresa)
def cargar_proveedor(self): if len(self.frm('entry4').get_text()) == 0: return dato = self.contactos.get_contacto(2, self.frm('entry4').get_text()) if dato is None: msg.errorMsgBox( self.frm('window1'), "Contacto Inexistente", "Contacto inexistente o no establecido como Proveedor" ) return self.frm('entry5').set_text(dato[1]) self.frm('entry6').set_text(dato[2])
def bt_editar_cb(self, widget): sl, it = self.nav('treeview1').get_selection().get_selected() try: pk = sl.get_value(it, 0) except: msg.errorMsgBox(self.nav('window1'), "Sin selección", "Es necesario seleccionar un registo para la edición") return datos = self.entity.find(idusuario=pk) self.formulario() self.frm('entry1').set_text(str(self.entity.idusuario)) self.frm('entry2').set_text(self.entity.nombres_apellidos) self.frm('entry3').set_text(self.entity.alias) self.frm('entry4').set_text(self.entity.clave)
def bt_menos_cb(self, widget): sl, it = self.frm('treeview1').get_selection().get_selected() try: idtipo = sl.get_value(it, 0) except: msg.errorMsgBox(self.nav('window1'), "Sin selección", "Es necesario seleccionar un registo") return res = msg.preguntaMsgBox(self.nav('window1'), "Eliminar Registro", "Estas Seguro?") if res == -8: kwargs = { 'idtipo_contacto': idtipo, 'idcontacto': self.frm('entry1').get_text() } datos = self.entity_1.find(**kwargs) if self.entity_1.delete(): self.consultar_tipos()
def bt_eliminar_cb(self, widget): sl, it = self.nav('treeview1').get_selection().get_selected() try: pk = sl.get_value(it, 0) except: msg.errorMsgBox(self.nav('window1'), "Sin selección", "Es necesario seleccionar un registo") return res = msg.preguntaMsgBox(self.nav('window1'), "Eliminar Registro", "Estas Seguro?") if res == -8: kwargs = { self.entity.__pks__[0]: pk } datos = self.entity.find(**kwargs) if self.entity.delete(): self.consultar()
def bt_editar_cb(self, widget): sl, it = self.nav('treeview1').get_selection().get_selected() try: pk = sl.get_value(it, 0) except: msg.errorMsgBox(self.nav('window1'), "Sin selección", "Es necesario seleccionar un registo para la edición") return datos = self.entity.find(nro_timbrado=pk) self.formulario() self.frm('entry1').set_text(str(self.entity.nro_timbrado)) self.frm('entry2').set_text(self.entity.fecha_vigencia.strftime('%d/%m/%Y')) self.frm('entry3').set_text(self.entity.fecha_vencimiento.strftime('%d/%m/%Y')) self.frm('entry4').set_text(str(self.entity.numero_inicial)) self.frm('entry5').set_text(str(self.entity.numero_final)) self.set_active_combo(str(self.entity.idtipo_comprobante))
def bt_editar_cb(self, widget): sl, it = self.nav('treeview1').get_selection().get_selected() try: pk = sl.get_value(it, 0) except: msg.errorMsgBox(self.nav('window1'), "Sin selección", "Es necesario seleccionar un registo para la edición") return datos = self.entity.find(idcontacto=pk) self.formulario() self.frm('entry1').set_text(str(self.entity.idcontacto)) self.frm('entry2').set_text(self.entity.razon_social) self.frm('entry3').set_text(self.entity.ruc_ci) self.frm('entry4').set_text(self.entity.direccion) self.frm('entry5').set_text(self.entity.telefono) self.consultar_tipos()
def bt_editar_cb(self, widget): sl, it = self.nav('treeview1').get_selection().get_selected() try: pk = sl.get_value(it, 0) est = sl.get_value(it, 2) except: msg.errorMsgBox(self.nav('window1'), "Sin selección", "Es necesario seleccionar un registo para la edición") return datos = self.entity.find(idpunto_expedicion=pk, idestablecimiento=est) self.formulario() self.frm('entry1').set_text(str(self.entity.idpunto_expedicion)) self.frm('entry2').set_text(self.entity.descripcion) self.set_active_combo(self.entity.idestablecimiento) self.frm('combobox1').set_sensitive(False)
def treeview_key_press_cb(self, widget, event): if event.keyval == 65535: sl, it = self.frm('treeview1').get_selection().get_selected() try: idarticulo = sl.get_value(it, 0) except: msg.errorMsgBox(self.frm('window1'), "Sin selección", "Seleccione un registro para eliminar") return res = msg.preguntaMsgBox(self.frm('window1'), "Eliminando Registro", "Estas seguro?") if res == -8: nro_factura = self.frm('entry1').get_text().split('-')[2] quitar = self.detalle.quitar_detalle( nro_factura, self.frm('entry7').get_text(), self.padre.establecimiento, self.padre.idpunto_expedicion, idarticulo ) self.refrescar_detalle()
def cargar_articulos(self): if len(self.frm('entry9').get_text()) == 0: return try: dato = self.articulos.find( idarticulo=self.frm('entry9').get_text() ) except: msg.errorMsgBox( self.frm('window1'), "Articulo Inexistente", "El id ingresado no corresponde a ningún artículo registrado!" ) return if dato[0] is None: msg.errorMsgBox( self.frm('window1'), "Articulo Inexistente", "El id ingresado no corresponde a ningún artículo registrado!" ) self.frm('entry8').grab_focus() self.limpiar_articulos() return if not self.articulos.habil_ventas: msg.errorMsgBox( self.frm('window1'), "Atención", "El articulo no está habilitado para ventas." ) self.limpiar_articulos() self.frm('entry8').grab_focus() return self.frm('entry10').set_text(self.articulos.descripcion) precios = self.precios.all(where = "idarticulo=%s and vigente = True"%self.articulos.idarticulo) if len(precios) > 1: busquedas.Buscar(self, precios, [self.frm('entry11'), self.frm('label8')], None, 1, True) else: self.frm('entry11').set_text(str(precios[0][5])) self.frm('label8').set_text(precios[0][3] + '-' + str(precios[0][4])) self.frm('label9').set_text(str(self.articulos.get_iva(self.articulos.idarticulo))) self.frm('entry12').set_text('1')
def guardar(self, widget=None): if len(self.frm('entry1').get_text()) == 0: msg.errorMsgBox(self.frm('window1'), "Campo Obligatorio", "El campo Nro. Documento es Obligatorio!") self.frm('entry1').grab_focus() return if len(self.frm('entry2').get_text()) == 0: msg.errorMsgBox(self.frm('window1'), "Campo Obligatorio", "El campo Fecha es Obligatorio!") self.frm('entry2').grab_focus() return if len(self.frm('entry3').get_text()) == 0: msg.errorMsgBox(self.frm('window1'), "Campo Obligatorio", "El campo Tipo Factura es Obligatorio!") self.frm('entry3').grab_focus() return if len(self.frm('entry4').get_text()) == 0: msg.errorMsgBox(self.frm('window1'), "Campo Obligatorio", "El campo Proveedor es Obligatorio!") self.frm('entry4').grab_focus() return if len(self.frm('entry7').get_text()) == 0: msg.errorMsgBox(self.frm('window1'), "Campo Obligatorio", "El campo Timbrado es Obligatorio!") self.frm('entry7').grab_focus() return if len(self.frm('entry9').get_text()) == 0: msg.errorMsgBox(self.frm('window1'), "Campo Obligatorio", "El campo Articulo es Obligatorio!") self.frm('entry9').grab_focus() return if len(self.frm('entry10').get_text()) == 0: msg.errorMsgBox(self.frm('window1'), "Campo Obligatorio", "El campo Precio Costo es Obligatorio!") self.frm('entry10').grab_focus() return if not self.encabezado: self.entity.nro_notacredito = self.frm('entry1').get_text() self.entity.nro_timbrado = self.frm('entry7').get_text() self.entity.idcontacto = self.frm('entry4').get_text() self.entity.fecha = self.frm('entry2').get_text() self.entity.idtipo_factura = self.frm('entry3').get_text().split('-')[0] self.entity.idusuario = self.padre.user_login.idusuario self.entity.nro_factura = self.frm('entry13').get_text() self.entity.nro_timbrado_compras = self.frm('entry15').get_text() self.entity.idcontacto_compras = self.frm('entry4').get_text() if self.entity.save(): self.desactivar_encabezado() self.encabezado = True self.consultar() if self.encabezado: cantidad = self.articulo_en_detalle(self.frm('entry9').get_text()) if cantidad: cantidad += float(self.frm('entry12').get_text()) update = self.detalle.update_cantidad( cantidad, self.frm('entry1').get_text(), self.frm('entry7').get_text(), self.frm('entry4').get_text(), self.frm('entry9').get_text() ) if update: self.limpiar_articulos() self.refrescar_detalle() self.frm('entry9').grab_focus() return self.detalle.nro_notacredito = self.frm('entry1').get_text() self.detalle.nro_timbrado = self.frm('entry7').get_text() self.detalle.idcontacto = self.frm('entry4').get_text() self.detalle.idarticulo = self.frm('entry9').get_text() self.detalle.idunidad_medida = self.frm('label8').get_text().split('-')[0] self.detalle.cantidad_empaque = self.frm('label8').get_text().split('-')[1] self.detalle.precio_costo = self.frm('entry11').get_text() self.detalle.iva = self.frm('label9').get_text() self.detalle.cantidad = self.frm('entry12').get_text() if self.detalle.save(): self.refrescar_detalle() self.limpiar_articulos() self.frm('entry9').grab_focus() self.frm('button2').set_sensitive(True)
def guardar(self, widget=None): if len(self.frm("entry1").get_text()) == 0: msg.errorMsgBox(self.frm("window1"), "Campo Obligatorio", "El campo Nro. Documento!") self.frm("entry1").grab_focus() return if len(self.frm("entry2").get_text()) == 0: msg.errorMsgBox(self.frm("window1"), "Campo Obligatorio", "El campo Fecha es Obligatorio!") self.frm("entry2").grab_focus() return if len(self.frm("entry4").get_text()) == 0: msg.errorMsgBox(self.frm("window1"), "Campo Obligatorio", "El campo Cliente es Obligatorio!") self.frm("entry4").grab_focus() return if len(self.frm("entry9").get_text()) == 0: msg.errorMsgBox(self.frm("window1"), "Campo Obligatorio", "El campo Articulo es Obligatorio!") self.frm("entry9").grab_focus() return if len(self.frm("entry10").get_text()) == 0: msg.errorMsgBox(self.frm("window1"), "Campo Obligatorio", "El campo Precio Costo es Obligatorio!") self.frm("entry10").grab_focus() return if not self.encabezado: self.entity.numero = self.frm("entry1").get_text() self.entity.fecha = self.frm("entry2").get_text() self.entity.idcontacto = self.frm("entry4").get_text() self.entity.idusuario = self.padre.user_login.idusuario if self.entity.save(): self.desactivar_encabezado() self.encabezado = True self.consultar() if self.encabezado: cantidad = self.articulo_en_detalle(self.frm("entry9").get_text()) if cantidad: cantidad += float(self.frm("entry12").get_text()) update = self.detalle.update_cantidad( cantidad, self.frm("entry1").get_text(), self.frm("entry9").get_text() ) if update: self.limpiar_articulos() self.refrescar_detalle() self.frm("entry9").grab_focus() return self.detalle.numero = self.frm("entry1").get_text() self.detalle.idarticulo = self.frm("entry9").get_text() self.detalle.cantidad = self.frm("entry12").get_text() self.detalle.idunidad_medida = self.frm("label8").get_text().split("-")[0] self.detalle.cantidad_empaque = self.frm("label8").get_text().split("-")[1] self.detalle.precio_venta = self.frm("entry11").get_text() self.detalle.iva = self.frm("label9").get_text() if self.detalle.save(): self.refrescar_detalle() self.limpiar_articulos() self.frm("entry9").grab_focus() self.frm("button2").set_sensitive(True)