private static void AddSalesOrderHeader(SalesOrder order, SPList salesOrderList) { var salesOrder = salesOrderList.AddItem(); salesOrder["Title"] = order.Customer.Name + "_" + order.OrderDate.ToString("yyyy-MM-dd"); salesOrder["OrderDate"] = order.OrderDate; salesOrder["Status"] = order.Status.ToString(); salesOrder["Customer"] = order.Customer.CustomerId; salesOrder.Update(); }
private static void GetOrderLines(SPList orderLineList, SalesOrder salesOrder) { var lineQuery = new SPQuery(); lineQuery.Query = "<Where><Eq><FieldRef Name='SalesOrder' LookupId='TRUE' /><Value Type='Lookup' >" + salesOrder.SalesOrderId + "</Value></Eq></Where>"; var orderLines = orderLineList.GetItems(lineQuery); foreach (SPListItem line in orderLines) { salesOrder.Lines.Add(new OrderLine { Product = line.Title, Price = (double)line["Price"], Quantity = Convert.ToInt32(line["Quantity"]) }); } }
public void Add(SalesOrder order) { var web = SPContext.Current.Web; var salesOrderList = web.Lists[SalesOrderListName]; var orderLineList = web.Lists[OrderLinesListName]; AddSalesOrderHeader(order, salesOrderList); foreach (var line in order.Lines) { AddOrderLine(orderLineList, line); } }
public void CanCreateSalesOrder() { using (var context = new SPEmulationContext(Settings.Default.IsolationLevel, Settings.Default.Url)) { var salesOrderList = context.GetOrCreateList( SalesOrderListRepository.SalesOrderListName, SPListTemplateType.GenericList, "OrderDate", "Customer", "Status"); var orderLinesList = context.GetOrCreateList( SalesOrderListRepository.OrderLinesListName, SPListTemplateType.GenericList, "SalesOrder", "Price", "Quantity"); var repository = new SalesOrderListRepository(); var customer = new Customer { CustomerId = 2, Name = "Customer 2" }; var order = new SalesOrder { SalesOrderId = 0, Customer = customer, OrderDate = DateTime.Today, Status = OrderStatus.New }; order.Lines.Add(new OrderLine { Product = "Product 1", Quantity = 5, Price = 5.5 }); order.Lines.Add(new OrderLine { Product = "Product 2", Quantity = 2, Price = 106.5 }); int salesOrderCount = salesOrderList.ItemCount; int orderLineCount = orderLinesList.ItemCount; repository.Add(order); Assert.AreEqual<int>(salesOrderCount + 1, salesOrderList.Items.Count); Assert.AreEqual<int>(orderLineCount + 2, orderLinesList.Items.Count); } }
public void Add(SalesOrder order) { salesOrders.Add(order); }