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 GrabaFE(self, *args, **kwargs): self.view.layoutFactura.AssignNumero() cabfact = Cabfact() cabfact.tipocomp = self.tipo_cpte cabfact.cliente = self.cliente.idcliente cabfact.fecha = self.view.lineEditFecha.date().toPyDate() cabfact.numero = self.view.layoutFactura.numero cabfact.neto = sum([i for i in self.netos.values()]) cabfact.netoa = self.netos[21] cabfact.netob = self.netos[10.5] cabfact.iva = self.view.lineEditTotalIVA.value() cabfact.total = self.view.lineEditTotal.value() if self.view.cboFormaPago.text() == 'Contado': cabfact.saldo = 0.00 else: cabfact.saldo = self.view.lineEditTotal.value() cabfact.tipoiva = self.cliente.tiporesp.idtiporesp cabfact.cajero = 1 #por defecto cajero cabfact.formapago = 1 if self.view.cboFormaPago.text( ) == 'Contado' else 2 cabfact.percepciondgr = self.view.lineEditTributos.value() cabfact.nombre = self.view.lblNombreCliente.text() cabfact.domicilio = self.view.lineEditDomicilio.text() cabfact.cae = self.view.lineditCAE.text() cabfact.venccae = self.view.fechaVencCAE.date().toPyDate() cabfact.concepto = self.concepto cabfact.desde = self.view.fechaDesde.date().toPyDate() cabfact.hasta = self.view.fechaHasta.date().toPyDate() cabfact.save() for x in range(self.view.gridFactura.rowCount()): codigo = self.view.gridFactura.ObtenerItem(fila=x, col='Codigo') cantidad = float( self.view.gridFactura.ObtenerItem(fila=x, col='Cant.')) importe = float( self.view.gridFactura.ObtenerItem(fila=x, col='SubTotal')) iva = float(self.view.gridFactura.ObtenerItem(fila=x, col='IVA')) detalle = self.view.gridFactura.ObtenerItem(fila=x, col='Detalle') try: articulo = Articulo.get_by_id(codigo) detfact = Detfact() detfact.idcabfact = cabfact.idcabfact detfact.idarticulo = codigo detfact.cantidad = cantidad detfact.unidad = articulo.unidad detfact.costo = articulo.costo if LeerIni(clave='cat_iva', key='WSFEv1') == 1: if self.tipo_cpte in [6, 7, 8]: detfact.precio = importe / cantidad else: detfact.precio = (importe + importe * iva / 100) / cantidad else: detfact.precio = importe / cantidad try: ti = Tipoiva.get(Tipoiva.iva == iva) detfact.tipoiva = ti.codigo except Tipoiva.DoesNotExist: detfact.tipoiva = articulo.tipoiva.codigo if self.tipo_cpte in [6, 7, 8]: detfact.montoiva = importe * iva / 100 else: neto = round(importe / ((iva / 100) + 1), 3) detfact.montoiva = neto * iva / 100 if self.view.lineEditTributos.value() > 0: detfact.montodgr = importe * float( self.cliente.percepcion.porcentaje) / 100 else: detfact.montodgr = 0.00 detfact.montomuni = 0.00 detfact.descad = detalle detfact.detalle = detalle[:40] detfact.descuento = 0.00 detfact.save() except peewee.DoesNotExist: pass # Agregar comprobantes asociados(si es una NC / ND): if str(self.view.cboComprobante.text()).find('credito'): cpbte = CpbteRel() cpbte.idcabfact = cabfact.idcabfact if self.tipo_cpte == 13: cpbte.idtipocpbte = 11 else: if self.cliente.tiporesp.idtiporesp == 2: # resp inscripto cpbte.idtipocpbte = 1 else: cpbte.idtipocpbte = 6 cpbte.numero = self.view.layoutCpbteRelacionado.numero cpbte.save() self.ImprimeFactura(idcabecera=cabfact.idcabfact)