public ActionResult _PanelOperaciones()
        {
            Usuarios usuario  = db.Usuarios.Where(x => x.Usuario == User.Identity.Name).First();
            Ingresos ingresos = new Ingresos();

            if (User.IsInRole("Admin"))
            {
                ingresos.Clientes = db.GetClientes(null, true, 0).ToList();
                //ingresos.Facturas = db.GetCFDI(null, 0).ToList();
                ingresos.ingresos    = db.GetMonitoreoIngreso(0, null).OrderByDescending(x => x.FechaCreacion).ToList();
                ingresos.Proveedores = db.GetPAC(null, 0).ToList();
                ingresos.Adeudos     = db.GetAdeudosInstalaciones(null, null, 0).ToList();
            }
            else
            {
                ingresos.Clientes = db.GetClientes(null, true, 0).Where(x => x.UsuarioCreacion == usuario.Id).ToList();
                //ingresos.Facturas = db.GetCFDI(null, 0).ToList();
                ingresos.ingresos    = db.GetMonitoreoIngreso(0, null).Where(x => x.UsuarioCreacion == usuario.Id).OrderByDescending(x => x.FechaCreacion).ToList();
                ingresos.Proveedores = db.GetPAC(null, 0).ToList();
                ingresos.Adeudos     = db.GetAdeudosInstalaciones(null, null, 0).ToList();
            }

            ViewBag.FormaPago = db.FormaDePago.ToList();
            return(PartialView(ingresos));
        }
