Exemplo n.º 1
0
        private void BuildXmlForElectric(List <Document> docs, string xmlFilepath)
        {
            XmlWriterSettings settings = new XmlWriterSettings();

            settings.Indent = true;
            using (XmlWriter writer = XmlWriter.Create(xmlFilepath, settings))
            {
                writer.WriteStartElement("business");
                foreach (Document doc in docs)
                {
                    writer.WriteStartElement("REQUEST_COMMON_FPKJ");
                    writer.WriteStartElement("COMMON_FPKJ_FPT");
                    XmlWriteElement(writer, "FPQQLSH", doc.No);
                    string kplx = "0";
                    if (doc.TotalValue() < 0)
                    {
                        kplx = "1";
                    }
                    XmlWriteElement(writer, "KPLX", kplx);
                    XmlWriteElement(writer, "XSF_NSRSBH", doc.SellerTaxCode);
                    XmlWriteElement(writer, "XSF_MC", doc.SellerName);
                    XmlWriteElement(writer, "XSF_DZDH", doc.SellerAddressTel);
                    XmlWriteElement(writer, "XSF_YHZH", doc.SellerBankAccountNo);
                    XmlWriteElement(writer, "GMF_NSRSBH", doc.BuyerTaxCode);
                    XmlWriteElement(writer, "GMF_MC", doc.BuyerName);
                    XmlWriteElement(writer, "GMF_DZDH", doc.BuyerAddressTel);
                    XmlWriteElement(writer, "GMF_YHZH", doc.BuyerBankAccountNo);
                    XmlWriteElement(writer, "KPR", doc.Maker);
                    XmlWriteElement(writer, "SKR", doc.Payee);
                    XmlWriteElement(writer, "FHR", doc.Checker);
                    XmlWriteElement(writer, "YFP_DM", doc.OriginalInvoiceCode);
                    XmlWriteElement(writer, "YFP_HM", doc.OriginalInvoiceNo);
                    XmlWriteElement(writer, "JSHJ", Convert.ToString(doc.TotalValue() + doc.TotalTax()));
                    XmlWriteElement(writer, "HJJE", Convert.ToString(doc.TotalValue()));
                    XmlWriteElement(writer, "HJSE", Convert.ToString(doc.TotalTax()));
                    XmlWriteElement(writer, "BZ", doc.Memo);
                    XmlWriteElement(writer, "BMB_BBH", doc.TaxCatalogVersion);
                    writer.WriteEndElement();//COMMON_FPKJ_FPT

                    writer.WriteStartElement("COMMON_FPKJ_XMXXS");
                    foreach (DocumentItem item in doc.Items)
                    {
                        writer.WriteStartElement("COMMON_FPKJ_XMXX");
                        XmlWriteElement(writer, "FPHXZ", "0");
                        XmlWriteElement(writer, "XMMC", item.Name);
                        XmlWriteElement(writer, "DW", item.Unit);
                        XmlWriteElement(writer, "GGXH", item.Spec);
                        string strPrice, strQuantity;
                        if (item.Price == 0)
                        {
                            strPrice    = "";
                            strQuantity = "";
                        }
                        else
                        {
                            strPrice    = Convert.ToString(item.Price);
                            strQuantity = Convert.ToString(item.Quantity);
                        }
                        XmlWriteElement(writer, "XMSL", strQuantity);
                        XmlWriteElement(writer, "XMDJ", strPrice);
                        XmlWriteElement(writer, "XMJE", Convert.ToString(item.Value));
                        XmlWriteElement(writer, "SL", Convert.ToString(item.TaxRate));
                        XmlWriteElement(writer, "SE", Convert.ToString(item.Tax));
                        XmlWriteElement(writer, "SPBM", item.TaxCatalogItemNo.PadRight(19, '0'));
                        XmlWriteElement(writer, "ZXBM", item.ItemNo);
                        XmlWriteElement(writer, "YHZCBS", item.FreeTaxName);
                        XmlWriteElement(writer, "LSLBS", DescriptionAttributeUtils.GetEnumDescription(item.ZeroTax));
                        XmlWriteElement(writer, "ZZSTSGL", "");
                        writer.WriteEndElement(); //COMMON_FPKJ_XMXX
                    }
                    writer.WriteEndElement();     //COMMON_FPKJ_XMXXS
                    writer.WriteEndElement();     //REQUEST_COMMON_FPKJ
                }
                writer.WriteEndElement();         //business
            }
        }
