Example #1
0
        private string EndTraffic(FiltroTrafico Fil)
        {
            var resu = "";

            mRHCC = dRHCC.GetConsoTrafico(Fil.CONSO);
            if (mRHCC != null)
            {
                //var xml = GeneraXMLEnd(mRHCC.HPLACA, mRHCC.HMANIF, "brinsa", "brinsa2017", int.Parse(consoli));
                var hh        = new com.nygsoft.huella.Servicioingresonuevotrafico();
                var respuesta = hh.finalizarTrafico(mRHCC.HPLACA, mRHCC.HMANIF, "brinsa", "brinsa2017", int.Parse(Fil.CONSO));
                resu = respuesta[0].mensaje;
                var nRFTASK = new RFTASK()
                {
                    TKEY     = Fil.CONSO,
                    TKEYWORD = Fil.CONSO,
                    TPRM     = Fil.CONSO,
                    TPGM     = resu
                };
                resu = dRFTASK.AddEndTraffic(nRFTASK);
                if (!resu.Contains("ERROR"))
                {
                    try
                    {
                        var filtro = new FiltroServicios()
                        {
                            USUARIO  = Fil.USUARIO,
                            PASSWORD = Fil.PASSWORD,
                            ACCION   = "RUTINA",
                            IDTAREA  = resu
                        };
                        var s    = new ServiciosController();
                        var res  = s.Rutinas(filtro);
                        var res2 = ((System.Web.Http.Results.JsonResult <RespuestaRutina>)res).Content;
                        resu = res2.Mensaje;
                    }
                    catch (Exception ex)
                    {
                        var nRFLOG = new RFLOG()
                        {
                            OPERACION = "ENDTRAFFIC",
                            EVENTO    = "ERROR",
                            TXTSQL    = ex.Message.Replace("'", "''"),
                            ALERT     = "0"
                        };
                        resu = dRFLOG.Add(nRFLOG);
                        resu = "ERROR Tarea: " + resu + ex.Message;
                        if (ex.InnerException != null)
                        {
                            resu = resu + " - " + ex.InnerException;
                        }
                        if (ex.StackTrace != null)
                        {
                            resu = resu + " - " + ex.StackTrace;
                        }
                    }
                }
            }

            return(resu);
        }
Example #2
0
        public string Add(RFLOG rflog)
        {
            string        res;
            StringBuilder query = new StringBuilder();

            query.Append(" INSERT INTO RFLOG");
            query.Append(" (USUARIO, OPERACION, PROGRAMA, EVENTO, TXTSQL, ALERT)");

            query.Append(" VALUES ('REST', '" + rflog.OPERACION + "', 'BSSRestPlanillaCONSO',");
            query.Append(" '" + rflog.EVENTO + "',");
            if (rflog.TXTSQL != null)
            {
                query.Append(" '" + rflog.TXTSQL + "',");
            }
            else
            {
                query.Append(" '',");
            }
            query.Append(" " + rflog.ALERT + ")");

            try
            {
                db.Execute(query.ToString());
                res = "OK";
                //query.Clear();
                //query.Append("SELECT IDENTITY_VAL_LOCAL() FROM SYSIBM.SYSDUMMY1");
                //var id = db.Query<int>(query.ToString()).Single();
                //rmailx.LID = id;
            }
            catch (iDB2SQLErrorException ex)
            {
                res = ex.Message;
            }
            catch (Exception ex)
            {
                res = ex.Message;
            }
            return(res);
        }
