def buscar_cliente(self):

        numero_documento_cliente= self.obj_form.lne_dni_filtro_buscar.text()
        if numero_documento_cliente != "":
            try:
                numero_documento=int(numero_documento_cliente)
            except:
                msgBox = QMessageBox()
                msgBox.setWindowTitle("Atencion")
                msgBox.setText('Ingresar nuevamente el numero de documento sin espacios y sin puntos')
                msgBox.exec_()
                return False


            obj_N_datos_personales_cliente = N_datos_personales_cliente()
            obj_party_party=obj_N_datos_personales_cliente.buscar_party_party_por_nro_doc(numero_documento)

            if obj_party_party != False:
                #tabla party party
                self.id_party = obj_party_party.id_party
                self.obj_form.lne_apellido_buscar.setText(obj_party_party.apellido)
                self.obj_form.lne_nombre_buscar.setText(obj_party_party.nombre)
                self.obj_form.lne_tipo_doc_buscar.setText(obj_party_party.tipo_doc)
                self.obj_form.lne_nro_doc_cliente.setText(obj_party_party.num_doc)
                self.obj_form.lne_estado.setText(obj_party_party.estado)
                self.obj_form.lne_fecha_nac.setText(str(obj_party_party.fec_nac))
                self.obj_form.lne_estado_civil.setText(obj_party_party.estado_civil)
                self.obj_form.lne_limite_credito_buscar.setText(str(obj_party_party.limite_credito))

                #talba address
                obj_N_party_address= N_party_address(1)
                obj_party_address = obj_N_party_address.get_party_address(self.id_party)
                self.obj_form.lne_domicilio_buscar.setText(obj_party_address.domicilio)
                self.obj_form.lne_ciudad_buscar.setText(obj_party_address.ciudad)
                self.obj_form.lne_barrio_buscar.setText(obj_party_address.barrio)


                #table contacto

                obj_N_party_contacto= N_party_contacto(1)
                list_party_contacto= obj_N_party_contacto.get_list_party_contacto(self.id_party)
                for item in list_party_contacto:
                    if item.type_contacto == "Telefono":
                        self.obj_form.lne_telefono_buscar.setText(item.value)
                    if item.type_contacto=="Email":
                        self.obj_form.lne_email_buscar.setText(item.value)




                #party cliente
                obj_N_party_cliente= N_party_cliente(1)
                obj_party_cliente=obj_N_party_cliente.get_party_cliente(self.id_party)
                self.obj_form.lne_nro_cliente_buscar.setText(str(obj_party_cliente.nro_cliente))
                self.obj_form.txte_observaciones_buscar.setText(obj_party_cliente.comment)



                #terminar buscar propiedad para seteart cliente
                #self.obj_form.txte_observaciones_buscar.setText(obj_party_cliente.comment)
                #toPlainText
                obj_N_datos_laborales=N_datos_laborales()
                obj_datos_laborales= obj_N_datos_laborales.get_datos_laborales(self.id_party)
                self.obj_form.lne_ocupacion_buscar.setText(obj_datos_laborales.ocupacion)

                self.obj_form.lne_organismo_buscar.setText(obj_datos_laborales.organismo)
                self.obj_form.lne_telefono_laboral_buscar.setText(obj_datos_laborales.tel_laboral)
                self.obj_form.lne_domicilio_laboral_buscar.setText(obj_datos_laborales.dom_laboral)
                self.obj_form.lne_sueldo_buscar.setText(str(obj_datos_laborales.sueldo))
                self.obj_form.lne_antiguedad_buscar.setText(obj_datos_laborales.anti_laboral)
                self.obj_form.lne_categoria_buscar.setText(obj_datos_laborales.categoria)
                #pyqtRemoveInputHook()
                #import pdb; pdb.set_trace()
                self.obj_form.ckbx_posee_sueldo_buscar.setChecked(obj_datos_laborales.posee_recibo_sueldo)


                obj_N_garante= N_party_garante(1)
                self.list_garante = obj_N_garante.get_list_party_garante(obj_party_cliente.nro_cliente)
                for item in self.list_garante :
                    nro_cliente = item.nro_cliente
                    tipo_garante = item.tipo_garante
                    comment = item.comment
                    obj_N_datos_personales_cliente=N_datos_personales_cliente()
                    obj_datos_personales_cliente = obj_N_datos_personales_cliente.buscar_party_party_por_id(item.id_party_garante)

                    #AGREGAR REGISTROS EN LA GRILLA
                    #pyqtRemoveInputHook()
                    #import pdb; pdb.set_trace()
                    rowPosition = self.obj_form.tw_garantes_lista.rowCount()
                    self.obj_form.tw_garantes_lista.insertRow(rowPosition)
                    self.obj_form.tw_garantes_lista.setItem(rowPosition , 0, QTableWidgetItem(obj_datos_personales_cliente.estado))
                    self.obj_form.tw_garantes_lista.setItem(rowPosition , 1, QTableWidgetItem(item.tipo_garante))
                    self.obj_form.tw_garantes_lista.setItem(rowPosition , 2, QTableWidgetItem(str(obj_party_cliente.nro_cliente)))
                    self.obj_form.tw_garantes_lista.setItem(rowPosition , 3, QTableWidgetItem(obj_datos_personales_cliente.apellido))
                    self.obj_form.tw_garantes_lista.setItem(rowPosition , 4, QTableWidgetItem(obj_datos_personales_cliente.nombre))
                    self.obj_form.tw_garantes_lista.setItem(rowPosition , 5, QTableWidgetItem(obj_datos_personales_cliente.nro_doc))
                    self.obj_form.tw_garantes_lista.setItem(rowPosition , 6, QTableWidgetItem(comment))


                #tabla party otros buscar/gonzalo
                #pyqtRemoveInputHook()
                #import pdb; pdb.set_trace()
                obj_N_otros_datos= N_party_otros(1)
                obj_party_otros=obj_N_otros_datos.get_party_otros(self.id_party)

                self.obj_form.lne_tipo_iva_buscar.setText(obj_party_otros.tipo_iva)
                self.obj_form.lne_cuit_buscar.setText(obj_party_otros.cuit)
                self.obj_form.lne_cbu_buscar.setText(obj_party_otros.cbu)
                self.obj_form.lne_nro_beneficio_buscar.setText(obj_party_otros.num_beneficio)

                self.obj_form.ckbx_facturas_buscar.setChecked(obj_party_otros.presento_factura)
                self.obj_form.ckbx_veraz_buscar.setChecked(obj_party_otros.figura_veraz)
                self.obj_form.ckbx_jub_pens_buscar.setChecked(obj_party_otros.es_jubilado_pensionado)

            else:

                msgBox = QMessageBox()
                msgBox.setWindowTitle("Atencion")
                msgBox.setText("Error, el asociado no existe o el campo esta vacio.")
                msgBox.exec_()
                return False
