public ActionResult Guardar(OrdenDePagoViewModel ordenPagoViewModel) { Mapper.CreateMap <OrdenDePagoViewModel, OrdenDePago>(); var ordenDePago = Mapper.Map <OrdenDePagoViewModel, OrdenDePago>(ordenPagoViewModel); var result = ordenPagoViewModel.Id > 0 ? ordenComponent.Actualizar(ordenDePago) : ordenComponent.Registrar(ordenDePago); if (!result) { ViewBag.Mensaje = "Ocurrio un error al guardar informacion de orden de pago"; return(View("~/Views/Shared/_Mensajes.cshtml")); } return(Redirect("~/")); }
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); }
public void GenerarOrdenDePago(OrdenDePagoViewModel ordenvm) { var ordenid = Guid.NewGuid(); var idspesadasdeorden = new List <Guid>(); //var conceptosdepesadas = new Dictionary<Guid, Guid>(); using (var context = new CooperativaProduccionEntities()) { var conceptos = new List <ConceptoDeOrdenDePago>(); foreach (var item in ordenvm.Items) { var concepto = new ConceptoDeOrdenDePago(); concepto.Id = Guid.NewGuid(); concepto.PesadaId = item.PesadaId; concepto.ProductorId = item.ProductorId; concepto.Kilos = item.KilosAfectados; concepto.Subtotal = item.ImportePorPagar; var retencionIIBB = item.RetencionesAplicadas.Where(x => x.Nombre == RetencionTypes.RetencionIIBB).Single(); var retencionEEAOC = item.RetencionesAplicadas.Where(x => x.Nombre == RetencionTypes.RetencionEEAOC).Single(); var retencionSaludPublica = item.RetencionesAplicadas.Where(x => x.Nombre == RetencionTypes.RetencionSaludPublica).Single(); var retencionGADM = item.RetencionesAplicadas.Where(x => x.Nombre == RetencionTypes.RetencionGADM).Single(); var retencionGCIAS = item.RetencionesAplicadas.Where(x => x.Nombre == RetencionTypes.RetencionGCIAS).Single(); var retencionRiego = item.RetencionesAplicadas.Where(x => x.Nombre == RetencionTypes.RetencionRiego).Single(); concepto.RetencionIIBB = retencionIIBB.Importe; concepto.RetencionEEAOC = retencionEEAOC.Importe; concepto.RetencionSaludPublica = retencionSaludPublica.Importe; concepto.RetencionGADM = retencionGADM.Importe; concepto.RetencionGanancias = retencionGCIAS.Importe; concepto.RetencionRiego = retencionRiego.Importe; concepto.Neto = item.NetoPorPagar; idspesadasdeorden.Add(item.PesadaId); //conceptosdepesadas.Add(concepto.Id, item.PesadaId); conceptos.Add(concepto); } var numerodeorden = this.GetNumeroDeOrden(); var numerointernodeorden = this.GetNumeroInternoDeOrden(); var orden = new OrdenPago(); orden.Id = ordenid; orden.NumOrdenPago = numerodeorden; orden.NumIntOrdenPago = numerointernodeorden; orden.Fecha = ordenvm.FechaDePago; orden.Detalle = ordenvm.Observaciones; var retenciondeordenIIBB = ordenvm.RetencionesAplicadas.Where(x => x.Nombre == RetencionTypes.RetencionIIBB).Single(); var retenciondeordenEEAOC = ordenvm.RetencionesAplicadas.Where(x => x.Nombre == RetencionTypes.RetencionEEAOC).Single(); var retenciondeordenSaludPublica = ordenvm.RetencionesAplicadas.Where(x => x.Nombre == RetencionTypes.RetencionSaludPublica).Single(); var retenciondeordenGADM = ordenvm.RetencionesAplicadas.Where(x => x.Nombre == RetencionTypes.RetencionGADM).Single(); var retenciondeordenGCIAS = ordenvm.RetencionesAplicadas.Where(x => x.Nombre == RetencionTypes.RetencionGCIAS).Single(); var retenciondeordenRiego = ordenvm.RetencionesAplicadas.Where(x => x.Nombre == RetencionTypes.RetencionRiego).Single(); orden.IIBB = retenciondeordenIIBB.Importe; orden.EEAOC = retenciondeordenEEAOC.Importe; orden.SaludPublica = retenciondeordenSaludPublica.Importe; orden.GADM = retenciondeordenGADM.Importe; orden.Ganancias = retenciondeordenGCIAS.Importe; orden.Riego = retenciondeordenRiego.Importe; orden.ConceptoDeOrdenDePago = conceptos; orden.Neto = ordenvm.ImporteNeto; context.OrdenPago.Add(orden); context.SaveChanges(); } // UNA LIQUIDACION PUEDE TENER MUCHAS ORDENES //using (var context = new CooperativaProduccionEntities()) //{ // var liquidaciones = context.Pesada // .Where(x => idspesadasdeorden.ContainsKey(x.Id)) // //.Where(x => conceptosdepesadas.ContainsKey(x.Id)) // .ToList(); // // foreach (var item in liquidaciones) // { // item.OrdenPagoId = ordenid; // //item.OrdenPagoId = conceptosdepesadas[item.Id]; // // context.Entry(item).State = System.Data.Entity.EntityState.Modified; // } // // context.SaveChanges(); //} }