//Obtener el agente que se ajusta de a partir del monto del documento public DET_AGENTECA detAgenteLimite(List <DET_AGENTECA> lag, decimal monto, int step, FLUJO flujo)//MGC 19-10-2018 Cambio a detonador { List <DET_AGENTECA> lr = new List <DET_AGENTECA>(); //MGC 19-10-2018 Cambio a detonador if (lag.Count == 0 & step == 0) { WFARTHAEntities db = new WFARTHAEntities(); //Obtener el usuario al que se le creo la orden DET_AGENTECC dc = new DET_AGENTECC(); dc = db.DET_AGENTECC.Where(dtc => dtc.VERSION == flujo.RUTA_VERSION && dtc.USUARIOC_ID == flujo.USUARIOA_ID && dtc.ID_RUTA_AGENTE == flujo.ID_RUTA_A).FirstOrDefault(); DET_AGENTECA dt = new DET_AGENTECA(); dt.ID_RUTA_AGENTE = flujo.ID_RUTA_A; dt.VERSION = Convert.ToInt32(flujo.RUTA_VERSION); dt.STEP_FASE = 0; dt.STEP_ACCION = 0; dt.LIM_SUP = Convert.ToDecimal(99999999999.00); dt.AGENTE_SIG = dc.USUARIOA_ID; lr.Add(dt); } //MGC 19-10-2018 Cambio a detonador else { //Funcionamiento en cadena foreach (DET_AGENTECA ag in lag) { if (monto < ag.LIM_SUP) { lr.Add(ag); } } } //Se obtuvieron los registros que pueden validar el monto DET_AGENTECA rv = new DET_AGENTECA(); rv = lr.OrderBy(ll => ll.LIM_SUP).FirstOrDefault(); return(rv); }
public string getURLPortal() { WFARTHAEntities db = new WFARTHAEntities(); string url = ""; try { url = db.APPSETTINGs.Where(app => app.NOMBRE == "urlPortal" && app.ACTIVO == true).FirstOrDefault().VALUE.ToString(); } catch (Exception e) { } if (url == null | url == "") { url = "http://localhost:60621/Correos/Index/"; } return(url); }
public UsuarioC1() { WFARTHAEntities data = new WFARTHAEntities(); usersLista = new List <SelectListItem>(); sociedadLista = new List <SelectListItem>(); var qUsuario = from u in data.USUARIOs where (u.ACTIVO == true) select u; var qSociedad = from s in data.SOCIEDADs where (s.ACTIVO == true) select s; var listData = qUsuario.ToList(); var SociedadData = qSociedad.ToList(); foreach (var Data in listData) { string nombre = string.Format("{0} - {1} {2} {3}", Data.ID, Data.NOMBRE, Data.APELLIDO_P, Data.APELLIDO_M); usersLista.Add(new SelectListItem() { Value = Data.ID.ToString(), Text = nombre, }); } foreach (var Data in SociedadData) { string sociedad = string.Format("{0} - {1}", Data.BUKRS, Data.BUTXT); sociedadLista.Add(new SelectListItem() { Value = Data.BUKRS.ToString(), Text = sociedad, }); } }
public ProyectoSociedad() { WFARTHAEntities data = new WFARTHAEntities(); proyectoLista = new List <SelectListItem>(); sociedadLista = new List <SelectListItem>(); var qProyecto = from u in data.PROYECTOes select u; var qSociedad = from s in data.SOCIEDADs where (s.ACTIVO == true) select s; var listData = qProyecto.ToList(); var SociedadData = qSociedad.ToList(); foreach (var Data in listData) { string proyecto = string.Format("{0} - {1}", Data.ID_PSPNR, Data.NOMBRE); proyectoLista.Add(new SelectListItem() { Value = Data.ID_PSPNR.ToString(), Text = proyecto, }); } foreach (var Data in SociedadData) { string sociedad = string.Format("{0} - {1}", Data.BUKRS, Data.BUTXT); sociedadLista.Add(new SelectListItem() { Value = Data.BUKRS.ToString(), Text = sociedad, }); } }
public static void ObtenerTextos(WFARTHAEntities db, int pagina_id_textos, string user_id, ControllerBase controller) { var user = ObtenerUsuario(db, user_id); controller.ViewBag.textos = db.TEXTOes.Where(a => (a.PAGINA_ID.Equals(pagina_id_textos) || a.PAGINA_ID.Equals(0)) && a.SPRAS_ID.Equals(user.SPRAS_ID)).ToList(); }
public static string ObtenerSprasId(WFARTHAEntities db, string user_id) { return(db.USUARIOs.Where(a => a.ID.Equals(user_id)).FirstOrDefault().SPRAS_ID); }
public static USUARIO ObtenerUsuario(WFARTHAEntities db, string user_id) { return(db.USUARIOs.Where(a => a.ID.Equals(user_id)).FirstOrDefault()); }
public ActionResult Index(string id) { using (WFARTHAEntities db = new WFARTHAEntities()) { int pagina = 101; //ID EN BASE DE DATOS string u = User.Identity.Name; ////if (pais != null) //// Session["pais"] = pais; //string u = "admin"; var user = db.USUARIOs.Where(a => a.ID.Equals(u)).FirstOrDefault(); ViewBag.permisos = db.PAGINAVs.Where(a => a.ID.Equals(user.ID)).ToList(); ViewBag.carpetas = db.CARPETAVs.Where(a => a.USUARIO_ID.Equals(user.ID)).ToList(); ViewBag.usuario = user; ViewBag.returnUrl = Request.Url.PathAndQuery;; ViewBag.rol = user.PUESTO.PUESTOTs.Where(a => a.SPRAS_ID.Equals(user.SPRAS_ID)).FirstOrDefault().TXT50; ViewBag.Title = db.PAGINAs.Where(a => a.ID.Equals(pagina)).FirstOrDefault().PAGINATs.Where(b => b.SPRAS_ID.Equals(user.SPRAS_ID)).FirstOrDefault().TXT50; ViewBag.warnings = db.WARNINGVs.Where(a => (a.PAGINA_ID.Equals(pagina) || a.PAGINA_ID.Equals(0)) && a.SPRAS_ID.Equals(user.SPRAS_ID)).ToList(); ViewBag.textos = db.TEXTOes.Where(a => (a.PAGINA_ID.Equals(pagina) || a.PAGINA_ID.Equals(0)) && a.SPRAS_ID.Equals(user.SPRAS_ID)).ToList(); try { string p = Session["pr"].ToString(); ViewBag.PrSl = p; } catch { //ViewBag.pais = "mx.png"; //return RedirectToAction("Proyectos", "Home", new { returnUrl = Request.Url.AbsolutePath }); } Session["spras"] = user.SPRAS_ID; Session["pr"] = null; //FRT06112018 Se agrega esta linea para poder ingresar nuevamente a la pantalla de proyectos Session["Edit"] = 0; //FRT08112018 Se agrega esta linea para poder ingresar nuevamente a la pantalla de proyectos Session["create"] = 0; //FRT14112018 Se agrega esta linea para poder ingresar nuevamente a la pantalla de proyectos try //Mensaje de documento creado { string p = Session["NUM_DOC"].ToString(); ViewBag.NUM_DOC = p; Session["NUM_DOC"] = null; } catch { ViewBag.NUM_DOC = ""; } try//Mensaje de documento creado { string error_files = Session["ERROR_FILES"].ToString(); ViewBag.ERROR_FILES = error_files; Session["ERROR_FILES"] = null; } catch { ViewBag.ERROR_FILES = ""; } } string us = ""; DateTime fecha = DateTime.Now.Date; List <WFARTHA.Entities.DELEGAR> del = db.DELEGARs.Where(a => a.USUARIOD_ID.Equals(User.Identity.Name) & a.FECHAI <= fecha & a.FECHAF >= fecha & a.ACTIVO == true).ToList(); if (del.Count > 0) { List <USUARIO> users = new List <USUARIO>(); foreach (DELEGAR de in del) { users.Add(de.USUARIO); } users.Add(ViewBag.usuario); ViewBag.delegados = users.ToList(); if (id != null) { us = id; } else { us = User.Identity.Name; } ViewBag.usuariod = us; } else { us = User.Identity.Name; } //MGC Cancelar preliminar //MGC 26-10-2018 Modificación a borrador obtener todas las solicitudes, excepto el borrador a.ESTATUS != "B" //var dOCUMENTOes = db.DOCUMENTOes.Where(a => a.USUARIOC_ID.Equals(us) | a.USUARIOD_ID.Equals(us)).Include(d => d.TSOL).Include(d => d.USUARIO).Include(d => d.SOCIEDAD).Include(d => d.DOCUMENTOPREs).ToList(); //var dOCUMENTOes = db.DOCUMENTOes.Where(a => (a.USUARIOC_ID.Equals(us) | a.USUARIOD_ID.Equals(us)) & a.ESTATUS != "B").Include(d => d.TSOL).Include(d => d.USUARIO).Include(d => d.SOCIEDAD).Include(d => d.DOCUMENTOPREs).ToList(); //MGC 26-10-2018 Modificación a borrador obtener todas las solicitudes, excepto las solicitudes canceladas a.estatus_c != "C" o contabilizadas a.ESTATUS != "A" var dOCUMENTOes = db.DOCUMENTOes.Where(a => (a.USUARIOC_ID.Equals(us) | a.USUARIOD_ID.Equals(us)) & (a.ESTATUS != "A" & a.ESTATUS_C != "C")).Include(d => d.TSOL).Include(d => d.USUARIO).Include(d => d.SOCIEDAD).Include(d => d.DOCUMENTOPREs).ToList(); //var dOCUMENTOVs = db.DOCUMENTOVs.Where(a => a.USUARIOA_ID.Equals(us)).ToList(); var dOCUMENTOVs = db.DOCUMENTOVs.Where(a => a.USUARIOA_ID.Equals(us)).ToList(); var tsol = db.TSOLs.ToList(); foreach (DOCUMENTOV v in dOCUMENTOVs) { DOCUMENTO d = new DOCUMENTO(); var ppd = d.GetType().GetProperties(); var ppv = v.GetType().GetProperties(); foreach (var pv in ppv) { foreach (var pd in ppd) { if (pd.Name == pv.Name) { pd.SetValue(d, pv.GetValue(v)); break; } } } d.TSOL = tsol.Where(a => a.ID.Equals(d.TSOL_ID)).FirstOrDefault(); //d.ESTADO = db.STATES.Where(a => a.ID.Equals(v.ESTADO)).FirstOrDefault().NAME; //d.CIUDAD = db.CITIES.Where(a => a.ID.Equals(v.CIUDAD)).FirstOrDefault().NAME; //dOCUMENTOes.Add(d); d.FLUJOes = db.FLUJOes.Where(a => a.NUM_DOC.Equals(d.NUM_DOC)).ToList(); d.DOCUMENTOPREs = db.DOCUMENTOPREs.Where(docpr => docpr.NUM_DOC.Equals(d.NUM_DOC)).ToList(); dOCUMENTOes.Add(d); } dOCUMENTOes = dOCUMENTOes.Distinct(new DocumentoComparer()).ToList(); dOCUMENTOes = dOCUMENTOes.OrderByDescending(a => a.FECHAC).OrderByDescending(a => a.NUM_DOC).ToList(); ViewBag.Proveedores = db.PROVEEDORs.ToList(); //ViewBag.Cuentas = db.CUENTAs.ToList();//MGC 12092018 //ViewBag.DOCF = db.DOCUMENTOFs.ToList();//MGC 12092018 //jemo inicio 4/07/2018 //ViewBag.imgnoticia = db.NOTICIAs.Where(x => x.FECHAI <= DateTime.Now && x.FECHAF >= DateTime.Now && x.ACTIVO == true).Select(x => x.PATH).FirstOrDefault();//MGC 12092018 return(View(dOCUMENTOes)); }
//[OutputCache(NoStore = true, Duration = 0, VaryByParam = "None")] public async Task <ActionResult> Login(LoginViewModel model, string returnUrl) { //if (!ModelState.IsValid) //{ // return View(model); //} //// No cuenta los errores de inicio de sesión para el bloqueo de la cuenta //// Para permitir que los errores de contraseña desencadenen el bloqueo de la cuenta, cambie a shouldLockout: true //var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false); ////CookieAuthenticationProvider //switch (result) //{ // case SignInStatus.Success: // return RedirectToLocal(returnUrl); // case SignInStatus.LockedOut: // return View("Lockout"); // case SignInStatus.RequiresVerification: // return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe }); // case SignInStatus.Failure: // default: // ModelState.AddModelError("", "Intento de inicio de sesión no válido."); // return View(model); //} if (!ModelState.IsValid) { return(View(model)); } USUARIO user = new USUARIO(); user.ID = model.ID; user.PASS = model.Password; Cryptography c = new Cryptography(); string pass = c.Encrypt(user.PASS); using (WFARTHAEntities db = new WFARTHAEntities()) { user = db.USUARIOs.Where(a => a.ID.Equals(user.ID) && a.PASS.Equals(pass)).FirstOrDefault(); } //El usuario se enontro en la bade de datos if (user != null) { FormsAuthentication.SetAuthCookie(model.ID, false); //var authTicket = new FormsAuthenticationTicket(1, user.ID, DateTime.Now, DateTime.Now.AddMinutes(20), false, user.MIEMBROS.FirstOrDefault().ROL.NOMBRE); var authTicket = new FormsAuthenticationTicket(1, user.ID, DateTime.Now, DateTime.Now.AddDays(1), false, "Administrador"); string encryptedTicket = FormsAuthentication.Encrypt(authTicket); var authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); HttpContext.Response.Cookies.Add(authCookie); if (returnUrl != null) { return(Redirect(returnUrl)); } return(RedirectToAction("Index", "Home")); } else { ModelState.AddModelError("", "Usuario/contraseña incorrecta."); return(View(model)); } }
//LEJGG 12-12-2018 public string procesacoc(decimal num_doc) //MGC 29-10-2018 Configuración de estatus { bool nextSol = false; ////MGC 21-11-2018 Validar si el creador y el solicitante es el mismo usuario string correcto = String.Empty; WFARTHAEntities db = new WFARTHAEntities(); FLUJO actual = new FLUJO(); string recurrente = ""; bool emails = false; //MGC 08-10-2018 Obtener los datos para el correo string emailsto = ""; //MGC 09-10-2018 Envío de correos if (true) //---------------------------NUEVO REGISTRO { DOCUMENTO d = db.DOCUMENTOes.Find(num_doc); //actual = db.FLUJOes.Where(fl => fl.NUM_DOC == num_doc).FirstOrDefault();//MGC 05-10-2018 Modificación para work flow al ser editada actual = db.FLUJOes.Where(a => a.NUM_DOC.Equals(d.NUM_DOC)).OrderByDescending(x => x.POS).FirstOrDefault();//MGC 05-10-2018 Modificación para work flow al ser editada //MGC 08-10-2018 Obtener los datos para el correo WORKFV wf = db.WORKFHs.Where(a => a.ID == actual.WORKF_ID).FirstOrDefault().WORKFVs.OrderByDescending(a => a.VERSION).FirstOrDefault(); WORKFP wp = wf.WORKFPs.Where(a => a.ID.Equals(actual.WORKF_ID) & a.VERSION.Equals(actual.WF_VERSION) & a.POS.Equals(actual.WF_POS)).OrderBy(a => a.POS).FirstOrDefault(); string email = ""; //MGC 08-10-2018 Obtener el nombre del cliente email = wp.EMAIL; //MGC 08-10-2018 Obtener el nombre del cliente if (email == "X") { emails = true; } int step = 0; if (actual.STEP_AUTO == 0) { //step = Convert.ToInt32(actual.STEP_AUTO) + 1; step = Convert.ToInt32(actual.STEP_AUTO);//MGC 19-10-2018 Cambio a detonador } List <DET_AGENTECA> dap = db.DET_AGENTECA.Where(a => a.VERSION == actual.RUTA_VERSION && a.ID_RUTA_AGENTE == actual.ID_RUTA_A && a.STEP_FASE == step).OrderByDescending(a => a.VERSION).ToList(); DET_AGENTECA dah = new DET_AGENTECA(); dah = detAgenteLimite(dap, Convert.ToDecimal(d.MONTO_DOC_MD), step, actual);//MGC 19-10-2018 Cambio a detonador WORKFP paso_a = db.WORKFPs.Where(a => a.ID.Equals(actual.WORKF_ID) & a.VERSION.Equals(actual.WF_VERSION) & a.POS.Equals(actual.WF_POS)).FirstOrDefault(); int next_step_a = 0; if (paso_a.NEXT_STEP != null) { next_step_a = (int)paso_a.NEXT_STEP; } WORKFP next = new WORKFP(); if (recurrente != "X") { next = db.WORKFPs.Where(a => a.ID.Equals(actual.WORKF_ID) & a.VERSION.Equals(actual.WF_VERSION) & a.POS == next_step_a).FirstOrDefault(); } if (next.NEXT_STEP.Equals(99))//--------FIN DEL WORKFLOW { d.ESTATUS_WF = "A"; if (paso_a.EMAIL != null) { if (paso_a.EMAIL.Equals("X")) { correcto = "2"; } } } else { //DOCUMENTO d = db.DOCUMENTOes.Find(actual.NUM_DOC); FLUJO nuevo = new FLUJO(); nuevo.WORKF_ID = next.ID; nuevo.WF_VERSION = next.VERSION; nuevo.WF_POS = next.POS; nuevo.NUM_DOC = actual.NUM_DOC; nuevo.POS = actual.POS + 1; //Agregar autorización MGC nuevo.ID_RUTA_A = actual.ID_RUTA_A; nuevo.RUTA_VERSION = actual.RUTA_VERSION; //MGC 11-12-2018 Agregar Contabilizador 0-----------------> nuevo.VERSIONC1 = actual.VERSIONC1; nuevo.VERSIONC2 = actual.VERSIONC2; //MGC 11-12-2018 Agregar Contabilizador 0-----------------< if (next.ACCION.TIPO == "E") { nuevo.USUARIOA_ID = null; nuevo.DETPOS = 0; nuevo.DETVER = 0; } else { if (recurrente != "X") { //MGC 12-11-2018 Se guarda con normalidad FLUJO detA = determinaAgenteI(d, actual.USUARIOA_ID, actual.USUARIOD_ID, 0, dah, step, actual);//MGC 19-10-2018 Cambio a detonador nuevo.USUARIOA_ID = detA.USUARIOA_ID; nuevo.USUARIOD_ID = nuevo.USUARIOA_ID; nuevo.STEP_AUTO = detA.STEP_AUTO; //MGC 12-11-2018 Se obtiene el back up DateTime fecha = DateTime.Now.Date; DELEGAR del = db.DELEGARs.Where(a => a.USUARIO_ID.Equals(nuevo.USUARIOD_ID) & a.FECHAI <= fecha & a.FECHAF >= fecha & a.ACTIVO == true).FirstOrDefault(); if (del != null) { nuevo.USUARIOA_ID = del.USUARIOD_ID; } else { nuevo.USUARIOA_ID = nuevo.USUARIOD_ID; } nuevo.DETPOS = detA.DETPOS; nuevo.DETVER = dah.VERSION; //MGC 09-10-2018 Envío de correos if (emails) { emails = true; //MGC 09-10-2018 Envío de correos //Obtener el email del creador string emailc = ""; emailc = db.USUARIOs.Where(us => us.ID == d.USUARIOC_ID).FirstOrDefault().EMAIL; emailsto = emailc; emailc = ""; //Obtener el usuario aprobador emailc = db.USUARIOs.Where(us => us.ID == nuevo.USUARIOA_ID).FirstOrDefault().EMAIL; emailsto += "," + emailc; //Obtener el usuario del siguiente aprobador } } else { nuevo.USUARIOA_ID = null; nuevo.DETPOS = 0; nuevo.DETVER = 0; } } nuevo.ESTATUS = "P"; nuevo.FECHAC = DateTime.Now; nuevo.FECHAM = DateTime.Now; db.FLUJOes.Add(nuevo); db.SaveChanges();//MGC 03-12-2018 Loop para firmas y obtener el más actual if (paso_a.EMAIL != null) { if (paso_a.EMAIL.Equals("X")) { correcto = "1"; } } d.ESTATUS_WF = "P"; d.ESTATUS = "F"; db.Entry(d).State = EntityState.Modified; db.SaveChanges();//MGC 03-12-2018 Loop para firmas y obtener el más actual DOCUMENTO dmod = db.DOCUMENTOes.Find(num_doc); dmod.ESTATUS_WF = "P"; dmod.ESTATUS = "F"; dmod.ESTATUS_SAP = null; dmod.ESTATUS_PRE = "G"; db.Entry(dmod).State = EntityState.Modified; db.SaveChanges(); //MGC 03-12-2018 Loop para firmas y obtener el más actual //Actualizar el actual actual.FECHAM = DateTime.Now; db.Entry(actual).State = EntityState.Modified; db.SaveChanges(); //MGC 21-11-2018 Validar si el creador y el solicitante es el mismo usuario--------------------------------------------------> if (d.USUARIOC_ID == d.USUARIOD_ID) { nextSol = true; } //MGC 21-11-2018 Validar si el creador y el solicitante es el mismo usuario--------------------------------------------------< //MGC 30-10-2018 Agregar mensaje a log de modificación try { DOCUMENTOLOG dl = new DOCUMENTOLOG(); dl.NUM_DOC = d.NUM_DOC; dl.TYPE_LINE = "M"; dl.TYPE = "S"; dl.MESSAGE = "Comienza el Proceso de Aprobación"; dl.FECHA = DateTime.Now; //db.DOCUMENTOLOGs.Add(dl);//MGC 21-11-2018 Validar si el creador y el solicitante es el mismo usuario //db.SaveChanges();//MGC 21-11-2018 Validar si el creador y el solicitante es el mismo usuario } catch (Exception e) { } //MGC 30-10-2018 Agregar mensaje a log de modificación //MGC 16-10-2018 Eliminar msg deleteMesg(d.NUM_DOC); } } //MGC 08-10-2018 Obtener los datos para el correo if (emails) { //Obtener el directorio desde la configuración //MGC 08-10-2018 Obtener los datos para el correo comentar provisional Email em = new Email(); string UrlDirectory = getURLPortal(); //string image = Server.MapPath("~/images/artha_logo.jpg"); string image = System.Reflection.Assembly.GetExecutingAssembly().Location; string page = "Index"; try { //MGC 11-10-2018 No enviar correos em.enviaMailC(num_doc, true, "ES", UrlDirectory, page, image, emailsto); } catch (Exception) { } } //MGC 21-11-2018 Validar si el creador y el solicitante es el mismo usuario--------------------------------------------------> //MGC 21-11-2018 correr el siguiente flujo cuando el creador y solicitante son el mismo usuario if (nextSol) { //Obtener el documento DOCUMENTO _doc = db.DOCUMENTOes.Find(num_doc); //Obtener el último flujo registrado FLUJO fa = new FLUJO(); fa = db.FLUJOes.Where(a => a.NUM_DOC.Equals(_doc.NUM_DOC)).OrderByDescending(a => a.POS).FirstOrDefault(); //Obtener las acciones FLUJO f = db.FLUJOes.Where(a => a.NUM_DOC.Equals(_doc.NUM_DOC) & a.ESTATUS.Equals("P")).FirstOrDefault(); //Hacer las modificaciones necesarias el flujo para auto-aprobar if (_doc.ESTATUS_C != "C") { if (f != null) { string accion = ""; accion = db.WORKFPs.Where(a => a.ID.Equals(f.WORKF_ID) & a.POS.Equals(f.WF_POS) & a.VERSION.Equals(f.WF_VERSION)).FirstOrDefault().ACCION.TIPO; if (accion == "A") { //Modificación del flujo, simular fa.ESTATUS = "A"; fa.COMENTARIO = "Auto Aprobado"; Flujosprocesa(fa, _doc.USUARIOC_ID); } } } } //MGC 21-11-2018 Validar si el creador y el solicitante es el mismo usuario--------------------------------------------------< return(correcto); }
public ActionResult Procesa(FLUJO f) { ProcesaFlujo pf = new ProcesaFlujo(); DOCUMENTO d = db.DOCUMENTOes.Find(f.NUM_DOC); FLUJO actual = db.FLUJOes.Where(a => a.NUM_DOC.Equals(f.NUM_DOC)).OrderByDescending(a => a.POS).FirstOrDefault(); //MGC 12092018 //List<TS_FORM> tts = db.TS_FORM.Where(a => a.BUKRS_ID.Equals(d.SOCIEDAD_ID) & a.LAND_ID.Equals(d.PAIS_ID)).ToList(); //bool c = false; //if (actual.WORKFP.ACCION.TIPO == "R") //{ // List<DOCUMENTOT> ddt = new List<DOCUMENTOT>(); // foreach (TS_FORM ts in tts) // { // DOCUMENTOT dts = new DOCUMENTOT(); // dts.NUM_DOC = f.NUM_DOC; // dts.TSFORM_ID = ts.POS; // try // { // string temp = Request.Form["chk-" + ts.POS].ToString(); // if (temp == "on") // dts.CHECKS = true; // c = true; // } // catch // { // dts.CHECKS = false; // } // int tt = db.DOCUMENTOTS.Where(a => a.NUM_DOC.Equals(f.NUM_DOC) & a.TSFORM_ID == ts.POS).Count(); // if (tt == 0) // ddt.Add(dts); // else // db.Entry(dts).State = EntityState.Modified; // } // if (ddt.Count > 0) // db.DOCUMENTOTS.AddRange(ddt); // db.SaveChanges(); // db.Dispose(); //} FLUJO flujo = actual; flujo.ESTATUS = f.ESTATUS; flujo.FECHAM = DateTime.Now; flujo.COMENTARIO = f.COMENTARIO; flujo.USUARIOA_ID = User.Identity.Name; flujo.ID_RUTA_A = f.ID_RUTA_A; flujo.RUTA_VERSION = f.RUTA_VERSION; flujo.STEP_AUTO = f.STEP_AUTO; //MGC 11-12-2018 Agregar Contabilizador 0-----------------> flujo.VERSIONC1 = actual.VERSIONC1; flujo.VERSIONC2 = actual.VERSIONC2; //MGC 11-12-2018 Agregar Contabilizador 0-----------------< flujo.FECHACON = f.FECHACON; //MGC-14-12-2018 Modificación fechacon //Agregar funcionalidad, para checar si el próximo es contabilización, y si es contabilización //checar que el usuario contabilizador esté asignado a la sociedad ContabilizarRes resc = new ContabilizarRes(); if (d.ESTATUS == "F" && (d.ESTATUS_WF.Equals("P") | d.ESTATUS_WF.Equals("S"))) { //MGC 30-10-2018 Modificación estatus, Pendiente por aprobadores *@ if (d.ESTATUS_PRE == "G") { //Pendiente verificar quién es el dueño del flujo si C o A if (User.Identity.Name == actual.USUARIOA_ID) { //Simular el pf.procesa //ContabilizarRes res = new ContabilizarRes(); resc = pf.procesaConta(flujo); } } } //Validar la respuesta //Hay respuesta if (resc.contabilizar != null && resc.res != null) { if (resc.contabilizar == true && resc.res == false) { TempData["error"] = "Se necesita asignar usuario contabilizador a la sociedad: " + d.SOCIEDAD_ID; return(RedirectToAction("Details", "Solicitudes", new { id = flujo.NUM_DOC })); } else { if (ModelState.IsValid) { string res = pf.procesa(flujo, "", false, "", ""); if (res.Equals("0"))//Aprobado { //FRT 13-12-2018 para realizar la actualización del tipo de cambio segun la fecha en el modal if (d.MONEDA_ID != "MXN") { var moneda = d.MONEDA_ID; var restipo = TipoCambio(actual, moneda, f); } //ENDFRT 13-12-2018 para realizar la actualización del tipo de cambio segun la fecha en el modal return(RedirectToAction("Details", "Solicitudes", new { id = flujo.NUM_DOC })); } else if (res.Equals("1") | res.Equals("2") | res.Equals("3"))//CORREO { //FRT 13-12-2018 para realizar la actualización del tipo de cambio segun la fecha en el modal if (d.MONEDA_ID != "MXN") { var moneda = d.MONEDA_ID; var restipo = TipoCambio(actual, moneda, f); } //ENDFRT 13-12-2018 para realizar la actualización del tipo de cambio segun la fecha en el modal //return RedirectToAction("Enviar", "Mails", new { id = flujo.NUM_DOC, index = false, tipo = "A" }); //MGC 12092018 //Email em = new Email(); //string UrlDirectory = Request.Url.GetLeftPart(UriPartial.Path); //string image = Server.MapPath("~/images/logo_kellogg.png"); //if (res.Equals("1") | res.Equals("2"))//CORREO //{ // em.enviaMailC(f.NUM_DOC, true, Session["spras"].ToString(), UrlDirectory, "Index", image); //} //else //{ // em.enviaMailC(f.NUM_DOC, true, Session["spras"].ToString(), UrlDirectory, "Details", image); //} return(RedirectToAction("Details", "Solicitudes", new { id = flujo.NUM_DOC })); } else { TempData["error"] = res; return(RedirectToAction("Details", "Solicitudes", new { id = flujo.NUM_DOC })); } } } } int pagina = 103; //ID EN BASE DE DATOS using (WFARTHAEntities db = new WFARTHAEntities()) { string u = User.Identity.Name; var user = db.USUARIOs.Where(a => a.ID.Equals(u)).FirstOrDefault(); ViewBag.permisos = db.PAGINAVs.Where(a => a.ID.Equals(user.ID)).ToList(); ViewBag.carpetas = db.CARPETAVs.Where(a => a.USUARIO_ID.Equals(user.ID)).ToList(); ViewBag.usuario = user; ViewBag.returnUrl = Request.Url.PathAndQuery;; ViewBag.rol = user.PUESTO.PUESTOTs.Where(a => a.SPRAS_ID.Equals(user.SPRAS_ID)).FirstOrDefault().TXT50; ViewBag.Title = db.PAGINAs.Where(a => a.ID.Equals(pagina)).FirstOrDefault().PAGINATs.Where(b => b.SPRAS_ID.Equals(user.SPRAS_ID)).FirstOrDefault().TXT50; ViewBag.warnings = db.WARNINGVs.Where(a => (a.PAGINA_ID.Equals(pagina) || a.PAGINA_ID.Equals(0)) && a.SPRAS_ID.Equals(user.SPRAS_ID)).ToList(); ViewBag.textos = db.TEXTOes.Where(a => (a.PAGINA_ID.Equals(pagina) || a.PAGINA_ID.Equals(0)) && a.SPRAS_ID.Equals(user.SPRAS_ID)).ToList(); try { string p = Session["pais"].ToString(); ViewBag.pais = p + ".png"; } catch { //ViewBag.pais = "mx.png"; //return RedirectToAction("Pais", "Home"); } Session["spras"] = user.SPRAS_ID; } return(View(f)); }
public string crearPDF(List <ReportSols> RS) { var fncolor = new BaseColor(255, 255, 255); iTextSharp.text.Font letraTabNegrita = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 7, fncolor); iTextSharp.text.Font letraTab = FontFactory.GetFont(FontFactory.HELVETICA, 7); iTextSharp.text.Font negritaPeque = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 11); iTextSharp.text.Font normalPeque = FontFactory.GetFont(FontFactory.HELVETICA, 11); iTextSharp.text.Font normalMasPeque = FontFactory.GetFont(FontFactory.HELVETICA, 8); iTextSharp.text.Font titulo = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 16); PdfPTable tabCabecera = new PdfPTable(1); PdfPTable tablaDatos = new PdfPTable(1); PdfPTable tablaDatos1 = new PdfPTable(2); PdfPTable tablaDatos2 = new PdfPTable(15); PdfPTable tablaDatos3 = new PdfPTable(1); PdfPTable tablaDatos4 = new PdfPTable(6); string ruta = ""; using (WFARTHAEntities db = new WFARTHAEntities()) { DateTime fechaCreacion = DateTime.Now; string nombreArchivo = string.Format("{0}.pdf", fechaCreacion.ToString(@"yyyyMMdd") + "_" + fechaCreacion.ToString(@"HHmmss")); string rutaCompleta = HttpContext.Current.Server.MapPath("~/PdfTemp/" + nombreArchivo); FileStream fsDocumento = new FileStream(rutaCompleta, FileMode.Create); //PASO UNO DEMINIMOS EL TIPO DOCUMENTO CON LOS RESPECTIVOS MARGENES (A4,IZQ,DER,TOP,BOT) Document pdfDoc = new Document(PageSize.A4.Rotate(), 30f, 30f, 60f, 30f); PdfWriter pdfWriter = PdfWriter.GetInstance(pdfDoc, fsDocumento); try { pdfDoc.Open(); iTextSharp.text.Image imagen2 = iTextSharp.text.Image.GetInstance(HttpContext.Current.Server.MapPath("~/images/artha.png")); PdfPCell celLineaCabecera = new PdfPCell { Image = imagen2, Border = 0, Padding = 3, FixedHeight = 60f, HorizontalAlignment = PdfPCell.ALIGN_LEFT }; tabCabecera.AddCell(celLineaCabecera); tabCabecera.TotalWidth = pdfDoc.PageSize.Width; tabCabecera.WriteSelectedRows(0, -1, 0, pdfDoc.PageSize.Top, pdfWriter.DirectContent); //Tabla tablaDatos2.SetWidthPercentage(new float[] { 55, 50, 55, 55, 55, 55, 40, 80, 80, 55, 40, 60, 75, 40, 40 }, PageSize.A4.Rotate()); PdfPCell Cabecera1 = new PdfPCell(new Paragraph("Tipo de Solicitud", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cabecera1); PdfPCell Cabecera2 = new PdfPCell(new Paragraph("Fecha", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cabecera2); PdfPCell Cabecera3 = new PdfPCell(new Paragraph("No. Portal", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cabecera3); PdfPCell Cabecera4 = new PdfPCell(new Paragraph("No. SAP", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cabecera4); PdfPCell Cabecera5 = new PdfPCell(new Paragraph("Proyecto", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cabecera5); PdfPCell Cabecera6 = new PdfPCell(new Paragraph("Sociedad", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cabecera6); PdfPCell Cabecera7 = new PdfPCell(new Paragraph("Moneda", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cabecera7); PdfPCell Cabecera8 = new PdfPCell(new Paragraph("Monto", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cabecera8); PdfPCell Cabecera9 = new PdfPCell(new Paragraph("Explicacion", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cabecera9); PdfPCell Cabecera10 = new PdfPCell(new Paragraph("Solicitante", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cabecera10); PdfPCell Cabecera11 = new PdfPCell(new Paragraph("Usuario", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cabecera11); PdfPCell Cabecera12 = new PdfPCell(new Paragraph("WorkFlow", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cabecera12); PdfPCell Cabecera13 = new PdfPCell(new Paragraph("Estatus Solicitud", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cabecera13); PdfPCell Cabecera14 = new PdfPCell(new Paragraph("Total de Dias", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cabecera14); PdfPCell Cabecera15 = new PdfPCell(new Paragraph("Estatus Pago", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cabecera15); bool col = true; BaseColor fondo; foreach (ReportSols sol in RS) { if (col == true) { fondo = new BaseColor(220, 220, 220); col = false; } else { fondo = new BaseColor(255, 255, 255); col = true; } PdfPCell Cuerpo1 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(sol.Tsol) ? sol.Tsol : ""), letraTab)) { Border = 1, BackgroundColor = fondo, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cuerpo1); PdfPCell Cuerpo2 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(sol.Fecha) ? sol.Fecha : ""), letraTab)) { Border = 1, BackgroundColor = fondo, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cuerpo2); PdfPCell Cuerpo3 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(sol.Num_doc.ToString()) ? sol.Num_doc.ToString() : ""), letraTab)) { Border = 1, BackgroundColor = fondo, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cuerpo3); PdfPCell Cuerpo4 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(sol.Num_pre) ? sol.Num_pre : ""), letraTab)) { Border = 1, BackgroundColor = fondo, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cuerpo4); PdfPCell Cuerpo5 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(sol.Pspnr) ? sol.Pspnr : ""), letraTab)) { Border = 1, BackgroundColor = fondo, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cuerpo5); PdfPCell Cuerpo6 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(sol.Bukrsn) ? sol.Bukrsn : ""), letraTab)) { Border = 1, BackgroundColor = fondo, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cuerpo6); PdfPCell Cuerpo7 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(sol.Moneda) ? sol.Moneda : ""), letraTab)) { Border = 1, BackgroundColor = fondo, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cuerpo7); PdfPCell Cuerpo8 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(sol.Montol) ? sol.Montol : ""), letraTab)) { Border = 1, BackgroundColor = fondo, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cuerpo8); PdfPCell Cuerpo9 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(sol.Explicacion) ? sol.Explicacion : ""), letraTab)) { Border = 1, BackgroundColor = fondo, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cuerpo9); PdfPCell Cuerpo10 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(sol.Usuarion) ? sol.Usuarion : ""), letraTab)) { Border = 1, BackgroundColor = fondo, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cuerpo10); PdfPCell Cuerpo11 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(sol.Usuario) ? sol.Usuario : ""), letraTab)) { Border = 1, BackgroundColor = fondo, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cuerpo11); PdfPCell Cuerpo12 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(sol.Wf) ? sol.Wf : ""), letraTab)) { Border = 1, BackgroundColor = fondo, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cuerpo12); PdfPCell Cuerpo13 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(sol.Estatus) ? sol.Estatus : ""), letraTab)) { Border = 1, BackgroundColor = fondo, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cuerpo13); PdfPCell Cuerpo14 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(sol.Totald) ? sol.Totald : ""), letraTab)) { Border = 1, BackgroundColor = fondo, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cuerpo14); PdfPCell Cuerpo15 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(sol.EstPago) ? sol.EstPago : ""), letraTab)) { Border = 1, BackgroundColor = fondo, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cuerpo15); } pdfDoc.Add(tablaDatos2); pdfDoc.Add(new Chunk("\n")); pdfDoc.Close(); ruta = "/PdfTemp/" + nombreArchivo; } catch (Exception ex) { ex.Message.ToString(); } return(ruta); } }
public ActionResult ReportTemplate2([Bind(Include = "Tsol,Bukrs,Fecha,Payer,Num_pre,User,Num_doc,Monto,Moneda,Estatus,Pagado")] Models.REPORT_MOD rep) { int pagina = 1101; //ID EN BASE DE DATOS using (WFARTHAEntities db = new WFARTHAEntities()) { FnCommon.ObtenerConfPage(db, pagina, User.Identity.Name, this.ControllerContext.Controller); string uz = User.Identity.Name; var sociedades = (from tp in db.DET_TIPOPRESUPUESTO join soc in db.SOCIEDADs on tp.BUKRS equals soc.BUKRS where tp.ID_USER == uz select new { Value = soc.BUKRS, TEXT = soc.BUKRS + " - " + soc.BUTXT }).ToList(); List <DOCUMENTO> docs = new List <DOCUMENTO>(); for (int i = 0; i < sociedades.Count(); i++) { string buk = sociedades[i].Value; List <DOCUMENTO> doc = db.DOCUMENTOes.Where(x => x.SOCIEDAD_ID == buk).OrderBy(x => x.NUM_DOC).ToList(); foreach (DOCUMENTO d in doc) { docs.Add(d); } } List <DOCUMENTO> docs1 = new List <DOCUMENTO>(); // filtrado por Tipo de solicitud if (rep.Tsol != null) { for (int i = 0; i < rep.Tsol.Count(); i++) { string com = rep.Tsol[i]; List <DOCUMENTO> doc = docs.Where(x => x.TSOL_ID == com).ToList(); foreach (DOCUMENTO d in doc) { docs1.Add(d); } } docs = docs1; docs1 = new List <DOCUMENTO>(); } // filtrado por sociedad if (rep.Bukrs != null) { for (int i = 0; i < rep.Bukrs.Count(); i++) { string com = rep.Bukrs[i]; List <DOCUMENTO> doc = docs.Where(x => x.SOCIEDAD_ID == com).ToList(); foreach (DOCUMENTO d in doc) { docs1.Add(d); } } docs = docs1; docs1 = new List <DOCUMENTO>(); } // filtrado por fecha if (rep.Fecha != null) { for (int i = 0; i < rep.Fecha.Count(); i++) { DateTime com = DateTime.Parse(rep.Fecha[i]); List <DOCUMENTO> doc = docs.Where(x => x.FECHAC_USER == com).ToList(); foreach (DOCUMENTO d in doc) { docs1.Add(d); } } docs = docs1; docs1 = new List <DOCUMENTO>(); } // filtrado por proveedor if (rep.Payer != null) { for (int i = 0; i < rep.Payer.Count(); i++) { string com = rep.Payer[i]; List <DOCUMENTO> doc = docs.Where(x => x.PAYER_ID == com).ToList(); foreach (DOCUMENTO d in doc) { docs1.Add(d); } } docs = docs1; docs1 = new List <DOCUMENTO>(); } // filtrado por numero sap if (rep.Num_pre != null) { for (int i = 0; i < rep.Num_pre.Count(); i++) { string com = rep.Num_pre[i]; List <DOCUMENTO> doc = docs.Where(x => x.PAYER_ID == com).ToList(); foreach (DOCUMENTO d in doc) { docs1.Add(d); } } docs = docs1; docs1 = new List <DOCUMENTO>(); } // filtrado por solicitante if (rep.User != null) { for (int i = 0; i < rep.User.Count(); i++) { string com = rep.User[i]; List <DOCUMENTO> doc = docs.Where(x => x.USUARIOD_ID == com).ToList(); foreach (DOCUMENTO d in doc) { docs1.Add(d); } } docs = docs1; docs1 = new List <DOCUMENTO>(); } // filtrado por numero de documento if (rep.Num_doc != null) { for (int i = 0; i < rep.Num_doc.Count(); i++) { decimal com = decimal.Parse(rep.Num_doc[i]); List <DOCUMENTO> doc = docs.Where(x => x.NUM_DOC == com).ToList(); foreach (DOCUMENTO d in doc) { docs1.Add(d); } } docs = docs1; docs1 = new List <DOCUMENTO>(); } // filtrado por monto if (rep.Monto != null) { for (int i = 0; i < rep.Monto.Count(); i++) { decimal com = decimal.Parse(rep.Monto[i]); List <DOCUMENTO> doc = docs.Where(x => x.MONTO_DOC_MD == com).ToList(); foreach (DOCUMENTO d in doc) { docs1.Add(d); } } docs = docs1; docs1 = new List <DOCUMENTO>(); } // filtrado por moneda if (rep.Moneda != null) { for (int i = 0; i < rep.Moneda.Count(); i++) { string com = rep.Moneda[i]; List <DOCUMENTO> doc = docs.Where(x => x.MONEDA_ID == com).ToList(); foreach (DOCUMENTO d in doc) { docs1.Add(d); } } docs = docs1; docs1 = new List <DOCUMENTO>(); } // filtrado por estatus if (rep.Estatus != null) { for (int i = 0; i < rep.Estatus.Count(); i++) { var stats = rep.Estatus[i].Split(','); var statswf = stats[3].Split('/'); List <DOCUMENTO> doc = new List <DOCUMENTO>(); if (statswf.Length == 1) { doc = docs.Where(x => x.ESTATUS == stats[0] && x.ESTATUS_C == stats[1] && x.ESTATUS_SAP == stats[2] && x.ESTATUS_WF == stats[3] && x.ESTATUS_PRE == stats[4]).ToList(); } else { doc = docs.Where(x => x.ESTATUS == stats[0] && x.ESTATUS_C == stats[1] && x.ESTATUS_SAP == stats[2] && (x.ESTATUS_WF == statswf[0] || x.ESTATUS_WF == statswf[1]) && x.ESTATUS_PRE == stats[4]).ToList(); } foreach (DOCUMENTO d in doc) { docs1.Add(d); } } docs = docs1; docs1 = new List <DOCUMENTO>(); } // filtrado por estatus de pago if (rep.Pagado != null) { for (int i = 0; i < rep.Pagado.Count(); i++) { string com = rep.Pagado[i]; List <string> pago = db.ESTATUS_PAGO.Where(x => x.TIPO == com).Select(x => x.BELNR_P).ToList(); List <DOCUMENTO> doc = docs.Where(x => x.MONEDA_ID == com).ToList(); foreach (DOCUMENTO d in doc) { if (pago.Contains(d.NUM_DOC.ToString())) { docs1.Add(d); } } } docs = docs1; docs1 = new List <DOCUMENTO>(); } List <ReportSols> solicitudes = new List <ReportSols>(); foreach (DOCUMENTO d in docs) { string firmas = ""; string pag = ""; List <ReportFirmasResult> f = db.Database.SqlQuery <ReportFirmasResult>("SP_FIRMAS @NUM_DOC", new SqlParameter("@NUM_DOC", d.NUM_DOC)).ToList(); ReportFirmasResult fir = f.OrderByDescending(x => x.fecham).FirstOrDefault(); if (fir.estatus == "A") { firmas = fir.usuariocadena + "\n(Aprobado)"; } else if (fir.estatus == "R") { firmas = fir.usuariocadena + "\n(Rechazado)"; } else if (fir.estatus == "P") { firmas = fir.usuariocadena + "\n(Pendiente)"; } //foreach (ReportFirmasResult ff in f) //{ // firmas += ff.usuariocadena + "\n" + ff.faseletrero; //} string flu = db.FLUJOes.Where(x => x.NUM_DOC == d.NUM_DOC).OrderByDescending(x => x.POS).Select(x => x.USUARIOA_ID).FirstOrDefault(); string estatus = ""; if (d.ESTATUS_C != null) { if (d.ESTATUS_C.Equals("A") || d.ESTATUS_C.Equals("B") || d.ESTATUS_C.Equals("C")) { if (d.ESTATUS_C.Equals("A")) { estatus = "Eliminando Solicitud"; } else if (d.ESTATUS_C.Equals("B")) { estatus = "Error Eliminar"; } else if (d.ESTATUS_C.Equals("C")) { estatus = "Solicitud Eliminada"; } } } else if (d.ESTATUS.Equals("B")) { estatus = "Borrador"; } else if (d.ESTATUS.Equals("A")) { estatus = "Contabilizado SAP"; } else if (d.ESTATUS.Equals("N") && d.ESTATUS_C == null && d.ESTATUS_SAP == null && (d.ESTATUS_WF == null | d.ESTATUS_WF == "P")) { if (d.ESTATUS_PRE == "G") { estatus = "Procesando Preliminar"; } else if (d.ESTATUS_PRE == "E") { estatus = "Error Preliminar Portal"; } } else if (d.ESTATUS.Equals("N") && d.ESTATUS_C == null && d.ESTATUS_SAP != null && d.ESTATUS_WF == null) { if (d.ESTATUS_PRE == "E" && d.ESTATUS_SAP == "E") { estatus = "Error Preliminar SAP"; } if (d.ESTATUS_PRE == "G" && d.ESTATUS_SAP == "P") { estatus = "Se Generó Preliminar SAP"; } } else if (d.ESTATUS == "F" && (d.ESTATUS_WF.Equals("P") | d.ESTATUS_WF.Equals("S"))) { if (d.ESTATUS_PRE == "G") { if (d.FLUJOes.Count > 0) { if (ViewBag.usuario.ID == flu) { estatus = "Pendiente Aprobador"; } } } } else if (d.ESTATUS == "C" && (d.ESTATUS_WF.Equals("P") | d.ESTATUS_WF.Equals("A"))) { if (d.ESTATUS_WF.Equals("P") && d.ESTATUS_PRE == "G") { if (d.FLUJOes.Count > 0) { if (ViewBag.usuario.ID == flu) { estatus = "Pendiente Contabilizar"; } } } else if (d.ESTATUS_WF.Equals("A") && d.ESTATUS_PRE == "E") { if (d.FLUJOes.Count > 0) { if (ViewBag.usuario.ID == flu) { estatus = "Error Contabilizar Portal"; } } } else if (d.ESTATUS_WF.Equals("A") && d.ESTATUS_PRE == "G" && d.ESTATUS_SAP != "E") { estatus = "Procesando Contabilizar SAP"; } else if (d.ESTATUS_WF.Equals("A") && d.ESTATUS_SAP == "E") { if (d.FLUJOes.Count > 0) { if (ViewBag.usuario.ID == flu) { estatus = "Error Contabilizar SAP"; } } } else if (d.ESTATUS_WF != null && d.ESTATUS_WF.Equals("A")) { if (d.ESTATUS.Equals("C")) { estatus = "Por Contabilizar"; } else if (d.ESTATUS.Equals("P")) { estatus = "Contabilizar SAP"; } else { estatus = "Aprobada"; } } else if (d.ESTATUS.Equals("F") && d.ESTATUS_WF != null && d.ESTATUS_WF.Equals("R") && d.ESTATUS_PRE != null && d.ESTATUS_PRE.Equals("G")) { estatus = "Pendiente Corrección"; } else if (d.ESTATUS_WF != null && d.ESTATUS_WF.Equals("T")) { estatus = "Pendiente Tax"; } else { estatus = "Estatus desconocido"; } } DateTime fecha2 = DateTime.Parse(f.OrderByDescending(x => x.fecham).Select(x => x.fecham).FirstOrDefault().ToString()); DateTime fecha1 = DateTime.Parse(d.FECHAC.ToString()); int horas = 0; if (fecha2 > fecha1) { horas = Convert.ToInt32((fecha2 - fecha1).TotalDays); } List <ESTATUS_PAGO> ep = db.ESTATUS_PAGO.Where(x => x.BELNR_P == d.NUM_DOC.ToString()).ToList(); foreach (ESTATUS_PAGO p in ep) { pag += p.TIPO; if (ep.Count > 1) { pag += "/"; } } ReportSols s = new ReportSols { Tsol = (from x in db.TSOLTs where x.TSOL_ID == d.TSOL_ID select x.TXT50).FirstOrDefault(), Fecha = string.Format(DateTime.Parse(d.FECHAC.ToString()).ToString(@"yyyy/MM/dd")), Num_doc = d.NUM_DOC, Num_pre = d.NUM_PRE, Pspnr = (from x in db.PROYECTOes where x.ID_PSPNR == d.ID_PSPNR select x.NOMBRE).FirstOrDefault(), Bukrsn = (from x in db.SOCIEDADs where x.BUKRS == d.SOCIEDAD_ID select x.BUTXT).FirstOrDefault(), Moneda = d.MONEDA_ID, Montol = Monedas(d.MONTO_DOC_MD, d.MONEDA_ID), Explicacion = d.CONCEPTO, Usuarion = (from x in db.USUARIOs where x.ID == d.USUARIOD_ID select x.NOMBRE + " " + x.APELLIDO_P + " " + x.APELLIDO_M).FirstOrDefault(), Usuario = d.USUARIOD_ID, Wf = firmas, Estatus = estatus, Totald = horas.ToString(), EstPago = pag }; solicitudes.Add(s); } ReportEsqueleto2 re = new ReportEsqueleto2(); string recibeRuta = re.crearPDF(solicitudes); ViewBag.url = Request.Url.OriginalString.Replace(Request.Url.PathAndQuery, "") + HostingEnvironment.ApplicationVirtualPath + "/" + recibeRuta; ViewBag.miNum = uz; return(View()); } }
// GET: Report public ActionResult Reporte() { int pagina = 1101; var spras = "ES"; REPORT_MOD rm = new REPORT_MOD(); using (WFARTHAEntities db = new WFARTHAEntities()) { FnCommon.ObtenerConfPage(db, pagina, User.Identity.Name, this.ControllerContext.Controller); string uz = User.Identity.Name; var puesto_user = db.USUARIOs.Where(x => x.ID == uz).Select(x => x.PUESTO_ID).FirstOrDefault(); var tsoll = (from ts in db.TSOLs join tt in db.TSOLTs on ts.ID equals tt.TSOL_ID into jj from tt in jj.DefaultIfEmpty() where ts.ESTATUS == "X" && tt.SPRAS_ID.Equals(spras) && ts.ID.Equals("SRE") select new { Value = ts.ID, Text = ts.ID + " - " + tt.TXT50 }).ToList(); if (puesto_user != 4) { tsoll = (from ts in db.TSOLs join tt in db.TSOLTs on ts.ID equals tt.TSOL_ID into jj from tt in jj.DefaultIfEmpty() where ts.ESTATUS == "X" && tt.SPRAS_ID.Equals(spras) select new { Value = ts.ID, Text = ts.ID + " - " + tt.TXT50 }).ToList(); } var sociedades = (from tp in db.DET_TIPOPRESUPUESTO join soc in db.SOCIEDADs on tp.BUKRS equals soc.BUKRS where tp.ID_USER == uz select new { Value = soc.BUKRS, Text = soc.BUKRS + " - " + soc.BUTXT }).ToList(); List <DOCUMENTO> docs = new List <DOCUMENTO>(); for (int i = 0; i < sociedades.Count(); i++) { string buk = sociedades[i].Value; List <DOCUMENTO> doc = db.DOCUMENTOes.Where(x => x.SOCIEDAD_ID == buk).OrderBy(x => x.NUM_DOC).ToList(); foreach (DOCUMENTO d in doc) { docs.Add(d); } } List <string> fechas1 = new List <string>(); List <string> prov1 = new List <string>(); List <string> nsap1 = new List <string>(); List <string> user1 = new List <string>(); List <string> ndoc1 = new List <string>(); List <string> mont1 = new List <string>(); List <SelectListItem> fechas = new List <SelectListItem>(); List <SelectListItem> prov = new List <SelectListItem>(); List <SelectListItem> nsap = new List <SelectListItem>(); List <SelectListItem> user = new List <SelectListItem>(); List <SelectListItem> ndoc = new List <SelectListItem>(); List <SelectListItem> mont = new List <SelectListItem>(); foreach (DOCUMENTO dd in docs) { string prob = (!string.IsNullOrEmpty(dd.PAYER_ID) ? dd.PAYER_ID : "").Trim(); prob = Completa(prob, 10); var u = db.USUARIOs.Where(x => x.ID == dd.USUARIOD_ID).FirstOrDefault(); var p = db.PROVEEDORs.Where(x => x.LIFNR == prob).FirstOrDefault(); if (dd.FECHAC_USER != null && !fechas1.Contains(dd.FECHAC_USER.ToString())) { fechas1.Add(dd.FECHAC_USER.ToString()); string fech = string.Format(DateTime.Parse(dd.FECHAC_USER.ToString()).ToString(@"dd/MM/yyyy")); fechas.Add(new SelectListItem() { Text = fech, Value = dd.FECHAC_USER.ToString() }); } if (p != null && !prov1.Contains(p.LIFNR)) { prov1.Add(p.LIFNR); prov.Add(new SelectListItem() { Text = p.LIFNR + " - " + p.NAME1, Value = dd.PAYER_ID }); } if (dd.NUM_PRE != null && !nsap1.Contains(dd.NUM_PRE)) { nsap1.Add(dd.NUM_PRE); nsap.Add(new SelectListItem() { Text = dd.NUM_PRE, Value = dd.NUM_PRE }); } if (dd.USUARIOD_ID != null && !user1.Contains(dd.USUARIOD_ID)) { user1.Add(dd.USUARIOD_ID); user.Add(new SelectListItem() { Text = u.ID + " - " + u.NOMBRE + " " + u.APELLIDO_P + " " + u.APELLIDO_M, Value = u.ID }); } if (dd.NUM_DOC.ToString() != null && !ndoc1.Contains(dd.NUM_DOC.ToString())) { ndoc1.Add(dd.NUM_DOC.ToString()); ndoc.Add(new SelectListItem() { Text = dd.NUM_DOC.ToString(), Value = dd.NUM_DOC.ToString() }); } if (dd.MONTO_DOC_MD != null && !mont1.Contains(dd.MONTO_DOC_MD.ToString())) { mont1.Add(dd.MONTO_DOC_MD.ToString()); mont.Add(new SelectListItem() { Text = Monedas(dd.MONTO_DOC_MD, dd.MONEDA_ID), Value = dd.MONTO_DOC_MD.ToString() }); } } var moneda = db.MONEDAs.Where(m => m.ACTIVO == true).Select(m => new { Value = m.WAERS, Text = m.WAERS + " - " + m.LTEXT }).ToList(); //var stat = db.DOCUMENTOes.Select(x => new { Value = x.ESTATUS, Text = x.ESTATUS }).Distinct().ToList(); List <SelectListItem> stat = new List <SelectListItem> { new SelectListItem() { Text = "Eliminando Solicitud", Value = ",A,,,," }, new SelectListItem() { Text = "Error Eliminar", Value = ",B,,,," }, new SelectListItem() { Text = "Solicitud Eliminada", Value = ",C,,,," }, new SelectListItem() { Text = "Borrador", Value = "B,,,,," }, new SelectListItem() { Text = "Contabilizado SAP", Value = "A,,,,," }, new SelectListItem() { Text = "Procesando Preliminar", Value = "N,,,null/P,G," }, new SelectListItem() { Text = "Error Preliminar Portal", Value = "N,,,null/P,E," }, new SelectListItem() { Text = "Error Preliminar SAP", Value = "N,,E,,E," }, new SelectListItem() { Text = "Se Generó Preliminar SAP", Value = "N,,P,,G," }, new SelectListItem() { Text = "Pendiente Aprobador", Value = "F,,,P/S,G,P" }, new SelectListItem() { Text = "Pendiente Contabilizar", Value = "C,,,P,G,P" }, new SelectListItem() { Text = "Error Contabilizar Portal", Value = "C,,,A,E,P" }, new SelectListItem() { Text = "Procesando Contabilizar SAP", Value = "C,,!E,A,G," }, new SelectListItem() { Text = "Error Contabilizar SAP", Value = "C,,E,A,,P" }, new SelectListItem() { Text = "Por Contabilizar", Value = "C,,,A,," }, new SelectListItem() { Text = "Contabilizar SAP", Value = "P,,,A,," }, new SelectListItem() { Text = "Aprobada", Value = ",,,A,," }, new SelectListItem() { Text = "Pendiente Corrección", Value = "F,,,R,G,P" }, //new SelectListItem() { Text = "Pendiente Tax", Value = ",,,T,," }, new SelectListItem() { Text = "Estatus desconocido", Value = ",,,,," } }; List <SelectListItem> lst = new List <SelectListItem> { new SelectListItem() { Text = "Pagado", Value = "P" }, new SelectListItem() { Text = "Efectivamente Pagado", Value = "EP" } }; ViewBag.tsol = new SelectList(tsoll, "Value", "Text"); ViewBag.bukrs = new SelectList(sociedades, "Value", "Text"); ViewBag.fecha = new SelectList(fechas, "Value", "Text"); ViewBag.payer = new SelectList(prov, "Value", "Text"); ViewBag.num_pre = new SelectList(nsap, "Value", "Text"); ViewBag.user = new SelectList(user, "Value", "Text"); ViewBag.num_doc = new SelectList(ndoc, "Value", "Text"); ViewBag.monto = new SelectList(mont, "Value", "Text"); ViewBag.moneda = new SelectList(moneda, "Value", "Text"); ViewBag.estatus = new SelectList(stat, "Value", "Text"); ViewBag.pagado = new SelectList(lst, "Value", "Text"); } return(View()); }
public ActionResult ReportTemplate(decimal id) { int pagina = 1101; //ID EN BASE DE DATOS using (WFARTHAEntities db = new WFARTHAEntities()) { FnCommon.ObtenerConfPage(db, pagina, User.Identity.Name, this.ControllerContext.Controller); SP_CABECERA_Result c = db.SP_CABECERA(id).Single(); List <SP_DETALLE_Result> d = db.SP_DETALLE(id).ToList(); //List<SP_FIRMAS_Result> f = db.SP_FIRMAS(id).ToList(); List <ReportFirmasResult> f = db.Database.SqlQuery <ReportFirmasResult>("SP_FIRMAS @NUM_DOC", new SqlParameter("@NUM_DOC", id)).ToList(); ReportCabecera cab = new ReportCabecera { NUM_DOC = c.NUM_DOC.ToString(), NUM_PRE = c.NUM_PRE, SOCIEDAD_ID = c.SOCIEDAD_ID, SOCIEDAD_TEXT = c.SOCIEDAD_TEXT, PAYER_ID = (!string.IsNullOrEmpty(c.PAYER_ID) ? c.PAYER_ID : "").Trim(), PAYER_NAME1 = c.PAYER_NAME1, MONTO_DOC_MD = Monedas(c.MONTO_DOC_MD, c.MONEDA_ID), CONDICIONES_ID = c.CONDICIONES_ID, CONDICIONES_TEXT = c.CONDICIONES_TEXT, CONCEPTO = (c.CONCEPTO ?? "") }; List <ReportDetalle> det = new List <ReportDetalle>(); foreach (SP_DETALLE_Result dd in d) { ReportDetalle rd = new ReportDetalle { CONCEPTO = dd.CONCEPTO, DESCRIPCION = dd.DESCRIPCION, FACTURA = dd.FACTURA, IMPORTE = Monedas(dd.IMPORTE, c.MONEDA_ID), TEXTO = (dd.TEXTO ?? "") }; det.Add(rd); } List <ReportFirmas> fir = new List <ReportFirmas>(); var cont = 1; var cont2 = f.Count(); ReportFirmas rf = new ReportFirmas(); for (int i = 0; i < f.Count(); i++) { if (cont == 1) { rf = new ReportFirmas(); } switch (cont) { case 1: rf.fasen1 = f[i].fasen.ToString(); rf.faseletrero1 = f[i].faseletrero; rf.usuariocadena1 = f[i].usuariocadena; rf.fecham1 = string.Format(DateTime.Parse(f[i].fecham.ToString()).ToString(@"dd/MM/yyyy")); cont++; cont2--; break; case 2: rf.fasen2 = (f[i].fasen.ToString() ?? ""); rf.faseletrero2 = (f[i].faseletrero ?? ""); rf.usuariocadena2 = (f[i].usuariocadena ?? ""); rf.fecham2 = (string.Format(DateTime.Parse(f[i].fecham.ToString()).ToString(@"dd/MM/yyyy")) ?? ""); cont++; cont2--; break; case 3: rf.fasen3 = (f[i].fasen.ToString() ?? ""); rf.faseletrero3 = (f[i].faseletrero ?? ""); rf.usuariocadena3 = (f[i].usuariocadena ?? ""); rf.fecham3 = (string.Format(DateTime.Parse(f[i].fecham.ToString()).ToString(@"dd/MM/yyyy")) ?? ""); cont++; cont2--; break; case 4: rf.fasen4 = (f[i].fasen.ToString() ?? ""); rf.faseletrero4 = (f[i].faseletrero ?? ""); rf.usuariocadena4 = (f[i].usuariocadena ?? ""); rf.fecham4 = (string.Format(DateTime.Parse(f[i].fecham.ToString()).ToString(@"dd/MM/yyyy")) ?? ""); cont++; cont2--; break; case 5: rf.fasen5 = (f[i].fasen.ToString() ?? ""); rf.faseletrero5 = (f[i].faseletrero ?? ""); rf.usuariocadena5 = (f[i].usuariocadena ?? ""); rf.fecham5 = (string.Format(DateTime.Parse(f[i].fecham.ToString()).ToString(@"dd/MM/yyyy")) ?? ""); cont = 1; cont2--; break; } if (cont == 1 || cont2 == 0) { fir.Add(rf); } } ReportEsqueleto re = new ReportEsqueleto(); string recibeRuta = re.crearPDF(cab, det, fir); ViewBag.url = Request.Url.OriginalString.Replace(Request.Url.PathAndQuery, "") + HostingEnvironment.ApplicationVirtualPath + "/" + recibeRuta; ViewBag.miNum = c.NUM_DOC; return(View()); } }
public string crearPDF(ReportCabecera RC, List <ReportDetalle> RD, List <ReportFirmas> RF) { var fncolor = new BaseColor(255, 255, 255); iTextSharp.text.Font letraTabNegrita = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 7, fncolor); iTextSharp.text.Font letraTab = FontFactory.GetFont(FontFactory.HELVETICA, 7); iTextSharp.text.Font negritaPeque = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 11); iTextSharp.text.Font normalPeque = FontFactory.GetFont(FontFactory.HELVETICA, 11); iTextSharp.text.Font normalMasPeque = FontFactory.GetFont(FontFactory.HELVETICA, 8); iTextSharp.text.Font titulo = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 16); PdfPTable tabCabecera = new PdfPTable(1); PdfPTable tablaDatos = new PdfPTable(1); PdfPTable tablaDatos1 = new PdfPTable(2); PdfPTable tablaDatos2 = new PdfPTable(4); PdfPTable tablaDatos3 = new PdfPTable(1); PdfPTable tablaDatos4 = new PdfPTable(6); string ruta = ""; using (WFARTHAEntities db = new WFARTHAEntities()) { DateTime fechaCreacion = DateTime.Now; string nombreArchivo = string.Format("{0}.pdf", RC.NUM_DOC + "-" + fechaCreacion.ToString(@"yyyyMMdd")); string rutaCompleta = HttpContext.Current.Server.MapPath("~/PdfTemp/" + nombreArchivo); FileStream fsDocumento = new FileStream(rutaCompleta, FileMode.Create); //PASO UNO DEMINIMOS EL TIPO DOCUMENTO CON LOS RESPECTIVOS MARGENES (A4,IZQ,DER,TOP,BOT) Document pdfDoc = new Document(PageSize.A4, 30f, 30f, 60f, 30f); PdfWriter pdfWriter = PdfWriter.GetInstance(pdfDoc, fsDocumento); try { pdfDoc.Open(); iTextSharp.text.Image imagen2 = iTextSharp.text.Image.GetInstance(HttpContext.Current.Server.MapPath("~/images/artha.png")); PdfPCell celLineaCabecera = new PdfPCell { Image = imagen2, Border = 0, Padding = 3, FixedHeight = 60f, HorizontalAlignment = PdfPCell.ALIGN_RIGHT }; tabCabecera.AddCell(celLineaCabecera); tabCabecera.TotalWidth = pdfDoc.PageSize.Width; tabCabecera.WriteSelectedRows(0, -1, 0, pdfDoc.PageSize.Top, pdfWriter.DirectContent); Paragraph frase1; frase1 = new Paragraph("Solicitud de Cheques", titulo) { Alignment = Element.ALIGN_LEFT }; pdfDoc.Add(frase1); pdfDoc.Add(new Chunk("")); //Cabecera pdfDoc.Add(new Chunk("")); tablaDatos1.HorizontalAlignment = Element.ALIGN_LEFT; tablaDatos1.SetWidthPercentage(new float[] { 100, 500 }, PageSize.A4); PdfPCell celda1 = new PdfPCell(new Paragraph("Folio Portal: ", negritaPeque)); celda1.Border = 0; tablaDatos1.AddCell(celda1); PdfPCell celda2 = new PdfPCell(new Paragraph(RC.NUM_DOC, normalPeque)); celda2.Border = 0; tablaDatos1.AddCell(celda2); PdfPCell celda3 = new PdfPCell(new Paragraph("Folio SAP: ", negritaPeque)); celda3.Border = 0; tablaDatos1.AddCell(celda3); PdfPCell celda4 = new PdfPCell(new Paragraph(RC.NUM_PRE, normalPeque)); celda4.Border = 0; tablaDatos1.AddCell(celda4); PdfPCell celda5 = new PdfPCell(new Paragraph("Compañia: ", negritaPeque)); celda5.Border = 0; tablaDatos1.AddCell(celda5); PdfPCell celda6 = new PdfPCell(new Paragraph(RC.SOCIEDAD_ID + " " + RC.SOCIEDAD_TEXT, normalPeque)); celda6.Border = 0; tablaDatos1.AddCell(celda6); PdfPCell celda7 = new PdfPCell(new Paragraph("Nominar a: ", negritaPeque)); celda7.Border = 0; tablaDatos1.AddCell(celda7); PdfPCell celda8 = new PdfPCell(new Paragraph(RC.PAYER_ID + " " + RC.PAYER_NAME1, normalPeque)); celda8.Border = 0; tablaDatos1.AddCell(celda8); PdfPCell celda9 = new PdfPCell(new Paragraph("Pagar en: ", negritaPeque)); celda9.Border = 0; tablaDatos1.AddCell(celda9); PdfPCell celda10 = new PdfPCell(new Paragraph("", normalPeque)); celda10.Border = 0; tablaDatos1.AddCell(celda10); PdfPCell celda11 = new PdfPCell(new Paragraph("Importe: ", negritaPeque)); celda11.Border = 0; tablaDatos1.AddCell(celda11); PdfPCell celda12 = new PdfPCell(new Paragraph(RC.MONTO_DOC_MD, normalPeque)); celda12.Border = 0; tablaDatos1.AddCell(celda12); PdfPCell celda13 = new PdfPCell(new Paragraph("Fecha de Contabilización:", negritaPeque)); celda13.Border = 0; tablaDatos1.AddCell(celda13); PdfPCell celda14 = new PdfPCell(new Paragraph("", normalPeque)); celda14.Border = 0; tablaDatos1.AddCell(celda14); PdfPCell celda15 = new PdfPCell(new Paragraph("Prioridad de Pago:", negritaPeque)); celda15.Border = 0; tablaDatos1.AddCell(celda15); PdfPCell celda16 = new PdfPCell(new Paragraph(RC.CONDICIONES_ID + " " + RC.CONDICIONES_TEXT, normalPeque)); celda16.Border = 0; tablaDatos1.AddCell(celda16); pdfDoc.Add(tablaDatos1); pdfDoc.Add(new Chunk("\n")); //Tabla de detalle tablaDatos2.SetWidthPercentage(new float[] { 250, 250, 50, 50 }, PageSize.A4); PdfPCell Titulo1 = new PdfPCell(new Paragraph(" ", letraTabNegrita)) { Border = 0, Colspan = 4, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Titulo1); PdfPCell Cabecera1 = new PdfPCell(new Paragraph("Concepto Afectado", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cabecera1); PdfPCell Cabecera2 = new PdfPCell(new Paragraph("Descripción", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cabecera2); PdfPCell Cabecera3 = new PdfPCell(new Paragraph("Factura", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cabecera3); PdfPCell Cabecera4 = new PdfPCell(new Paragraph("Importe", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cabecera4); bool col = true; BaseColor fondo; foreach (ReportDetalle det in RD) { if (col == true) { fondo = new BaseColor(230, 230, 230); col = false; } else { fondo = new BaseColor(255, 255, 255); col = true; } PdfPCell Cuerpo1 = new PdfPCell(new Paragraph(det.CONCEPTO + "\n" + (!string.IsNullOrEmpty(det.TEXTO) ? det.TEXTO : null), letraTab)) { Border = 1, BackgroundColor = fondo, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cuerpo1); PdfPCell Cuerpo2 = new PdfPCell(new Paragraph(det.DESCRIPCION, letraTab)) { Border = 1, BackgroundColor = fondo, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cuerpo2); PdfPCell Cuerpo3 = new PdfPCell(new Paragraph(det.FACTURA, letraTab)) { Border = 1, BackgroundColor = fondo, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cuerpo3); PdfPCell Cuerpo4 = new PdfPCell(new Paragraph(det.IMPORTE, letraTab)) { Border = 1, BackgroundColor = fondo, HorizontalAlignment = Element.ALIGN_RIGHT, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Cuerpo4); } PdfPCell Total1 = new PdfPCell(new Paragraph("", letraTabNegrita)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Total1); PdfPCell Total2 = new PdfPCell(new Paragraph("", letraTabNegrita)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Total2); PdfPCell Total3 = new PdfPCell(new Paragraph("Total", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Total3); PdfPCell Total4 = new PdfPCell(new Paragraph(RC.MONTO_DOC_MD, letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), HorizontalAlignment = Element.ALIGN_RIGHT, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos2.AddCell(Total4); pdfDoc.Add(tablaDatos2); pdfDoc.Add(new Chunk("\n")); //Tabla Observaciones tablaDatos3.SetWidthPercentage(new float[] { 600 }, PageSize.A4); PdfPCell Cabecera5 = new PdfPCell(new Paragraph("Observaciones de la Solicitud", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos3.AddCell(Cabecera5); PdfPCell Observacion = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(RC.CONCEPTO) ? RC.CONCEPTO : null), letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos3.AddCell(Observacion); //PdfPCell Espacio1 = new PdfPCell(new Paragraph(" ", letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos3.AddCell(Espacio1); //PdfPCell Solicitante = new PdfPCell(new Paragraph("Solicitante: " + "", letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos3.AddCell(Solicitante); //PdfPCell Soporte = new PdfPCell(new Paragraph("Soporte: " + "", letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos3.AddCell(Soporte); //PdfPCell Gerencia = new PdfPCell(new Paragraph("Gerencia: " + "", letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos3.AddCell(Gerencia); //PdfPCell Sub = new PdfPCell(new Paragraph("Sub Dirección: " + "", letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos3.AddCell(Sub); //PdfPCell Cuentas = new PdfPCell(new Paragraph("Cuentas por Pagar: " + "", letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos3.AddCell(Cuentas); //PdfPCell Espacio2 = new PdfPCell(new Paragraph(" ", letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos3.AddCell(Espacio2); PdfPCell Tesoreria = new PdfPCell(new Paragraph("Tesorería: " + "", letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos3.AddCell(Tesoreria); //PdfPCell Espacio3 = new PdfPCell(new Paragraph(" ", letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos3.AddCell(Espacio3); pdfDoc.Add(tablaDatos3); pdfDoc.Add(new Chunk("\n")); //Tabla Firmas tablaDatos4.SetWidthPercentage(new float[] { 50, 110, 110, 110, 110, 110 }, PageSize.A4); PdfPCell Titulo = new PdfPCell(new Paragraph("Firmas Electrónicas", letraTabNegrita)) { Border = 0, Colspan = 6, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Titulo); foreach (ReportFirmas fir in RF) { PdfPCell Cabecera6 = new PdfPCell(new Paragraph("Sección", letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Cabecera6); PdfPCell Cabecera7 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(fir.faseletrero1) ? fir.faseletrero1 : ""), letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Cabecera7); PdfPCell Cabecera8 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(fir.faseletrero2) ? fir.faseletrero2 : ""), letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Cabecera8); PdfPCell Cabecera9 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(fir.faseletrero3) ? fir.faseletrero3 : ""), letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Cabecera9); PdfPCell Cabecera10 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(fir.faseletrero4) ? fir.faseletrero4 : ""), letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Cabecera10); PdfPCell Cabecera11 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(fir.faseletrero5) ? fir.faseletrero5 : ""), letraTabNegrita)) { Border = 1, BackgroundColor = new BaseColor(0, 53, 100), BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Cabecera11); PdfPCell Co1 = new PdfPCell(new Paragraph("Co./Fi.", letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Co1); PdfPCell Co2 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(fir.usuariocadena1) ? fir.usuariocadena1 : ""), letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Co2); PdfPCell Co3 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(fir.usuariocadena2) ? fir.usuariocadena2 : ""), letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Co3); PdfPCell Co4 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(fir.usuariocadena3) ? fir.usuariocadena3 : ""), letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Co4); PdfPCell Co5 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(fir.usuariocadena4) ? fir.usuariocadena4 : ""), letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Co5); PdfPCell Co6 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(fir.usuariocadena5) ? fir.usuariocadena5 : ""), letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Co6); PdfPCell Fecha1 = new PdfPCell(new Paragraph("Fecha", letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Fecha1); PdfPCell Fecha2 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(fir.fecham1) ? fir.fecham1 : ""), letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Fecha2); PdfPCell Fecha3 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(fir.fecham2) ? fir.fecham2 : ""), letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Fecha3); PdfPCell Fecha4 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(fir.fecham3) ? fir.fecham3 : ""), letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Fecha4); PdfPCell Fecha5 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(fir.fecham4) ? fir.fecham4 : ""), letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Fecha5); PdfPCell Fecha6 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(fir.fecham5) ? fir.fecham5 : ""), letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Fecha6); PdfPCell Valida1 = new PdfPCell(new Paragraph("Valida", letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Valida1); PdfPCell Valida2 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(fir.valida1) ? fir.valida1 : ""), letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Valida2); PdfPCell Valida3 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(fir.valida2) ? fir.valida2 : ""), letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Valida3); PdfPCell Valida4 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(fir.valida3) ? fir.valida3 : ""), letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Valida4); PdfPCell Valida5 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(fir.valida4) ? fir.valida4 : ""), letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Valida5); PdfPCell Valida6 = new PdfPCell(new Paragraph((!string.IsNullOrEmpty(fir.valida5) ? fir.valida5 : ""), letraTab)) { Border = 1, BorderColor = new BaseColor(240, 240, 240) }; tablaDatos4.AddCell(Valida6); } pdfDoc.Add(tablaDatos4); pdfDoc.Close(); ruta = "/PdfTemp/" + nombreArchivo; } catch (Exception ex) { ex.Message.ToString(); } return(ruta); } }