Ejemplo n.º 2
0
        public ActionResult Service(Guid IdCliente)
        {
            List <AdeudosInstalaciones> Adeudos = new List <AdeudosInstalaciones>();
            Usuarios usuario = db.Usuarios.Where(x => x.Usuario == User.Identity.Name).First();

            if (User.IsInRole("Admin"))
            {
                Adeudos = db.GetAdeudosInstalaciones(null, IdCliente, 2).ToList();
            }
            else
            {
                Adeudos = db.GetAdeudosInstalaciones(null, IdCliente, 2).Where(x => x.UsuarioCreacion == usuario.Id).ToList();
            }
            List <MonitoreoIngresos> Temp     = db.GetMonitoreoIngreso(0, null).Where(x => x.Activo == true).ToList();
            List <MonitoreoIngresos> Ingresos = new List <MonitoreoIngresos>();

            foreach (var Adeudo in Adeudos)
            {
                foreach (var Ingreso in Temp)
                {
                    if (Ingreso.IdAdeudo == Adeudo.Id)
                    {
                        Ingresos.Add(Ingreso);
                    }
                }
            }
            return(Json(new { Adeudos = Adeudos.Select(x => new {
                    x.Id,
                    x.IdCliente
                }),
                              Ingresos = Ingresos.Select(x => new {
                    x.IdAdeudo,
                    x.Cargos,
                    x.CargosUSD,
                    x.Comentario,
                    x.MetodoDePago,
                    FechaCreacion = x.FechaCreacion.ToString("MM/dd/yyyy"),
                    x.Moneda,
                    x.TipoCambio,
                    x.UsuarioCreacion
                }) }, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 3
0
        public ActionResult _PanelDashboard() {
            
            List<MonitoreoIngresos> ingresos = new List<MonitoreoIngresos>();
            ViewBag.Mes = DateTime.Now.ToString("MMMM", CultureInfo.CreateSpecificCulture("es-MX"));
            List<string> Meses = new List<string>();
            DateTime InicioMeses = DateTime.Parse("1/01/"+DateTime.Now.Year);
            DateTime FinalMeses = DateTime.Now;
            System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("es-MX");
            for (DateTime date = InicioMeses; date.Date <= FinalMeses.Date; date = date.AddMonths(1))
            {

                Meses.Add(ci.TextInfo.ToTitleCase(date.ToString("MMMM", ci)) + " del " + date.ToString("yyyy", ci));
            }
            ViewBag.Meses = Meses;
            if (User.IsInRole("Admin"))
            {
                ViewBag.Contratados = 5000;
                ViewBag.Emitidos = db.CFDI.Count()+345;
                double Ingresos = (double)db.GetMonitoreoIngreso(0, null).Where(x=>DateTime.Now.Year==x.FechaCreacion.Year&&x.FechaCreacion.Month==DateTime.Now.Month).Sum(x => x.Cargos + (x.CargosUSD * x.TipoCambio));
                double Egresos = (double)db.GetMonitoreoIngreso(0, null).Where(x => DateTime.Now.Year == x.FechaCreacion.Year && x.FechaCreacion.Month == DateTime.Now.Month).Sum(x => x.Abonos + (x.AbonosUSD * x.TipoCambio));
                ViewBag.Ingresos = Ingresos.ToString("C2", CultureInfo.CreateSpecificCulture("es-MX"));
                ViewBag.Egresos = Egresos.ToString("C2", CultureInfo.CreateSpecificCulture("es-MX"));
                ingresos = db.GetMonitoreoIngreso(0, null).Where(x => DateTime.Now.Year == x.FechaCreacion.Year && x.FechaCreacion.Month == DateTime.Now.Month).ToList();
            }
            else
            {
                Usuarios usuario = db.Usuarios.Where(x => x.Usuario == User.Identity.Name).FirstOrDefault();
                ViewBag.Contratados = usuario.Timbres;
                ViewBag.Emitidos = usuario.TimbresUsados;
                double Ingresos = (double)db.GetMonitoreoIngreso(0, null).Where(x=>x.UsuarioCreacion== usuario.Id).Where(x => DateTime.Now.Year == x.FechaCreacion.Year && x.FechaCreacion.Month == DateTime.Now.Month).Sum(x => x.Cargos + (x.CargosUSD * x.TipoCambio));
                double Egresos = (double)db.GetMonitoreoIngreso(0, null).Where(x => x.UsuarioCreacion == usuario.Id).Where(x => DateTime.Now.Year == x.FechaCreacion.Year && x.FechaCreacion.Month == DateTime.Now.Month).Sum(x => x.Abonos + (x.AbonosUSD * x.TipoCambio));
                ViewBag.Ingresos = Ingresos.ToString("C2", CultureInfo.CreateSpecificCulture("es-MX"));
                ViewBag.Egresos = Egresos.ToString("C2", CultureInfo.CreateSpecificCulture("es-MX"));
                ingresos = db.GetMonitoreoIngreso(0, null).Where(x => x.UsuarioCreacion == usuario.Id).Where(x => DateTime.Now.Year == x.FechaCreacion.Year && x.FechaCreacion.Month == DateTime.Now.Month).ToList();
            }
            return View(ingresos);
        }
Ejemplo n.º 4
0
        public ActionResult Facturar(Guid IdFactura)
        {
            try
            {
                List <CFDIPorOperacion> CFDIs = db.CFDIPorOperacion.Where(x => x.IdAdeudosInstalaciones == IdFactura).ToList();
                bool isExist = false;
                foreach (var CFDI in CFDIs)
                {
                    if (db.CFDI.Where(x => x.Id == CFDI.IdCFDI).FirstOrDefault().Cancelado == false)
                    {
                        isExist = true;
                    }
                }
                if (!isExist)
                {
                    List <AdeudosInstalaciones> Adeudos = ListaAdeudos(IdFactura);
                    RVCFDI33.GeneraCFDI         objCfdi = new RVCFDI33.GeneraCFDI();
                    bool   pagado    = true;
                    double Total     = 0;
                    Guid   IdCliente = new Guid();
                    byte[] Logo;
                    string Moneda = "MXN", FormaDePago = "01", TipoCambio = "1", MetodoDePago = "PUE", UsoCFDI = "G03";
                    foreach (var adeudo in Adeudos)
                    {
                        if (adeudo.Pagado == false)
                        {
                            pagado = false;
                        }
                        List <MonitoreoIngresos> Operaciones = db.GetMonitoreoIngreso(0, null).Where(x => x.IdAdeudo == adeudo.Id).OrderBy(x => x.FechaCreacion).ToList();
                        foreach (var Operacion in Operaciones)
                        {
                            double total = (double)(Operacion.Cargos + (Operacion.CargosUSD * Operacion.TipoCambio));
                            Moneda = Operacion.Moneda.Trim();

                            var TC = Operacion.TipoCambio;
                            TipoCambio = TC.Value == 0 || TC == null ? "" : TC.Value.ToString("f2");
                        }
                        FormaDePago  = Operaciones.First().FormaDePago;
                        MetodoDePago = Operaciones.First().MetodoDePago;
                        UsoCFDI      = Operaciones.First().UsoCFDI;
                        Total        = Total + adeudo.Total;
                        IdCliente    = (Guid)adeudo.IdCliente;
                    }
                    if (pagado == true)
                    {
                        GetPAC_Result PAC       = db.GetPAC(Adeudos.First().IdProveedor, 1).First();
                        int           Folio     = 1;
                        var           TempFolio = db.CFDI.Where(x => x.IdProveedor == PAC.Id).Max(x => x.Folio);
                        if (TempFolio != null)
                        {
                            Folio = db.CFDI.Where(x => x.IdProveedor == PAC.Id).Max(x => x.Folio).Value + 1;
                        }
                        string Path        = Server.MapPath("~/"),
                               Certificado = Server.MapPath("~/Certificados/" + PAC.RFC + "/" + PAC.RFC + ".cer"),
                               Llave       = Server.MapPath("~/Certificados/" + PAC.RFC + "/" + PAC.RFC + ".key"),
                               Factura     = Path + "Facturas\\" + PAC.RFC + "\\Facturas";
                        Clientes Clientes  = db.Clientes.Where(x => x.IdCliente == IdCliente).First();
                        Logo = null;
                        if (Logo == null)
                        {
                            Logo = System.IO.File.ReadAllBytes(Server.MapPath("~/Images/Avenzo_Logo_Header.png"));
                        }
                        objCfdi.agregarCertificado(Certificado);
                        objCfdi.agregarComprobante33("B", Folio.ToString(), DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss"), FormaDePago, "", Total / 1.16, 0, Moneda, TipoCambio == "1.00"?"1":TipoCambio, Total, "I", MetodoDePago, "22210", "");
                        objCfdi.agregarEmisor(PAC.RFC.Trim(), PAC.Nombre, PAC.RegimenFiscal.Trim());
                        objCfdi.agregarReceptor(Clientes.RFC, Clientes.Nombres + " " + Clientes.ApellidoPaterno + " " + Clientes.ApellidoMaterno.TrimEnd(), "", "", UsoCFDI);
                        string ConceptoPDF = "", CantidadPDF = "", ValorUnitarioPDF = "", ImportePDF = "", UnidadPDF = "";
                        foreach (var adeudo in Adeudos)
                        {
                            string ClaveProServ = adeudo.ClaveProdServ, NoIdentificacion = "1", ClaveUnidad = adeudo.Unidad, Concepto = adeudo.Concepto;
                            double Cantidad = (double)adeudo.Cantidad, ValorUnitario = (adeudo.Total / 1.16) / Cantidad, Importe = adeudo.Total / 1.16;
                            objCfdi.agregarConcepto(ClaveProServ, NoIdentificacion, Cantidad, ClaveUnidad, "Elemento", Concepto, ValorUnitario, Importe, 0.00);
                            ConceptoPDF      += Concepto + "\n";
                            CantidadPDF      += Cantidad.ToString("f2") + "\n";
                            ValorUnitarioPDF += (ValorUnitario).ToString("f2") + "\n";
                            ImportePDF       += Importe.ToString("f2") + "\n";
                            UnidadPDF        += ClaveUnidad + "\n";
                            objCfdi.agregarImpuestoConceptoTraslado(adeudo.Total / 1.16, "002", "Tasa", 0.160000, adeudo.Total - (adeudo.Total / 1.16));
                        }
                        objCfdi.agregarImpuestos(0, Total - (Total / 1.16));
                        objCfdi.agregarTraslado("002", "Tasa", 0.160000, Total - (Total / 1.16));
                        objCfdi.GeneraXML(Llave, PAC.ContrasenaLlave);
                        string Xml    = objCfdi.Xml.Replace("Sello=\"\"", "Sello=\"" + objCfdi.SelloEmisor + "\"");
                        string Nombre = PAC.RFC + "_" + Folio + "_" + DateTime.Now.Day + DateTime.Now.Month + DateTime.Now.Year;
                        System.IO.File.WriteAllText(Factura + "\\" + Nombre + "_SinTimbrar.xml", Xml);
                        //XmlDocument myXmlDocument = new XmlDocument();
                        objCfdi.TimbrarCfdiArchivo(Factura + "\\" + Nombre + "_SinTimbrar.xml", PAC.Usuario, PAC.Contrasena, "http://generacfdi.com.mx/rvltimbrado/service1.asmx", Factura, Nombre, true);
                        if (objCfdi.MensajeError == "")
                        {
                            GuardarInformacion(objCfdi, Clientes, Adeudos, PAC, Factura, Nombre, Folio, Moneda,
                                               Logo, Total, FormaDePago, MetodoDePago, CantidadPDF, ConceptoPDF, ValorUnitarioPDF, ImportePDF, UnidadPDF);
                            return(Json(new { error = "none", IdFactura = objCfdi.UUID }, JsonRequestBehavior.AllowGet));
                        }
                        else
                        {
                            return(Json(new { error = "Error Al faturar", Message = objCfdi.MensajeError }, JsonRequestBehavior.AllowGet));
                        }
                    }
                    else
                    {
                        return(Json(new { error = "No estan Pagado Todos Los Conceptos" }, JsonRequestBehavior.AllowGet));
                    }
                }
                else
                {
                    return(Json(new { error = "" }, JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception Ex)
            {
                return(Json(new { error = Ex.InnerException, Message = Ex.Message }, JsonRequestBehavior.AllowGet));
            }
        }