xero备份

20120921

old

// ******* TODO:  The Offical Post Invoice List Function ******* 
        public void PostInvoices(List<SenddrInvoice.senddr.invoice> _ListSenddr)
        {

            using (var sw = new StringWriter())
            {
                using (var xw = XmlWriter.Create(sw))
                {
                    // Build Xml with xw.
                    xw.WriteStartDocument();
                    xw.WriteStartElement("Invoices");

                    foreach (var senddr in _ListSenddr)
                    {
                        xw.WriteStartElement("Invoice");

                            //xw.WriteElementString("Type", senddr.invoice_header.xml_invoice_type.Equals(String.Empty) ? "" : senddr.invoice_header.xml_invoice_type);
                            xw.WriteElementString("Type", "ACCREC");


                        #region Contact Elements Area
                        xw.WriteStartElement("Contact");
                        xw.WriteElementString("ContactNumber", senddr.invoice_company.company_telephone.Equals(String.Empty) ? "" : senddr.invoice_company.company_telephone);
                        xw.WriteElementString("Name", senddr.invoice_company.company_name.Equals(String.Empty) ? "" : senddr.invoice_company.company_name);
                        xw.WriteElementString("ContactStatus", senddr.invoice_company.xml_status.Equals(String.Empty) ? "" : senddr.invoice_company.xml_status);
                        xw.WriteElementString("EmailAddress", senddr.invoice_company.company_email.Equals(String.Empty) ? "" : senddr.invoice_company.company_email);
                        xw.WriteElementString("SkypeUserName", String.Empty);
                        xw.WriteElementString("BankAccountDetails", String.Empty);
                        xw.WriteElementString("TaxNumber", senddr.invoice_company.tax_reference.Equals(String.Empty) ? "" : senddr.invoice_company.tax_reference);
                        xw.WriteElementString("AccountsReceivableTaxType", String.Empty);
                        xw.WriteElementString("AccountsPayableTaxType", String.Empty);
                        xw.WriteElementString("FirstName", senddr.invoice_company.company_person_firstname.Equals(String.Empty) ? "" : senddr.invoice_company.company_person_firstname);
                        xw.WriteElementString("LastName", senddr.invoice_company.company_person_secondname.Equals(String.Empty) ? "" : senddr.invoice_company.company_person_secondname);
                        xw.WriteElementString("DefaultCurrency", senddr.invoice_company.currency_code.Equals(String.Empty) ? "" : senddr.invoice_company.currency_code);


                        xw.WriteStartElement("Addresses");
                        xw.WriteStartElement("Address");
                        xw.WriteElementString("AddressType", String.Empty);
                        xw.WriteElementString("AttentionTo", String.Empty);
                        xw.WriteElementString("AddressLine1", senddr.invoice_company.address1.Equals(String.Empty) ? "" : senddr.invoice_company.address1);
                        xw.WriteElementString("AddressLine2", senddr.invoice_company.address2.Equals(String.Empty) ? "" : senddr.invoice_company.address2);
                        xw.WriteElementString("AddressLine3", senddr.invoice_company.address3.Equals(String.Empty) ? "" : senddr.invoice_company.address3);
                        xw.WriteElementString("AddressLine4", senddr.invoice_company.address4.Equals(String.Empty) ? "" : senddr.invoice_company.address4);
                        xw.WriteElementString("City", String.Empty);
                        xw.WriteElementString("Region", String.Empty);
                        xw.WriteElementString("PostalCode", senddr.invoice_company.postcode.Equals(String.Empty) ? "" : senddr.invoice_company.postcode);
                        xw.WriteElementString("Country", senddr.invoice_company.country_code.Equals(String.Empty) ? "" : senddr.invoice_company.country_code);
                        xw.WriteEndElement();
                        xw.WriteEndElement();

                        xw.WriteStartElement("Phones");
                        xw.WriteStartElement("Phone");
                        xw.WriteElementString("PhoneType", "DEFAULT");
                        xw.WriteElementString("PhoneNumber", senddr.invoice_company.company_telephone.Equals(String.Empty) ? "" : senddr.invoice_company.company_telephone);
                        xw.WriteElementString("PhoneAreaCode", String.Empty);
                        xw.WriteElementString("PhoneCountryCode", String.Empty);
                        xw.WriteEndElement();
                        xw.WriteStartElement("Phone");
                        xw.WriteElementString("PhoneType", "FAX");
                        xw.WriteElementString("PhoneNumber", senddr.invoice_company.company_fax.Equals(String.Empty) ? "" : senddr.invoice_company.company_fax);
                        xw.WriteElementString("PhoneAreaCode", String.Empty);
                        xw.WriteElementString("PhoneCountryCode", String.Empty);
                        xw.WriteEndElement();
                        xw.WriteEndElement();



                            xw.WriteEndElement();
                        #endregion

                            //xw.WriteElementString("Date", senddr.invoice_header.invoice_date.Equals(String.Empty) ? "" : senddr.invoice_header.invoice_date.ToShortDateString().Replace('/','-'));
                            //xw.WriteElementString("DueDate", senddr.invoice_header.invoice_due_date.Equals(String.Empty) ? "" : senddr.invoice_header.invoice_due_date.ToShortDateString().Replace('/','-'));

                            xw.WriteElementString("Date", "2012-09-13");
                            xw.WriteElementString("DueDate", "2012-12-25");


                            xw.WriteElementString("InvoiceNumber", senddr.invoice_header.invoice_number.Equals(String.Empty) ? "" : senddr.invoice_header.invoice_number);
                            xw.WriteElementString("Reference", String.Empty);
                            xw.WriteElementString("BrandingThemeID", String.Empty);
                            xw.WriteElementString("Url", senddr.invoice_header.document_url.Equals(String.Empty) ? "" : senddr.invoice_header.document_url);
                            xw.WriteElementString("CurrencyCode", senddr.invoice_header.currency_code.Equals(String.Empty) ? "" : senddr.invoice_header.currency_code);
                            //xw.WriteElementString("Status", senddr.invoice_header.xml_status.Equals(String.Empty) ? "" : senddr.invoice_header.xml_status);
                            //xw.WriteElementString("Status", "DRAFT");
                            //xw.WriteElementString("LineAmountTypes", "Exclusive"); // For Draft Invoices
                            xw.WriteElementString("SubTotal", senddr.invoice_header.invoice_net_amount.Equals(String.Empty) ? "" : senddr.invoice_header.invoice_net_amount.ToString());
                            xw.WriteElementString("TotalTax", senddr.invoice_header.invoice_tax_amount.Equals(String.Empty) ? "" : senddr.invoice_header.invoice_tax_amount.ToString());
                            xw.WriteElementString("Total", senddr.invoice_header.invoice_amount.Equals(String.Empty) ? "" : senddr.invoice_header.invoice_amount.ToString());

                            #region LineItems Elements Area

                            xw.WriteStartElement("LineItems");
                            foreach (var i in senddr.invoice_item)
                            {
                                xw.WriteStartElement("LineItem");
                                xw.WriteElementString("Description", i.invoice_item_desc.Equals(String.Empty) ? "" : i.invoice_item_desc);
                                xw.WriteElementString("Quantity", i.item_qty.Equals(String.Empty) ? "" : i.item_qty.ToString());
                                xw.WriteElementString("UnitAmount", i.invoice_item_amount.Equals(String.Empty) ? "" : i.invoice_item_amount.ToString());
                                xw.WriteElementString("TaxAmount", i.invoice_item_tax_amount.Equals(String.Empty) ? "" : i.invoice_item_tax_amount.ToString());
                                xw.WriteElementString("LineAmount", String.Empty);
                                xw.WriteElementString("AccountCode", i.account_code.Equals(String.Empty) ? "" : i.account_code);

                                xw.WriteEndElement();
                            }
                            xw.WriteEndElement();

                            #endregion



                            xw.WriteEndElement();
                    }

                    xw.WriteEndElement();
                    xw.WriteEndDocument();

                }
                //return sw.ToString();

                //String TestXML = sw.ToString();

                String postInvoiceResponse = CallTheXeroApi(Final_oauth_token, Final_oauth_secret, "https://api.xero.com/api.xro/2.0/Invoices", "POST", sw.ToString());

                if (postInvoiceResponse != string.Empty)
                {
                    var responseElement = XElement.Parse(postInvoiceResponse);
                    string statusCode = responseElement.XPathSelectElement("/Status").Value;

                    if (statusCode == "OK")
                    {
                        InvoiceCreateStatus = true;
                    }
                    else
                    {
                        InvoiceCreateStatus = false;
                    }
                }
            }

        }



