Example #1
0
            public bool ExXmlC0501(string ASN, string MInvoiceNumber, string sKind0up, string sKind0upAll, string sPgSN)
            {
                NSysDB.XMLClass oXMLeParamts = new NSysDB.XMLClass();
                string          sFPathN      = oXMLeParamts.GetParaXml("ExXMLPa");

                DataView dvResultM        = Kind1SelectTbl2("", sKind0upAll, "C0501SN='" + ASN + "'", "", "");
                bool     validInvoiceDate = ValidIsDate(Convert.ToString(dvResultM.Table.Rows[0]["InvoiceDate"]));

                if (!validInvoiceDate)
                {
                    GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, sKind0up, "原發票日期過早,不上傳至turnkey,日期:" + Convert.ToString(dvResultM.Table.Rows[0]["InvoiceDate"]), MInvoiceNumber, 23);
                    return(false);
                }

                bool validInvoiceCancelDate = ValidIsDate(Convert.ToString(dvResultM.Table.Rows[0]["CancelDate"]));

                if (!validInvoiceCancelDate)
                {
                    GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, sKind0up, "發票作廢日期過早,不上傳至turnkey,日期:" + Convert.ToString(dvResultM.Table.Rows[0]["CancelDate"]), MInvoiceNumber, 23);
                    return(false);
                }

                if (dvResultM != null)
                {
                    string strXMLAll = "";
                    strXMLAll = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + Environment.NewLine
                                //+ "<Invoice xmlns=\"urn:GEINV:eInvoiceMessage:C0401:3.1\"/>" + Environment.NewLine
                                //+ "<Invoice xmlns=\"urn:GEINV:eInvoiceMessage:A0501:3.1\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"urn:GEINV:eInvoiceMessage:A0501:3.1\" elementFormDefault=\"qualified\" attributeFormDefault=\"unqualified\">" + Environment.NewLine
                                + "<CancelInvoice xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"urn:GEINV:eInvoiceMessage:C0501:3.1\" xsi:schemaLocation=\"urn:GEINV:eInvoiceMessage:C0501:3.1 C0501.xsd\" >" + Environment.NewLine
                                //+ "<!-- 作廢發票號碼 C0501-->" + Environment.NewLine
                                + "<CancelInvoiceNumber>" + Convert.ToString(dvResultM.Table.Rows[0]["CancelInvoiceNumber"]) + "</CancelInvoiceNumber>" + Environment.NewLine
                                //+ "<!-- 發票日期 -->" + Environment.NewLine
                                + "<InvoiceDate>" + Convert.ToString(dvResultM.Table.Rows[0]["InvoiceDate"]) + "</InvoiceDate>" + Environment.NewLine
                                //+ "<!-- 買方統一編號 -->" + Environment.NewLine
                                + "<BuyerId>" + Convert.ToString(dvResultM.Table.Rows[0]["BuyerId"]) + "</BuyerId>" + Environment.NewLine
                                //+ "<!-- 賣方統一編號 -->" + Environment.NewLine
                                + "<SellerId>" + Convert.ToString(dvResultM.Table.Rows[0]["SellerId"]) + "</SellerId>" + Environment.NewLine
                                //+ "<!-- 發票作廢日期 -->" + Environment.NewLine
                                + "<CancelDate>" + Convert.ToString(dvResultM.Table.Rows[0]["CancelDate"]) + "</CancelDate>" + Environment.NewLine
                                //+ "<!-- 發票作廢時間 -->" + Environment.NewLine
                                + "<CancelTime>" + Convert.ToString(dvResultM.Table.Rows[0]["CancelTime"]) + "</CancelTime>" + Environment.NewLine
                                //+ "<!-- 發票作廢原因 -->" + Environment.NewLine
                                + "<CancelReason><![CDATA[" + Convert.ToString(dvResultM.Table.Rows[0]["CancelReason"]) + "]]></CancelReason>" + Environment.NewLine
                                //+ "<!-- 專案作廢核准文號 -->" + Environment.NewLine
                                + "<ReturnTaxDocumentNumber>" + Convert.ToString(dvResultM.Table.Rows[0]["ReturnTaxDocumentNumber"]) + "</ReturnTaxDocumentNumber>" + Environment.NewLine
                                + "</CancelInvoice>" + Environment.NewLine;

                    StreamWriter sw = new StreamWriter(sFPathN + sKind0up + "_" + MInvoiceNumber + ".XML");
                    sw.Write(strXMLAll);
                    sw.Close();

                    return(true);
                }
                else
                {
                    return(false);
                }
            }
