Example #1
0
        public ActionResult Index(ComplementosPagosModel complementosPagosModel, string actionName)
        {
            if (actionName == "Filtrar")
            {
                var dia = DateTime.DaysInMonth(complementosPagosModel.Anio, (int)complementosPagosModel.Mes);

                var fechaInicial = new DateTime(complementosPagosModel.Anio, (int)complementosPagosModel.Mes, 1, 0, 0, 0);
                var fechaFinal   = new DateTime(complementosPagosModel.Anio, (int)complementosPagosModel.Mes, dia, 23, 59, 59);

                complementosPagosModel.ComplementosPago = _logicaFacadeFacturas.Filtrar(fechaInicial, fechaFinal, ObtenerSucursal());
            }
            else if (actionName == "Timbrar")
            {
                var errores = new List <String>();
                foreach (var complementoPago in complementosPagosModel.ComplementosPago.Where(cp => cp.Seleccionado))
                {
                    try
                    {
                        _pagosManager.GenerarComplementoPago(complementoPago.SucursalId, complementoPago.Id, "");
                    }
                    catch (Exception ex)
                    {
                        var complementoPagoInterno = _db.ComplementosPago.Find(complementoPago.Id);
                        errores.Add(String.Format("Error de generaciĆ³n del complemento del receptor {0} con total de montos {1:c}: {2}", complementoPagoInterno.Receptor.RazonSocial, complementoPagoInterno.Pagos.Sum(p => p.Monto), ex.Message));
                    }
                }

                if (errores.Count == 0)
                {
                    return(RedirectToAction("Index"));
                }
                else
                {
                    foreach (var error in errores)
                    {
                        ModelState.AddModelError("", error);
                    }
                }
            }

            return(View(complementosPagosModel));
        }