Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
        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);
        }