private List <ENC> CabeceraENC(RFNCCAB model) { ENC mENC = new ENC(); List <ENC> lmENC = new List <ENC>(); string NombreXml = ""; mENC.ENC_1 = "NC"; mENC.ENC_4 = lmRFPARAM.Where(m => m.CCCODE == "ENC_4").SingleOrDefault().CCDESC; mENC.ENC_5 = lmRFPARAM.Where(m => m.CCCODE == "ENC_5").SingleOrDefault().CCDESC; NombreXml = model.FPREFIJ + model.FNOTA; mRFPARAM = lmRFPARAM.Where(m => m.CCCODE == "PREFIJO" && m.CCCODE2 == model.FPREFIJ).SingleOrDefault(); if (mRFPARAM != null) { if (mRFPARAM.CCCODEN != "0") { NombreXml = mRFPARAM.CCALTC + (double.Parse(mRFPARAM.CCCODEN) + double.Parse(model.FNOTA)); } } mENC.ENC_6 = NombreXml; mENC.ENC_7 = model.FFECNC; mENC.ENC_8 = model.FACRTDAT.ToString("HH:mm:ss"); mENC.ENC_9 = "9"; mENC.ENC_10 = model.FMONEDA; mENC.ENC_13 = model.FCLIENT; mENC.ENC_15 = model.TotLineas; mENC.ENC_16 = model.FFECVEN; lmENC.Add(mENC); return(lmENC); }
public ActionResult Index() { if (SessionManager.Get <RCAU>("VarUsuario") == null) { return(RedirectToAction("Login", "Account", new { donde = Url.Action("Index", "Contrato") })); } List <MdlContrato> lmContrato = GetAllContratos(); SessionManager.Set("DContratos", lmContrato); RFPARAM mRFPARAM = db.RFPARAM.Where(m => m.CCTABL == "CONTRATOSAVISO" && m.CCCODE == "DIAS" && m.CCCODE2 == "1").SingleOrDefault(); if (mRFPARAM != null) { ViewBag.AvisoUno = mRFPARAM.CCNOT1; } else { ViewBag.AvisoUno = 0; } return(View()); }
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); }