public ActionResult _PanelRecibos() { ReciboView model = new ReciboView(); model.moneda = new List <string>(); model.moneda.Add("MXN"); model.moneda.Add("USD"); model.conceptos = new List <ReciboView.Concepto>(); model.mes = new List <string>(); DateTime InicioMeses = DateTime.Now.AddMonths(-6); DateTime FinalMeses = DateTime.Now.AddMonths(6); System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("es-MX"); Usuarios usuario = db.Usuarios.Where(x => x.Usuario == User.Identity.Name).First(); for (DateTime date = InicioMeses; date.Date <= FinalMeses.Date; date = date.AddMonths(1)) { model.mes.Add(ci.TextInfo.ToTitleCase(date.ToString("MMMM", ci)) + " del " + date.ToString("yyyy", ci)); } if (User.IsInRole("Admin")) { model.pac = db.GetPAC(null, 0).ToList(); model.clientes = db.GetClientes(null, true, 0).ToList(); } else { model.pac = db.GetPAC(null, 0).Where(x => x.UsuarioCreacion == usuario.Id).ToList(); model.clientes = db.GetClientes(null, true, 0).Where(x => x.UsuarioCreacion == usuario.Id).ToList(); } return(View(model)); }
public ActionResult Descarga(ReciboView recibo) { byte[] pdf; int count = 0; try { string Nombre = recibo.nombreCompleto; byte[] Logo; string direccion = ""; string RFC = ""; string Mes = recibo.mes.FirstOrDefault(); string server = Server.MapPath("~/Content/Recibos"); Dictionary <string, string> conceptos = new Dictionary <string, string>(); Guid id = recibo.proveedor; GetPAC_Result pac = db.GetPAC(id, 1).First(); if (recibo.mensualidad == "on") { using (ZipFile zip = new ZipFile()) { MemoryStream memory = new MemoryStream(); List <Clientes> clientes = db.GetClientes(null, true, 0).OrderBy(x => x.Colonia).ToList(); foreach (var cliente in clientes) { Nombre = cliente.Nombres + " " + cliente.ApellidoPaterno + " " + cliente.ApellidoMaterno; string calle = cliente.Calle == null || cliente.Calle == "" ? "" : cliente.Calle, noExterior = cliente.NoExterior == null || cliente.NoExterior == "" ? "" : cliente.NoExterior, NoInterior = cliente.NoInterior == null || cliente.NoInterior == "" ? "" : cliente.NoInterior, Colonia = cliente.Colonia == null || cliente.Colonia == "" ? "" : cliente.Colonia; direccion = Colonia + ", " + calle + " " + noExterior + " " + NoInterior + "\n" + cliente.Ciudad + "," + cliente.Estado; RFC = cliente.RFC == null || cliente.RFC == "" ? "" : cliente.RFC; Logo = System.IO.File.ReadAllBytes(Server.MapPath("~/Images/Avenzo_Logo_Header.png")); string cantidad = "1"; string unidad = "1"; System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("es-MX"); DateTime time = DateTime.Now.AddMonths(1); string concepto = "Mensualidad de " + time.ToString("MMMM", ci) + " " + time.ToString("yyyy", ci); Catalogos catalogo = db.Catalogos.Where(x => x.IdCatalogo == cliente.TipoAfilacion).FirstOrDefault(); string precio = catalogo == null?"0.00":catalogo.Valor.Value.ToString("f2"); conceptos["cantidad"] = float.Parse(cantidad).ToString("f2") + "\n"; conceptos["unidad"] = unidad + "\n"; conceptos["descripcion"] = concepto + "\n"; conceptos["valorUnitario"] = "$ " + (float.Parse(precio) / 1.16).ToString("f2") + "\n"; conceptos["importe"] = "$ " + (float.Parse(precio) / 1.16).ToString("f2") + "\n"; float Total = float.Parse(precio); pdf = PDF.CrearRecibo(Nombre, RFC, conceptos, direccion, server, Total, true, Logo, "MXN", Mes); MemoryStream tempPDF = new MemoryStream(pdf); zip.AddEntry(count + "_Recibo_" + Nombre.Replace(" ", "_") + ".pdf", tempPDF); count++; } zip.Save(memory); memory.Seek(0, SeekOrigin.Begin); return(File(memory, "application/zip", "Recibos_" + ".zip")); } } else { Guid IdCliente = recibo.id; List <Clientes> Clientes = db.GetClientes(IdCliente, true, 1).ToList(); if (Clientes.Count > 0) { string calle = Clientes.First().Calle == null || Clientes.First().Calle == "" ? "" : Clientes.First().Calle, noExterior = Clientes.First().NoExterior == null || Clientes.First().NoExterior == "" ? "" : Clientes.First().NoExterior, NoInterior = Clientes.First().NoInterior == null || Clientes.First().NoInterior == "" ? "" : Clientes.First().NoInterior, Colonia = Clientes.First().Colonia == null || Clientes.First().Colonia == "" ? "" : Clientes.First().Colonia; direccion = Colonia + "," + calle + " " + noExterior + " " + NoInterior + "\nTelefono: " + Clientes.First().Telefono; RFC = Clientes.First().RFC == null || Clientes.First().RFC == "" ? "" : Clientes.First().RFC; if (User.IsInRole("Admin")) { Guid Id = recibo.proveedor; GetPAC_Result PAC = db.GetPAC(Id, 1).First(); Logo = null; if (Logo == null) { Logo = System.IO.File.ReadAllBytes(Server.MapPath("~/Images/Avenzo_Logo_Header.png")); } } else { GetPAC_Result PAC = db.GetPAC(Clientes.First().IdProveedor, 1).First(); Logo = null; if (Logo == null) { Logo = System.IO.File.ReadAllBytes(Server.MapPath("~/Images/Avenzo_Logo_Header.png")); } } } else { Logo = System.IO.File.ReadAllBytes(Server.MapPath("~/Images/Avenzo_Logo_Header.png")); } float Total = 0; conceptos["cantidad"] = ""; conceptos["unidad"] = ""; conceptos["descripcion"] = ""; conceptos["valorUnitario"] = ""; conceptos["importe"] = ""; DateTime time = DateTime.Now; foreach (var concepto in recibo.conceptos) { string cantidad = concepto.cantidad.ToString("f2"); string unidad = concepto.unidad; string descripcion = concepto.descripcion; string precio = concepto.precio.ToString("f2"); conceptos["cantidad"] = conceptos["cantidad"] + "" + float.Parse(cantidad).ToString("f2") + "\n"; conceptos["unidad"] = conceptos["unidad"] + "" + unidad + "\n"; conceptos["descripcion"] = conceptos["descripcion"] + descripcion + "\n"; conceptos["valorUnitario"] = conceptos["valorUnitario"] + "$ " + (float.Parse(precio) / 1.16).ToString("f2") + "\n"; conceptos["importe"] = conceptos["importe"] + "$ " + (float.Parse(precio) / 1.16).ToString("f2") + "\n"; Total = Total + float.Parse(precio); } bool leyenda = recibo.leyenda == "on" ? true : false; string Moneda = recibo.moneda.First();; pdf = PDF.CrearRecibo(Nombre, RFC, conceptos, direccion, server, Total, leyenda, Logo, Moneda, ""); return(File(pdf, "application/pdf", "RECIBO.PDF")); } } catch (Exception ex) { return(Json(new { error = ex.InnerException + ", Count:" + count, Message = ex.Message }, JsonRequestBehavior.AllowGet)); } }