Example #3
0
        /// <summary>
        /// API central de Servicios
        /// </summary>
        /// <param name="FS">
        /// </param>
        /// <returns></returns>
        public IHttpActionResult Rutinas(FiltroServicios FS)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var           res = "";
            StringBuilder txt = new StringBuilder();

            try
            {
                txt.Append("{\"ACCION\":\"" + FS.ACCION + "\",");
                txt.Append(" \"USUARIO\":\"" + FS.USUARIO + "\",");
                txt.Append(" \"PASSWORD\":\"" + FS.PASSWORD + "\",");
                txt.Append(" \"ESPERARRESPUESTA\":\"" + FS.ESPERARRESPUESTA + "\",");
                txt.Append(" \"IDTAREA\":\"" + FS.IDTAREA + "\",");
                txt.Append(" \"RESULTADO\":{");
                txt.Append(" \"TCATEG\":\"" + FS.RESULTADO?.TCATEG + "\",");
                txt.Append(" \"TSUBCAT\":\"" + FS.RESULTADO?.TSUBCAT + "\",");
                txt.Append(" \"TKEY\":\"" + FS.RESULTADO?.TKEY + "\",");
                txt.Append(" \"TKEYWORD\":\"" + FS.RESULTADO?.TKEYWORD + "\",");
                txt.Append(" \"TAPIRESULT\":\"" + FS.RESULTADO?.TAPIRESULT + "\"}}");

                var nRFLOG = new RFLOG()
                {
                    OPERACION = "CapturaJson",
                    EVENTO    = "Servicios",
                    TXTSQL    = txt.ToString().Replace("'", "''"),
                    ALERT     = "0"
                };
                res = dRFLOG.Add(nRFLOG);

                res = dRCAU.ExisteUSR(FS.USUARIO, FS.PASSWORD);
                if (res == "OK")
                {
                    switch (FS.ACCION.ToUpper())
                    {
                    case "RUTINA":
                        var resul = Rutina(FS.IDTAREA, FS.ESPERARRESPUESTA);
                        return(Json(resul));

                    case "SOMETERTRABAJO400":
                        res = Someter(FS.IDTAREA, FS.RESULTADO);
                        break;

                    case "RUTINA2.0":
                        var result = Rutina2_0(FS.IDTAREA, FS.ESPERARRESPUESTA);
                        return(Json(result));
                    }
                }
            }
            catch (Exception ex)
            {
                res = "ERROR: " + ex.Message;
                if (ex.InnerException != null)
                {
                    res = res + " - " + ex.InnerException;
                }
                if (ex.StackTrace != null)
                {
                    res = res + " - " + ex.StackTrace;
                }
                res = res + txt.ToString();
            }
            finally
            {
                if (res.Contains("ERROR"))
                {
                    var nRFLOG = new RFLOG()
                    {
                        OPERACION = "SERVICIO",
                        EVENTO    = "ERROR",
                        TXTSQL    = res.Replace("'", "''"),
                        ALERT     = "0"
                    };
                    res = dRFLOG.Add(nRFLOG);
                }
            }
            return(Json(new { Resultado = res }));
        }
