Esempio n. 1
0
        private bool procesarAnexos(LogReporteDian infoFactura)
        {
            bool anexos = false;

            string[] _nParametros;
            object[] _vParametros;
            _nParametros = new string[3] {
                "p_numdoc_v", "p_oficina_n", "p_tipodoc_v"
            };
            _vParametros = new object[3] {
                infoFactura.LODI_LLAVE_V2, infoFactura.LODI_OFICINA_NB, "FC"
            };
            Factory data = new Factory(Usuario, Password, Ambiente);

            if (infoFactura.LODI_OFICINA_NB != 34)
            {
                var dtAnexos = data.getTable("FDB_LEER_ANEXOS_DIAN", _nParametros, _vParametros);
                if (dtAnexos.Rows.Count > 0)
                {
                    anexos = true;
                    foreach (DataRow dr in dtAnexos.Rows)
                    {
                        procesarAdjuntos(dr, infoFactura.LODI_LLAVE_V2);
                    }
                    //long sizeAnexo = comprimirAdjuntos(infoFactura.LODI_LLAVE_V2);
                }
                else
                {
                    anexos = false;
                }
            }
            return(anexos);
        }
Esempio n. 2
0
        private LogReporteDian addLogReporteDian(DataRow item)
        {
            LogReporteDian logReporteDian = new LogReporteDian();

            logReporteDian.LODI_SECUENCIA_NB   = double.Parse(item["LODI_SECUENCIA_NB"].ToString());
            logReporteDian.LODI_OFICINA_NB     = int.Parse(item["LODI_OFICINA_NB"].ToString());
            logReporteDian.LODI_TRANSACCION_NB = int.Parse(item["LODI_TRANSACCION_NB"].ToString());
            logReporteDian.LODI_LLAVE_V2       = item["LODI_LLAVE_V2"].ToString();
            logReporteDian.LODI_FECREGISTRO_DT = DateTime.Parse(item["LODI_FECREGISTRO_DT"].ToString());
            logReporteDian.LODI_ESTADO_V2      = item["LODI_ESTADO_V2"].ToString();
            try
            {
                logReporteDian.LODI_CAMPO1_NB = double.Parse(item["LODI_CAMPO1_NB"].ToString());
            }
            catch (Exception ex)
            {
                logReporteDian.LODI_CAMPO1_NB = 0;
                //ManejoError(ex, "logReporteDian.LODI_CAMPO1_NB = double.Parse(item[\"LODI_CAMPO1_NB\"].ToString());");
            }

            logReporteDian.LODI_CAMPO2_V2 = item["LODI_CAMPO2_V2"].ToString();
            try
            {
                logReporteDian.LODI_CAMPO3_DT = DateTime.Parse(item["LODI_CAMPO3_DT"].ToString());
            }
            catch (Exception ex)
            {
                logReporteDian.LODI_CAMPO3_DT = DateTime.UtcNow;
                //ManejoError(ex, "logReporteDian.LODI_CAMPO3_DT = DateTime.Parse(item[\"LODI_CAMPO3_DT\"].ToString());");
            }

            logReporteDian.LODI_ESTADODIAN_V2 = item["LODI_ESTADODIAN_V2"].ToString();

            return(logReporteDian);
        }
Esempio n. 3
0
 public Vgp()
 {
     _TargetFile       = new TargetFile();
     _Directorio       = _TargetFile._Directorio;
     _Archivo          = _TargetFile._Archivo;
     _AuthorizationKey = new AuthorizationKey();
     _Cadena           = _AuthorizationKey._Credentialbd._Sgrd._Cadena;
     _Ip                     = _AuthorizationKey._Credentialbd._Sgrd._Ip;
     _Sid                    = _AuthorizationKey._Credentialbd._Sgrd._Sid;
     _LogReporteDian         = new LogReporteDian();
     _IcpdbInfoDian          = new IcpdbInfoDian();
     _InformacionDian        = new InformacionDian();
     _Upload                 = new Upload();
     _HttpWebRequestFunction = new HttpWebRequestFunction();
 }
Esempio n. 4
0
        private void consultarEstadoFactura(LogReporteDian infoFactura)
        {
            ICollection <InformacionDian> ICInformacionDian = new List <InformacionDian>();

            ICInformacionDian = LeerInformacionDian(infoFactura.LODI_LLAVE_V2);
        }
