示例#1
0
        public string getHtml(decimal num_doc, string spras, List <ESTATU> ee)
        {
            TAT001Entities db = new TAT001Entities();

            DOCUMENTO d       = db.DOCUMENTOes.Find(num_doc);
            string    estatus = getEstatus(d);

            string ret = "";

            foreach (ESTATU e in ee)
            {
                foreach (ESTATUSR reg in e.ESTATUSRs)
                {
                    if (System.Text.RegularExpressions.Regex.IsMatch(estatus, reg.REGEX))
                    {
                        ESTATUST t = e.ESTATUSTs.FirstOrDefault(x => x.SPRAS_ID == spras);
                        if (t != null)
                        {
                            ret = "<span class='" + e.CLASS + "' data-badge-caption=''>" + t.TXT050 + "</span>";
                        }
                        else
                        {
                            ret = "<span class='" + e.CLASS + "' data-badge-caption=''>" + e.DESCRIPCION + "</span>";
                        }
                        if (ret != "")
                        {
                            return(ret);
                        }
                    }
                }
            }
            return(ret);
        }
示例#2
0
        public FLUJO determinaAgenteI(DOCUMENTO d, string user, string delega, int pos, DET_AGENTEC dah)
        {
            if (delega != null)
            {
                user = delega;
            }
            bool           fin = false;
            TAT001Entities db  = new TAT001Entities();
            DET_AGENTEC    dap = new DET_AGENTEC();
            USUARIO        u   = db.USUARIOs.Find(d.USUARIOC_ID);

            if (pos.Equals(0))
            {
                //dap = db.DET_AGENTEP.Where(a => a.SOCIEDAD_ID.Equals(dah.SOCIEDAD_ID) & a.PUESTOC_ID == dah.PUESTOC_ID &
                //                    a.VERSION == dah.VERSION & a.AGROUP_ID == dah.AGROUP_ID & a.POS == 1).FirstOrDefault();
                dap = db.DET_AGENTEC.Where(a => a.USUARIOC_ID.Equals(delega) & a.PAIS_ID == dah.PAIS_ID &
                                           a.VKORG.Equals(dah.VKORG) & a.VTWEG.Equals(dah.VTWEG) & a.SPART.Equals(dah.SPART) & a.KUNNR.Equals(dah.KUNNR) &
                                           a.VERSION == dah.VERSION & a.POS == 1).FirstOrDefault();
            }

            string agente = "";
            FLUJO  f      = new FLUJO();

            f.DETPOS = 0;
            if (!fin)
            {
                agente   = dap.USUARIOA_ID;
                f.DETPOS = dap.POS;
            }
            f.USUARIOA_ID = agente;
            return(f);
        }
示例#3
0
        // O nome do parâmetro id deve corresponder ao valor DataKeyNames definido no controle
        public void docsGridView_UpdateItem(DOCUMENTO item)
        {
            using (YourPELcs ctx = new YourPELcs())
            {
                DOCUMENTO doc = ctx.DOCUMENTOes.Find(item.idDocumento);
                // Carregue o item aqui, por exemplo item = MyDataLayer.Find(id);
                if (doc == null)
                {
                    // O item não foi encontrado
                    ModelState.AddModelError("", String.Format("O item com id {0} não foi encontrado", item.idDocumento));
                    return;
                }
                TryUpdateModel(doc);



                if (ModelState.IsValid)
                {
                    if ((doc.tema.ToString() != "Alimentação") &&
                        (doc.tema.ToString() != "Consumos Nocivos") &&
                        (doc.tema.ToString() != "Sexualidade"))
                    {
                        lblFeedback2.Text = "Campo 'Tema' inválido! ('Alimentação', 'Consumos Nocivos' ou 'Sexualidade')";
                    }
                    else
                    {
                        // Salve alterações aqui, por exemplo MyDataLayer.SaveChanges();
                        ctx.SaveChanges();
                    }
                }
            }
        }
示例#4
0
        public void Flujosprocesa(FLUJO f, string user)
        {
            WFARTHAEntities db = new WFARTHAEntities();

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

            FLUJO flujo = actual;

            flujo.ESTATUS     = f.ESTATUS;
            flujo.FECHAM      = DateTime.Now;
            flujo.COMENTARIO  = f.COMENTARIO;
            flujo.USUARIOA_ID = user;// User.Identity.Name;//MGC 21-11-2018 Validar si el creador y el solicitante es el mismo usuario

            flujo.ID_RUTA_A    = f.ID_RUTA_A;
            flujo.RUTA_VERSION = f.RUTA_VERSION;
            flujo.STEP_AUTO    = f.STEP_AUTO;
            string res = pf.procesa(flujo, "", false, "", "");

            if (res.Equals("0"))//Aprobado
            {
                //
            }
            else if (res.Equals("1") | res.Equals("2") | res.Equals("3"))//CORREO
            {
                //
            }
            else
            {
                //
            }
        }
示例#5
0
        public string getText(decimal num_doc, string spras)
        {
            string         ret = "";
            TAT001Entities db  = new TAT001Entities();

            DOCUMENTO     doc     = db.DOCUMENTOes.Find(num_doc);
            string        estatus = getEstatus(doc);
            List <ESTATU> ee      = db.ESTATUS.Where(x => x.ACTIVO).ToList();

            foreach (ESTATU e in ee)
            {
                foreach (ESTATUSR reg in e.ESTATUSRs)
                {
                    if (System.Text.RegularExpressions.Regex.IsMatch(estatus, reg.REGEX))
                    {
                        ESTATUST t = e.ESTATUSTs.FirstOrDefault(x => x.SPRAS_ID == spras);
                        if (t != null)
                        {
                            ret = t.TXT050;
                        }
                        else
                        {
                            ret = e.DESCRIPCION;
                        }
                        return(ret);
                    }
                }
            }
            return(ret);
        }
示例#6
0
        public FLUJO determinaAgenteI(DOCUMENTO d, string user, string delega, int pos, DET_AGENTECA dah, int step, FLUJO actual)//MGC 19-10-2018 Cambio a detonador
        {
            if (delega != null)
            {
                user = delega;
            }
            bool            fin = false;
            WFARTHAEntities db  = new WFARTHAEntities();
            DET_AGENTECA    dap = new DET_AGENTECA();
            USUARIO         u   = db.USUARIOs.Find(d.USUARIOC_ID);

            if (pos.Equals(0))
            {
                List <DET_AGENTECA> dal = db.DET_AGENTECA.Where(a => a.VERSION == dah.VERSION && a.ID_RUTA_AGENTE == dah.ID_RUTA_AGENTE && a.STEP_FASE == dah.STEP_FASE).OrderByDescending(a => a.VERSION).ToList();

                dap = detAgenteLimite(dal, Convert.ToDecimal(d.MONTO_DOC_MD), step, actual);//MGC 19-10-2018 Cambio a detonador
            }

            string agente = "";
            FLUJO  f      = new FLUJO();

            f.DETPOS = 0;
            if (!fin)
            {
                //agente = dap.USUARIOA_ID;
                agente = dap.AGENTE_SIG;
                //f.DETPOS = dap.POS;
                f.DETPOS    = dap.STEP_FASE;
                f.STEP_AUTO = dap.STEP_FASE;
            }
            f.USUARIOA_ID = agente;
            return(f);
        }
