Exemple #1
0
 private void UpdateInfoDianCufe(HttpsWebRequestsFunction httpwebrequestFunction)
 {
     using (Factory data = new Factory(Usuario, Password, Ambiente))
     {
         string[] _nParametros;
         object[] _vParametros;
         //:filename,:filedata,:companyid,:accountid,:status,:transactionid,:xmlfactura,:soapenviado,:soaprespuesta
         //_nParametros = new string[4] { ":INDI_CUFEDIAN", ":INDI_NUMDOC", ":indi_xmllegal", ":indi_xmlrec" };
         //_vParametros = new object[4] { cufe,factura, INDI_XMLLEGAL, httpwebrequestFunction._downloadData };
         //_nParametros = new string[3] { ":INDI_CUFEDIAN", ":INDI_NUMDOC", ":indi_xmllegal" };
         //_vParametros = new object[3] { cufe, factura, INDI_XMLLEGAL };
         _nParametros = new string[3] {
             ":INDI_CUFEDIAN", ":indi_xmlrec", ":INDI_NUMDOC"
         };
         _vParametros = new object[3] {
             httpwebrequestFunction._cufe, httpwebrequestFunction._FacturaXml, httpwebrequestFunction._Numdoc
         };
         //_nParametros = new string[2] { ":INDI_CUFEDIAN", ":INDI_NUMDOC" };
         //_vParametros = new object[2] { httpwebrequestFunction._cufe, httpwebrequestFunction._Numdoc };
         data.executeCommand("updateInfoDianCufe", _nParametros, _vParametros);
     }
 }
