def onClickGraba(self): self.SumaDeuda() self.SumaPagos() cliente = Cliente.get_by_id(int(self.view.controles['cliente'].text())) recibo = Cabfact() recibo.tipocomp = Tipocomprobantes.CODIGO_RECIBO recibo.cliente = cliente.idcliente recibo.fecha = datetime.today() recibo.numero = str(TipoComprobante().SiguienteNumero( Tipocomprobantes.CODIGO_RECIBO)).zfill(12) recibo.total = float(self.view.controles['pagos'].text()) if float(self.view.controles['saldo'].text()) < 0: recibo.saldo = abs(float(self.view.controles['saldo'].text())) recibo.tipoiva = cliente.tiporesp.idtiporesp recibo.formapago = Tipocomprobantes.FORMA_PAGO['Cta Cte'] recibo.nombre = cliente.nombre recibo.domicilio = cliente.domicilio recibo.save() for x in range(self.view.gridDeuda.rowCount()): id = self.view.gridDeuda.ObtenerItem(fila=x, col='id') or 0 importe = float( self.view.gridDeuda.ObtenerItem(fila=x, col='a Saldar') or 0) cabecera = Cabfact.get_by_id(int(id)) cabecera.saldo = float(cabecera.saldo) - abs(importe) cabecera.desde = "0000-00-00" cabecera.hasta = "0000-00-00" cabecera.venccae = "0000-00-00" cabecera.save()
def CargaDatosCliente(self, *args, **kwargs): if not self.view.validaCliente.text(): return try: self.cliente = Cliente.select().where(Cliente.idcliente == self.view.validaCliente.text()).get() cliente = self.cliente self.view.lineEditDomicilio.setText(cliente.domicilio) if cliente.tiporesp.idtiporesp in [1, 2, 4]: #monotributo o resp inscripto self.view.lineEditDocumento.setText(cliente.cuit.replace('-','')) self.view.lineEditDocumento.setInputMask("99-99999999-9") if ParamSist.ObtenerParametro("EMITE_FCE") == "S": wsfecred = WsFECred() obligado, minimo = wsfecred.ConsultarMontoObligado(cliente.cuit.replace('-',''), LeerIni('cuit', key='WSFEv1')) if obligado and not self.informo: Ventanas.showAlert("Sistema", "Se debe emitir FCE al cliente desde un monto de {}".format(minimo)) self.informo = True else: self.view.lineEditDocumento.setText(str(cliente.dni)) self.view.lineEditDocumento.setInputMask("99999999") if int(LeerIni(clave='cat_iva', key='WSFEv1')) == 1: #si es Resp insc el contribuyente veo si teiene que emitira A o B if cliente.tiporesp.idtiporesp == 2: #resp inscripto self.view.cboComprobante.setText('Factura A') else: self.view.cboComprobante.setText('Factura B') else: self.view.cboComprobante.setText('Factura C') self.view.cboTipoIVA.setText(cliente.tiporesp.nombre) self.ObtieneNumeroFactura() except Cliente.DoesNotExist: Ventanas.showAlert("Sistema", "Cliente no encontrado en el sistema")
def onClickAgregaCliente(self): padron = PadronAfip() ok = padron.ConsultarPersona( cuit=str(self.view.textCUIT.text()).replace("-", "")) if padron.errores: Ventanas.showAlert(LeerIni("nombre_sistema"), "Error al leer informacion en la AFIP") else: cliente = Cliente() cliente.nombre = padron.denominacion[:30] cliente.domicilio = padron.direccion[:30] try: localidad = Localidad().select().where( Localidad.nombre.contains(padron.localidad)).get() except Localidad.DoesNotExist: localidad = Localidad().get_by_id(1) cliente.localidad = localidad cliente.cuit = padron.cuit cliente.dni = padron.dni cliente.tipodocu = 80 if padron.tipo_doc == 80 else 0 cliente.tiporesp = 2 if padron.tipo_doc == 80 else 0 cliente.formapago = 1 cliente.percepcion = 1 cliente.save() Ventanas.showAlert( LeerIni("nombre_sistema"), "Verifique si los datos cargados son los correctos")
def btnAceptarClicked(self, *args, **kwargs): if self.tipo == 'M': cliente = Cliente.get_by_id( self.controles[Cliente.idcliente.column_name].text()) cliente.idcliente = self.controles['idcliente'].text() else: if self.controles['dni'].text() != '0': doc = Cliente.select().where( Cliente.dni == self.controles['dni'].text()) else: doc = Cliente.select().where( Cliente.cuit == self.controles['cuit'].text() or '0') if doc.count() > 0: Ventanas.showAlert( "Sistema", "Cliente con el numero documento de documento cargado, ya dado de alta" ) return cliente = Cliente() cliente.nombre = self.controles['nombre'].text() cliente.telefono = self.controles['telefono'].text() cliente.localidad = self.controles['localidad'].text() or 1 cliente.domicilio = self.controles['domicilio'].text() cliente.tipodocu = self.controles['tipodocu'].text() or 0 cliente.dni = self.controles['dni'].text( ) if self.controles['dni'].text() else '0' cliente.cuit = self.controles['cuit'].text() if str( self.controles['cuit'].text()).replace('-', '') else '0' cliente.tiporesp = self.controles['tiporesp'].text() or 3 cliente.formapago = '1' cliente.percepcion = self.controles['percepcion'].text() or 1 #if self.tipo == 'M': #actualizacion cliente.save() ABM.btnAceptarClicked(self)
class ClientesView(ABM): model = Cliente() camposAMostrar = [Cliente.idcliente, Cliente.nombre] ordenBusqueda = Cliente.nombre campoClave = Cliente.idcliente def __init__(self, *args, **kwargs): ABM.__init__(self, *args, **kwargs) @inicializar_y_capturar_excepciones def ArmaCarga(self, *args, **kwargs): self.layoutID = self.ArmaEntrada('idcliente', texto='Codigo') self.ArmaEntrada('nombre', boxlayout=self.layoutID) self.layoutDomi = self.ArmaEntrada('domicilio') self.ArmaEntrada('telefono', boxlayout=self.layoutDomi) self.layoutLocalidad = self.ArmaEntrada(nombre='localidad', control=Localidades.Valida()) self.lblNombreLocalidad = Etiqueta() self.layoutLocalidad.addWidget(self.lblNombreLocalidad) self.controles['localidad'].widgetNombre = self.lblNombreLocalidad self.layoutDocumento = self.ArmaEntrada(nombre='tipodocu', control=Tipodoc.ComboTipoDoc(), texto="Tipo de docuemnto") self.lblNombreTipodoc = Etiqueta() self.layoutDocumento.addWidget(self.lblNombreTipodoc) self.controles['tipodocu'].widgetNombre = self.lblNombreTipodoc self.ArmaEntrada(nombre='dni', boxlayout=self.layoutDocumento) self.ArmaEntrada(nombre='cuit', boxlayout=self.layoutDocumento) self.layoutImpuesto = self.ArmaEntrada( nombre='percepcion', control=Impuestos.ComboImpuesto(), texto="Tipo de impuesto") self.lblNombreImpuesto = Etiqueta() self.layoutImpuesto.addWidget(self.lblNombreImpuesto) self.controles['percepcion'].widgetNombre = self.lblNombreImpuesto self.campoFoco = self.controles['nombre'] self.ArmaEntrada(nombre='tiporesp', boxlayout=self.layoutImpuesto, control=Tiporesp.Combo(), texto="Responsabilidad frente al iva") self.lblNombreTiporesp = Etiqueta() self.layoutDocumento.addWidget(self.lblNombreTiporesp) self.controles['tiporesp'].widgetNombre = self.lblNombreTiporesp @inicializar_y_capturar_excepciones def btnAceptarClicked(self, *args, **kwargs): if self.tipo == 'M': cliente = Cliente.get_by_id( self.controles[Cliente.idcliente.column_name].text()) cliente.idcliente = self.controles['idcliente'].text() else: if self.controles['dni'].text() != '0': doc = Cliente.select().where( Cliente.dni == self.controles['dni'].text()) else: doc = Cliente.select().where( Cliente.cuit == self.controles['cuit'].text() or '0') if doc.count() > 0: Ventanas.showAlert( "Sistema", "Cliente con el numero documento de documento cargado, ya dado de alta" ) return cliente = Cliente() cliente.nombre = self.controles['nombre'].text() cliente.telefono = self.controles['telefono'].text() cliente.localidad = self.controles['localidad'].text() or 1 cliente.domicilio = self.controles['domicilio'].text() cliente.tipodocu = self.controles['tipodocu'].text() or 0 cliente.dni = self.controles['dni'].text( ) if self.controles['dni'].text() else '0' cliente.cuit = self.controles['cuit'].text() if str( self.controles['cuit'].text()).replace('-', '') else '0' cliente.tiporesp = self.controles['tiporesp'].text() or 3 cliente.formapago = '1' cliente.percepcion = self.controles['percepcion'].text() or 1 #if self.tipo == 'M': #actualizacion cliente.save() ABM.btnAceptarClicked(self) def BotonesAdicionales(self): self.btnEmail = Boton(self.tabLista, texto="Email Cliente", imagen=imagen("email.png"), tamanio=QSize(32, 32), tooltip='Agrega email del cliente') self.btnEmail.setObjectName("btnEmail") self.horizontalLayout.addWidget(self.btnEmail)
from modelos.Proveedores import Proveedor from modelos.Tipocomprobantes import TipoComprobante from modelos.Tipodoc import Tipodoc from modelos.Tipoiva import Tipoiva from modelos.Tiporesp import Tiporesp from modelos.Unidades import Unidad if 'drop' in sys.argv: CpbteRel().drop_table() CtaCte().drop_table() Detfact().drop_table() Cabfact().drop_table() CabFactProv().drop_table() DetFactProv().drop_table() EmailCliente().drop_table() Cliente().drop_table() Articulo().drop_table() Proveedor().drop_table() Unidad().drop_table() Grupo().drop_table() Impuesto().drop_table() Formapago().drop_table() Tiporesp().drop_table() Tipodoc().drop_table() Localidad().drop_table() Tipoiva().drop_table() Cajero().drop_table() TipoComprobante().drop_table() CentroCosto().drop_table() Grupo().create_table()
def VerificaCliente(self, tipo_doc, nro_doc, nombre): if self.view.consultaAFIP.isChecked(): padron = PadronAfip() ok = padron.ConsultarPersona(cuit=str(nro_doc).replace("-", "")) try: if tipo_doc == "80": cliente = Cliente.get(Cliente.tipodocu == tipo_doc, Cliente.cuit == nro_doc) else: cliente = Cliente.get(Cliente.tipodocu == tipo_doc, Cliente.dni == nro_doc) except DoesNotExist: cliente = Cliente() cliente.formapago = 1 cliente.percepcion = 1 if self.view.consultaAFIP.isChecked(): cliente.nombre = padron.denominacion[:Cliente.nombre.max_length] cliente.domicilio = padron.direccion[:Cliente.nombre.max_length] try: localidad = Localidad().select().where( Localidad.nombre.contains(padron.localidad)).get() except Localidad.DoesNotExist: localidad = Localidad().get_by_id(1) cliente.localidad = localidad cliente.cuit = padron.cuit if padron.cuit else '' cliente.dni = padron.dni if padron.dni else 0 cliente.tipodocu = 80 if padron.tipo_doc == 80 else 0 cliente.tiporesp = 2 if padron.tipo_doc == 80 else 0 else: cliente.nombre = nombre cliente.domicilio = "" cliente.localidad = 1 cliente.cuit = nro_doc if tipo_doc == "80" else "" cliente.dni = nro_doc if tipo_doc != "80" else 0 cliente.tipodocu = nro_doc cliente.tiporesp = 2 if tipo_doc == "80" else 0 cliente.save() return cliente