private void GenerarOP() { var selectedrowhandles = gridViewLiquidacion.GetSelectedRows(); if (selectedrowhandles.Count() == 0) { return; } var retenciones = new String[] { RetencionTypes.RetencionIIBB, RetencionTypes.RetencionEEAOC, RetencionTypes.RetencionSaludPublica, RetencionTypes.RetencionGADM, RetencionTypes.RetencionGCIAS, RetencionTypes.RetencionRiego, }; var retencionesdeordenvm = new List <RetencionAplicadaViewModel>(); foreach (var item in retenciones) { var retencionvm = new RetencionAplicadaViewModel() { Nombre = item, Importe = 0 }; retencionesdeordenvm.Add(retencionvm); } var netodeorden = 0m; var itemsvm = new List <ConceptoDeOrdenDePagoViewModel>(); foreach (var rowhandle in selectedrowhandles) { var row = gridViewLiquidacion.GetRow(rowhandle) as RowLiquidacion; var retencionesdeconceptovm = new List <RetencionAplicadaViewModel>(); foreach (var item in retenciones) { var importe = (decimal)gridViewLiquidacion.GetRowCellValue(rowhandle, item); var retencionaplicada = new RetencionAplicadaViewModel() { Nombre = item, Importe = importe }; retencionesdeconceptovm.Add(retencionaplicada); var retenciondeorden = retencionesdeordenvm.Where(x => x.Nombre == item).Single(); retenciondeorden.Importe += importe; } var neto = (decimal)gridViewLiquidacion.GetRowCellValue(rowhandle, "NetoPorPagar"); var kilos = (decimal)gridViewLiquidacion.GetRowCellValue(rowhandle, "Kilos"); var conceptovm = new ConceptoDeOrdenDePagoViewModel() { PesadaId = row.ID, ProductorId = row.PRODUCTORID, KilosAfectados = Convert.ToDecimal(row.Kilos), ImportePorPagar = row.ImportePorPagar, RetencionesAplicadas = retencionesdeconceptovm, NetoPorPagar = neto, }; itemsvm.Add(conceptovm); netodeorden += neto; } var fechadepago = dpFechaPago.Value.Date; var observaciones = txtObservaciones.Text.Trim(); var ordendepagovm = new OrdenDePagoViewModel() { Id = Guid.NewGuid(), NumeroDeOrden = 0, NumeroInternoDeOrden = 0, FechaDePago = fechadepago, RetencionesAplicadas = retencionesdeordenvm, Items = itemsvm, ImporteNeto = netodeorden, Observaciones = observaciones }; _pagosManager.GenerarOrdenDePago(ordendepagovm); }
private OrdenesDePagoDetalleViewModel _GetViewModelOrdenesDePagos(List <Vw_OrdenPago> entities) { var retenciones = new String[] { RetencionTypes.RetencionIIBB, RetencionTypes.RetencionEEAOC, RetencionTypes.RetencionSaludPublica, RetencionTypes.RetencionGADM, RetencionTypes.RetencionGCIAS, RetencionTypes.RetencionRiego }; var retencionesvm = new List <RetencionViewModel>(); foreach (var item in retenciones) { var retencionvm = new RetencionViewModel() { Nombre = item }; retencionesvm.Add(retencionvm); } var items = new List <OrdenDePagoDetalleViewModel>(); foreach (var x in entities) { var aplicadasvm = new List <RetencionAplicadaViewModel>(); foreach (var ret in retenciones) { RetencionAplicadaViewModel aplicadavm; switch (ret) { case RetencionTypes.RetencionIIBB: aplicadavm = new RetencionAplicadaViewModel() { Nombre = RetencionTypes.RetencionIIBB, Importe = x.IIBB.Value }; break; case (RetencionTypes.RetencionEEAOC): aplicadavm = new RetencionAplicadaViewModel() { Nombre = RetencionTypes.RetencionEEAOC, Importe = x.EEAOC.Value }; break; case RetencionTypes.RetencionSaludPublica: aplicadavm = new RetencionAplicadaViewModel() { Nombre = RetencionTypes.RetencionSaludPublica, Importe = x.SaludPublica.Value }; break; case RetencionTypes.RetencionGADM: aplicadavm = new RetencionAplicadaViewModel() { Nombre = RetencionTypes.RetencionGADM, Importe = x.GADM.Value }; break; case RetencionTypes.RetencionGCIAS: aplicadavm = new RetencionAplicadaViewModel() { Nombre = RetencionTypes.RetencionGCIAS, Importe = x.Ganancias.Value }; break; case RetencionTypes.RetencionRiego: aplicadavm = new RetencionAplicadaViewModel() { Nombre = RetencionTypes.RetencionRiego, Importe = x.Riego.Value }; break; default: throw new InvalidOperationException("No se reconoce la retencion asignada: " + ret); } aplicadasvm.Add(aplicadavm); } var ordenvm = new OrdenDePagoDetalleViewModel() { Id = x.OrdenPagoId, ProductorId = x.ProductorId, Fecha = x.Fecha, Productor = x.NOMBRE, FET = x.nrofet, CUIT = x.CUIT, ImportePorPagar = x.Subtotal.Value, RetencionesAplicadas = aplicadasvm, ImporteNeto = x.Neto }; items.Add(ordenvm); } var ordenesvm = new OrdenesDePagoDetalleViewModel() { Retenciones = retencionesvm, Items = items }; return(ordenesvm); }