Esempio n. 5
0
        private void actualizarlogReporteDian(string estado, HttpsWebRequestsFunction httpwebrequestFunction, LogReporteDian infoFactura)
        {
            if (estado == "E")
            {
                console.Cgreen();
                using (Factory data = new Factory(Usuario, Password, Ambiente))
                {
                    console.Ih("    !! Insertando Registro en la Tabla UPLOAD         ");
                    string[] _nParametros;
                    object[] _vParametros;
                    //:filename,:filedata,:companyid,:accountid,:status,:transactionid,:xmlfactura,:soapenviado,:soaprespuesta
                    _nParametros = new string[9] {
                        ":filename", ":filedata", ":companyid", ":accountid", ":status", ":transactionid", ":xmlfactura", ":soapenviado", ":soaprespuesta"
                    };
                    _vParametros = new object[9] {
                        infoFactura.LODI_LLAVE_V2, httpwebrequestFunction._FileData, httpwebrequestFunction._companyId, httpwebrequestFunction._accountid, httpwebrequestFunction._status, httpwebrequestFunction._transactionId, httpwebrequestFunction._FacturaXml, httpwebrequestFunction._soapEnviado, httpwebrequestFunction._soapRecibido
                    };
                    data.executeCommand("UploadRequestFE", _nParametros, _vParametros);
                }

                //_datos.executeDetLogDian(select.insertDetLogDian(), _vgp);
                using (Factory data = new Factory(Usuario, Password, Ambiente))
                {
                    console.Ih("    !! Insertando Registro en la Tabla DetLogDian     ");
                    string[] _nParametros;
                    object[] _vParametros;
                    _nParametros = new string[9] {
                        ":secuencia", ":oficina", ":transaccion", ":llave", ":estado", ":iddian", ":cufe", ":soapEnviado", ":soapRecibido"
                    };
                    _vParametros = new object[9] {
                        infoFactura.LODI_SECUENCIA_NB, infoFactura.LODI_OFICINA_NB, infoFactura.LODI_TRANSACCION_NB, infoFactura.LODI_LLAVE_V2, infoFactura.LODI_ESTADO_V2, httpwebrequestFunction._transactionId, "EN PROCESO", httpwebrequestFunction._soapEnviado, httpwebrequestFunction._soapRecibido
                    };
                    data.executeCommand("insertDetLogDian", _nParametros, _vParametros);
                }

                //_datos.executeUpdateInfoDian(select.updateInformacionDian(), _vgp);
                using (Factory data = new Factory(Usuario, Password, Ambiente))
                {
                    console.Ih("    !! Insertando Registro en la Tabla InformacionDian");
                    string[] _nParametros;
                    object[] _vParametros;
                    _nParametros = new string[3] {
                        ":INDI_IDCARVAJAL", "INDI_CUFEDIAN", ":INDI_NUMDOC"
                    };
                    _vParametros = new object[3] {
                        httpwebrequestFunction._transactionId, "EN PROCESO", infoFactura.LODI_LLAVE_V2
                    };
                    data.executeCommand("updateInformacionDian", _nParametros, _vParametros);
                }
                //System.Threading.Thread.Sleep(3000);
                ILogicaInfoFactura Lif  = new LogicaInfoFactura(Usuario, Password, UsuEmail, PassEmail, Ambiente);
                string             cufe = string.Empty;
                cufe = Lif.Inicio(infoFactura.LODI_LLAVE_V2);
            }
            else
            {
                //Falta Implementar.....
            }
        }
Esempio n. 6
0
        private string procesarNewXMLRecibido(HttpsWebRequestsFunction httpwebrequestFunction, LogReporteDian infoFactura)
        {
            string      nombreArchivo = @"c:\transer\ws\facturacion\" + httpwebrequestFunction._Numdoc + "\\" + httpwebrequestFunction._Numdoc + "_xmlRecibido.xml";
            string      status        = string.Empty;
            XmlDocument doc           = new XmlDocument();

            try
            {
                doc.LoadXml(httpwebrequestFunction._soapRecibido);
                doc.Save(nombreArchivo);
                XmlElement  root           = doc.DocumentElement;
                XmlNodeList elemListStatus = root.GetElementsByTagName("status");
                #pragma warning disable CS0162 // Se detectó código inaccesible
                for (int i = 0; i < elemListStatus.Count; i++)
                #pragma warning restore CS0162 // Se detectó código inaccesible
                {
                    httpwebrequestFunction._status = elemListStatus[i].InnerXml;
                    break;
                }
                XmlNodeList elemListTransactionId = root.GetElementsByTagName("transactionId");
                #pragma warning disable CS0162 // Se detectó código inaccesible
                for (int i = 0; i < elemListTransactionId.Count; i++)
                #pragma warning restore CS0162 // Se detectó código inaccesible
                {
                    httpwebrequestFunction._transactionId = elemListTransactionId[i].InnerXml;
                    break;
                }
                if (httpwebrequestFunction._status == "Archivo recibido con exito.")
                {
                    console.Ih("    !! Factura Enviada con Exito");
                    if (httpwebrequestFunction._transactionId.Length > 12)
                    {
                        //console.Ih("    !! actualizarlogReporteDian");
                        actualizarlogReporteDian("E", httpwebrequestFunction, infoFactura);
                    }
                }
            }
            catch (Exception ex)
            {
                string _mensajeError = @"Exception : " + ex.Source + "\nData source: " + ex.Message + "\nInnerException: " + ex.InnerException;
            }
            return(status);
        }
Esempio n. 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....
            }
        }