Exemple #1
0
 public CreditNote Update(CreditNote item)
 {
     return CreditNotes.Update(item);
 }
Exemple #2
0
 public CreditNote Create(CreditNote item)
 {
     return CreditNotes.Create(item);
 }
Exemple #3
0
 public Task<CreditNote> CreateAsync(CreditNote item)
 {
     return CreditNotes.CreateAsync(item);
 }
Exemple #4
0
 public Task<CreditNote> UpdateAsync(CreditNote item)
 {
     return CreditNotes.UpdateAsync(item);
 }
        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;
        }