Example #2
0
    def guardar(self):
        apellido = self.obj_form_cliente.lne_apellido.text()
        nombre = self.obj_form_cliente.lne_nombre_nuevo.text()
        nro_dni = self.obj_form_cliente.lne_nro_doc.text()
        if (apellido != "") and (nombre != "") and (nro_dni != ""):
            numero_documento_cliente = self.obj_form_cliente.lne_nro_doc.text()
            try:
                numero_documento = int(numero_documento_cliente)
            except:
                msgBox = QMessageBox()
                msgBox.setWindowTitle("Atencion")
                msgBox.setText(
                    'Ingresar nuevamente el numero de documento sin espacios y sin puntos'
                )
                msgBox.exec_()
                return False

            obj_N_datos_personales_cliente = N_datos_personales_cliente()
            obj_N_datos_personales_cliente.nombre = nombre.upper()
            obj_N_datos_personales_cliente.apellido = self.obj_form_cliente.lne_apellido.text(
            ).upper()
            obj_N_datos_personales_cliente.fec_nac = self.obj_form_cliente.dte_nacimiento.text(
            )
            obj_N_datos_personales_cliente.tipo_doc = self.obj_form_cliente.cbx_tipo_doc.currentText(
            )
            obj_N_datos_personales_cliente.nro_doc = numero_documento
            obj_N_datos_personales_cliente.estado_civil = self.obj_form_cliente.cbx_estado_civil.currentText(
            )
            if self.obj_form_cliente.lne_limite_credito.text() != "":
                try:
                    limite_credito = float(
                        self.obj_form_cliente.lne_limite_credito.text())
                    obj_N_datos_personales_cliente.limite_credito = limite_credito
                except:
                    obj_N_datos_personales_cliente.limite_credito = 0

            obj_N_datos_personales_cliente.estado = self.obj_form_cliente.cbx_estado.currentText(
            )
            #boton guardar
            obj_N_datos_personales_cliente.id = self.id_usu

            self.id_party = N_datos_personales_cliente().guardar(
                obj_N_datos_personales_cliente)

            if self.id_party != "False":
                obj_party_cliente = N_party_cliente(self.id_party)

                obj_party_cliente.guardar_N_party_cliente(
                    self.obj_form_cliente.txte_observaciones.toPlainText(),
                    self.id_party)

                self.nro_cliente = obj_party_cliente.get_nro_cliente(
                    self.id_party)
                self.obj_form_cliente.lne_nro_cliente.setText(
                    str(self.nro_cliente))

                obj_party_contacto3 = N_party_contacto(1)

                obj_party_contacto3.type_contacto = "Telefono"
                obj_party_contacto3.value = self.obj_form_cliente.lne_telefono.text(
                )

                obj_party_contacto_email = N_party_contacto(1)
                obj_party_contacto_email.type_contacto = "Email"
                obj_party_contacto_email.value = self.obj_form_cliente.lne_email.text(
                )

                obj_N_party_contacto = N_party_contacto(1)
                obj_N_party_contacto.guardar(obj_party_contacto3,
                                             self.id_party)
                obj_N_party_contacto.guardar(obj_party_contacto_email,
                                             self.id_party)

                ciudad = self.obj_form_cliente.lne_barrio.text()
                obj_N_party_address = N_party_address(ciudad)
                obj_N_party_address.domicilio = self.obj_form_cliente.lne_domicilio.text(
                )
                obj_N_party_address.barrio = self.obj_form_cliente.lne_barrio.text(
                )
                obj_N_party_address.ciudad = self.obj_form_cliente.cbx_ciudad.currentText(
                )
                #boton guardar

                obj_party_address = N_party_address(ciudad)
                obj_party_address.guardar(obj_N_party_address, self.id_party)

                organismo = self.obj_form_cliente.lne_organismo.text()
                obj_N_datos_laborales = N_datos_laborales()
                if self.obj_form_cliente.lne_sueldo.text() != "":
                    try:
                        sueldo = float(self.obj_form_cliente.lne_sueldo.text())
                        obj_N_datos_laborales.sueldo = sueldo
                    except:
                        obj_N_datos_laborales.sueldo = 0

                obj_N_datos_laborales.anti_laboral = self.obj_form_cliente.lne_antiguedad.text(
                )
                obj_N_datos_laborales.tel_laboral = self.obj_form_cliente.lne_telefono_laboral.text(
                )
                obj_N_datos_laborales.dom_laboral = self.obj_form_cliente.lne_domicilio_laboral.text(
                )
                obj_N_datos_laborales.organismo = self.obj_form_cliente.lne_organismo.text(
                )
                obj_N_datos_laborales.ocupacion = self.obj_form_cliente.lne_ocupacion.text(
                )
                obj_N_datos_laborales.categoria = self.obj_form_cliente.lne_categoria.text(
                )

                if self.obj_form_cliente.ckbx_recibo_sueldo_nuevo.isChecked():
                    obj_N_datos_laborales.posee_recibo_sueldo = True
                else:
                    obj_N_datos_laborales.posee_recibo_sueldo = False

                #boton guardar
                obj_datos_laborales = N_datos_laborales()
                obj_datos_laborales.guardar(obj_N_datos_laborales,
                                            self.id_party)

                #//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7
                cuit = self.obj_form_cliente.lne_cuit.text()
                obj_N_party_otros = N_party_otros(cuit)
                obj_N_party_otros.tipo_iva = self.obj_form_cliente.cbx_tipo_iva.currentText(
                )
                obj_N_party_otros.cuit = self.obj_form_cliente.lne_cuit.text()
                obj_N_party_otros.cbu = self.obj_form_cliente.lne_cbu.text()
                obj_N_party_otros.num_beneficio = self.obj_form_cliente.lne_nro_beneficio.text(
                )

                if self.obj_form_cliente.ckbx_facturas.isChecked():
                    obj_N_party_otros.presento_factura = True

                if self.obj_form_cliente.ckbx_veraz.isChecked():
                    obj_N_party_otros.figura_veraz = True

                if self.obj_form_cliente.ckbx_jub_pens.isChecked():
                    obj_N_party_otros.es_jubilado_pensionado = True

                #boton guardar
                obj_party_otros = N_party_otros(cuit)
                obj_party_otros.guardar(obj_N_party_otros, self.id_party)

                #boton guardar

                obj_party_garante2 = N_party_garante("A")
                obj_party_garante2.guardar(self.list_garante, self.nro_cliente)

                self.obj_form_cliente.lne_nro_cliente.setText(
                    str(self.nro_cliente))

                msgBox = QMessageBox()
                msgBox.setWindowTitle("Aviso")
                msgBox.setText("Cliente se guardo correctamente. Nro. " +
                               str(self.nro_cliente))
                msgBox.exec_()

            else:
                msgBox = QMessageBox()
                msgBox.setWindowTitle("Error")
                msgBox.setText(
                    "No se pudo grabar: Numero de documento duplicado, actualice los datos"
                )
                msgBox.exec_()

        else:
            msgBox = QMessageBox()
            msgBox.setWindowTitle("Advertencia")
            msgBox.setText(
                "Revisar campos obligatorios: Nombre, Apellido y Dni.")
            msgBox.exec_()