new

  public void PostInvoicesTest(List<SenddrInvoice.senddr.invoice> _ListSenddr)
        {

            using (var sw = new StringWriter())
            {
                using (var xw = XmlWriter.Create(sw))
                {
                    // Build Xml with xw.
                    xw.WriteStartDocument();
                    xw.WriteStartElement("Invoices");
                    
                    foreach (var senddr in _ListSenddr)
                    {
                        xw.WriteStartElement("Invoice");

                        //if (!senddr.invoice_header.xml_invoice_type.Equals(String.Empty)) xw.WriteElementString("Type", senddr.invoice_header.xml_invoice_type);
                        xw.WriteElementString("Type", "ACCREC");


                        #region Contact Elements Area
                        xw.WriteStartElement("Contact");
                        xw.WriteElementString("Name", senddr.invoice_company.company_name.Equals(String.Empty) ? "" : senddr.invoice_company.company_name);


                        if (!senddr.invoice_company.company_telephone.Equals(String.Empty)) xw.WriteElementString("ContactNumber", senddr.invoice_company.company_telephone);
                        if (!senddr.invoice_company.xml_status.Equals(String.Empty)) xw.WriteElementString("ContactStatus", senddr.invoice_company.xml_status);
                        if (!senddr.invoice_company.company_email.Equals(String.Empty)) xw.WriteElementString("EmailAddress", senddr.invoice_company.company_email);
                        if (!senddr.invoice_company.tax_reference.Equals(String.Empty)) xw.WriteElementString("TaxNumber", senddr.invoice_company.tax_reference);
                        if (!senddr.invoice_company.company_person_firstname.Equals(String.Empty)) xw.WriteElementString("FirstName", senddr.invoice_company.company_person_firstname);
                        if (!senddr.invoice_company.company_person_secondname.Equals(String.Empty)) xw.WriteElementString("LastName", senddr.invoice_company.company_person_secondname);
                        if (!senddr.invoice_company.currency_code.Equals(String.Empty)) xw.WriteElementString("DefaultCurrency", senddr.invoice_company.currency_code);


                        xw.WriteStartElement("Addresses");
                        xw.WriteStartElement("Address");
                        if (!senddr.invoice_company.address1.Equals(String.Empty)) xw.WriteElementString("AddressLine1", senddr.invoice_company.address1);
                        if (!senddr.invoice_company.address2.Equals(String.Empty)) xw.WriteElementString("AddressLine2", senddr.invoice_company.address2);
                        if (!senddr.invoice_company.address3.Equals(String.Empty)) xw.WriteElementString("AddressLine3", senddr.invoice_company.address3);
                        if (!senddr.invoice_company.address4.Equals(String.Empty)) xw.WriteElementString("AddressLine4", senddr.invoice_company.address4);
                        if (!senddr.invoice_company.postcode.Equals(String.Empty)) xw.WriteElementString("PostalCode", senddr.invoice_company.postcode);
                        if (!senddr.invoice_company.country_code.Equals(String.Empty)) xw.WriteElementString("Country", senddr.invoice_company.country_code);
                        xw.WriteEndElement();
                        xw.WriteEndElement();

                        xw.WriteStartElement("Phones");
                        xw.WriteStartElement("Phone");
                        xw.WriteElementString("PhoneType", "DEFAULT");
                        if (!senddr.invoice_company.company_telephone.Equals(String.Empty)) xw.WriteElementString("PhoneNumber", senddr.invoice_company.company_telephone);

                        xw.WriteEndElement();
                        xw.WriteStartElement("Phone");
                        xw.WriteElementString("PhoneType", "FAX");
                        if (!senddr.invoice_company.company_fax.Equals(String.Empty)) xw.WriteElementString("PhoneNumber", senddr.invoice_company.company_fax);

                        xw.WriteEndElement();
                        xw.WriteEndElement();
                                    

                        xw.WriteEndElement();
                        #endregion

                        xw.WriteElementString("Date", String.Format("{0}-{1}-{2}",senddr.invoice_header.invoice_date.Year, senddr.invoice_header.invoice_date.Month, senddr.invoice_header.invoice_date.Day));
                        xw.WriteElementString("DueDate", String.Format("{0}-{1}-{2}",senddr.invoice_header.invoice_due_date.Year, senddr.invoice_header.invoice_due_date.Month, senddr.invoice_header.invoice_due_date.Day));
                        xw.WriteElementString("LineAmountTypes", "Exclusive");
                        
                        #region LineItems Elements Area

                        xw.WriteStartElement("LineItems");
                        foreach (var i in senddr.invoice_item)
                        {
                            xw.WriteStartElement("LineItem");
                            if (!i.invoice_item_desc.Equals(String.Empty)) xw.WriteElementString("Description", i.invoice_item_desc);
                            if (!i.item_qty.Equals(String.Empty)) xw.WriteElementString("Quantity", i.item_qty.ToString());
                            if (!i.invoice_item_amount.Equals(String.Empty)) xw.WriteElementString("UnitAmount", i.invoice_item_amount.ToString());
                            if (!i.account_code.Equals(String.Empty)) xw.WriteElementString("AccountCode", i.account_code);

                            xw.WriteEndElement();
                        }
                        xw.WriteEndElement();

                        #endregion

                        //Now the Invoice Type is Draft only
                        //xw.WriteElementString("Status", "AUTHORISED");
                          

                        xw.WriteEndElement();
                    }

                    xw.WriteEndElement();
                    xw.WriteEndDocument();

                }


                // For Post the generated XML to XML API
                String postInvoiceResponse = CallTheXeroApi(Final_oauth_token, Final_oauth_secret, "https://api.xero.com/api.xro/2.0/Invoices", "POST", sw.ToString());

                if (postInvoiceResponse != string.Empty)
                {
                    var responseElement = XElement.Parse(postInvoiceResponse);
                    string statusCode = responseElement.XPathSelectElement("/Status").Value;

                    if (statusCode == "OK")
                    {
                        InvoiceCreateStatus = true;
                    }
                    else
                    {
                        InvoiceCreateStatus = false;
                    }
                }
            }

        }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值