示例#7
0
        public ActionResult Solicitudes(decimal id, string spras)
        {
            //int pagina = 203; //ID EN BASE DE DATOS
            ViewBag.Title = "Solicitud";

            if (id == 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DOCUMENTO dOCUMENTO = db.DOCUMENTOes.Find(id);

            if (dOCUMENTO == null)
            {
                return(HttpNotFound());
            }
            dOCUMENTO.CLIENTE = db.CLIENTEs.Where(a => a.VKORG.Equals(dOCUMENTO.VKORG)
                                                  & a.VTWEG.Equals(dOCUMENTO.VTWEG)
                                                  & a.SPART.Equals(dOCUMENTO.SPART)
                                                  & a.KUNNR.Equals(dOCUMENTO.PAYER_ID)).First();
            ViewBag.workflow = db.FLUJOes.Where(a => a.NUM_DOC.Equals(id)).OrderBy(a => a.POS).ToList();
            ViewBag.acciones = db.FLUJOes.Where(a => a.NUM_DOC.Equals(id) & a.ESTATUS.Equals("P") & a.USUARIOA_ID.Equals(User.Identity.Name)).FirstOrDefault();
            ViewBag.url      = "http://localhost:64497";
            ViewBag.url      = "http://192.168.1.77";
            ViewBag.url      = Request.Url.AbsoluteUri.Replace(Request.Url.AbsolutePath, "");
            return(View(dOCUMENTO));
        }
示例#8
0
        public FileResult Descargar()
        {
            var dOCUMENTOes = db.DOCUMENTOes.Where(a => a.USUARIOC_ID.Equals(User.Identity.Name)).Include(d => d.TALL).Include(d => d.TSOL).Include(d => d.USUARIO).Include(d => d.CLIENTE).Include(d => d.PAI).Include(d => d.SOCIEDAD).ToList();
            var dOCUMENTOVs = db.DOCUMENTOVs.Where(a => a.USUARIOA_ID.Equals(User.Identity.Name)).ToList();
            var tsol        = db.TSOLs.ToList();
            var tall        = db.TALLs.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.TALL = tall.Where(a => a.ID.Equals(d.TALL_ID)).FirstOrDefault();
                dOCUMENTOes.Add(d);
            }
            dOCUMENTOes = dOCUMENTOes.Distinct(new DocumentoComparer()).ToList();
            dOCUMENTOes = dOCUMENTOes.OrderByDescending(a => a.FECHAC).OrderByDescending(a => a.NUM_DOC).ToList();
            generarExcelHome(dOCUMENTOes, Server.MapPath("~/pdfTemp/"));
            return(File(Server.MapPath("~/pdfTemp/Doc" + DateTime.Now.ToShortDateString() + ".xlsx"), "application /vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Doc" + DateTime.Now.ToShortDateString() + ".xlsx"));
        }