Example #3
0
    def imprimir(self):
        #monto_total_credito_letras = to_word(int(self.obj_form.lne_importe_prestamo_creditonuevo.text()),'EUR')
        #cant_cta_letras = to_word(int(self.obj_form.spbx_cantidad_cuotas_creditonuevo.text()),'EUR')
        obj_E_party = E_party_party()
        obj_asoc = obj_E_party.get_party_party(
            self.obj_form.lne_nro_doc_creditonuevo.text())
        obj_N_party_address = N_party_address("a")
        obj_party_address = obj_N_party_address.get_party_address(
            obj_asoc.id_party)

        fec_hoy = datetime.date.today()
        hoy = fec_hoy.strftime("%d/%m/%Y")

        styleSheet = getSampleStyleSheet()
        img = Image("cabezalcaida.png", 100, 25)
        img.hAlign = "RIGHT"
        otro_estilo = ParagraphStyle('',
                                     fontSize=9,
                                     textColor='#000',
                                     leftIndent=-44,
                                     rightIndent=150)
        fec_estilo = ParagraphStyle('',
                                    fontSize=9,
                                    textColor='#000',
                                    leftIndent=360,
                                    rightIndent=0)
        style_barra = ParagraphStyle('',
                                     fontSize=10,
                                     textColor='#000',
                                     leftIndent=0,
                                     rightIndent=10)
        texto_principal = ""
        estilo_texto = ParagraphStyle(
            '',
            fontSize=5,
            alignment=0,
            spaceBefore=0,
            spaceAfter=0,
            #backColor = '#fff',
            textColor='#000',
            leftIndent=5)

        h = Paragraph(texto_principal, estilo_texto)
        banner = [[img, h]]
        options = QFileDialog.Options()
        story = []
        ban = Table(banner, colWidths=270, rowHeights=-25)
        story.append(ban)
        story.append(Spacer(0, 25))

        P = Paragraph("<b> Fecha:  </b>" + str(hoy) + "", fec_estilo)
        story.append(P)
        story.append(Spacer(0, 5))

        P = Paragraph(
            "<b>Sr/a: </b>" + obj_asoc.apellido + " " + obj_asoc.nombre + " ",
            otro_estilo)
        story.append(P)
        story.append(Spacer(0, 5))

        # P=Paragraph("<|b>DNI:  </b>" + obj_asoc.num_doc + " " , otro_estilo)
        # story.append(P)
        # story.append(Spacer(0,5))

        P = Paragraph("<b>Domicilio: </b>" + obj_party_address.domicilio + " ",
                      otro_estilo)
        story.append(P)
        story.append(Spacer(0, 5))

        P = Paragraph("<b>Localidad: </b>" + obj_party_address.ciudad + " ",
                      otro_estilo)
        story.append(P)
        story.append(Spacer(0, 5))

        integrantes = [
            [
                Paragraph('''<font size=10> <b> </b></font>''',
                          styleSheet["BodyText"])
            ],
            [
                Paragraph('''<font size=10> <b> N° Cuota</b></font>''',
                          estilo_texto),
                Paragraph('''<font size=10> <b> 1er Venc </b></font>''',
                          estilo_texto),
                Paragraph(
                    '''<font size=10> <b> Importe 1er Venc </b></font>''',
                    estilo_texto)
            ]
        ]

        for row in xrange(
                self.obj_form.tw_lista_cuotas_creditonuevo.rowCount()):
            nro_cuota = self.obj_form.tw_lista_cuotas_creditonuevo.item(
                row, 0).text()
            capital = self.obj_form.tw_lista_cuotas_creditonuevo.item(
                row, 1).text()
            interes = self.obj_form.tw_lista_cuotas_creditonuevo.item(
                row, 2).text()
            _1er_Venc = self.obj_form.tw_lista_cuotas_creditonuevo.item(
                row, 4).text()
            fec_venc = datetime.datetime.strptime(_1er_Venc,
                                                  "%Y-%m-%d %H:%M:%S")

            importe_1er_Venc = self.obj_form.tw_lista_cuotas_creditonuevo.item(
                row, 5).text()
            #pyqtRemoveInputHook()
            #import pdb; pdb.set_trace()
            mes = self.convert_Mes(fec_venc.month)

            estilonom_plan = " <font size=9>" + nro_cuota + "</font>"
            estilodescuento = " <font size=9>" + str(
                fec_venc.day) + "/ " + mes + " </font>"
            estilointeres = " <font size=9>" + importe_1er_Venc + "</font>"

            integrantes.append([
                Paragraph(estilonom_plan, estilo_texto),
                Paragraph(estilodescuento, estilo_texto),
                Paragraph(estilointeres, estilo_texto)
            ])

            t = Table(integrantes, (175, 175, 175))
            t.setStyle(
                TableStyle([
                    ('INNERGRID', (0, 1), (-1, -1), 0.25, colors.black),
                    ('BOX', (0, 1), (-1, -1), 0.25, colors.black),
                    ('BACKGROUND', (0, 1), (-1, 1), colors.lightgrey)
                ]))

        story.append(t)
        story.append(Spacer(0, 25))
        P = Paragraph(
            "*** Informamos que ante el pago fuera de término, la empresa aplicará interés por mora***",
            style_barra)
        story.append(P)

        #---------------------------------------CAMBIAR RUTA (LA PALABRA slam2016 POR LA RUTA DESEADA DE LA PC)------------------------------------------------#
        #pyqtRemoveInputHook()
        #import pdb; pdb.set_trace()
        obj_config = configuracion()
        cadena = obj_config.ruta()

        file_path = cadena + "/pdf/credito/credito" + str(
            datetime.date.today().year) + "_" + str(
                datetime.date.today().month)
        if not os.path.exists(file_path):
            os.makedirs(file_path)

        doc = SimpleDocTemplate(file_path + "/credito_" + obj_asoc.apellido +
                                "_" + obj_asoc.nombre + ".pdf")
        doc.build(story)

        msgBox = QMessageBox()
        msgBox.setWindowTitle("Estado de Credito")
        msgBox.setText("El Credito se ha generado correctamente")
        msgBox.exec_()

        if sys.platform == 'linux':
            subprocess.call([
                "xdg-open", file_path + "/credito_" + obj_asoc.apellido + "_" +
                obj_asoc.nombre + ".pdf"
            ])
        else:
            os.startfile(file_path + "/credito_" + obj_asoc.apellido + "_" +
                         obj_asoc.nombre + ".pdf")

        return True
    def buscar_cliente(self):

        numero_documento_cliente = self.obj_form.lne_dni_filtro_buscar.text()
        if numero_documento_cliente != "":
            try:
                numero_documento = int(numero_documento_cliente)
            except:
                msgBox = QMessageBox()
                msgBox.setWindowTitle("Atencion")
                msgBox.setText(
                    'Ingresar nuevamente el numero de documento sin espacios y sin puntos'
                )
                msgBox.exec_()
                return False

            obj_N_datos_personales_cliente = N_datos_personales_cliente()
            obj_party_party = obj_N_datos_personales_cliente.buscar_party_party_por_nro_doc(
                numero_documento)

            if obj_party_party != False:
                #tabla party party
                self.id_party = obj_party_party.id_party
                self.obj_form.lne_apellido_buscar.setText(
                    obj_party_party.apellido)
                self.obj_form.lne_nombre_buscar.setText(obj_party_party.nombre)
                self.obj_form.lne_tipo_doc_buscar.setText(
                    obj_party_party.tipo_doc)
                self.obj_form.lne_nro_doc_cliente.setText(
                    obj_party_party.num_doc)
                self.obj_form.lne_estado.setText(obj_party_party.estado)
                self.obj_form.lne_fecha_nac.setText(
                    str(obj_party_party.fec_nac))
                self.obj_form.lne_estado_civil.setText(
                    obj_party_party.estado_civil)
                self.obj_form.lne_limite_credito_buscar.setText(
                    str(obj_party_party.limite_credito))

                #talba address
                obj_N_party_address = N_party_address(1)
                obj_party_address = obj_N_party_address.get_party_address(
                    self.id_party)
                self.obj_form.lne_domicilio_buscar.setText(
                    obj_party_address.domicilio)
                self.obj_form.lne_ciudad_buscar.setText(
                    obj_party_address.ciudad)
                self.obj_form.lne_barrio_buscar.setText(
                    obj_party_address.barrio)

                #table contacto

                obj_N_party_contacto = N_party_contacto(1)
                list_party_contacto = obj_N_party_contacto.get_list_party_contacto(
                    self.id_party)
                for item in list_party_contacto:
                    if item.type_contacto == "Telefono":
                        self.obj_form.lne_telefono_buscar.setText(item.value)
                    if item.type_contacto == "Email":
                        self.obj_form.lne_email_buscar.setText(item.value)

                #party cliente
                obj_N_party_cliente = N_party_cliente(1)
                obj_party_cliente = obj_N_party_cliente.get_party_cliente(
                    self.id_party)
                self.obj_form.lne_nro_cliente_buscar.setText(
                    str(obj_party_cliente.nro_cliente))
                self.obj_form.txte_observaciones_buscar.setText(
                    obj_party_cliente.comment)

                #terminar buscar propiedad para seteart cliente
                #self.obj_form.txte_observaciones_buscar.setText(obj_party_cliente.comment)
                #toPlainText
                obj_N_datos_laborales = N_datos_laborales()
                obj_datos_laborales = obj_N_datos_laborales.get_datos_laborales(
                    self.id_party)
                self.obj_form.lne_ocupacion_buscar.setText(
                    obj_datos_laborales.ocupacion)

                self.obj_form.lne_organismo_buscar.setText(
                    obj_datos_laborales.organismo)
                self.obj_form.lne_telefono_laboral_buscar.setText(
                    obj_datos_laborales.tel_laboral)
                self.obj_form.lne_domicilio_laboral_buscar.setText(
                    obj_datos_laborales.dom_laboral)
                self.obj_form.lne_sueldo_buscar.setText(
                    str(obj_datos_laborales.sueldo))
                self.obj_form.lne_antiguedad_buscar.setText(
                    obj_datos_laborales.anti_laboral)
                self.obj_form.lne_categoria_buscar.setText(
                    obj_datos_laborales.categoria)
                #pyqtRemoveInputHook()
                #import pdb; pdb.set_trace()
                self.obj_form.ckbx_posee_sueldo_buscar.setChecked(
                    obj_datos_laborales.posee_recibo_sueldo)

                obj_N_garante = N_party_garante(1)
                self.list_garante = obj_N_garante.get_list_party_garante(
                    obj_party_cliente.nro_cliente)
                for item in self.list_garante:
                    nro_cliente = item.nro_cliente
                    tipo_garante = item.tipo_garante
                    comment = item.comment
                    obj_N_datos_personales_cliente = N_datos_personales_cliente(
                    )
                    obj_datos_personales_cliente = obj_N_datos_personales_cliente.buscar_party_party_por_id(
                        item.id_party_garante)

                    #AGREGAR REGISTROS EN LA GRILLA
                    #pyqtRemoveInputHook()
                    #import pdb; pdb.set_trace()
                    rowPosition = self.obj_form.tw_garantes_lista.rowCount()
                    self.obj_form.tw_garantes_lista.insertRow(rowPosition)
                    self.obj_form.tw_garantes_lista.setItem(
                        rowPosition, 0,
                        QTableWidgetItem(obj_datos_personales_cliente.estado))
                    self.obj_form.tw_garantes_lista.setItem(
                        rowPosition, 1, QTableWidgetItem(item.tipo_garante))
                    self.obj_form.tw_garantes_lista.setItem(
                        rowPosition, 2,
                        QTableWidgetItem(str(obj_party_cliente.nro_cliente)))
                    self.obj_form.tw_garantes_lista.setItem(
                        rowPosition, 3,
                        QTableWidgetItem(
                            obj_datos_personales_cliente.apellido))
                    self.obj_form.tw_garantes_lista.setItem(
                        rowPosition, 4,
                        QTableWidgetItem(obj_datos_personales_cliente.nombre))
                    self.obj_form.tw_garantes_lista.setItem(
                        rowPosition, 5,
                        QTableWidgetItem(obj_datos_personales_cliente.nro_doc))
                    self.obj_form.tw_garantes_lista.setItem(
                        rowPosition, 6, QTableWidgetItem(comment))

                #tabla party otros buscar/gonzalo
                #pyqtRemoveInputHook()
                #import pdb; pdb.set_trace()
                obj_N_otros_datos = N_party_otros(1)
                obj_party_otros = obj_N_otros_datos.get_party_otros(
                    self.id_party)

                self.obj_form.lne_tipo_iva_buscar.setText(
                    obj_party_otros.tipo_iva)
                self.obj_form.lne_cuit_buscar.setText(obj_party_otros.cuit)
                self.obj_form.lne_cbu_buscar.setText(obj_party_otros.cbu)
                self.obj_form.lne_nro_beneficio_buscar.setText(
                    obj_party_otros.num_beneficio)

                self.obj_form.ckbx_facturas_buscar.setChecked(
                    obj_party_otros.presento_factura)
                self.obj_form.ckbx_veraz_buscar.setChecked(
                    obj_party_otros.figura_veraz)
                self.obj_form.ckbx_jub_pens_buscar.setChecked(
                    obj_party_otros.es_jubilado_pensionado)

            else:

                msgBox = QMessageBox()
                msgBox.setWindowTitle("Atencion")
                msgBox.setText(
                    "Error, el asociado no existe o el campo esta vacio.")
                msgBox.exec_()
                return False
