public static string updateorcreatexeroinvoice(InvoiceReadOnly Uinvoice, string clientxeroid) { XeroCoreApi xeroapp = getxeroapp(); Xero.Api.Core.Model.Invoice Xinvoice = new Xero.Api.Core.Model.Invoice(); Xinvoice.Number = Uinvoice.Number; Xero.Api.Core.Model.Contact Xcontact = xeroapp.Contacts.Find(new Guid(clientxeroid)); Xinvoice.Contact = Xcontact; Xinvoice.Date = Convert.ToDateTime(Uinvoice.CreatedDate); Xinvoice.Type = Xero.Api.Core.Model.Types.InvoiceType.AccountsReceivable; Xinvoice.LineAmountTypes = Xero.Api.Core.Model.Types.LineAmountType.Inclusive; Xinvoice.Status = Xero.Api.Core.Model.Status.InvoiceStatus.Authorised; Xinvoice.DueDate = Convert.ToDateTime(Uinvoice.DueDate); List <LineItem> Xiilist = new List <LineItem>(); foreach (InvoiceItemReadOnly uii in Uinvoice.Items) { Xero.Api.Core.Model.LineItem xii = new Xero.Api.Core.Model.LineItem(); xii.Quantity = Convert.ToDecimal(uii.Quantity); xii.Description = uii.Label; xii.UnitAmount = Convert.ToDecimal(uii.Price); xii.LineAmount = Convert.ToDecimal(uii.Total); xii.AccountCode = "200"; Xiilist.Add(xii); } Xinvoice.LineItems = Xiilist; Xero.Api.Core.Model.Invoice Xinvoicereturned = xeroapp.Update(Xinvoice); UnmsInvoice UXinvoice = new UnmsInvoice(); InvoiceAttribute newUcrmAttribute = new InvoiceAttribute() { CustomAttributeId = UNMSHelper.getcustomattributeid("xeroIdinvoice"), Value = Xinvoicereturned.Id.ToString() }; List <InvoiceAttribute> newlistattributes = new List <InvoiceAttribute>(); newlistattributes.Add(newUcrmAttribute); UXinvoice.attributes = newlistattributes; HTTPHelper.httpPatch("invoices" + "/" + Uinvoice.Id, UXinvoice); return(Xinvoice.Id.ToString()); }
private void btnInvoice_Click(object sender, EventArgs e) { var invoiceTime = Stopwatch.StartNew(); Invoice invoice = new Invoice(); invoice.LineItems = new List<LineItem>(); LineItem item = new LineItem(); item.Quantity = Convert.ToDecimal(txtQuantity.Text); item.UnitAmount = Convert.ToDecimal(txtUnitAmount.Text); item.Description = txtInvoiceDescription.Text; item.AccountCode = "200"; item.ItemCode = txtItemCode.Text.Trim(); invoice.LineItems.Add(item); txtPaidAmount.Text = (item.Quantity * item.UnitAmount).ToString(); invoice.Date = DateTime.Now; invoice.DueDate = DateTime.Now.AddDays(3); invoice.Type = InvoiceType.AccountsReceivable; invoice.Status = InvoiceStatus.Authorised; invoice.LineAmountTypes = LineAmountType.Inclusive; XeroAPI xeroapi = new XeroAPI(api); string contactId = txtContactId.Text; lblInvoiceID.Text = xeroapi.InvoiceCreate(invoice, contactId); invoiceTime.Stop(); lblInvoiceTime.Text = "Execute time: " + invoiceTime.Elapsed.TotalSeconds.ToString() + "s"; }
public Invoice convert(InvoiceViewModel invoiceViewModel) { ContactViewModelToContactConverter contactConverter = new ContactViewModelToContactConverter(); Invoice invoice = new Invoice(); if (!(string.IsNullOrEmpty(invoiceViewModel.BrandingThemeId))) { try { invoice.BrandingThemeId = Guid.Parse(invoiceViewModel.BrandingThemeId); } catch (ArgumentNullException) { throw new BrandingThemeIsNullException("Branding theme can not be empty"); } catch (FormatException) { throw new BrandingThemeIdIsNotVallid("Branding theme id is not a vallid branding theme id"); } } invoice.Contact = contactConverter.Convert(invoiceViewModel.Contact); if(!(string.IsNullOrEmpty(invoiceViewModel.CurrencyCode))) { invoice.CurrencyCode = invoiceViewModel.CurrencyCode; } invoice.Date = invoiceViewModel.Date; invoice.DueDate = invoiceViewModel.DueDate; List<LineItem> lineItemList = new List<LineItem>(); ItemTrackingCategory itemTrackingCategory = new ItemTrackingCategory(); itemTrackingCategory.Name = invoiceViewModel.TrackingName; itemTrackingCategory.Option = invoiceViewModel.TrackingOption; ItemTracking itemTraking = new ItemTracking() { itemTrackingCategory }; string taxType = null; if (invoiceViewModel.TaxType == "15% GST on Income") { taxType = "OUTPUT2"; } if (invoiceViewModel.TaxType == "No GST") { taxType = "NONE"; } if (invoiceViewModel.TaxType == "15% GST on Expenses") { taxType = "INPUT2"; } LineItem lineItem = new LineItem(); lineItem.Description = invoiceViewModel.Description; if (invoiceViewModel.DiscountRate > 0) { lineItem.DiscountRate = invoiceViewModel.DiscountRate; } //lineItem.ItemCode = invoiceViewModel.ItemCode; lineItem.ItemCode = "GB3-White"; lineItem.Quantity = invoiceViewModel.Quantity; lineItem.TaxType = taxType; lineItem.Tracking = itemTraking; lineItem.UnitAmount = invoiceViewModel.UnitAmount; lineItem.AccountCode = invoiceViewModel.AccountCode; lineItemList.Add(lineItem); invoice.Items = lineItemList; invoice.Number = invoiceViewModel.Number; invoice.Reference = invoiceViewModel.Reference; invoice.Status = InvoiceStatus.Draft; if (invoiceViewModel.typeOfInvoice == "ACCPAY") { invoice.Type = InvoiceType.AccountsPayable; } if (invoiceViewModel.typeOfInvoice == "ACCREC") { invoice.Type = InvoiceType.AccountsReceivable; } if (invoiceViewModel.typeOfInvoice == "ACCREC") { invoice.Type = InvoiceType.AccountsReceivable; CreditNote cr = new CreditNote(); } return invoice; }