public void ValidarBd(List <doc2> lstd, List <string> archivos)
        {
            int x = 0;

            for (int i = 0; i < lstd.Count; i++)
            {
                string correcto = "X";

                decimal de = Convert.ToDecimal(lstd[i].Posp.numero_wf);
                //Corroboro que exista la informacion
                //var ddd = db.DOCUMENTOes.Where(dds => dds.NUM_DOC == 1000000936).FirstOrDefault();
                var dA = db.DOCUMENTOes.Where(y => y.NUM_DOC == de).FirstOrDefault();
                //si encuentra una coincidencia
                if (dA != null)
                {
                    //MGC 16-10-2018 Eliminar sección de eliminar
                    //MGC 16-10-2018

                    DOCUMENTOPRE dp = new DOCUMENTOPRE();

                    dp.NUM_DOC = de;
                    dp.POS     = 1;

                    //para el estatus E/X
                    if (lstd[i].Posp.status == string.Empty)
                    {
                        //dA.ESTATUS_SAP = "X";
                        //Creación del preliminar
                        //if (lstd[i].accion == "P")
                        if (lstd[i].Posp.accion == "CREAR")
                        {
                            dp.MESSAGE = "Error Preliminar";

                            //Cancelación del preliminar
                        }
                        //else if (lstd[i].accion == "C")
                        else if (lstd[i].Posp.accion == "BORRAR" || lstd[i].Posp.accion == "BORRAR-CREAR")
                        {
                            dp.MESSAGE = "Error Cancelación";
                        }
                        //else if (lstd[i].accion == "A")
                        else if (lstd[i].Posp.accion == "CONTABILIZAR")
                        {
                            dp.MESSAGE = "Error contabilización SAP";
                        }

                        deleteMesg(de);//MGC 16-10-2018 Eliminar msg

                        db.DOCUMENTOPREs.Add(dp);
                        db.SaveChanges();
                    }
                    else if (lstd[i].Posp.status != string.Empty)
                    {
                        if (lstd[i].Posp.status.Equals("NOK"))
                        {
                            if (lstd[i].Posp.accion == "CREAR")
                            //if (lstd[i].accion == "P")
                            {
                                //MGC 30-10-2018 Modificación estatus, cambiar estatus SAP = E y estatus preliminar a E que quiere decir error SAP
                                dA.ESTATUS         = "N";
                                dA.ESTATUS_SAP     = "E";
                                dA.ESTATUS_PRE     = "E";
                                dA.ESTATUS_WF      = null; //MGC 26-11-2018 Marcar como error SAP
                                db.Entry(dA).State = EntityState.Modified;
                                db.SaveChanges();          //MGC 26-11-2018 Marcar como error SAP
                                //dp.MESSAGE = "Error Preliminar";

                                //MGC 30-10-2018 Guardar los mensajes para log
                                for (int j = 0; j < lstd[i].Pose.Count; j++)
                                {
                                    try
                                    {
                                        DOCUMENTOLOG dl = new DOCUMENTOLOG();

                                        dl.NUM_DOC   = dA.NUM_DOC;
                                        dl.TYPE_LINE = lstd[i].Pose[j].pos;
                                        dl.TYPE      = lstd[i].Pose[j].tipo;
                                        dl.NUMBER    = lstd[i].Pose[j].numero;
                                        dl.MESSAGE   = lstd[i].Pose[j].mensaje;
                                        dl.FECHA     = DateTime.Now;

                                        db.DOCUMENTOLOGs.Add(dl);
                                        db.SaveChanges();
                                    }
                                    catch (Exception e)
                                    {
                                    }
                                }
                            }
                            else if (lstd[i].Posp.accion == "BORRAR" || lstd[i].Posp.accion == "BORRAR-CREAR")
                            //else if (lstd[i].accion == "C")
                            {
                                //dp.MESSAGE = "Error Cancelación";



                                //MGC 03-12-2018 Guardar los mensajes para log
                                for (int j = 0; j < lstd[i].Pose.Count; j++)
                                {
                                    try
                                    {
                                        DOCUMENTOLOG dl = new DOCUMENTOLOG();

                                        dl.NUM_DOC   = dA.NUM_DOC;
                                        dl.TYPE_LINE = lstd[i].Pose[j].pos;
                                        dl.TYPE      = lstd[i].Pose[j].tipo;
                                        dl.NUMBER    = lstd[i].Pose[j].numero;
                                        dl.MESSAGE   = lstd[i].Pose[j].mensaje;
                                        dl.FECHA     = DateTime.Now;

                                        db.DOCUMENTOLOGs.Add(dl);
                                        db.SaveChanges();
                                    }
                                    catch (Exception e)
                                    {
                                    }
                                }

                                if (lstd[i].Posp.accion == "BORRAR-CREAR")
                                {
                                    dA.ESTATUS         = "N";
                                    dA.ESTATUS_SAP     = "E";
                                    dA.ESTATUS_PRE     = "E";
                                    dA.ESTATUS_WF      = null;
                                    db.Entry(dA).State = EntityState.Modified;
                                    db.SaveChanges();
                                }
                                else if (lstd[i].Posp.accion == "BORRAR")
                                {
                                    dA.ESTATUS_C       = "B";
                                    db.Entry(dA).State = EntityState.Modified;
                                    db.SaveChanges();
                                }
                            }
                            else if (lstd[i].Posp.accion == "CONTABILIZAR")
                            //else if (lstd[i].accion == "A")
                            {
                                //MGC 03-12-2018 Guardar los mensajes para log
                                for (int j = 0; j < lstd[i].Pose.Count; j++)
                                {
                                    try
                                    {
                                        DOCUMENTOLOG dl = new DOCUMENTOLOG();

                                        dl.NUM_DOC   = dA.NUM_DOC;
                                        dl.TYPE_LINE = lstd[i].Pose[j].pos;
                                        dl.TYPE      = lstd[i].Pose[j].tipo;
                                        dl.NUMBER    = lstd[i].Pose[j].numero;
                                        dl.MESSAGE   = lstd[i].Pose[j].mensaje;
                                        dl.FECHA     = DateTime.Now;

                                        db.DOCUMENTOLOGs.Add(dl);
                                        db.SaveChanges();
                                    }
                                    catch (Exception e)
                                    {
                                    }
                                }

                                dA.ESTATUS         = "C";
                                dA.ESTATUS_SAP     = "E";
                                dA.ESTATUS_WF      = "A";
                                dA.ESTATUS_PRE     = "G";
                                db.Entry(dA).State = EntityState.Modified;

                                dp.MESSAGE = "Error contabilización SAP";
                            }
                            //dp.MESSAGE = "Error Preliminar";
                            //deleteMesg(de);//MGC 16-10-2018 Eliminar msg
                            //db.DOCUMENTOPREs.Add(dp);
                            db.SaveChanges();
                        }
                        if (lstd[i].Posp.status.Equals("OK"))
                        {
                            //dA.ESTATUS_SAP = "X";
                            //Completar el flujo en el
                            try
                            {
                                ProcesaFlujo pf = new ProcesaFlujo();
                                if (lstd[i].Posp.accion == "CREAR")
                                //if (lstd[i].Posp.accion == "P")
                                {
                                    //MGC 30-10-2018 Guardar los mensajes para log
                                    for (int j = 0; j < lstd[i].Pose.Count; j++)
                                    {
                                        try
                                        {
                                            DOCUMENTOLOG dl = new DOCUMENTOLOG();

                                            dl.NUM_DOC   = dA.NUM_DOC;
                                            dl.TYPE_LINE = lstd[i].Pose[j].pos;
                                            dl.TYPE      = lstd[i].Pose[j].tipo;
                                            dl.NUMBER    = lstd[i].Pose[j].numero;
                                            dl.MESSAGE   = lstd[i].Pose[j].mensaje;
                                            dl.FECHA     = DateTime.Now;

                                            db.DOCUMENTOLOGs.Add(dl);
                                            db.SaveChanges();
                                        }
                                        catch (Exception e)
                                        {
                                        }
                                    }


                                    //Procesa el flujo de autorización
                                    correcto = pf.procesa2(dp.NUM_DOC, lstd[i]);//MGC 29-10-2018 Configuración de estatus
                                }
                                else if (lstd[i].Posp.accion == "BORRAR" || lstd[i].Posp.accion == "BORRAR-CREAR")
                                //else if (lstd[i].Posp.accion == "C")
                                {
                                    //MGC 30-10-2018 Guardar los mensajes para log
                                    for (int j = 0; j < lstd[i].Pose.Count; j++)
                                    {
                                        try
                                        {
                                            DOCUMENTOLOG dl = new DOCUMENTOLOG();

                                            dl.NUM_DOC   = dA.NUM_DOC;
                                            dl.TYPE_LINE = lstd[i].Pose[j].pos;
                                            dl.TYPE      = lstd[i].Pose[j].tipo;
                                            dl.NUMBER    = lstd[i].Pose[j].numero;
                                            dl.MESSAGE   = lstd[i].Pose[j].mensaje;
                                            dl.FECHA     = DateTime.Now;

                                            db.DOCUMENTOLOGs.Add(dl);
                                            db.SaveChanges();
                                        }
                                        catch (Exception e)
                                        {
                                        }
                                    }
                                    if (lstd[i].Posp.accion == "BORRAR-CREAR")
                                    {
                                        //Procesa el flujo de cancelación
                                        correcto = pf.procesaC(dp.NUM_DOC, lstd[i]);//MGC 29-10-2018 Configuración de estatus
                                    }
                                    //MGC 06-12-2018 Eliminar la solicitud ------------>
                                    else if (lstd[i].Posp.accion == "BORRAR")
                                    {
                                        //Procesa el flujo de cancelación
                                        correcto = pf.procesaCB(dp.NUM_DOC, lstd[i]);//MGC 29-10-2018 Configuración de estatus
                                    }
                                    //MGC 06-12-2018 Eliminar la solicitud ------------<
                                }
                                else if (lstd[i].Posp.accion == "CONTABILIZAR")
                                //else if (lstd[i].Posp.accion == "A")
                                {
                                    //MGC 30-10-2018 Guardar los mensajes para log
                                    for (int j = 0; j < lstd[i].Pose.Count; j++)
                                    {
                                        try
                                        {
                                            DOCUMENTOLOG dl = new DOCUMENTOLOG();

                                            dl.NUM_DOC   = dA.NUM_DOC;
                                            dl.TYPE_LINE = lstd[i].Pose[j].pos;
                                            dl.TYPE      = lstd[i].Pose[j].tipo;
                                            dl.NUMBER    = lstd[i].Pose[j].numero;
                                            dl.MESSAGE   = lstd[i].Pose[j].mensaje;
                                            dl.FECHA     = DateTime.Now;

                                            db.DOCUMENTOLOGs.Add(dl);
                                            db.SaveChanges();
                                        }
                                        catch (Exception e)
                                        {
                                        }
                                    }

                                    //Proceso de contabilización
                                    correcto = pf.procesaA(dp.NUM_DOC, lstd[i]);//MGC 29-10-2018 Configuración de estatus
                                }
                            } catch (Exception e)
                            {
                            }
                        }
                    }

                    try
                    {
                        //MGC 29-10-2018 Error porque mueve los datos ya actualizados en el flujo
                        //////Hacemos el update en BD
                        //if(lstd[i].Posp.accion == "CONTABILIZAR")
                        //{
                        //    dA.DOCUMENTO_SAP = lstd[i].Posp.Num_doc_pre;
                        //}
                        //else
                        //{
                        //    dA.NUM_PRE = lstd[i].Posp.Num_doc_pre;
                        //}

                        //dA.SOCIEDAD_PRE = lstd[i].Posp.Sociedad_pre;
                        //dA.EJERCICIO_PRE = lstd[i].Posp.Ejercicio_pre;//MGC 11-10-2018 No enviar correos
                        //db.Entry(dA).State = EntityState.Modified;//MGC 11-10-2018 No enviar correos
                        //x = x + db.SaveChanges();
                        ////Agregamos en la tabla los valores
                        //DOCUMENTOSAP ds = new DOCUMENTOSAP();
                        //ds.NUM_DOC = decimal.Parse(lstd[i].numero_wf);
                        //ds.BUKRS = lstd[i].Sociedad;
                        //ds.EJERCICIO = lstd[i].Año;
                        //ds.CUENTA_A = lstd[i].Cuenta_abono.ToString();
                        //ds.CUENTA_C = lstd[i].Cuenta_cargo.ToString();
                        //ds.BLART = lstd[i].blart;
                        //ds.KUNNR = lstd[i].kunnr;
                        //ds.DESCR = lstd[i].desc;
                        //ds.IMPORTE = lstd[i].importe;
                        //try
                        //{
                        //    db.DOCUMENTOSAPs.Add(ds);
                        //    db.SaveChanges();
                        //    moverArchivo(archivos[i]);
                        //}
                        //catch
                        //{
                        //    DOCUMENTOSAP ds1 = db.DOCUMENTOSAPs.Find(ds.NUM_DOC);
                        //    ds1.BUKRS = lstd[i].Sociedad;
                        //    ds1.EJERCICIO = lstd[i].Año;
                        //    ds1.CUENTA_A = lstd[i].Cuenta_abono.ToString();
                        //    ds1.CUENTA_C = lstd[i].Cuenta_cargo.ToString();
                        //    ds.BLART = lstd[i].blart;
                        //    ds.KUNNR = lstd[i].kunnr;
                        //    ds.DESCR = lstd[i].desc;
                        //    ds.IMPORTE = lstd[i].importe;
                        //    db.Entry(ds1).State = EntityState.Modified;

                        //    db.SaveChanges();
                        //    moverArchivo(archivos[i]);
                        //}
                        try
                        {
                            moverArchivo(archivos[i], correcto);
                        }
                        catch (Exception e)
                        {
                        }
                    }
                    catch (Exception varEx)
                    {
                        var ex = varEx.ToString();
                    }

                    //if (dA.DOCUMENTO_REF != null)
                    //{
                    //    if (dA.DOCUMENTO_REF > 0)
                    //    {
                    //        List<DOCUMENTO> rela = db.DOCUMENTOes.Where(a => a.DOCUMENTO_REF == dA.DOCUMENTO_REF).ToList();
                    //        DOCUMENTO parcial = rela.Where(a => a.TSOL_ID == "RP").FirstOrDefault();
                    //        if (parcial != null)
                    //        {
                    //            bool contabilizados = true;
                    //            foreach (DOCUMENTO rel in rela)
                    //            {
                    //                if (rel.TSOL_ID == "RP")
                    //                    if (rel.ESTATUS_SAP == "X")
                    //                        contabilizados = false;
                    //            }

                    //            if (contabilizados)
                    //            {
                    //                FLUJO f = db.FLUJOes.Where(a => a.NUM_DOC == parcial.NUM_DOC).OrderByDescending(a => a.POS).FirstOrDefault();
                    //                if (f != null)
                    //                {
                    //                    f.ESTATUS = "A";
                    //                    f.FECHAM = DateTime.Now;
                    //                    ProcesaFlujo p = new ProcesaFlujo();
                    //                    string res = p.procesa(f, "");

                    //                    if (res == "0" | res == "")
                    //                    {
                    //                        FLUJO f1 = db.FLUJOes.Where(a => a.NUM_DOC == parcial.NUM_DOC).OrderByDescending(a => a.POS).FirstOrDefault();

                    //                        f.ESTATUS = "A";
                    //                        f.FECHAM = DateTime.Now;
                    //                        res = p.procesa(f, "");
                    //                    }

                    //                    //if (res == "0" | res == "")
                    //                }
                    //            }

                    //        }
                    //    }
                    //}
                }
            }
            try
            {
                //if (x == lstd.Count)
                //{
                //    moverArchivos(archivos);
                //}
            }
            catch (Exception varEx)
            {
                var ex = varEx.ToString();
                throw new Exception(ex);
            }
        }
예제 #2
0
        //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);
        }