Example #5
0
    def actualizar_cliente(self,id_party):

        #  party party
        if (self.obj_form.lne_apellido_actualizar.text() !="") and (self.obj_form.lne_nombre_actualizar.text() !="") and (self.obj_form.lne_nro_doc_actualizar.text() !="") and (self.obj_form.lne_nro_cliente.text() !=""):
            obj_N_datos_personales_cliente = N_datos_personales_cliente()

            obj_party_party=obj_N_datos_personales_cliente.buscar_party_party_por_id(self.obj_form.lne_id_party_actualizar.text())

            self.id_party = obj_party_party.id_party
            obj_party_party = N_datos_personales_cliente()

            obj_party_party.apellido = self.obj_form.lne_apellido_actualizar.text().upper()
            obj_party_party.nombre = self.obj_form.lne_nombre_actualizar.text().upper()


            obj_party_party.tipo_doc = self.obj_form.cbx_tipo_doc_actualizar.currentText()
            obj_party_party.nro_doc = self.obj_form.lne_nro_doc_actualizar.text()
            obj_party_party.estado_civil = self.obj_form.cbx_estado_civil_actualizar.currentText()
            obj_party_party.fec_nac = self.obj_form.dte_nacimiento_actualizar.text()
            obj_party_party.limite_credito = self.obj_form.lne_limite_credito_actualizar.text()
            obj_party_party.estado = self.obj_form.cbx_estado_actualizar.currentText()

            obj_N_datos_personales_cliente.actualizar_party_party(obj_party_party, self.id_party)
            obj_party_cliente = N_party_cliente(self.id_party)

            #pyqtRemoveInputHook()
            #import pdb; pdb.set_trace()
            obj_comentario = obj_party_cliente.actualizar_comentario(self.id_party, self.obj_form.txte_observaciones_actualizar.toPlainText())


            self.nro_cliente = obj_party_cliente.get_nro_cliente(self.id_party)
            self.obj_form.lne_nro_cliente.setText(str(self.nro_cliente))
            #pyqtRemoveInputHook()
            #import pdb; pdb.set_trace()

            # tabla address
            ciudad = self.obj_form.lne_barrio_actualizar.text()
            obj_N_party_address = N_party_address(ciudad)
            obj_N_party_address.domicilio = self.obj_form.lne_domicilio_actualizar.text()
            obj_N_party_address.barrio = self.obj_form.lne_barrio_actualizar.text()
            obj_N_party_address.ciudad = self.obj_form.cbx_ciudad_actualizar.currentText()
            #boton guardar
            obj_party_address= N_party_address(ciudad)
            obj_party_address.actualizar_party_address(obj_N_party_address, self.id_party)

            # actualizo tabla contact

            obj_party_contacto3= N_party_contacto(1)

            obj_party_contacto3.type_contacto= "Telefono"
            obj_party_contacto3.value =self.obj_form.lne_telefono_actualizar.text()

            obj_party_contacto_email=N_party_contacto(1)
            obj_party_contacto_email.type_contacto="Email"
            obj_party_contacto_email.value= self.obj_form.lne_email_actualizar.text()


            obj_N_party_contacto=N_party_contacto(1)
            #obj_N_party_contacto.domicilio = self.obj_form.txte_observaciones_actualizar.text()
            obj_N_party_contacto.actualizar_party_contact(obj_party_contacto3, self.id_party)
            obj_N_party_contacto.actualizar_party_contact(obj_party_contacto_email, self.id_party)



            #actualizo party datos laborales



            organismo = self.obj_form.lne_organismo_actualizar.text()
            obj_N_datos_laborales = N_datos_laborales()
            obj_N_datos_laborales.sueldo = self.obj_form.lne_sueldo_actualizar.text()
            obj_N_datos_laborales.anti_laboral = self.obj_form.lne_antiguedad_actualizar.text()
            obj_N_datos_laborales.tel_laboral = self.obj_form.lne_telefono_laboral_actualizar.text()
            obj_N_datos_laborales.dom_laboral = self.obj_form.lne_domicilio_laboral_actualizar.text()
            obj_N_datos_laborales.organismo = self.obj_form.lne_organismo_actualizar.text()
            obj_N_datos_laborales.ocupacion = self.obj_form.lne_ocupacion_actualizar.text()
            obj_N_datos_laborales.categoria = self.obj_form.lne_categoria_actualizar.text()

            if self.obj_form.ckbx_recibo_sueldo_actualizar.isChecked():
                obj_N_datos_laborales.posee_recibo_sueldo = True
            else:
                obj_N_datos_laborales.posee_recibo_sueldo = False


            #boton guardar
            obj_datos_laborales= N_datos_laborales()
            obj_datos_laborales.actualizar_datos_laborales(obj_N_datos_laborales,self.id_party)


            # tabla party otros------------
            cuit = self.obj_form.lne_cuit_actualizar.text()
            obj_N_party_otros = N_party_otros(cuit)
            obj_N_party_otros.tipo_iva = self.obj_form.cbx_tipo_iva_actualizar.currentText()
            obj_N_party_otros.cuit = self.obj_form.lne_cuit_actualizar.text()
            obj_N_party_otros.cbu = self.obj_form.lne_cbu_actualizar.text()
            obj_N_party_otros.num_beneficio = self.obj_form.lne_nro_beneficio_actualizar.text()


            if self.obj_form.ckbx_facturas_actualizar.isChecked():
                obj_N_party_otros.presento_factura = True

            if self.obj_form.ckbx_veraz_actualizar.isChecked():
                obj_N_party_otros.figura_veraz = True

            if self.obj_form.ckbx_jub_pens_actualizar.isChecked():
                obj_N_party_otros.es_jubilado_pensionado = True

            #if self.obj_form.ckbx_monotributista_actualizar.isChecked():
             #   obj_N_party_otros.monotributista = True

            #if self.obj_form.ckbx_cliente_bloqueado_actualizar.isChecked():
             #   obj_N_party_otros.cliente_bloqueado = True

            #boton guardar
            obj_party_otros= N_party_otros(cuit)
            obj_party_otros.actualizar_party_otros(obj_N_party_otros,self.id_party)

            #grilla actualizar

            obj_N_garante = N_party_garante(1)
            obj_N_garante.actualizar_lista_garante(self.list_garante, self.nro_cliente)

            #lne_archivo
            if self.obj_form.lne_archivo.text() != self.descripcion_archivo:

                nom_archivo = self.get_nom_archivo()
                #Actualizar archivo


                obj_config = configuracion()


                file_path = obj_config.ruta_server()+"/comprobantes"
                if not os.path.exists(file_path):
                   os.makedirs(file_path)

                obj_archivo= E_archivo()
                obj_archivo.id_party= self.id_party
                obj_archivo.descripcion = file_path + nom_archivo
                obj_archivo.tipo_doc = "Comprobante creditos pre-existentes"
                obj_archivo.fec_create = datetime.date.today()

                obj_E_archivo = E_archivo()
                obj_E_archivo.actualizar(obj_archivo)

                cnopts = pysftp.CnOpts()
                cnopts.hostkeys = None

                try:
                    with pysftp.Connection(host=obj_config.host_server(), username=obj_config.usu_server(), password=obj_config.pass_server(),cnopts=cnopts) as sftp:
                        #sftp.put('/home/user/Documentos/credired/vencimientos/prueba.txt', '/home/user/Documentos/prueba.txt', confirm=True, preserve_mtime=False)  # upload file to public/ on remote
                        #sftp.put_r('/home/user/Documentos/credired/vencimientos', '/home/user/Documentos/', confirm=True, preserve_mtime=False)
                        sftp.put(self.obj_form.lne_archivo.text(), obj_archivo.descripcion, confirm=True, preserve_mtime=False)  # upload file to public/ on remote
                except:
                    msgBox = QMessageBox()
                    msgBox.setWindowTitle("Aviso")
                    msgBox.setText("No se pudo actulizar el archivo")
                    msgBox.exec_()


            msgBox = QMessageBox()
            msgBox.setWindowTitle("Aviso")
            msgBox.setText("Cliente actualizado.")
            msgBox.exec_()
        else:
            msgBox = QMessageBox()
            msgBox.setWindowTitle("Advertencia")
            msgBox.setText("Revisar campos obligatorios: Nombre, Apellido y Dni.")
            msgBox.exec_()