Example #2
0
            //存證B2B-----S
            public bool ExXmlA0401(string A0401SN, string MInvoiceNumber, string sKind0up, string sKind0upAll, string sPgSN)
            {
                //要有Details才生成XML
                DataView dvResultD = Kind1SelectTbl2("", "A0401D", "MInvoiceNumber='" + MInvoiceNumber + "'", "DSequenceNumber", "");

                Console.WriteLine(MInvoiceNumber);
                if (dvResultD != null)
                {
                    NSysDB.XMLClass oXMLeParamts = new NSysDB.XMLClass();
                    string          sFPathN      = oXMLeParamts.GetParaXml("ExXMLPa");

                    DataView dvResultM = Kind1SelectTbl2("", sKind0upAll, "A0401SN='" + A0401SN + "'", "", "");
                    bool     validDate = ValidIsDate(Convert.ToString(dvResultM.Table.Rows[0]["MInvoiceDate"]));
                    if (!validDate)
                    {
                        GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, sKind0up, "日期過早,不上傳至turnkey,日期:" + Convert.ToString(dvResultM.Table.Rows[0]["MInvoiceDate"]), MInvoiceNumber, 23);
                        return(false);
                    }
                    string strXMLAll = "", strXMLM = "", strXMLD = "", strXMLA = "";
                    strXMLM = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + Environment.NewLine
                              //+ "<Invoice xmlns=\"urn:GEINV:eInvoiceMessage:C0401:3.1\"/>" + Environment.NewLine
                              //+ "<Invoice xmlns=\"urn:GEINV:eInvoiceMessage:A0401:3.1\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"urn:GEINV:eInvoiceMessage:A0401:3.1\" elementFormDefault=\"qualified\" attributeFormDefault=\"unqualified\">" + Environment.NewLine
                              + "<Invoice xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"urn:GEINV:eInvoiceMessage:A0401:3.1\" xsi:schemaLocation=\"urn:GEINV:eInvoiceMessage:A0401:3.1 A0401.xsd\" >" + Environment.NewLine
                              //+ "<!-- 開立發票 A0401-->" + Environment.NewLine
                              + "<Main>" + Environment.NewLine
                              //+ "<!-- 發票號碼 -->" + Environment.NewLine
                              + "<InvoiceNumber>" + Convert.ToString(dvResultM.Table.Rows[0]["MInvoiceNumber"]) + "</InvoiceNumber>" + Environment.NewLine
                              //+ "<!-- 發票日期 -->" + Environment.NewLine
                              + "<InvoiceDate>" + Convert.ToString(dvResultM.Table.Rows[0]["MInvoiceDate"]) + "</InvoiceDate>" + Environment.NewLine
                              //+ "<!-- 發票時間 -->" + Environment.NewLine
                              + "<InvoiceTime>" + Convert.ToString(dvResultM.Table.Rows[0]["MInvoiceTime"]) + "</InvoiceTime>" + Environment.NewLine
                              //+ "<!-- 賣方 -->" + Environment.NewLine
                              + "<Seller>" + Environment.NewLine
                              //+ "<!-- 賣方 營業人統一編號 -->" + Environment.NewLine
                              + "<Identifier>" + Convert.ToString(dvResultM.Table.Rows[0]["MSIdentifier"]) + "</Identifier>" + Environment.NewLine
                              //+ "<!-- 賣方 營業人名稱 -->" + Environment.NewLine
                              + "<Name>" + Convert.ToString(dvResultM.Table.Rows[0]["MSName"]) + "</Name>" + Environment.NewLine
                              //+ "<!-- 賣方 營業人地址 -->" + Environment.NewLine 20171116 append by 俊晨
                              + "<Address>" + Convert.ToString(dvResultM.Table.Rows[0]["MSAddress"]) + "</Address>" + Environment.NewLine
                              //+ "<!-- 賣方 營業人負責人姓名 -->" + Environment.NewLine 20171116 append by 俊晨
                              + "<PersonInCharge>" + Convert.ToString(dvResultM.Table.Rows[0]["MSPersonInCharge"]) + "</PersonInCharge>" + Environment.NewLine

                              #region 因稅籍檔並未有電話與傳真 自我檢測時至將會無法通過 先註解 需要再解除註解 20171116 append by 俊晨

                              /*
                               * //+ "<!-- 賣方 營業人電話 -->" + Environment.NewLine 20171116 append by 俊晨
                               + "<TelephoneNumber>" + Convert.ToString(dvResultM.Table.Rows[0]["MSTelephoneNumber"]) + "</TelephoneNumber>" + Environment.NewLine
                               + //+ "<!-- 賣方 營業人傳真 -->" + Environment.NewLine 20171116 append by 俊晨
                               + "<FacsimileNumber>" + Convert.ToString(dvResultM.Table.Rows[0]["MSFacsimileNumber"]) + "</FacsimileNumber>" + Environment.NewLine
                               */

                              #endregion 因稅籍檔並未有電話與傳真 自我檢測時至將會無法通過 先註解 需要再解除註解 20171116 append by 俊晨

                              + "</Seller>" + Environment.NewLine
                              //+ "<!-- 買方 -->" + Environment.NewLine
                              + "<Buyer>" + Environment.NewLine
                              //+ "<!-- B2B 買方-營業人統一編號  B2C買方則填入10個0 -->" + Environment.NewLine
                              + "<Identifier>" + Convert.ToString(dvResultM.Table.Rows[0]["MBIdentifier"]) + "</Identifier>" + Environment.NewLine
                              //+ "<!-- B2B 買方-營業人名稱  B2C買方則填入4個0 -->" + Environment.NewLine
                              //+ "<Name><![CDATA[" + Convert.ToString(dvResultM.Table.Rows[0]["MBName"]) + "]]></Name>" + Environment.NewLine
                              + "<Name><![CDATA[" + ConvertStringToBig5(Convert.ToString(dvResultM.Table.Rows[0]["MBName"])) + "]]></Name>" + Environment.NewLine
                              + "</Buyer>" + Environment.NewLine
                              //+ "<!-- 發票類別 -->" + Environment.NewLine
                              + "<InvoiceType>" + Convert.ToString(dvResultM.Table.Rows[0]["MInvoiceType"]) + "</InvoiceType>" + Environment.NewLine
                              //+ "<!-- 捐贈註記 -->" + Environment.NewLine
                              + "<DonateMark>" + Convert.ToString(dvResultM.Table.Rows[0]["MDonateMark"]) + "</DonateMark>" + Environment.NewLine
                              + "</Main>" + Environment.NewLine
                              + "<Details>" + Environment.NewLine;

                    int sumAmount = 0;
                    for (int i = 0; i < dvResultD.Count; i++)
                    {
                        strXMLD += "<ProductItem>" + Environment.NewLine
                                   //+ "<!-- 品名 -->" + Environment.NewLine
                                   + "<Description><![CDATA[" + Convert.ToString(dvResultD.Table.Rows[i]["DDescription"]) + "]]></Description>" + Environment.NewLine
                                   //+ "<!-- 數量 -->" + Environment.NewLine
                                   + "<Quantity>" + Convert.ToString(dvResultD.Table.Rows[i]["DQuantity"]) + "</Quantity>" + Environment.NewLine
                                   //+ "<!-- 單價 -->" + Environment.NewLine
                                   + "<UnitPrice>" + Convert.ToString(dvResultD.Table.Rows[i]["DUnitPrice"]) + "</UnitPrice>" + Environment.NewLine
                                   //+ "<!-- 金額 -->" + Environment.NewLine
                                   + "<Amount>" + Convert.ToString(dvResultD.Table.Rows[i]["DAmount"]) + "</Amount>" + Environment.NewLine
                                   //+ "<!-- 明細排列序號 -->" + Environment.NewLine
                                   + "<SequenceNumber>" + Convert.ToString(dvResultD.Table.Rows[i]["DSequenceNumber"]) + "</SequenceNumber>" + Environment.NewLine
                                   + "</ProductItem>" + Environment.NewLine;
                        if (string.IsNullOrEmpty(Convert.ToString(dvResultD.Table.Rows[i]["DAmount"])))
                        {
                            throw new Exception("明細 單品項金額為空值,停止XML生成作業。");
                        }
                        sumAmount += Convert.ToInt32(dvResultD.Table.Rows[i]["DAmount"]);
                    }

                    #region 判斷金額總計是否相符

                    int totalAmount = (Convert.ToInt32(dvResultM.Table.Rows[0]["ATotalAmount"]));
                    if ((sumAmount + Convert.ToInt32(dvResultM.Table.Rows[0]["ATaxAmount"])) != totalAmount)
                    {
                        throw new Exception(
                                  string.Format(
                                      @"金額總計與明細不相符,停止XML生成作業<br/> 
                                {0} {1}:  
                                
                                明細金額:{2} <br/> 
                                稅額:{3} <br/> 
                                加總金額: {4}",
                                      sKind0up, Convert.ToString(dvResultM.Table.Rows[0]["MInvoiceNumber"]), sumAmount, Convert.ToInt32(dvResultM.Table.Rows[0]["ATaxAmount"]), totalAmount));
                    }

                    #endregion 判斷金額總計是否相符

                    //DAmount 加總 == (TotalAmount+ATaxAmount)

                    #region 判斷發票稅別是否為空值

                    if (string.IsNullOrEmpty(Convert.ToString(dvResultM.Table.Rows[0]["ATaxType"])))
                    {
                        throw new Exception(sKind0up + ":" + Convert.ToString(dvResultM.Table.Rows[0]["MInvoiceNumber"]) + "發票稅別為空值,停止XML生成作業。");
                    }

                    #endregion 判斷發票稅別是否為空值

                    strXMLA = "</Details>" + Environment.NewLine
                              + "<Amount>" + Environment.NewLine
                              //+ "<!-- 銷售額合計(新台幣)B2B:未稅  B2C:內含稅 -->" + Environment.NewLine
                              + "<SalesAmount>" + Convert.ToString(dvResultM.Table.Rows[0]["ASalesAmount"]) + "</SalesAmount>" + Environment.NewLine
                              //+ "<!-- 課稅別 -->" + Environment.NewLine
                              + "<TaxType>" + Convert.ToString(dvResultM.Table.Rows[0]["ATaxType"]) + "</TaxType>" + Environment.NewLine
                              //+ "<!-- 稅率 -->" + Environment.NewLine
                              + "<TaxRate>" + Convert.ToString(dvResultM.Table.Rows[0]["ATaxRate"]) + "</TaxRate>" + Environment.NewLine
                              //+ "<!-- 營業稅 -->" + Environment.NewLine
                              + "<TaxAmount>" + Convert.ToString(dvResultM.Table.Rows[0]["ATaxAmount"]) + "</TaxAmount>" + Environment.NewLine
                              //+ "<!-- 總計 -->" + Environment.NewLine
                              + "<TotalAmount>" + Convert.ToString(dvResultM.Table.Rows[0]["ATotalAmount"]) + "</TotalAmount>" + Environment.NewLine
                              //+ "<!-- 扣抵金額 -->" + Environment.NewLine
                              + "<DiscountAmount>" + Convert.ToString(dvResultM.Table.Rows[0]["ADiscountAmount"]) + "</DiscountAmount>" + Environment.NewLine
                              //+ "<!-- 原幣金額 -->" + Environment.NewLine
                              + "<OriginalCurrencyAmount>" + Convert.ToString(dvResultM.Table.Rows[0]["AOriginalCurrencyAmount"]) + "</OriginalCurrencyAmount>" + Environment.NewLine
                              //+ "<!-- 匯率 -->" + Environment.NewLine
                              + "<ExchangeRate>" + Convert.ToString(dvResultM.Table.Rows[0]["AExchangeRate"]) + "</ExchangeRate>" + Environment.NewLine
                              //+ "<!-- 幣別 -->" + Environment.NewLine
                              + "<Currency>" + Convert.ToString(dvResultM.Table.Rows[0]["ACurrency"]) + "</Currency>" + Environment.NewLine
                              + "</Amount>" + Environment.NewLine
                              + "</Invoice>";

                    strXMLAll = strXMLM + strXMLD + strXMLA;
                    //Console.WriteLine(strXMLAll);
                    StreamWriter sw = new StreamWriter(sFPathN + sKind0up + "_" + MInvoiceNumber + ".XML");
                    sw.Write(strXMLAll);
                    sw.Close();

                    return(true);
                }
                else
                {
                    GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, sKind0up, "", MInvoiceNumber, 23);
                    return(false);
                }
            }
