private List <ENC> CabeceraENC(RFFACCAB model) { ENC mENC = new ENC(); List <ENC> lmENC = new List <ENC>(); string NombreXml = ""; mENC.ENC_1 = "INVOIC"; 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.FFACTUR; 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.FFACTUR)); } } mENC.ENC_6 = NombreXml; mENC.ENC_7 = model.FFECFAC; mENC.ENC_8 = model.FACRTDAT.ToString("HH:mm:ss"); mENC.ENC_9 = (model.FORDCOM.StartsWith("EXP")) ? "2" : "1"; 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); }
private List <ORC> CabeceraORC(RFFACCAB model) { ORC mORC = new ORC(); List <ORC> lmORC = new List <ORC>(); mORC.ORC_1 = model.FORDCOM; lmORC.Add(mORC); return(lmORC); }
private List <TDC> CabeceraTDC(RFFACCAB model) { List <TDC> lmTDC = new List <TDC>(); TDC mTDC = new TDC { TDC_1 = model.FMONEDA, TDC_2 = model.FMONEDA }; lmTDC.Add(mTDC); return(lmTDC); }
private void AvisoDespacho(string Prefijo, string Factura) { bool bGenera = true; if (!CtlProcesoUnico("FACTURAS", Prefijo + Factura + ".AVISODESPACHO")) { return; } RFFACCAB ADRFFACCAB = dRFFACCAB.GetFlag3(Prefijo, Factura); if (ADRFFACCAB != null) { if (ADRFFACCAB.FAFLAG03 != "0") { bGenera = false; } } if (!bGenera) { return; } bGenera = false; ADRFFACCAB = dRFFACCAB.GetCCNUM(Prefijo, Factura); if (ADRFFACCAB != null) { bGenera = true; } else { ADRFFACCAB = dRFFACCAB.GetCCNUMCode(Prefijo, Factura); if (ADRFFACCAB != null) { bGenera = true; } } if (!bGenera) { return; } dRFFACCAB.UpdFlag3(Prefijo, Factura); RFTASK mRFTASK = new RFTASK() { TKEY = Prefijo + Factura, TKEYWORD = Prefijo + Factura }; dRFTASK.AddAviso(mRFTASK); }
private List <IEN> CabeceraIEN(RFFACCAB model) { IEN mIEN = new IEN(); List <IEN> lmIEN = new List <IEN>(); mIEN.IEN_1 = model.FDIRPEN1; mIEN.IEN_2 = model.FDEPPEN; mIEN.IEN_4 = model.FDIRPEN3; mIEN.IEN_6 = model.FPAIPEN; mIEN.IEN_7 = model.FNOMPEN; lmIEN.Add(mIEN); return(lmIEN); }
private List <TOT> CabeceraTOT(RFFACCAB model) { TOT mTOT = new TOT(); List <TOT> lmTOT = new List <TOT>(); mTOT.TOT_1 = model.FSUBTOT; mTOT.TOT_2 = model.FMONEDA; mTOT.TOT_3 = model.FSUBTOT; mTOT.TOT_4 = model.FMONEDA; mTOT.TOT_5 = model.FTOTFAC; mTOT.TOT_6 = model.FMONEDA; lmTOT.Add(mTOT); return(lmTOT); }
private List <EMI> CabeceraEMI(RFFACCAB model) { EMI mEMI = new EMI(); List <EMI> lmEMI = new List <EMI>(); ICC mICC = new ICC(); List <ICC> lmICC = new List <ICC>(); TAC mTAC; List <TAC> lmTAC = new List <TAC>(); mEMI.EMI_1 = mRCO.COEXID; mEMI.EMI_2 = mRCO.CVATNM; mEMI.EMI_3 = mRCO.COAUTN; mEMI.EMI_4 = mRCO.COAUTB; mEMI.EMI_6 = mRCO.CMPNAM; mEMI.EMI_10 = mRCO.CMPAD1; mEMI.EMI_11 = mRCO.COSTE; mEMI.EMI_12 = mRCO.COADR3; mEMI.EMI_13 = mRCO.CMPOST; mEMI.EMI_15 = mRCO.COCRCC; mEMI.EMI_18 = mRCO.CMPAD1; mICC.ICC_1 = mRCO.COCRNO; mICC.ICC_3 = mRCO.CMPOST; mICC.ICC_5 = mRCO.COSTE; mICC.ICC_6 = mRCO.CMPAD1; mICC.ICC_7 = mRCO.COCRCC; mICC.ICC_8 = mRCO.COADR4; lmICC.Add(mICC); mEMI.LMdlICC = lmICC; lmZCC = dZCC.GetTablesRut(); foreach (ZCC item in lmZCC) { mTAC = new TAC() { TAC_1 = item.CCCODE }; lmTAC.Add(mTAC); } mEMI.LMdlTAC = lmTAC; lmEMI.Add(mEMI); return(lmEMI); }
private List <TIM> CabeceraTIM(RFFACCAB model) { TIM mTIM = new TIM(); List <TIM> lmTIM = new List <TIM>(); if (model.FIMPUES != 0) { mTIM.TIM_1 = "false"; mTIM.TIM_2 = model.FIMPUES; mTIM.TIM_3 = model.FMONEDA; lmTIM.Add(mTIM); } return(lmTIM); }
private List <ADQ> CabeceraADQ(RFFACCAB model) { ADQ mADQ = new ADQ(); List <ADQ> lmADQ = new List <ADQ>(); ICR mICR = new ICR(); List <ICR> lmICR = new List <ICR>(); CDA mCDA = new CDA(); List <CDA> lmCDA = new List <CDA>(); mADQ.ADQ_1 = model.SUFD13; mADQ.ADQ_2 = (model.SUFD19 != "") ? model.SUFD19 : model.FNIT; mADQ.ADQ_3 = model.SUFD17; mADQ.ADQ_4 = model.SUFD14; mADQ.ADQ_5 = model.FCLIENT; mADQ.ADQ_6 = (model.SUFD13 != "2") ? model.FNOMCLI : ""; mADQ.ADQ_8 = (model.SUFD13 == "2") ? model.SUFD06 : ""; mADQ.ADQ_9 = (model.SUFD13 == "2") ? model.SUFD05 : ""; mADQ.ADQ_10 = model.FDIRCLI1; mADQ.ADQ_11 = model.FDEPCLI; mADQ.ADQ_13 = model.FDIRCLI3; mADQ.ADQ_15 = model.FPAICLI; mADQ.ADQ_18 = model.FDIRCLI1; mICR.ICR_3 = model.FDIRCLI3; mICR.ICR_5 = model.FDEPCLI; mICR.ICR_6 = model.FDIRCLI1; mICR.ICR_7 = model.FPAICLI; lmICR.Add(mICR); mADQ.LMdlICR = lmICR; mCDA.CDA_1 = "1"; mCDA.CDA_2 = model.CCON; mCDA.CDA_3 = model.CPHON; mCDA.CDA_4 = model.CMAD6; lmCDA.Add(mCDA); mADQ.LMdlCDA = lmCDA; lmADQ.Add(mADQ); return(lmADQ); }
private List <REF> CabeceraREF(RFFACCAB model) { REF mREF; List <REF> lmREF = new List <REF>(); mREF = new REF() { REF_1 = "RF1", REF_2 = model.FPEDIDO }; lmREF.Add(mREF); mREF = new REF() { REF_1 = "RF2", REF_2 = model.FPLANIL }; lmREF.Add(mREF); return(lmREF); }
private List <ITE> DetalleITE(RFFACCAB modelC, List <RFFACDET> modelD) { ITE mITE = new ITE(); List <ITE> lmITE = new List <ITE>(); TII mTII = new TII(); List <TII> lmTII = new List <TII>(); IIM mIIM = new IIM(); List <IIM> lmIIM = new List <IIM>(); foreach (RFFACDET Det in modelD) { mITE = new ITE { ITE_1 = Det.DLINEA, ITE_2 = (Det.DVALUNI == 0) ? "true" : "false", ITE_3 = Det.DCANTID, ITE_4 = Det.DUNIMED,// ITE_5 = Det.DVALTOT, ITE_6 = modelC.FMONEDA, ITE_7 = Det.DVALUNI, ITE_8 = modelC.FMONEDA, ITE_18 = Det.DCODPRO, ITE_10 = Det.DUNIMED, ITE_11 = Det.DDESPRO, ITE_19 = Det.DVALTOT, ITE_20 = modelC.FMONEDA }; lmIIM.Clear(); lmTII.Clear(); mIIM = new IIM() { IIM_1 = "01", IIM_2 = Det.IMPUESTOS, IIM_3 = modelC.FMONEDA, IIM_4 = Det.DFVALTOT, IIM_5 = modelC.FMONEDA, IIM_6 = Det.DFPORIMP }; lmIIM.Add(mIIM); mTII = new TII() { TII_1 = Det.IMPUESTOS, TII_2 = modelC.FMONEDA, TII_3 = "false", LMdlIIM = lmIIM }; lmTII.Add(mTII); mITE.LMdlTII = lmTII; lmITE.Add(mITE); } return(lmITE); }
private string CargarFV(string Prefijo, string Factura) { string NombreXml = "", res = "", xml = "", xmlResp = ""; Prefijo = Prefijo ?? "A"; Factura = Factura ?? "1023711"; dESN.AddNotas(Prefijo, Factura); lmESN = dESN.GetNotas(Prefijo, Factura); mRFFACCAB = dRFFACCAB.Find(Prefijo, Factura); lmRFFACDET = dRFFACDET.Find(Prefijo, Factura); mRCO = dRCO.GetCompany(); lmRFPARAM = dRFPARAM.GetParams(); NombreXml = Prefijo + Factura; 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(Factura)); } } FACTURA mFACTURA = new FACTURA { LMdlENC = CabeceraENC(mRFFACCAB), LMdlEMI = CabeceraEMI(mRFFACCAB), LMdlADQ = CabeceraADQ(mRFFACCAB), LMdlTOT = CabeceraTOT(mRFFACCAB), LMdlTIM = CabeceraTIM(mRFFACCAB), LMdlTDC = CabeceraTDC(mRFFACCAB), LMdlDRF = DetalleDRF(), LMdlNOT = DetalleNOT(), LMdlORC = CabeceraORC(mRFFACCAB), LMdlREF = CabeceraREF(mRFFACCAB), LMdlIEN = CabeceraIEN(mRFFACCAB), LMdlITE = DetalleITE(mRFFACCAB, lmRFFACDET) }; XmlSerializer xs = new XmlSerializer(typeof(FACTURA)); using (var sww = new StringWriter()) { using (XmlWriter xwriter = XmlWriter.Create(sww)) { xs.Serialize(xwriter, mFACTURA); xml = sww.ToString(); } } //TextWriter writer = new StreamWriter("C:\\Copia_Servidor\\Proyectos\\BRINSA\\BssFacturaElectronicaService\\" + NombreXml + ".xml"); TextWriter writer = new StreamWriter("E:\\Sitios\\XMLFE\\" + NombreXml + ".xml"); xs.Serialize(writer, mFACTURA); 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 = dRFFACCAB.UpdFacturaIdNme(Prefijo, Factura, Cargue.Substring((Cargue.IndexOf("<transactionId>") + 15), (Cargue.IndexOf("</transactionId>") - Cargue.IndexOf("<transactionId>")) - 15), NombreXml); if (res == "OK") { Thread.Sleep(5000); res = EstadoFV(Cargue.Substring((Cargue.IndexOf("<transactionId>") + 15), (Cargue.IndexOf("</transactionId>") - Cargue.IndexOf("<transactionId>")) - 15), Prefijo, Factura); res = DescargarFV(Prefijo, Factura); } if (Cargue.Contains("ERROR")) { var nRFLOG = new RFLOG() { OPERACION = "FE", 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\\XMLFE", "xml"); } return(res); }