Example #6
0
    def buscar_cliente(self,id_party):
        self.limpiar()
        numero_documento_cliente= self.obj_form.lne_dni_filtro_actualizar.text()
        try:
            numero_documento=int(numero_documento_cliente)
        except:
            msgBox = QMessageBox()
            msgBox.setWindowTitle("Atencion")
            msgBox.setText('Ingresar nuevamente el numero de documento sin espacios y sin puntos')
            msgBox.exec_()

        obj_N_datos_personales_cliente = N_datos_personales_cliente()
        obj_party_party=obj_N_datos_personales_cliente.buscar_party_party_por_nro_doc(self.obj_form.lne_dni_filtro_actualizar.text())

        if obj_party_party != False:
            self.obj_form.tab_widget_actualizar_cliente.setEnabled(True)
            self.obj_form.lne_id_party_actualizar.setText(str(obj_party_party.id_party))
            self.id_party = obj_party_party.id_party
            self.obj_form.lne_apellido_actualizar.setText(obj_party_party.apellido)
            self.obj_form.lne_nombre_actualizar.setText(obj_party_party.nombre)
            index_tipo_doc=self.obj_form.cbx_tipo_doc_actualizar.findText(str(obj_party_party.tipo_doc))
            self.obj_form.cbx_tipo_doc_actualizar.setCurrentIndex(index_tipo_doc)
            self.obj_form.lne_dni_filtro_actualizar.setText(obj_party_party.num_doc)
            self.obj_form.lne_nro_doc_actualizar.setText(obj_party_party.num_doc)
            index_estado= self.obj_form.cbx_estado_actualizar.findText(str(obj_party_party.estado))
            self.obj_form.cbx_estado_actualizar.setCurrentIndex(index_estado)
            self.obj_form.dte_nacimiento_actualizar.setDate(obj_party_party.fec_nac)
            index_estado_civil= self.obj_form.cbx_estado_civil_actualizar.findText(obj_party_party.estado_civil)
            self.obj_form.cbx_estado_civil_actualizar.setCurrentIndex(index_estado_civil)
            self.obj_form.lne_limite_credito_actualizar.setText(str(obj_party_party.limite_credito))
            #tabla party adddreeeeeesssss actualizar
            obj_N_party_address= N_party_address(1)
            #pyqtRemoveInputHook()
            #import pdb; pdb.set_trace()
            obj_party_address = obj_N_party_address.get_party_address(self.id_party)
            self.obj_form.lne_domicilio_actualizar.setText(obj_party_address.domicilio)
            index_ciudad=self.obj_form.cbx_ciudad_actualizar.findText(str(obj_party_address.ciudad))
            self.obj_form.cbx_ciudad_actualizar.setCurrentIndex(index_ciudad)
            self.obj_form.lne_barrio_actualizar.setText(obj_party_address.barrio)
            #tabla contacto

            #VER EL OBSERVACIONES

            obj_n_cliente = N_party_cliente(1)
            obj_comentario = obj_n_cliente.get_party_cliente(self.id_party)
            self.obj_form.txte_observaciones_actualizar.setText(obj_comentario.comment)

            obj_N_party_contacto= N_party_contacto(1)
            list_party_contacto= obj_N_party_contacto.get_list_party_contacto(self.id_party)
            for item in list_party_contacto:
                if item.type_contacto == "Telefono":
                    self.obj_form.lne_telefono_actualizar.setText(item.value)
                if item.type_contacto=="Email":
                    self.obj_form.lne_email_actualizar.setText(item.value)

            #party cliente
            obj_N_party_cliente= N_party_cliente(1)
            obj_party_cliente=obj_N_party_cliente.get_party_cliente(self.id_party)
            self.obj_form.lne_nro_cliente.setText(str(obj_party_cliente.nro_cliente))
            #datos laborales
            obj_N_datos_laborales=N_datos_laborales()
            obj_datos_laborales= obj_N_datos_laborales.get_datos_laborales(self.id_party)
            self.obj_form.lne_ocupacion_actualizar.setText(obj_datos_laborales.ocupacion)
            self.obj_form.lne_organismo_actualizar.setText(obj_datos_laborales.organismo)
            self.obj_form.lne_telefono_laboral_actualizar.setText(obj_datos_laborales.tel_laboral)
            self.obj_form.lne_domicilio_laboral_actualizar.setText(obj_datos_laborales.dom_laboral)
            self.obj_form.lne_sueldo_actualizar.setText(str(obj_datos_laborales.sueldo))
            #pyqtRemoveInputHook()
            #import pdb; pdb.set_trace()
            self.obj_form.lne_antiguedad_actualizar.setText(obj_datos_laborales.anti_laboral)
            self.obj_form.lne_categoria_actualizar.setText(obj_datos_laborales.categoria)
            self.obj_form.ckbx_recibo_sueldo_actualizar.setChecked(obj_datos_laborales.posee_recibo_sueldo)
            #party otros
            obj_N_otros_datos_actualizar= N_party_otros(1)
            obj_party_otros=obj_N_otros_datos_actualizar.get_party_otros(self.id_party)
            index_tipo_iva=self.obj_form.cbx_tipo_iva_actualizar.findText(str(obj_party_otros.tipo_iva))
            self.obj_form.cbx_tipo_iva_actualizar.setCurrentIndex(index_tipo_iva)
            self.obj_form.lne_cuit_actualizar.setText(obj_party_otros.cuit)
            self.obj_form.lne_cbu_actualizar.setText(obj_party_otros.cbu)
            self.obj_form.lne_nro_beneficio_actualizar.setText(obj_party_otros.num_beneficio)
            self.obj_form.ckbx_facturas_actualizar.setChecked(obj_party_otros.presento_factura)
            self.obj_form.ckbx_veraz_actualizar.setChecked(obj_party_otros.figura_veraz)
            #self.obj_form.ckbx_monotributista_actualizar.setChecked(obj_party_otros.monotributista)
            #self.obj_form.ckbx_cliente_bloqueado_actualizar.setChecked(obj_party_otros.cliente_bloqueado)
            self.obj_form.ckbx_jub_pens_actualizar.setChecked(obj_party_otros.es_jubilado_pensionado)


            #busca ruta de archivo
            #pyqtRemoveInputHook()
            #import pdb; pdb.set_trace()
            obj_e_archivo = E_archivo()
            obj_archivo = obj_e_archivo.get_nombre_archivo(self.id_party)
            try:
                self.obj_form.lne_archivo.setText(obj_archivo.descripcion)
                self.descripcion_archivo = obj_archivo.descripcion
            except:
                self.obj_form.lne_archivo.setText("")


            #busca garantes y carga la grilla
            obj_N_garante= N_party_garante(1)
            self.list_garante = obj_N_garante.get_list_party_garante(obj_party_cliente.nro_cliente)
            for item in self.list_garante :
                nro_cliente = item.nro_cliente
                tipo_garante = item.tipo_garante
                comment = item.comment
                obj_N_datos_personales_cliente=N_datos_personales_cliente()
                obj_datos_personales_cliente = obj_N_datos_personales_cliente.buscar_party_party_por_id(item.id_party_garante)

                #AGREGAR REGISTROS EN LA GRILLA
                #pyqtRemoveInputHook()
                #import pdb; pdb.set_trace()
                rowPosition = self.obj_form.tw_garantes_lista.rowCount()
                self.obj_form.tw_garantes_lista.insertRow(rowPosition)
                self.obj_form.tw_garantes_lista.setItem(rowPosition , 0, QTableWidgetItem(obj_datos_personales_cliente.estado))
                self.obj_form.tw_garantes_lista.setItem(rowPosition , 1, QTableWidgetItem(item.tipo_garante))
                self.obj_form.tw_garantes_lista.setItem(rowPosition , 2, QTableWidgetItem(str(obj_party_cliente.nro_cliente)))
                self.obj_form.tw_garantes_lista.setItem(rowPosition , 3, QTableWidgetItem(obj_datos_personales_cliente.apellido))
                self.obj_form.tw_garantes_lista.setItem(rowPosition , 4, QTableWidgetItem(obj_datos_personales_cliente.nombre))
                self.obj_form.tw_garantes_lista.setItem(rowPosition , 5, QTableWidgetItem(obj_datos_personales_cliente.nro_doc))
                self.obj_form.tw_garantes_lista.setItem(rowPosition , 6, QTableWidgetItem(comment))
        else:
            msgBox = QMessageBox()
            msgBox.setText('Error numero de DNI inexistente')
            msgBox.exec_()
    def imprimir(self):
        #monto_total_credito_letras = to_word(int(self.obj_form.lne_importe_prestamo_creditonuevo.text()),'EUR')
        #cant_cta_letras = to_word(int(self.obj_form.spbx_cantidad_cuotas_creditonuevo.text()),'EUR')
        obj_E_party = E_party_party()
        obj_asoc = obj_E_party.get_party_party(self.obj_form.lne_nro_doc_creditonuevo.text())
        obj_N_party_address =N_party_address("a")
        obj_party_address =obj_N_party_address.get_party_address(obj_asoc.id_party)

        fec_hoy= datetime.date.today()
        hoy = fec_hoy.strftime("%d/%m/%Y")


        styleSheet=getSampleStyleSheet()
        img=Image("cabezalcaida.png",100,25)
        img.hAlign = "RIGHT"
        otro_estilo= ParagraphStyle('',fontSize =9,textColor = '#000',leftIndent = -44,rightIndent = 150)
        fec_estilo= ParagraphStyle('',fontSize =9,textColor = '#000',leftIndent = 360,rightIndent = 0)
        style_barra= ParagraphStyle('',fontSize = 10,textColor = '#000',leftIndent = 0,rightIndent = 10)
        texto_principal = ""
        estilo_texto = ParagraphStyle('',
                fontSize = 5,
                        alignment = 0,
                        spaceBefore = 0,
                        spaceAfter = 0,
            #backColor = '#fff',
            textColor = '#000',
            leftIndent = 5 )


        h = Paragraph( texto_principal, estilo_texto)
        banner = [ [ img,h ] ]
        options = QFileDialog.Options()
        story=[]
        ban = Table( banner, colWidths=270, rowHeights=-25)
        story.append(ban)
        story.append(Spacer(0,25))

        P=Paragraph("<b> Fecha:  </b>" + str(hoy)+"",fec_estilo)
        story.append(P)
        story.append(Spacer(0,5))



        P=Paragraph("<b>Sr/a: </b>"  + obj_asoc.apellido+ " "+ obj_asoc.nombre  + " ",otro_estilo)
        story.append(P)
        story.append(Spacer(0,5))

       # P=Paragraph("<|b>DNI:  </b>" + obj_asoc.num_doc + " " , otro_estilo)
       # story.append(P)
       # story.append(Spacer(0,5))

        P=Paragraph("<b>Domicilio: </b>" + obj_party_address.domicilio + " ",otro_estilo)
        story.append(P)
        story.append(Spacer(0,5))

        P=Paragraph("<b>Localidad: </b>" + obj_party_address.ciudad + " ",otro_estilo)
        story.append(P)
        story.append(Spacer(0,5))




        integrantes = [[Paragraph('''<font size=10> <b> </b></font>''',styleSheet["BodyText"])],
                [Paragraph('''<font size=10> <b> N° Cuota</b></font>''',estilo_texto),
                Paragraph('''<font size=10> <b> 1er Venc </b></font>''',estilo_texto),
                Paragraph('''<font size=10> <b> Importe 1er Venc </b></font>''',estilo_texto)]]

        for row in xrange(self.obj_form.tw_lista_cuotas_creditonuevo.rowCount ()):
            nro_cuota = self.obj_form.tw_lista_cuotas_creditonuevo.item(row,0).text()
            capital= self.obj_form.tw_lista_cuotas_creditonuevo.item(row,1).text()
            interes= self.obj_form.tw_lista_cuotas_creditonuevo.item(row,2).text()
            _1er_Venc= self.obj_form.tw_lista_cuotas_creditonuevo.item(row,4).text()
            fec_venc = datetime.datetime.strptime(_1er_Venc, "%Y-%m-%d %H:%M:%S")

            importe_1er_Venc= self.obj_form.tw_lista_cuotas_creditonuevo.item(row,5).text()
            #pyqtRemoveInputHook()
            #import pdb; pdb.set_trace()
            mes = self.convert_Mes(fec_venc.month)

            estilonom_plan= " <font size=9>" + nro_cuota + "</font>"
            estilodescuento= " <font size=9>" + str(fec_venc.day) + "/ " + mes + " </font>"
            estilointeres= " <font size=9>" + importe_1er_Venc + "</font>"

            integrantes.append([ Paragraph(estilonom_plan,estilo_texto),
                                     Paragraph(estilodescuento,estilo_texto),
                                     Paragraph(estilointeres,estilo_texto)])

            t=Table(integrantes, (175, 175, 175))
            t.setStyle(TableStyle([
                                        ('INNERGRID', (0,1), (-1,-1), 0.25, colors.black),
                                           ('BOX', (0,1), (-1,-1), 0.25, colors.black),
                                           ('BACKGROUND',(0,1),(-1,1),colors.lightgrey)
                                           ]))


        story.append(t)
        story.append(Spacer(0,25))
        P=Paragraph("*** Informamos que ante el pago fuera de término, la empresa aplicará interés por mora***",style_barra)
        story.append(P)

        #---------------------------------------CAMBIAR RUTA (LA PALABRA slam2016 POR LA RUTA DESEADA DE LA PC)------------------------------------------------#
        #pyqtRemoveInputHook()
        #import pdb; pdb.set_trace()
        obj_config = configuracion()
        cadena = obj_config.ruta()

        file_path = cadena + "/pdf/credito/credito"+str(datetime.date.today().year)+"_"+str(datetime.date.today().month)
        if not os.path.exists(file_path):
            os.makedirs(file_path)

        doc=SimpleDocTemplate(file_path+ "/credito_" +  obj_asoc.apellido+ "_"+ obj_asoc.nombre + ".pdf")
        doc.build(story )

        msgBox = QMessageBox()
        msgBox.setWindowTitle("Estado de Credito")
        msgBox.setText("El Credito se ha generado correctamente")
        msgBox.exec_()

        if sys.platform == 'linux':
            subprocess.call(["xdg-open", file_path +"/credito_" +  obj_asoc.apellido+ "_"+ obj_asoc.nombre +".pdf"])
        else:
            os.startfile( file_path +"/credito_" +  obj_asoc.apellido+ "_"+ obj_asoc.nombre +".pdf")

        return True
    def guardar(self):
        apellido = self.obj_form_cliente.lne_apellido.text()
        nombre = self.obj_form_cliente.lne_nombre_nuevo.text()
        nro_dni =  self.obj_form_cliente.lne_nro_doc.text()
        if (apellido != "") and (nombre != "") and (nro_dni != ""):
            numero_documento_cliente= self.obj_form_cliente.lne_nro_doc.text()
            try:
                numero_documento= int(numero_documento_cliente)
            except:
                msgBox = QMessageBox()
                msgBox.setWindowTitle("Atencion")
                msgBox.setText('Ingresar nuevamente el numero de documento sin espacios y sin puntos')
                msgBox.exec_()
                return False

            obj_N_datos_personales_cliente = N_datos_personales_cliente() 
            obj_N_datos_personales_cliente.nombre =  nombre.upper()
            obj_N_datos_personales_cliente.apellido = self.obj_form_cliente.lne_apellido.text().upper()
            obj_N_datos_personales_cliente.fec_nac = self.obj_form_cliente.dte_nacimiento.text()
            obj_N_datos_personales_cliente.tipo_doc = self.obj_form_cliente.cbx_tipo_doc.currentText()
            obj_N_datos_personales_cliente.nro_doc = numero_documento
            obj_N_datos_personales_cliente.estado_civil = self.obj_form_cliente.cbx_estado_civil.currentText()
            if self.obj_form_cliente.lne_limite_credito.text() !="":
                try:
                    limite_credito= float(self.obj_form_cliente.lne_limite_credito.text())
                    obj_N_datos_personales_cliente.limite_credito = limite_credito
                except:
                    obj_N_datos_personales_cliente.limite_credito = 0

            obj_N_datos_personales_cliente.estado = self.obj_form_cliente.cbx_estado.currentText()
            #boton guardar
            obj_N_datos_personales_cliente.id = self.id_usu

            self.id_party=N_datos_personales_cliente().guardar(obj_N_datos_personales_cliente)



            if self.id_party != "False" :
                obj_party_cliente = N_party_cliente(self.id_party)

                obj_party_cliente.guardar_N_party_cliente(self.obj_form_cliente.txte_observaciones.toPlainText(), self.id_party)
                
                self.nro_cliente = obj_party_cliente.get_nro_cliente(self.id_party)
                self.obj_form_cliente.lne_nro_cliente.setText(str(self.nro_cliente))

                obj_party_contacto3= N_party_contacto(1)

                obj_party_contacto3.type_contacto= "Telefono"
                obj_party_contacto3.value =self.obj_form_cliente.lne_telefono.text()

                obj_party_contacto_email=N_party_contacto(1)
                obj_party_contacto_email.type_contacto="Email"
                obj_party_contacto_email.value= self.obj_form_cliente.lne_email.text()

                
                obj_N_party_contacto=N_party_contacto(1)
                obj_N_party_contacto.guardar(obj_party_contacto3, self.id_party)
                obj_N_party_contacto.guardar(obj_party_contacto_email, self.id_party)
                  
                ciudad = self.obj_form_cliente.lne_barrio.text()
                obj_N_party_address = N_party_address(ciudad)
                obj_N_party_address.domicilio = self.obj_form_cliente.lne_domicilio.text()
                obj_N_party_address.barrio = self.obj_form_cliente.lne_barrio.text()
                obj_N_party_address.ciudad = self.obj_form_cliente.cbx_ciudad.currentText()
                    #boton guardar

                obj_party_address= N_party_address(ciudad)
                obj_party_address.guardar(obj_N_party_address, self.id_party)



                organismo = self.obj_form_cliente.lne_organismo.text()
                obj_N_datos_laborales = N_datos_laborales()
                if self.obj_form_cliente.lne_sueldo.text() != "":
                    try:
                        sueldo = float(self.obj_form_cliente.lne_sueldo.text()) 
                        obj_N_datos_laborales.sueldo = sueldo
                    except :
                        obj_N_datos_laborales.sueldo = 0
               
                obj_N_datos_laborales.anti_laboral = self.obj_form_cliente.lne_antiguedad.text()
                obj_N_datos_laborales.tel_laboral = self.obj_form_cliente.lne_telefono_laboral.text()
                obj_N_datos_laborales.dom_laboral = self.obj_form_cliente.lne_domicilio_laboral.text()
                obj_N_datos_laborales.organismo = self.obj_form_cliente.lne_organismo.text()
                obj_N_datos_laborales.ocupacion = self.obj_form_cliente.lne_ocupacion.text()
                obj_N_datos_laborales.categoria = self.obj_form_cliente.lne_categoria.text()

                if self.obj_form_cliente.ckbx_recibo_sueldo_nuevo.isChecked():
                    obj_N_datos_laborales.posee_recibo_sueldo = True
                else:
                    obj_N_datos_laborales.posee_recibo_sueldo = False
                

                #boton guardar
                obj_datos_laborales= N_datos_laborales()
                obj_datos_laborales.guardar(obj_N_datos_laborales,self.id_party)

                

                #//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7
                cuit = self.obj_form_cliente.lne_cuit.text()
                obj_N_party_otros = N_party_otros(cuit)
                obj_N_party_otros.tipo_iva = self.obj_form_cliente.cbx_tipo_iva.currentText()
                obj_N_party_otros.cuit = self.obj_form_cliente.lne_cuit.text()
                obj_N_party_otros.cbu = self.obj_form_cliente.lne_cbu.text()
                obj_N_party_otros.num_beneficio = self.obj_form_cliente.lne_nro_beneficio.text()


                if self.obj_form_cliente.ckbx_facturas.isChecked():
                    obj_N_party_otros.presento_factura = True

                if self.obj_form_cliente.ckbx_veraz.isChecked():
                    obj_N_party_otros.figura_veraz = True

                if self.obj_form_cliente.ckbx_jub_pens.isChecked():
                    obj_N_party_otros.es_jubilado_pensionado = True
            

                #boton guardar
                obj_party_otros= N_party_otros(cuit)
                obj_party_otros.guardar(obj_N_party_otros,self.id_party)


                #boton guardar

                obj_party_garante2 = N_party_garante("A")
                obj_party_garante2.guardar(self.list_garante,self.nro_cliente)

                self.obj_form_cliente.lne_nro_cliente.setText(str(self.nro_cliente))
               
                msgBox = QMessageBox()
                msgBox.setWindowTitle("Aviso")
                msgBox.setText("Cliente se guardo correctamente. Nro. " + str(self.nro_cliente))
                msgBox.exec_()

            else: 
                msgBox = QMessageBox()
                msgBox.setWindowTitle("Error")
                msgBox.setText("No se pudo grabar: Numero de documento duplicado, actualice los datos")
                msgBox.exec_()

        else:
             msgBox = QMessageBox()
             msgBox.setWindowTitle("Advertencia")
             msgBox.setText("Revisar campos obligatorios: Nombre, Apellido y Dni.")
             msgBox.exec_()