Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
            }
        }