public async Task <CostoDto> ObtenerCostoPorIdPrendaClasificacion(int idPrendaClasificacion) { return(await _clasificacionPrendasAccesoBd.ObtenerCostoPorIdPrendaClasificacion(idPrendaClasificacion)); }
/// <summary> /// Condiciones de negocio: /// 1) /// </summary> /// <param name="idSolicitud"></param> /// <returns></returns> public async Task <GuardarFacturaDto> GenerarFacturaDesdeSolicitud(int idSolicitud) { var solicitud = await _solicitudAccesoBd.ObtenerSolicitudConDetallePorId(idSolicitud); if (solicitud != default(SolicitudesConDetallesDto)) { double totalParcial = 0; double totalGlobal = 0; double totalDoblado = 0; double totalSuplemento = 0; var listaDetallesFactura = new List <DetallesFacturaDto>(); foreach (var detalleSolicitud in solicitud.ListadoDetallesSolicitud.DetalleSolicitud) { var costo = await _clasificacionPrendasAccesoBd.ObtenerCostoPorIdPrendaClasificacion(detalleSolicitud.PrendasClasificacionId); double lavadoSeco = 0; double lavadoPlanchado = 0; double planchado = 0; double doblado = 0; if (detalleSolicitud.LavadoSeco) { totalParcial += (costo.LavadoSeco * detalleSolicitud.CantidadPrendas); lavadoSeco = costo.LavadoSeco * detalleSolicitud.CantidadPrendas; } if (detalleSolicitud.LavadoPlanchado) { totalParcial += (costo.LavadoPlanchado * detalleSolicitud.CantidadPrendas); lavadoPlanchado = (costo.LavadoPlanchado * detalleSolicitud.CantidadPrendas); } if (detalleSolicitud.Planchado) { totalParcial += (costo.Planchado * detalleSolicitud.CantidadPrendas); planchado = (costo.Planchado * detalleSolicitud.CantidadPrendas); } if (detalleSolicitud.Doblado) { totalParcial += (costo.Doblado * detalleSolicitud.CantidadPrendas); totalDoblado += (costo.Doblado * detalleSolicitud.CantidadPrendas); doblado = (costo.Doblado * detalleSolicitud.CantidadPrendas); } totalGlobal = totalParcial; var detalleFactura = new DetallesFacturaDto { DetalleSolicitudId = detalleSolicitud.Id, Doblado = doblado, LavadoPlanchado = lavadoPlanchado, LavadoSeco = lavadoSeco, Planchado = planchado, Total = (doblado + lavadoPlanchado + lavadoSeco + planchado) }; listaDetallesFactura.Add(detalleFactura); } var listadoDetallesFactura = new ListadoDetallesFacturaDto { DetallesFactura = listaDetallesFactura }; if (solicitud.SuplementoEntrega) { totalSuplemento = totalGlobal * 0.5; totalGlobal = totalGlobal + totalSuplemento; } var guardarFactura = new GuardarFacturaDto { ClientesId = solicitud.ClienteId, Doblado = totalDoblado, Estado = "Facturado", SolicitudesId = solicitud.Id, TotalGlobal = totalGlobal, TotalParcial = totalParcial, Suplemento = totalSuplemento, DetallesFacturas = listadoDetallesFactura }; await _facturaAccesoBd.GuardarFactura(guardarFactura); return(await Task.FromResult(guardarFactura)); } return(default(GuardarFacturaDto)); }