public ActionResult DeleteConfirmed(string id)
        {
            TSOL tSOL = db.TSOLs.Find(id);

            db.TSOLs.Remove(tSOL);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        // GET: TSOL/Create
        public ActionResult Create()
        {
            TSOL tsol   = new TSOL();
            var  rangos = db.RANGOes.Select(x => new { x.ID, DESCRIPCION = x.INICIO + "-" + x.FIN });

            ViewBag.RANGO_ID = new SelectList(rangos, "ID", "DESCRIPCION");
            int pagina_id = 791;//ID EN BASE DE DATOS

            FnCommon.ObtenerConfPage(db, pagina_id, User.Identity.Name, this.ControllerContext.Controller);
            ViewBag.SPRAS = db.SPRAS.ToList();
            return(View(tsol));
        }
Example #3
0
        public ActionResult Create([Bind(Include = "ID,DESCRIPCION,TSOLR,RANGO_ID,ESTATUS")] TSOL tSOL)
        {
            if (ModelState.IsValid)
            {
                db.TSOLs.Add(tSOL);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.RANGO_ID = new SelectList(db.RANGOes, "ID", "ID", tSOL.RANGO_ID);
            ViewBag.TSOLR    = new SelectList(db.TSOLs, "ID", "DESCRIPCION", tSOL.TSOLR);
            return(View(tSOL));
        }
        // GET: TSOL/Delete/5
        public ActionResult Delete(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TSOL tSOL = db.TSOLs.Find(id);

            if (tSOL == null)
            {
                return(HttpNotFound());
            }
            return(View(tSOL));
        }
        // GET: TSOL/Edit/5
        public ActionResult Edit(string id)
        {
            int pagina = 792; //ID EN BASE DE DATOS

            using (TAT001Entities db = new TAT001Entities())
            {
                string u = User.Identity.Name;
                //string u = "admin";
                var user = db.USUARIOs.Where(a => a.ID.Equals(u)).FirstOrDefault();
                ViewBag.permisos = db.PAGINAVs.Where(a => a.ID.Equals(user.ID)).ToList();
                ViewBag.carpetas = db.CARPETAVs.Where(a => a.USUARIO_ID.Equals(user.ID)).ToList();
                ViewBag.usuario  = user; ViewBag.returnUrl = Request.Url.PathAndQuery;;
                ViewBag.rol      = user.PUESTO.PUESTOTs.Where(a => a.SPRAS_ID.Equals(user.SPRAS_ID)).FirstOrDefault().TXT50;
                ViewBag.Title    = db.PAGINAs.Where(a => a.ID.Equals(pagina)).FirstOrDefault().PAGINATs.Where(b => b.SPRAS_ID.Equals(user.SPRAS_ID)).FirstOrDefault().TXT50;
                ViewBag.warnings = db.WARNINGVs.Where(a => (a.PAGINA_ID.Equals(pagina) || a.PAGINA_ID.Equals(0)) && a.SPRAS_ID.Equals(user.SPRAS_ID)).ToList();
                ViewBag.textos   = db.TEXTOes.Where(a => (a.PAGINA_ID.Equals(791) || a.PAGINA_ID.Equals(0)) && a.SPRAS_ID.Equals(user.SPRAS_ID)).ToList();

                try
                {
                    string p = Session["pais"].ToString();
                    ViewBag.pais = p + ".svg";
                }
                catch
                {
                    //ViewBag.pais = "mx.svg";
                    //return RedirectToAction("Pais", "Home");
                }
                Session["spras"] = user.SPRAS_ID;
            }
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TSOL tSOL = db.TSOLs.Find(id);

            if (tSOL == null)
            {
                return(HttpNotFound());
            }
            ViewBag.SPRAS = db.SPRAS.ToList();
            var rangos = db.RANGOes.Select(x => new { x.ID, DESCRIPCION = x.INICIO + "-" + x.FIN });

            ViewBag.RANGO_ID = new SelectList(rangos, "ID", "DESCRIPCION", tSOL.RANGO_ID);
            //ViewBag.RANGO_ID = new SelectList(db.RANGOes, "ID", "ID", tSOL.RANGO_ID);
            //ViewBag.TSOLR = new SelectList(db.TSOLs, "ID", "DESCRIPCION", tSOL.TSOLR);
            return(View(tSOL));
        }
        public ActionResult Edit([Bind(Include = "ID,ACTIVO,CARTA,NEGO,ADICIONA")] TSOL tSOL, FormCollection collection, string[] txval)
        {
            if (ModelState.IsValid)
            {
                List <SPRA>  ss   = db.SPRAS.ToList();
                List <TSOLT> lstc = db.TSOLTs.Where(i => i.TSOL_ID == tSOL.ID).ToList();
                var          TSOL = db.TSOLs.Where(t => t.ID == tSOL.ID).SingleOrDefault();
                if (lstc.Count == 0)
                {
                    var j = 0;
                    foreach (SPRA s in ss)
                    {
                        try
                        {
                            TSOLT p = new TSOLT();
                            p.TSOL_ID  = tSOL.ID;
                            p.SPRAS_ID = s.ID;
                            //p.TXT020 = txval[j].ToString();
                            p.TXT50           = txval[j].ToString();
                            db.Entry(p).State = EntityState.Added;
                            db.SaveChanges();
                            j++;
                        }
                        catch (Exception e)
                        {
                            var x = e.ToString();
                        }
                    }
                }
                else
                {
                    var j = 0;
                    foreach (var texto in lstc)
                    {
                        try
                        {
                            //texto.TXT020 = txval[j].ToString();
                            texto.TXT50           = txval[j].ToString();
                            db.Entry(texto).State = EntityState.Modified;
                            db.SaveChanges();
                            j++;
                        }
                        catch (Exception e)
                        {
                            var x = e.ToString();
                        }
                    }
                }

                TSOL.ACTIVO   = tSOL.ACTIVO;
                TSOL.CARTA    = tSOL.CARTA;
                TSOL.NEGO     = tSOL.NEGO;
                TSOL.ADICIONA = tSOL.ADICIONA;
                db.SaveChanges();
                //if (txval != null)
                //{
                //    //Posterior a lo ingresado
                //    List<TSOLT> lstc = db.TSOLTs.Where(i => i.TSOL_ID == tSOL.ID).ToList();
                //    //si el arreglo solo incluye 1 dato, significa que ya hay 2 lenguajes
                //    if (txval.Length == 1)
                //    {
                //        var x1 = lstc[0].SPRAS_ID;
                //        var x2 = lstc[1].SPRAS_ID;
                //        if (lstc[0].SPRAS_ID == "EN")
                //        {
                //            if (lstc[1].SPRAS_ID == "ES")
                //            {
                //                // Lleno el primer objeto
                //                TSOLT trvt = new TSOLT();
                //                trvt.SPRAS_ID = "PT";
                //                trvt.TSOL_ID = tSOL.ID;
                //                trvt.TXT020 = txval[0];
                //                trvt.TXT50 = txval[0];
                //                db.TSOLTs.Add(trvt);
                //                db.SaveChanges();
                //            }
                //            if (lstc[1].SPRAS_ID == "PT")
                //            {  //Lleno el primer objeto
                //                TSOLT trvt = new TSOLT();
                //                trvt.SPRAS_ID = "ES";
                //                trvt.TSOL_ID = tSOL.ID;
                //                trvt.TXT020 = txval[0];
                //                trvt.TXT50 = txval[0];
                //                db.TSOLTs.Add(trvt);
                //                db.SaveChanges();
                //            }
                //        }
                //        if (lstc[0].SPRAS_ID == "ES")
                //        {
                //            if (lstc[1].SPRAS_ID == "PT")
                //            {
                //                // Lleno el primer objeto
                //                TSOLT trvt = new TSOLT();
                //                trvt.SPRAS_ID = "EN";
                //                trvt.TSOL_ID = tSOL.ID;
                //                trvt.TXT020 = txval[0];
                //                trvt.TXT50 = txval[0];
                //                db.TSOLTs.Add(trvt);
                //                db.SaveChanges();
                //            }
                //        }
                //    }
                //    //si el arreglo  incluye 2 datos, significa que ya hay 1 lenguaje
                //    else if (txval.Length == 2)
                //    {
                //        if (lstc[0].SPRAS_ID == "ES")
                //        {
                //            // Lleno el primer objeto
                //            TSOLT trvt = new TSOLT();
                //            trvt.SPRAS_ID = "EN";
                //            trvt.TSOL_ID = tSOL.ID;
                //            trvt.TXT020 = txval[0];
                //            trvt.TXT50 = txval[0];
                //            db.TSOLTs.Add(trvt);
                //            db.SaveChanges();
                //            //Lleno el segundo objeto
                //            TSOLT trvt2 = new TSOLT();
                //            trvt2.SPRAS_ID = "PT";
                //            trvt2.TSOL_ID = tSOL.ID;
                //            trvt2.TXT020 = txval[1];
                //            trvt2.TXT50 = txval[1];
                //            db.TSOLTs.Add(trvt2);
                //            db.SaveChanges();
                //        }
                //        else if (lstc[0].SPRAS_ID == "EN")
                //        {
                //            // Lleno el primer objeto
                //            TSOLT trvt = new TSOLT();
                //            trvt.SPRAS_ID = "ES";
                //            trvt.TSOL_ID = tSOL.ID;
                //            trvt.TXT020 = txval[0];
                //            trvt.TXT50 = txval[0];
                //            db.TSOLTs.Add(trvt);
                //            db.SaveChanges();
                //            //Lleno el segundo objeto
                //            TSOLT trvt2 = new TSOLT();
                //            trvt2.SPRAS_ID = "PT";
                //            trvt2.TSOL_ID = tSOL.ID;
                //            trvt2.TXT020 = txval[1];
                //            trvt2.TXT50 = txval[1];
                //            db.TSOLTs.Add(trvt2);
                //            db.SaveChanges();
                //        }
                //        else if (lstc[0].SPRAS_ID == "PT")
                //        {
                //            // Lleno el primer objeto
                //            TSOLT trvt = new TSOLT();
                //            trvt.SPRAS_ID = "ES";
                //            trvt.TSOL_ID = tSOL.ID;
                //            trvt.TXT020 = txval[0];
                //            trvt.TXT50 = txval[0];
                //            db.TSOLTs.Add(trvt);
                //            db.SaveChanges();
                //            //Lleno el segundo objeto
                //            TSOLT trvt2 = new TSOLT();
                //            trvt2.SPRAS_ID = "EN";
                //            trvt2.TSOL_ID = tSOL.ID;
                //            trvt2.TXT020 = txval[1];
                //            trvt2.TXT50 = txval[1];
                //            db.TSOLTs.Add(trvt2);
                //            db.SaveChanges();
                //        }
                //    }
                //    else if (txval.Length == 3)
                //    {
                //        if (lstc[0].SPRAS_ID == "ES")
                //        {
                //            // Lleno el primer objeto
                //            TSOLT trvt = new TSOLT();
                //            trvt.SPRAS_ID = "EN";
                //            trvt.TSOL_ID = tSOL.ID;
                //            trvt.TXT020 = txval[0];
                //            trvt.TXT50 = txval[0];
                //            db.TSOLTs.Add(trvt);
                //            db.SaveChanges();
                //            //Lleno el segundo objeto
                //            TSOLT trvt2 = new TSOLT();
                //            trvt2.SPRAS_ID = "PT";
                //            trvt2.TSOL_ID = tSOL.ID;
                //            trvt2.TXT020 = txval[1];
                //            trvt2.TXT50 = txval[1];
                //            db.TSOLTs.Add(trvt2);
                //            db.SaveChanges();
                //        }
                //        else if (lstc[0].SPRAS_ID == "EN")
                //        {
                //            // Lleno el primer objeto
                //            //TSOLT trvt = new TSOLT();
                //            //trvt.SPRAS_ID = "ES";
                //            //trvt.TSOL_ID = tSOL.ID;
                //            lstc[0].TXT020 = txval[0];
                //            lstc[0].TXT50 = txval[0];
                //            db.Entry(lstc[0]).State = EntityState.Modified;
                //            db.SaveChanges();
                //            //Lleno el segundo objeto
                //            TSOLT trvt2 = new TSOLT();
                //            trvt2.SPRAS_ID = "PT";
                //            trvt2.TSOL_ID = tSOL.ID;
                //            trvt2.TXT020 = txval[1];
                //            trvt2.TXT50 = txval[1];
                //            db.TSOLTs.Add(trvt2);
                //            db.SaveChanges();
                //        }
                //        else if (lstc[0].SPRAS_ID == "PT")
                //        {
                //            // Lleno el primer objeto
                //            TSOLT trvt = new TSOLT();
                //            trvt.SPRAS_ID = "ES";
                //            trvt.TSOL_ID = tSOL.ID;
                //            trvt.TXT020 = txval[0];
                //            trvt.TXT50 = txval[0];
                //            db.TSOLTs.Add(trvt);
                //            db.SaveChanges();
                //            //Lleno el segundo objeto
                //            TSOLT trvt2 = new TSOLT();
                //            trvt2.SPRAS_ID = "EN";
                //            trvt2.TSOL_ID = tSOL.ID;
                //            trvt2.TXT020 = txval[1];
                //            trvt2.TXT50 = txval[1];
                //            db.TSOLTs.Add(trvt2);
                //            db.SaveChanges();
                //        }
                //    }
                //}
                return(RedirectToAction("Index"));
            }
            int pagina = 793; //ID EN BASE DE DATOS

            using (TAT001Entities db = new TAT001Entities())
            {
                string u = User.Identity.Name;
                //string u = "admin";
                var user = db.USUARIOs.Where(a => a.ID.Equals(u)).FirstOrDefault();
                ViewBag.permisos = db.PAGINAVs.Where(a => a.ID.Equals(user.ID)).ToList();
                ViewBag.carpetas = db.CARPETAVs.Where(a => a.USUARIO_ID.Equals(user.ID)).ToList();
                ViewBag.usuario  = user; ViewBag.returnUrl = Request.Url.PathAndQuery;;
                ViewBag.rol      = user.PUESTO.PUESTOTs.Where(a => a.SPRAS_ID.Equals(user.SPRAS_ID)).FirstOrDefault().TXT50;
                ViewBag.Title    = db.PAGINAs.Where(a => a.ID.Equals(pagina)).FirstOrDefault().PAGINATs.Where(b => b.SPRAS_ID.Equals(user.SPRAS_ID)).FirstOrDefault().TXT50;
                ViewBag.warnings = db.WARNINGVs.Where(a => (a.PAGINA_ID.Equals(pagina) || a.PAGINA_ID.Equals(0)) && a.SPRAS_ID.Equals(user.SPRAS_ID)).ToList();
                ViewBag.textos   = db.TEXTOes.Where(a => (a.PAGINA_ID.Equals(790) || a.PAGINA_ID.Equals(0)) && a.SPRAS_ID.Equals(user.SPRAS_ID)).ToList();

                try
                {
                    string p = Session["pais"].ToString();
                    ViewBag.pais = p + ".svg";
                }
                catch
                {
                    //ViewBag.pais = "mx.svg";
                    return(RedirectToAction("Pais", "Home"));
                }
                Session["spras"] = user.SPRAS_ID;
            }
            ViewBag.RANGO_ID = new SelectList(db.RANGOes, "ID", "ID", tSOL.RANGO_ID);
            ViewBag.TSOLR    = new SelectList(db.TSOLs, "ID", "DESCRIPCION", tSOL.TSOLR);
            return(View(tSOL));
        }
        public ActionResult Create([Bind(Include = "ID,DESCRIPCION,RANGO_ID,ESTATUS,FACTURA,PADRE,REVERSO,NEGO,CARTA,ADICIONA")] TSOL tSOL, FormCollection collection, string[] txval)
        {
            if (ModelState.IsValid)
            {
                if (!existeTSOL(tSOL.ID))
                {
                    if (Convert.ToBoolean(tSOL.ESTATUS))
                    {
                        tSOL.ESTATUS = "M";
                    }
                    else
                    {
                        tSOL.ESTATUS = "X";
                    }
                    var radio = collection["group1"];
                    if (radio == "FACTURA")
                    {
                        tSOL.FACTURA = true;
                    }
                    if (radio == "PADRE")
                    {
                        tSOL.PADRE = true;
                    }
                    if (radio == "REVERSO")
                    {
                        tSOL.REVERSO = true;
                    }
                    db.TSOLs.Add(tSOL);
                    db.SaveChanges();
                    List <SPRA>  ss   = db.SPRAS.ToList();
                    List <TSOLT> lstc = db.TSOLTs.Where(i => i.TSOL_ID == tSOL.ID).ToList();
                    if (lstc.Count == 0)
                    {
                        var j = 0;
                        foreach (SPRA s in ss)
                        {
                            try
                            {
                                TSOLT p = new TSOLT();
                                p.TSOL_ID  = tSOL.ID;
                                p.SPRAS_ID = s.ID;
                                //p.TXT020 = txval[j].ToString();
                                p.TXT50           = txval[j].ToString();
                                db.Entry(p).State = EntityState.Added;
                                db.SaveChanges();
                                j++;
                            }
                            catch (Exception e)
                            {
                                var x = e.ToString();
                            }
                        }
                    }
                    return(RedirectToAction("Index"));
                }
                else
                {
                    int pagina_id = 791;//ID EN BASE DE DATOS
                    FnCommon.ObtenerConfPage(db, pagina_id, User.Identity.Name, this.ControllerContext.Controller);
                    ViewBag.RANGO_ID = new SelectList(db.RANGOes, "ID", "ID", tSOL.RANGO_ID);
                    return(View(tSOL));
                }
            }

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

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

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

                    worksheet.Cell("A" + i).Value = new[]
                    { new { COL = (sociedad.BUKRS + " - " + sociedad.BUTXT) } };
                    worksheet.Cell("B" + i).Value = new[]
                    { new { COL = lst[i - 2].PAIS_ID } };
                    worksheet.Cell("C" + i).Value = new[]
                    { new { COL = (tSol.ID + " - " + (tSol.TSOLTs.Any(x => x.SPRAS_ID == spras_id)?tSol.TSOLTs.First(x => x.SPRAS_ID == spras_id).TXT50:tSol.DESCRIPCION)) } };
                    worksheet.Cell("D" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].FACTURA) } };
                    worksheet.Cell("E" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].FECHA) } };
                    worksheet.Cell("F" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].PROVEEDOR) } };
                    worksheet.Cell("G" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].CONTROL) } };
                    worksheet.Cell("H" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].AUTORIZACION) } };
                    worksheet.Cell("I" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].VENCIMIENTO) } };
                    worksheet.Cell("J" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].FACTURAK) } };
                    worksheet.Cell("K" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].EJERCICIOK) } };
                    worksheet.Cell("L" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].BILL_DOC) } };
                    worksheet.Cell("M" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].IMPORTE_FAC) } };
                    worksheet.Cell("N" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].BELNR) } };
                    worksheet.Cell("O" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].DESCRIPCION) } };
                    worksheet.Cell("P" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].BELNR) } };
                    worksheet.Cell("Q" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].SOCIEDAD) } };
                    worksheet.Cell("R" + i).Value = new[]
                    { new { COL = ObtenerTextoSINO(lst[i - 2].ACTIVO) } };
                }
                var rt = ruta + @"\DocRel" + DateTime.Now.ToShortDateString() + ".xlsx";
                workbook.SaveAs(rt);
            }
            catch (Exception e)
            {
                Log.ErrorLogApp(e, "DocRelacion", "generarExcelHome");
            }
        }