示例#9
0
        public ActionResult DeleteConfirmed(int id)
        {
            DOCUMENTO dOCUMENTO = db.DOCUMENTOes.Find(id);

            db.DOCUMENTOes.Remove(dOCUMENTO);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#10
0
        public ActionResult documentosDetalle( )
        {
            if (Session["id"] == null)
            {
                return(RedirectToAction("Login"));
            }
            List <DOCUMENTO> d = DOCUMENTO.getDocumentosTipo(Convert.ToInt16(Session["tipo"]));

            return(View(d));
        }
示例#11
0
 public ActionResult Edit([Bind(Include = "IdDocumento,Descripcion,Estado")] DOCUMENTO dOCUMENTO)
 {
     if (ModelState.IsValid)
     {
         db.Entry(dOCUMENTO).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(dOCUMENTO));
 }
示例#12
0
        public ActionResult Create([Bind(Include = "IdDocumento,Descripcion,Estado")] DOCUMENTO dOCUMENTO)
        {
            if (ModelState.IsValid)
            {
                db.DOCUMENTOes.Add(dOCUMENTO);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(dOCUMENTO));
        }
示例#13
0
 public ActionResult Edit([Bind(Include = "DocumentoId,VentaId,ClienteId,tipo")] DOCUMENTO dOCUMENTO)
 {
     if (ModelState.IsValid)
     {
         db.Entry(dOCUMENTO).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ClienteId = new SelectList(db.Clientes, "ClienteId", "nom_Cliente", dOCUMENTO.ClienteId);
     ViewBag.VentaId   = new SelectList(db.Ventas, "VentaId", "VentaId", dOCUMENTO.VentaId);
     return(View(dOCUMENTO));
 }
        //ENDFRT 13-12-2018 para realizar la actualización del tipo de cambio segun la fecha en el modal y la fechacon

        //MGC 20-12-2018 Archivo contable---------------------------------------------------------------------<

        public string TipoCambio(string moneda, decimal ndoc, DateTime?ndate)
        {
            var     correcto    = "0";
            var     _bol        = false;
            decimal?_tipocambio = 0;
            var     dia         = 0;

            //DateTime fechacon = P.FECHACON.Value; //MGC 14-12-2018 Fecha contabilización
            if (ndate != null)
            {                     //verificar fecha null
                DateTime?datem = ndate;
                while (dia < 100) // Buscar el tipo de cambio en caso de no encontrarlo buscar el mas cercano hacia abajo
                {
                    DateTime fecha = ndate.Value.AddDays(-dia);

                    string displayName = null;
                    var    keyValue    = db.TCAMBIOs.FirstOrDefault(a => a.TCURR == moneda & a.GDATU == fecha);
                    if (keyValue != null)
                    {
                        var lprov = db.TCAMBIOs.Where(a => a.TCURR == moneda & a.GDATU == fecha).First().UKURS;
                        _tipocambio = lprov;
                        break;
                    }
                    dia++;
                }
                DOCUMENTO dOCUMENTO = db.DOCUMENTOes.Find(ndoc);
                dOCUMENTO.TIPO_CAMBIO = _tipocambio;

                try
                {
                    db.Entry(dOCUMENTO).State = EntityState.Modified;
                    db.SaveChanges();
                }
                catch (Exception e)
                {
                }

                try
                {
                    //FLUJO fLUJO = db.FLUJOes.Find(F.WORKF_ID, F.WF_VERSION, F.WF_POS, F.NUM_DOC, F.POS, F.DETPOS);
                    FLUJO fLUJO = db.FLUJOes.Where(a => a.NUM_DOC.Equals(dOCUMENTO.NUM_DOC)).OrderBy(a => a.POS).FirstOrDefault();
                    fLUJO.FECHACON        = ndate;
                    db.Entry(fLUJO).State = EntityState.Modified;
                    db.SaveChanges();
                }
                catch (Exception e)
                {
                }
            }

            return(correcto);
        }
示例#15
0
        public static decimal ObtenerImpuesto(TruequeEntities db, DOCUMENTO D, ref bool esNC, string[] categorias = null)
        {
            decimal impuesto = 0.0M;

            string[] tsolImp = new string[] { "NC", "NCA", "NCAS", "NCAM", "NCASM", "NCS", "NCI", "NCIA", "NCIAS", "NCIS" };
            string   pais_id = D.PAIS_ID;

            if (tsolImp.Contains(D.TSOL_ID))
            {
                decimal KBETR;
                esNC = true;

                if (categorias != null)
                {
                    // Se obtiene Id de la categoria
                    Cadena   cad           = new Cadena();
                    string[] auxCategorias = categorias;
                    int      i             = 0;
                    bool     esMaterial    = false;
                    foreach (string cat in auxCategorias)
                    {
                        string catAux = cad.completaMaterial(cat);
                        if (!esMaterial)
                        {
                            esMaterial = db.MATERIALs.Any(x => x.ID == catAux);
                        }
                        if (esMaterial)
                        {
                            categorias[i] = db.MATERIALs.First(x => x.ID == catAux).MATERIALGP_ID;
                        }

                        i++;
                    }
                }
                if ((categorias != null && categorias.Any() && (categorias.Contains("605") || categorias.Contains("207"))) || db.DOCUMENTOPs.Any(x => (x.MATKL == "605" || x.MATKL == "207") && x.NUM_DOC == D.NUM_DOC))
                {
                    KBETR = db.IIMPUESTOes.First(x => x.MWSKZ == "A0").KBETR.Value;
                }
                else
                {
                    try
                    {
                        decimal concecutivo = db.CONPOSAPHs.First(x => x.TIPO_SOL == "NC" && x.SOCIEDAD == D.SOCIEDAD_ID && (x.TIPO_DOC == "YG" || x.TIPO_DOC == "DG")).CONSECUTIVO;
                        string  tax_code    = db.CONPOSAPPs.First(x => x.CONSECUTIVO == concecutivo).TAX_CODE;
                        KBETR = db.IIMPUESTOes.Any(x => x.MWSKZ == tax_code && x.LAND == pais_id) ? db.IIMPUESTOes.First(x => x.MWSKZ == tax_code && x.LAND == pais_id).KBETR.Value : 0.0M;
                    }
                    catch { KBETR = 0; }
                }
                impuesto = (D.MONTO_DOC_MD.Value * KBETR);
            }
            return(impuesto);
        }
示例#16
0
        // GET: Negociaciones/Delete/5
        public ActionResult Delete(decimal id)
        {
            //if (id == null)
            //{
            //    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            //}
            DOCUMENTO dOCUMENTO = db.DOCUMENTOes.Find(id);

            if (dOCUMENTO == null)
            {
                return(HttpNotFound());
            }
            return(View(dOCUMENTO));
        }
示例#17
0
        public ActionResult ListModSolicitudes(List <DOCUMENTO> solicitudes)
        {
            try
            {
                string contacto      = solicitudes[0].PAYER_NOMBRE;
                string emailContacto = solicitudes[0].PAYER_EMAIL;
                string estado        = solicitudes[0].ESTADO;
                string ciudad        = solicitudes[0].CIUDAD;
                string concepto      = solicitudes[0].CONCEPTO;
                string mecanica      = solicitudes[0].NOTAS;

                foreach (DOCUMENTO sol in solicitudes)
                {
                    DOCUMENTO docActual = db.DOCUMENTOes.Find(sol.NUM_DOC);
                    if (!string.IsNullOrEmpty(contacto))
                    {
                        docActual.PAYER_NOMBRE = contacto;
                    }
                    if (!string.IsNullOrEmpty(emailContacto))
                    {
                        docActual.PAYER_EMAIL = emailContacto;
                    }
                    if (!string.IsNullOrEmpty(estado))
                    {
                        docActual.ESTADO = estado;
                    }
                    if (!string.IsNullOrEmpty(ciudad))
                    {
                        docActual.CIUDAD = ciudad;
                    }
                    if (!string.IsNullOrEmpty(concepto))
                    {
                        docActual.CONCEPTO = concepto;
                    }
                    if (!string.IsNullOrEmpty(mecanica))
                    {
                        docActual.NOTAS = mecanica;
                    }

                    db.Entry(docActual).State = EntityState.Modified;
                }
                db.SaveChanges();
            }
            catch (Exception e)
            {
                Log.ErrorLogApp(e, "ModificacionesGlobales", "ListModSolicitudes");
            }

            return(RedirectToAction("Index"));
        }
示例#18
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DOCUMENTO dOCUMENTO = db.DOCUMENTOes.Find(id);

            if (dOCUMENTO == null)
            {
                return(HttpNotFound());
            }
            return(View(dOCUMENTO));
        }
示例#19
0
        public bool seEnvia(DOCUMENTO d, TAT001Entities db, Log log)
        {
            bool       ret = false;
            DOCUMENTOA dz  = null;
            var        de  = d.NUM_DOC;

            if (d.DOCUMENTO_REF == null)
            {
                if (d.DOCUMENTOAs.Count > 0)
                {
                    dz = d.DOCUMENTOAs.FirstOrDefault(x => x.NUM_DOC == de && x.CLASE == "OTR");
                    if (dz == null)
                    {
                        if (d.TSOL.NEGO)//para el ultimo filtro
                        {
                            Estatus es      = new Estatus();
                            string  estatus = es.getEstatus(d);

                            List <int> ee = new List <int>();
                            ee.Add(20);  //
                            ee.Add(90);  //
                            ee.Add(100); //
                            ee.Add(110); //
                            ee.Add(120); //
                            ee.Add(130); //
                            ee.Add(160); //

                            List <ESTATUSR> ess = (from e in db.ESTATUSRs.ToList()
                                                   ////join n in ee
                                                   ////on e.ESTATUS_ID equals n
                                                   select e).ToList();

                            foreach (ESTATUSR e in ess)
                            {
                                if (System.Text.RegularExpressions.Regex.IsMatch(estatus, e.REGEX))
                                {
                                    if (ee.Contains(e.ESTATUS_ID))
                                    {
                                        log.escribeLog("NUM_DOC: " + d.NUM_DOC);
                                        ret = true;
                                    }
                                    break;
                                }
                            }
                        }
                    }
                }
            }
            return(ret);
        }
示例#20
0
        public ActionResult documentosJurAdmon(int id)
        {
            if (Session["Admon"] == null)
            {
                return(RedirectToAction("LoginAdmon"));
            }

            int tipo = EMPRESA.getTipoEmpresa(id);

            ViewBag.empresa = id;

            List <DOCUMENTO> d = DOCUMENTO.getDocumentosTipo(tipo);

            return(PartialView(d));
        }
示例#21
0
        // GET: DOCUMENTOes/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DOCUMENTO dOCUMENTO = db.Documentos.Find(id);

            if (dOCUMENTO == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ClienteId = new SelectList(db.Clientes, "ClienteId", "nom_Cliente", dOCUMENTO.ClienteId);
            ViewBag.VentaId   = new SelectList(db.Ventas, "VentaId", "VentaId", dOCUMENTO.VentaId);
            return(View(dOCUMENTO));
        }
示例#22
0
        public ActionResult cargaDocumentos()
        {
            if (Session["id"] == null)
            {
                return(RedirectToAction("Login"));
            }

            int id = Convert.ToInt32(Session["id"]);

            int tipo = EMPRESA.getTipoEmpresa(id);

            ViewBag.empresa = id;

            List <DOCUMENTO> d = DOCUMENTO.getDocumentosTipo(tipo);

            return(View(d));
        }
示例#23
0
        public DOCUMENTO getPresupuesto(string kunnr)
        {
            DOCUMENTO pm = new DOCUMENTO();

            //try
            //{
            //    if (kunnr == null)
            //        kunnr = "";

            //    //Obtener presupuesto
            //    string mes = DateTime.Now.Month.ToString();
            //    var presupuesto = db.CSP_PRESU_CLIENT(cLIENTE: kunnr, pERIODO: mes).Select(p => new { DESC = p.DESCRIPCION.ToString(), VAL = p.VALOR.ToString() }).ToList();
            //    string clien = db.CLIENTEs.Where(x => x.KUNNR == kunnr).Select(x => x.BANNERG).First();
            //    if (presupuesto != null)
            //    {
            //        if (String.IsNullOrEmpty(clien))
            //        {
            //            pm.P_CANAL = presupuesto[0].VAL;
            //            pm.P_BANNER = presupuesto[1].VAL;
            //            pm.PC_C = (float.Parse(presupuesto[4].VAL) + float.Parse(presupuesto[5].VAL) + float.Parse(presupuesto[6].VAL)).ToString();
            //            pm.PC_A = presupuesto[8].VAL;
            //            pm.PC_P = presupuesto[9].VAL;
            //            pm.PC_T = presupuesto[10].VAL;
            //            pm.CONSU = (float.Parse(presupuesto[1].VAL) - float.Parse(presupuesto[10].VAL)).ToString();
            //        }
            //        else
            //        {
            //            pm.P_CANAL = presupuesto[0].VAL;
            //            pm.P_BANNER = presupuesto[0].VAL;
            //            pm.PC_C = (float.Parse(presupuesto[4].VAL) + float.Parse(presupuesto[5].VAL) + float.Parse(presupuesto[6].VAL)).ToString();
            //            pm.PC_A = presupuesto[8].VAL;
            //            pm.PC_P = presupuesto[9].VAL;
            //            pm.PC_T = presupuesto[10].VAL;
            //            pm.CONSU = (float.Parse(presupuesto[0].VAL) - float.Parse(presupuesto[10].VAL)).ToString();
            //        }
            //    }
            //}
            //catch (Exception e)
            //{

            //}

            return(pm);
        }
示例#24
0
        static Boolean SaveDocAsXmlFormat(DOCUMENTO obj, string fileName)
        {
            // Save object to a file named something.xml in XML format.
            XmlSerializer xmlFormat = new XmlSerializer(typeof(DOCUMENTO));

            using (Stream fStream = new FileStream(fileName,
                                                   FileMode.Create, FileAccess.Write, FileShare.None))
            {
                try
                {
                    xmlFormat.Serialize(fStream, obj);
                    return(true); //ficheiro xml criado com sucesso
                }
                catch
                {
                    return(false); //não foi possível criar o ficheiro xml
                }
            }
        }
示例#25
0
 // O nome do parâmetro id deve corresponder ao valor DataKeyNames definido no controle
 public void docsGridView_DeleteItem(DOCUMENTO item)
 {
     using (YourPELcs ctx = new YourPELcs())
     {
         DOCUMENTO doc = ctx.DOCUMENTOes.Find(item.idDocumento);
         // Carregue o item aqui, por exemplo item = MyDataLayer.Find(id);
         if (doc == null)
         {
             // O item não foi encontrado
             ModelState.AddModelError("", String.Format("O item com id {0} não foi encontrado", item.idDocumento));
             return;
         }
         ctx.DOCUMENTOes.Remove(doc);
         TryUpdateModel(doc);
         if (ModelState.IsValid)
         {
             // Salve alterações aqui, por exemplo MyDataLayer.SaveChanges();
             ctx.SaveChanges();
         }
     }
 }
示例#26
0
        protected void Page_Load(object sender, EventArgs e)
        {
            lblFeedback.Text = "";
            HttpPostedFile docAFazerUpload = FileUpload1.PostedFile;

            if (docAFazerUpload != null)
            {
                if (
                    Path.GetExtension(docAFazerUpload.FileName).ToLower() == ".pdf" ||
                    Path.GetExtension(docAFazerUpload.FileName).ToLower() == ".doc" ||
                    Path.GetExtension(docAFazerUpload.FileName).ToLower() == ".docx"
                    )
                {
                    //Inicialização do id do documento escolhido
                    int idDocAInserir = inserirDoc(
                        txtNomeDocumento.Text, txtDescricaoDocumento.Text, ".", listTemaDocumento.SelectedItem.Text); //falta url porque não pode ser null



                    //criar novo Documento
                    DOCUMENTO novoDoc = new DOCUMENTO();

                    //guardar ficheiro uploaded para um determinado caminho
                    novoDoc.idDocumento = idDocAInserir;
                    novoDoc.nome        = txtNomeDocumento.Text;
                    novoDoc.descricao   = txtDescricaoDocumento.Text;

                    string path = Server.MapPath(".") + "\\Docs\\" + "id" + novoDoc.idDocumento + "_" + novoDoc.nome + Path.GetExtension(docAFazerUpload.FileName).ToLower();
                    docAFazerUpload.SaveAs(path);
                    novoDoc.url = "id" + novoDoc.idDocumento + "_" + novoDoc.nome + Path.GetExtension(docAFazerUpload.FileName).ToLower();

                    UpdateDocUrl(novoDoc.idDocumento, novoDoc.url); //correção do "." deixado como placeholder na tabela DOCUMENTO
                }
                else
                {
                    lblFeedback.Text = "Só é possível ler ficheiros em formato PDF e Documentos Word!";
                }
                Response.Redirect("~/admin/Documentos.aspx");
            }
        }
示例#27
0
        public ActionResult Create([Bind(Include = "NUM_DOC,TSOL_ID,TALL_ID,SOCIEDAD_ID,PAIS_ID,ESTADO,CIUDAD,PERIODO,EJERCICIO,TIPO_TECNICO,TIPO_RECURRENTE,CANTIDAD_EV,USUARIOC_ID,FECHAD,FECHAC,HORAC,FECHAC_PLAN,FECHAC_USER,HORAC_USER,ESTATUS,ESTATUS_C,ESTATUS_SAP,ESTATUS_WF,DOCUMENTO_REF,CONCEPTO,NOTAS,MONTO_DOC_MD,MONTO_FIJO_MD,MONTO_BASE_GS_PCT_MD,MONTO_BASE_NS_PCT_MD,MONTO_DOC_ML,MONTO_FIJO_ML,MONTO_BASE_GS_PCT_ML,MONTO_BASE_NS_PCT_ML,MONTO_DOC_ML2,MONTO_FIJO_ML2,MONTO_BASE_GS_PCT_ML2,MONTO_BASE_NS_PCT_ML2,PORC_ADICIONAL,IMPUESTO,FECHAI_VIG,FECHAF_VIG,ESTATUS_EXT,SOLD_TO_ID,PAYER_ID,PAYER_NOMBRE,PAYER_EMAIL,GRUPO_CTE_ID,CANAL_ID,MONEDA_ID,MONEDAL_ID,MONEDAL2_ID,TIPO_CAMBIO,TIPO_CAMBIOL,TIPO_CAMBIOL2,NO_FACTURA,FECHAD_SOPORTE,METODO_PAGO,NO_PROVEEDOR,PASO_ACTUAL,AGENTE_ACTUAL,FECHA_PASO_ACTUAL,VKORG,VTWEG,SPART,PUESTO_ID,GALL_ID,CONCEPTO_ID")] DOCUMENTO dOCUMENTO)
        {
            ViewData.Model = dOCUMENTO;
            MailMessage mail = new System.Net.Mail.MailMessage();

            mail.From = new MailAddress("*****@*****.**");

            mail.To.Add("*****@*****.**");
            mail.Subject = "Asunto";

            SmtpClient smtp = new SmtpClient();

            smtp.Host        = "smtp.gmail.com";
            smtp.Port        = 25; //465; //587
            smtp.Credentials = new NetworkCredential("*****@*****.**", "24abril14");
            smtp.EnableSsl   = true;
            try
            {
                string UrlDirectory = Request.Url.GetLeftPart(UriPartial.Path);
                UrlDirectory  = UrlDirectory.Replace("create", "Index");
                UrlDirectory += "?pay=" + dOCUMENTO.PAYER_ID + "&vkorg=" + dOCUMENTO.VKORG + "&vtweg=" + dOCUMENTO.VTWEG + "&spart=" + dOCUMENTO.SPART;
                HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(UrlDirectory);
                myRequest.Method = "GET";
                WebResponse  myResponse = myRequest.GetResponse();
                StreamReader sr         = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8);
                string       result     = sr.ReadToEnd();
                sr.Close();
                myResponse.Close();
                mail.IsBodyHtml = true;
                mail.Body       = result;
                //smtp.Send(mail);
            }
            catch (Exception ex)
            {
                throw new Exception("No se ha podido enviar el email", ex.InnerException);
            }
            return(View());
        }
        public void correos2()
        {
            ImapClient ic = new ImapClient();
            List <AE.Net.Mail.MailMessage> mx;
            List <AE.Net.Mail.MailMessage> emRq17;
            APPSETTING lg = db.APPSETTINGs.Where(x => x.NOMBRE == "logPath" && x.ACTIVO).FirstOrDefault();

            log.ruta = lg.VALUE + "LeerCorreos_";
            log.escribeLog("-----------------------------------------------------------------------START");
            try
            {
                List <CONMAIL> cc      = db.CONMAILs.ToList();
                CONMAIL        conmail = cc.FirstOrDefault(x => x.ID == "LE");
                if (conmail == null)
                {
                    log.escribeLog("Falta configurar inbox."); return;
                }
                ic = new ImapClient(conmail.HOST, conmail.MAIL, conmail.PASS,
                                    AuthMethods.Login, (int)conmail.PORT, conmail.SSL);

                // Select a mailbox. Case-insensitive
                ic.SelectMailbox("INBOX");

                //Esto traera los emails recibidos y no leidos
                //mx = ic.GetMessages(0, ic.GetMessageCount() - 1, true, false)
                long a = ic.GetMessageCount();
                if (a > 100)
                {
                    mx = ic.GetMessages(ic.GetMessageCount() - 100, ic.GetMessageCount() - 1, true, false)
                         .Where(m => !m.Flags.HasFlag(Flags.Seen) && !m.Flags.HasFlag(Flags.Deleted)).ToList();
                }
                else
                {
                    mx = ic.GetMessages(0, ic.GetMessageCount() - 1, true, false)
                         .Where(m => !m.Flags.HasFlag(Flags.Seen) && !m.Flags.HasFlag(Flags.Deleted)).ToList();
                }

                //En esta lista ingresaremos a los mails que sean recibidos como cc
                emRq17 = new List <AE.Net.Mail.MailMessage>();
                log.escribeLog("Leer inbox - numReg=(" + mx.Count + ")");
            }
            catch (Exception e)
            {
                mx     = new List <AE.Net.Mail.MailMessage>();
                emRq17 = new List <AE.Net.Mail.MailMessage>();
                log.escribeLog("Error al leer" + e.Message.ToString());
            }
            try
            {
                //ingresamos los correos CORREO
                for (int i = 0; i < mx.Count; i++)
                {
                    AE.Net.Mail.MailMessage mm = ic.GetMessage(mx[i].Uid, false);
                    try
                    {
                        string[] arrAsunto = mm.Subject.Split(']');
                        int      a         = arrAsunto.Length - 1;
                        //Recupero el asunto y lo separo del numdoc y pos
                        string[] arrAprNum = arrAsunto[a].Split('-');//RSG cambiar 0 a 1
                        string[] arrClaves = arrAprNum[1].Split('.');
                        //Valido que tenga los datos necesarios para el req 17
                        if (arrClaves.Length > 1)
                        {
                            arrClaves[1] = Decimal.Parse(arrClaves[1]).ToString();
                        }
                        ////var xy = arrAprNum[0].Trim();
                        if (arrAprNum[0].Trim() == "De Acuerdo" || arrAprNum[0].Trim() == "DeAcuerdo")
                        {
                            emRq17.Add(mm);
                            log.escribeLog("NEGO A - " + arrClaves[1]);
                        }
                        else if (arrAprNum[0].Trim() == "Tengo Observaciones" || arrAprNum[0].Trim() == "TengoObservaciones")
                        {
                            emRq17.Add(mm);
                            log.escribeLog("NEGO O - " + arrClaves[1]);
                        }
                    }
                    catch
                    {
                        ic.AddFlags(Flags.Seen, mm);
                        log.escribeLog("ERROR - " + mm.Subject);
                    }
                }
                //Correos de FLUJO DE APROBACIÓN y RECURRENTE-----------------------------------------------------2 y 3
                if (true)
                {
                    for (int i = 0; i < mx.Count; i++)
                    {
                        AE.Net.Mail.MailMessage mm = ic.GetMessage(mx[i].Uid, false);
                        try
                        {
                            string[] arrAsunto = mm.Subject.Split(']');
                            int      a         = arrAsunto.Length - 1;
                            //Recupero el asunto y lo separo del numdoc y pos
                            string[] arrAprNum = arrAsunto[a].Split('-');//RSG cambiar 0 a 1
                            string[] arrClaves = arrAprNum[1].Split('.');
                            decimal  numdoc    = Decimal.Parse(arrClaves[0]);
                            //Si el Texto es Aprobado, Rechazado o Recurrente
                            string[] arrApr = arrAprNum[0].Split(':');
                            if (arrApr.Length > 1)
                            {
                                ProcesaFlujo pF = new ProcesaFlujo();
                                if (arrApr[1] == "Approved" || arrApr[1] == "Rejected")
                                {
                                    log.escribeLog("APPR AR - " + arrClaves[0]);
                                    int   pos = Convert.ToInt32(arrAprNum[2]);
                                    FLUJO fl  = db.FLUJOes.Where(x => x.NUM_DOC == numdoc && x.POS == pos).FirstOrDefault();
                                    if (fl != null)
                                    {
                                        Console.WriteLine(mm.From.Address.Trim()); Console.WriteLine(fl.USUARIO.EMAIL);
                                        log.escribeLog("APPR mails - " + mm.From.Address.Trim() + " == " + fl.USUARIO.EMAIL);
                                        if (mm.From.Address.Trim().ToLower() == fl.USUARIO.EMAIL.Trim().ToLower() || mm.From.Address.Trim().ToLower() == fl.USUARIO1.EMAIL.Trim().ToLower())
                                        {
                                            Console.WriteLine("true");
                                            fl.ESTATUS = arrApr[1].Substring(0, 1);
                                            fl.FECHAM  = DateTime.Now;
                                            Comentario com = new Comentario();
                                            fl.COMENTARIO = com.getComment(mm.Body, mm.ContentType);
                                            ////fl.COMENTARIO = mm.Body;
                                            ////if (fl.COMENTARIO.Length > 255)
                                            ////    fl.COMENTARIO = fl.COMENTARIO.Substring(0, 252) + "...";
                                            var res = pF.procesa(fl, "");
                                            log.escribeLog("APPR PROCESA - Res = " + res);
                                            Email email = new Email();
                                            if (res == "1")
                                            {
                                                email.enviarCorreo(fl.NUM_DOC, 1, pos);
                                            }
                                            else if (res == "3")
                                            {
                                                email.enviarCorreo(fl.NUM_DOC, 3, pos);
                                            }

                                            using (TAT001Entities db1 = new TAT001Entities())
                                            {
                                                FLUJO     ff   = db1.FLUJOes.Where(x => x.NUM_DOC == fl.NUM_DOC).OrderByDescending(x => x.POS).FirstOrDefault();
                                                Estatus   es   = new Estatus();//RSG 18.09.2018
                                                DOCUMENTO ddoc = db1.DOCUMENTOes.Find(fl.NUM_DOC);
                                                ff.STATUS           = es.getEstatus(ddoc);
                                                db1.Entry(ff).State = System.Data.Entity.EntityState.Modified;
                                                db1.SaveChanges();
                                            }
                                            Console.WriteLine(res);
                                        }
                                    }
                                    ic.AddFlags(Flags.Seen, mm);
                                }
                                ////else if (arrApr[1] == "Rejected")
                                ////{
                                ////    int pos = Convert.ToInt32(arrAprNum[2]);
                                ////    FLUJO fl = db.FLUJOes.Where(x => x.NUM_DOC == numdoc && x.POS == pos).FirstOrDefault();
                                ////    fl.ESTATUS = "R";
                                ////    fl.FECHAM = DateTime.Now;
                                ////    fl.COMENTARIO = mm.Body;
                                ////    var res = pF.procesa(fl, "");
                                ////    if (res == "0")
                                ////    {
                                ////        //
                                ////    }
                                ////    else if (res == "1")
                                ////    {
                                ////        enviarCorreo(fl.NUM_DOC, 1);
                                ////    }
                                ////    else if (res == "3")
                                ////    {
                                ////        enviarCorreo(fl.NUM_DOC, 3);
                                ////    }
                                ////    //para marcar el mensaje como leido
                                ////    ic.AddFlags(Flags.Seen, mm);
                                ////}
                                else if (arrApr[1] == "Recurrent")
                                {
                                    ////Reversa r = new Reversa();
                                    ////string ts = db.DOCUMENTOes.Find(numdoc).TSOL.TSOLR;
                                    ////int ret = 0;
                                    ////if (ts != null)
                                    ////    ret = r.creaReversa(numdoc.ToString(), ts);

                                    //////para marcar el mensaje como leido
                                    ////if (ret != 0)
                                    ////    ic.AddFlags(Flags.Seen, mm);
                                }
                            }
                        }
                        catch (Exception ee)
                        {
                            ic.AddFlags(Flags.Seen, mm);
                            log.escribeLog("ERROR - " + ee.Message.ToString());
                        }
                    }
                }
                //req17
                ////FLUJNEGO fn = new FLUJNEGO();
                for (int i = 0; i < emRq17.Count; i++)
                {
                    ////AE.Net.Mail.MailMessage mm = emRq17[i];
                    AE.Net.Mail.MailMessage mm = ic.GetMessage(emRq17[i].Uid, false);
                    if (true)
                    {
                        string[] arrAsunto = mm.Subject.Split(']');
                        int      isa       = arrAsunto.Length - 1;
                        //Recupero el asunto y lo separo del numdoc y pos
                        string[] arrAprNum = arrAsunto[isa].Split('-');
                        string[] arrPiNN   = arrAprNum[1].Split('.');
                        var      _id       = int.Parse(arrPiNN[1]);
                        var      vkorg     = arrPiNN[2];
                        var      _correo   = arrPiNN[4].Replace('*', '.').Replace('+', '-').Replace('/', '@').Replace('#', '-');
                        //recupero las fechas de envio
                        var _xres = db.NEGOCIACIONs.Where(x => x.ID == _id).FirstOrDefault();
                        var pid   = arrPiNN[0];
                        //// var fs = db.DOCUMENTOes.Where(f => f.PAYER_ID == pid && f.FECHAC.Value.Month == DateTime.Now.Month  && f.FECHAC.Value.Year == DateTime.Now.Year && f.DOCUMENTO_REF == null).ToList();
                        var _xff = _xres.FECHAF.AddDays(1);
                        var fs   = db.DOCUMENTOes.Where(f => f.PAYER_ID == pid && f.VKORG == vkorg && f.PAYER_EMAIL == _correo && f.FECHAC >= _xres.FECHAI && f.FECHAC < _xff && f.DOCUMENTO_REF == null).ToList();
                        //LEJ 20.07.2018-----
                        var dOCUMENTOes = fs;
                        var lstD        = new List <DOCUMENTO>();//---
                        ////DOCUMENTOA dz = null;//---
                        for (int y = 0; y < dOCUMENTOes.Count; y++)
                        {
                            PorEnviar pe = new PorEnviar();
                            if (pe.seEnvia(dOCUMENTOes[y], db, log))
                            {
                                lstD.Add(dOCUMENTOes[y]);
                            }

                            //////recupero el numdoc
                            ////var de = fs[i].NUM_DOC;
                            //////sino ecuentra una coincidencia con el criterio discriminatorio se agregan o no a la lista
                            ////dz = db.DOCUMENTOAs.Where(x => x.NUM_DOC == de && x.CLASE != "OTR").FirstOrDefault();
                            ////if (dz == null || dz != null)
                            ////{
                            ////    if (dOCUMENTOes[y].TSOL.NEGO == true)//para el ultimo filtro
                            ////    {

                            ////        string estatus = "";
                            ////        if (dOCUMENTOes[y].ESTATUS != null) { estatus += dOCUMENTOes[y].ESTATUS; } else { estatus += " "; }
                            ////        if (dOCUMENTOes[y].ESTATUS_C != null) { estatus += dOCUMENTOes[y].ESTATUS_C; } else { estatus += " "; }
                            ////        if (dOCUMENTOes[y].ESTATUS_SAP != null) { estatus += dOCUMENTOes[y].ESTATUS_SAP; } else { estatus += " "; }
                            ////        if (dOCUMENTOes[y].ESTATUS_WF != null) { estatus += dOCUMENTOes[y].ESTATUS_WF; } else { estatus += " "; }
                            ////        if (dOCUMENTOes[y].FLUJOes.Count > 0)
                            ////        {
                            ////            estatus += dOCUMENTOes[y].FLUJOes.OrderByDescending(a => a.POS).FirstOrDefault().WORKFP.ACCION.TIPO;
                            ////        }
                            ////        else
                            ////        {
                            ////            estatus += " ";
                            ////        }
                            ////        if (dOCUMENTOes[y].TSOL.PADRE) { estatus += "P"; } else { estatus += " "; }
                            ////        if (dOCUMENTOes[y].FLUJOes.Where(x => x.ESTATUS == "R").ToList().Count > 0)
                            ////        {
                            ////            estatus += dOCUMENTOes[y].FLUJOes.Where(x => x.ESTATUS == "R").OrderByDescending(a => a.POS).FirstOrDefault().USUARIO.PUESTO_ID;
                            ////        }
                            ////        else
                            ////        {
                            ////            estatus += " ";
                            ////        }


                            ////        if (System.Text.RegularExpressions.Regex.IsMatch(estatus, "...[P][R].."))
                            ////            lstD.Add(dOCUMENTOes[y]);
                            ////        else if (System.Text.RegularExpressions.Regex.IsMatch(estatus, "...[R]..[8]"))
                            ////            lstD.Add(dOCUMENTOes[y]);
                            ////        else if (System.Text.RegularExpressions.Regex.IsMatch(estatus, "[P]..[A]..."))
                            ////            lstD.Add(dOCUMENTOes[y]);
                            ////        else if (System.Text.RegularExpressions.Regex.IsMatch(estatus, "..[P][A]..."))
                            ////            lstD.Add(dOCUMENTOes[y]);
                            ////        else if (System.Text.RegularExpressions.Regex.IsMatch(estatus, "..[E][A]..."))
                            ////            lstD.Add(dOCUMENTOes[y]);
                            ////        else if (System.Text.RegularExpressions.Regex.IsMatch(estatus, "...[A].[P]."))
                            ////            lstD.Add(dOCUMENTOes[y]);
                            ////        else if (System.Text.RegularExpressions.Regex.IsMatch(estatus, "...[A]..."))
                            ////            lstD.Add(dOCUMENTOes[y]);
                            ////        else if (System.Text.RegularExpressions.Regex.IsMatch(estatus, "...[T]..."))
                            ////            lstD.Add(dOCUMENTOes[y]);

                            ////        //if (dOCUMENTOes[y].ESTATUS_WF == "P")//LEJ 20.07.2018---------------------------I
                            ////        //{
                            ////        //    if (dOCUMENTOes[y].FLUJOes.Count > 0)
                            ////        //    {
                            ////        //        if (dOCUMENTOes[y].FLUJOes.OrderByDescending(a => a.POS).FirstOrDefault().USUARIO != null)
                            ////        //        {
                            ////        //            //(Pendiente Validación TS)
                            ////        //            if (dOCUMENTOes[y].FLUJOes.OrderByDescending(a => a.POS).FirstOrDefault().USUARIO.PUESTO_ID == 8)
                            ////        //            {
                            ////        //                lstD.Add(dOCUMENTOes[y]);
                            ////        //            }
                            ////        //        }
                            ////        //    }
                            ////        //}
                            ////        //else if (dOCUMENTOes[y].ESTATUS_WF == "R")//(Pendiente Corrección)
                            ////        //{
                            ////        //    if (dOCUMENTOes[y].FLUJOes.Count > 0)
                            ////        //    {
                            ////        //        lstD.Add(dOCUMENTOes[y]);
                            ////        //    }
                            ////        //}
                            ////        //else if (dOCUMENTOes[y].ESTATUS_WF == "T")//(Pendiente Taxeo)
                            ////        //{
                            ////        //    if (dOCUMENTOes[y].TSOL_ID == "NCIA")
                            ////        //    {
                            ////        //        if (dOCUMENTOes[y].PAIS_ID == "CO")//(sólo Colombia)
                            ////        //        {
                            ////        //            lstD.Add(dOCUMENTOes[y]);
                            ////        //        }
                            ////        //    }
                            ////        //}
                            ////        //else if (dOCUMENTOes[y].ESTATUS_WF == "A")//(Por Contabilizar)
                            ////        //{
                            ////        //    if (dOCUMENTOes[y].ESTATUS == "P")
                            ////        //    {
                            ////        //        lstD.Add(dOCUMENTOes[y]);
                            ////        //    }
                            ////        //}
                            ////        //else if (dOCUMENTOes[y].ESTATUS_SAP == "E")//Error en SAP
                            ////        //{
                            ////        //    lstD.Add(dOCUMENTOes[y]);
                            ////        //}
                            ////        //else if (dOCUMENTOes[y].ESTATUS_SAP == "X")//Succes en SAP
                            ////        //{
                            ////        //    lstD.Add(dOCUMENTOes[y]);
                            ////        //}
                            ////    }
                            ////    //LEJ 20.07.2018----------------------------------------------------------------T
                            ////}
                        }
                        //----
                        if (arrAprNum[0].Trim() == "DeAcuerdo" || arrAprNum[0].Trim() == "De Acuerdo")
                        {
                            for (int x = 0; x < lstD.Count; x++)
                            {
                                FLUJNEGO fn = new FLUJNEGO();
                                fn.NUM_DOC = lstD[x].NUM_DOC;
                                DateTime fecham = mm.Date;
                                fn.FECHAM = fecham;
                                fn.FECHAC = lstD[x].FECHAC;
                                fn.KUNNR  = arrPiNN[0];
                                var        cm  = arrAprNum[0].ToString();
                                Comentario com = new Comentario();
                                cm += com.getComment(mm.Body, mm.ContentType);
                                ////cm += " - " + mm.Body;
                                var cpos = db.FLUJNEGOes.Where(h => h.NUM_DOC.Equals(fn.NUM_DOC)).ToList().Count;
                                fn.POS        = cpos + 1;
                                fn.COMENTARIO = cm;
                                db.FLUJNEGOes.Add(fn);
                                db.SaveChanges();
                            }
                        }
                        else if (arrAprNum[0].Trim() == "TengoObservaciones" || arrAprNum[0].Trim() == "Tengo Observaciones")
                        {
                            for (int x = 0; x < lstD.Count; x++)
                            {
                                FLUJNEGO fn = new FLUJNEGO();
                                fn.NUM_DOC = lstD[x].NUM_DOC;
                                fn.FECHAC  = lstD[x].FECHAC;
                                DateTime fecham = mm.Date;
                                fn.FECHAM = fecham;
                                fn.KUNNR  = arrPiNN[0];
                                var        cm  = arrAprNum[0] + " ";
                                Comentario com = new Comentario();
                                cm += com.getComment(mm.Body, mm.ContentType);
                                ////cm += " - " + mm.Body;
                                var cpos = db.FLUJNEGOes.Where(h => h.NUM_DOC.Equals(fn.NUM_DOC)).ToList().Count;
                                fn.POS        = cpos + 1;
                                fn.COMENTARIO = cm;
                                db.FLUJNEGOes.Add(fn);
                                db.SaveChanges();
                            }
                        }
                        else
                        {
                            //Hubo algun error
                            break;
                        }
                    }
                    //para marcar el mensaje como leido
                    ic.AddFlags(Flags.Seen, mm);
                }
            }
            catch (Exception ex)
            {
                log.escribeLog("ERROR - " + ex.InnerException.ToString());
                ////throw new Exception(ex.InnerException.ToString());
            }
            finally
            {
                ic.Dispose();
            }
        }
