static void deleteItemsTest()
{
try
{
SalesAPI api = new SalesAPI();
pcAmerica.DesktopPOS.API.Client.SalesService.Context context = new pcAmerica.DesktopPOS.API.Client.SalesService.Context();
context.CashierID = "100101";
context.StoreID = "1001";
context.StationID = "01";
// StartNewInvoice - this also automatically locks an invoice so it can't be opened by a terminal
Invoice inv = api.StartNewInvoice(context, "ROB" + DateTime.Now.Ticks.ToString(), "XXOPEN TABS");
Console.WriteLine(String.Format("Started new invoice with #: {0}", inv.InvoiceNumber));
// Unlock Invoice
/*if (api.UnLockInvoice(context, inv.InvoiceNumber))
Console.WriteLine(String.Format("Unlocked invoice # {0}", inv.InvoiceNumber));
else
Console.WriteLine(String.Format("Failed to unlock invoice # {0}", inv.InvoiceNumber));*/
// Lock Invoice
if (api.LockInvoice(context, inv.InvoiceNumber))
Console.WriteLine(String.Format("Locked invoice # {0}", inv.InvoiceNumber));
else
Console.WriteLine(String.Format("Failed to lock invoice # {0}", inv.InvoiceNumber));
// GetInvoiceHeader
inv = api.GetInvoiceHeader(context, inv.InvoiceNumber);
Console.WriteLine(String.Format("GetInvoiceHeader with #: {0}", inv.InvoiceNumber));
// GetInvoice
inv = api.GetInvoice(context, inv.InvoiceNumber);
Console.WriteLine(String.Format("GetInvoice with #: {0}", inv.InvoiceNumber));
InventoryAPI InvApi = new InventoryAPI();
pcAmerica.DesktopPOS.API.Client.InventoryService.Context InvContext = new pcAmerica.DesktopPOS.API.Client.InventoryService.Context();
InvContext.CashierID = "100101";
InvContext.StationID = "01";
InvContext.StoreID = "1001";
Guid parentGuid = new Guid();
// ModifyItems
inv.LineItems.Add(new LineItem() { Id = parentGuid, ItemName = "BURGER", ItemNumber = "SAND1", Price = 1.99M, Quantity = 2, State = EntityState.Added });
inv.LineItems.Add(new LineItem() { Id = Guid.NewGuid(), ItemName = "Add Tomato", ItemNumber = "SANDMod3", Price = 0.10M, Quantity = 1, State = EntityState.Added, ParentId = parentGuid });
inv.LineItems.Add(new LineItem() { Id = Guid.NewGuid(), ItemName = "BURGER", ItemNumber = "SAND1", Price = 1.99M, Quantity = 1, State = EntityState.Added });
api.UnLockInvoice(context, inv.InvoiceNumber);
api.LockInvoice(context, inv.InvoiceNumber);
inv = api.ModifyItems(context, inv.InvoiceNumber, inv.LineItems);
Invoice inv2 = api.GetInvoice(context, inv.InvoiceNumber);
Console.WriteLine(String.Format("ModifyItems new invoice value: {0}", inv2.GrandTotal));
//inv2.LineItems[0].State = EntityState.Deleted;
//inv2.LineItems[1].State = EntityState.Deleted;
inv2 = api.ModifyItems(context, inv2.InvoiceNumber, inv2.LineItems);
Console.WriteLine(String.Format("ModifyItems new invoice value after deleting burger with tomato: {0}", inv2.GrandTotal));
api.LockInvoice(context, inv2.InvoiceNumber);
// ApplyCashPayment - applying grand total minus 1 dollar
AppliedPaymentResponse payResponse = api.ApplyCashPayment(context, inv2.InvoiceNumber, -1, inv2.GrandTotal);
if (payResponse.Success)
Console.WriteLine(String.Format("Applied cash payment, change due {0}", payResponse.ChangeAmount));
else
Console.WriteLine("***ERROR*** Could not apply payment");
// EndInvoice
if (api.EndInvoice(context, inv2.InvoiceNumber))
Console.WriteLine("Ended invoice successfully");
else
Console.WriteLine("***ERROR*** Could not end invoice");
// PrintReceipt - providing -1 for the split check # when there are no split checks
if (api.PrintReceipt(context, inv2.InvoiceNumber, -1))
Console.WriteLine("Receipt was printed");
else
Console.WriteLine("***ERROR*** Receive was NOT printed");
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
finally
{
Console.WriteLine("PRESS ENTER TO CONTINUE...");
Console.ReadLine();
}
}