Example #1
0
        void CargarSelectList(ref Calendario445ViewModel modelView, string[] combos)
        {
            string spras_id = FnCommon.ObtenerSprasId(db, User.Identity.Name);

            for (int i = 0; i < combos.Length; i++)
            {
                string[] combosSplit = combos[i].Split(',');
                string   combo       = combosSplit[0];
                string   id          = combosSplit.Length > 1 ? combosSplit[1] : null;

                switch (combo)
                {
                case CMB_SOCIEDADES:
                    modelView.sociedades = sociedadesDao.ComboSociedades(TATConstantes.ACCION_LISTA_SOCIEDADES, id);
                    break;

                case CMB_PERIODOS:
                    int?idAux = (id == null ? null : (int?)int.Parse(id));
                    modelView.periodos = periodosDao.ComboPeriodos(spras_id, idAux);
                    break;

                case CMB_USUARIOS:
                    modelView.usuarios = usuariosDao.ComboUsuarios(TATConstantes.ACCION_LISTA_USUARIO, id);
                    break;

                case CMB_TIPOSSOLICITUD:
                    modelView.cmbTiposSolicitud = tiposSolicitudesDao.ComboTiposSolicitudes(spras_id, id);
                    break;

                default:
                    break;
                }
            }
        }
        bool ValidarPeriodoExistente(CALENDARIO_AC calendarioAc)
        {
            int    pagina_id = 530;
            string spras_id  = FnCommon.ObtenerSprasId(db, User.Identity.Name);
            int    noExiste  = 0;

            sociedadesDao.ListaSociedades(TATConstantes.ACCION_LISTA_SOCIEDADES).ForEach(x =>
            {
                tiposSolicitudesDao.ListaTiposSolicitudes(spras_id, null).ForEach(z =>
                {
                    calendarioAc.SOCIEDAD_ID = x.BUKRS;
                    calendarioAc.TSOL_ID     = z.TSOL_ID;
                    if (!db.CALENDARIO_AC.Any(y => y.EJERCICIO == calendarioAc.EJERCICIO && y.PERIODO == calendarioAc.PERIODO &&
                                              y.SOCIEDAD_ID == calendarioAc.SOCIEDAD_ID && y.TSOL_ID == calendarioAc.TSOL_ID))
                    {
                        noExiste++;
                    }
                });
            });
            if (noExiste == 0)
            {
                ViewBag.mnjError = FnCommon.ObtenerTextoMnj(db, pagina_id, "lbl_mnjExistePeriodo", User.Identity.Name);
                return(false);
            }
            return(true);
        }
Example #3
0
        public List <MATERIAL> ListaMateriales(string prefix, string vkorg, string vtweg, string user_id)
        {
            string spras_id = FnCommon.ObtenerSprasId(db, user_id);

            if (prefix == null)
            {
                prefix = "";
            }

            List <MATERIAL> materiales = db.Database.SqlQuery <MATERIAL>("CPS_LISTA_MATERIALES @SPRAS_ID,@VKORG,@VTWEG,@PREFIX",
                                                                         new SqlParameter("@SPRAS_ID", spras_id),
                                                                         new SqlParameter("@VKORG", vkorg),
                                                                         new SqlParameter("@VTWEG", vtweg),
                                                                         new SqlParameter("@PREFIX", prefix)).ToList();

            return(materiales);
        }
Example #4
0
        public List <DOCUMENTOM_MOD> ListaMaterialGroupsMateriales(string vkorg, string spart, string kunnr, string soc_id, int aii, int mii, int aff, int mff, string user_id)
        {
            if (!db.CONFDIST_CAT.Any(x => x.SOCIEDAD_ID == soc_id))
            {
                return(new List <DOCUMENTOM_MOD>());
            }
            db.Database.CommandTimeout = 180;
            string spras_id = FnCommon.ObtenerSprasId(db, user_id);
            List <DOCUMENTOM_MOD> materialgp = db.Database.SqlQuery <DOCUMENTOM_MOD>("CPS_LISTA_MATERIALGP_MATERIALES @SOCIEDAD_ID,@VKORG,@SPART,@KUNNR,@SPRAS_ID,@aii,@mii,@aff,@mff",
                                                                                     new SqlParameter("@SOCIEDAD_ID", soc_id),
                                                                                     new SqlParameter("@VKORG", vkorg),
                                                                                     new SqlParameter("@SPART", spart),
                                                                                     new SqlParameter("@KUNNR", kunnr),
                                                                                     new SqlParameter("@SPRAS_ID", spras_id),
                                                                                     new SqlParameter("@aii", aii),
                                                                                     new SqlParameter("@mii", mii),
                                                                                     new SqlParameter("@aff", aff),
                                                                                     new SqlParameter("@mff", mff)).ToList();

            return(materialgp);
        }
