Getting Validation exception error while trying to post a service bill using .Net SDK API
Hi Guys,
I am trying to post a purchase bill service using .Net SDK. Getting a validation exception error. So far I was unable to figure out why. Can anybody guide me on this? Here's the code that I am using.
//Create new invoice of type Purchase(Bill)/Service
var billService = new ServiceBillService(GlobalConfig.ConfigurationLocal);
var serviceBill = new ServiceBill();
var supplierLink = new SupplierLink();
Guid supplierGuid = new Guid(supplierGuidString); // Ensure UID is of existing supplier
//Add supplier to invoice, add invoice number and date
supplierLink.UID = supplierGuid;
serviceBill.Supplier = supplierLink;
serviceBill.SupplierInvoiceNumber = master.InvoiceNo;
serviceBill.Date = DateTime.ParseExact(master.Date, "d", null);
//'Create list of invoice lines
var lines = new List<ServiceBillLine>();
foreach (var d in details)
{
//Add Line details
var line = new ServiceBillLine();
line.Type = InvoiceLineType.Transaction;
var accountLink = new AccountLink();
accountLink.UID = d.AccountUID;
var jobLink = new JobLink();
jobLink.UID = d.JobUID;
var taxCodeLink = new TaxCodeLink();
taxCodeLink.UID = d.TaxUID;
line.Account = accountLink;
line.Description = d.Description;
line.Job = jobLink;
line.TaxCode = taxCodeLink;
line.Total = d.Amount;
//Add line details to list of invoice line
lines.Add(line);
}
//Add service lines to service bill
serviceBill.Lines = lines;
//Push new invoice details (service bill) through to cf using insert method from the bill service
billService.Insert(GlobalConfig.CompanyFile, serviceBill, GlobalConfig.CompanyFileCredentials);
What am I doing here wrong?
Thanks
Sajju
I don't think those fields are required but you could try.
My guess is that it it something to do with the line.Total. I think this is restricted to 2 decimal places.
I haven't tried this with validation errors but I think if you cast your exception to ApiValidationException then you can access a collection of errors which may give you more information. Something like this:
System.Collections.Generic.IList<MYOB.AccountRight.SDK.Error> ErrList = ((ApiValidationException)(TheException)).Errors;