Example #9
0
        public string generarArchivo(decimal docum, string accion, string fechacon)//MGC-14-12-2018 Modificación fechacon
        {
            string errorMessage = "";

            try
            {
                string    dirFile = "";
                DOCUMENTO doc     = db.DOCUMENTOes.Where(x => x.NUM_DOC == docum).Single();
                TSOL      ts      = db.TSOLs.Where(tsi => tsi.ID == doc.TSOL_ID).FirstOrDefault();

                string   txt = "";
                string   msj = "";
                string[] cc;
                string   cta = "";

                string carpeta = "in";//MGC 22-10-2018 Archivo local en servidor

                //Obtener la configuración de la url desde app setting
                string url_prel = "";
                try
                {
                    //url_prel = db.APPSETTINGs.Where(aps => aps.NOMBRE.Equals("URL_PREL") && aps.ACTIVO == true).FirstOrDefault().VALUE.ToString();//MGC 22-10-2018 Archivo local en servidor
                    //url_prel += @"POSTING";//MGC 22-10-2018 Archivo local en servidor
                    url_prel = getDirPrel(carpeta);
                    dirFile  = url_prel;
                }
                catch (Exception e)
                {
                    dirFile = ConfigurationManager.AppSettings["URL_PREL"].ToString() + @"in";
                }


                //MGC 22-10-2018 Archivo local en servidor
                //Verificar si el directorio existe y si hay permiso
                bool existd = ValidateIOPermission(dirFile);

                //El direcorio existe
                if (existd)
                {
                    //dirFile = ConfigurationManager.AppSettings["URL_PREL"].ToString() + @"POSTING";
                    string docname = dirFile + @"\INBOUND_PREL" + ts.ID.Substring(0, 3) + docum.ToString().PadLeft(10, '0') + "-1";

                    //MGC 11-10-2018 Acciones para el encabezado -->

                    string variable   = "";
                    string accionhead = "";
                    //Preliminar
                    if (accion == "P")
                    {
                        variable = "ACCION_CREAR";
                        fechacon = "";//MGC-14-12-2018 Modificación fechacon
                    }
                    else if (accion == "R")
                    {
                        variable = "ACCION_BC";
                        fechacon = "";//MGC-14-12-2018 Modificación fechacon
                    }
                    else if (accion == "A")
                    {
                        variable = "ACCION_CONTABILIZAR";
                    }

                    //Obtener el nombre de la acción desde la bd en APPSETTING
                    try
                    {
                        accionhead = db.APPSETTINGs.Where(aps => aps.NOMBRE.Equals(variable) && aps.ACTIVO == true).FirstOrDefault().VALUE.ToString();
                    }
                    catch (Exception e)
                    {
                    }

                    //MGC 11-10-2018 Acciones para el encabezado <--


                    doc.FECHAC = Fecha("D", Convert.ToDateTime(doc.FECHAC));

                    List <DetalleContab> det = new List <DetalleContab>();

                    //MemoryStream stIn = new MemoryStream();
                    string user = "";
                    string pass = "";
                    string dom  = "";

                    user = getUserPrel();
                    pass = getPassPrel();
                    dom  = getDomPrel();
                    //using (Impersonation.LogonUser(dom, user, pass, LogonType.NewCredentials))
                    //{
                    try
                    {
                        FileStream fs = null;
                        fs = new FileStream(docname, FileMode.CreateNew);
                        using (StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.ASCII))
                        {
                            string belnr = "";
                            string bjahr = "";
                            string bukrs = "";

                            if (accion == "R")
                            {
                                belnr = doc.NUM_PRE + "";
                                bjahr = doc.EJERCICIO_PRE + "";
                                bukrs = doc.SOCIEDAD_PRE + "";
                            }

                            //MGC 26-12-2018.4 Factura y cuenta de pago---------->
                            string factura = "";
                            if (ts.TIPO_DOCFILE.Trim().Equals("REEMBOLSO"))
                            {
                                factura = "Reembolso";
                            }
                            else
                            {
                                try
                                {
                                    factura = doc.NO_FACTURA.Trim();
                                }
                                catch (Exception)
                                {
                                }
                            }
                            //MGC 26-12-2018.4 Factura y cuenta de pago----------<

                            //DETDOC	|TIPODOC|ACCION|BELNR|GJAHR|BUKRS DETDOC EJE	FACSINOC|CONTABILIZAR|10000000|2018|1010| //MGC 11-10-2018 Acciones para el encabezado -->
                            sw.WriteLine(
                                "1" + "|" +
                                ts.TIPO_DOCFILE.Trim() + "|" +
                                doc.NUM_DOC + "|" +
                                accionhead.Trim() + "|" +
                                belnr + "|" +
                                bjahr + "|" +
                                bukrs     //MGC 19-10-2018 Cambio en archivo
                                );
                            //sw.WriteLine(""); //MGC 17-10-2018.2 Adaptación a archivo

                            //DETDOC	|TIPODOC|ACCION|BELNR|GJAHR|BUKRS DETDOC EJE	FACSINOC|CONTABILIZAR|10000000|2018|1010| //MGC 11-10-2018 Acciones para el encabezado <--

                            //Formato a fecha mes, día, año
                            sw.WriteLine(
                                "2" + "|" +
                                doc.DOCUMENTO_SAP + "|" +
                                doc.SOCIEDAD_ID.Trim() + "|" +
                                String.Format("{0:dd.MM.yyyy}", doc.FECHAC).Replace(".", "") + "|" + //Formato MGC
                                doc.MONEDA_ID.Trim() + "|" +
                                //+ "|" + //MGC 11-10-2018 Acciones para el encabezado
                                //doc.REFERENCIA.Trim() + "|" +//MGC 26-12-2018.4 Factura y cuenta de pago
                                factura + "|" +      //MGC 26-12-2018.4 Factura y cuenta de pago
                                doc.CONCEPTO + "|" + //MGC 11-10-2018 Acciones para el encabezado
                                "" + "|" +
                                "" + "|" +
                                doc.TIPO_CAMBIO      //MGC 11-10-2018 Acciones para el encabezado
                                + "|" + fechacon     //MGC-14-12-2018 Modificación fechacon//MGC 13-10-2018 Modificaión fecha
                                + "|" + "|"          //+ doc.CUENTA_ID.Trim() //MGC 26-12-2018.4 Factura y cuenta de pago
                                + "P-" + doc.NUM_DOC //MGC 26-12-2018.4 Factura y cuenta de pago
                                );
                            //sw.WriteLine("");//MGC 17-10-2018.2 Adaptación a archivo
                            //for (int i = 0; i < det.Count; i++)

                            //Obtener los rows H
                            List <DOCUMENTOP> lh = doc.DOCUMENTOPs.Where(docl => docl.ACCION == "H").ToList();
                            List <DOCUMENTOP> ld = doc.DOCUMENTOPs.Where(docl => docl.ACCION == "D").ToList();

                            //MGC 30-10-2018 Obtener las claves de contabilización ------------------------------------------------>
                            List <CLAVES_CONTA> cls = new List <CLAVES_CONTA>();

                            //MGC 30-10-2018 Obtener las claves a partir del tipo de solicitud
                            cls = db.CLAVES_CONTA.Where(clsi => clsi.TSOL == doc.TSOL_ID).ToList();

                            //MGC 30-10-2018 Obtener las claves de contabilización ------------------------------------------------<

                            //MGC 30-10-2018 Valores en el renglón H
                            for (int i = 0; i < lh.Count; i++)
                            {
                                string post  = "";
                                string postk = "";

                                //MGC 30-10-2018 Obtener las claves de contabilización ------------------------------------------------>
                                CLAVES_CONTA clsi = cls.Where(c => c.DH == lh[i].ACCION).FirstOrDefault();

                                if (clsi != null)
                                {
                                    post  = clsi.BSCHLL;
                                    postk = clsi.BSCHL;
                                }

                                //if (lh[i].ACCION == "H")
                                //{
                                //    post = "P";
                                //    if (doc.TSOL_ID == "NCC" | doc.TSOL_ID == "NCS")
                                //    {
                                //        postk = "50";
                                //    }
                                //    else
                                //    {
                                //        postk = "31";
                                //    }
                                //}
                                //else if (lh[i].ACCION == "D")
                                //{
                                //    post = "G";
                                //    if (doc.TSOL_ID == "NCC" | doc.TSOL_ID == "NCS")
                                //    {
                                //        postk = "21";
                                //    }
                                //    else
                                //    {
                                //        postk = "40";
                                //    }

                                //}

                                //MGC 30-10-2018 Obtener las claves de contabilización ------------------------------------------------<

                                string cuenta     = lh[i].CUENTA + "";
                                string ccosto     = lh[i].CCOSTO + "";
                                string imputacion = lh[i].IMPUTACION + "";

                                sw.WriteLine(
                                    //det[i].POS_TYPE + "|" +
                                    "3" + "|" +
                                    post + "|" +
                                    doc.SOCIEDAD_ID.Trim() + "|" + //det[i].COMP_CODE + "|" + //
                                                                   //det[i].BUS_AREA + "|" +
                                    "|" +
                                    //det[i].POST_KEY + "|" +
                                    postk + "|" +
                                    cuenta.Trim() + "|" + //det[i].ACCOUNT + "|" +
                                    ccosto.Trim() + "|" + //det[i].COST_CENTER + "|" +
                                    imputacion.Trim() + "|" +
                                    lh[i].MONTO + "|" +   //det[i].BALANCE + "|" +
                                    lh[i].TEXTO + "|" +   //det[i].TEXT + "|" +
                                                          //det[i].SALES_ORG + "|" +
                                                          //det[i].DIST_CHANEL + "|" +
                                    "|" +
                                    "|" +
                                    //det[i].DIVISION + "|" +
                                    "|" +
                                    //"|" +
                                    //"|" +
                                    //"|" +
                                    //"|" +
                                    //"|" +
                                    //det[i].INV_REF + "|" +
                                    //det[i].PAY_TERM + "|" +
                                    //det[i].JURIS_CODE + "|" +
                                    "|" +
                                    "|" +
                                    "|" +
                                    //"|" +
                                    //det[i].CUSTOMER + "|" +
                                    //det[i].PRODUCT + "|" +
                                    "|" +
                                    "|" +
                                    lh[i].MWSKZ + "|" + //det[i].TAX_CODE + "|" +
                                                        //det[i].PLANT + "|" +
                                                        //det[i].REF_KEY1 + "|" +
                                                        //det[i].REF_KEY3 + "|" +
                                                        //det[i].ASSIGNMENT + "|" +
                                                        //det[i].QTY + "|" +
                                                        //det[i].BASE_UNIT + "|" +
                                                        //det[i].AMOUNT_LC + "|" +
                                                        //det[i].RETENCION_ID + "|"
                                    "|" +
                                    "|" +
                                    "|" +
                                    "|" +
                                    "|" +
                                    "|" +
                                    "|" +
                                    "|"
                                    );
                            }

                            //MGC 30-10-2018 Valores en el renglón D
                            for (int i = 0; i < ld.Count; i++)
                            {
                                string post  = "";
                                string postk = "";

                                //MGC 30-10-2018 Obtener las claves de contabilización ------------------------------------------------>
                                CLAVES_CONTA clsi = cls.Where(c => c.DH == ld[i].ACCION).FirstOrDefault();

                                if (clsi != null)
                                {
                                    post  = clsi.BSCHLL;
                                    postk = clsi.BSCHL;
                                }

                                //if (ld[i].ACCION == "H")
                                //{
                                //    post = "P";
                                //    if (doc.TSOL_ID == "NCC" | doc.TSOL_ID == "NCS")
                                //    {
                                //        postk = "50";
                                //    }
                                //    else
                                //    {
                                //        postk = "31";
                                //    }
                                //}
                                //else if (ld[i].ACCION == "D")
                                //{
                                //    post = "G";
                                //    if (doc.TSOL_ID == "NCC" | doc.TSOL_ID == "NCS")
                                //    {
                                //        postk = "21";
                                //    }
                                //    else
                                //    {
                                //        postk = "40";
                                //    }

                                //}

                                //MGC 30-10-2018 Obtener las claves de contabilización ------------------------------------------------<

                                string cuenta     = ld[i].CUENTA + "";
                                string ccosto     = ld[i].CCOSTO + "";
                                string imputacion = ld[i].IMPUTACION + "";

                                sw.WriteLine(
                                    //det[i].POS_TYPE + "|" +
                                    "3" + "|" +
                                    post + "|" +
                                    doc.SOCIEDAD_ID.Trim() + "|" + //det[i].COMP_CODE + "|" + //
                                                                   //det[i].BUS_AREA + "|" +
                                    "|" +
                                    //det[i].POST_KEY + "|" +
                                    postk + "|" +
                                    cuenta.Trim() + "|" + //det[i].ACCOUNT + "|" +
                                    ccosto.Trim() + "|" + //det[i].COST_CENTER + "|" +
                                    imputacion.Trim() + "|" +
                                    ld[i].MONTO + "|" +   //det[i].BALANCE + "|" +
                                    ld[i].TEXTO + "|" +   //det[i].TEXT + "|" +
                                                          //det[i].SALES_ORG + "|" +
                                                          //det[i].DIST_CHANEL + "|" +
                                    "|" +
                                    "|" +
                                    //det[i].DIVISION + "|" +
                                    "|" +
                                    //"|" +
                                    //"|" +
                                    //"|" +
                                    //"|" +
                                    //"|" +
                                    //det[i].INV_REF + "|" +
                                    //det[i].PAY_TERM + "|" +
                                    //det[i].JURIS_CODE + "|" +
                                    "|" +
                                    "|" +
                                    "|" +
                                    //"|" +
                                    //det[i].CUSTOMER + "|" +
                                    //det[i].PRODUCT + "|" +
                                    "|" +
                                    "|" +
                                    ld[i].MWSKZ + "|" + //det[i].TAX_CODE + "|" +
                                                        //det[i].PLANT + "|" +
                                                        //det[i].REF_KEY1 + "|" +
                                                        //det[i].REF_KEY3 + "|" +
                                                        //det[i].ASSIGNMENT + "|" +
                                                        //det[i].QTY + "|" +
                                                        //det[i].BASE_UNIT + "|" +
                                                        //det[i].AMOUNT_LC + "|" +
                                                        //det[i].RETENCION_ID + "|"
                                    "|" +
                                    "|" +
                                    "|" +
                                    "|" +
                                    "|" +
                                    "|" +
                                    "|" +
                                    "|"
                                    );
                            }

                            //MGC 11-10-2018 Acciones para el encabezado RETENCIONES -->
                            for (int i = 0; i < doc.DOCUMENTORs.Count; i++)
                            {
                                sw.WriteLine(
                                    "4" + "|" +
                                    "W" + "|" +
                                    doc.DOCUMENTORs.ElementAt(i).WITHT + "|" +
                                    doc.DOCUMENTORs.ElementAt(i).WT_WITHCD + "|" +
                                    doc.DOCUMENTORs.ElementAt(i).BIMPONIBLE + "|" +
                                    doc.DOCUMENTORs.ElementAt(i).IMPORTE_RET //+ "|" //MGC 17-10-2018.2 Adaptación a archivo

                                    );
                            }
                            //MGC 11-10-2018 Acciones para el encabezado RETENCIONES <--

                            //sw.Close();
                            sw.Close();

                            //using (Stream stOut = reqFTP.GetRequestStream())
                            //{
                            //    stOut.Write(stIn.GetBuffer(), 0, (int)stIn.Length);
                            //}
                        }
                    }
                    catch (Exception e)
                    {
                        errorMessage = "Error al generar el archivo txt preliminar " + e.Message;
                    }
                    //}
                }
                else
                {
                    errorMessage = "Error con el directorio para crear archivo";
                }



                ////MGC 11-10-2018 Acciones para el encabezado -->

                //string variable = "";
                //string accionhead = "";
                ////Preliminar
                //if(accion == "P")
                //{
                //    variable = "ACCION_CREAR";
                //}else if(accion == "R")
                //{
                //    variable = "ACCION_BC";
                //}
                //else if (accion == "A")
                //{
                //    variable = "ACCION_CONTABILIZAR";
                //}

                ////Obtener el nombre de la acción desde la bd en APPSETTING
                //try
                //{
                //    accionhead = db.APPSETTINGs.Where(aps => aps.NOMBRE.Equals(variable) && aps.ACTIVO == true).FirstOrDefault().VALUE.ToString();

                //}catch(Exception e)
                //{

                //}

                ////MGC 11-10-2018 Acciones para el encabezado <--


                //doc.FECHAC = Fecha("D", Convert.ToDateTime(doc.FECHAC));

                //List<DetalleContab> det = new List<DetalleContab>();

                //var dir = new Files().createDir(dirFile);//RSG 01.08.2018

                ////Evaluar que se creo el directorio
                //if (dir.Equals(""))
                //{
                //    using (StreamWriter sw = new StreamWriter(docname))
                //    {
                //        string belnr = "";
                //        string bjahr = "";
                //        string bukrs = "";

                //        if (accion == "R")
                //        {
                //            belnr = doc.NUM_PRE + "";
                //            bjahr = doc.EJERCICIO_PRE + "";
                //            bukrs = doc.SOCIEDAD_PRE + "";
                //        }

                //        //DETDOC	|TIPODOC|ACCION|BELNR|GJAHR|BUKRS DETDOC EJE	FACSINOC|CONTABILIZAR|10000000|2018|1010| //MGC 11-10-2018 Acciones para el encabezado -->
                //        sw.WriteLine(
                //            "1"+ "|" +
                //            ts.TIPO_DOCFILE.Trim() + "|" +
                //            doc.NUM_DOC+"|" +
                //            accionhead.Trim() + "|"+
                //            belnr + "|"+
                //            bjahr + "|"+
                //            bukrs + "|"
                //            );
                //        sw.WriteLine("");

                //        //DETDOC	|TIPODOC|ACCION|BELNR|GJAHR|BUKRS DETDOC EJE	FACSINOC|CONTABILIZAR|10000000|2018|1010| //MGC 11-10-2018 Acciones para el encabezado <--

                //        //Formato a fecha mes, día, año
                //        sw.WriteLine(
                //            "2" + "|" +
                //            doc.DOCUMENTO_SAP + "|" +
                //            doc.SOCIEDAD_ID.Trim() + "|" +
                //            String.Format("{0:MM.dd.yyyy}", doc.FECHAC).Replace(".", "") + "|"+
                //            doc.MONEDA_ID.Trim() + "|" +
                //            //+ "|" + //MGC 11-10-2018 Acciones para el encabezado
                //            doc.REFERENCIA + "|"+
                //            doc.CONCEPTO + "|" + //MGC 11-10-2018 Acciones para el encabezado
                //            "X" + "|"+
                //            doc.TIPO_CAMBIO + "|" //MGC 11-10-2018 Acciones para el encabezado
                //            + ""
                //            );
                //        sw.WriteLine("");
                //        //for (int i = 0; i < det.Count; i++)
                //        for (int i = 0; i < doc.DOCUMENTOPs.Count; i++)
                //        {
                //            string post = "";
                //            string postk = "";

                //            if (doc.DOCUMENTOPs.ElementAt(i).ACCION == "H")
                //            {
                //                post = "P";
                //                postk = "31";
                //            }
                //            else if (doc.DOCUMENTOPs.ElementAt(i).ACCION == "D")
                //            {
                //                post = "G";
                //                postk = "40";

                //            }
                //            sw.WriteLine(
                //                //det[i].POS_TYPE + "|" +
                //                "3" + "|" +
                //                post + "|" +
                //                doc.SOCIEDAD_ID.Trim() + "|" + //det[i].COMP_CODE + "|" + //
                //                                               //det[i].BUS_AREA + "|" +
                //                "|" +
                //                //det[i].POST_KEY + "|" +
                //                postk + "|" +
                //                doc.DOCUMENTOPs.ElementAt(i).CUENTA + "|" +//det[i].ACCOUNT + "|" +
                //                doc.DOCUMENTOPs.ElementAt(i).CCOSTO + "|" +//det[i].COST_CENTER + "|" +
                //                doc.DOCUMENTOPs.ElementAt(i).IMPUTACION + "|" +
                //                doc.DOCUMENTOPs.ElementAt(i).MONTO + "|" +//det[i].BALANCE + "|" +
                //                doc.DOCUMENTOPs.ElementAt(i).TEXTO + "|" + //det[i].TEXT + "|" +
                //                                            //det[i].SALES_ORG + "|" +
                //                                            //det[i].DIST_CHANEL + "|" +
                //                "|" +
                //                "|" +
                //                //det[i].DIVISION + "|" +
                //                "|" +
                //                //"|" +
                //                //"|" +
                //                //"|" +
                //                //"|" +
                //                //"|" +
                //                //det[i].INV_REF + "|" +
                //                //det[i].PAY_TERM + "|" +
                //                //det[i].JURIS_CODE + "|" +
                //                "|" +
                //                "|" +
                //                "|" +
                //                //"|" +
                //                //det[i].CUSTOMER + "|" +
                //                //det[i].PRODUCT + "|" +
                //                "|" +
                //                "|" +
                //                doc.DOCUMENTOPs.ElementAt(i).MWSKZ + "|" +//det[i].TAX_CODE + "|" +
                //                                                          //det[i].PLANT + "|" +
                //                                                          //det[i].REF_KEY1 + "|" +
                //                                                          //det[i].REF_KEY3 + "|" +
                //                                                          //det[i].ASSIGNMENT + "|" +
                //                                                          //det[i].QTY + "|" +
                //                                                          //det[i].BASE_UNIT + "|" +
                //                                                          //det[i].AMOUNT_LC + "|" +
                //                                                          //det[i].RETENCION_ID + "|"
                //                "|" +
                //                "|" +
                //                "|" +
                //                "|" +
                //                "|" +
                //                "|" +
                //                "|" +
                //                "|"
                //                );
                //        }
                //        //MGC 11-10-2018 Acciones para el encabezado RETENCIONES -->
                //        for (int i = 0; i < doc.DOCUMENTORs.Count; i++)
                //        {
                //            sw.WriteLine(
                //            "4" + "|" +
                //            "W" + "|" +
                //            doc.DOCUMENTORs.ElementAt(i).WITHT + "|" +
                //            doc.DOCUMENTORs.ElementAt(i).WT_WITHCD + "|" +
                //            doc.DOCUMENTORs.ElementAt(i).BIMPONIBLE + "|" +
                //            doc.DOCUMENTORs.ElementAt(i).IMPORTE_RET + "|" +
                //            ""
                //            );
                //        }
                //        //MGC 11-10-2018 Acciones para el encabezado RETENCIONES <--

                //        sw.Close();
                //    }

                //}
                //else
                //{
                //    errorMessage = dir;
                //}

                //MGC prueba FTP---------------------------------------------------------------------------------------------------------------------------------------->

                //Obtener la configuración de la url desde app setting
                //string ftpServerIP = "";
                //try
                //{
                //    ftpServerIP = db.APPSETTINGs.Where(aps => aps.NOMBRE.Equals("URL_FTP_PRELIMINAR") && aps.ACTIVO == true).FirstOrDefault().VALUE.ToString();
                //    url_prel += @"POSTING";
                //    dirFile = url_prel;
                //}
                //catch (Exception e)
                //{

                //}
                //string targetFileName = "/SAP/POSTING/INBOUND_PREL" + ts.ID.Substring(0, 2) + docum.ToString().PadLeft(10, '0') + "-1.txt";

                ////string ftpServerIP = "192.168.32.207:21";
                ////string targetFileName = "/SAP/POSTING/prueba.txt";
                //string username = "******";
                //string password = "******";

                //Uri uri = new Uri(String.Format("ftp://{0}/{1}", ftpServerIP, targetFileName));
                //FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(uri);
                //reqFTP.Credentials = new NetworkCredential(username, password);
                //reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
                //reqFTP.KeepAlive = false;
                //reqFTP.UsePassive = false;


                //MemoryStream stIn = new MemoryStream();
                //using (StreamWriter sw = new StreamWriter(stIn))
                //{
                //    string belnr = "";
                //    string bjahr = "";
                //    string bukrs = "";

                //    if (accion == "R")
                //    {
                //        belnr = doc.NUM_PRE + "";
                //        bjahr = doc.EJERCICIO_PRE + "";
                //        bukrs = doc.SOCIEDAD_PRE + "";
                //    }

                //    //DETDOC	|TIPODOC|ACCION|BELNR|GJAHR|BUKRS DETDOC EJE	FACSINOC|CONTABILIZAR|10000000|2018|1010| //MGC 11-10-2018 Acciones para el encabezado -->
                //    sw.WriteLine(
                //        "1" + "|" +
                //        ts.TIPO_DOCFILE.Trim() + "|" +
                //        doc.NUM_DOC + "|" +
                //        accionhead.Trim() + "|" +
                //        belnr + "|" +
                //        bjahr + "|" +
                //        bukrs //MGC 19-10-2018 Cambio en archivo
                //        );
                //    //sw.WriteLine(""); //MGC 17-10-2018.2 Adaptación a archivo

                //    //DETDOC	|TIPODOC|ACCION|BELNR|GJAHR|BUKRS DETDOC EJE	FACSINOC|CONTABILIZAR|10000000|2018|1010| //MGC 11-10-2018 Acciones para el encabezado <--

                //    //Formato a fecha mes, día, año
                //    sw.WriteLine(
                //        "2" + "|" +
                //        doc.DOCUMENTO_SAP + "|" +
                //        doc.SOCIEDAD_ID.Trim() + "|" +
                //        String.Format("{0:dd.MM.yyyy}", doc.FECHAC).Replace(".", "") + "|" + //Formato MGC
                //        doc.MONEDA_ID.Trim() + "|" +
                //        //+ "|" + //MGC 11-10-2018 Acciones para el encabezado
                //        doc.REFERENCIA.Trim() + "|" +
                //        doc.CONCEPTO + "|" + //MGC 11-10-2018 Acciones para el encabezado
                //        "" + "|" +
                //        "" + "|" +
                //        doc.TIPO_CAMBIO  //MGC 11-10-2018 Acciones para el encabezado
                //        );
                //    //sw.WriteLine("");//MGC 17-10-2018.2 Adaptación a archivo
                //    //for (int i = 0; i < det.Count; i++)

                //    //Obtener los rows H
                //    List<DOCUMENTOP> lh = doc.DOCUMENTOPs.Where(docl => docl.ACCION == "H").ToList();
                //    List<DOCUMENTOP> ld = doc.DOCUMENTOPs.Where(docl => docl.ACCION == "D").ToList();

                //    for (int i = 0; i < lh.Count; i++)
                //    {
                //        string post = "";
                //        string postk = "";

                //        if (lh[i].ACCION == "H")
                //        {
                //            post = "P";
                //            postk = "31";
                //        }
                //        else if (lh[i].ACCION == "D")
                //        {
                //            post = "G";
                //            postk = "40";

                //        }

                //        string cuenta = lh[i].CUENTA+"";
                //        string ccosto = lh[i].CCOSTO + "";
                //        string imputacion = lh[i].IMPUTACION + "";

                //        sw.WriteLine(
                //            //det[i].POS_TYPE + "|" +
                //            "3" + "|" +
                //            post + "|" +
                //            doc.SOCIEDAD_ID.Trim() + "|" + //det[i].COMP_CODE + "|" + //
                //                                           //det[i].BUS_AREA + "|" +
                //            "|" +
                //            //det[i].POST_KEY + "|" +
                //            postk + "|" +
                //            cuenta.Trim() + "|" +//det[i].ACCOUNT + "|" +
                //            ccosto.Trim() + "|" +//det[i].COST_CENTER + "|" +
                //            imputacion.Trim() + "|" +
                //            lh[i].MONTO + "|" +//det[i].BALANCE + "|" +
                //            lh[i].TEXTO + "|" + //det[i].TEXT + "|" +
                //                                                       //det[i].SALES_ORG + "|" +
                //                                                       //det[i].DIST_CHANEL + "|" +
                //            "|" +
                //            "|" +
                //            //det[i].DIVISION + "|" +
                //            "|" +
                //            //"|" +
                //            //"|" +
                //            //"|" +
                //            //"|" +
                //            //"|" +
                //            //det[i].INV_REF + "|" +
                //            //det[i].PAY_TERM + "|" +
                //            //det[i].JURIS_CODE + "|" +
                //            "|" +
                //            "|" +
                //            "|" +
                //            //"|" +
                //            //det[i].CUSTOMER + "|" +
                //            //det[i].PRODUCT + "|" +
                //            "|" +
                //            "|" +
                //            lh[i].MWSKZ + "|" +//det[i].TAX_CODE + "|" +
                //                                                      //det[i].PLANT + "|" +
                //                                                      //det[i].REF_KEY1 + "|" +
                //                                                      //det[i].REF_KEY3 + "|" +
                //                                                      //det[i].ASSIGNMENT + "|" +
                //                                                      //det[i].QTY + "|" +
                //                                                      //det[i].BASE_UNIT + "|" +
                //                                                      //det[i].AMOUNT_LC + "|" +
                //                                                      //det[i].RETENCION_ID + "|"
                //            "|" +
                //            "|" +
                //            "|" +
                //            "|" +
                //            "|" +
                //            "|" +
                //            "|" +
                //            "|"
                //            );
                //    }

                //    for (int i = 0; i < ld.Count; i++)
                //    {
                //        string post = "";
                //        string postk = "";

                //        if (ld[i].ACCION == "H")
                //        {
                //            post = "P";
                //            postk = "31";
                //        }
                //        else if (ld[i].ACCION == "D")
                //        {
                //            post = "G";
                //            postk = "40";

                //        }

                //        string cuenta = ld[i].CUENTA + "";
                //        string ccosto = ld[i].CCOSTO + "";
                //        string imputacion = ld[i].IMPUTACION + "";

                //        sw.WriteLine(
                //            //det[i].POS_TYPE + "|" +
                //            "3" + "|" +
                //            post + "|" +
                //            doc.SOCIEDAD_ID.Trim() + "|" + //det[i].COMP_CODE + "|" + //
                //                                           //det[i].BUS_AREA + "|" +
                //            "|" +
                //            //det[i].POST_KEY + "|" +
                //            postk + "|" +
                //            cuenta.Trim() + "|" +//det[i].ACCOUNT + "|" +
                //            ccosto.Trim() + "|" +//det[i].COST_CENTER + "|" +
                //            imputacion.Trim() + "|" +
                //            ld[i].MONTO + "|" +//det[i].BALANCE + "|" +
                //            ld[i].TEXTO + "|" + //det[i].TEXT + "|" +
                //                                //det[i].SALES_ORG + "|" +
                //                                //det[i].DIST_CHANEL + "|" +
                //            "|" +
                //            "|" +
                //            //det[i].DIVISION + "|" +
                //            "|" +
                //            //"|" +
                //            //"|" +
                //            //"|" +
                //            //"|" +
                //            //"|" +
                //            //det[i].INV_REF + "|" +
                //            //det[i].PAY_TERM + "|" +
                //            //det[i].JURIS_CODE + "|" +
                //            "|" +
                //            "|" +
                //            "|" +
                //            //"|" +
                //            //det[i].CUSTOMER + "|" +
                //            //det[i].PRODUCT + "|" +
                //            "|" +
                //            "|" +
                //            ld[i].MWSKZ + "|" +//det[i].TAX_CODE + "|" +
                //                               //det[i].PLANT + "|" +
                //                               //det[i].REF_KEY1 + "|" +
                //                               //det[i].REF_KEY3 + "|" +
                //                               //det[i].ASSIGNMENT + "|" +
                //                               //det[i].QTY + "|" +
                //                               //det[i].BASE_UNIT + "|" +
                //                               //det[i].AMOUNT_LC + "|" +
                //                               //det[i].RETENCION_ID + "|"
                //            "|" +
                //            "|" +
                //            "|" +
                //            "|" +
                //            "|" +
                //            "|" +
                //            "|" +
                //            "|"
                //            );
                //    }

                //    //MGC 11-10-2018 Acciones para el encabezado RETENCIONES -->
                //    for (int i = 0; i < doc.DOCUMENTORs.Count; i++)
                //    {
                //        sw.WriteLine(
                //        "4" + "|" +
                //        "W" + "|" +
                //        doc.DOCUMENTORs.ElementAt(i).WITHT + "|" +
                //        doc.DOCUMENTORs.ElementAt(i).WT_WITHCD + "|" +
                //        doc.DOCUMENTORs.ElementAt(i).BIMPONIBLE + "|" +
                //        doc.DOCUMENTORs.ElementAt(i).IMPORTE_RET //+ "|" //MGC 17-10-2018.2 Adaptación a archivo

                //        );
                //    }
                //    //MGC 11-10-2018 Acciones para el encabezado RETENCIONES <--

                //    //sw.Close();
                //    sw.Flush();

                //    using (Stream stOut = reqFTP.GetRequestStream())
                //    {
                //        stOut.Write(stIn.GetBuffer(), 0, (int)stIn.Length);
                //    }



                //}

                //FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
                //response.Close();
                //MGC prueba FTP----------------------------------------------------------------------------------------------------------------------------------------<

                //if (tab.RELACION != 0 && tab.RELACION != null)
                //{
                //    return generarArchivo(docum, Convert.ToInt32(tab.RELACION));
                //}
                //else
                //{
                //return "";
                //}
            }
            catch (Exception e)
            {
                //return "Error al generar el documento contable " + e.Message;
                errorMessage = "Error al generar el archivo txt preliminar " + e.Message;
            }

            return(errorMessage);
        }