示例#29
0
        public FLUJO determinaAgenteC(DOCUMENTO d, CLIENTEF cf, int pos, int sop, string tipo)//, string next)
        {
            FLUJO             f   = new FLUJO();
            List <DET_APROBP> ddp = new List <DET_APROBP>();

            using (TAT001Entities db = new TAT001Entities())
            {
                DET_APROBH dh = db.DET_APROBH.Where(a => a.SOCIEDAD_ID.Equals(d.SOCIEDAD_ID) & a.ACTIVO).OrderByDescending(a => a.VERSION).FirstOrDefault();// OBTIENE ENCABEZADO FLUJO DE SOCIEDAD
                if (dh != null)
                {
                    ddp = db.DET_APROBP.Where(a => a.SOCIEDAD_ID.Equals(dh.SOCIEDAD_ID) & a.PUESTOC_ID == dh.PUESTOC_ID & a.VERSION == dh.VERSION & a.ACTIVO).ToList(); //oBTIENE TABLA DE FLUJO
                }
                if (tipo == "N")                                                                                                                                        //------Si es modificación por rechazo de manager
                {
                    FLUJO ffl = db.FLUJOes.Where(a => a.NUM_DOC.Equals(d.NUM_DOC) & a.ESTATUS.Equals("R")).OrderByDescending(a => a.POS).FirstOrDefault();
                    f = ffl;
                }
            }
            int        ppos = 0;
            DET_APROBP dp   = ddp.Where(a => a.POS == pos).FirstOrDefault(); //Obtiene nivel de autorización

            if (dp != null)                                                  //----Si existe posición
            {
                int detp = 0;
                if (tipo != "B" & tipo != "M")//---Si no es notificación ni modificación por rechazo de TS
                {
                    if (dp.MONTO != null)
                    {
                        if (d.MONTO_DOC_MD > dp.MONTO)
                        {
                            ppos--;
                            detp = dp.N_MONTO == null ? (pos + 1) : (int)dp.N_MONTO;
                        }
                    }
                    if (ppos == 0)
                    {
                        if (dp.PRESUPUESTO != null & d.EXCEDE_PRES != null)
                        {
                            if (d.EXCEDE_PRES == "X" & dp.PRESUPUESTO == true)
                            {
                                ppos--;
                                detp = dp.N_PRESUP == null ? (pos + 1) : (int)dp.N_PRESUP;
                            }
                        }
                    }
                }
                else
                {
                    pos = 98;
                }


                if (pos == 99)
                {
                    f.USUARIOA_ID = null;
                }
                else if (ppos == 0 & sop == 98)//Cuando va a soporte(Termina autorización)
                {
                    f.USUARIOA_ID = d.USUARIOD_ID;
                    f.DETPOS      = sop;
                }
                else if (ppos == 0 & sop == 99)//Cuando va a TS(Termina autorización)
                {
                    f.USUARIOA_ID = cf.USUARIO6_ID;
                    f.DETPOS      = sop;
                }
                else
                {
                    if ((detp - 1) == 1)
                    {
                        f.USUARIOA_ID = cf.USUARIO2_ID;
                        if (cf.USUARIO2_ID != null)
                        {
                            f.DETPOS = detp;
                        }
                        else
                        {
                            ppos++;
                            f.DETPOS = sop;
                            if (sop == 99)
                            {
                                f.USUARIOA_ID = cf.USUARIO6_ID;
                            }
                            else
                            {
                                f.USUARIOA_ID = d.USUARIOD_ID;
                            }
                        }
                    }
                    if ((detp - 1) == 2)
                    {
                        f.USUARIOA_ID = cf.USUARIO3_ID;
                        if (cf.USUARIO3_ID != null)
                        {
                            f.DETPOS = detp;
                        }
                        else
                        {
                            ppos++;
                            f.DETPOS = sop;
                            if (sop == 99)
                            {
                                f.USUARIOA_ID = cf.USUARIO6_ID;
                            }
                            else
                            {
                                f.USUARIOA_ID = d.USUARIOD_ID;
                            }
                        }
                    }
                    if ((detp - 1) == 3)
                    {
                        f.USUARIOA_ID = cf.USUARIO4_ID;
                        if (cf.USUARIO4_ID != null)
                        {
                            f.DETPOS = detp;
                        }
                        else
                        {
                            ppos++;
                            f.DETPOS = sop;
                            if (sop == 99)
                            {
                                f.USUARIOA_ID = cf.USUARIO6_ID;
                            }
                            else
                            {
                                f.USUARIOA_ID = d.USUARIOD_ID;
                            }
                        }
                    }
                    if ((detp - 1) == 4)
                    {
                        f.USUARIOA_ID = cf.USUARIO5_ID;
                        if (cf.USUARIO5_ID != null)
                        {
                            f.DETPOS = detp;
                        }
                        else
                        {
                            ppos++;
                            f.DETPOS = sop;
                            if (sop == 99)
                            {
                                f.USUARIOA_ID = cf.USUARIO6_ID;
                            }
                            else
                            {
                                f.USUARIOA_ID = d.USUARIOD_ID;
                            }
                        }
                    }
                    if (pos == 98)//Despues de rechazo de TS para PRA - regresa a TS
                    {
                        f.USUARIOA_ID = cf.USUARIO6_ID;
                        f.DETPOS      = 99;
                    }
                }
            }
            else if (pos == 98)
            {
                f.USUARIOA_ID = cf.USUARIO6_ID;
                f.DETPOS      = 99;
            }
            else if (pos == 0)//Despues de rechazo de TS para PR - regresa a TS
            {
                if (f.DETPOS == 99)
                {
                    ppos = 1;
                }
                f.DETPOS--;
                f.POS = ppos;
            }
            f.POS = ppos;

            return(f);
        }
