/// <summary> /// Adjust the provided SalesOrderItem instance by taking existing SalesOrderWorkItem /// instances into account. /// </summary> /// <param name="salesOrderWorkItemRepository">An ISalesOrderWorkItemRepository instance.</param> /// <param name="salesOrderItem">The SalesOrderWorkItem instance to adjust.</param> /// <param name="salesOrderItemLotNumber">The lot number of the sales order item.</param> /// <returns> /// An asynchronous Task that returns an adjusted SalesOrderWorkItem instance upon completion. /// </returns> private static async Task <SalesOrderItem> AdjustSalesOrderItem( ISalesOrderWorkItemRepository salesOrderWorkItemRepository, SalesOrderItem salesOrderItem, string salesOrderItemLotNumber ) { var workItems = await salesOrderWorkItemRepository.TryGetSalesOrderWorkItems( salesOrderItem.SalesOrderNumber, salesOrderItem.ItemNumber, salesOrderItemLotNumber ).ConfigureAwait(false); // Need to filter the workitems by OriginalSequence becuase we could have duplicate sales order items... workItems = workItems.Where(item => item.OriginalSequence == salesOrderItem.Seq).ToList(); var workItemSum = workItems.Sum(i => i.PickedQuantity); var workItemDeltaSum = workItems.Sum(i => i.QuantityDelta); var accountedForQuantity = workItemSum + workItemDeltaSum; // All items accounted for set item quantity to 0. if (accountedForQuantity == salesOrderItem.ItemQuantity) { salesOrderItem.ItemQuantity = 0; return(salesOrderItem); } salesOrderItem.ItemQuantity -= workItemSum + workItemDeltaSum; return(salesOrderItem); }
/** * Adds a `SalesOrderLine` to a `SalesOrder` object and populates it. * Note: * If the given `SalesOrderItem.ForFreight` property is 1, the amount is * is added to `SalesOrder.Freight` and no `SalesOrderLine` is added. * If the given `SalesOrderItem.ForHandling` property is 1, no `SalesOrderLine` * is added to the `SalesOrderLine`. */ private void AddLine(SalesOrder salesOrder, SalesOrderItem line) { if (line.ForFreight == 1) { salesOrder.FreightAmount = line.Amount; } else if (line.ForHandling != 1) { var _ = salesOrder.AddLine(); var itemReference = GetItemEntityReference(line.ItemCode); if (itemReference == null) { Logger.Debug("Item {@name} was not found in Sage.", line.ItemCode); Logger.Debug("Item {@name} needs to be created in Sage", line.ItemCode); return; } var item = LoadInventoryItem(itemReference); _.AccountReference = GetSalesAccountReference(item); _.Quantity = line.Qty; _.Description = GetLineDescription(line); _.UnitPrice = Decimal.Divide(line.Amount, line.Qty); // _.CalculateUnitCost(_.Quantity, _.Amount); _.Amount = _.CalculateAmount(_.Quantity, _.UnitPrice); _.InventoryItemReference = itemReference; } }
private static void SetOrderItem(SalesOrderItem orderItem, SetSalesOrderItemParameters newItem) { var contractItemKey = newItem.ContractItemKey; orderItem.ContractYear = contractItemKey == null ? (int?)null : contractItemKey.ContractKey_Year; orderItem.ContractSequence = contractItemKey == null ? (int?)null : contractItemKey.ContractKey_Sequence; orderItem.ContractItemSequence = contractItemKey == null ? (int?)null : contractItemKey.ContractItemKey_Sequence; orderItem.InventoryPickOrderItem.ProductId = newItem.ProductKey.ProductKey_ProductId; orderItem.InventoryPickOrderItem.PackagingProductId = newItem.PackagingProductKey.PackagingProductKey_ProductId; orderItem.InventoryPickOrderItem.TreatmentId = newItem.InventoryTreatmentKey.InventoryTreatmentKey_Id; orderItem.InventoryPickOrderItem.Quantity = newItem.SalesOrderItem.Quantity; orderItem.InventoryPickOrderItem.CustomerLotCode = newItem.SalesOrderItem.CustomerLotCode; orderItem.InventoryPickOrderItem.CustomerProductCode = newItem.SalesOrderItem.CustomerProductCode; orderItem.PriceBase = newItem.SalesOrderItem.PriceBase; orderItem.PriceFreight = newItem.SalesOrderItem.PriceFreight; orderItem.PriceTreatment = newItem.SalesOrderItem.PriceTreatment; orderItem.PriceWarehouse = newItem.SalesOrderItem.PriceWarehouse; orderItem.PriceRebate = newItem.SalesOrderItem.PriceRebate; if (orderItem.PickedItems != null) { foreach (var pickedItem in orderItem.PickedItems) { pickedItem.PickedInventoryItem.CustomerLotCode = orderItem.InventoryPickOrderItem.CustomerLotCode; pickedItem.PickedInventoryItem.CustomerProductCode = orderItem.InventoryPickOrderItem.CustomerProductCode; } } }
private SalesOrderItemList CreateItemList(List <MyOrderItem> orderItems) { List <SalesOrderItem> salesOrderItems = new List <SalesOrderItem>(); foreach (MyOrderItem orderItem in orderItems) { SalesOrderItem salesOrderItem = new SalesOrderItem() { item = new RecordRef() { internalId = orderItem.internal_id }, quantity = orderItem.qty, quantitySpecified = true, commitInventory = SalesOrderItemCommitInventory._availableQty, commitInventorySpecified = (orderItem.item_type == "Inventory Item" || orderItem.item_type == "Lot Numbered Assembly") ? true : false, rate = orderItem.salesPrice.ToString(), isTaxable = (orderItem.tax_amount > 0) ? true : false, isTaxableSpecified = true, price = new RecordRef() { type = RecordType.account, internalId = "-1", name = "Custom", } }; salesOrderItems.Add(salesOrderItem); } return(new SalesOrderItemList() { item = salesOrderItems.ToArray() }); }
public SalesOrderItem CreateSalesOrderItem(SalesOrderItem salesOrderItem) { dbContext.SalesOrderItems.Add(salesOrderItem); dbContext.SaveChanges(); return(salesOrderItem); }
internal static void AssertEqual(this SalesOrderItem expected, ISalesOrderItem result) { if (expected == null) { throw new ArgumentNullException("expected"); } if (result == null) { throw new ArgumentNullException("result"); } if (expected.ContractItem == null) { Assert.IsNull(result.ContractItemKey); } else { Assert.AreEqual(expected.ContractItem.ToContractItemKey().KeyValue, result.ContractItemKey); } Assert.AreEqual(expected.InventoryPickOrderItem.ToProductKey().KeyValue, result.ProductKey); Assert.AreEqual(expected.InventoryPickOrderItem.ToPackagingProductKey().KeyValue, result.PackagingKey); Assert.AreEqual(expected.InventoryPickOrderItem.ToInventoryTreatmentKey().KeyValue, result.TreatmentKey); Assert.AreEqual(expected.InventoryPickOrderItem.Quantity, result.Quantity); Assert.AreEqual(expected.PriceBase, result.PriceBase); Assert.AreEqual(expected.PriceFreight, result.PriceFreight); Assert.AreEqual(expected.PriceTreatment, result.PriceTreatment); Assert.AreEqual(expected.PriceWarehouse, result.PriceWarehouse); Assert.AreEqual(expected.PriceRebate, result.PriceRebate); Assert.AreEqual(expected.InventoryPickOrderItem.CustomerLotCode, result.CustomerLotCode); Assert.AreEqual(expected.InventoryPickOrderItem.CustomerProductCode, result.CustomerProductCode); }
internal static void AssertEqual(this SalesOrderItem expected, ICustomerContractOrderItemReturn result) { if (expected == null) { throw new ArgumentNullException("expected"); } if (result == null) { throw new ArgumentNullException("result"); } Assert.AreEqual(new SalesOrderItemKey((ISalesOrderItemKey)expected).KeyValue, result.OrderItemKey); if (expected.ContractItem == null) { Assert.IsNull(result.ContractItemKey); } else { Assert.AreEqual(expected.ContractItem.ToContractItemKey().KeyValue, result.ContractItemKey); } Assert.AreEqual(new ProductKey(expected.InventoryPickOrderItem.Product).KeyValue, result.Product.ProductKey); Assert.AreEqual(new PackagingProductKey(expected.InventoryPickOrderItem.PackagingProduct).KeyValue, result.Packaging.ProductKey); Assert.AreEqual(new InventoryTreatmentKey(expected.InventoryPickOrderItem.InventoryTreatment).KeyValue, result.Treatment.TreatmentKey); var totalPrice = expected.PriceBase + expected.PriceFreight + expected.PriceTreatment + expected.PriceWarehouse - expected.PriceRebate; Assert.AreEqual(totalPrice, result.TotalPrice); }
private List <SalesOrderItem> AddItems(SalesOrderItem i) { List <SalesOrderItem> ret = new List <SalesOrderItem>(); List <String> num = fb.db.Query <String>("select pk.num from product p join kititem k on p.id = k.kitproductid join product as pk on pk.id = k.productid where p.num = @proNum", new { proNum = i.ProductNumber }).ToList(); if (num.Count > 0) { i.ItemType = "80"; ret.Add(i); foreach (String s in num) { SalesOrderItem soi = new SalesOrderItem(); soi.ProductNumber = s; soi.ItemType = "10"; soi.Status = "10"; soi.UOMCode = "ea"; soi.KitItemFlag = true; soi.KitItemFlagSpecified = true; ret.Add(soi); } } else { ret.Add(i); } return(ret); }
public static SalesOrder CreateSalesOrderFromSalesOrderViewModel(SalesOrderViewModel salesOrderViewModel) { var salesOrder = new SalesOrder() { CustomerName = salesOrderViewModel.CustomerName, PONumber = salesOrderViewModel.PONumber, SalesOrderId = salesOrderViewModel.SalesOrderId, ObjectState = salesOrderViewModel.ObjectState, RowVersion = salesOrderViewModel.RowVersion }; int temporarySalesOrderItemId = -1; foreach (var salesOrderItemViewModel in salesOrderViewModel.SalesOrderItems) { var salesOrderItem = new SalesOrderItem(); salesOrderItem.SalesOrderId = salesOrderViewModel.SalesOrderId; salesOrderItem.ProductCode = salesOrderItemViewModel.ProductCode; salesOrderItem.Quantity = salesOrderItemViewModel.Quantity; salesOrderItem.UnitPrice = salesOrderItemViewModel.UnitPrice; salesOrderItem.ObjectState = salesOrderItemViewModel.ObjectState; if (salesOrderItemViewModel.ObjectState != ObjectState.Added) { salesOrderItem.SalesOrderItemId = salesOrderItemViewModel.SalesOrderItemId; } else { salesOrderItem.SalesOrderItemId = temporarySalesOrderItemId; temporarySalesOrderItemId--; } salesOrder.SalesOrderItems.Add(salesOrderItem); } return(salesOrder); }
public async Task <ActionResult> Create([FromBody] SalesOrderItem salesOrderItem) { if (ModelState.IsValid) { if (salesOrderItem == null) { return(BadRequest()); } var repository = new SalesOrderItemsRepository(_context); try { await repository.Insert(salesOrderItem); repository.Save(); return(NoContent()); } catch (Exception e) { return(BadRequest(new { message = e.Message.Replace('{', '(').Replace('}', ')') })); } } return(BadRequest(new { message = "ModelState is not valid" })); }
public async Task <ActionResult> Delete(int id) { var repository = new SalesOrderItemsRepository(_context); SalesOrderItem salesOrderItem = await repository.GetById(id); if (salesOrderItem == null) { return(NotFound()); } try { repository.Delete(salesOrderItem); repository.Save(); return(NoContent()); } catch (Exception e) { return(BadRequest(new { message = e.Message.Replace('{', '(').Replace('}', ')') })); } }
public SalesOrderItemList addToExistingItemList(SalesOrderItemList oldList, SalesOrderLine salesOrderLine) { int oldCount = oldList.item.Length; int newCount = oldCount + 1; SalesOrderItemList newOrderList = new SalesOrderItemList(); SalesOrderItem[] newItem = new SalesOrderItem[1]; SalesOrderItem[] newList = new SalesOrderItem[newCount]; oldList.item.CopyTo(newList, 0); newItem[0] = new SalesOrderItem(); RecordRef item = new RecordRef(); item.type = RecordType.inventoryItem; item.typeSpecified = true; // item.internalId = "1229"; item.name = salesOrderLine.item.ItemName; item.internalId = salesOrderLine.item.itemRecord.internalId; newItem[0].item = item; RecordRef prLevel = new RecordRef(); prLevel.type = RecordType.priceLevel; prLevel.internalId = "-1"; prLevel.typeSpecified = true; newItem[0].price = prLevel; newItem[0].rate = Convert.ToString(salesOrderLine.UnitPrice); newItem[0].quantity = salesOrderLine.QuantityRequested; newItem[0].quantitySpecified = true; newItem.CopyTo(newList, oldCount); newOrderList.item = newList; return newOrderList; }
public void addItemList(List<SalesOrderLine> salesOrderLines) { SalesOrderItemList salesOrderItemList = new SalesOrderItemList(); int i = 0; SalesOrderItem[] Items = new SalesOrderItem[salesOrderLines.Count]; foreach (var SOLine in salesOrderLines) { Items[i] = new SalesOrderItem(); RecordRef item = new RecordRef(); item.type = RecordType.inventoryItem; item.typeSpecified = true; item.internalId = salesOrderLines[i].item.itemRecord.internalId; Items[i].item = item; RecordRef prLevel = new RecordRef(); prLevel.type = RecordType.priceLevel; prLevel.internalId = "-1"; prLevel.typeSpecified = true; Items[i].price = prLevel; Items[i].rate = Convert.ToString(salesOrderLines[i].UnitPrice); Items[i].quantity = salesOrderLines[i].QuantityRequested; Items[i].quantitySpecified = true; i++; } salesOrderItemList.item = Items; this.salesOrder.itemList = salesOrderItemList; }
public IResult <IPickableInventoryReturn> GetInventoryToPickForOrder(FilterInventoryForShipmentOrderParameters parameters) { if (parameters == null) { throw new ArgumentNullException("parameters"); } InventoryShipmentOrderKey orderKey; InventoryPickOrderItemKey orderItemKey; var filterResults = parameters.ParseToPredicateBuilderFilters(out orderKey, out orderItemKey); if (!filterResults.Success) { return(filterResults.ConvertTo <IPickableInventoryReturn>()); } var salesOrderKey = new SalesOrderKey(orderKey); var salesOrderItemKey = orderItemKey == null ? null : new SalesOrderItemKey(orderItemKey); var salesOrder = _inventoryShipmentOrderUnitOfWork.SalesOrderRepository.FindByKey(salesOrderKey, o => o.InventoryShipmentOrder.SourceFacility, o => o.SalesOrderItems.Select(i => i.ContractItem), o => o.SalesOrderItems.Select(i => i.InventoryPickOrderItem)); if (salesOrder == null) { return(new InvalidResult <IPickableInventoryReturn>(null, string.Format(UserMessages.SalesOrderNotFound, orderKey.KeyValue))); } IDictionary <AttributeNameKey, ChileProductAttributeRange> productSpec = null; IDictionary <AttributeNameKey, CustomerProductAttributeRange> customerSpec = null; SalesOrderItem orderItem = null; if (salesOrderItemKey != null) { var item = salesOrder.SalesOrderItems.FirstOrDefault(salesOrderItemKey.FindByPredicate.Compile()); if (item == null) { return(new InvalidResult <IPickableInventoryReturn>(null, string.Format(UserMessages.SalesOrderItemNotFound, salesOrderItemKey))); } orderItem = item; var specResult = new GetProductSpecCommand(_inventoryShipmentOrderUnitOfWork).Execute(ChileProductKey.FromProductKey(item.InventoryPickOrderItem), item.Order, out productSpec, out customerSpec); if (!specResult.Success) { return(specResult.ConvertTo <IPickableInventoryReturn>()); } } var itemsResult = new GetPickableInventoryCommand(_inventoryShipmentOrderUnitOfWork).Execute(filterResults.ResultingObject, _timeStamper.CurrentTimeStamp, PickedInventoryValidator.ForSalesOrder(salesOrder.InventoryShipmentOrder.SourceFacility), true); if (itemsResult.Success) { itemsResult.ResultingObject.Initializer = new ValidPickingForOrder(new PickingValidatorContext(productSpec, customerSpec, orderItem == null ? null : orderItem.ContractItem, salesOrder, salesOrder)); } return(itemsResult); }
/// <summary> /// Get the item description without "extra" information. /// </summary> /// <param name="salesOrderWorkItem">A sales order work item instance.</param> /// <param name="salesOrderItem">A sales order item instance.</param> /// <returns>An item description.</returns> public static string GetDescriptionWithoutExtra( SalesOrderWorkItem salesOrderWorkItem, SalesOrderItem salesOrderItem ) => ItemDescriptionHelper.GetDescriptionWithoutExtra( salesOrderWorkItem == null ? salesOrderItem?.ItemDescription : salesOrderWorkItem.ItemDescription );
public SalesOrderItem CreateOrderItem(ProductsSold productSold) { SalesOrderItem salesOrderItem = null; var product = db.FindProduct(productSold.ProductCode); if (product != null) { // Update the product pack size var rp = ropesDb.FindProduct(product.ProductCode); if (rp == null) { LogService.WriteLog(TransType.Replenishment, productSold.StoreId, null, $"Error: Product {product.ProductCode} not found in ROPES! Using pack size of {product.PackSize}"); } else { product.PackSize = rp.MSQ; db.InsertOrUpdateProduct(product, false); LogService.WriteLog(TransType.Replenishment, productSold.StoreId, product.Id, $"Product {product.ProductCode} updated with pack size: {product.PackSize}"); } salesOrderItem = new SalesOrderItem { Brand = "", SaleDate = DateTimeOffset.Now, Number = "", StoreId = productSold.StoreId, ProductCode = productSold.ProductCode, ProductName = productSold.ProductName, Quantity = productSold.Qty, CurrencyCode = "", Price = 0, Notes = "", MSQ = (product.PackSize < 1 ? 1 : product.PackSize) }; // We now apply the 'algorithm' to work out the quantity to be ordered: // The following method calculates: totalStock = stockOnHand - stockInTransit int stockOnHand = 0, stockInTransit = 0; ProductService.GetTotalStock(currentStore, product, ref stockOnHand, ref stockInTransit); var totalStock = stockOnHand + stockInTransit; int sales = productSold.Qty; decimal forecastFactor = (currentStore.ForecastFactor == null ? 0 : currentStore.ForecastFactor.Value); // Formula take from spreadsheet provided by Emma Shaw // =IF(CEILING(F4-(C4+D4)+(A4*B4),E4)<0,0,CEILING(F4-(C4+D4)+(A4*B4),E4)) // =IF(CEILING(product.Mpl-(totalStock)+(sales*forecastFactor),product.PackSize)<0,0,CEILING(product.Mpl-(totalStock)+(sales*forecastFactor),product.PackSize)) //salesOrderItem.Quantity = Math.Max(0, (int)Ceiling(product.Mpl - (totalStock) + (sales * forecastFactor), product.PackSize)); salesOrderItem.Quantity = CalculateOrderQty(product.Mpl, totalStock, sales, forecastFactor, product.PackSize); LogService.WriteLog(TransType.Replenishment, productSold.StoreId, product.Id, $"Product {productSold.ProductCode} / Sales:{sales} ForecastFactor:{forecastFactor} SOH:{stockOnHand} SIT:{stockInTransit} TotalStock:{totalStock} PackSize:{product.PackSize} MPL:{product.Mpl} OrderQty:{salesOrderItem.Quantity}"); } return(salesOrderItem); }
public void ReadSalesOrderItemByIdNotFound() { GivenSalesOrdersService(); moqSalesOrderItemsSet.Setup(m => m.Find(99)).Returns((SalesOrderItem)null); SalesOrderItem resultSalesOrderItem = salesOrdersService.ReadSalesOrderItemById(99); Assert.Null(resultSalesOrderItem); }
public void ReadSalesOrderItemByIdSuccess() { GivenSalesOrdersService(); moqSalesOrderItemsSet.Setup(m => m.Find(1)).Returns(salesOrderItems[0]); SalesOrderItem resultSalesOrderItem = salesOrdersService.ReadSalesOrderItemById(1); moqSalesOrderItemsSet.Verify(m => m.Find(1), Times.Once()); Assert.Equal(salesOrderItems[0], resultSalesOrderItem); }
protected string GetLineDescription(SalesOrderItem line) { var text = line.PartNumber; text += String.IsNullOrEmpty(line.PartNumber2) ? "" : $", RPN:{line.PartNumber2}"; text += String.IsNullOrEmpty(line.Manufacturer) ? "" : $", MFR:{line.Manufacturer}"; text += String.IsNullOrEmpty(line.DateCode) ? "" : $", D/C:{line.DateCode}"; text += String.IsNullOrEmpty(line.Msl) ? "" : $", MSL:{line.Msl}"; return(text); }
public async Task <ActionResult> GetOrder(int id) { var repository = new SalesOrderItemsRepository(_context); SalesOrderItem salesOrderItem = await repository.GetById(id); if (salesOrderItem == null) { return(NotFound()); } return(Ok(salesOrderItem)); }
public async Task SeedDataAsync(IServiceProvider serviceProvider) { var saleOrders = new SalesOrder[] { new SalesOrder { CustomerName = "Anisha", PONumber = "123" }, new SalesOrder { CustomerName = "Dibas", PONumber = "234" }, new SalesOrder { CustomerName = "Dopa", PONumber = "345" }, new SalesOrder { CustomerName = "Apdo", PONumber = "456" }, }; var saleOrderItems = new SalesOrderItem[] { new SalesOrderItem { ProductCode = "xyz", Quantity = 23, UnitPrice = (decimal)12.45, SalesOrder = saleOrders[0] }, new SalesOrderItem { ProductCode = "abc", Quantity = 24, UnitPrice = (decimal)12.45, SalesOrder = saleOrders[1] }, new SalesOrderItem { ProductCode = "cde", Quantity = 25, UnitPrice = (decimal)12.45, SalesOrder = saleOrders[2] }, new SalesOrderItem { ProductCode = "gd4", Quantity = 26, UnitPrice = (decimal)12.45, SalesOrder = saleOrders[3] }, }; using (var scope = serviceProvider.GetRequiredService <IServiceScopeFactory>().CreateScope()) { var salesDb = scope.ServiceProvider.GetRequiredService <SalesDbContext>(); if (await salesDb.Database.EnsureCreatedAsync()) { if (!salesDb.SalesOrders.Any()) { salesDb.SalesOrderItems.AddRange(saleOrderItems); try { int itemsaffected = await salesDb.SaveChangesAsync(); logger.LogInformation($"total rows affected {itemsaffected}"); } catch (Exception ex) { logger.LogError(ex.InnerException, ex.Message); } } } }; }
/// <summary> /// Get the UOM combined summary. /// </summary> /// <param name="workflow">The current workflow.</param> /// <param name="salesOrderWorkItem">A sales order work item instance.</param> /// <param name="salesOrderItem">A sales order item instance.</param> /// <returns>An OUM combined summary.</returns> public static string GetUomCombined( SalesOrderWorkflow workflow, SalesOrderWorkItem salesOrderWorkItem, SalesOrderItem salesOrderItem ) => ItemDescriptionHelper.GetUomCombined( salesOrderWorkItem == null ? salesOrderItem?.ItemQuantity ?? 0 : GetSalesOrderWorkDescriptionQuantity(workflow, salesOrderWorkItem), salesOrderWorkItem?.ItemDescription ?? salesOrderItem?.ItemDescription, salesOrderWorkItem?.Uom ?? salesOrderItem?.Uom );
public void DeleteSalesOrderItemSuccess() { GivenSalesOrdersService(); moqSalesOrderItemsSet.Setup(m => m.Remove(It.IsAny <SalesOrderItem>())); SalesOrderItem itemToDelete = salesOrderItems[0]; salesOrdersService.DeleteSalesOrderItem(itemToDelete); moqSalesOrderItemsSet.Verify(m => m.Remove(itemToDelete), Times.Once()); }
private void updateOutstanding() { for (int i = 0; i < itemsDataGrid.Rows.Count; i++) { SalesOrderItem pi = (SalesOrderItem)itemsDataGrid[scanColumn.Index, i].Tag; if (pi == null) { continue; } itemsDataGrid[OutstandingPOColumn.Index, i].Value = r_po.GetOutstandingDelivered(pi.ID); } }
private static SalesOrderItem AddSubTotal(SalesOrderItem FirstLine) { return(new SalesOrderItem() { ItemType = "40", TaxID = FirstLine.TaxID, TaxRate = FirstLine.TaxRate, TaxCode = FirstLine.TaxCode, Taxable = FirstLine.Taxable, TaxRateSpecified = FirstLine.TaxRateSpecified }); }
public ActionResult Create() { SalesOrder newSO = new SalesOrder { Date = DateTime.Today, SalesOrderItems = new List <SalesOrderItem>() }; SalesOrderItem soItem = new SalesOrderItem(); CreateProductsList(soItem); newSO.SalesOrderItems.Add(soItem); CreateCustomersList(newSO); return(View(newSO)); }
public IActionResult DeleteSalesOrderItem(long id) { SalesOrderItem SalesOrderItem = orderitem_repo.Find(id); if (SalesOrderItem == null) { return(NotFound()); } orderitem_repo.Delete(SalesOrderItem); return(Ok()); }
public bool Add(long customerId) { var shoppingCart = _shoppingCartBusiness.GetActiveShoppingCart(customerId); if (shoppingCart == null) { throw new ArgumentException($"Carrinho não encontrado para o cliente: {customerId}."); } var listShoppingCartItem = _shoppingCartItemBusiness.GetShoppingCartItems(shoppingCart.Id, true); if (!listShoppingCartItem.Any()) { throw new ArgumentException($"Carrinho de compras {shoppingCart.Id} está vazio."); } //var salesOder = _salesOrderBusiness.GetById() //Order SalesOrder salesOrder = new SalesOrder() { CustomerId = shoppingCart.CustomerId, Id = shoppingCart.Id, OrderStatus = OrderStatus.WaitingPayment, UpdatedDate = DateTime.Now, ShoppingCartId = shoppingCart.Id }; //OrderItem foreach (var shoppingCartItem in listShoppingCartItem) { var validateQuantity = _productBusiness.GetStock((int)shoppingCartItem.ProductId); var price = _productBusiness.GetUnitPrice((int)shoppingCartItem.ProductId); if (validateQuantity < shoppingCartItem.ProductQuantity) { throw new ArgumentException($"Saldo insuficiente para o produto: {shoppingCartItem.ProductId}"); } SalesOrderItem salesOrderItem = new SalesOrderItem() { SalesOrderId = salesOrder.Id, ProductId = shoppingCartItem.ProductId, ProductQuantity = shoppingCartItem.ProductQuantity, UnitPrice = price }; salesOrder.ListSalesOrderItem.Add(salesOrderItem); } return(_salesOrderBusiness.Add(salesOrder)); }
private void AddResult() { for (int i = 0; i < gridData.Rows.Count; i++) { bool check = Convert.ToBoolean(gridData[checkColumn.Index, i].Value); if (!check) { continue; } SalesOrderItem pi = (SalesOrderItem)gridData.Rows[i].Tag; RESULT.Add(pi); } }
public ActionResult SaveData(SalesOrderItem d) { if (ModelState.IsValid) { salesOrderItemService.Save(Mapper.Map <SalesOrderItem, SaleOrderItemDTO>(d)); return(Json(new { success = true })); } else { return(base.PartialView("_AddSaleOrderItem", d)); // return Json(new { success = false }); } }
/// <summary> /// Convert a SalesOrderItem instance to a PickListItem. /// </summary> /// <param name="salesOrderItem">The SalesOrderItem instance to convert.</param> /// <returns>A new PickListItem instance.</returns> public static PickListItem ToPickListItem( SalesOrderItem salesOrderItem ) => salesOrderItem == null ? null : new PickListItem { ItemNumber = salesOrderItem.ItemNumber, ItemDescription = salesOrderItem.ItemDescription, LotNumber = salesOrderItem.LotNumber, IsLotControlled = salesOrderItem.IsLotControlled, ItemQuantity = salesOrderItem.ItemQuantity, Uom = salesOrderItem.Uom, Seq = salesOrderItem.Seq };
public OrderItemModel(SalesOrderItem item) { this.Reference = item.InvoiceItemType?.Name; this.Product = item.Product?.Name; this.Description = item.Description; this.Details = item.Details; this.Quantity = item.QuantityOrdered; // TODO: Where does the currency come from? var currency = "€"; this.Price = item.CalculatedUnitPrice.ToString("0.00") + " " + currency; this.Amount = item.TotalExVat.ToString("0.00") + " " + currency; this.Comment = item.Comment; }
public static string AddSalesOrderMassive(RecordRef objCustomer, string strCategory, string strPoNumber, string strOrderNumber, DateTime datOrderDate, DateTime datInsertDate, DateTime datEventDate, bool booConfirmed, bool booCases, string strBride, string strGroom, ArrayList arrItems, string strUserId) { string strId = ""; SalesOrder objSalesOrder = new SalesOrder(); objSalesOrder.entity = objCustomer; objSalesOrder.tranDate = new System.DateTime(); objSalesOrder.orderStatus = SalesOrderOrderStatus._pendingFulfillment; //objSalesOrder.salesRep = new RecordRef(); //objSalesOrder.salesRep.internalId = strUserId; //objSalesOrder.salesRep.type = RecordType.employee; //objSalesOrder.salesRep.typeSpecified = true; SelectCustomFieldRef objReseller = new SelectCustomFieldRef(); objReseller.internalId = "custbodytbfcustomerid"; objReseller.value = new ListOrRecordRef(); objReseller.value.internalId = "1"; BooleanCustomFieldRef objCategory = new BooleanCustomFieldRef(); objCategory.internalId = "custbodycst_ordercategory"; objCategory.value = bool.Parse(strCategory); BooleanCustomFieldRef objConfirmed = new BooleanCustomFieldRef(); objConfirmed.internalId = "custbodycst_orderconfirmed"; objConfirmed.value = booConfirmed; BooleanCustomFieldRef objCases = new BooleanCustomFieldRef(); objCases.internalId = "custbodycst_cases"; objCases.value = booCases; StringCustomFieldRef objOrderNumber = new StringCustomFieldRef(); objOrderNumber.internalId = "custbodycst_ordernumber"; objOrderNumber.value = strOrderNumber; StringCustomFieldRef objPONumber = new StringCustomFieldRef(); objPONumber.internalId = "custbodycostcoponumber"; objPONumber.value = strPoNumber; StringCustomFieldRef objGroom = new StringCustomFieldRef(); objGroom.internalId = "custbody_groom"; objGroom.value = strGroom; StringCustomFieldRef objBride = new StringCustomFieldRef(); objBride.internalId = "custbody_bride"; objBride.value = strBride; DateCustomFieldRef objOrderDate = new DateCustomFieldRef(); objOrderDate.internalId = "custbodycst_orderdate"; objOrderDate.value = datOrderDate; DateCustomFieldRef objInsertDate = new DateCustomFieldRef(); objInsertDate.internalId = "custbodycst_insertdate"; objInsertDate.value = datInsertDate; DateCustomFieldRef objEventDate = new DateCustomFieldRef(); objEventDate.internalId = "custbody_wedding_date"; objEventDate.value = datEventDate; object[] arrFirstItem = (object[])arrItems[0]; DateCustomFieldRef objDeliveryDate = new DateCustomFieldRef(); objDeliveryDate.internalId = "custbody_delivery_date"; objDeliveryDate.value = (DateTime)arrFirstItem[2]; DateCustomFieldRef objShippingDate = new DateCustomFieldRef(); objShippingDate.internalId = "custbody_shipping_date"; objShippingDate.value = (DateTime)arrFirstItem[3]; if (datEventDate != DateTime.MaxValue) { objSalesOrder.customFieldList = new CustomFieldRef[] { objReseller, objConfirmed, objCases, objCategory, objGroom, objBride, objOrderNumber, objPONumber, objOrderDate, objInsertDate, objEventDate, objDeliveryDate, objShippingDate }; } else { objSalesOrder.customFieldList = new CustomFieldRef[] { objReseller, objConfirmed, objCases, objCategory, objGroom, objBride, objOrderNumber, objPONumber, objOrderDate, objInsertDate, objDeliveryDate, objShippingDate }; } objSalesOrder.otherRefNum = strPoNumber; SalesOrderItem[] salesOrderItemArray = new SalesOrderItem[arrItems.Count]; for (int i = 0; i < salesOrderItemArray.Length; i++) { object[] arrColumns = (object[])arrItems[i]; RecordRef item = new RecordRef(); item.type = RecordType.nonInventoryResaleItem; item.typeSpecified = true; item.internalId = arrColumns[0].ToString(); salesOrderItemArray[i] = new SalesOrderItem(); salesOrderItemArray[i].item = item; StringCustomFieldRef objCustomInfo = new StringCustomFieldRef(); objCustomInfo.internalId = "custcol_additional_info"; objCustomInfo.value = arrColumns[8].ToString(); StringCustomFieldRef objOriginal = new StringCustomFieldRef(); objOriginal.internalId = "custcolcst_originalid"; objOriginal.value = arrColumns[9].ToString(); LongCustomFieldRef objOrderLine = new LongCustomFieldRef(); objOrderLine.internalId = "custcolcst_orderline"; objOrderLine.value = (int)arrColumns[6]; SelectCustomFieldRef objShippingType = new SelectCustomFieldRef(); objShippingType.internalId = "custcolcst_shippingtype"; objShippingType.value = new ListOrRecordRef(); switch (arrColumns[7].ToString()) { case "IPD": objShippingType.value.internalId = "1"; break; case "IP": objShippingType.value.internalId = "2"; break; case "Domestic": objShippingType.value.internalId = "3"; break; case "Fedex Next Day": objShippingType.value.internalId = "4"; break; } if ((DateTime)arrColumns[4] == DateTime.MaxValue) { DateCustomFieldRef objDelivDate = new DateCustomFieldRef(); objDelivDate.internalId = "custcolcst_deliverydate"; objDelivDate.value = (DateTime)arrColumns[2]; DateCustomFieldRef objShipDate = new DateCustomFieldRef(); objShipDate.internalId = "custcolcst_shippingdate"; objShipDate.value = (DateTime)arrColumns[3]; salesOrderItemArray[i].customFieldList = new CustomFieldRef[] { objDelivDate, objShipDate, objOrderLine, objShippingType, objCustomInfo, objOriginal }; } else { DateCustomFieldRef objDelivDate = new DateCustomFieldRef(); objDelivDate.internalId = "custcolcst_deliverydate"; objDelivDate.value = (DateTime)arrColumns[2]; DateCustomFieldRef objShipDate = new DateCustomFieldRef(); objShipDate.internalId = "custcolcst_shippingdate"; objShipDate.value = (DateTime)arrColumns[3]; DateCustomFieldRef objPrefDate = new DateCustomFieldRef(); objPrefDate.internalId = "custcolcst_preferredarrivaldate"; objPrefDate.value = (DateTime)arrColumns[4]; salesOrderItemArray[i].customFieldList = new CustomFieldRef[] { objDelivDate, objShipDate, objPrefDate, objOrderLine, objShippingType, objCustomInfo, objOriginal }; } System.Double quantity = System.Double.Parse(arrColumns[1].ToString()); salesOrderItemArray[i].quantity = quantity; salesOrderItemArray[i].quantitySpecified = true; } SalesOrderItemList salesOrderItemList = new SalesOrderItemList(); salesOrderItemList.item = salesOrderItemArray; objSalesOrder.itemList = salesOrderItemList; WriteResponse writeRes = _service.add(objSalesOrder); if (writeRes.status.isSuccess) { strId = ((RecordRef)writeRes.baseRef).internalId; //_out.writeLn("\nSales order created successfully\nSales Order Internal ID=" + ((RecordRef)writeRes.baseRef).internalId); } else { throw new Exception("Orden no ingresada: " + getStatusDetails(writeRes.status)); //_out.error(getStatusDetails(writeRes.status)); } return strId; }
public void TransformLine(SalesOrderItem salesOrderItem, LineDTO line, NetSuiteApi api) { // nothing }
public void TransformLine(SalesOrderItem netSuiteLine, LineDTO line, NetSuiteApi api) { netSuiteLine.location = new RecordRef { internalId = this.getLocation(line, api) }; }
/// <summary> /// Adapts the sales order to the NetSuite model. /// </summary> private SalesOrder generateSalesOrder(SalesOrderRetrieveDTO salesOrder) { var address = this.buildAddress(salesOrder.Contact) ?? this.api.Integration.GetDefaultAddress(this.api); var items = salesOrder.Lines.Select(it => this.api.Items.FindItemByUpcCode(it.Variation.Sku)); // TODO: Actualizar esto var lines = salesOrder.Lines.Select((it, i) => { var netSuiteItem = items.ToArray()[i]; var line = new SalesOrderItem { quantity = it.Quantity, quantitySpecified = true, rate = this.api.Integration.GetPriceOfLine(it, netSuiteItem, this.api).ToString(CultureInfo.InvariantCulture), item = new RecordRef { internalId = netSuiteItem.internalId }, price = new RecordRef { internalId = "-1" } }; this.api.Integration.TransformLine(line, it, this.api); return line; }).ToList(); if (salesOrder.ShippingCost > 0) lines.Add(this.api.Integration.GetShipmentLineFor(salesOrder.ShippingCost, api)); bool wasCreatedNow; var customer = this.getOrCreateCustomer(salesOrder.Contact, address, salesOrder.Lines.First(), out wasCreatedNow); var customerAddressbook = customer.addressbookList.addressbook.First(it => it.defaultBilling && it.defaultBillingSpecified); var netSuiteOrder = new SalesOrder { entity = new RecordRef { internalId = customer.internalId }, itemList = new SalesOrderItemList { item = lines.ToArray() }, location = new RecordRef { internalId = this.api.Integration.GetOrderLocation(items, salesOrder, this.api) }, shippingAddress = salesOrder.IsForShip ? this.buildAddress(salesOrder.Contact) : null, shippingCost = salesOrder.ShippingCost, shippingCostSpecified = salesOrder.IsForShip, billAddressList = new RecordRef { internalId = customerAddressbook.internalId, name = "addressBook" }, trackingNumbers = String.Join(",", salesOrder.Shipments.Select(it => it.Method.TrackingNumber)), memo = salesOrder.Notes, externalId = salesOrder.Id, customFieldList = this.api.Integration.GetOrderFields(salesOrder, this.api) }; this.api.Integration.TransformOrder(netSuiteOrder, salesOrder, this.api); return netSuiteOrder; }
public static string UpdateSalesOrder(SalesOrder objOrder, ArrayList arrItems, out string strError) { strError = ""; string strId = ""; SalesOrder objSalesOrder = new SalesOrder(); objSalesOrder.internalId = objOrder.internalId; objSalesOrder.customForm = new RecordRef(); objSalesOrder.customForm.internalId = GlobalSettings.Default.nsOrderForm; objSalesOrder.customForm.type = RecordType.account; objSalesOrder.customForm.typeSpecified = true; SalesOrderItem[] salesOrderItemArray = new SalesOrderItem[arrItems.Count + objOrder.itemList.item.Length]; for (int i = 0; i < salesOrderItemArray.Length; i++) { if (i < objOrder.itemList.item.Length) { salesOrderItemArray[i] = new SalesOrderItem(); salesOrderItemArray[i].item = objOrder.itemList.item[i].item; salesOrderItemArray[i].line = objOrder.itemList.item[i].line; salesOrderItemArray[i].lineSpecified = true; SelectCustomFieldRef objShippingType = new SelectCustomFieldRef(); objShippingType.internalId = "custcolcst_shippingtype"; objShippingType.value = new ListOrRecordRef(); objShippingType.value.internalId = "7"; //salesOrderItemArray[i].customFieldList = new CustomFieldRef[] { objShippingType }; } else { object[] arrColumns = (object[])arrItems[i - objOrder.itemList.item.Length]; RecordRef item = new RecordRef(); item.type = RecordType.nonInventoryResaleItem; item.typeSpecified = true; item.internalId = arrColumns[0].ToString(); salesOrderItemArray[i] = new SalesOrderItem(); salesOrderItemArray[i].item = item; SelectCustomFieldRef objShippingType = new SelectCustomFieldRef(); objShippingType.internalId = "custcolcst_shippingtype"; objShippingType.value = new ListOrRecordRef(); objShippingType.value.internalId = arrColumns[4].ToString(); if (objShippingType.value.internalId.Equals("-1")) { objShippingType.value.internalId = "7"; } DateCustomFieldRef objShipDate = new DateCustomFieldRef(); objShipDate.internalId = "custcolcst_shippingdate"; objShipDate.value = (DateTime)arrColumns[2]; DateCustomFieldRef objDelivDate = new DateCustomFieldRef(); objDelivDate.internalId = "custcolcst_deliverydate"; objDelivDate.value = (DateTime)arrColumns[3]; StringCustomFieldRef objPo = new StringCustomFieldRef(); objPo.internalId = "custcolos_ponumber"; objPo.value = arrColumns[5].ToString(); if (objDelivDate.value != DateTime.MaxValue) { salesOrderItemArray[i].customFieldList = new CustomFieldRef[] { objDelivDate, objShipDate, objShippingType, objPo }; } else { salesOrderItemArray[i].customFieldList = new CustomFieldRef[] { objShipDate, objShippingType, objPo }; } System.Double quantity = System.Double.Parse(arrColumns[1].ToString()); salesOrderItemArray[i].quantity = quantity; salesOrderItemArray[i].quantitySpecified = true; } } SalesOrderItemList salesOrderItemList = new SalesOrderItemList(); salesOrderItemList.item = salesOrderItemArray; objSalesOrder.itemList = salesOrderItemList; WriteResponse writeRes = _service.update(objSalesOrder); if (writeRes.status.isSuccess) { strId = ((RecordRef)writeRes.baseRef).internalId; //_out.writeLn("\nSales order created successfully\nSales Order Internal ID=" + ((RecordRef)writeRes.baseRef).internalId); } else { strError = getStatusDetails(writeRes.status); } return strId; }
public static string AddSalesOrder1800(int numReseller, Customer objCustomer, string strVendorCode, string strPoNumber, string strOrderNumber, DateTime datOrderDate, DateTime datInsertDate, DateTime datEventDate, ArrayList arrItems, string strUserId, out string strError) { strError = ""; string strId = ""; SalesOrder objSalesOrder = new SalesOrder(); objSalesOrder.entity = new RecordRef(); objSalesOrder.entity.type = RecordType.customer; objSalesOrder.entity.typeSpecified = true; objSalesOrder.entity.externalId = objCustomer.externalId; objSalesOrder.tranDate = new System.DateTime(); objSalesOrder.orderStatus = SalesOrderOrderStatus._pendingFulfillment; objSalesOrder.externalId = "so1800_"+strOrderNumber; objSalesOrder.customForm = new RecordRef(); objSalesOrder.customForm.internalId = GlobalSettings.Default.nsOrderForm; objSalesOrder.customForm.type = RecordType.account; objSalesOrder.customForm.typeSpecified = true; //objSalesOrder.salesRep = new RecordRef(); //objSalesOrder.salesRep.internalId = strUserId; //objSalesOrder.salesRep.type = RecordType.employee; //objSalesOrder.salesRep.typeSpecified = true; SelectCustomFieldRef objReseller = new SelectCustomFieldRef(); objReseller.internalId = "custbodytbfcustomerid"; objReseller.value = new ListOrRecordRef(); objReseller.value.internalId = numReseller.ToString(); StringCustomFieldRef objVendorCode = new StringCustomFieldRef(); objVendorCode.internalId = "custbody_vfvendorcode"; objVendorCode.value = strVendorCode; StringCustomFieldRef objOrderNumber = new StringCustomFieldRef(); objOrderNumber.internalId = "custbodycst_ordernumber"; objOrderNumber.value = strOrderNumber; StringCustomFieldRef objPONumber = new StringCustomFieldRef(); objPONumber.internalId = "custbodycostcoponumber"; objPONumber.value = strPoNumber; DateCustomFieldRef objOrderDate = new DateCustomFieldRef(); objOrderDate.internalId = "custbodycst_orderdate"; objOrderDate.value = datOrderDate; DateCustomFieldRef objInsertDate = new DateCustomFieldRef(); objInsertDate.internalId = "custbodycst_insertdate"; objInsertDate.value = datInsertDate; //DateCustomFieldRef objEventDate = new DateCustomFieldRef(); //objEventDate.internalId = "custbody_wedding_date"; //objEventDate.value = datEventDate; object[] arrFirstItem = (object[])arrItems[0]; DateCustomFieldRef objDeliveryDate = new DateCustomFieldRef(); objDeliveryDate.internalId = "custbody_delivery_date"; objDeliveryDate.value = (DateTime)arrFirstItem[3]; DateCustomFieldRef objShippingDate = new DateCustomFieldRef(); objShippingDate.internalId = "custbody_shipping_date"; objShippingDate.value = (DateTime)arrFirstItem[2]; StringCustomFieldRef objMessage = new StringCustomFieldRef(); objMessage.internalId = "custbodycst_giftmessage"; objMessage.value = ""; if (objDeliveryDate.value != DateTime.MaxValue) { objSalesOrder.customFieldList = new CustomFieldRef[] { objReseller, objOrderNumber, objPONumber, objOrderDate, objInsertDate, objMessage, objVendorCode }; } else { objSalesOrder.customFieldList = new CustomFieldRef[] { objReseller, objOrderNumber, objPONumber, objOrderDate, objInsertDate, objMessage, objVendorCode }; } objSalesOrder.otherRefNum = strPoNumber; //arrItems.Add(new object[] { strProductId, numQty, strShipDate, strDeliDate, arrItems.IndexOf(strShipType) }); SalesOrderItem[] salesOrderItemArray = new SalesOrderItem[arrItems.Count]; for (int i = 0; i < salesOrderItemArray.Length; i++) { object[] arrColumns = (object[])arrItems[i]; RecordRef item = new RecordRef(); item.type = RecordType.nonInventoryResaleItem; item.typeSpecified = true; item.internalId = arrColumns[0].ToString(); salesOrderItemArray[i] = new SalesOrderItem(); salesOrderItemArray[i].item = item; SelectCustomFieldRef objShippingType = new SelectCustomFieldRef(); objShippingType.internalId = "custcolcst_shippingtype"; objShippingType.value = new ListOrRecordRef(); objShippingType.value.internalId = arrColumns[4].ToString(); if (objShippingType.value.internalId.Equals("-1")) { objShippingType.value.internalId = "7"; } SelectCustomFieldRef objShippingCourier = new SelectCustomFieldRef(); objShippingCourier.internalId = "custcolcst_courier"; objShippingCourier.value = new ListOrRecordRef(); objShippingCourier.value.internalId = "1"; if (objShippingType.value.internalId.Equals("8") || objShippingType.value.internalId.Equals("9")) { objShippingCourier.value.internalId = "2"; } if (objShippingType.value.internalId.Equals("5") || objShippingType.value.internalId.Equals("6") || objShippingType.value.internalId.Equals("7")) { objShippingCourier.value.internalId = "3"; } DateCustomFieldRef objShipDate = new DateCustomFieldRef(); objShipDate.internalId = "custcolcst_shippingdate"; objShipDate.value = (DateTime)arrColumns[2]; DateCustomFieldRef objDelivDate = new DateCustomFieldRef(); objDelivDate.internalId = "custcolcst_deliverydate"; objDelivDate.value = (DateTime)arrColumns[3]; StringCustomFieldRef objPo = new StringCustomFieldRef(); objPo.internalId = "custcolos_ponumber"; objPo.value = arrColumns[5].ToString(); StringCustomFieldRef objColMessage = new StringCustomFieldRef(); objColMessage.internalId = "custcolcst_message"; objColMessage.value = ""; if (arrColumns.Length == 7) { objColMessage.value = arrColumns[6].ToString(); objMessage.value = arrColumns[6].ToString(); } if (objDelivDate.value != DateTime.MaxValue) { salesOrderItemArray[i].customFieldList = new CustomFieldRef[] { objDelivDate, objShipDate, objShippingType, objPo, objShippingCourier, objColMessage }; } else { salesOrderItemArray[i].customFieldList = new CustomFieldRef[] { objShipDate, objShippingType, objPo, objShippingCourier, objColMessage }; } System.Double quantity = System.Double.Parse(arrColumns[1].ToString()); salesOrderItemArray[i].quantity = quantity; salesOrderItemArray[i].quantitySpecified = true; } SalesOrderItemList salesOrderItemList = new SalesOrderItemList(); salesOrderItemList.item = salesOrderItemArray; objSalesOrder.itemList = salesOrderItemList; //WriteResponse writeRes = _service.add(objSalesOrder); WriteResponse[] writeRes = _service.addList(new Record[] { objCustomer, objSalesOrder }); if (writeRes[0].status.isSuccess) { strId = ((RecordRef)writeRes[0].baseRef).internalId; //_out.writeLn("\nSales order created successfully\nSales Order Internal ID=" + ((RecordRef)writeRes.baseRef).internalId); } else { strError = getStatusDetails(writeRes[0].status); } if (writeRes[1].status.isSuccess) { strId = ((RecordRef)writeRes[1].baseRef).internalId; //_out.writeLn("\nSales order created successfully\nSales Order Internal ID=" + ((RecordRef)writeRes.baseRef).internalId); } else { strError = getStatusDetails(writeRes[1].status); } return strId; }
public static string UpdateSalesOrder(SalesOrder objSalesOrder, SalesOrderItem objItem, ArrayList arrCustomFields) { string strId = ""; try { SalesOrder objSOUpdated = new SalesOrder(); objSOUpdated.internalId = objSalesOrder.internalId; objSOUpdated.itemList = new SalesOrderItemList(); objSOUpdated.itemList.replaceAll = false; objSOUpdated.itemList.item = new SalesOrderItem[1]; objSOUpdated.itemList.item[0] = new SalesOrderItem(); //objSOUpdated.itemList.item[0] = objItem; objSOUpdated.itemList.item[0].item = objItem.item; objSOUpdated.itemList.item[0].line = objItem.line; objSOUpdated.itemList.item[0].lineSpecified = true; objSOUpdated.itemList.item[0].customFieldList = new CustomFieldRef[arrCustomFields.Count]; for (int i = 0; i < arrCustomFields.Count; i++) { objSOUpdated.itemList.item[0].customFieldList[i] = (CustomFieldRef)arrCustomFields[i]; } WriteResponse writeRes = _service.update(objSOUpdated); if (writeRes.status.isSuccess) { //_out.writeLn("\nSales order created successfully\nSales Order Internal ID=" + ((RecordRef)writeRes.baseRef).internalId); } else { //_out.error(getStatusDetails(writeRes.status)); } } catch (Exception objExc) { } return strId; }