Example #10
0
        public decimal creaReversa(string id_d, string tsol)
        {
            string   dates   = DateTime.Now.ToString("dd/MM/yyyy");
            DateTime theTime = DateTime.ParseExact(dates, //"06/04/2018 12:00:00 a.m."
                                                   "dd/MM/yyyy",
                                                   System.Globalization.CultureInfo.InvariantCulture,
                                                   System.Globalization.DateTimeStyles.None);

            var relacionada_neg = "";
            var relacionada_dis = "";

            DOCUMENTO      dOCUMENTO   = new DOCUMENTO();
            DOCUMENTO      dOCpADRE    = new DOCUMENTO();
            string         errorString = "";
            TAT001Entities db          = new TAT001Entities();

            string           p     = "";
            List <TREVERSAT> ldocr = new List <TREVERSAT>();
            decimal          rel   = 0;

            try
            {
                if (id_d == null || id_d.Equals(""))
                {
                    throw new Exception();
                }
                rel = Convert.ToDecimal(id_d);
            }
            catch
            {
                rel = 0;
            }
            //---
            //Obtener los valores de tsols
            List <TSOL> tsols_val = new List <TSOL>();

            //List<TSOLT_MODBD> tsols_valbd = new List<TSOLT_MODBD>();//RSG 13.06.2018
            try
            {
                tsols_val = db.TSOLs.ToList();
                //tsols_valbd = tsols_val.Select(tsv => new TSOLT_MODBD
                //{
                //    ID = tsv.ID,
                //    FACTURA = tsv.FACTURA
                //}).ToList();
            }
            catch (Exception e)
            {
            }
            //Validar si es una reversa
            string isrn     = "";
            string isr      = "";
            var    freversa = (dynamic)null;

            try
            {
                if (tsol == null || tsol.Equals(""))
                {
                    throw new Exception();
                }
                TSOL ts = tsols_val.Where(tsb => tsb.TSOLR == tsol).FirstOrDefault();
                if (ts != null)
                {
                    isrn     = "X";
                    isr      = "preversa";
                    freversa = theTime.ToString("yyyy-MM-dd");;
                    //Obtener los tipos de reversas
                    try
                    {
                        ldocr = db.TREVERSATs.Where(a => a.TREVERSA.ACTIVO == true && a.SPRAS_ID == dOCpADRE.USUARIO.SPRAS_ID).ToList();
                    }
                    catch (Exception e)
                    {
                    }
                }
            }
            catch (Exception e)
            {
                isrn     = "";
                isr      = "";
                freversa = "";
            }
            //---

            //Obtener los documentos relacionados
            List <DOCUMENTO> docsrel = new List <DOCUMENTO>();

            SOCIEDAD id_bukrs = new SOCIEDAD();
            var      id_pais  = new PAI();
            var      id_waers = db.MONEDAs.Where(m => m.ACTIVO == true).ToList();

            if (rel > 0)
            {
                dOCpADRE = db.DOCUMENTOes.Where(doc => doc.NUM_DOC == rel).FirstOrDefault();
                ////if (dOCpADRE.TIPO_RECURRENTE == null)//RSG 28.05.2018----------------------------------------------
                ////    return 0;
                ////if (!((dOCpADRE.TIPO_RECURRENTE.Equals("M") | dOCpADRE.TIPO_RECURRENTE.Equals("P")) & dOCpADRE.ESTATUS.Equals("A") & dOCpADRE.ESTATUS_WF.Equals("A")))//RSG 28.05.2018
                ////{
                ////    return 0;
                ////}
                //////List<DOCUMENTOREC> ddrec = new List<DOCUMENTOREC>();
                ////DOCUMENTOREC drec = dOCpADRE.DOCUMENTORECs.Where(a => a.ESTATUS == "A").FirstOrDefault();
                ////if (drec == null)
                ////    return 0;
                ////else
                ////{
                ////    DateTime hoy = (DateTime)drec.FECHAF;
                ////    var primer = new DateTime(hoy.Year, hoy.Month, 1);
                ////    var ultimo = primer.AddMonths(1).AddDays(-1);
                ////    dOCUMENTO.FECHAI_VIG = primer;
                ////    dOCUMENTO.FECHAF_VIG = ultimo;
                ////    dOCUMENTO.MONTO_DOC_MD = (decimal)drec.MONTO_BASE;
                ////}
                ////if (tsol != dOCpADRE.TSOL_ID)
                ////    return 0;
                //////RSG 28.05.2018----------------------------------------------
                docsrel  = db.DOCUMENTOes.Where(docr => docr.DOCUMENTO_REF == rel).ToList();
                id_bukrs = db.SOCIEDADs.Where(soc => soc.BUKRS == dOCpADRE.SOCIEDAD_ID && soc.ACTIVO == true).FirstOrDefault();
                id_pais  = db.PAIS.Where(pais => pais.LAND.Equals(dOCpADRE.PAIS_ID)).FirstOrDefault();//RSG 15.05.2018
                dOCUMENTO.DOCUMENTO_REF = rel;
                relacionada_neg         = dOCpADRE.TIPO_TECNICO;
                ////ViewBag.TSOL_ANT = dOCUMENTO.TSOL_ID;

                if (dOCUMENTO != null)
                {
                    dOCUMENTO.TSOL_ID = tsol;
                    dOCUMENTO.NUM_DOC = 0;
                    ////foreach (DOCUMENTOP pos in dOCpADRE.DOCUMENTOPs)
                    ////{

                    ////}
                    List <DOCUMENTOP> docpl    = db.DOCUMENTOPs.Where(docp => docp.NUM_DOC == dOCpADRE.NUM_DOC).ToList();//Documentos que se obtienen de la provisión
                    List <DOCUMENTOP> docsrelp = new List <DOCUMENTOP>();

                    if (docsrel.Count > 0)
                    {
                        docsrelp = docsrel
                                   .Join(
                            db.DOCUMENTOPs,
                            docsl => docsl.NUM_DOC,
                            docspl => docspl.NUM_DOC,
                            (docsl, docspl) => new DOCUMENTOP
                        {
                            NUM_DOC      = docspl.NUM_DOC,
                            POS          = docspl.POS,
                            MATNR        = docspl.MATNR,
                            MATKL        = docspl.MATKL,
                            CANTIDAD     = docspl.CANTIDAD,
                            MONTO        = docspl.MONTO,
                            PORC_APOYO   = docspl.PORC_APOYO,
                            MONTO_APOYO  = docspl.MONTO_APOYO,
                            PRECIO_SUG   = docspl.PRECIO_SUG,
                            VOLUMEN_EST  = docspl.VOLUMEN_EST,
                            VOLUMEN_REAL = docspl.VOLUMEN_REAL,
                            APOYO_REAL   = docspl.APOYO_REAL,
                            APOYO_EST    = docspl.APOYO_EST,
                            VIGENCIA_DE  = docspl.VIGENCIA_DE,
                            VIGENCIA_AL  = docspl.VIGENCIA_AL
                        }).ToList();
                    }
                    List <TAT001.Models.DOCUMENTOP_MOD> docsp = new List <DOCUMENTOP_MOD>();
                    var dis = "";
                    for (int j = 0; j < docpl.Count; j++)
                    {
                        try
                        {
                            //Documentos de la provisión
                            DOCUMENTOP_MOD docP = new DOCUMENTOP_MOD();
                            docP.NUM_DOC = dOCpADRE.NUM_DOC;
                            docP.POS     = docpl[j].POS;
                            docP.MATNR   = docpl[j].MATNR;
                            if (j == 0 && docP.MATNR == "")
                            {
                                relacionada_dis = "C";
                            }
                            docP.MATKL       = docpl[j].MATKL;
                            docP.MATKL_ID    = docpl[j].MATKL;
                            docP.CANTIDAD    = 1;
                            docP.MONTO       = docpl[j].MONTO;
                            docP.PORC_APOYO  = docpl[j].PORC_APOYO;
                            docP.MONTO_APOYO = docpl[j].MONTO_APOYO;
                            docP.PRECIO_SUG  = docpl[j].PRECIO_SUG;
                            docP.VOLUMEN_EST = docpl[j].VOLUMEN_EST;
                            docP.VIGENCIA_DE = docpl[j].VIGENCIA_DE;
                            docP.VIGENCIA_AL = docpl[j].VIGENCIA_AL;
                            docP.APOYO_EST   = docpl[j].APOYO_EST;
                            docP.APOYO_REAL  = docpl[j].APOYO_REAL;

                            //Verificar si hay materiales en las relacionadas
                            if (docsrelp.Count > 0)
                            {
                                List <DOCUMENTOP> docrel = new List <DOCUMENTOP>();

                                if (docP.MATNR != null && docP.MATNR != "")
                                {
                                    docrel = docsrelp.Where(docrell => docrell.MATNR == docP.MATNR).ToList();
                                }
                                else
                                {
                                    docrel = docsrelp.Where(docrell => docrell.MATKL == docP.MATKL_ID).ToList();
                                    dis    = "C";
                                }

                                for (int k = 0; k < docrel.Count; k++)
                                {
                                    //Relacionada se obtiene el
                                    decimal docr_vr = Convert.ToDecimal(docrel[k].VOLUMEN_REAL);
                                    decimal docr_ar = Convert.ToDecimal(docrel[k].APOYO_REAL);

                                    docP.VOLUMEN_EST -= docr_vr;
                                    docP.APOYO_EST   -= docr_ar;

                                    if (dis == "C")
                                    {
                                        //decimal docr_vr = Convert.ToDecimal(docrel[k].);
                                        //decimal docr_ar = Convert.ToDecimal(docrel[k].APOYO_REAL);
                                    }
                                }
                            }

                            //Siempre tiene que ser igual a 0
                            if (docP.VOLUMEN_EST < 0)
                            {
                                docP.VOLUMEN_EST = 0;
                            }
                            if (docP.APOYO_EST < 0)
                            {
                                docP.APOYO_EST = 0;
                            }

                            docP.MATNR = docpl[j].MATNR.TrimStart('0');//RSG 07.06.2018
                            docsp.Add(docP);
                        }
                        catch (Exception e)
                        {
                        }
                    }

                    dOCUMENTO.DOCUMENTOP = docsp;
                }
            }
            else
            {
            }

            dOCUMENTO.SOCIEDAD_ID = id_bukrs.BUKRS;
            dOCUMENTO.PAIS_ID     = id_pais.LAND;//RSG 18.05.2018
            dOCUMENTO.MONEDA_ID   = id_bukrs.WAERS;
            dOCUMENTO.PERIODO     = Convert.ToInt32(DateTime.Now.ToString("MM"));
            dOCUMENTO.EJERCICIO   = Convert.ToString(DateTime.Now.Year);

            dOCUMENTO.FECHAD = theTime;

            //----------------------------RSG 18.05.2018

            //dOCUMENTO.SOCIEDAD = db.SOCIEDADs.Find(dOCUMENTO.SOCIEDAD_ID);
            //----------------------------RSG 18.05.2018


            dOCUMENTO.MONTO_DOC_MD = decimal.Parse("0.00");
            foreach (DOCUMENTOP_MOD dpm in dOCUMENTO.DOCUMENTOP)
            {
                DOCUMENTOP ddp = new DOCUMENTOP();
                ddp.MATKL        = dpm.MATKL_ID;
                ddp.MATNR        = new Cadena().completaMaterial(dpm.MATNR);
                ddp.MONTO        = dpm.MONTO;
                ddp.MONTO_APOYO  = dpm.MONTO_APOYO;
                ddp.PORC_APOYO   = dpm.PORC_APOYO;
                ddp.POS          = dpm.POS;
                ddp.PRECIO_SUG   = dpm.PRECIO_SUG;
                ddp.VIGENCIA_AL  = dpm.VIGENCIA_AL;
                ddp.VIGENCIA_DE  = dpm.VIGENCIA_DE;
                ddp.VOLUMEN_EST  = dpm.VOLUMEN_EST;
                ddp.VOLUMEN_REAL = dpm.VOLUMEN_REAL;
                ddp.APOYO_EST    = dpm.APOYO_EST;
                ddp.APOYO_REAL   = dpm.APOYO_REAL;
                ddp.CANTIDAD     = dpm.CANTIDAD;

                DOCUMENTOP dpp = dOCpADRE.DOCUMENTOPs.Where(x => x.POS == ddp.POS).FirstOrDefault();
                foreach (DOCUMENTOM dm in dpp.DOCUMENTOMs)
                {
                    DOCUMENTOM dmm = new DOCUMENTOM();
                    dmm.APOYO_EST  = dm.APOYO_EST;
                    dmm.APOYO_REAL = dm.APOYO_REAL;
                    dmm.MATNR      = dm.MATNR;
                    //dmm.NUM_DOC = dm.NUM_DOC;
                    dmm.PORC_APOYO  = dm.PORC_APOYO;
                    dmm.POS         = dm.POS;
                    dmm.POS_ID      = dm.POS_ID;
                    dmm.VALORH      = dm.VALORH;
                    dmm.VIGENCIA_A  = dm.VIGENCIA_A;
                    dmm.VIGENCIA_DE = dm.VIGENCIA_DE;

                    ddp.DOCUMENTOMs.Add(dmm);
                }

                dOCUMENTO.DOCUMENTOPs.Add(ddp);
                dOCUMENTO.MONTO_DOC_MD += ddp.APOYO_EST;
            }

            foreach (DOCUMENTOP dpp in dOCpADRE.DOCUMENTOPs)
            {
            }
            ////HTTPPOST
            DOCUMENTO d = new DOCUMENTO();

            if (dOCUMENTO.DOCUMENTO_REF > 0)
            {
                d = db.DOCUMENTOes.Where(doc => doc.NUM_DOC == dOCUMENTO.DOCUMENTO_REF).FirstOrDefault();
                //dOCUMENTO.TSOL_ID = d.TSOL_ID;
                id_bukrs               = db.SOCIEDADs.Where(soc => soc.BUKRS == d.SOCIEDAD_ID).FirstOrDefault();
                dOCUMENTO.ESTADO       = d.ESTADO;
                dOCUMENTO.CIUDAD       = d.CIUDAD;
                dOCUMENTO.PAYER_ID     = d.PAYER_ID;
                dOCUMENTO.CONCEPTO     = d.CONCEPTO;
                dOCUMENTO.NOTAS        = d.NOTAS;
                dOCUMENTO.FECHAI_VIG   = d.FECHAI_VIG;
                dOCUMENTO.FECHAF_VIG   = d.FECHAF_VIG;
                dOCUMENTO.PAYER_NOMBRE = d.PAYER_NOMBRE;
                dOCUMENTO.PAYER_EMAIL  = d.PAYER_EMAIL;
                dOCUMENTO.TIPO_CAMBIO  = d.TIPO_CAMBIO;
                dOCUMENTO.GALL_ID      = d.GALL_ID;
                dOCUMENTO.TALL_ID      = d.TALL_ID;
                //Obtener el país
                dOCUMENTO.PAIS_ID = d.PAIS_ID;//RSG 15.05.2018
                //dOCUMENTO.TSOL_ID = d.TSOL_ID;
            }

            //Tipo técnico
            dOCUMENTO.TIPO_TECNICO = "";

            USUARIO u      = db.USUARIOs.Find(d.USUARIOC_ID); //RSG 02/05/2018
            Rangos  rangos = new Rangos();                    //RSG 01.08.2018
            //Obtener el número de documento
            decimal N_DOC = rangos.getSolID(dOCUMENTO.TSOL_ID);

            dOCUMENTO.NUM_DOC = N_DOC;

            //Obtener SOCIEDAD_ID
            dOCUMENTO.SOCIEDAD_ID = id_bukrs.BUKRS;

            ////Obtener el país
            //dOCUMENTO.PAIS_ID = p.ToUpper();

            //CANTIDAD_EV > 1 si son recurrentes
            dOCUMENTO.CANTIDAD_EV = 1;

            //Obtener usuarioc
            dOCUMENTO.PUESTO_ID   = u.PUESTO_ID;//RSG 02/05/2018
            dOCUMENTO.USUARIOC_ID = u.ID;
            dOCUMENTO.USUARIOD_ID = u.ID;

            //Fechac
            dOCUMENTO.FECHAC = DateTime.Now;

            //Horac
            dOCUMENTO.HORAC = DateTime.Now.TimeOfDay;

            //FECHAC_PLAN
            dOCUMENTO.FECHAC_PLAN = DateTime.Now.Date;

            //FECHAC_USER
            dOCUMENTO.FECHAC_USER = DateTime.Now.Date;

            //HORAC_USER
            dOCUMENTO.HORAC_USER = DateTime.Now.TimeOfDay;

            //Estatus
            dOCUMENTO.ESTATUS = "N";

            //Estatus wf
            dOCUMENTO.ESTATUS_WF = "P";

            ///////////////////Montos
            //MONTO_DOC_MD
            var MONTO_DOC_MD = dOCUMENTO.MONTO_DOC_MD;

            dOCUMENTO.MONTO_DOC_MD = Convert.ToDecimal(MONTO_DOC_MD);

            TCambio tcambio = new TCambio();//RSG 01.08.2018

            //Obtener el monto de la sociedad
            dOCUMENTO.MONTO_DOC_ML = tcambio.getValSoc(id_bukrs.WAERS, dOCUMENTO.MONEDA_ID, Convert.ToDecimal(dOCUMENTO.MONTO_DOC_MD), out errorString);
            if (!errorString.Equals(""))
            {
                throw new Exception();
            }

            //MONTO_DOC_ML2
            var MONTO_DOC_ML2 = dOCUMENTO.MONTO_DOC_ML2;

            dOCUMENTO.MONTO_DOC_ML2 = Convert.ToDecimal(MONTO_DOC_ML2);

            //MONEDAL_ID moneda de la sociedad
            dOCUMENTO.MONEDAL_ID = id_bukrs.WAERS;

            //MONEDAL2_ID moneda en USD
            dOCUMENTO.MONEDAL2_ID = "USD";

            //Tipo cambio de la moneda de la sociedad TIPO_CAMBIOL
            dOCUMENTO.TIPO_CAMBIOL = tcambio.getUkurs(id_bukrs.WAERS, dOCUMENTO.MONEDA_ID, out errorString);

            //Tipo cambio dolares TIPO_CAMBIOL2
            dOCUMENTO.TIPO_CAMBIOL2 = tcambio.getUkursUSD(dOCUMENTO.MONEDA_ID, "USD", out errorString);
            if (!errorString.Equals(""))
            {
                throw new Exception();
            }
            //Obtener datos del payer
            CLIENTE payer = getCliente(dOCUMENTO.PAYER_ID);

            dOCUMENTO.VKORG = payer.VKORG;
            dOCUMENTO.VTWEG = payer.VTWEG;
            dOCUMENTO.SPART = payer.SPART;

            //dOCUMENTO.DOCUMENTO_REF = null;
            dOCUMENTO.TSOL_ID = tsol;
            //Guardar el documento
            db.DOCUMENTOes.Add(dOCUMENTO);
            db.SaveChanges();

            //Actualizar el rango
            rangos.updateRango(dOCUMENTO.TSOL_ID, dOCUMENTO.NUM_DOC);


            DOCUMENTO referencia = db.DOCUMENTOes.Find(dOCUMENTO.DOCUMENTO_REF);

            referencia.ESTATUS         = "R";
            db.Entry(referencia).State = EntityState.Modified;
            db.SaveChanges();
            //Guardar los documentos p para el documento guardado

            ProcesaFlujo2 pf = new ProcesaFlujo2();
            //db.DOCUMENTOes.Add(dOCUMENTO);
            //db.SaveChanges();

            USUARIO user = db.USUARIOs.Where(a => a.ID.Equals(d.USUARIOC_ID)).FirstOrDefault();
            int     rol  = user.MIEMBROS.FirstOrDefault().ROL_ID;

            try
            {
                //WORKFV wf = db.WORKFHs.Where(a => a.BUKRS.Equals(dOCUMENTO.SOCIEDAD_ID) & a.ROL_ID == rol).FirstOrDefault().WORKFVs.OrderByDescending(a => a.VERSION).FirstOrDefault();
                WORKFV wf = db.WORKFHs.Where(a => a.TSOL_ID.Equals(dOCUMENTO.TSOL_ID)).FirstOrDefault().WORKFVs.OrderByDescending(a => a.VERSION).FirstOrDefault();
                if (wf != null)
                {
                    WORKFP wp = wf.WORKFPs.OrderBy(a => a.POS).FirstOrDefault();
                    FLUJO  f  = new FLUJO();
                    f.WORKF_ID    = wf.ID;
                    f.WF_VERSION  = wf.VERSION;
                    f.WF_POS      = wp.POS;
                    f.NUM_DOC     = dOCUMENTO.NUM_DOC;
                    f.POS         = 1;
                    f.LOOP        = 1;
                    f.USUARIOA_ID = dOCUMENTO.USUARIOC_ID;
                    f.ESTATUS     = "I";
                    f.FECHAC      = DateTime.Now;
                    f.FECHAM      = DateTime.Now;
                    string c = pf.procesa(f, "");
                    //RSG 28.05.2018 -----------------------------------
                    //if (c == "1")
                    //{
                    //    Email em = new Email();
                    //    em.enviaMail(f.NUM_DOC, true);
                    //}
                    ////FLUJO conta = db.FLUJOes.Where(a => a.NUM_DOC.Equals(f.NUM_DOC)).OrderByDescending(a => a.POS).FirstOrDefault();
                    ////conta.USUARIOA_ID = user.ID;
                    ////conta.ESTATUS = "A";
                    ////conta.FECHAM = DateTime.Now;
                    ////pf.procesa(conta, "");
                    //RSG 28.05.2018 -----------------------------------
                }
            }
            catch (Exception ee)
            {
                if (errorString == "")
                {
                    errorString = ee.Message.ToString();
                    return(0);
                }
                //ViewBag.error = errorString;
            }

            return(dOCUMENTO.NUM_DOC);
        }