Example #5
0
        public ActionResult ListModAutorizador(string sociedad_id, decimal?num_doci, decimal?num_docf, DateTime?fechai, DateTime?fechaf, string kunnr, string usuarioa_id, string usuario_id)
        {
            if (!usuValidateLogin.validaUsuario(User.Identity.Name))
            {
                FormsAuthentication.SignOut();
                return(Json(new
                {
                    redirectUrl = Url.Action("Index", "Home"),
                    isRedirect = true
                }, JsonRequestBehavior.AllowGet));
            }
            int pagina_id = 240;//ID EN BASE DE DATOS

            FnCommon.ObtenerTextos(db, pagina_id, User.Identity.Name, this.ControllerContext.Controller);
            ViewBag.spras_id = FnCommon.ObtenerSprasId(db, User.Identity.Name);

            ModificacionesGlobalesViewModel modelView = new ModificacionesGlobalesViewModel
            {
                solicitudPorAprobar = solicitudesDao.ListaSolicitudesPorAprobar(sociedad_id, num_doci, num_docf, fechai, fechaf, kunnr, usuarioa_id, usuario_id)
            };

            return(View(modelView));
        }
Example #6
0
        public ActionResult Procesa(FLUJO f)
        {
            FLUJO actual = db.FLUJOes.Where(a => a.NUM_DOC.Equals(f.NUM_DOC)).OrderByDescending(a => a.POS).FirstOrDefault();

            DOCUMENTO      d   = db.DOCUMENTOes.Find(f.NUM_DOC);
            List <TS_FORM> tts = db.TS_FORM.Where(a => a.BUKRS_ID.Equals(d.SOCIEDAD_ID) && a.LAND_ID.Equals(d.PAIS_ID) && a.TS_CAMPO.ACTIVO).ToList();

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

            FLUJO flujo = actual;

            flujo.ESTATUS     = f.ESTATUS;
            flujo.FECHAM      = DateTime.Now;
            flujo.COMENTARIO  = f.COMENTARIO;
            flujo.USUARIOA_ID = User.Identity.Name;
            ProcesaFlujo pf = new ProcesaFlujo();

            if (ModelState.IsValid)
            {
                string res = pf.procesa(flujo, "");

                using (TruequeEntities db1 = new TruequeEntities())
                {
                    FLUJO     ff   = db1.FLUJOes.Where(x => x.NUM_DOC == flujo.NUM_DOC).Include(x => x.WORKFP).OrderByDescending(x => x.POS).FirstOrDefault();
                    Estatus   es   = new Estatus();//RSG 18.09.2018
                    DOCUMENTO ddoc = db1.DOCUMENTOes.Find(f.NUM_DOC);
                    ff.STATUS           = es.getEstatus(ddoc);
                    db1.Entry(ff).State = EntityState.Modified;
                    db1.SaveChanges();
                }


                if (res.Equals("0"))//Aprobado
                {
                    ////return RedirectToAction("Details", "Solicitudes", new { id = flujo.NUM_DOC });
                    return(RedirectToAction("Index", "Solicitudes"));
                }
                else if (res.Equals("1") || res.Equals("2") || res.Equals("3"))//CORREO
                {
                    Email     em           = new Email();
                    string    UrlDirectory = Request.Url.GetLeftPart(UriPartial.Path);
                    string    image        = Server.MapPath("~/images/logo_kellogg.png");
                    DOCUMENTO doc          = db.DOCUMENTOes.Where(x => x.NUM_DOC == flujo.NUM_DOC).First();
                    string    imageFlag    = Server.MapPath("~/images/flags/mini/" + doc.PAIS_ID + ".png");
                    string    spras_id     = FnCommon.ObtenerSprasId(db, User.Identity.Name);
                    if (res.Equals("1") || res.Equals("2"))//CORREO
                    {
                        em.enviaMailC(f.NUM_DOC, true, spras_id, UrlDirectory, "Index", image, imageFlag);
                    }
                    else
                    {
                        em.enviaMailC(f.NUM_DOC, true, spras_id, UrlDirectory, "Details", image, imageFlag);
                        return(RedirectToAction("Index", "Home"));
                    }
                    ////return RedirectToAction("Details", "Solicitudes", new { id = flujo.NUM_DOC });
                    return(RedirectToAction("Index", "Solicitudes"));
                }
                else
                {
                    TempData["error"] = res;
                    ////return RedirectToAction("Details", "Solicitudes", new { id = flujo.NUM_DOC });
                    return(RedirectToAction("Index", "Solicitudes"));
                }
            }

            int    pagina = 103; //ID EN BASE DE DATOS
            string u      = User.Identity.Name;
            var    user   = db.USUARIOs.Where(a => a.ID.Equals(u)).FirstOrDefault();

            FnCommon.ObtenerConfPage(db, pagina, User.Identity.Name, this.ControllerContext.Controller);
            try
            {
                string p = Session["pais"].ToString();
                ViewBag.pais = p + ".png";
            }
            catch
            {
                ////return RedirectToAction("Pais", "Home");
            }
            Session["spras"] = user.SPRAS_ID;

            return(View(f));
        }
        public void generarExcelHome(List <FACTURASCONF> lst, string ruta)
        {
            string spras_id  = FnCommon.ObtenerSprasId(db, User.Identity.Name);
            var    workbook  = new XLWorkbook();
            var    worksheet = workbook.Worksheets.Add("Sheet 1");

            try
            {
                //Creamos el encabezado
                worksheet.Cell("A1").Value = new[]
                { new { COL = "CO. CODE" } };
                worksheet.Cell("B1").Value = new[]
                { new { COL = "PAÍS" } };
                worksheet.Cell("C1").Value = new[]
                { new { COL = "TIPO SOLICITUD" } };
                worksheet.Cell("D1").Value = new[]
                { new { COL = "FACTURA" } };
                worksheet.Cell("E1").Value = new[]
                { new { COL = "FECHA" } };
                worksheet.Cell("F1").Value = new[]
                { new { COL = "PROVEEDOR" } };
                worksheet.Cell("G1").Value = new[]
                { new { COL = "CONTROL" } };
                worksheet.Cell("H1").Value = new[]
                { new { COL = "AUTORIZACIÓN" } };
                worksheet.Cell("I1").Value = new[]
                { new { COL = "VENCIMIENTO" } };
                worksheet.Cell("J1").Value = new[]
                { new { COL = "FACTURA KELLOGG" } };
                worksheet.Cell("K1").Value = new[]
                { new { COL = "AÑO" } };
                worksheet.Cell("L1").Value = new[]
                { new { COL = "DOC. FACTURA" } };
                worksheet.Cell("M1").Value = new[]
                { new { COL = "FOLIO" } };
                worksheet.Cell("N1").Value = new[]
                { new { COL = "IMPORTE" } };
                worksheet.Cell("O1").Value = new[]
                { new { COL = "CLIENTE" } };
                worksheet.Cell("P1").Value = new[]
                { new { COL = "DESCRIPCIÓN" } };
                worksheet.Cell("Q1").Value = new[]
                { new { COL = "CO. CODE" } };
                worksheet.Cell("R1").Value = new[]
                { new { COL = "ACTIVO" } };

                for (int i = 2; i <= (lst.Count + 1); i++)
                {
                    string   sociedad_id = lst[i - 2].SOCIEDAD_ID;
                    string   tsol_id     = lst[i - 2].TSOL;
                    SOCIEDAD sociedad    = db.SOCIEDADs.First(x => x.BUKRS == sociedad_id);
                    TSOL     tSol        = db.TSOLs.Include(x => x.TSOLTs).First(x => x.ID == tsol_id);

                    worksheet.Cell("A" + i).Value = new[]
                    { new { COL = (sociedad.BUKRS + " - " + sociedad.BUTXT) } };
                    worksheet.Cell("B" + i).Value = new[]
                    { new { COL = lst[i - 2].PAIS_ID } };
                    worksheet.Cell("C" + i).Value = new[]
                    { new { COL = (tSol.ID + " - " + (tSol.TSOLTs.Any(x => x.SPRAS_ID == spras_id)?tSol.TSOLTs.First(x => x.SPRAS_ID == spras_id).TXT50:tSol.DESCRIPCION)) } };
                    worksheet.Cell("D" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].FACTURA) } };
                    worksheet.Cell("E" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].FECHA) } };
                    worksheet.Cell("F" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].PROVEEDOR) } };
                    worksheet.Cell("G" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].CONTROL) } };
                    worksheet.Cell("H" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].AUTORIZACION) } };
                    worksheet.Cell("I" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].VENCIMIENTO) } };
                    worksheet.Cell("J" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].FACTURAK) } };
                    worksheet.Cell("K" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].EJERCICIOK) } };
                    worksheet.Cell("L" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].BILL_DOC) } };
                    worksheet.Cell("M" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].IMPORTE_FAC) } };
                    worksheet.Cell("N" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].BELNR) } };
                    worksheet.Cell("O" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].DESCRIPCION) } };
                    worksheet.Cell("P" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].BELNR) } };
                    worksheet.Cell("Q" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].SOCIEDAD) } };
                    worksheet.Cell("R" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].ACTIVO) } };
                }
                var rt = ruta + @"\DocRel" + DateTime.Now.ToShortDateString() + ".xlsx";
                workbook.SaveAs(rt);
            }
            catch (Exception e)
            {
                Log.ErrorLogApp(e, "DocRelacion", "generarExcelHome");
            }
        }
        public ActionResult Create(Calendario445ViewModel modelView)
        {
            int pagina_id = 531;//ID EN BASE DE DATOS

            try
            {
                CALENDARIO_AC calendarioAc = modelView.calendario445;
                calendarioAc.ACTIVO      = true;
                calendarioAc.USUARIOC_ID = User.Identity.Name;
                calendarioAc.FECHAC      = DateTime.Now;

                if (!ValidarPeriodoExistente(calendarioAc) || !ValidarFechas(calendarioAc))
                {
                    throw (new Exception());
                }

                string spras_id = FnCommon.ObtenerSprasId(db, User.Identity.Name);
                sociedadesDao.ListaSociedades(TATConstantes.ACCION_LISTA_SOCIEDADES).ForEach(x =>
                {
                    tiposSolicitudesDao.ListaTiposSolicitudes(spras_id, null).ForEach(z =>
                    {
                        calendarioAc.SOCIEDAD_ID = x.BUKRS;
                        calendarioAc.TSOL_ID     = z.TSOL_ID;
                        if (!db.CALENDARIO_AC.Any(y =>
                                                  y.EJERCICIO == calendarioAc.EJERCICIO &&
                                                  y.PERIODO == calendarioAc.PERIODO &&
                                                  y.SOCIEDAD_ID == calendarioAc.SOCIEDAD_ID &&
                                                  y.TSOL_ID == calendarioAc.TSOL_ID))
                        {
                            db.CALENDARIO_AC.Add(new CALENDARIO_AC
                            {
                                EJERCICIO   = calendarioAc.EJERCICIO,
                                PERIODO     = calendarioAc.PERIODO,
                                SOCIEDAD_ID = calendarioAc.SOCIEDAD_ID,
                                TSOL_ID     = calendarioAc.TSOL_ID,
                                PRE_FROMF   = calendarioAc.PRE_FROMF,
                                PRE_FROMH   = calendarioAc.PRE_FROMH,
                                PRE_TOF     = calendarioAc.PRE_TOF,
                                PRE_TOH     = calendarioAc.PRE_TOH,
                                CIE_FROMF   = calendarioAc.CIE_FROMF,
                                CIE_FROMH   = calendarioAc.CIE_FROMH,
                                CIE_TOF     = calendarioAc.CIE_TOF,
                                CIE_TOH     = calendarioAc.CIE_TOH,
                                USUARIOC_ID = calendarioAc.USUARIOC_ID,
                                FECHAC      = calendarioAc.FECHAC,
                                USUARIOM_ID = calendarioAc.USUARIOM_ID,
                                FECHAM      = calendarioAc.FECHAM,
                                ACTIVO      = calendarioAc.ACTIVO
                            });
                            db.SaveChanges();
                        }
                    });
                });



                return(RedirectToAction("Index"));
            }
            catch (Exception)
            {
                FnCommon.ObtenerConfPage(db, pagina_id, User.Identity.Name, this.ControllerContext.Controller);
                CargarSelectList(ref modelView, new string[] { CMB_PERIODOS, CMB_EJERCICIO });
                return(View(modelView));
            }
        }
        public ActionResult Create(AlertaViewModel modelView)
        {
            int pagina_id = 541;//ID EN BASE DE DATOS

            try
            {
                WARNINGP warningpAux = modelView.alerta;
                bool     reverso     = (warningpAux.TSOL_ID == "REV");
                string   id_padre    = "";
                string   tipo_padre  = "";
                string   spras_id    = FnCommon.ObtenerSprasId(db, User.Identity.Name);
                if (!reverso && warningpAux.TSOL_ID.Contains("|"))
                {
                    id_padre   = warningpAux.TSOL_ID.Split('|')[0];
                    tipo_padre = warningpAux.TSOL_ID.Split('|')[1];
                }
                List <SelectTreeItem> tiposSolicitudesT = tiposSolicitudesDao.ObtenerItemsTSOLT(id_padre, tipo_padre, spras_id, reverso);
                List <WARNINGP>       warningpListAux   = new List <WARNINGP>();
                bool valido = true;
                foreach (string sociedad_id in modelView.sociedadesSelected)
                {
                    foreach (SelectTreeItem tsolt in tiposSolicitudesT)
                    {
                        WARNINGP warningP = new WARNINGP
                        {
                            ID          = warningpAux.ID.Replace(" ", "_") + "_" + sociedad_id + "_" + tsolt.value,
                            DESCR       = warningpAux.DESCR,
                            SOCIEDAD_ID = sociedad_id,
                            TIPO        = warningpAux.TIPO,
                            TSOL_ID     = tsolt.value,
                            CAMPOVAL_ID = warningpAux.CAMPO_ID,
                            PAGINA_ID   = warningpAux.PAGINA_ID,
                            CAMPO_ID    = warningpAux.CAMPO_ID,
                            ACCION      = "focusout",
                            TAB_ID      = warningpAux.TAB_ID
                        };
                        warningpListAux.Add(warningP);
                        if (!ValidarAlertaExistente(warningP) || !ValidarCondExistente(warningP, modelView.alertaCondiciones))
                        {
                            valido = false;
                        }
                    }
                }
                if (!valido)
                {
                    throw (new Exception());
                }
                List <WARNING_COND> warningconds = modelView.alertaCondiciones;
                List <WARNINGPT>    warningts    = modelView.alertaMensajes;
                foreach (WARNINGP warningP in warningpListAux)
                {
                    //Guardar Alerta
                    db.WARNINGPs.Add(warningP);

                    //Guardar Mensajes
                    warningts.ForEach(x =>
                    {
                        x.TAB_ID     = warningP.TAB_ID;
                        x.WARNING_ID = warningP.ID;
                        db.WARNINGPTs.Add(new WARNINGPT {
                            SPRAS_ID   = x.SPRAS_ID,
                            TAB_ID     = warningP.TAB_ID,
                            WARNING_ID = warningP.ID,
                            TXT100     = x.TXT100
                        });
                    });

                    //Guardar Condiciones
                    warningconds.ForEach(x =>
                    {
                        if (x.CONDICION_ID != null && x.VALOR_COMP != null)
                        {
                            db.WARNING_COND.Add(new WARNING_COND {
                                TAB_ID       = warningP.TAB_ID,
                                WARNING_ID   = warningP.ID,
                                POS          = x.POS,
                                ANDOR        = x.ANDOR,
                                ORAND        = x.ORAND,
                                CONDICION_ID = x.CONDICION_ID,
                                ACTIVO       = true,
                                VALOR_COMP   = (x.VALOR_COMP == "v"?"": x.VALOR_COMP)
                            });
                        }
                    });
                    db.SaveChanges();
                }

                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                Log.ErrorLogApp(e, "Alertas", "Create");
                FnCommon.ObtenerConfPage(db, pagina_id, User.Identity.Name, this.ControllerContext.Controller);
                CargarSelectList(ref modelView, new string[] {
                    CMB_SOCIEDADES,
                    CMBTREE_TIPOSSOLICITUD,
                    CMB_TABS,
                    CMB_TIPOS,
                    CMB_CAMPOS,
                    CMB_CONDCAMPOS,
                    CMB_CONDVALORES
                },
                                 modelView.alerta.TAB_ID,
                                 true,
                                 modelView.alertaCondiciones[0].CONDICION_ID,
                                 modelView.alertaCondiciones[1].CONDICION_ID);
                return(View(modelView));
            }
        }
        void CargarSelectList(ref AlertaViewModel modelView, string[] combos, string tab_id = null, bool?activo = null, int?cond_id = null, int?cond_id1 = null)
        {
            string spras_id = FnCommon.ObtenerSprasId(db, User.Identity.Name);

            for (int i = 0; i < combos.Length; i++)
            {
                string[] combosSplit = combos[i].Split(',');
                string   combo       = combosSplit[0];
                string   id          = combosSplit.Length > 1 ? combosSplit[1] : null;
                int?     idAux       = null;
                switch (combo)
                {
                case CMB_SOCIEDADES:
                    modelView.sociedades = sociedadesDao.ComboSociedades(TATConstantes.ACCION_LISTA_SOCIEDADES, id);
                    break;

                case CMBTREE_TIPOSSOLICITUD:
                    modelView.treeTiposSolicitud = tiposSolicitudesDao.TreePadresTiposSolicitudes(spras_id);
                    break;

                case CMB_TIPOSSOLICITUD:
                    modelView.cmbTiposSolicitud = tiposSolicitudesDao.ComboTiposSolicitudes(spras_id, id);
                    break;

                case CMB_TABS:
                    modelView.tabs = tabsDao.ComboTabs(spras_id, activo, id);
                    break;

                case CMB_CAMPOS:
                    modelView.campos = camposDao.ComboCamposPorTabId(spras_id, tab_id, activo, id);
                    break;

                case CMB_TIPOS:
                    int    pagina_id = 540; //ID EN BASE DE DATOS
                    string error     = FnCommon.ObtenerTextoMnj(db, pagina_id, "lbl_error", User.Identity.Name);
                    string alerta    = FnCommon.ObtenerTextoMnj(db, pagina_id, "lbl_alerta", User.Identity.Name);
                    modelView.tipos = new List <SelectListItem> {
                        new SelectListItem {
                            Value = "A", Text = "A - " + alerta
                        },
                        new SelectListItem {
                            Value = "E", Text = "E - " + error
                        }
                    };
                    break;

                case CMB_CONDCAMPOS:
                    idAux = (id == null ? null : (int?)int.Parse(id));
                    modelView.condCampos = db.CONDICIONs
                                           .Where(x => x.ACTIVO == true && (x.COND == "=" || x.COND == "!=" || x.COND == ">" || x.COND == "<"))
                                           .Join(db.CONDICIONTs, c => c.ID, ct => ct.CONDICION_ID, (c, ct) => ct)
                                           .Where(x => x.SPRAS_ID == spras_id && (x.CONDICION_ID == idAux || idAux == null))
                                           .Select(x => new SelectListItem
                    {
                        Value = x.CONDICION_ID.ToString(),
                        Text  = x.TXT050
                    }).ToList();
                    modelView.condCampos1 = modelView.condCampos
                                            .Select(x => new SelectListItem
                    {
                        Value = x.Value,
                        Text  = x.Text
                    }).ToList();
                    break;

                case CMB_CONDVALORES:
                    idAux = (id == null ? null : (int?)int.Parse(id));
                    List <SelectListItem> condValoresAux = db.CONDICIONs
                                                           .Where(x => x.ACTIVO == true && (x.COND == "e" || x.COND == "dec" || x.COND == "0" || x.COND == "n" || x.COND == "c" || x.COND == ""))
                                                           .Join(db.CONDICIONTs, c => c.ID, ct => ct.CONDICION_ID, (c, ct) => ct)
                                                           .Where(x => x.SPRAS_ID == spras_id && (x.CONDICION_ID == idAux || idAux == null))
                                                           .Select(x => new SelectListItem
                    {
                        Value = (x.CONDICION.COND == "" ? "v" : x.CONDICION.COND),
                        Text  = x.TXT050
                    }).ToList();

                    modelView.condValores = ObtenerCondValores(condValoresAux, cond_id);

                    if (cond_id1 != null)
                    {
                        modelView.condValores1 = ObtenerCondValores(condValoresAux, cond_id1);
                    }

                    break;

                default:
                    break;
                }
            }
        }
        // GET: CartaD/Details/5
        public ActionResult Create(decimal id, bool?Viewlista)
        {
            int pagina_id = 232; //ID EN BASE DE DATOS

            if (Viewlista == true)
            {
                TempData["return"]     = "LIST";
                TempData["ESTATUS_WF"] = TempData["swf"];
            }
            using (TAT001Entities db = new TAT001Entities())
            {
                string spras_id = FnCommon.ObtenerSprasId(db, User.Identity.Name);
                FnCommon.ObtenerConfPage(db, pagina_id, User.Identity.Name, this.ControllerContext.Controller);

                ViewBag.de  = FnCommonCarta.ObtenerTexto(db, spras_id, "de");
                ViewBag.al  = FnCommonCarta.ObtenerTexto(db, spras_id, "a");
                ViewBag.mon = FnCommonCarta.ObtenerTexto(db, spras_id, "monto");

                try
                {
                    string p = Session["pais"].ToString();
                    ViewBag.pais = p + ".png";
                }
                catch
                {
                    //ViewBag.pais = "mx.png";
                    //return RedirectToAction("Pais", "Home");
                }

                DOCUMENTO d  = new DOCUMENTO();
                PUESTOT   pp = new PUESTOT();
                d = db.DOCUMENTOes.Include("SOCIEDAD").Include("USUARIO").Where(a => a.NUM_DOC.Equals(id)).First();

                ViewBag.dec = d.PAI.DECIMAL;//LEJGG 090718

                List <string> lista = new List <string>();
                List <string> armadoCuerpoTabStr = new List <string>();
                List <int>    numfilasTabla      = new List <int>();
                HeaderFooter  hfc = new HeaderFooter();
                hfc.eliminaArchivos();
                CartaD cv = new CartaD();

                if (d != null)
                {
                    d.CLIENTE = db.CLIENTEs.Where(a => a.VKORG.Equals(d.VKORG) &&
                                                  a.VTWEG.Equals(d.VTWEG) &&
                                                  a.SPART.Equals(d.SPART) &&
                                                  a.KUNNR.Equals(d.PAYER_ID)).First();
                    pp = db.PUESTOTs.Where(a => a.SPRAS_ID.Equals(spras_id) && a.PUESTO_ID == d.USUARIO.PUESTO_ID).FirstOrDefault();
                }
                ViewBag.legal = db.LEYENDAs.Where(a => a.PAIS_ID.Equals(d.PAIS_ID) && a.ACTIVO == true).FirstOrDefault();


                /////////////////////////////////////////////DATOS PARA LA TABLA 1 MATERIALES EN LA VISTA///////////////////////////////////////

                FormatosC format    = new FormatosC();
                string    decimales = d.PAI.DECIMAL; //B20180730 MGC 2018.07.30 Formatos

                //B20180720P MGC 2018.07.25
                bool editmonto = false;
                var  cabeza    = new List <string>();
                List <listacuerpoc> armadoCuerpoTab = null;
                bool varligada = Convert.ToBoolean(d.LIGADA);
                if (!varligada)
                {
                    FnCommonCarta.ObtenerCartaProductos(db, d, null, null, spras_id, false,
                                                        ref lista,
                                                        ref armadoCuerpoTab,
                                                        ref armadoCuerpoTabStr,
                                                        ref numfilasTabla,
                                                        ref cabeza,
                                                        ref editmonto);

                    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                }
                /////////////////////////////////////////////DATOS PARA LA TABLA 2 RECURRENCIAS EN LA VISTA///////////////////////////////////////
                var           cabeza2          = new List <string>();
                var           cabeza3          = new List <string>();
                List <string> armadoCuerpoTab2 = new List <string>();
                List <string> armadoCuerpoTab3 = new List <string>();
                int           rowsRecs         = 0;
                int           rowsObjQs        = 0;
                FnCommonCarta.ObtenerCartaRecurrentes(db, d, spras_id,
                                                      ref cabeza2,
                                                      ref armadoCuerpoTab2,
                                                      ref rowsRecs,
                                                      ref cabeza3,
                                                      ref armadoCuerpoTab3,
                                                      ref rowsObjQs,
                                                      false, format.toShow((decimal)d.MONTO_DOC_MD, decimales));//RSG 27.12.2018

                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

                //TABLA 1 MATERIALES
                cv.listaFechas      = lista;              //////////////RANGO DE FECHAS QUE DETERMINAN EL NUMERO DE TABLAS
                cv.numfilasTabla    = numfilasTabla;      ////NUMERO FILAS POR TABLA CALCULADA
                cv.listaCuerpo      = armadoCuerpoTabStr; ////NUMERO TOTAL DE FILAS CON LA INFO CORRESPONDIENTE QUE POSTERIORMENTE ES DISTRIBUIDA EN LAS TABLAS
                cv.numColEncabezado = cabeza;             ////////NUMERO DE COLUMNAS PARA LAS TABLAS
                cv.secondTab_x      = true;
                cv.tercerTab_x      = true;
                cv.material_x       = (armadoCuerpoTabStr != null && armadoCuerpoTabStr.Any() && !string.IsNullOrEmpty(armadoCuerpoTabStr.First()));
                cv.costoun_x        = true;
                cv.apoyo_x          = true;
                cv.apoyop_x         = true;
                cv.costoap_x        = true;
                cv.precio_x         = true;
                //B20180726 MGC 2018.07.26
                cv.volumen_x    = true;
                cv.apoyototal_x = true;
                /////////////////////////////////

                //TABLA 2 RECURRENCIAS
                cv.numColEncabezado2 = cabeza2;          ////////NUMERO DE COLUMNAS PARA LAS TABLAS
                cv.numfilasTabla2    = rowsRecs;         //////NUMERO FILAS TOTAL PARA LA TABLA
                cv.listaCuerpoRec    = armadoCuerpoTab2; //NUMERO TOTAL DE FILAS CON LA INFO CORRESPONDIENTE
                ///////////////////////////////

                //TABLA 3 OBJECTIVO Q
                cv.numColEncabezado3 = cabeza3;          ////////NUMERO DE COLUMNAS PARA LAS TABLAS
                cv.numfilasTabla3    = rowsObjQs;        //////NUMERO FILAS TOTAL PARA LA TABLA
                cv.listaCuerpoObjQ   = armadoCuerpoTab3; //NUMERO TOTAL DE FILAS CON LA INFO CORRESPONDIENTE
                ///////////////////////////////

                cv.num_doc     = id;
                cv.company     = d.SOCIEDAD.BUTXT;
                cv.company_x   = true;
                cv.taxid       = d.SOCIEDAD.LAND;
                cv.taxid_x     = true;
                cv.concepto    = d.CONCEPTO;
                cv.concepto_x  = true;
                cv.cliente     = d.PAYER_NOMBRE;
                cv.cliente_x   = true;
                cv.puesto      = " ";
                cv.puesto_x    = false;
                cv.direccion   = d.CLIENTE.STRAS_GP;
                cv.direccion_x = true;
                cv.folio       = d.NUM_DOC.ToString();
                cv.folio_x     = true;
                cv.lugar       = d.CIUDAD.Trim() + ", " + d.ESTADO.Trim();
                cv.lugar_x     = true;
                cv.lugarFech   = DateTime.Now.ToShortDateString();
                cv.lugarFech_x = true;
                cv.payerId     = d.CLIENTE.PAYER;
                cv.payerId_x   = true;
                cv.payerNom    = d.CLIENTE.NAME1;
                cv.payerNom_x  = true;
                cv.estimado    = d.PAYER_NOMBRE;
                cv.estimado_x  = true;
                cv.mecanica    = d.NOTAS;
                cv.mecanica_x  = true;
                cv.nombreE     = d.USUARIO.NOMBRE + " " + d.USUARIO.APELLIDO_P + " " + d.USUARIO.APELLIDO_M;
                cv.nombreE_x   = true;
                if (pp != null)
                {
                    cv.puestoE = pp.TXT50;
                }
                cv.puestoE_x   = true;
                cv.companyC    = cv.company;
                cv.companyC_x  = true;
                cv.nombreC     = d.PAYER_NOMBRE;
                cv.nombreC_x   = true;
                cv.puestoC     = " ";
                cv.puestoC_x   = false;
                cv.companyCC   = d.CLIENTE.NAME1;
                cv.companyCC_x = true;
                if (ViewBag.legal != null)
                {
                    cv.legal = ViewBag.legal.LEYENDA1;
                }
                cv.legal_x       = true;
                cv.mail          = FnCommonCarta.ObtenerTexto(db, spras_id, "correo") + " " + d.PAYER_EMAIL;
                cv.mail_x        = true;
                cv.comentarios   = "";
                cv.comentarios_x = true;
                cv.compromisoK   = "";
                cv.compromisoK_x = true;
                cv.compromisoC   = "";
                cv.compromisoC_x = true;
                cv.monto_x       = true;
                cv.monto         = d.MONTO_DOC_MD.ToString();
                cv.moneda        = d.MONEDA_ID;

                //B20180720P MGC 2018.07.25
                ViewBag.varligada = varligada;

                //B20180801 MGC Formato
                decimal montod = 0;
                try
                {
                    montod = Convert.ToDecimal(cv.monto);
                }
                catch (Exception e)
                {
                    Log.ErrorLogApp(e, "CartaD", "Create");
                }

                ViewBag.montoformat = format.toShow(montod, decimales);

                return(View(cv));
            }
        }
        public ActionResult Create(CartaD v)
        {
            TempData["lista"] = TempData["vista"];
            using (TAT001Entities db = new TAT001Entities())
            {
                string spras_id = FnCommon.ObtenerSprasId(db, User.Identity.Name);

                List <string> encabezadoFech     = new List <string>();
                List <string> armadoCuerpoTabStr = new List <string>();
                List <int>    numfilasTab        = new List <int>();

                DOCUMENTO d = db.DOCUMENTOes.Find(v.num_doc);


                //Formatos para numeros
                d.PAI = db.PAIS.Where(a => a.LAND.Equals(d.PAIS_ID)).FirstOrDefault();
                // string miles = d.PAI.MILES; //B20180730 MGC 2018.07.30 Formatos
                string decimales = d.PAI.DECIMAL;   //B20180730 MGC 2018.07.30 Formatos

                FormatosC format = new FormatosC(); //B20180730 MGC 2018.07.30 Formatos

                /////////////////////////////////////////////DATOS PARA LA TABLA 1 MATERIALES EN EL PDF///////////////////////////////////////
                //B20180720P MGC 2018.07.25
                bool editmonto = false;
                var  cabeza    = new List <string>();
                List <listacuerpoc> armadoCuerpoTab = null;
                bool varligada = Convert.ToBoolean(d.LIGADA);
                if (!varligada)
                {
                    FnCommonCarta.ObtenerCartaProductos(db, d, v, null, spras_id, false,
                                                        ref encabezadoFech,
                                                        ref armadoCuerpoTab,
                                                        ref armadoCuerpoTabStr,
                                                        ref numfilasTab,
                                                        ref cabeza,
                                                        ref editmonto);

                    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                }
                /////////////////////////////////////////////DATOS PARA LA TABLA 2 RECURRENCIAS EN LA VISTA///////////////////////////////////////
                var           cabeza2          = new List <string>();
                var           cabeza3          = new List <string>();
                List <string> armadoCuerpoTab2 = new List <string>();
                List <string> armadoCuerpoTab3 = new List <string>();
                int           rowsRecs         = 0;
                int           rowsObjQs        = 0;
                FnCommonCarta.ObtenerCartaRecurrentes(db, d, spras_id,
                                                      ref cabeza2,
                                                      ref armadoCuerpoTab2,
                                                      ref rowsRecs,
                                                      ref cabeza3,
                                                      ref armadoCuerpoTab3,
                                                      ref rowsObjQs,
                                                      true, format.toShow((decimal)d.MONTO_DOC_MD, decimales));//RSG 27.12.2018

                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

                //MARCA DE AGUA
                bool aprob = false;
                bool apTS  = (d.ESTATUS_WF.Equals("P") && db.FLUJOes.Any(x => x.STATUS == "N  PRP  0" && x.NUM_DOC == d.NUM_DOC));
                aprob = (d.ESTATUS_WF.Equals("A") || d.ESTATUS_WF.Equals("S") || apTS);

                //PARA LA TABLA 1 MATERIALES
                v.numColEncabezado = cabeza;
                v.listaFechas      = encabezadoFech;
                v.numfilasTabla    = numfilasTab;
                v.listaCuerpo      = armadoCuerpoTabStr;
                //PARA LA TABLA 2 RECURRENCIAS
                v.numColEncabezado2 = cabeza2;
                v.numfilasTabla2    = rowsRecs;
                v.listaCuerpoRec    = armadoCuerpoTab2;

                //TABLA 3 OBJECTIVO Q
                v.numColEncabezado3 = cabeza3;          ////////NUMERO DE COLUMNAS PARA LAS TABLAS
                v.numfilasTabla3    = rowsObjQs;        //////NUMERO FILAS TOTAL PARA LA TABLA
                v.listaCuerpoObjQ   = armadoCuerpoTab3; //NUMERO TOTAL DE FILAS CON LA INFO CORRESPONDIENTE
                ///////////////////////////////
                //B20180801 MGC Formato
                decimal montod = 0;
                try
                {
                    montod = Convert.ToDecimal(v.monto);
                }
                catch (Exception e)
                {
                    Log.ErrorLogApp(e, "CartaD", "Create");
                }

                v.monto = format.toShow(montod, decimales);

                CartaD          carta      = v;
                CartaDEsqueleto cve        = new CartaDEsqueleto();
                string          recibeRuta = cve.crearPDF(carta, spras_id, aprob);
                return(RedirectToAction("Index", new { ruta = recibeRuta, ids = v.num_doc }));
            }
        }