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)); }
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)); }
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); }
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)); } }