示例#30
0
        public FLUJO determinaAgente1(DOCUMENTO d, string user, string delega, int pos, int?loop, int sop)
        {
            if (delega != null)
            {
                user = delega;
            }
            bool           fin      = false;
            TAT001Entities db       = new TAT001Entities();
            DET_AGENTEC    dap      = new DET_AGENTEC();
            FLUJO          f_actual = db.FLUJOes.Where(a => a.NUM_DOC.Equals(d.NUM_DOC)).FirstOrDefault();
            //DET_AGENTEH dah = db.DET_AGENTEH.Where(a => a.SOCIEDAD_ID.Equals(d.SOCIEDAD_ID) & a.PUESTOC_ID == d.PUESTO_ID &
            //                    a.USUARIOC_ID.Equals(d.USUARIOC_ID) & a.VERSION == f_actual.DETVER).FirstOrDefault();
            List <DET_AGENTEC> dah = db.DET_AGENTEC.Where(a => a.USUARIOC_ID.Equals(d.USUARIOD_ID) & a.PAIS_ID == d.PAIS_ID &
                                                          a.VKORG.Equals(d.VKORG) & a.VTWEG.Equals(d.VTWEG) & a.SPART.Equals(d.SPART) & a.KUNNR.Equals(d.PAYER_ID))
                                     .OrderByDescending(a => a.VERSION).ToList();

            USUARIO u = db.USUARIOs.Find(d.USUARIOC_ID);
            //long gaa = db.CREADOR2.Where(a => a.ID.Equals(u.ID) & a.BUKRS.Equals(d.SOCIEDAD_ID) & a.LAND.Equals(d.PAIS_ID) & a.PUESTOC_ID == d.PUESTO_ID & a.ACTIVO == true).FirstOrDefault().AGROUP_ID;
            int ppos = 0;

            if (pos.Equals(0))
            {
                if (loop == null)
                {
                    //dap = db.DET_AGENTEP.Where(a => a.SOCIEDAD_ID.Equals(dah.SOCIEDAD_ID) & a.PUESTOC_ID == dah.PUESTOC_ID &
                    //                    a.VERSION == dah.VERSION & a.AGROUP_ID == dah.AGROUP_ID & a.POS == 1).FirstOrDefault();
                    dap     = dah.Where(a => a.POS == 1).FirstOrDefault();
                    dap.POS = dap.POS - 1;
                }
                else
                {
                    FLUJO ffl = db.FLUJOes.Where(a => a.NUM_DOC.Equals(d.NUM_DOC) & a.ESTATUS.Equals("R")).OrderByDescending(a => a.POS).FirstOrDefault();
                    if (ffl.DETPOS == 99)
                    {
                        ppos = 1;
                    }
                    ffl.DETPOS = ffl.DETPOS - 1;
                    fin        = true;
                    ffl.POS    = ppos;

                    return(ffl);
                }
            }
            else if (pos.Equals(98))
            {
                dap = dah.Where(a => a.POS == (pos + 1)).FirstOrDefault();
            }
            else
            {
                //DET_AGENTE actual = db.DET_AGENTE.Where(a => a.PUESTOC_ID == d.PUESTO_ID & a.AGROUP_ID == gaa & a.POS == (pos)).FirstOrDefault();
                DET_AGENTEC actual = dah.Where(a => a.POS == (pos)).FirstOrDefault();
                if (actual.POS == 99)
                {
                    fin = true;
                }
                else if (actual.POS == 98)
                {
                    //da = db.DET_AGENTE.Where(a => a.PUESTOC_ID == d.PUESTO_ID & a.AGROUP_ID == gaa & a.POS == (pos + 1)).FirstOrDefault();
                    dap = dah.Where(a => a.POS == (pos)).FirstOrDefault();
                }
                else
                {
                    if (actual.MONTO != null)
                    {
                        if (d.MONTO_DOC_ML2 > actual.MONTO)
                        {
                            dap  = dah.Where(a => a.POS == (pos + 1)).FirstOrDefault();
                            ppos = -1;
                        }
                    }
                    //if (actual.PRESUPUESTO != null)
                    if ((bool)actual.PRESUPUESTO)
                    {
                        if (d.MONTO_DOC_MD > 100000)
                        {
                            //da = db.DET_AGENTE.Where(a => a.PUESTOC_ID == d.PUESTO_ID & a.AGROUP_ID == gaa & a.POS == (pos + 1)).FirstOrDefault();
                            dap  = dah.Where(a => a.POS == (pos + 1)).FirstOrDefault();
                            ppos = -1;
                        }
                    }
                }
            }

            string agente = "";
            FLUJO  f      = new FLUJO();

            f.DETPOS = 0;
            if (!fin)
            {
                if (dap != null)
                {
                    if (dap.USUARIOA_ID != null)
                    {
                        //agente = db.GAUTORIZACIONs.Where(a => a.ID == da.AGROUP_ID).FirstOrDefault().USUARIOs.Where(a => a.PUESTO_ID == da.PUESTOA_ID).First().ID;
                        agente   = dap.USUARIOA_ID;
                        f.DETPOS = dap.POS;
                    }
                    else
                    {
                        dap = dah.Where(a => a.POS == (sop)).FirstOrDefault();
                        if (dap == null)
                        {
                            agente   = d.USUARIOD_ID;
                            f.DETPOS = 98;
                        }
                        else
                        {
                            //agente = db.GAUTORIZACIONs.Where(a => a.ID == da.AGROUP_ID).FirstOrDefault().USUARIOs.Where(a => a.PUESTO_ID == da.PUESTOA_ID).First().ID;
                            agente   = dap.USUARIOA_ID;
                            f.DETPOS = dap.POS;
                        }
                    }
                }
                else
                {
                    dap = dah.Where(a => a.POS == (sop)).FirstOrDefault();
                    if (dap == null)
                    {
                        agente   = d.USUARIOD_ID;
                        f.DETPOS = 98;
                    }
                    else
                    {
                        //agente = db.GAUTORIZACIONs.Where(a => a.ID == da.AGROUP_ID).FirstOrDefault().USUARIOs.Where(a => a.PUESTO_ID == da.PUESTOA_ID).First().ID;
                        agente   = dap.USUARIOA_ID;
                        f.DETPOS = dap.POS;
                    }
                }
            }
            f.POS = ppos;
            if (agente != "")
            {
                f.USUARIOA_ID = agente;
            }
            else
            {
                f.USUARIOA_ID = null;
            }
            return(f);
        }