public ObtenerNumeroFacturaResponse ObtenerNumeroFactura(ObtenerNumeroFacturaRequest request) { using (EpsonPrinter epsonFP = new EpsonPrinter(request.TipoCliente, request.CondicionIVA, request.PorcentajeFacturacion, request.NombreYApellido, request.Direccion, request.Localidad, request.Cuit)) { //pongo primer los productos con monto positibo y luego con monto negativo porque la controladora no puede operar con mantos negativos List <ProductoTicketRequest> productos = request.Productos .Where(x => x.Cantidad >= 0) .Select(x => new ProductoTicketRequest(x.Codigo, x.Nombre, x.Cantidad, x.MontoUnitario, x.DescuentoUnitario, x.CFTUnitario, x.IVA.Valor)).ToList(); productos.AddRange( request.Productos .Where(x => x.Cantidad < 0) .Select(x => new ProductoTicketRequest(x.Codigo, x.Nombre, x.Cantidad, x.MontoUnitario, x.DescuentoUnitario, x.CFTUnitario, x.IVA.Valor)).ToList()); List <PagoTicketRequest> pagos = request.Pagos.Select(x => new PagoTicketRequest(x.TipoPago, x.NumeroCuotas, x.Monto, x.Descuento, x.CFT, x.IVA)).ToList(); string TipoFactura = string.Empty; decimal MontoTotal = 0; decimal MontoIvaTotal = 0; decimal MontoVuelto = 0; int numeroFactura = epsonFP.ObtenreNumeroFactura(productos, pagos, out TipoFactura, out MontoTotal, out MontoIvaTotal, out MontoVuelto); return(new ObtenerNumeroFacturaResponse() { SubTotal = MontoTotal - MontoIvaTotal, Iva = MontoIvaTotal, Total = MontoTotal, NumeroFactura = new List <int>() { numeroFactura } }); } }
public ObtenerNumeroFacturaResponse ObtenerNumeroFactura(ObtenerNumeroFacturaRequest request) { List <AfipAlicuotaIvaRequest> alicuotasIva = ObtenerAfipAlicuotaIvaRequest(request.CondicionIVA, request.Productos, request.PorcentajeFacturacion); AfipObtenerCAERequest afipObtenerCAERequest = new AfipObtenerCAERequest() { TipoDocumentoFiscal = TipoDocumentoFiscal.Factura, TipoCliente = request.TipoCliente, CondicionIVA = request.CondicionIVA, Cuit = request.Cuit, ImporteNeto = alicuotasIva.Sum(x => x.Monto), AlicuotasIva = alicuotasIva, PasswordCertificado = PasswordCertificado, RutaCertificado = RutaCertificado }; AfipObtenerCAEResponse response = AfipFacturacionElectronicaService.ObtenerCEA(afipObtenerCAERequest); return(new ObtenerNumeroFacturaResponse() { SubTotal = response.Subtotal, Iva = response.Iva, Total = response.Total, CAE = response.Codigo, FechaVencimientoCAE = response.FechaVencimiento, NumeroFactura = new List <int>() { response.NumeroComprobante } }); }
public ObtenerNumeroFacturaResponse ObtenerNumeroFactura(ObtenerNumeroFacturaRequest request) { decimal subTotal = 0; decimal iva = 0; request.Productos.ForEach(x => { decimal montoSinIva = Monto.ObtenerMontoSegunTipoDeCliente(x.NetoTotal, x.IVA.Valor, request.CondicionIVA); subTotal += montoSinIva; iva += montoSinIva * x.IVA.Valor; }); return(new ObtenerNumeroFacturaResponse() { SubTotal = Monto.Redondeo(subTotal), Iva = Monto.Redondeo(iva), Total = Monto.Redondeo(subTotal + iva), NumeroFactura = request.NumerosFacturas }); }
public ObtenerNumeroFacturaResponse ObtenerNumeroFactura(ObtenerNumeroFacturaRequest request) { return(facturarStrategy.ObtenerNumeroFactura(request)); }