Example #11
0
        public DOCUMENTBORR llenaDuplicado(TruequeEntities db1, decimal num_doc, string user)
        {
            DOCUMENTBORR docb     = new DOCUMENTBORR();
            DOCUMENTO    docPadre = db1.DOCUMENTOes.Find(num_doc);

            docb.AGENTE_ACTUAL     = docPadre.AGENTE_ACTUAL;
            docb.CANAL_ID          = docPadre.CANAL_ID;
            docb.CANTIDAD_EV       = docPadre.CANTIDAD_EV;
            docb.CIUDAD            = docPadre.CIUDAD;
            docb.CONCEPTO          = docPadre.CONCEPTO;
            docb.DOCUMENTO_REF     = docPadre.DOCUMENTO_REF;
            docb.EJERCICIO         = docPadre.EJERCICIO;
            docb.ESTADO            = docPadre.ESTADO;
            docb.ESTATUS           = docPadre.ESTATUS;
            docb.ESTATUS_C         = docPadre.ESTATUS_C;
            docb.ESTATUS_EXT       = docPadre.ESTATUS_EXT;
            docb.ESTATUS_SAP       = docPadre.ESTATUS_SAP;
            docb.ESTATUS_WF        = docPadre.ESTATUS_WF;
            docb.FECHAC            = docPadre.FECHAC;
            docb.FECHAC_PLAN       = docPadre.FECHAC_PLAN;
            docb.FECHAC_USER       = docPadre.FECHAC_USER;
            docb.FECHAD            = docPadre.FECHAD;
            docb.FECHAD_SOPORTE    = docPadre.FECHAD_SOPORTE;
            docb.FECHAF_VIG        = docPadre.FECHAF_VIG;
            docb.FECHAI_VIG        = docPadre.FECHAI_VIG;
            docb.FECHA_PASO_ACTUAL = docPadre.FECHA_PASO_ACTUAL;
            docb.GRUPO_CTE_ID      = docPadre.GRUPO_CTE_ID;
            docb.HORAC             = docPadre.HORAC;
            docb.HORAC_USER        = docPadre.HORAC_USER;
            docb.IMPUESTO          = docPadre.IMPUESTO;
            docb.LIGADA            = "";
            if (docPadre.LIGADA == true)
            {
                docb.LIGADA = "X";
            }
            docb.METODO_PAGO           = docPadre.METODO_PAGO;
            docb.MONEDAL2_ID           = docPadre.MONEDAL2_ID;
            docb.MONEDAL_ID            = docPadre.MONEDAL_ID;
            docb.MONEDA_ID             = docPadre.MONEDA_ID;
            docb.MONEDA_DIS            = docPadre.MONEDA_ID;
            docb.MONTO_BASE_GS_PCT_MD  = docPadre.MONTO_BASE_GS_PCT_MD;
            docb.MONTO_BASE_GS_PCT_ML  = docPadre.MONTO_BASE_GS_PCT_ML;
            docb.MONTO_BASE_GS_PCT_ML2 = docPadre.MONTO_BASE_GS_PCT_ML2;
            docb.MONTO_BASE_NS_PCT_MD  = docPadre.MONTO_BASE_NS_PCT_MD;
            docb.MONTO_BASE_NS_PCT_ML  = docPadre.MONTO_BASE_NS_PCT_ML;
            docb.MONTO_BASE_NS_PCT_ML2 = docPadre.MONTO_BASE_NS_PCT_ML2;
            docb.MONTO_DOC_MD          = docPadre.MONTO_DOC_MD;
            docb.MONTO_DOC_ML          = docPadre.MONTO_DOC_ML;
            docb.MONTO_DOC_ML2         = docPadre.MONTO_DOC_ML2;
            docb.MONTO_FIJO_MD         = docPadre.MONTO_FIJO_MD;
            docb.MONTO_FIJO_ML         = docPadre.MONTO_FIJO_ML;
            docb.MONTO_FIJO_ML2        = docPadre.MONTO_FIJO_ML2;
            docb.NOTAS           = docPadre.NOTAS;
            docb.NO_FACTURA      = docPadre.NO_FACTURA;
            docb.NO_PROVEEDOR    = docPadre.NO_PROVEEDOR;
            docb.PAIS_ID         = docPadre.PAIS_ID;
            docb.PASO_ACTUAL     = docPadre.PASO_ACTUAL;
            docb.PAYER_EMAIL     = docPadre.PAYER_EMAIL;
            docb.PAYER_ID        = docPadre.PAYER_ID;
            docb.PAYER_NOMBRE    = docPadre.PAYER_NOMBRE;
            docb.PERIODO         = docPadre.PERIODO;
            docb.PORC_ADICIONAL  = docPadre.PORC_ADICIONAL;
            docb.PORC_APOYO      = docPadre.PORC_APOYO;
            docb.SOCIEDAD_ID     = docPadre.SOCIEDAD_ID;
            docb.SOLD_TO_ID      = docPadre.SOLD_TO_ID;
            docb.SPART           = docPadre.SPART;
            docb.TALL_ID         = docPadre.TALL_ID;
            docb.TIPO_CAMBIO     = docPadre.TIPO_CAMBIO;
            docb.TIPO_CAMBIOL    = docPadre.TIPO_CAMBIOL;
            docb.TIPO_CAMBIOL2   = docPadre.TIPO_CAMBIOL2;
            docb.TIPO_RECURRENTE = docPadre.TIPO_RECURRENTE;
            docb.TIPO_TECNICO    = docPadre.TIPO_TECNICO;

            TSOL tsol = db1.TSOLs.Where(x => x.TSOLM == docPadre.TSOL_ID).FirstOrDefault();

            if (tsol == null)
            {
                docb.TSOL_ID = docPadre.TSOL_ID;
            }
            else
            {
                docb.TSOL_ID = tsol.ID;
            }
            docb.USUARIOC_ID = docPadre.USUARIOC_ID;
            docb.VKORG       = docPadre.VKORG;
            docb.VTWEG       = docPadre.VTWEG;

            if (docPadre.DOCUMENTOPs != null)
            {
                foreach (DOCUMENTOP dp in docPadre.DOCUMENTOPs.ToList())
                {
                    DOCUMENTOBORRP docBp = new DOCUMENTOBORRP();
                    docBp.APOYO_EST    = dp.APOYO_EST;
                    docBp.APOYO_REAL   = dp.APOYO_REAL;
                    docBp.CANTIDAD     = dp.CANTIDAD;
                    docBp.MATKL        = dp.MATKL;
                    docBp.MATNR        = dp.MATNR.TrimStart('0');
                    docBp.MONTO        = dp.MONTO;
                    docBp.MONTO_APOYO  = dp.MONTO_APOYO;
                    docBp.PORC_APOYO   = dp.PORC_APOYO;
                    docBp.POS          = dp.POS;
                    docBp.PRECIO_SUG   = dp.PRECIO_SUG;
                    docBp.VIGENCIA_AL  = dp.VIGENCIA_AL;
                    docBp.VIGENCIA_DE  = dp.VIGENCIA_DE;
                    docBp.VOLUMEN_EST  = dp.VOLUMEN_EST;
                    docBp.VOLUMEN_REAL = dp.VOLUMEN_REAL;

                    docb.DOCUMENTOBORRPs.Add(docBp);
                }
            }

            if (docPadre.DOCUMENTOFs != null)
            {
                foreach (DOCUMENTOF df in docPadre.DOCUMENTOFs)
                {
                    DOCUMENTOBORRF docBf = new DOCUMENTOBORRF();
                    docBf.ACTIVO       = true;
                    docBf.AUTORIZACION = df.AUTORIZACION;
                    docBf.BELNR        = df.BELNR;
                    docBf.BILL_DOC     = df.BILL_DOC;
                    docBf.CONTROL      = df.CONTROL;
                    docBf.EJERCICIOK   = df.EJERCICIOK;
                    docBf.FACTURA      = df.FACTURA;
                    docBf.FACTURAK     = df.FACTURAK;
                    docBf.FECHA        = df.FECHA;
                    docBf.IMPORTE_FAC  = df.IMPORTE_FAC;
                    docBf.PAYER        = df.PAYER;
                    docBf.POS          = df.POS;
                    docBf.PROVEEDOR    = df.PROVEEDOR;
                    docBf.SOCIEDAD     = df.SOCIEDAD;
                    docBf.VENCIMIENTO  = df.VENCIMIENTO;

                    docb.DOCUMENTOBORRFs.Add(docBf);
                }
            }

            if (docPadre.DOCUMENTORECs != null)
            {
                foreach (DOCUMENTOREC dre in docPadre.DOCUMENTORECs)
                {
                    DOCUMENTOBORRREC docRe = new DOCUMENTOBORRREC();
                    docRe.DOC_REF    = dre.DOC_REF;
                    docRe.EJERCICIO  = dre.EJERCICIO;
                    docRe.ESTATUS    = dre.ESTATUS;
                    docRe.FECHAF     = dre.FECHAV;
                    docRe.FECHAV     = dre.FECHAV;
                    docRe.MONTO_BASE = dre.MONTO_BASE;
                    docRe.MONTO_FIJO = dre.MONTO_FIJO;
                    docRe.MONTO_GRS  = dre.MONTO_GRS;
                    docRe.MONTO_NET  = dre.MONTO_NET;
                    docRe.PERIODO    = dre.PERIODO;
                    docRe.PORC       = dre.PORC;
                    docRe.POS        = dre.POS;

                    docb.DOCUMENTOBORRRECs.Add(docRe);
                }
            }
            return(docb);
        }