Exemple #2
0
        public string getResponseFunctionDownload(HttpsWebRequestsFunction httpwebrequestFunction)
        {
            StringBuilder select = new StringBuilder();

            select.Append("<soapenv:Envelope\r\n");
            select.Append("xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"\r\n");
            select.Append("xmlns:inv=\"http://invoice.carvajal.com/invoiceService/\"\r\n");
            select.Append("xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-");
            select.Append("secext-1.0.xsd\"\r\n");
            select.Append("xmlns:wsu=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-");
            select.Append("utility-1.0.xsd\">\r\n");
            select.Append("   <soapenv:Header>\r\n");
            select.Append("   <wsse:Security>\r\n");
            select.Append("   <wsse:UsernameToken wsu:Id=\"" + httpwebrequestFunction._userId + "\">\r\n");
            select.Append("   	<wsse:Username>"+ httpwebrequestFunction._Username + "</wsse:Username>\r\n");
            select.Append("<wsse:Password Type=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-");
            select.Append("wss-username-token-profile-");
            select.Append("1.0#PasswordText\">" + httpwebrequestFunction._Password + "</w");
            select.Append("sse:Password>\r\n");
            select.Append("	<wsse:Nonce EncodingType=\"http://docs.oasis-open.org/wss/2004/01/oasis-");
            select.Append("200401-wss-soap-message-security-");
            select.Append("1.0#Base64Binary\">" + httpwebrequestFunction._nonce + "</wsse:Nonce>\r\n");
            select.Append("		<wsu:Created>"+ httpwebrequestFunction._create + "</wsu:Created>\r\n");
            select.Append("		</wsse:UsernameToken>\r\n");
            select.Append("		</wsse:Security>\r\n");
            select.Append("   </soapenv:Header>\r\n");
            select.Append("   <soapenv:Body>\r\n");
            select.Append("      <inv:" + httpwebrequestFunction._HttpWebRequestFunction + ">\r\n");
            select.Append("         <companyId>" + httpwebrequestFunction._companyId + "</companyId>\r\n");
            select.Append("         <accountId>" + httpwebrequestFunction._accountid + "</accountId>\r\n");
            select.Append("         <documentType>" + httpwebrequestFunction._documentType + "</documentType>\r\n");
            select.Append("         <documentPrefix>" + httpwebrequestFunction._documentPrefix + "</documentPrefix>\r\n");
            select.Append("         <documentNumber>" + httpwebrequestFunction._documentNumber + "</documentNumber>\r\n");
            select.Append("         <resourceType>" + httpwebrequestFunction._resourceType + "</resourceType>\r\n");
            select.Append("      </inv:" + httpwebrequestFunction._HttpWebRequestFunction + ">\r\n");
            select.Append("   </soapenv:Body>\r\n");
            select.Append("</soapenv:Envelope>");
            return(select.ToString());
        }
Exemple #3
0
        public void Inicio()
        {
            ICollection <InformacionDian> ICInformacionDian = new List <InformacionDian>();

            ICInformacionDian = LeerInformacionDianEnProceso();
            if (ICInformacionDian.Count > 0)
            {
                foreach (var item in ICInformacionDian)
                {
                    validarDirectorio(item.INDI_NUMDOC_V2);
                    console.Ih("Envío factura: " + item.INDI_NUMDOC_V2 + " Fecha : " + item.INDI_FECCREA_TS + "\r\nValidacion : " + item.INDI_VALIDACION_CL);
                    HttpsWebRequestsFunction httpwebrequestFunction = new HttpsWebRequestsFunction();
                    httpwebrequestFunction = PdfFactura(item.INDI_NUMDOC_V2);
                    //validarDirectorio(item.INDI_NUMDOC_V2);
                    //httpwebrequestFunction = Cufe(item.INDI_NUMDOC_V2);
                }
            }
            else
            {
                //...Falta Implementar
            }
        }
Exemple #4
0
        private HttpsWebRequestsFunction EnviarFactura(HttpsWebRequestsFunction httpwebrequestFunction)
        {
            HttpSendXmlDocument httpsSendXmlDocument = new HttpSendXmlDocument();
            bool continuar = true;
            int  intentos  = 0;

            while (continuar)
            {
                httpwebrequestFunction = httpsSendXmlDocument.httpsSendXmlDocument(httpwebrequestFunction);
                if (httpwebrequestFunction._httpWebResponseXml.Contains("error"))
                {
                    intentos++;
                    System.Threading.Thread.Sleep(2000);
                }
                else
                {
                    continuar = false;//<status>
                }
            }

            httpwebrequestFunction._soapRecibido = httpwebrequestFunction._httpWebResponseXml;
            return(httpwebrequestFunction);
        }
Exemple #5
0
        private byte[] procesarDownloadDataFactura(HttpsWebRequestsFunction httpwebrequestFunction)
        {
            //string cufe = string.Empty;
            byte[] b   = Convert.FromBase64String(httpwebrequestFunction._downloadData);
            string tmp = getEncoding(b);

            byte[] bytesX = getEncoding(tmp);
            //string tmpr = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString();
            //string rutatmp = @"C:\Transer\ws\facturacion\" + factura + "\\" + factura + "_" + tmpr + ".pdf";
            string rutatmp = @"c:\transer\ws\facturacion\" + httpwebrequestFunction._Numdoc + "\\pdf\\" + httpwebrequestFunction._Numdoc + ".pdf";

            try
            {
                System.IO.File.WriteAllBytes(rutatmp, bytesX);
                console.Cblue();
                console.Ih("    !!! Captura Exitosa Representacion Grafica Factura  !!!");
            }
            catch (Exception EX)
            {
                Console.WriteLine(EX.Message);
            }
            return(bytesX);
        }
Exemple #6
0
        private string GetSoapEnvio(HttpsWebRequestsFunction httpwebrequestFunction)
        {
            StringBuilder select = new StringBuilder();

            select.Append("<soapenv:Envelope\r\n");
            select.Append("xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"\r\n");
            select.Append("xmlns:inv=\"http://invoice.carvajal.com/invoiceService/\"\r\n");
            select.Append("xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-");
            select.Append("secext-1.0.xsd\"\r\n");
            select.Append("xmlns:wsu=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-");
            select.Append("utility-1.0.xsd\">\r\n");
            select.Append("   <soapenv:Header>\r\n");
            select.Append("   <wsse:Security>\r\n");
            select.Append("   <wsse:UsernameToken wsu:Id=\"" + httpwebrequestFunction._userId + "\">\r\n"); // vgs.upload._userId
            select.Append("   	<wsse:Username>"+ httpwebrequestFunction._Username + "</wsse:Username>\r\n");
            select.Append("<wsse:Password Type=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-");
            select.Append("wss-username-token-profile-");
            select.Append("1.0#PasswordText\">" + httpwebrequestFunction._Password + "</w");
            select.Append("sse:Password>\r\n");
            select.Append("	<wsse:Nonce EncodingType=\"http://docs.oasis-open.org/wss/2004/01/oasis-");
            select.Append("200401-wss-soap-message-security-");
            select.Append("1.0#Base64Binary\">" + httpwebrequestFunction._nonce + "</wsse:Nonce>\r\n");
            select.Append("		<wsu:Created>"+ httpwebrequestFunction._create + "</wsu:Created>\r\n");
            select.Append("		</wsse:UsernameToken>\r\n");
            select.Append("		</wsse:Security>\r\n");
            select.Append("   </soapenv:Header>\r\n");
            select.Append("   <soapenv:Body>\r\n");
            select.Append("      <inv:" + httpwebrequestFunction._HttpWebRequestFunction + ">\r\n");//sb.Append("      <inv:UploadRequest>\r\n");
            select.Append("         <fileName>" + httpwebrequestFunction._FileName + "</fileName>\r\n");
            select.Append("         <fileData>" + httpwebrequestFunction._FileData + "</fileData>\r\n");
            select.Append("         <companyId>" + httpwebrequestFunction._companyId + "</companyId>\r\n");
            select.Append("         <accountId>" + httpwebrequestFunction._accountid + "</accountId>\r\n");
            select.Append("      </inv:" + httpwebrequestFunction._HttpWebRequestFunction + ">\r\n");//sb.Append("      </inv:UploadRequest>\r\n");
            select.Append("   </soapenv:Body>\r\n");
            select.Append("</soapenv:Envelope>");
            return(select.ToString());
        }
Exemple #7
0
        /*VERSION PRODUCCION*/
        private void procesarFactura(LogReporteDian infoFactura)
        {
            //console.Ih("",false);
            console.Ih("=> Procesar factura : " + infoFactura.LODI_LLAVE_V2 + " Fecha : " + infoFactura.LODI_FECREGISTRO_DT, false);
            validarDirectorio(infoFactura.LODI_LLAVE_V2);
            console.Ih("    * Generando informacion Dian");
            int recordProcessed = generarInfoDian(infoFactura.LODI_LLAVE_V2, infoFactura.LODI_OFICINA_NB, infoFactura.LODI_TRANSACCION_NB);
            ICollection <InformacionDian> ICInformacionDian = new List <InformacionDian>();

            console.Ih("    * LeerInformacionDian       ");
            ICInformacionDian = LeerInformacionDian(infoFactura.LODI_LLAVE_V2);
            if (ICInformacionDian.Count > 0)
            {
                foreach (var item in ICInformacionDian)
                {
                    HttpsWebRequestsFunction httpwebrequestFunction = new HttpsWebRequestsFunction();
                    httpwebrequestFunction._FacturaXml = item.INDI_XMLENV_CB;
                    httpwebrequestFunction._Numdoc     = infoFactura.LODI_LLAVE_V2;
                    console.Ih("    * Procesando Anexos         ");
                    if (procesarAnexos(infoFactura))
                    {
                        console.Ih("    * comprimirAdjuntos         ");
                        long sizeAnexo = comprimirAdjuntos(infoFactura.LODI_LLAVE_V2, item);
                        if (sizeAnexo <= 2300000)
                        {
                            console.Ih("    * comprimirFactura          ");
                            httpwebrequestFunction._FileName = infoFactura.LODI_LLAVE_V2 + ".zip";
                            if (comprimirFactura(infoFactura.LODI_LLAVE_V2, item.INDI_XMLENV_CB))
                            {
                                httpwebrequestFunction._FileData = GetdataXmlAnexos(infoFactura.LODI_LLAVE_V2);
                            }
                        }
                        else
                        {
                            console.Ih("    * Los Anexos sobrepasan la capacidad. Se envia sin Anexos");
                            httpwebrequestFunction._FileName = infoFactura.LODI_LLAVE_V2 + ".xml";
                            using (StreamWriter writer = new StreamWriter("c:\\transer\\ws\\facturacion\\" + infoFactura.LODI_LLAVE_V2 + "\\anexos\\" + infoFactura.LODI_LLAVE_V2 + ".xml"))
                            {
                                writer.WriteLine(item.INDI_XMLENV_CB);
                            }
                            EncodingFacturacionElectronica encoding = new EncodingFacturacionElectronica();
                            httpwebrequestFunction._FileData = encoding.Base64Encode(item.INDI_XMLENV_CB);
                        }
                    }
                    else
                    {
                        console.Ih("    * La Factura no tiene Anexos");
                        httpwebrequestFunction._FileName = infoFactura.LODI_LLAVE_V2 + ".xml";
                        using (StreamWriter writer = new StreamWriter("c:\\transer\\ws\\facturacion\\" + infoFactura.LODI_LLAVE_V2 + "\\anexos\\" + infoFactura.LODI_LLAVE_V2 + ".xml"))
                        {
                            writer.WriteLine(item.INDI_XMLENV_CB);
                        }
                        EncodingFacturacionElectronica encoding = new EncodingFacturacionElectronica();
                        httpwebrequestFunction._FileData = encoding.Base64Encode(item.INDI_XMLENV_CB);
                    }
                    console.Ih("=> Maquetando Paquete Soap      ");
                    httpwebrequestFunction = MaquetarPaqueteSoap(httpwebrequestFunction);
                    console.Ih("=> Enviando Factura             ");
                    httpwebrequestFunction = EnviarFactura(httpwebrequestFunction);
                    console.Ih("=> Procesando Respuesta         ");
                    string statusFactura = procesarNewXMLRecibido(httpwebrequestFunction, infoFactura);
                }
            }
            else
            {
                //"No hay informacion asociada a la factura....
            }
        }
Exemple #8
0
        private HttpsWebRequestsFunction maquetarSoapFactura(HttpsWebRequestsFunction httpwebrequestFunction)
        {
            string estado = string.Empty;

            httpwebrequestFunction._companyId = "860504882";
            httpwebrequestFunction._accountid = "860504882_01";
            httpwebrequestFunction._Username  = "******";
            httpwebrequestFunction._userId    = "UsernameToken-1";
            EncodingFacturacionElectronica coding = new EncodingFacturacionElectronica();

            httpwebrequestFunction._Password = coding.SHA256Encrypt("F935Cjm9262@");
            //httpwebrequestFunction._Password = coding.SHA256Encrypt("TranserFac@1");
            httpwebrequestFunction._HttpWebRequestFunction = "DownloadRequest";
            httpwebrequestFunction._create = coding.getCreate();
            httpwebrequestFunction._nonce  = coding.getNonce(httpwebrequestFunction._FileName);
            string documentType = "FE";

            if (httpwebrequestFunction._FileName.Contains("NC"))
            {
                documentType = "NC";
            }
            else
            {
                if (httpwebrequestFunction._FileName.Contains("ND"))
                {
                    documentType = "ND";
                }
            }
            switch (documentType)
            {
            case "NC":
            {
                httpwebrequestFunction._documentType = "NC";
                break;
            }

            case "ND":
            {
                httpwebrequestFunction._documentType = "ND";
                break;
            }

            case "FV":
            {
                httpwebrequestFunction._documentType = "FV";
                break;
            }

            default:
            {
                httpwebrequestFunction._documentType = "FE";
                break;
            }
            }
            httpwebrequestFunction._documentPrefix = httpwebrequestFunction._FileName.Substring(0, 4);
            httpwebrequestFunction._documentNumber = httpwebrequestFunction._FileName;
            httpwebrequestFunction._resourceType   = "PDF";
            httpWebSend xmlsend = new httpWebSend();

            httpwebrequestFunction._soapEnviado = xmlsend.getSoapEnvio(httpwebrequestFunction);

            //httpSendXmlDocument httpsSendXmlDocument = new httpSendXmlDocument(vgl);


            ////HttpWebResponseFunction httpWebResponseFunction = new HttpWebResponseFunction("Upload");

            //httpwebrequestFunction._httpWebResponseXml = httpsSendXmlDocument.httpsSendXmlDocument(httpwebrequestFunction._soapEnviado);
            //httpwebrequestFunction._RequestXmlf = httpsSendXmlDocument._vgp.httpwebrequestFunction._RequestXmlf;
            //httpwebrequestFunction._soapRecibido = httpwebrequestFunction._httpWebResponseXml;
            ////_vgp.informaciondian.INDI_XMLREC_BL = vgl.httpwebrequestFunction._soapRecibido;
            //httpWebRequestFunctionDownloadXML httpWebRequestFunctionDownloadXml = new httpWebRequestFunctionDownloadXML(_vgp);
            //httpWebRequestFunctionDownloadXml.httpwebRequestFunctionDownloadxml(vgl.httpwebrequestFunction._soapRecibido);
            return(httpwebrequestFunction);
        }
Exemple #9
0
        private HttpsWebRequestsFunction maquetarSoapCufe(HttpsWebRequestsFunction httpwebrequestFunction)
        {
            string estado = string.Empty;

            httpwebrequestFunction._companyId = "860504882";
            httpwebrequestFunction._accountid = "860504882_01";
            httpwebrequestFunction._Username  = "******";
            httpwebrequestFunction._userId    = "UsernameToken-1";
            EncodingFacturacionElectronica coding = new EncodingFacturacionElectronica();

            httpwebrequestFunction._Password = coding.SHA256Encrypt("F935Cjm9262@");
            //httpwebrequestFunction._Password = coding.SHA256Encrypt("TranserFac@1");
            httpwebrequestFunction._HttpWebRequestFunction = "DownloadRequest";
            httpwebrequestFunction._create = coding.getCreate();
            httpwebrequestFunction._nonce  = coding.getNonce(httpwebrequestFunction._FileName);
            string documentType = "FE";

            if (httpwebrequestFunction._FileName.Contains("NC"))
            {
                documentType = "NC";
            }
            else
            {
                if (httpwebrequestFunction._FileName.Contains("ND"))
                {
                    documentType = "ND";
                }
            }
            switch (documentType)
            {
            case "NC":
            {
                httpwebrequestFunction._documentType = "NC";
                break;
            }

            case "ND":
            {
                httpwebrequestFunction._documentType = "ND";
                break;
            }

            case "FV":
            {
                httpwebrequestFunction._documentType = "FV";
                break;
            }

            default:
            {
                httpwebrequestFunction._documentType = "FE";
                break;
            }
            }
            httpwebrequestFunction._documentPrefix = httpwebrequestFunction._FileName.Substring(0, 4);
            httpwebrequestFunction._documentNumber = httpwebrequestFunction._FileName;
            httpwebrequestFunction._resourceType   = "SIGNED_XML";
            httpWebSend xmlsend = new httpWebSend();

            httpwebrequestFunction._soapEnviado = xmlsend.getSoapEnvio(httpwebrequestFunction);
            return(httpwebrequestFunction);
        }
Exemple #10
0
 private void actualizarlogReporteDian(string v, HttpsWebRequestsFunction httpwebrequestFunction, string factura)
 {
     throw new NotImplementedException();
 }
Exemple #11
0
        private HttpsWebRequestsFunction PdfFactura(string factura)
        {
            HttpsWebRequestsFunction httpwebrequestFunction = new HttpsWebRequestsFunction();
            string estado = string.Empty;
            ICollection <InformacionDian> ICInformacionDian = new List <InformacionDian>();

            ICInformacionDian = LeerInformacionDian(factura);
            if (ICInformacionDian.Count > 0)
            {
                foreach (var item in ICInformacionDian)
                {
                    httpwebrequestFunction._Numdoc     = item.INDI_NUMDOC_V2;
                    httpwebrequestFunction._FileName   = item.INDI_NUMDOC_V2;
                    httpwebrequestFunction._FacturaXml = item.INDI_XMLENV_CB;
                    httpwebrequestFunction             = maquetarSoapFactura(httpwebrequestFunction);
                    bool continuar = true;
                    int  intentos  = 0;
                    //console.Ih("Enviar Factura ");
                    while (continuar)
                    {
                        httpwebrequestFunction = EnviarFactura(httpwebrequestFunction);
                        if (httpwebrequestFunction._httpWebResponseXml.Contains("Error interno"))
                        {
                            intentos++;
                            console.CRed();
                            console.Ih("Intentos de Envío : " + intentos);
                            //console.Ih(httpwebrequestFunction._httpWebResponseXml);
                            System.Threading.Thread.Sleep(2000);
                        }
                        else
                        {
                            httpwebrequestFunction = procesarFacturaXMLRecibido(httpwebrequestFunction);
                            validarDirectorio(item.INDI_NUMDOC_V2);
                            httpwebrequestFunction = Cufe(item.INDI_NUMDOC_V2);
                            continuar = false;//<status>
                        }
                        if (intentos > 4)
                        {
                            string mensaje = string.Empty;
                            mensaje += "No fue posible reportar la factura : ";
                            mensaje += httpwebrequestFunction._FileName;
                            mensaje += "\r\n ";
                            mensaje += "\r\n ";
                            mensaje += "\r\nDescripcion del Error ";
                            mensaje += httpwebrequestFunction._httpWebResponseXml;
                            mensaje += "\r\n ";
                            mensaje += "\r\n ";
                            mensaje += "\r\n ===  >  Informacion de la Factura  < ===";
                            mensaje += "\r\nFecha Crea   : " + item.INDI_FECCREA_TS;
                            mensaje += "\r\nId Carvajal  : " + item.INDI_IDCARVAJAL_V2;
                            mensaje += "\r\nValidacion   : " + item.INDI_VALIDACION_CL;
                            mensaje += "\r\nEmail        : " + item.INDI_EMAIL_V2;
                            mensaje += "\r\nXML Enviado  : " + item.INDI_XMLENV_CB;
                            console.Ih("No fue posible enviar la factura");
                            //SendEmail("No fue posible enviar la factura", mensaje, "*****@*****.**", "*****@*****.**", "*****@*****.**");
                            continuar = false;//<status>
                        }
                    }
                }
            }
            return(httpwebrequestFunction);
        }