Exemplo n.º 2
0
        private void BuildXmlForSpecialAndCommon(List <Document> docs, string xmlFilepath)
        {
            XmlWriterSettings settings = new XmlWriterSettings();

            settings.Indent = true;
            using (XmlWriter writer = XmlWriter.Create(xmlFilepath, settings))
            {
                writer.WriteStartElement("Kp");
                XmlWriteElement(writer, "Version", "2.0");

                writer.WriteStartElement("Fpxx");
                XmlWriteElement(writer, "Zsl", Convert.ToString(docs.Count));

                writer.WriteStartElement("Fpsj");
                foreach (Document doc in docs)
                {
                    writer.WriteStartElement("Fp");
                    XmlWriteElement(writer, "Djh", doc.No);
                    XmlWriteElement(writer, "Gfmc", doc.BuyerName);
                    XmlWriteElement(writer, "Gfsh", doc.BuyerTaxCode);
                    XmlWriteElement(writer, "Gfyhzh", doc.BuyerBankAccountNo);
                    XmlWriteElement(writer, "Gfdzdh", doc.BuyerAddressTel);
                    XmlWriteElement(writer, "Bz", doc.Memo);
                    XmlWriteElement(writer, "Fhr", doc.Checker);
                    XmlWriteElement(writer, "Skr", doc.Payee);
                    XmlWriteElement(writer, "Spbmbbh", doc.TaxCatalogVersion);
                    XmlWriteElement(writer, "Hsbz", doc.IsIncludeTax ? "1" : "0");

                    writer.WriteStartElement("Spxx");
                    int n = 1;
                    foreach (DocumentItem item in doc.Items)
                    {
                        writer.WriteStartElement("Sph");
                        XmlWriteElement(writer, "Xh", Convert.ToString(n++));
                        XmlWriteElement(writer, "Spmc", item.Name);
                        XmlWriteElement(writer, "Ggxh", item.Spec);
                        XmlWriteElement(writer, "Jldw", item.Unit);
                        XmlWriteElement(writer, "Spbm", item.TaxCatalogItemNo.PadRight(19, '0'));
                        XmlWriteElement(writer, "Qyspbm", item.ItemNo);
                        XmlWriteElement(writer, "Syyhzcbz", item.IsFreeTax ? "1" : "");
                        XmlWriteElement(writer, "Lslbz", DescriptionAttributeUtils.GetEnumDescription(item.ZeroTax));
                        XmlWriteElement(writer, "Yhzcsm", item.FreeTaxName);
                        string strPrice, strQuantity;
                        if (item.Price == 0)
                        {
                            strPrice    = "";
                            strQuantity = "";
                        }
                        else
                        {
                            strPrice    = Convert.ToString(item.Price);
                            strQuantity = Convert.ToString(item.Quantity);
                        }
                        XmlWriteElement(writer, "Dj", strPrice);
                        XmlWriteElement(writer, "Sl", strQuantity);
                        XmlWriteElement(writer, "Je", Convert.ToString(item.Value));
                        XmlWriteElement(writer, "Slv", Convert.ToString(item.TaxRate));
                        XmlWriteElement(writer, "Kce", "");
                        writer.WriteEndElement(); //Sph
                    }
                    writer.WriteEndElement();     //Spxx
                    writer.WriteEndElement();     //Fp
                }
                writer.WriteEndElement();         //Fpsj
                writer.WriteEndElement();         //Kp
            }
        }