Example #3
0
            public bool ExXmlB0401(string B0401SN, string MInvoiceNumber, string sKind0up, string sKind0upAll, string sPgSN)
            {
                //要有Details才生成XML
                DataView dvResultD = Kind1SelectTbl2("", "B0401D", "MAllowanceNumber='" + MInvoiceNumber + "'", "DAllowanceSequenceNumber", "");

                Console.WriteLine(MInvoiceNumber);
                if (dvResultD != null)
                {
                    NSysDB.XMLClass oXMLeParamts = new NSysDB.XMLClass();
                    string          sFPathN      = oXMLeParamts.GetParaXml("ExXMLPa");

                    DataView dvResultM        = Kind1SelectTbl2("", sKind0upAll, "B0401SN='" + B0401SN + "'", "", "");
                    bool     validInvoiceDate = ValidIsDate(Convert.ToString(dvResultM.Table.Rows[0]["MAllowanceDate"]));
                    if (!validInvoiceDate)
                    {
                        GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, sKind0up, "折讓證明單日期過早,不上傳至turnkey,日期:" + Convert.ToString(dvResultM.Table.Rows[0]["MAllowanceDate"]), MInvoiceNumber, 23);
                        return(false);
                    }
                    string strXMLAll = "", strXMLM = "", strXMLD = "", strXMLA = "";
                    strXMLM = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + Environment.NewLine
                              //+ "<Invoice xmlns=\"urn:GEINV:eInvoiceMessage:C0401:3.1\"/>" + Environment.NewLine
                              //+ "<Invoice xmlns=\"urn:GEINV:eInvoiceMessage:B0401:3.1\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"urn:GEINV:eInvoiceMessage:B0401:3.1\" elementFormDefault=\"qualified\" attributeFormDefault=\"unqualified\">" + Environment.NewLine
                              + "<Allowance xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"urn:GEINV:eInvoiceMessage:B0401:3.1\" xsi:schemaLocation=\"urn:GEINV:eInvoiceMessage:B0401:3.1 B0401.xsd\" >" + Environment.NewLine
                              //+ "<!-- 開立折讓證明單|傳送折讓證明 B0401-->" + Environment.NewLine
                              + "<Main>" + Environment.NewLine
                              //+ "<!-- 折讓證明單號碼 -->" + Environment.NewLine
                              + "<AllowanceNumber>" + Convert.ToString(dvResultM.Table.Rows[0]["MAllowanceNumber"]) + "</AllowanceNumber>" + Environment.NewLine
                              //+ "<!-- 折讓證明單日期 -->" + Environment.NewLine
                              + "<AllowanceDate>" + Convert.ToString(dvResultM.Table.Rows[0]["MAllowanceDate"]) + "</AllowanceDate>" + Environment.NewLine
                              //+ "<!-- 賣方 -->" + Environment.NewLine
                              + "<Seller>" + Environment.NewLine
                              //+ "<!-- 賣方 營業人統一編號 -->" + Environment.NewLine
                              + "<Identifier>" + Convert.ToString(dvResultM.Table.Rows[0]["MSIdentifier"]) + "</Identifier>" + Environment.NewLine
                              //+ "<!-- 賣方 營業人名稱 -->" + Environment.NewLine
                              + "<Name>" + Convert.ToString(dvResultM.Table.Rows[0]["MSName"]) + "</Name>" + Environment.NewLine
                              + "</Seller>" + Environment.NewLine
                              //+ "<!-- 買方 -->" + Environment.NewLine
                              + "<Buyer>" + Environment.NewLine
                              //+ "<!-- B2B 買方-營業人統一編號  B2C買方則填入10個0 -->" + Environment.NewLine
                              + "<Identifier>" + Convert.ToString(dvResultM.Table.Rows[0]["MBIdentifier"]) + "</Identifier>" + Environment.NewLine
                              //+ "<!-- B2B 買方-營業人名稱  B2C買方則填入4個0 -->" + Environment.NewLine
                              + "<Name>" + Convert.ToString(dvResultM.Table.Rows[0]["MBName"]) + "</Name>" + Environment.NewLine
                              + "</Buyer>" + Environment.NewLine
                              //+ "<!-- 折讓種類 -->" + Environment.NewLine
                              + "<AllowanceType>" + Convert.ToString(dvResultM.Table.Rows[0]["MAllowanceType"]) + "</AllowanceType>" + Environment.NewLine
                              + "</Main>" + Environment.NewLine
                              + "<Details>" + Environment.NewLine;

                    for (int i = 0; i < dvResultD.Count; i++)
                    {
                        if (string.IsNullOrEmpty(Convert.ToString(dvResultD.Table.Rows[i]["DTaxType"])))
                        {
                            throw new Exception(sKind0up + ":" + Convert.ToString(dvResultM.Table.Rows[0]["MAllowanceNumber"]) + "發票稅別為空值,停止XML生成作業。");
                        }

                        strXMLD += "<ProductItem>" + Environment.NewLine
                                   //+ "<!-- 原發票日期 -->" + Environment.NewLine
                                   + "<OriginalInvoiceDate>" + Convert.ToString(dvResultD.Table.Rows[i]["DOriginalInvoiceDate"]) + "</OriginalInvoiceDate>" + Environment.NewLine
                                   //+ "<!-- 原發票號碼 -->" + Environment.NewLine
                                   + "<OriginalInvoiceNumber>" + Convert.ToString(dvResultD.Table.Rows[i]["DOriginalInvoiceNumber"]) + "</OriginalInvoiceNumber>" + Environment.NewLine
                                   //+ "<!-- 原品名 -->" + Environment.NewLine
                                   + "<OriginalDescription>" + Convert.ToString(dvResultD.Table.Rows[i]["DOriginalDescription"]) + "</OriginalDescription>" + Environment.NewLine
                                   //+ "<!-- 數量 -->" + Environment.NewLine
                                   + "<Quantity>" + Convert.ToString(dvResultD.Table.Rows[i]["DQuantity"]) + "</Quantity>" + Environment.NewLine
                                   //+ "<!-- 單價 -->" + Environment.NewLine
                                   + "<UnitPrice>" + Convert.ToString(dvResultD.Table.Rows[i]["DUnitPrice"]) + "</UnitPrice>" + Environment.NewLine
                                   //+ "<!-- 金額(不含稅之進貨額) -->" + Environment.NewLine
                                   + "<Amount>" + Convert.ToString(dvResultD.Table.Rows[i]["DAmount"]) + "</Amount>" + Environment.NewLine
                                   //+ "<!-- 營業稅額 -->" + Environment.NewLine
                                   + "<Tax>" + Convert.ToString(dvResultD.Table.Rows[i]["DTax"]) + "</Tax>" + Environment.NewLine
                                   //+ "<!-- 折讓證明單明細排列序號 -->" + Environment.NewLine
                                   + "<AllowanceSequenceNumber>" + Convert.ToString(dvResultD.Table.Rows[i]["DAllowanceSequenceNumber"]) + "</AllowanceSequenceNumber>" + Environment.NewLine
                                   //+ "<!-- 課稅別 -->" + Environment.NewLine
                                   + "<TaxType>" + Convert.ToString(dvResultD.Table.Rows[i]["DTaxType"]) + "</TaxType>" + Environment.NewLine
                                   + "</ProductItem>" + Environment.NewLine;
                    }

                    strXMLA = "</Details>" + Environment.NewLine
                              + "<Amount>" + Environment.NewLine
                              //+ "<!-- 營業稅額合計 -->" + Environment.NewLine
                              + "<TaxAmount>" + Convert.ToString(dvResultM.Table.Rows[0]["ATaxAmount"]) + "</TaxAmount>" + Environment.NewLine
                              //+ "<!-- 金額(不含稅之進貨額)合計 -->" + Environment.NewLine
                              + "<TotalAmount>" + Convert.ToString(dvResultM.Table.Rows[0]["ATotalAmount"]) + "</TotalAmount>" + Environment.NewLine
                              + "</Amount>" + Environment.NewLine
                              + "</Allowance>";

                    strXMLAll = strXMLM + strXMLD + strXMLA;
                    //Console.WriteLine(strXMLAll);
                    StreamWriter sw = new StreamWriter(sFPathN + sKind0up + "_" + MInvoiceNumber + ".XML");
                    sw.Write(strXMLAll);
                    sw.Close();

                    return(true);
                }
                else
                {
                    GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, sKind0up, "", MInvoiceNumber, 23);
                    return(false);
                }
            }