def buscar_nro_nota_debito(self): timb = self.obj("txt_01_1").get_text() cursor = Op.consultar( self.conexion, "NumeroInicio, NumeroFin", "timbrados_s", " WHERE NroTimbrado = " + timb + " AND " + "idTipoDocumento = 3 AND FechaVencimiento > NOW() AND Anulado <> 1" ) datos = cursor.fetchall() ini, fin = datos[0][0], datos[0][1] num_nota = Op.nuevoid(self.conexion, self.tabla + "_s WHERE NroTimbrado = " + timb, "NroNotaDebito") if int(num_nota) >= ini and int(num_nota) <= fin: self.obj("txt_00_3").set_text(Op.cadenanumeros(num_nota, 7)) elif int(num_nota) < ini: self.obj("txt_00_3").set_text(Op.cadenanumeros(str(ini), 7)) elif int(num_nota) > fin: Mens.error_generico( "¡ERROR!", "El nuevo Número de Nota de Débito es mayor " + "al último número\npara el Timbrado asignado a este Punto de Expedición." + "\n\nHable con el Administrador par resolver el problema.") self.estadoedicion(False) self.limpiarcampos()
def funcion_items(self): self.guardar_encabezado() if self.editando_item: seleccion, iterador = self.obj( "grilla").get_selection().get_selected() item = str(seleccion.get_value(iterador, 4)) cant = str(seleccion.get_value(iterador, 2)) precio = str(seleccion.get_value(iterador, 3)) self.obj("txt_it_00").set_text(self.cond_det) self.obj("txt_it_01").set_text(item) self.on_item_focus_out_event(self.obj("txt_it_01"), 0) self.obj("txt_it_02").set_text(cant) self.obj("txt_it_03").set_text(precio) else: self.obj("txt_it_00").set_text( Op.nuevoid( self.conexion, "pedidoventas_detalles_s WHERE NroPedidoVenta = " + self.obj("txt_00").get_text(), "idDetalle")) self.obj("btn_guardar_item").set_sensitive(False) self.obj("grilla").get_selection().unselect_all() self.obj("barraestado").push(0, "") self.estadoguardar(False) self.estadoitems(True)
def funcion_conceptos(self): self.guardar_principal_comprobantes() if self.editando_concepto: seleccion, iterador = self.obj( "grilla").get_selection().get_selected() idcon = str(seleccion.get_value(iterador, 1)) con = seleccion.get_value(iterador, 2) cant = str(seleccion.get_value(iterador, 3)) monto = str(seleccion.get_value(iterador, 4)) obs = seleccion.get_value(iterador, 6) self.obj("txt_c_01").set_text(self.cond_concepto) self.obj("txt_c_02").set_text(idcon) self.obj("txt_c_02_1").set_text(con) self.obj("txt_c_03").set_text(cant) self.obj("txt_c_04").set_text(monto) self.obj("txt_c_05").set_text(obs) else: self.obj("txt_c_01").set_text( Op.nuevoid( self.conexion, "comprobantepagos_detalles_s WHERE NroComprobante = " + self.obj("txt_00").get_text(), "idDetalle")) self.estadoedicion(True) self.estadoguardar(False) self.obj("btn_guardar_concepto").set_sensitive(False) self.obj("grilla").get_selection().unselect_all() self.obj("barraestado").push(0, "")
def on_btn_guardar_clicked(self, objeto): cont = self.obj("txt_02").get_text() monto = self.obj("txt_04").get_text() # Establece la conexión con la Base de Datos conexion = Op.conectar(self.nav.datos_conexion) # Crear encabezado de Comprobante de Pago comp = Op.nuevoid(self.nav.datos_conexion, "comprobantepagos_s", "NroComprobante") sql = comp + ", " + cont + ", '" + str(date.today()) + "', " + \ "'" + str(date.today()) + "', NULL, 1" Op.insertar(conexion, "comprobantepagos", sql) # Crear detalle de Comprobante de Pago (1 - Anticipo) sql = comp + ", 1, 1, " + monto + ", 1, NULL" Op.insertar(conexion, "comprobantepagos_detalles", sql) conexion.commit() # Agregar-Modificar registro de Anticipo cod = self.obj("txt_00").get_text() obs = self.obj("txt_05").get_text() obs = "NULL" if len(obs) == 0 else "'" + obs + "'" sql = cod + ", " + cont + ", " + comp + ", " + monto + ", " + obs Op.insertar(conexion, self.nav.tabla, sql) conexion.commit() conexion.close() # Finaliza la conexión # Generar Comprobante de Pago from informes.rrhh_comprobantes import genera_comprobante_pago genera_comprobante_pago(self.nav.datos_conexion, comp) self.obj("ventana").destroy() cargar_grilla(self.nav)
def __init__(self, edit, origen): self.editando = edit self.nav = origen arch = Op.archivo("abm_denominaciones") self.obj = arch.get_object self.obj("ventana").set_position(1) self.obj("ventana").set_modal(True) edit = "Creando" if not self.editando else "Editando" self.obj("ventana").set_title(edit + " Registro de Denominaciones") Mens.boton_guardar_cancelar(self.obj("btn_guardar"), self.obj("btn_cancelar")) self.obj("txt_00").set_max_length(10) self.obj("txt_01").set_max_length(50) self.obj("txt_02").set_max_length(10) self.obj("txt_00").set_tooltip_text("Ingrese el Código de la Denominación") self.obj("txt_01").set_tooltip_text("Ingrese la Descripción de la Denominación") self.obj("txt_02").set_tooltip_text("Ingrese el Valor numérico de la Denominación") self.obj("txt_01").grab_focus() self.idMoneda = self.idTipoDen = -1 Op.combos_config(self.nav.datos_conexion, self.obj("cmb_moneda"), "monedas_s", "idMoneda") Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_den"), "tipodenominaciones", "idTipoDenominacion") arch.connect_signals(self) if self.editando: seleccion, iterador = self.nav.obj("grilla").get_selection().get_selected() self.cond = str(seleccion.get_value(iterador, 0)) des = seleccion.get_value(iterador, 1) moneda = seleccion.get_value(iterador, 2) tipo = seleccion.get_value(iterador, 4) val = str(seleccion.get_value(iterador, 6)) # Asignación de Moneda en Combo model, i = self.obj("cmb_moneda").get_model(), 0 while model[i][0] != moneda: i += 1 self.obj("cmb_moneda").set_active(i) # Asignación de Tipo de Denominación en Combo model, i = self.obj("cmb_tipo_den").get_model(), 0 while model[i][0] != tipo: i += 1 self.obj("cmb_tipo_den").set_active(i) self.obj("txt_00").set_text(self.cond) self.obj("txt_01").set_text(des) self.obj("txt_02").set_text(val) else: self.obj("txt_00").set_text(Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid)) self.obj("cmb_moneda").set_active(0) self.obj("cmb_tipo_den").set_active(0) self.nav.obj("grilla").get_selection().unselect_all() self.nav.obj("barraestado").push(0, "") self.obj("ventana").show()
def __init__(self, edit, origen): self.editando = edit self.nav = origen arch = Op.archivo("usuarios_grupos") self.obj = arch.get_object self.obj("ventana").set_default_size(700, 500) self.obj("ventana").set_position(1) self.obj("ventana").set_modal(True) edit = "Creando" if not self.editando else "Editando" self.obj("ventana").set_title(edit + " Registro del Grupo de Usuarios") self.obj("btn_guardar").set_tooltip_text("Presione este botón para guardar el registro del Grupo de Usuarios") self.obj("btn_cancelar").set_tooltip_text("Presione este botón para cerrar esta ventana sin guardar cambios") self.estadoedicion(True) self.estadoguardar(False) self.estadopermiso(False) self.txt_cod_tabla = self.obj("txt_cod_tabla") self.txt_des_tabla = self.obj("txt_des_tabla") self.obj("txt_00").set_max_length(10) self.obj("txt_01").set_max_length(50) self.obj("txt_00").set_tooltip_text("Ingrese el Código del Grupo de Usuarios") self.obj("txt_01").set_tooltip_text("Ingrese la Descripción del Grupo de Usuarios") self.obj("txt_01").grab_focus() self.obj("btn_nuevo").set_tooltip_text("Presione este botón para Agregar\nun permiso sobre una Tabla") self.obj("btn_modificar").set_tooltip_text("Presione este botón para Modificar\nel permiso sobre una Tabla") self.obj("btn_eliminar").set_tooltip_text("Presione este botón para Eliminar\nel permiso sobre una Tabla") self.obj("btn_guardar_tab").set_tooltip_text("Presione este botón para Guardar el registro") self.obj("btn_cancelar_tab").set_tooltip_text("Presione este botón para Cancelar esta operación") arch.connect_signals(self) if self.editando: seleccion, iterador = self.nav.obj("grilla").get_selection().get_selected() self.cond = str(seleccion.get_value(iterador, 0)) self.desc = seleccion.get_value(iterador, 1) self.obj("txt_00").set_text(self.cond) self.obj("txt_01").set_text(self.desc) else: self.obj("txt_00").set_text(Op.nuevoid(self.nav.datos_conexion, "grupousuarios_s", self.nav.campoid)) self.obj("txt_01").set_text("") self.conexion = Op.conectar(self.nav.datos_conexion) self.config_grilla_tablas() self.cargar_grilla_tablas() self.nav.obj("grilla").get_selection().unselect_all() self.nav.obj("barraestado").push(0, "") self.obj("ventana").show()
def __init__(self, edit, origen): self.nav = origen arch = Op.archivo("rrhh_aguinaldos") self.obj = arch.get_object self.obj("ventana").set_position(1) self.obj("ventana").set_modal(True) self.obj("ventana").set_title("Creando Registro de Aguinaldo") Mens.boton_guardar_cancelar(self.obj("btn_guardar"), self.obj("btn_cancelar")) self.obj("txt_00").set_max_length(10) self.obj("txt_01").set_max_length(10) self.obj("txt_01_2").set_max_length(12) self.obj("txt_02").set_max_length(10) self.obj("txt_05").set_max_length(100) self.obj("txt_00").set_tooltip_text("Ingrese el Código del Aguinaldo") self.obj("txt_01").set_tooltip_text( Mens.usar_boton("el Empleado cuyo Aguinaldo es registrado")) self.obj("txt_01_1").set_tooltip_text("Nombre y Apellido del Empleado") self.obj("txt_01_2").set_tooltip_text( "Ingrese el Nro. de Documento del Empleado") self.obj("txt_02").set_tooltip_text( Mens.usar_boton("el Contrato del Empleado seleccionado")) self.obj("txt_02_1").set_tooltip_text( "Cargo del Empleado dentro de la Empresa") self.obj("txt_02_2").set_tooltip_text("Salario Mensual del Empleado") self.obj("txt_03").set_tooltip_text( Mens.usar_boton( "el Monto en base al cual será calculado el Aguinaldo")) self.obj("txt_04").set_tooltip_text("Monto a pagar como Aguinaldo") self.obj("txt_05").set_tooltip_text( "Ingrese cualquier información adicional con respecto al Aguinaldo del Empleado" ) self.obj("txt_02").grab_focus() self.txt_cod_per, self.txt_rzn_scl = self.obj("txt_01"), self.obj( "txt_01_1") self.txt_nro_doc, self.cmb_tip_doc = self.obj("txt_01_2"), self.obj( "cmb_tipo_doc") self.txt_cod_cnt, self.txt_crg_cnt, self.txt_sal_cnt = self.obj("txt_02"), \ self.obj("txt_02_1"), self.obj("txt_02_2") self.idPersona, self.borrar_contrato, self.idTipoDoc = None, not edit, -1 Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_doc"), "tipodocumentos", "idTipoDocumento") arch.connect_signals(self) self.obj("txt_00").set_text( Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid)) self.obj("cmb_tipo_doc").set_active(0) self.nav.obj("grilla").get_selection().unselect_all() self.nav.obj("barraestado").push(0, "") self.obj("ventana").show()
def __init__(self, edit, origen): self.editando = edit self.nav = origen arch = Op.archivo("abm_vehiculos") self.obj = arch.get_object self.obj("ventana").set_position(1) self.obj("ventana").set_modal(True) edit = "Creando" if not self.editando else "Editando" self.obj("ventana").set_title(edit + " Registro de Vehículos") Mens.boton_guardar_cancelar(self.obj("btn_guardar"), self.obj("btn_cancelar")) self.obj("txt_00").set_max_length(10) self.obj("txt_01").set_max_length(50) self.obj("txt_02").set_max_length(10) self.obj("txt_00").set_tooltip_text("Ingrese el Código del Vehículo") self.obj("txt_01").set_tooltip_text( "Ingrese el Número del Registro Único del Automotor (R.U.A.) del Vehículo" ) self.obj("txt_02").set_tooltip_text( "Ingrese el Número de Placa del Vehículo") self.obj("txt_01").grab_focus() self.idMarcaVeh = -1 Op.combos_config(self.nav.datos_conexion, self.obj("cmb_marca"), "marcavehiculos", "idMarcaVehiculo") arch.connect_signals(self) if self.editando: seleccion, iterador = self.nav.obj( "grilla").get_selection().get_selected() self.cond = str(seleccion.get_value(iterador, 0)) marca = seleccion.get_value(iterador, 1) rua = seleccion.get_value(iterador, 3) placa = seleccion.get_value(iterador, 4) self.obj("txt_00").set_text(self.cond) self.obj("txt_01").set_text(rua) self.obj("txt_02").set_text(placa) # Asignación de Moneda en Combo model, i = self.obj("cmb_marca").get_model(), 0 while model[i][0] != marca: i += 1 self.obj("cmb_marca").set_active(i) else: self.obj("txt_00").set_text( Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid)) self.obj("cmb_marca").set_active(0) self.nav.obj("grilla").get_selection().unselect_all() self.nav.obj("barraestado").push(0, "") self.obj("ventana").show()
def __init__(self, edit, origen): self.editando = edit self.nav = origen arch = Op.archivo("abm_monedas") self.obj = arch.get_object self.obj("ventana").set_position(1) self.obj("ventana").set_modal(True) edit = "Creando" if not self.editando else "Editando" self.obj("ventana").set_title(edit + " Registro de Monedas") Mens.boton_guardar_cancelar(self.obj("btn_guardar"), self.obj("btn_cancelar")) self.obj("txt_00").set_max_length(10) self.obj("txt_01").set_max_length(50) self.obj("txt_02").set_max_length(10) self.obj("txt_03").set_max_length(5) self.obj("txt_00").set_tooltip_text("Ingrese el Código de la Moneda") self.obj("txt_01").set_tooltip_text("Ingrese el Nombre de la Moneda") self.obj("txt_02").set_tooltip_text( Mens.usar_boton("el País de origen de la Moneda")) self.obj("txt_02_1").set_tooltip_text("Nombre del País") self.obj("txt_03").set_tooltip_text("Ingrese el Símbolo de la Moneda") self.obj("txt_01").grab_focus() self.txt_cod_pais, self.txt_des_pais = self.obj("txt_02"), self.obj( "txt_02_1") arch.connect_signals(self) if self.editando: seleccion, iterador = self.nav.obj( "grilla").get_selection().get_selected() self.cond = str(seleccion.get_value(iterador, 0)) nombre = seleccion.get_value(iterador, 1) codpais = str(seleccion.get_value(iterador, 2)) pais = seleccion.get_value(iterador, 3) simbolo = seleccion.get_value(iterador, 4) self.obj("txt_00").set_text(self.cond) self.obj("txt_01").set_text(nombre) self.obj("txt_02").set_text(codpais) self.obj("txt_02_1").set_text(pais) self.obj("txt_03").set_text(simbolo) else: self.obj("txt_00").set_text( Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid)) self.nav.obj("grilla").get_selection().unselect_all() self.nav.obj("barraestado").push(0, "") self.obj("ventana").show()
def __init__(self, edit, origen): self.editando = edit self.nav = origen arch = Op.archivo("abm_categorias") self.obj = arch.get_object self.obj("ventana").set_position(1) self.obj("ventana").set_modal(True) edit = "Creando" if not self.editando else "Editando" self.obj("ventana").set_title(edit + " Registro de Categorías") Mens.boton_guardar_cancelar(self.obj("btn_guardar"), self.obj("btn_cancelar")) self.obj("txt_00").set_max_length(10) self.obj("txt_01").set_max_length(50) self.obj("txt_02").set_max_length(10) self.obj("txt_00").set_tooltip_text("Ingrese el Código de la Categoría") self.obj("txt_01").set_tooltip_text("Ingrese la Descripción de la Categoría") self.obj("txt_02").set_tooltip_text(Mens.usar_boton("el Impuesto que grava la Categoría")) self.obj("txt_02_1").set_tooltip_text("Nombre del Impuesto que grava la Categoría") self.obj("txt_03").set_tooltip_text("Porcentaje que grava el Impuesto a la Categoría") self.obj("txt_01").grab_focus() self.txt_cod_imp, self.txt_des_imp, self.txt_por_imp = self.obj("txt_02"), \ self.obj("txt_02_1"), self.obj("txt_03") arch.connect_signals(self) if self.editando: seleccion, iterador = self.nav.obj("grilla").get_selection().get_selected() self.cond = str(seleccion.get_value(iterador, 0)) descrip = seleccion.get_value(iterador, 1) codimp = str(seleccion.get_value(iterador, 2)) imp = seleccion.get_value(iterador, 3) porc = str(seleccion.get_value(iterador, 4)) self.obj("txt_00").set_text(self.cond) self.obj("txt_01").set_text(descrip) self.obj("txt_02").set_text(codimp) self.obj("txt_02_1").set_text(imp) self.obj("txt_03").set_text(porc) else: self.obj("txt_00").set_text(Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid)) self.nav.obj("grilla").get_selection().unselect_all() self.nav.obj("barraestado").push(0, "") self.obj("ventana").show()
def on_btn_guardar_hora_clicked(self, objeto): cont = self.origen.obj("txt_00").get_text() page = self.obj("notebook").get_current_page() if page == 0: # Horas Iguales ent = self.obj("txt_hora_1_ig").get_text() sal = self.obj("txt_hora_2_ig").get_text() guardar, dia = True, self.idPrimerDia hora = int( Op.nuevoid( self.origen.conexion, "horarios_s " "WHERE NroContrato = " + self.origen.obj("txt_00").get_text(), "idHorario")) while guardar: Op.insertar( self.origen.conexion, "horarios", cont + ", " + str(hora) + ", " + str(self.idTurno) + ", " + str(dia) + ", '" + ent + "', '" + sal + "'") if dia == self.idUltimoDia: guardar = False break dia += 1 if dia > 7: # No puede ser mayor a 7 dia = 1 hora += 1 else: # Horas Diferenciadas hor = self.obj("txt_cod_dif").get_text() ent = self.obj("txt_hora_1_dif").get_text() sal = self.obj("txt_hora_2_dif").get_text() sql = cont + ", " + hor + ", " + str(self.idTurno) + ", " + \ str(self.idDia) + ", '" + ent + "', '" + sal + "'" if not self.editando: Op.insertar(self.origen.conexion, "horarios", sql) else: Op.modificar(self.origen.conexion, "horarios", self.hora + ", " + sql) self.cargar_grilla() self.on_btn_cancelar_hora_clicked(0) self.obj("btn_guardar").set_sensitive(True)
def funcion_horario(self): if self.editando: seleccion, iterador = self.obj( "grilla").get_selection().get_selected() self.hora = str(seleccion.get_value(iterador, 0)) idturno = seleccion.get_value(iterador, 1) iddia = seleccion.get_value(iterador, 3) entrada = seleccion.get_value(iterador, 5) salida = seleccion.get_value(iterador, 6) self.obj("txt_cod_dif").set_text(self.hora) self.obj("txt_hora_1_dif").set_text(entrada) self.obj("txt_hora_2_dif").set_text(salida) # Asignación de Día en Combo model, i = self.obj("cmb_dia").get_model(), 0 while model[i][0] != iddia: i += 1 self.obj("cmb_dia").set_active(i) # Asignación de Turno en Combo model, i = self.obj("cmb_turno_dif").get_model(), 0 while model[i][0] != idturno: i += 1 self.obj("cmb_turno_dif").set_active(i) self.obj("notebook").set_current_page(1) self.obj("notebook").set_show_tabs(False) else: self.obj("txt_cod_dif").set_text( Op.nuevoid( self.origen.conexion, "horarios_s WHERE NroContrato = " + self.origen.obj("txt_00").get_text(), "idHorario")) self.obj("cmb_primer_dia").set_active(0) self.obj("cmb_ultimo_dia").set_active(0) self.obj("cmb_turno_ig").set_active(0) self.obj("cmb_dia").set_active(0) self.obj("cmb_turno_dif").set_active(0) self.obj("grilla").get_selection().unselect_all() self.obj("barraestado").push(0, "") self.obj("btn_guardar_hora").set_sensitive(False) self.estadoedicion(True)
def funcion_nuevo(self): self.obj("nuevo").set_position(1) self.obj("nuevo").set_title("Creando Usuario") self.obj("nuevo").set_modal(True) self.obj("btn_guardar_new").set_tooltip_text("Presione este botón para Guardar el registro de Usuarios") self.obj("btn_cancelar_new").set_tooltip_text("Presione este botón para Cancelar la operación") self.obj("btn_persona_new").set_tooltip_text("Presione este botón para buscar un Funcionario") self.obj("btn_guardar_new").set_sensitive(False) self.idTipoDoc = None self.txt_cod_per, self.txt_rzn_scl = self.obj("txt_new_per"), self.obj("txt_new_nomb") self.txt_nro_doc, self.cmb_tip_doc = self.obj("txt_new_doc"), self.obj("cmb_new_doc") self.obj("txt_new_cod").set_max_length(10) self.obj("txt_new_per").set_max_length(10) self.obj("txt_new_doc").set_max_length(12) self.obj("txt_new_alias").set_max_length(16) self.obj("txt_new_pass").set_max_length(50) self.obj("txt_new_conf").set_max_length(50) self.obj("txt_new_cod").set_tooltip_text("Ingrese el Código del Usuario") self.obj("txt_new_per").set_tooltip_text("Ingrese el Código del Funcionario que corresponda") self.obj("txt_new_nomb").set_tooltip_text("Nombre y Apellido del Funcionario seleccionado") self.obj("txt_new_doc").set_tooltip_text("Ingrese el Nro. de Documento del Funcionario") self.obj("txt_new_alias").set_tooltip_text("Ingrese el Alias del Usuario") self.obj("txt_new_pass").set_tooltip_text("Ingrese la Contraseña del Usuario") self.obj("txt_new_conf").set_tooltip_text("Confirme la Contraseña del Usuario") self.obj("txt_new_cod").set_text(Op.nuevoid(self.datos_conexion, "usuarios_s", "idUsuario")) self.obj("txt_new_per").set_text("") self.obj("txt_new_nomb").set_text("") self.obj("txt_new_doc").set_text("") self.obj("cmb_new_doc").set_active(0) self.obj("txt_new_alias").set_text("") self.obj("txt_new_pass").set_text("") self.obj("txt_new_conf").set_text("") self.obj("txt_new_per").grab_focus() self.obj("grilla").get_selection().unselect_all() self.obj("barraestado").push(0, "") self.obj("nuevo").show()
def funcion_fechas(self): self.guardar_principal_vacaciones() self.pago_modificado = False if self.editando_fecha: seleccion, iterador = self.obj( "grilla").get_selection().get_selected() ini = seleccion.get_value(iterador, 1) fin = seleccion.get_value(iterador, 2) dias = str(seleccion.get_value(iterador, 3)) comp = seleccion.get_value(iterador, 4) self.fechaini = seleccion.get_value(iterador, 6) self.fechafin = seleccion.get_value(iterador, 7) self.obj("txt_f_01").set_text(ini) self.obj("txt_f_02").set_text(fin) self.obj("txt_f_03").set_text(dias) if len(comp) == 0: self.editando_pago = False else: self.editando_pago = True self.obj("txt_f_04").set_text(comp) else: self.idToma = Op.nuevoid( self.conexion, "vacacionestomadas_s" + " WHERE idVacacion = " + self.obj("txt_00").get_text() + " AND NroContrato = " + self.obj("txt_02").get_text(), "idToma") self.editando_pago = False self.estadoedicion(True) self.estadoguardar(False) self.obj("btn_guardar_fecha").set_sensitive(False) self.obj("grilla").get_selection().unselect_all() self.obj("barraestado").push(0, "")
def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") if objeto == self.obj("txt_01"): # Código de Empleado self.idPersona == None self.obj("txt_01_1").set_text("") self.obj("txt_01_2").set_text("") elif objeto == self.obj("txt_01_2") \ and len(self.obj("txt_01").get_text()) == 0: # Nro. Documento de Empleado self.obj("txt_01_1").set_text("") elif objeto == self.obj("txt_02"): # Número de Contrato self.obj("txt_02_1").set_text("") self.obj("txt_02_2").set_text("") else: if objeto == self.obj("txt_00"): if Op.comprobar_numero(int, objeto, "Código", self.obj("barraestado")) \ and len(self.obj("txt_02").get_text()) > 0: Op.comprobar_unique(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid, valor + " AND NroContrato = " + self.obj("txt_02").get_text(), objeto, self.obj("btn_guardar"), self.obj("barraestado"), "El Código introducido ya ha sido registado.") elif objeto == self.obj("txt_01"): if Op.comprobar_numero(int, objeto, "Cód. de Empleado", self.obj("barraestado")): self.buscar_empleados(objeto, "idPersona", valor, "Cód. de Empleado") elif objeto == self.obj("txt_01_2"): self.buscar_empleados(objeto, "NroDocumento", "'" + valor + "'" + " AND idTipoDocumento = '" + str(self.idTipoDoc) + "'", "Nro. de Documento") elif objeto == self.obj("txt_02"): if Op.comprobar_numero(int, objeto, "Nro. de Contrato", self.obj("barraestado")): conexion = Op.conectar(self.nav.datos_conexion) cursor = Op.consultar(conexion, "idEmpleado, Cargo, SalarioMensual, Vigente", "contratos_s", " WHERE NroContrato = " + valor) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: if datos[0][3] == 1: self.obj("txt_01").set_text(str(datos[0][0])) self.obj("txt_02_1").set_text(datos[0][1]) self.obj("txt_02_2").set_text(str(datos[0][2])) # Nuevo Código de Anticipo self.obj("txt_00").set_text(Op.nuevoid( self.nav.datos_conexion, self.nav.tabla + "_s " + "WHERE NroContrato = " + valor, self.nav.campoid)) self.obj("barraestado").push(0, "") self.borrar_contrato = False self.focus_out_event(self.obj("txt_01"), 0) self.focus_out_event(self.obj("txt_04"), 0) else: objeto.grab_focus() self.obj("btn_guardar").set_sensitive(False) self.obj("barraestado").push(0, "El Contrato seleccionado ya no se encuentra vigente.") else: objeto.grab_focus() self.obj("btn_guardar").set_sensitive(False) self.obj("barraestado").push(0, "El Nro. de Contrato no es válido.") elif objeto == self.obj("txt_04"): salario = self.obj("txt_02_2").get_text() if len(salario) > 0: porcentaje = Decimal(valor) * 100 / Decimal(salario) self.obj("txt_03").set_value(round(porcentaje, 2)) self.obj("txt_04").set_text(valor) if porcentaje > 50: objeto.grab_focus() self.obj("btn_guardar").set_sensitive(False) self.obj("barraestado").push(0, "El Monto del Anticipo no puede ser mayor al 50% del Salario Mensual.")
def __init__(self, edit, origen, empresa=False): self.editando = edit self.nav = origen self.desde_empresa = empresa arch = Op.archivo("abm_establecimientos") self.obj = arch.get_object self.obj("ventana").set_position(1) self.obj("ventana").set_modal(True) edit = "Creando" if not self.editando else "Editando" self.obj("ventana").set_title(edit + " Registro de Establecimiento") Mens.boton_guardar_cancelar(self.obj("btn_guardar"), self.obj("btn_cancelar")) self.obj("txt_00").set_max_length(10) self.obj("txt_01").set_max_length(50) self.obj("txt_02").set_max_length(10) self.obj("txt_04").set_max_length(50) self.obj("txt_00").set_tooltip_text( "Ingrese el Nro. de Establecimiento") self.obj("txt_01").set_tooltip_text( "Ingrese el Nombre del Establecimiento") self.obj("txt_02").set_tooltip_text( Mens.usar_boton("la Empresa a la que pertenece")) self.obj("txt_02_1").set_tooltip_text("Nombre de la Empresa") self.obj("txt_03").set_tooltip_text( "Dirección o Localización de la Empresa") self.obj("txt_04").set_tooltip_text( "Número de Teléfono del Establecimiento") self.obj("txt_01").grab_focus() self.txt_cod_emp, self.txt_rzn_scl = self.obj("txt_02"), self.obj( "txt_02_1") self.idDirec, self.txt_des_dir = -1, self.obj("txt_03") arch.connect_signals(self) if self.editando: seleccion, iterador = self.nav.obj( "grilla").get_selection().get_selected() self.cond = str(seleccion.get_value(iterador, 0)) nombre = seleccion.get_value(iterador, 1) razonsocial = seleccion.get_value(iterador, 3) ciudad = seleccion.get_value(iterador, 4) direccion = seleccion.get_value(iterador, 6) telefono = seleccion.get_value(iterador, 7) activo = True if seleccion.get_value(iterador, 8) == 1 else False direccion = "" if direccion is None else ", " + direccion telefono = "" if telefono is None else telefono empresa = str(seleccion.get_value(iterador, 9)) self.idDirec = seleccion.get_value(iterador, 10) self.obj("txt_00").set_text(self.cond) self.obj("txt_01").set_text(nombre) self.obj("txt_02").set_text(empresa) self.obj("txt_02_1").set_text(razonsocial) self.obj("txt_03").set_text(ciudad + direccion) self.obj("txt_04").set_text(telefono) self.obj("rad_activo").set_active(activo) else: self.obj("txt_00").set_text( Op.nuevoid(self.nav.datos_conexion, "establecimientos_s", "NroEstablecimiento")) self.obj("rad_activo").set_active(True) if self.desde_empresa: self.obj("txt_02").set_text(self.nav.obj("txt_00").get_text()) self.obj("hbox3").set_visible( False) # No permite cambiar de Empresa self.conexion = self.nav.conexion # Utiliza la conexión de Empresas cursor = self.conexion.cursor() cursor.execute("SAVEPOINT establecimiento") cursor.close() else: self.conexion = Op.conectar(self.nav.datos_conexion) self.nav.obj("grilla").get_selection().unselect_all() self.nav.obj("barraestado").push(0, "") self.obj("ventana").show()
def __init__(self, datos, tab): self.datos_conexion = datos self.tabla = tab arch = Op.archivo("venta_pedidos") self.obj = arch.get_object self.obj("ventana").set_position(1) self.obj("ventana").set_default_size(700, 600) self.obj("ventana").set_modal(True) self.obj("ventana").set_title("Notas de Pedido") Mens.boton_guardar_cancelar(self.obj("btn_guardar"), self.obj("btn_cancelar")) self.obj("txt_01").set_tooltip_text( "Ingrese el Número de Documento de Identidad del Cliente") self.obj("txt_01_1").set_tooltip_text( "Nombre y Apellido o Razón Social del Cliente") self.obj("btn_cliente").set_tooltip_text( "Presione este botón para buscar datos de un Cliente") self.obj("btn_nuevo_item").set_tooltip_text( "Presione este botón para agregar un nuevo Item") self.obj("btn_modificar_item").set_tooltip_text( "Presione este botón para modificar datos de un Item") self.obj("btn_eliminar_item").set_tooltip_text( "Presione este botón para eliminar un Item") self.idTipoCliente, self.idTipoDoc = "1", -1 Op.combos_config(self.datos_conexion, self.obj("cmb_tipo_doc"), "tipodocumentos", "idTipoDocumento") self.txt_cod_per, self.txt_rzn_scl = self.obj("txt_01"), self.obj( "txt_01_1") self.txt_nro_doc, self.cmb_tip_doc = self.obj("txt_01_2"), self.obj( "cmb_tipo_doc") self.txt_dir_per, self.txt_tel_per = self.obj("txt_01_3"), self.obj( "txt_01_4") self.txt_cod_vnd, self.txt_nom_vnd = self.obj("txt_02"), self.obj( "txt_02_1") self.txt_cod_it, self.txt_bar_it, self.txt_nom_it = self.obj("txt_it_01"), \ self.obj("txt_it_01_1"), self.obj("txt_it_01_2") self.txt_des_pres, self.txt_des_cat = self.obj( "txt_it_01_3"), self.obj("txt_it_01_4") arch.connect_signals(self) self.obj("txt_00").set_text( Op.nuevoid(self.datos_conexion, self.tabla + "_s", "NroPedidoVenta")) self.obj("txt_fecha").set_text(Cal.mysql_fecha(date.today())) self.obj("cmb_tipo_doc").set_active(0) self.obj("txt_01").grab_focus() self.estadoitems(False) self.estadoguardar(False) self.editando = False self.conexion = Op.conectar(self.datos_conexion) self.config_grilla_detalles() self.obj("ventana").show()
def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") if objeto == self.obj("txt_01"): # Código de Empleado self.idPersona == None self.obj("txt_01_1").set_text("") self.obj("txt_01_2").set_text("") elif objeto == self.obj("txt_01_2") \ and len(self.obj("txt_01").get_text()) == 0: # Nro. Documento de Empleado self.obj("txt_01_1").set_text("") elif objeto == self.obj("txt_02"): # Número de Contrato self.obj("txt_02_1").set_text("") self.obj("txt_02_2").set_text("") else: if objeto == self.obj("txt_00"): contrato = self.obj("txt_02").get_text() if len(contrato) > 0 and Op.comprobar_numero( int, objeto, "Código", self.obj("barraestado")): # Al editar, comprueba que los valores son diferentes del original busq = "" if not self.editando else " AND " + \ "(" + self.nav.campoid + " <> " + self.cond_id + \ " OR NroContrato <> " + self.cond_cont + ")" Op.comprobar_unique( self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid, valor + " AND NroContrato = " + contrato + busq, objeto, self.obj("btn_guardar"), self.obj("barraestado"), "El Código introducido ya ha sido registado para este Contrato." ) elif objeto == self.obj("txt_01"): if Op.comprobar_numero(int, objeto, "Cód. de Empleado", self.obj("barraestado")): self.buscar_empleados(objeto, "idPersona", valor, "Cód. de Empleado") elif objeto == self.obj("txt_01_2"): self.buscar_empleados( objeto, "NroDocumento", "'" + valor + "'" + " AND idTipoDocumento = '" + str(self.idTipoDoc) + "'", "Nro. de Documento") elif objeto == self.obj("txt_02"): if Op.comprobar_numero(int, objeto, "Nro. de Contrato", self.obj("barraestado")): conexion = Op.conectar(self.nav.datos_conexion) cursor = Op.consultar( conexion, "idEmpleado, Cargo, SalarioMensual, Vigente", "contratos_s", " WHERE NroContrato = " + valor) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: if datos[0][3] == 1: self.obj("txt_01").set_text(str(datos[0][0])) self.obj("txt_02_1").set_text(datos[0][1]) self.obj("txt_02_2").set_text(str(datos[0][2])) # Nuevo Código de Horas Extraordinarias self.obj("txt_00").set_text( Op.nuevoid( self.nav.datos_conexion, self.nav.tabla + "_s " + "WHERE NroContrato = " + valor, self.nav.campoid)) self.obj("barraestado").push(0, "") self.borrar_contrato = False self.focus_out_event(self.obj("txt_01"), 0) self.focus_out_event(self.obj("txt_04"), 0) else: objeto.grab_focus() self.obj("btn_guardar").set_sensitive(False) self.obj("barraestado").push( 0, "El Contrato seleccionado ya no se encuentra vigente." ) else: objeto.grab_focus() self.obj("btn_guardar").set_sensitive(False) self.obj("barraestado").push( 0, "El Nro. de Contrato no es válido.") elif objeto == self.obj("txt_03"): if Op.compara_fechas(self.nav.datos_conexion, "'" + self.fecha + "'", ">=", "NOW()"): self.obj("btn_guardar").set_sensitive(False) objeto.grab_focus() self.obj("barraestado").push( 0, "La Fecha NO puede estar en el Futuro.") else: self.obj("barraestado").push(0, "") elif objeto in (self.obj("txt_04"), self.obj("txt_05")): if len(self.obj("txt_04").get_text()) > 0 \ and len(self.obj("txt_05").get_text()) > 0: conexion = Op.conectar(self.nav.datos_conexion) cursor = conexion.cursor() cursor.execute("SELECT diferencia_horas(" + "'" + self.obj("txt_04").get_text() + "', " + "'" + self.obj("txt_05").get_text() + "')") horas = cursor.fetchall()[0][0] conexion.close() # Finaliza la conexión self.obj("txt_06").set_text(str(horas))
def __init__(self, edit, origen): self.editando = edit self.nav = origen arch = Op.archivo("compra_ordenes") self.obj = arch.get_object self.obj("ventana").set_position(1) self.obj("ventana").set_default_size(650, 600) self.obj("ventana").set_modal(True) edit = "Creando" if not self.editando else "Editando" self.obj("ventana").set_title(edit + " Registro de " + self.nav.titulo) Mens.boton_guardar_cancelar(self.obj("btn_guardar"), self.obj("btn_cancelar")) self.estadoedicion(True) self.estadoguardar(False) self.estadoitem(False) self.config_grilla_items() self.obj("txt_00").set_max_length(10) self.obj("txt_01").set_max_length(10) self.obj("txt_01_2").set_max_length(12) self.obj("txt_02").set_max_length(10) self.obj("txt_00").set_tooltip_text("Ingrese el Número de " + self.nav.titulo) self.obj("txt_01").set_tooltip_text( Mens.usar_boton("al Proveedor de los ítems")) self.obj("txt_01_1").set_tooltip_text("Razón Social del Proveedor") self.obj("txt_01_2").set_tooltip_text( "Nro. de Documento de Identidad del Proveedor") self.obj("txt_01_3").set_tooltip_text( "Dirección principal del Proveedor") self.obj("txt_01_4").set_tooltip_text( "Teléfono principal del Proveedor") self.obj("txt_02").set_tooltip_text( Mens.usar_boton("un Pedido de Compra para cargar la Orden")) self.obj("txt_00").grab_focus() self.obj("txt_it_01").set_max_length(10) self.obj("txt_it_01_1").set_max_length(40) self.obj("txt_it_02").set_max_length(14) self.obj("txt_it_03").set_max_length(14) self.obj("txt_it_05").set_max_length(100) self.obj("txt_it_01").set_tooltip_text("Ingrese el Código del Ítem") self.obj("txt_it_01_1").set_tooltip_text( "Ingrese el Código de Barras del Ítem") self.obj("txt_it_01_2").set_tooltip_text("Descripción del Ítem") self.obj("txt_it_01_3").set_tooltip_text("Presentación del Ítem") self.obj("txt_it_01_4").set_tooltip_text("Categoría del Ítem") self.obj("txt_it_02").set_tooltip_text("Ingrese la Cantidad de Ítems") self.obj("txt_it_03").set_tooltip_text( "Ingrese el Precio Acordado del Ítem") self.obj("txt_it_04").set_tooltip_text( "Ingrese el Porcentaje de Descuento Acordado") self.obj("txt_it_05").set_tooltip_text( "Ingrese una Observación sobre el Ítems") self.idFormaPago = self.idTipoDoc = -1 self.txt_cod_per, self.txt_rzn_scl = self.obj("txt_01"), self.obj( "txt_01_1") self.txt_nro_doc, self.cmb_tip_doc = self.obj("txt_01_2"), self.obj( "cmb_tipo_doc") self.txt_dir_per, self.txt_tel_per = self.obj("txt_01_3"), self.obj( "txt_01_4") self.txt_nro_ped = self.obj("txt_02") self.txt_cod_it = self.obj("txt_it_01") self.txt_bar_it, self.txt_nom_it = self.obj("txt_it_01_1"), self.obj( "txt_it_01_2") self.txt_des_pres, self.txt_des_cat = self.obj( "txt_it_01_3"), self.obj("txt_it_01_4") Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_doc"), "tipodocumentos", "idTipoDocumento") Op.combos_config(self.nav.datos_conexion, self.obj("cmb_pago"), "formapagos", "idFormaPago") arch.connect_signals(self) if self.editando: seleccion, iterador = self.nav.obj( "grilla").get_selection().get_selected() self.cond = str(seleccion.get_value(iterador, 0)) fecha = seleccion.get_value(iterador, 1)[0:-9] # Quita la Hora ruc = seleccion.get_value(iterador, 2) nombre = seleccion.get_value(iterador, 3) direc = seleccion.get_value(iterador, 4) telef = seleccion.get_value(iterador, 5) pago = seleccion.get_value(iterador, 7) resp = seleccion.get_value(iterador, 11) aprob = seleccion.get_value(iterador, 12) idper = str(seleccion.get_value(iterador, 14)) tipodoc = str(seleccion.get_value(iterador, 15)) pedido = str(seleccion.get_value(iterador, 16)) direc = "" if direc is None else direc telef = "" if telef is None else telef self.obj("txt_00").set_text(self.cond) self.obj("txt_fecha").set_text(fecha) self.obj("txt_01").set_text(idper) self.obj("txt_01_1").set_text(nombre) self.obj("txt_01_2").set_text(ruc) self.obj("txt_01_2").set_text(direc) self.obj("txt_01_3").set_text(telef) self.obj("txt_02").set_text(pedido) # Asignación de Tipo de Documento en Combo model, i = self.obj("cmb_tipo_doc").get_model(), 0 while model[i][0] != tipodoc: i += 1 self.obj("cmb_tipo_doc").set_active(i) # Asignación de Forma de Pago en Combo model, i = self.obj("cmb_pago").get_model(), 0 while model[i][0] != pago: i += 1 self.obj("cmb_pago").set_active(i) if aprob != 1: self.obj("btn_aprobar").set_sensitive(True) self.obj("btn_rechazar").set_sensitive(True) else: self.obj("hbox1").set_sensitive(False) self.obj("vbox1").set_sensitive(False) self.obj("vbox3").set_sensitive(False) self.obj("hbox16").set_sensitive(False) self.obj("grilla").set_sensitive(False) self.obj("hbox18").set_sensitive(False) Mens.no_puede_modificar_eliminar_anular( 1, "Seleccionó:\n\nNro. de Orden: " + self.cond + "\nFecha: " + fecha + "\nResponsable: " + resp + "\n\nEsta Orden de Compra ya ha sido Aprobada." + "\nSolo puede modificar Órdenes pendientes de aprobación.") self.encabezado_guardado = True self.editando_pedido = True if len(pedido) > 0 else False else: self.obj("txt_00").set_text( Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid)) self.obj("txt_fecha").set_text(Cal.mysql_fecha(date.today())) self.obj("cmb_tipo_doc").set_active(0) self.obj("cmb_pago").set_active(0) self.encabezado_guardado = self.editando_pedido = False self.pedido_guardado = True self.conexion = Op.conectar(self.nav.datos_conexion) self.cargar_grilla_items() self.nav.obj("grilla").get_selection().unselect_all() self.nav.obj("barraestado").push(0, "") self.obj("ventana").show()
def __init__(self, edit, origen): self.editando = edit self.nav = origen arch = Op.archivo("abm_cheques") self.obj = arch.get_object self.obj("ventana").set_position(1) self.obj("ventana").set_modal(True) edit = "Creando" if not self.editando else "Editando" self.obj("ventana").set_title(edit + " Registro de Cheques de Terceros") Mens.boton_guardar_cancelar(self.obj("btn_guardar"), self.obj("btn_cancelar")) self.obj("txt_00").set_max_length(10) self.obj("txt_01").set_max_length(10) self.obj("txt_02").set_max_length(20) self.obj("txt_03").set_max_length(10) self.obj("txt_03_2").set_max_length(12) self.obj("txt_04").set_max_length(10) self.obj("txt_04_2").set_max_length(12) self.obj("txt_07").set_max_length(12) self.obj("txt_00").set_tooltip_text("Ingrese el Código del Cheque") self.obj("txt_01").set_tooltip_text("Ingrese el Nro. de Cheque") self.obj("txt_02").set_tooltip_text("Ingrese el Nro. de Cuenta") self.obj("txt_03").set_tooltip_text(Mens.usar_boton("el Banco del Cheque")) self.obj("txt_03_1").set_tooltip_text("Razón Social del Banco") self.obj("txt_03_2").set_tooltip_text("Ingrese el Nro. de Documento del Banco") self.obj("txt_03_3").set_tooltip_text("Dirección del Banco") self.obj("txt_03_4").set_tooltip_text("Teléfono del Banco") self.obj("txt_04").set_tooltip_text(Mens.usar_boton("el Titular del Cheque")) self.obj("txt_04_1").set_tooltip_text("Razón Social del Titular") self.obj("txt_04_2").set_tooltip_text("Ingrese el Nro. de Documento del Titular") self.obj("txt_05").set_tooltip_text(Mens.usar_boton("la Fecha de Emisión del Cheque")) self.obj("txt_06").set_tooltip_text(Mens.usar_boton("la Fecha de Cobro del Cheque")) self.obj("txt_07").set_tooltip_text("Ingrese el Monto del Cheque") self.obj("txt_01").grab_focus() mostrar_ventana = True self.idTipoDocBanco = self.idTipoDocTitular = self.idTipoCheque = -1 Op.combos_config(self.nav.datos_conexion, self.obj("cmb_doc_banco"), "tipodocumentos", "idTipoDocumento") Op.combos_config(self.nav.datos_conexion, self.obj("cmb_doc_titular"), "tipodocumentos", "idTipoDocumento") Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo"), "tipocheques", "idTipoCheque") arch.connect_signals(self) if self.editando: seleccion, iterador = self.nav.obj("grilla").get_selection().get_selected() self.cond = str(seleccion.get_value(iterador, 0)) cheque = str(seleccion.get_value(iterador, 1)) cuenta = seleccion.get_value(iterador, 2) banco = str(seleccion.get_value(iterador, 3)) tip_banco = seleccion.get_value(iterador, 4) doc_banco = seleccion.get_value(iterador, 5) nom_banco = seleccion.get_value(iterador, 6) dir_banco = seleccion.get_value(iterador, 7) tel_banco = seleccion.get_value(iterador, 8) titular = str(seleccion.get_value(iterador, 9)) tip_tit = seleccion.get_value(iterador, 10) doc_tit = seleccion.get_value(iterador, 11) nom_tit = seleccion.get_value(iterador, 12) tipo = seleccion.get_value(iterador, 13) emision = seleccion.get_value(iterador, 15) cobro = seleccion.get_value(iterador, 16) monto = str(seleccion.get_value(iterador, 17)) anulado = seleccion.get_value(iterador, 18) if anulado != 1: self.fecha_emision = seleccion.get_value(iterador, 19) self.fecha_cobro = seleccion.get_value(iterador, 20) dir_banco = "" if dir_banco is None else dir_banco tel_banco = "" if tel_banco is None else tel_banco # Asignación del Tipo de Documento (Banco) en Combo model, i = self.obj("cmb_doc_banco").get_model(), 0 while model[i][0] != tip_banco: i += 1 self.obj("cmb_doc_banco").set_active(i) # Asignación del Tipo de Documento (Titular) en Combo model, i = self.obj("cmb_doc_titular").get_model(), 0 while model[i][0] != tip_tit: i += 1 self.obj("cmb_doc_titular").set_active(i) # Asignación del Tipo de Cheque en Combo model, i = self.obj("cmb_tipo").get_model(), 0 while model[i][0] != tipo: i += 1 self.obj("cmb_tipo").set_active(i) self.obj("txt_00").set_text(self.cond) self.obj("txt_01").set_text(cheque) self.obj("txt_02").set_text(cuenta) self.obj("txt_03").set_text(banco) self.obj("txt_03_1").set_text(nom_banco) self.obj("txt_03_2").set_text(doc_banco) self.obj("txt_03_3").set_text(dir_banco) self.obj("txt_03_4").set_text(tel_banco) self.obj("txt_04").set_text(titular) self.obj("txt_04_1").set_text(nom_tit) self.obj("txt_04_2").set_text(doc_tit) self.obj("txt_05").set_text(emision) self.obj("txt_06").set_text(cobro) self.obj("txt_07").set_text(monto) else: Mens.no_puede_modificar_eliminar_anular(1, "Seleccionó:\n" + "\nNro. Cheque: " + cheque + "\nNro. Cuenta: " + cuenta + "\nBanco: " + nom_banco + "\nTitular: " + nom_tit + "\nFecha de Emisión: " + emision + "\nFecha de Cobro: " + cobro + "\n\nEste Cheque se encuentra actualmente ANULADO.") self.obj("ventana").destroy() mostrar_ventana = False else: self.obj("txt_00").set_text(Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid)) self.obj("cmb_doc_banco").set_active(0) self.obj("cmb_doc_titular").set_active(0) self.obj("cmb_tipo").set_active(0) self.nav.obj("grilla").get_selection().unselect_all() self.nav.obj("barraestado").push(0, "") if mostrar_ventana: self.obj("ventana").show()
def __init__(self, edit, origen): self.editando = edit self.nav = origen arch = Op.archivo("rrhh_comprobantes") self.obj = arch.get_object self.obj("ventana").set_position(1) self.obj("ventana").set_default_size(800, 600) self.obj("ventana").set_modal(True) edit = "Creando" if not self.editando else "Editando" self.obj("ventana").set_title(edit + " Registro de Comprobante de Pago") Mens.boton_guardar_cancelar(self.obj("btn_guardar"), self.obj("btn_cancelar")) self.obj("txt_00").set_max_length(10) self.obj("txt_01").set_max_length(10) self.obj("txt_01_2").set_max_length(12) self.obj("txt_02").set_max_length(10) self.obj("txt_05").set_max_length(100) self.obj("txt_c_01").set_max_length(10) self.obj("txt_c_02").set_max_length(10) self.obj("txt_c_03").set_max_length(12) self.obj("txt_00").set_tooltip_text( "Ingrese el Número de Comprobante de Pago") self.obj("txt_01").set_tooltip_text( Mens.usar_boton("el Empleado cuyo Pago es registrado")) self.obj("txt_01_1").set_tooltip_text("Nombre y Apellido del Empleado") self.obj("txt_01_2").set_tooltip_text( "Ingrese el Nro. de Documento del Empleado") self.obj("txt_02").set_tooltip_text( Mens.usar_boton("el Contrato del Empleado seleccionado")) self.obj("txt_02_1").set_tooltip_text( "Cargo del Empleado dentro de la Empresa") self.obj("txt_03").set_tooltip_text( Mens.usar_boton("la Fecha de Inicio del Periodo de Pago")) self.obj("txt_04").set_tooltip_text( Mens.usar_boton("la Fecha de Finalización del Periodo de Pago")) self.obj("txt_05").set_tooltip_text( "Ingrese cualquier información adicional con respecto al Pago") self.obj("txt_02").grab_focus() self.obj("txt_c_01").set_tooltip_text( "Ingrese el Código del Detalle del Pago") self.obj("txt_c_02").set_tooltip_text( Mens.usar_boton("el Concepto de Pago")) self.obj("txt_c_03").set_tooltip_text( "Ingrese la Cantidad que es Pagada\n(días trabajados, horas extraordinarias, cantidad de hijos...)" ) self.obj("txt_c_04").set_tooltip_text("Ingrese el Monto a Pagar") self.txt_cod_per, self.txt_rzn_scl = self.obj("txt_01"), self.obj( "txt_01_1") self.txt_nro_doc, self.cmb_tip_doc = self.obj("txt_01_2"), self.obj( "cmb_tipo_doc") self.txt_cod_cnt, self.txt_crg_cnt = self.obj("txt_02"), self.obj( "txt_02_1") self.txt_cod_con, self.txt_des_con = self.obj("txt_c_02"), self.obj( "txt_c_02_1") self.idPersona, self.borrar_contrato, self.idTipoDoc = None, not edit, -1 Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_doc"), "tipodocumentos", "idTipoDocumento") self.salariominimo = Op.obtener_salario_minimo(self.nav.datos_conexion) arch.connect_signals(self) self.config_grilla_conceptos() self.conexion = Op.conectar(self.nav.datos_conexion) if self.editando: seleccion, iterador = self.nav.obj( "grilla").get_selection().get_selected() self.cond = str(seleccion.get_value(iterador, 0)) idcont = str(seleccion.get_value(iterador, 1)) fini = seleccion.get_value(iterador, 9) ffin = seleccion.get_value(iterador, 10) fecha = seleccion.get_value(iterador, 13)[:-9] obs = seleccion.get_value(iterador, 14) obs = "" if obs is None else obs self.fechaini = seleccion.get_value(iterador, 21) self.fechafin = seleccion.get_value(iterador, 22) self.obj("txt_00").set_text(self.cond) self.obj("txt_02").set_text(idcont) self.obj("txt_03").set_text(fini) self.obj("txt_04").set_text(ffin) self.obj("txt_05").set_text(obs) self.focus_out_event(self.obj("txt_02"), 0) self.obj("lbl_fecha").set_text(fecha) self.cargar_grilla_conceptos() self.estadoguardar(True) else: self.obj("txt_00").set_text( Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid)) self.obj("cmb_tipo_doc").set_active(0) self.obj("lbl_fecha").set_text(Cal.mysql_fecha(date.today())) self.cargar_grilla_conceptos() self.estadoguardar(False) self.principal_guardado = True self.estadoedicion(False) self.nav.obj("grilla").get_selection().unselect_all() self.nav.obj("barraestado").push(0, "") self.obj("ventana").show()
def __init__(self, edit, origen): self.editando = edit self.nav = origen # Necesario para Establecimientos self.datos_conexion = self.nav.datos_conexion arch = Op.archivo("rrhh_empresas") self.obj = arch.get_object self.obj("ventana").set_position(1) self.obj("ventana").set_modal(True) edit = "Creando" if not self.editando else "Editando" self.obj("ventana").set_title(edit + " Registro de " + self.nav.titulo) Mens.boton_guardar_cancelar(self.obj("btn_guardar"), self.obj("btn_cancelar")) self.obj("txt_00").set_max_length(10) self.obj("txt_01").set_max_length(10) self.obj("txt_02").set_max_length(10) self.obj("txt_03").set_max_length(12) self.obj("txt_04").set_max_length(10) self.obj("txt_05").set_max_length(50) self.obj("txt_06").set_max_length(50) self.obj("txt_m_01").set_max_length(100) self.obj("txt_m_02").set_max_length(100) self.obj("txt_a_00").set_max_length(10) self.obj("txt_a_01").set_max_length(100) self.obj("txt_00").set_tooltip_text("Ingrese el Código de la Empresa") self.obj("txt_01").set_tooltip_text(Mens.usar_boton("al Propietario de la Empresa")) self.obj("txt_01_1").set_tooltip_text("Nombre y Apellido del Propietario") self.obj("txt_01_2").set_tooltip_text("Dirección Principal del Propietario") self.obj("txt_01_3").set_tooltip_text("Teléfono Principal del Propietario") self.obj("txt_02").set_tooltip_text("Ingrese el R.U.C. de la Empresa") self.obj("txt_02_1").set_tooltip_text("Ingrese el Dígito Verificador") self.obj("txt_03").set_tooltip_text("Ingrese el Nro. Patronal del Instituto de Previsión Social (IPS)") self.obj("txt_04").set_tooltip_text("Ingrese el Nro. Patronal del Ministerio de Justicia y Trabajo (MJT)") self.obj("txt_05").set_tooltip_text("Ingrese la Razón Social de la Empresa") self.obj("txt_06").set_tooltip_text("Ingrese el Nombre de Fantasía de la Empresa") self.obj("txt_01").grab_focus() Op.combos_config(self.nav.datos_conexion, self.obj("cmb_medio"), "tipomediocontactos", "idTipoMedioContacto") self.txt_cod_per, self.txt_rzn_scl = self.obj("txt_01"), self.obj("txt_01_1") self.txt_dir_per, self.txt_tel_per = self.obj("txt_01_2"), self.obj("txt_01_3") self.txt_cod_act, self.txt_des_act = self.obj("txt_a_00"), self.obj("txt_a_00_1") arch.connect_signals(self) if self.editando: seleccion, iterador = self.nav.obj("grilla").get_selection().get_selected() self.cond = str(seleccion.get_value(iterador, 0)) codprop = str(seleccion.get_value(iterador, 4)) prop = seleccion.get_value(iterador, 6) direccion = seleccion.get_value(iterador, 7) telefono = seleccion.get_value(iterador, 8) ruc = seleccion.get_value(iterador, 1)[:-2] # Quita el dígito verificador verif = seleccion.get_value(iterador, 11) ips = seleccion.get_value(iterador, 9) mjt = str(seleccion.get_value(iterador, 10)) social = seleccion.get_value(iterador, 2) fantasia = seleccion.get_value(iterador, 3) direccion = "" if direccion is None else direccion telefono = "" if telefono is None else telefono self.obj("txt_00").set_text(self.cond) self.obj("txt_01").set_text(codprop) self.obj("txt_01_1").set_text(prop) self.obj("txt_01_2").set_text(direccion) self.obj("txt_01_3").set_text(telefono) self.obj("txt_02").set_text(ruc) self.obj("txt_02_1").set_value(verif) self.obj("txt_03").set_text(ips) self.obj("txt_04").set_text(mjt) self.obj("txt_05").set_text(social) self.obj("txt_06").set_text(fantasia) else: self.obj("txt_00").set_text(Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid)) self.conexion = Op.conectar(self.nav.datos_conexion) self.principal_guardado = True self.estadoedicion_medio_contacto(False) self.estadoedicion_actividad(False) self.config_grilla_establecimiento() self.cargar_grilla_establecimiento() self.config_grilla_medio() self.cargar_grilla_medio() self.config_grilla_actividad() self.cargar_grilla_actividad() self.nav.obj("grilla").get_selection().unselect_all() self.nav.obj("barraestado").push(0, "") self.obj("ventana").show()
def on_btn_guardar_lote_clicked(self, objeto): lote = self.obj("txt_01").get_text() cant = self.obj("txt_03").get_text() if self.disponible >= float(cant): if self.tabla == "facturacompras": # Registro de Lotes sql = "'" + lote + "', " + self.idItem + ", '" + self.fecha_venc + "'" if not self.editando_lote: Op.insertar(self.conexion, "lotes", sql) else: Op.modificar(self.conexion, "lotes", "'" + self.cond_lote + "', " + sql) # Buscar datos del registro con NroLote = NULL cursor = Op.consultar( self.conexion, "idMovimiento, CantidadInv", self.tabla + "_inventario_s", " WHERE " + self.cond_buscar + " AND idItem = " + self.idItem + " AND NroLote IS NULL") datos = cursor.fetchall() filas = cursor.rowcount if not self.editando: idmov = str(datos[0][0]) cant_null = datos[0][1] # Sumar o Restar en Inventario a registro con NroLote = NULL if self.tabla in ("facturacompras", "notadebitocompras", "notacreditoventas"): cant_null -= float(cant) # Resta Cantidad elif self.tabla in ("notacreditocompras", "facturaventas", "notadebitoventas"): cant_null += float(cant) # Suma Cantidad if self.disponible == float(cant): # Agrega lote al registro con NroLote = NULL Op.modificar( self.conexion, "inventario", self.idItem + ", " + self.idItem + ", " + idmov + ", " + self.dep + ", " + lote + ", " + cant + ", " + self.obs) else: # Restar o Sumar cantidad al registro con NroLote = NULL Op.modificar( self.conexion, "inventario", self.idItem + ", " + self.idItem + ", " + idmov + ", " + self.dep + ", NULL, " + str(cant_null) + ", " + self.obs) # Insertar registro con nueva cantidad mov = Op.nuevoid( self.conexion, "inventario" + " WHERE idItem = " + self.idItem, "idMovimiento") Op.insertar( self.conexion, "inventario", self.idItem + ", " + mov + ", " + self.dep + ", " + lote + ", " + cant + ", " + self.obs) Op.insertar( self.conexion, self.tabla + "_inventario", self.cond_guardar + ", " + self.idItem + ", " + mov) else: # Agrega la nueva cantidad al registro que está editando Op.modificar( self.conexion, "inventario", self.idItem + ", " + self.idItem + ", " + self.idmov + ", " + self.dep + ", " + lote + ", " + cant + ", " + self.obs) if self.disponible == float(cant): if filas > 0: # Ya no quedan disponibles, entonces borrar registro con NroLote = NULL Op.eliminar( self.conexion, self.tabla + "_inventario", self.cond_guardar + ", " + self.idItem + ", " + str(datos[0][0])) Op.eliminar(self.conexion, "inventario", self.idItem + ", " + str(datos[0][0])) else: pass # No hay registro con NroLote = NULL else: if filas > 0: # Modificar registro con NroLote = NULL idmov = str(datos[0][0]) cant_null = datos[0][1] cant = self.disponible - cant_null - float(cant) Op.modificar( self.conexion, "inventario", self.idItem + ", " + self.idItem + ", " + idmov + ", " + self.dep + ", " + lote + ", " + str(cant) + ", " + self.obs) else: # Insertar registro con NroLote = NULL mov = Op.nuevoid( self.conexion, "inventario" + " WHERE idItem = " + self.idItem, "idMovimiento") cant = self.disponible - float(cant) Op.insertar( self.conexion, "inventario", self.idItem + ", " + mov + ", " + self.dep + ", NULL, " + str(cant) + ", " + self.obs) Op.insertar( self.conexion, self.tabla + "_inventario", self.cond_guardar + ", " + self.idItem + ", " + mov) self.cargar_grilla_lotes() self.estadoedicion(False) else: self.obj("barraestado").push( 0, "La Cantidad de Ítems " + "NO puede ser superior a " + str(self.disponible) + ".")
def __init__(self, edit, origen): self.editando = edit self.nav = origen arch = Op.archivo("abm_cotizaciones") self.obj = arch.get_object self.obj("ventana").set_position(1) self.obj("ventana").set_modal(True) edit = "Creando" if not self.editando else "Editando" self.obj("ventana").set_title(edit + " Registro de Cotizaciones") Mens.boton_guardar_cancelar(self.obj("btn_guardar"), self.obj("btn_cancelar")) self.obj("txt_00").set_max_length(10) self.obj("txt_02").set_max_length(12) self.obj("txt_03").set_max_length(12) self.obj("txt_00").set_tooltip_text( "Ingrese el Código de la Cotización") self.obj("txt_01").set_tooltip_text( Mens.usar_boton("la Fecha de la Cotización")) self.obj("txt_02").set_tooltip_text( "Ingrese el Monto de Compra de la Cotización") self.obj("txt_03").set_tooltip_text( "Ingrese el Monto de Venta de la Cotización") self.obj("txt_01").grab_focus() self.idMoneda = -1 Op.combos_config(self.nav.datos_conexion, self.obj("cmb_moneda"), "monedas_s", "idMoneda") arch.connect_signals(self) if self.editando: seleccion, iterador = self.nav.obj( "grilla").get_selection().get_selected() self.cond_id = str(seleccion.get_value(iterador, 0)) self.cond_moneda = seleccion.get_value(iterador, 1) fecha = seleccion.get_value(iterador, 3) compra = str(seleccion.get_value(iterador, 4)) venta = str(seleccion.get_value(iterador, 5)) self.fecha = seleccion.get_value(iterador, 6) # Asignación de Monedas en Combo model, i = self.obj("cmb_moneda").get_model(), 0 while model[i][0] != self.cond_moneda: i += 1 self.obj("cmb_moneda").set_active(i) self.obj("txt_00").set_text(self.cond_id) self.obj("txt_01").set_text(fecha) self.obj("txt_02").set_text(compra) self.obj("txt_03").set_text(venta) else: self.obj("txt_00").set_text( Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid)) self.obj("cmb_moneda").set_active(0) self.nav.obj("grilla").get_selection().unselect_all() self.nav.obj("barraestado").push(0, "") self.obj("ventana").show()
def __init__(self, edit, origen): self.editando = edit self.nav = origen arch = Op.archivo("rrhh_reposos") self.obj = arch.get_object self.obj("ventana").set_position(1) self.obj("ventana").set_modal(True) edit = "Creando" if not self.editando else "Editando" self.obj("ventana").set_title(edit + " Registro de " + self.nav.titulo) Mens.boton_guardar_cancelar(self.obj("btn_guardar"), self.obj("btn_cancelar")) self.obj("txt_00").set_max_length(10) self.obj("txt_01").set_max_length(10) self.obj("txt_01_2").set_max_length(12) self.obj("txt_02").set_max_length(10) self.obj("txt_03").set_max_length(20) self.obj("txt_08").set_max_length(100) self.obj("txt_00").set_tooltip_text("Ingrese el Código del Reposo") self.obj("txt_01").set_tooltip_text(Mens.usar_boton("el Empleado cuyo Reposo es registrado")) self.obj("txt_01_1").set_tooltip_text("Nombre y Apellido del Empleado") self.obj("txt_01_2").set_tooltip_text("Ingrese el Nro. de Documento del Empleado") self.obj("txt_02").set_tooltip_text(Mens.usar_boton("el Contrato del Empleado seleccionado")) self.obj("txt_02_1").set_tooltip_text("Cargo del Empleado dentro de la Empresa") self.obj("txt_03").set_tooltip_text("Ingrese el Nro. de Expediente o de Resolución que corresponde al Reposo del Empleado") self.obj("txt_04").set_tooltip_text(Mens.usar_boton("la Fecha de expedición del Expediente o de la Resolución")) self.obj("txt_05").set_tooltip_text(Mens.usar_boton("la Fecha de Inicio del Reposo del Empleado")) self.obj("txt_06").set_tooltip_text(Mens.usar_boton("la Fecha de Finalización del Reposo del Empleado")) self.obj("txt_07").set_tooltip_text("Tiempo de Duración, en Días, del Reposo del Empleado") self.obj("txt_08").set_tooltip_text("Ingrese cualquier información adicional con respecto al Reposo del Empleado") self.obj("txt_02").grab_focus() self.txt_cod_per, self.txt_rzn_scl = self.obj("txt_01"), self.obj("txt_01_1") self.txt_nro_doc, self.cmb_tip_doc = self.obj("txt_01_2"), self.obj("cmb_tipo_doc") self.txt_cod_cnt, self.txt_crg_cnt = self.obj("txt_02"), self.obj("txt_02_1") self.idPersona, self.borrar_contrato, self.idTipoDoc = None, not edit, -1 Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_doc"), "tipodocumentos", "idTipoDocumento") arch.connect_signals(self) if self.editando: seleccion, iterador = self.nav.obj("grilla").get_selection().get_selected() self.cond = str(seleccion.get_value(iterador, 0)) idcont = str(seleccion.get_value(iterador, 1)) idemp = str(seleccion.get_value(iterador, 2)) tipodoc = seleccion.get_value(iterador, 3) nrodoc = seleccion.get_value(iterador, 4) nombre = seleccion.get_value(iterador, 5) cargo = seleccion.get_value(iterador, 8) fini = seleccion.get_value(iterador, 9) ffin = seleccion.get_value(iterador, 10) dias = str(seleccion.get_value(iterador, 11)) exp = seleccion.get_value(iterador, 12) fexp = seleccion.get_value(iterador, 13) obs = seleccion.get_value(iterador, 14) obs = "" if obs is None else obs self.fechaini = seleccion.get_value(iterador, 19) self.fechafin = seleccion.get_value(iterador, 20) self.fechaexp = seleccion.get_value(iterador, 21) self.obj("txt_00").set_text(self.cond) self.obj("txt_01").set_text(idemp) self.obj("txt_01_1").set_text(nombre) self.obj("txt_01_2").set_text(nrodoc) self.obj("txt_02").set_text(idcont) self.obj("txt_02_1").set_text(cargo) self.obj("txt_03").set_text(exp) self.obj("txt_04").set_text(fexp) self.obj("txt_05").set_text(fini) self.obj("txt_06").set_text(ffin) self.obj("txt_07").set_text(dias) self.obj("txt_08").set_text(obs) # Asignación de Tipo de Documento en Combo model, i = self.obj("cmb_tipo_doc").get_model(), 0 while model[i][0] != tipodoc: i += 1 self.obj("cmb_tipo_doc").set_active(i) else: self.obj("txt_00").set_text(Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid)) self.obj("cmb_tipo_doc").set_active(0) self.nav.obj("grilla").get_selection().unselect_all() self.nav.obj("barraestado").push(0, "") self.obj("ventana").show()
def on_btn_guardar_cuota_clicked(self, objeto): fact = self.obj("txt_fact").get_text() fact = "'" + fact + "'" if self.tabla == "cuentaspagar" else fact timb = self.obj("txt_timb").get_text() if self.obj("notebook").get_current_page() == 0: ini = int( Op.nuevoid( self.datos_conexion, self.tabla + " WHERE NroTimbrado = " + timb + " AND NroFactura = " + fact, "NroCuota")) resto = float(self.obj("txt_no_asignado").get_text()) cant = float(self.obj("txt_i_00").get_text()) monto = self.obj("txt_i_02").get_text() # Si cantidad es decimal, suma uno a la cantidad de cuotas if cant > int(cant): cant = int(cant) + ini + 1 else: cant = int(cant) + ini # Valores Iniciales if self.pago == "Mensual": dia_venc = self.obj("txt_i_01_1").get_value_as_int() longitud_grilla = len(self.obj("grilla").get_model()) if longitud_grilla == 0: # Vacía fecha = date.today() else: conexion = Op.conectar(self.datos_conexion) cursor = Op.consultar( conexion, "FechaVencimiento", self.tabla, " WHERE NroTimbrado = " + timb + " AND NroFactura = " + fact + " ORDER BY NroCuota DESC") fecha = cursor.fetchall()[0][0] conexion.close() # Finaliza la conexión anho = fecha.strftime("%Y") mes = fecha.strftime("%m") dia = fecha.strftime("%d") if longitud_grilla == 0: # Vacía if dia_venc < int(dia): mes, anho = Cal.mes_mas_uno(mes, anho) else: if dia_venc <= int(dia): mes, anho = Cal.mes_mas_uno(mes, anho) dia = Op.cadenanumeros(dia_venc, 2) else: periodo = 7 if self.pago == "Semanal" else 14 anho = self.fecha_inic[0:4] mes = self.fecha_inic[5:7] dia = self.fecha_inic[8:10] # Carga de Datos for nro in range(ini, cant): if int(mes) == 2: # Años bisiestos: 1900, (2000), 2100, 2200, 2300, (2400), 2500 if int(anho) % 4 == 0: # Es Múltiplo de 4 dia_max = 29 if int(anho) % 100 == 0: # Pero NO es múltiplo de 100 if int( anho ) % 400 != 0: # Excepto si es múltiplo de 400 dia_max = 28 else: dia_max = 28 elif int(mes) in (4, 6, 9, 11): dia_max = 30 else: dia_max = 31 if self.pago == "Mensual": if int(dia) > dia_max: dia = str(dia_max) fecha = "'" + anho + "-" + mes + "-" + dia + "'" monto = str(resto) if float(monto) > resto else monto resto -= float(monto) sql = timb + ", " + fact + ", " + str( nro) + ", " + fecha + ", " + monto Op.insertar(self.conexion, self.tabla, sql) if resto > 0: # Modifica valores para proxima cuota if self.pago == "Mensual": dia = Op.cadenanumeros(int(dia_venc), 2) mes, anho = Cal.mes_mas_uno(mes, anho) else: dia = str(int(dia) + periodo) if int(dia) > dia_max: dia = str(int(dia) - dia_max) mes, anho = Cal.mes_mas_uno(mes, anho) else: nro = self.obj("txt_d_00").get_text() monto = self.obj("txt_d_02").get_text() sql = timb + ", " + fact + ", " + nro + ", '" + self.fecha_venc + "', " + monto if not self.editando_cuota: Op.insertar(self.conexion, self.tabla, sql) else: Op.modificar(self.conexion, self.tabla, self.cond_cuota + ", " + sql) self.cargar_grilla_cuotas() self.on_btn_cancelar_cuota_clicked(0)
def __init__(self, edit, origen): self.editando = edit self.nav = origen arch = Op.archivo("rrhh_gratificaciones") self.obj = arch.get_object self.obj("ventana").set_position(1) self.obj("ventana").set_modal(True) edit = "Creando" if not self.editando else "Editando" self.obj("ventana").set_title(edit + " Registro de Gratificación") Mens.boton_guardar_cancelar(self.obj("btn_guardar"), self.obj("btn_cancelar")) self.obj("txt_00").set_max_length(10) self.obj("txt_01").set_max_length(10) self.obj("txt_01_2").set_max_length(12) self.obj("txt_02").set_max_length(10) self.obj("txt_03").set_max_length(12) self.obj("txt_04").set_max_length(100) self.obj("txt_00").set_tooltip_text("Ingrese el Código de la Gratificación") self.obj("txt_01").set_tooltip_text(Mens.usar_boton("el Empleado cuya Gratificación es registrada")) self.obj("txt_01_1").set_tooltip_text("Nombre y Apellido del Empleado") self.obj("txt_01_2").set_tooltip_text("Ingrese el Nro. de Documento del Empleado") self.obj("txt_02").set_tooltip_text(Mens.usar_boton("el Contrato del Empleado seleccionado")) self.obj("txt_02_1").set_tooltip_text("Cargo del Empleado dentro de la Empresa") self.obj("txt_02_2").set_tooltip_text("Salario Mensual del Empleado") self.obj("txt_03").set_tooltip_text("Ingrese el Monto a pagar como Gratificación") self.obj("txt_04").set_tooltip_text("Ingrese cualquier información adicional con respecto a la Gratificación del Empleado") self.obj("txt_02").grab_focus() self.txt_cod_per, self.txt_rzn_scl = self.obj("txt_01"), self.obj("txt_01_1") self.txt_nro_doc, self.cmb_tip_doc = self.obj("txt_01_2"), self.obj("cmb_tipo_doc") self.txt_cod_cnt, self.txt_crg_cnt, self.txt_sal_cnt = self.obj("txt_02"), \ self.obj("txt_02_1"), self.obj("txt_02_2") self.idPersona, self.borrar_contrato = None, not edit self.idTipoDoc = self.idMotivoGratificacion = -1 Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_doc"), "tipodocumentos", "idTipoDocumento") Op.combos_config(self.nav.datos_conexion, self.obj("cmb_motivo"), "motivogratificaciones", "idMotivoGratificacion") arch.connect_signals(self) if self.editando: seleccion, iterador = self.nav.obj("grilla").get_selection().get_selected() self.cond = str(seleccion.get_value(iterador, 0)) idcont = str(seleccion.get_value(iterador, 1)) motivo = seleccion.get_value(iterador, 9) monto = str(seleccion.get_value(iterador, 11)) obs = seleccion.get_value(iterador, 13) obs = "" if obs is None else obs self.obj("txt_00").set_text(self.cond) self.obj("txt_02").set_text(idcont) self.obj("txt_03").set_text(monto) self.obj("txt_04").set_text(obs) # Asignación de Motivo en Combo model, i = self.obj("cmb_motivo").get_model(), 0 while model[i][0] != motivo: i += 1 self.obj("cmb_motivo").set_active(i) self.focus_out_event(self.obj("txt_02"), 0) else: self.obj("txt_00").set_text(Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid)) self.obj("cmb_tipo_doc").set_active(0) self.obj("cmb_motivo").set_active(0) self.nav.obj("grilla").get_selection().unselect_all() self.nav.obj("barraestado").push(0, "") self.obj("ventana").show()
def __init__(self, edit, origen, contr=None): self.editando = edit self.contrato = contr # Está creando desde Contratos self.nav = origen arch = Op.archivo("rrhh_vendedores") self.obj = arch.get_object self.obj("ventana").set_position(1) self.obj("ventana").set_default_size(500, 550) self.obj("ventana").set_modal(True) edit = "Creando" if not self.editando else "Editando" self.obj("ventana").set_title(edit + " Registro de Vendedores") Mens.boton_guardar_cancelar(self.obj("btn_guardar"), self.obj("btn_cancelar")) self.obj("txt_00").set_max_length(10) self.obj("txt_01").set_max_length(10) self.obj("txt_02").set_max_length(10) self.obj("txt_02_2").set_max_length(12) self.obj("txt_00").set_tooltip_text("Ingrese el Código del Vendedor") self.obj("txt_01").set_tooltip_text(Mens.usar_boton("el Contrato del Vendedor")) self.obj("txt_02").set_tooltip_text(Mens.usar_boton("el Vendedor con quien se celebró el Contrato")) self.obj("txt_02_1").set_tooltip_text("Nombre y Apellido del Vendedor") self.obj("txt_02_2").set_tooltip_text("Ingrese el Nro. de Documento del Vendedor") self.obj("txt_02_3").set_tooltip_text("Dirección Principal del Vendedor") self.obj("txt_02_4").set_tooltip_text("Teléfono del Vendedor") self.txt_cod_cnt, self.idTipoDoc = self.obj("txt_01"), -1 self.txt_cod_per, self.txt_rzn_scl = self.obj("txt_02"), self.obj("txt_02_1") self.txt_nro_doc, self.cmb_tip_doc = self.obj("txt_02_2"), self.obj("cmb_tipo_doc") self.txt_dir_per, self.txt_tel_per = self.obj("txt_02_3"), self.obj("txt_02_4") self.txt_cod_it = self.obj("txt_it_00") self.txt_bar_it, self.txt_nom_it = self.obj("txt_it_00_1"), self.obj("txt_it_00_2") self.txt_cod_pres, self.txt_des_pres = self.obj("txt_it_00_3"), self.obj("txt_it_00_4") self.idPersona, self.borrar_contrato, self.idTipoDoc = None, not edit, -1 Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_doc"), "tipodocumentos", "idTipoDocumento") arch.connect_signals(self) if self.editando: seleccion, iterador = self.nav.obj("grilla").get_selection().get_selected() self.cond = str(seleccion.get_value(iterador, 0)) contrato = str(seleccion.get_value(iterador, 1)) empleado = str(seleccion.get_value(iterador, 2)) tipodoc = seleccion.get_value(iterador, 3) nrodoc = seleccion.get_value(iterador, 4) nombre = seleccion.get_value(iterador, 5) direccion = seleccion.get_value(iterador, 6) telefono = seleccion.get_value(iterador, 7) direccion = "" if direccion is None else direccion telefono = "" if telefono is None else telefono self.obj("txt_00").set_text(self.cond) self.obj("txt_01").set_text(contrato) self.obj("txt_02").set_text(empleado) self.obj("txt_02_1").set_text(nombre) self.obj("txt_02_2").set_text(nrodoc) self.obj("txt_02_3").set_text(direccion) self.obj("txt_02_4").set_text(telefono) # Asignación de Tipo de Documento en Combo model, i = self.obj("cmb_tipo_doc").get_model(), 0 while model[i][0] != tipodoc: i += 1 self.obj("cmb_tipo_doc").set_active(i) else: self.obj("txt_00").set_text(Op.nuevoid(self.nav.datos_conexion, "vendedores_s", "idVendedor")) self.obj("cmb_tipo_doc").set_active(0) self.conexion = Op.conectar(self.nav.datos_conexion) self.principal_guardado = True self.estadoedicion(False) self.config_grilla_categorias() self.cargar_grilla_categorias() self.config_grilla_items() self.cargar_grilla_items() if self.contrato is None: self.nav.obj("grilla").get_selection().unselect_all() self.nav.obj("barraestado").push(0, "") else: # Datos del Contrato del Empleado self.obj("txt_01").set_text(self.contrato) self.focus_out_event(self.obj("txt_01"), 0) # No puede cambiar el Empleado ni el Contrato self.obj("vbox1").set_sensitive(False) self.obj("ventana").show()
def __init__(self, edit, origen): self.editando = edit self.nav = origen # Necesario para Vendedores self.datos_conexion = self.nav.datos_conexion arch = Op.archivo("rrhh_contratos") self.obj = arch.get_object self.obj("ventana").set_position(1) self.obj("ventana").set_modal(True) edit = "Creando" if not self.editando else "Editando" self.obj("ventana").set_title(edit + " Registro de Contratos") Mens.boton_guardar_cancelar(self.obj("btn_guardar"), self.obj("btn_cancelar")) self.permiso_vendedores() self.obj("txt_00").set_max_length(10) self.obj("txt_01").set_max_length(10) self.obj("txt_01_2").set_max_length(12) self.obj("txt_00").set_tooltip_text("Ingrese el Código de Contrato") self.obj("txt_01").set_tooltip_text(Mens.usar_boton("el Empleado con quien se celebró el Contrato")) self.obj("txt_01_2").set_tooltip_text("Ingrese el Nro. de Documento del Empleado") self.obj("txt_04").set_tooltip_text(Mens.usar_boton("la Fecha de Inicio de Actividades")) self.obj("txt_05").set_tooltip_text(Mens.usar_boton("la Fecha de Finalización de Actividades")) self.obj("txt_06").set_tooltip_text(Mens.usar_boton("la Fecha de Inicio del Periodo de Prueba")) self.obj("txt_07").set_tooltip_text(Mens.usar_boton("la Fecha de Finalización del Periodo de Prueba")) self.idTipoDoc = -1 self.txt_cod_per, self.txt_rzn_scl = self.obj("txt_01"), self.obj("txt_01_1") self.txt_nro_doc, self.cmb_tip_doc = self.obj("txt_01_2"), self.obj("cmb_tipo_doc") self.txt_dir_per, self.txt_tel_per = self.obj("txt_01_3"), self.obj("txt_01_4") Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_doc"), "tipodocumentos", "idTipoDocumento") Op.combos_config(self.nav.datos_conexion, self.obj("cmb_cargo"), "cargos", "idCargo") Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_contrato"), "tipocontratos", "idTipoContrato") Op.combos_config(self.nav.datos_conexion, self.obj("cmb_periodo_pago"), "periodopagos", "idPeriodoPago") Op.combos_config(self.nav.datos_conexion, self.obj("cmb_forma_pago"), "formapagos", "idFormaPago") Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_salario"), "tiposalarios", "idTipoSalario") self.salariominimo = Op.obtener_salario_minimo(self.nav.datos_conexion) arch.connect_signals(self) self.obj("cmb_tipo_doc").set_active(0) self.obj("cmb_cargo").set_active(0) self.obj("cmb_tipo_contrato").set_active(0) self.obj("cmb_periodo_pago").set_active(0) self.obj("cmb_forma_pago").set_active(0) self.obj("cmb_tipo_salario").set_active(0) if self.editando: seleccion, iterador = self.nav.obj("grilla").get_selection().get_selected() self.cond = str(seleccion.get_value(iterador, 0)) idper = str(seleccion.get_value(iterador, 1)) tipodoc = seleccion.get_value(iterador, 2) nrodoc = seleccion.get_value(iterador, 3) nombre = seleccion.get_value(iterador, 4) direccion = seleccion.get_value(iterador, 6) telefono = seleccion.get_value(iterador, 7) direccion = "" if direccion is None else direccion telefono = "" if telefono is None else telefono self.obj("txt_00").set_text(self.cond) self.obj("txt_01").set_text(idper) self.obj("txt_01_1").set_text(nombre) self.obj("txt_01_2").set_text(nrodoc) self.obj("txt_01_3").set_text(direccion) self.obj("txt_01_4").set_text(telefono) # Asignación de Tipo de Documento en Combo model, i = self.obj("cmb_tipo_doc").get_model(), 0 while model[i][0] != tipodoc: i += 1 self.obj("cmb_tipo_doc").set_active(i) cargo = seleccion.get_value(iterador, 12) formapago = seleccion.get_value(iterador, 14) periodopago = seleccion.get_value(iterador, 16) tipocontrato = seleccion.get_value(iterador, 18) tiposalario = seleccion.get_value(iterador, 20) # Asignación de Cargo en Combo model, i = self.obj("cmb_cargo").get_model(), 0 while model[i][0] != cargo: i += 1 self.obj("cmb_cargo").set_active(i) # Asignación de Tipo de Contrato en Combo model, i = self.obj("cmb_tipo_contrato").get_model(), 0 while model[i][0] != tipocontrato: i += 1 self.obj("cmb_tipo_contrato").set_active(i) # Asignación de Periodo de Pago en Combo model, i = self.obj("cmb_periodo_pago").get_model(), 0 while model[i][0] != periodopago: i += 1 self.obj("cmb_periodo_pago").set_active(i) # Asignación de Forma de Pago en Combo model, i = self.obj("cmb_forma_pago").get_model(), 0 while model[i][0] != formapago: i += 1 self.obj("cmb_forma_pago").set_active(i) # Asignación de Tipo de Salario en Combo model, i = self.obj("cmb_tipo_salario").get_model(), 0 while model[i][0] != tiposalario: i += 1 self.obj("cmb_tipo_salario").set_active(i) # Salario minimo = True if seleccion.get_value(iterador, 34) == 1 else False cantsal = seleccion.get_value(iterador, 35) salario = str(seleccion.get_value(iterador, 24)) self.obj("rad_minimo").set_active(minimo) if cantsal is not None: self.obj("txt_02").set_value(float(cantsal)) self.obj("txt_03").set_text(salario) # Fechas fecha_ini = seleccion.get_value(iterador, 22) fecha_fin = seleccion.get_value(iterador, 23) prueba_ini = seleccion.get_value(iterador, 25) prueba_fin = seleccion.get_value(iterador, 26) self.obj("txt_04").set_text(fecha_ini) self.obj("txt_05").set_text(fecha_fin) self.obj("txt_06").set_text(prueba_ini) self.obj("txt_07").set_text(prueba_fin) self.fecha_ini = seleccion.get_value(iterador, 30) self.fecha_fin = seleccion.get_value(iterador, 31) self.prueba_ini = seleccion.get_value(iterador, 32) self.prueba_fin = seleccion.get_value(iterador, 33) else: self.obj("txt_00").set_text(Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid)) self.obj("rad_minimo").set_active(True) self.fecha_ini = self.fecha_fin = self.prueba_ini = self.prueba_fin = None self.conexion = Op.conectar(self.nav.datos_conexion) self.principal_guardado = True self.nav.obj("grilla").get_selection().unselect_all() self.nav.obj("barraestado").push(0, "") self.obj("ventana").show()
def __init__(self, edit, origen): self.editando = edit self.nav = origen arch = Op.archivo("rrhh_salidas") self.obj = arch.get_object self.obj("ventana").set_position(1) self.obj("ventana").set_modal(True) edit = "Creando" if not self.editando else "Editando" self.obj("ventana").set_title(edit + " Registro de Salidas") Mens.boton_guardar_cancelar(self.obj("btn_guardar"), self.obj("btn_cancelar")) self.obj("txt_00").set_max_length(10) self.obj("txt_01").set_max_length(10) self.obj("txt_01_2").set_max_length(12) self.obj("txt_03").set_max_length(10) self.obj("txt_04").set_max_length(100) self.obj("txt_00").set_tooltip_text("Ingrese el Código de la Salida") self.obj("txt_01").set_tooltip_text( Mens.usar_boton("el Empleado cuya Salida es registrada")) self.obj("txt_01_1").set_tooltip_text("Nombre y Apellido del Empleado") self.obj("txt_01_2").set_tooltip_text( "Ingrese el Nro. de Documento del Empleado") self.obj("txt_02").set_tooltip_text( Mens.usar_boton("la Fecha de Salida del Empleado seleccionado")) self.obj("txt_03").set_tooltip_text( Mens.usar_boton( "el Comprobante de Pago en que se procede a la liquidación del Empleado" )) self.obj("txt_04").set_tooltip_text( "Ingrese cualquier información adicional con respecto a la Salida del Empleado" ) self.obj("txt_01").grab_focus() self.txt_cod_per, self.txt_rzn_scl = self.obj("txt_01"), self.obj( "txt_01_1") self.txt_nro_doc, self.cmb_tip_doc = self.obj("txt_01_2"), self.obj( "cmb_tipo_doc") self.txt_cod_cmp = self.obj("txt_03") self.idTipoDoc = self.idMotivoSalida = -1 Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_doc"), "tipodocumentos", "idTipoDocumento") Op.combos_config(self.nav.datos_conexion, self.obj("cmb_motivo"), "motivosalidas", "idMotivoSalida") self.pago_modificado = False arch.connect_signals(self) if self.editando: seleccion, iterador = self.nav.obj( "grilla").get_selection().get_selected() self.cond = str(seleccion.get_value(iterador, 0)) idemp = str(seleccion.get_value(iterador, 1)) tipodoc = seleccion.get_value(iterador, 2) nrodoc = seleccion.get_value(iterador, 3) nombre = seleccion.get_value(iterador, 4) fecha = seleccion.get_value(iterador, 7) compr = seleccion.get_value(iterador, 8) motivo = seleccion.get_value(iterador, 10) obs = seleccion.get_value(iterador, 12) obs = "" if obs is None else obs self.fecha = seleccion.get_value(iterador, 17) self.obj("txt_00").set_text(self.cond) self.obj("txt_01").set_text(idemp) self.obj("txt_01_1").set_text(nombre) self.obj("txt_01_2").set_text(nrodoc) self.obj("txt_02").set_text(fecha) self.obj("txt_04").set_text(obs) # Asignación de Tipo de Documento en Combo model, i = self.obj("cmb_tipo_doc").get_model(), 0 while model[i][0] != tipodoc: i += 1 self.obj("cmb_tipo_doc").set_active(i) # Asignación de Motivo en Combo model, i = self.obj("cmb_motivo").get_model(), 0 while model[i][0] != motivo: i += 1 self.obj("cmb_motivo").set_active(i) if len(compr) == 0: self.editando_pago = False else: self.editando_pago = True self.obj("txt_03").set_text(compr) else: self.obj("txt_00").set_text( Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid)) self.obj("cmb_tipo_doc").set_active(0) self.obj("cmb_motivo").set_active(0) self.nav.obj("grilla").get_selection().unselect_all() self.nav.obj("barraestado").push(0, "") self.obj("ventana").show()