Example #4
0
        /// <summary>
        /// API central de Reporte
        /// </summary>
        /// <param name="FT">
        /// </param>
        /// <returns></returns>
        public IHttpActionResult Reporte(FiltroTrafico FT)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var           res = "";
            StringBuilder txt = new StringBuilder();

            try
            {
                txt.Append("{\"ACCION\":\"" + FT.ACCION + "\",");
                txt.Append(" \"USUARIO\":\"" + FT.USUARIO + "\",");
                txt.Append(" \"PASSWORD\":\"" + FT.PASSWORD + "\",");
                txt.Append(" \"CONSO\":\"" + FT.CONSO + "\",");
                txt.Append(" \"REPORTE\":\"" + FT.REPORTE + "\",");
                txt.Append(" \"PLANILLA\":\"" + FT.PLANILLA + "\",");
                txt.Append(" \"PLACA\":\"" + FT.PLACA + "\",");
                txt.Append(" \"FECREP\":\"" + FT.FECREP.ToString("yyyy-MM-dd HH:mm:ss") + "\",");
                txt.Append(" \"CODDANE\":\"" + FT.CODDANE + "\",");
                txt.Append(" \"CODNOVEDAD\":\"" + FT.CODNOVEDAD + "\",");
                txt.Append(" \"NUMERO\":\"" + FT.NUMERO + "\"}");

                var nRFLOG = new RFLOG()
                {
                    OPERACION = "CapturaJson",
                    EVENTO    = "Trafico",
                    TXTSQL    = txt.ToString().Replace("'", "''"),
                    ALERT     = "0"
                };
                res = dRFLOG.Add(nRFLOG);

                res = dRCAU.ExisteUSR(FT.USUARIO, FT.PASSWORD);
                if (res == "OK")
                {
                    switch (FT.ACCION.ToUpper())
                    {
                    case "NUEVOTRAFICO":
                        res = NewTraffic(FT.CONSO);
                        break;

                    case "ENTRANSITO":
                        var resu = InTransit();
                        return(Json(resu));

                    case "REPORTAR":
                        var resul = "";
                        var nRRCC = new RRCC()
                        {
                            RCONSO  = FT.CONSO.Trim(),
                            RPLANI  = (FT.PLANILLA == "") ? "0" : FT.PLANILLA,
                            RPLACA  = FT.PLACA,
                            RFECREP = FT.FECREP.ToString("yyyy-MM-dd-HH.mm.ss.000000"),
                            RUBIC   = FT.CODDANE,
                            RTIPNOV = FT.CODNOVEDAD,
                            RREPORT = FT.REPORTE,
                            RCRTUSR = FT.USUARIO,
                            RWINDAT = DateTime.Now.ToString("yyyy-MM-dd-HH.mm.ss.000000")
                        };
                        resul = dRRCC.AddReporte(nRRCC);
                        if (!resul.Contains("ERROR"))
                        {
                            res = "OK";
                        }
                        else
                        {
                            res = resul;
                        }
                        if (res == "OK")
                        {
                            var rep = "";
                            if (FT.REPORTE.Length > 50)
                            {
                                rep = FT.REPORTE.Substring(0, 50);
                            }
                            else
                            {
                                rep = FT.REPORTE;
                            }
                            var uRHCC = new RHCC()
                            {
                                RFECREP = FT.FECREP.ToString("yyyy-MM-dd-HH.mm.ss.000000"),
                                RREPORT = rep,
                                HCONSO  = FT.CONSO.Trim()
                            };
                            res = dRHCC.UpdateHREPORT(uRHCC);
                            if (res == "OK")
                            {
                                res = resul;
                            }
                        }
                        break;

                    case "FINALIZARTRAFICO":
                        res = EndTraffic(FT);
                        break;

                    case "NUEVOSEGUIMIENTO":
                        res = NewFllowUp(FT.NUMERO);
                        break;

                    case "NUEVOTRAFICOXML":
                        res = GeneraXMLNew2(FT.CONSO);
                        break;

                    case "NUEVOSEGUIMIENTOXML":
                        res = GeneraXMLFollow2(FT.NUMERO);
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                res = "ERROR: " + ex.Message;
                if (ex.InnerException != null)
                {
                    res = res + " - " + ex.InnerException;
                }
                if (ex.StackTrace != null)
                {
                    res = res + " - " + ex.StackTrace;
                }
                res = res + txt.ToString();
            }
            finally
            {
                if (res.Contains("ERROR"))
                {
                    var nRFLOG = new RFLOG()
                    {
                        OPERACION = "TRAFICO",
                        EVENTO    = "ERROR",
                        TXTSQL    = res.Replace("'", "''"),
                        ALERT     = "0"
                    };
                    dRFLOG.Add(nRFLOG);
                }
            }
            return(Json(new { Resultado = res }));
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="FNCE"></param>
        /// <returns></returns>
        public IHttpActionResult NC(FiltroNCE FNCE)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            string        res = "", Cargue = "";
            StringBuilder txt = new StringBuilder();

            try
            {
                txt.Append("{\"ACCION\":\"" + FNCE.ACCION + "\",");
                txt.Append(" \"PREFIJO\":\"" + FNCE.PREFIJO + "\",");
                txt.Append(" \"NOTA\":\"" + FNCE.NOTA + "\",");
                txt.Append(" \"ID\":\"" + FNCE.ID + "\",");
                txt.Append(" \"USUARIO\":\"" + FNCE.USUARIO + "\",");
                txt.Append(" \"PASSWORD\":\"" + FNCE.PASSWORD + "\"}");

                var nRFLOG = new RFLOG()
                {
                    OPERACION = "CapturaJson",
                    EVENTO    = "FE",
                    TXTSQL    = txt.ToString().Replace("'", "''"),
                    ALERT     = "0"
                };
                res = dRFLOG.Add(nRFLOG);

                if (res == "OK")
                {
                    switch (FNCE.ACCION.ToUpper())
                    {
                    case "CARGAR":
                        res = CargarNC(FNCE.PREFIJO, FNCE.NOTA);
                        break;

                    case "ESTADO":
                        res = EstadoNC(FNCE.ID, FNCE.PREFIJO, FNCE.NOTA);
                        break;

                    case "DESCARGAR":
                        res = DescargarNC(FNCE.PREFIJO, FNCE.NOTA);
                        break;
                    }
                }
            }
            catch (WebException ex)
            {
                WebResponse errRsp = ex.Response;
                using (StreamReader rdr = new StreamReader(errRsp.GetResponseStream()))
                {
                    Cargue = "ERROR: " + rdr.ReadToEnd();
                    Console.WriteLine(rdr.ReadToEnd());
                }
                res = "ERROR " + Cargue.Substring((Cargue.IndexOf("<errorMessage>") + 14), (Cargue.IndexOf("</errorMessage>") - Cargue.IndexOf("<errorMessage>")) - 14);
            }
            catch (Exception ex)
            {
                res = "ERROR: " + ex.Message;
                if (ex.InnerException != null)
                {
                    res = res + " - " + ex.InnerException;
                }
                if (ex.StackTrace != null)
                {
                    res = res + " - " + ex.StackTrace;
                }
                res = res + txt.ToString();
            }
            finally
            {
                if (res.Contains("ERROR"))
                {
                    var nRFLOG = new RFLOG()
                    {
                        OPERACION = "NCE",
                        EVENTO    = "ERROR",
                        TXTSQL    = res.Replace("'", "''"),
                        ALERT     = "0"
                    };
                    dRFLOG.Add(nRFLOG);
                }
            }
            return(Json(new { Resultado = res }));
        }
        private string DescargarNC(string Prefijo, string Nota)
        {
            lmRFPARAM = dRFPARAM.GetParams();
            string NombreXml = "", pref = "", res = "", xmlResp = "";
            string descarga     = "";
            string url          = lmRFPARAM.Where(m => m.CCCODE == "WSDL").SingleOrDefault().CCNOT1 + lmRFPARAM.Where(m => m.CCCODE == "WSDL").SingleOrDefault().CCNOT2;
            string credid       = lmRFPARAM.Where(m => m.CCCODE == "WSDLUSER").SingleOrDefault().CCNOT1;
            string credpassword = Sha256(lmRFPARAM.Where(m => m.CCCODE == "WSDLPASS").SingleOrDefault().CCNOT1);

            Prefijo = Prefijo ?? "DV";
            Nota    = Nota ?? "151574";

            NombreXml = Nota;
            pref      = Prefijo;
            mRFPARAM  = lmRFPARAM.Where(m => m.CCCODE == "PREFIJO" && m.CCCODE2 == Prefijo).SingleOrDefault();
            if (mRFPARAM != null)
            {
                if (mRFPARAM.CCCODEN != "0")
                {
                    pref      = mRFPARAM.CCALTC;
                    NombreXml = (double.Parse(mRFPARAM.CCCODEN) + double.Parse(Nota)).ToString();
                }
            }

            StringBuilder rawSOAP;

            using (var wb = new WebClient())
            {
                wb.Credentials = new NetworkCredential(credid, credpassword);

                for (var i = 0; i < 4; i++)
                {
                    try
                    {
                        rawSOAP = new StringBuilder();
                        rawSOAP.Append(BuildSoapHeader(credid, credpassword));
                        rawSOAP.Append(@"<soapenv:Body><inv:DownloadRequest>");
                        rawSOAP.Append(@"<documentType>NC</documentType>");
                        rawSOAP.AppendFormat(@"<documentNumber>{0}</documentNumber>", pref + NombreXml);
                        rawSOAP.AppendFormat(@"<documentPrefix>{0}</documentPrefix>", pref);
                        rawSOAP.Append(@"<resourceType>PDF</resourceType>");
                        rawSOAP.AppendFormat(@"<companyId>{0}</companyId>", lmRFPARAM.Where(m => m.CCCODE == "COMPANYID").SingleOrDefault().CCNOT1);
                        rawSOAP.AppendFormat(@"<accountId>{0}</accountId>", lmRFPARAM.Where(m => m.CCCODE == "ACCOUNTID").SingleOrDefault().CCNOT1);
                        rawSOAP.Append(@"</inv:DownloadRequest></soapenv:Body></soapenv:Envelope>");
                        descarga = wb.UploadString(url, "POST", rawSOAP.ToString());
                        var pdfbytes = Convert.FromBase64String(descarga.Substring((descarga.IndexOf("<downloadData>") + 14), (descarga.IndexOf("</downloadData>") - descarga.IndexOf("<downloadData>")) - 14));
                        //File.WriteAllBytes(@"C:\\Copia_Servidor\\Proyectos\\BRINSA\\BssFacturaElectronicaService\" + pref + NombreXml + ".pdf", pdfbytes);

                        File.WriteAllBytes(@"E:\\Despachos_DB2\\ImagenesTransportes\\pdf\\NCPDF\\" + pref + NombreXml + ".pdf", pdfbytes);
                        res = "OK";
                        Thread.Sleep(15000);
                    }
                    catch (WebException ex)
                    {
                        WebResponse errRsp = ex.Response;
                        using (StreamReader rdr = new StreamReader(errRsp.GetResponseStream()))
                        {
                            descarga = "ERROR: " + rdr.ReadToEnd();
                            Console.WriteLine(rdr.ReadToEnd());
                        }
                        res = descarga.Substring((descarga.IndexOf("<errorMessage>") + 14), (descarga.IndexOf("</errorMessage>") - descarga.IndexOf("<errorMessage>")) - 14);
                    }
                    catch (Exception ex)
                    {
                        descarga = "ERROR: " + ex.ToString();
                        res      = descarga;
                    }
                    if (res == "OK")
                    {
                        break;
                    }
                }

                if (descarga.Contains("ERROR"))
                {
                    var nRFLOG = new RFLOG()
                    {
                        OPERACION = "NCE",
                        EVENTO    = "ERROR DESCARGA",
                        TXTSQL    = descarga.Replace("'", "''"),
                        ALERT     = "0"
                    };
                    dRFLOG.Add(nRFLOG);
                }
                xmlResp = descarga.Substring((descarga.IndexOf("<soap:Envelope")), (descarga.IndexOf("</soap:Envelope>") - descarga.IndexOf("<soap:Envelope")) + 16);
                //logProceso.CapturaLog(xmlResp, pref + NombreXml + "_resp", "C:\\Copia_Servidor\\Proyectos\\BRINSA\\BssFacturaElectronicaService", "xml");
                logProceso.CapturaLog(xmlResp, pref + NombreXml + "_rdesc", "E:\\Sitios\\XMLNCE", "xml");
                //File.Copy("E:\\Despachos_DB2\\ImagenesTransportes\\pdf\\FacturaPDF2\\" + Prefijo + Factura.PadLeft(8, '0') + "_O.pdf", "E:\\Despachos_DB2\\ImagenesTransportes\\pdf\\FacturaPDF\\" + pref + NombreXml + "_O.pdf", true);

                if (res == "OK")
                {
                    dRFNCCAB.UpdNotaResPDF(Prefijo, Nota, "1");
                }
                else
                {
                    dRFNCCAB.UpdNotaResPDF(Prefijo, Nota, "-1");
                }
            }
            return(res);
        }
        private string EstadoNC(string TransId, string Prefijo, string Nota)
        {
            Prefijo   = Prefijo ?? "DV";
            Nota      = Nota ?? "151574";
            lmRFPARAM = dRFPARAM.GetParams();
            string Estado = "", res = "", xmlResp = "", NombreXml = "";
            string url          = lmRFPARAM.Where(m => m.CCCODE == "WSDL").SingleOrDefault().CCNOT1 + lmRFPARAM.Where(m => m.CCCODE == "WSDL").SingleOrDefault().CCNOT2;
            string credid       = lmRFPARAM.Where(m => m.CCCODE == "WSDLUSER").SingleOrDefault().CCNOT1;
            string credpassword = Sha256(lmRFPARAM.Where(m => m.CCCODE == "WSDLPASS").SingleOrDefault().CCNOT1);

            NombreXml = Prefijo + Nota;
            mRFPARAM  = lmRFPARAM.Where(m => m.CCCODE == "PREFIJO" && m.CCCODE2 == Prefijo).SingleOrDefault();
            if (mRFPARAM != null)
            {
                if (mRFPARAM.CCCODEN != "0")
                {
                    NombreXml = mRFPARAM.CCALTC + (double.Parse(mRFPARAM.CCCODEN) + double.Parse(Nota));
                }
            }

            StringBuilder rawSOAP;

            using (var wb = new WebClient())
            {
                wb.Credentials = new NetworkCredential(credid, credpassword);
                for (var i = 0; i < 4; i++)
                {
                    try
                    {
                        rawSOAP = new StringBuilder();
                        rawSOAP.Append(BuildSoapHeader(credid, credpassword));
                        rawSOAP.Append(@"<soapenv:Body><inv:DocumentStatusRequest>");
                        rawSOAP.AppendFormat(@"<transactionId>{0}</transactionId>", TransId);
                        rawSOAP.AppendFormat(@"<companyId>{0}</companyId>", lmRFPARAM.Where(m => m.CCCODE == "COMPANYID").SingleOrDefault().CCNOT1);
                        rawSOAP.AppendFormat(@"<accountId>{0}</accountId>", lmRFPARAM.Where(m => m.CCCODE == "ACCOUNTID").SingleOrDefault().CCNOT1);
                        rawSOAP.Append(@"</inv:DocumentStatusRequest></soapenv:Body></soapenv:Envelope>");
                        Estado = wb.UploadString(url, "POST", rawSOAP.ToString());
                        res    = "OK";
                        Thread.Sleep(5000);
                    }
                    catch (WebException ex)
                    {
                        WebResponse errRsp = ex.Response;
                        using (StreamReader rdr = new StreamReader(errRsp.GetResponseStream()))
                        {
                            Estado = "ERROR: " + rdr.ReadToEnd();
                            Console.WriteLine(rdr.ReadToEnd());
                        }
                        res = Estado.Substring((Estado.IndexOf("<errorMessage>") + 14), (Estado.IndexOf("</errorMessage>") - Estado.IndexOf("<errorMessage>")) - 14);
                    }
                    catch (Exception ex)
                    {
                        Estado = "ERROR: " + ex.ToString();
                        res    = Estado;
                    }
                    if (res == "OK")
                    {
                        break;
                    }
                }

                if (Estado.Contains("ERROR"))
                {
                    var nRFLOG = new RFLOG()
                    {
                        OPERACION = "NCE",
                        EVENTO    = "ERROR",
                        TXTSQL    = Estado.Replace("'", "''"),
                        ALERT     = "0"
                    };
                    dRFLOG.Add(nRFLOG);
                }

                xmlResp = Estado.Substring((Estado.IndexOf("<soap:Envelope")), (Estado.IndexOf("</soap:Envelope>") - Estado.IndexOf("<soap:Envelope")) + 16);
                //logProceso.CapturaLog(xmlResp, NombreXml + "_resp", "C:\\Copia_Servidor\\Proyectos\\BRINSA\\BssFacturaElectronicaService", "xml");
                logProceso.CapturaLog(xmlResp, NombreXml + "_sts", "E:\\Sitios\\XMLNCE", "xml");
            }
            return(res);
        }
        private string CargarNC(string Prefijo, string Nota)
        {
            string NombreXml = "", res = "", xml = "", xmlResp = "";

            Prefijo = Prefijo ?? "DV";
            Nota    = Nota ?? "151574";

            dESN.AddNotas(Prefijo, Nota);

            lmESN     = dESN.GetNotas(Prefijo, Nota);
            mRFNCCAB  = dRFNCCAB.Find(Prefijo, Nota);
            lmRFNCDET = dRFNCDET.Find(Prefijo, Nota);

            mRCO      = dRCO.GetCompany();
            lmRFPARAM = dRFPARAM.GetParams();
            NombreXml = Prefijo + Nota;
            mRFPARAM  = lmRFPARAM.Where(m => m.CCCODE == "PREFIJO" && m.CCCODE2 == Prefijo).SingleOrDefault();
            if (mRFPARAM != null)
            {
                if (mRFPARAM.CCCODEN != "0")
                {
                    NombreXml = mRFPARAM.CCALTC + (double.Parse(mRFPARAM.CCCODEN) + double.Parse(Nota));
                }
            }

            NOTA mNOTA = new NOTA
            {
                LMdlENC = CabeceraENC(mRFNCCAB),
                LMdlEMI = CabeceraEMI(mRFNCCAB),
                LMdlADQ = CabeceraADQ(mRFNCCAB),
                LMdlTOT = CabeceraTOT(mRFNCCAB),
                LMdlTIM = CabeceraTIM(mRFNCCAB),
                LMdlTDC = CabeceraTDC(mRFNCCAB),
                LMdlDRF = DetalleDRF(),
                LMdlNOT = DetalleNOT(),
                //LMdlORC = CabeceraORC(mRFNCCAB),
                LMdlREF = CabeceraREF(mRFNCCAB),
                LMdlIEN = CabeceraIEN(mRFNCCAB),
                LMdlITE = DetalleITE(mRFNCCAB, lmRFNCDET)
            };

            XmlSerializer xs = new XmlSerializer(typeof(NOTA));

            using (var sww = new StringWriter())
            {
                using (XmlWriter xwriter = XmlWriter.Create(sww))
                {
                    xs.Serialize(xwriter, mNOTA);
                    xml = sww.ToString();
                }
            }

            //TextWriter writer = new StreamWriter("C:\\Copia_Servidor\\Proyectos\\BRINSA\\BssFacturaElectronicaService\\" + NombreXml + ".xml");
            TextWriter writer = new StreamWriter("E:\\Sitios\\XMLNCE\\" + NombreXml + ".xml");

            xs.Serialize(writer, mNOTA);
            writer.Close();

            string Cargue       = "";
            string url          = lmRFPARAM.Where(m => m.CCCODE == "WSDL").SingleOrDefault().CCNOT1 + lmRFPARAM.Where(m => m.CCCODE == "WSDL").SingleOrDefault().CCNOT2;
            string credid       = lmRFPARAM.Where(m => m.CCCODE == "WSDLUSER").SingleOrDefault().CCNOT1;
            string credpassword = Sha256(lmRFPARAM.Where(m => m.CCCODE == "WSDLPASS").SingleOrDefault().CCNOT1);

            StringBuilder rawSOAP;

            using (var wb = new WebClient())
            {
                wb.Credentials = new NetworkCredential(credid, credpassword);

                for (var i = 0; i < 4; i++)
                {
                    try
                    {
                        rawSOAP = new StringBuilder();
                        rawSOAP.Append(BuildSoapHeader(credid, credpassword));
                        rawSOAP.Append(@"<soapenv:Body><inv:UploadRequest>");
                        rawSOAP.AppendFormat(@"<fileName>{0}.xml</fileName>", NombreXml);
                        rawSOAP.AppendFormat(@"<fileData>{0}</fileData>", Convert.ToBase64String(Encoding.UTF8.GetBytes(xml)));
                        rawSOAP.AppendFormat(@"<companyId>{0}</companyId>", lmRFPARAM.Where(m => m.CCCODE == "COMPANYID").SingleOrDefault().CCNOT1);
                        rawSOAP.AppendFormat(@"<accountId>{0}</accountId>", lmRFPARAM.Where(m => m.CCCODE == "ACCOUNTID").SingleOrDefault().CCNOT1);
                        rawSOAP.Append(@"</inv:UploadRequest></soapenv:Body></soapenv:Envelope>");
                        Cargue = wb.UploadString(url, "POST", rawSOAP.ToString());
                        Thread.Sleep(5000);
                    }
                    catch (WebException ex)
                    {
                        WebResponse errRsp = ex.Response;
                        using (StreamReader rdr = new StreamReader(errRsp.GetResponseStream()))
                        {
                            Cargue = "ERROR: " + rdr.ReadToEnd();
                            Console.WriteLine(rdr.ReadToEnd());
                        }
                        res = Cargue.Substring((Cargue.IndexOf("<errorMessage>") + 14), (Cargue.IndexOf("</errorMessage>") - Cargue.IndexOf("<errorMessage>")) - 14);
                    }
                    catch (Exception ex)
                    {
                        Cargue = "ERROR: " + ex.ToString();
                        res    = Cargue;
                    }
                    if (Cargue.Contains("<transactionId>"))
                    {
                        break;
                    }
                }
                res = dRFNCCAB.UpdNotaIdNme(Prefijo, Nota, Cargue.Substring((Cargue.IndexOf("<transactionId>") + 15), (Cargue.IndexOf("</transactionId>") - Cargue.IndexOf("<transactionId>")) - 15), NombreXml);
                if (res == "OK")
                {
                    Thread.Sleep(5000);
                    res = EstadoNC(Cargue.Substring((Cargue.IndexOf("<transactionId>") + 15), (Cargue.IndexOf("</transactionId>") - Cargue.IndexOf("<transactionId>")) - 15), Prefijo, Nota);
                    res = DescargarNC(Prefijo, Nota);
                }

                if (Cargue.Contains("ERROR"))
                {
                    var nRFLOG = new RFLOG()
                    {
                        OPERACION = "NCE",
                        EVENTO    = "ERROR",
                        TXTSQL    = Cargue.Replace("'", "''"),
                        ALERT     = "0"
                    };
                    dRFLOG.Add(nRFLOG);
                }

                xmlResp = Cargue.Substring((Cargue.IndexOf("<soap:Envelope")), (Cargue.IndexOf("</soap:Envelope>") - Cargue.IndexOf("<soap:Envelope")) + 16);
                //logProceso.CapturaLog(xmlResp, NombreXml + "_resp", "C:\\Copia_Servidor\\Proyectos\\BRINSA\\BssFacturaElectronicaService", "xml");
                logProceso.CapturaLog(xmlResp, NombreXml + "_resp", "E:\\Sitios\\XMLNCE", "xml");
            }
            return(res);
        }
Example #9
0
        public string CallPgmJva(RFTASK datos)
        {
            StringBuilder sCmd      = new StringBuilder();
            StringBuilder sSbm      = new StringBuilder();
            string        resultado = "";

            sCmd.Append("RUNJVA CLASS(someteTarea)");
            sCmd.AppendFormat(" PARM( '-lib' '{0}' '-id' '{1}' )", datos.TAMBIENTE, datos.TNUMREG);
            sCmd.AppendFormat(" {0}", JvaClassPath("RJTAREA", datos.TAMBIENTE));

            sSbm.AppendFormat("SBMJOB CMD( {0} )", sCmd.ToString());
            sSbm.AppendFormat(" JOB( {0} )", datos.TJOB400);
            sSbm.AppendFormat(" JOBD( {0} )", datos.TJOBD);
            sSbm.AppendFormat(" JOBQ( {0} )", datos.TJOBQ);

            try
            {
                resultado = CallPgm(sSbm.ToString());
            }
            catch (iDB2SQLErrorException ex)
            {
                resultado = "ERROR: " + ex.Message;
                if (ex.InnerException != null)
                {
                    resultado = resultado + " - " + ex.InnerException;
                }
                if (ex.StackTrace != null)
                {
                    resultado = resultado + " - " + ex.StackTrace;
                }
            }
            catch (iDB2Exception ex)
            {
                resultado = "ERROR: " + ex.Message;
                if (ex.InnerException != null)
                {
                    resultado = resultado + " - " + ex.InnerException;
                }
                if (ex.StackTrace != null)
                {
                    resultado = resultado + " - " + ex.StackTrace;
                }
            }
            catch (Exception ex)
            {
                resultado = "ERROR: " + ex.Message;
                if (ex.InnerException != null)
                {
                    resultado = resultado + " - " + ex.InnerException;
                }
                if (ex.StackTrace != null)
                {
                    resultado = resultado + " - " + ex.StackTrace;
                }
            }
            finally
            {
                if (resultado.Contains("ERROR"))
                {
                    resultado = resultado + " | " + sSbm.ToString();
                    var nRFLOG = new RFLOG()
                    {
                        OPERACION = "SOMETER400",
                        EVENTO    = "ERROR",
                        TXTSQL    = resultado.Replace("'", "''"),
                        ALERT     = "0"
                    };
                    IRFLOGRepository dRFLOG = new RFLOGRepository();
                    resultado = dRFLOG.Add(nRFLOG);
                }
            }
            return(resultado);
        }