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); }
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); }
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(); }
private void consultarEstadoFactura(LogReporteDian infoFactura) { ICollection <InformacionDian> ICInformacionDian = new List <InformacionDian>(); ICInformacionDian = LeerInformacionDian(infoFactura.LODI_LLAVE_V2); }
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..... } }
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); }
/*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.... } }