public ActionResult Create(SalesOrder salesorder) { if (ModelState.IsValid) { db.SalesOrders.Add(salesorder); db.SaveChanges(); return RedirectToAction("Index"); } return View(salesorder); }
public virtual SalesOrder_CreateOutput Create(SalesOrder_CreateInput _data) { SalesOrder_CreateOutput res = new SalesOrder_CreateOutput(); using (AdventureWorksEntities ctx = new AdventureWorksEntities()) { EntityState state = EntityState.Added; SalesOrder obj = new SalesOrder(); var entry = ctx.Entry(obj); entry.State = state; entry.CurrentValues.SetValues(_data); // CUSTOM_CODE_START: use the Customer input parameter of Create operation below UpdateCustomer(ctx, obj, _data.Customer); // CUSTOM_CODE_END // CUSTOM_CODE_START: use the Payment input parameter of Create operation below UpdatePayment(ctx, obj, _data.Payment); // CUSTOM_CODE_END // CUSTOM_CODE_START: use the Sales input parameter of Create operation below UpdateSales(ctx, obj, _data.Sales); // CUSTOM_CODE_END // CUSTOM_CODE_START: add custom code for Create operation below obj.OrderDate = DateTime.Now; obj.ModifiedDate = DateTime.Now; // CUSTOM_CODE_END ErrorList.Current.AbortIfHasErrors(HttpStatusCode.BadRequest); ctx.SaveChanges(); ServiceUtil.CopyProperties(obj, res); } return res; }
public override SalesOrder HandleOrder(SalesOrder salesOrder) { salesOrder.OrderNumber = DateTime.Now.ToString("yyyyMMddHHmmss"); Console.WriteLine("Order #{0} stored in SOP system", salesOrder.OrderNumber); return GetOrderOrNextStepResult(salesOrder); }
// add methods that can be used in the inline custom code of the generated service protected CustomerInfo GetCustomerInfo(SalesOrder obj) { CustomerInfo res = new CustomerInfo(); if (obj.CustomerIdObject != null) { res.CustomerId = obj.CustomerIdObject.CustomerId; res.AccountNumber = obj.CustomerIdObject.AccountNumber; res.PersonId = obj.CustomerIdObject.PersonIdObject == null ? null : (int?)obj.CustomerIdObject.PersonIdObject.BusinessEntityId; res.PersonName = obj.CustomerIdObject.PersonIdObject == null ? null : obj.CustomerIdObject.PersonIdObject.LastName + ", " + obj.CustomerIdObject.PersonIdObject.FirstName; res.StoreId = obj.CustomerIdObject.StoreIdObject == null ? null : (int?)obj.CustomerIdObject.StoreIdObject.BusinessEntityId; res.StoreName = obj.CustomerIdObject.StoreIdObject == null ? null : obj.CustomerIdObject.StoreIdObject.Name; res.TerritoryId = obj.CustomerIdObject.TerritoryIdObject == null ? null : (int?)obj.CustomerIdObject.TerritoryIdObject.TerritoryId; }; if (obj.BillToAddressIdObject != null) res.BillingAddress = new AddressKey { AddressId = obj.BillToAddressIdObject.AddressId }; if (obj.ShipToAddressIdObject != null) res.ShippingAddress = new AddressKey { AddressId = obj.ShipToAddressIdObject.AddressId }; return res; }
public void Can_Add_OrderLine() { var purchaseOrderSut = new SalesOrder(); purchaseOrderSut.AddOrderLine(new OrderLineStubifier().StubIt()); Assert.AreEqual(1, purchaseOrderSut.OrderLineCount()); }
public override SalesOrder HandleOrder(SalesOrder order) { if (!order.IsSoftwareProduct) { Console.WriteLine("Product {0} allocated in SOP system", order.ProductCode); } return GetOrderOrNextStepResult(order); }
public override SalesOrder HandleOrder(SalesOrder order) { if (order.IsSoftwareProduct) { Console.WriteLine("Download link sent to {0}", order.CustomerEmail); } return GetOrderOrNextStepResult(order); }
// // GET: /SalesOrderAdmin/Create public ActionResult Create() { SalesOrder salesorder = new SalesOrder(); salesorder.SODate = DateTime.Now; salesorder.ShipDate = DateTime.Now; salesorder.PaymentDate = DateTime.Now; return View(salesorder); }
public void Can_Print_Order_With_OrderLines() { var purchaseOrder = new SalesOrder(); purchaseOrder.AddOrderLine(new OrderLineStubifier().StubIt()); var outPuts = new SalesOrderPrinter(purchaseOrder).Print(); Assert.AreEqual(3, outPuts.Count); }
public void Can_Get_TotalAfterTaxAmount() { var purchaseOrderSut = new SalesOrder(); purchaseOrderSut.AddOrderLine(new OrderLineStubifier().GivenAfterTaxAmount(25m).StubIt()); purchaseOrderSut.AddOrderLine(new OrderLineStubifier().GivenAfterTaxAmount(15m).StubIt()); var totalAfterTaxAmount = purchaseOrderSut.TotalAfterTaxAmount(); Assert.AreEqual(25m + 15m, totalAfterTaxAmount); }
public void Can_Get_TotalTax() { var purchaseOrderSut = new SalesOrder(); purchaseOrderSut.AddOrderLine(new OrderLineStubifier().GivenTax(5m).StubIt()); purchaseOrderSut.AddOrderLine(new OrderLineStubifier().GivenTax(1m).StubIt()); var totalTax = purchaseOrderSut.TotalTax(); Assert.AreEqual(5m + 1m, totalTax); }
public void Can_Print_Empty_Order() { var purchaseOrder = new SalesOrder(); var outPuts = new SalesOrderPrinter(purchaseOrder).Print(); Assert.AreEqual(2, outPuts.Count); Assert.AreEqual(string.Format("{0}{1}0.00", PrinterConst.SALES_TAXES, PrinterConst.COLON), outPuts[0]); Assert.AreEqual(string.Format("{0}{1}0.00", PrinterConst.TOTAL, PrinterConst.COLON), outPuts[1]); }
protected SalesInfo GetSalesInfo(SalesOrder obj) { SalesInfo res = new SalesInfo(); if (obj.SalesPersonIdObject != null) res.SalesPersonId = obj.SalesPersonIdObject.BusinessEntityId; if (obj.TerritoryIdObject != null) res.TerritoryId = obj.TerritoryIdObject.TerritoryId; // select a list of sales reason IDs from the child list res.SalesReason = obj.ReasonObjectList.Select(r => r.SalesReasonId).ToList(); return res; }
private SalesOrder PrepareSalesOrder(Product product) { var output = new SalesOrder { ApplyTaxes = true, CustomerOrderReference = "P1234", RequestedShippingDate = DateTime.Now, PaymentType = Constants.CVs.PaymentType.Values.BankTransfer, ShipmentType = Constants.CVs.ShippingType.Values.Post, OrderOrigin = Constants.CVs.OrderOrigin.Values.Manual, TermsOfTrade = Constants.CVs.TermsofTrade.Values.Immediate, SalesOrderLines = new List<SalesOrderLine>() { new SalesOrderLine() { ProductID = product.ProductID, Quantity = 5, SellPrice = 1.00M, SellPriceExTax = 1.00M, SellPriceIncTax = 1.15M, TaxCode = "GST" } }, Customer = new Customer() { FirstName = "Joe", LastName = "Bloggs", Email = "*****@*****.**", PhoneNumber = "021-896-435" }, BillingAddress = new Address() { AddressLine1 = "567 Lunar Crescent", AddressLine2 = "Burnside", TownCity = "Christchurch", PostalCode = "8054", RegionState = Constants.CVs.RegionsandStates.Values.Canterbury, Country = Constants.CVs.Country.Values.NewZealand }, ShippingAddress = new Address() { AddressLine1 = "Warehouse 67", AddressLine2 = "Parnell", TownCity = "Auckland", PostalCode = "5654", RegionState = Constants.CVs.RegionsandStates.Values.Auckland, Country = Constants.CVs.Country.Values.NewZealand } }; return output; }
public void InitialisingOrderShouldWork() { // Arrange var order = new SalesOrder(); // Act order.Initialise(new Id(1), new Id(2), SalesOrderStatus.New); // Assert Assert.AreEqual(1, order.Id.Value); Assert.AreEqual(2, order.CustomerId.Value); Assert.AreEqual(SalesOrderStatus.New, order.Status); }
public ErrorCode Create(string companyId, string qty, string premium, string price, string stockId,string commodityId, string pricingType) { try { decimal? quantity = 0; decimal? premiumResult = 0; decimal? priceResult = 0; if (!string.IsNullOrEmpty(qty)) { quantity = Convert.ToDecimal(qty); } if (!string.IsNullOrEmpty(premium)) { premiumResult = Convert.ToDecimal(premium); } if (!string.IsNullOrEmpty(price)) { priceResult = Convert.ToDecimal(price); } var tradeManagement = new SalesOrder { CompanyId = Convert.ToInt32(companyId), Quantity = quantity.Value, StockId = Convert.ToInt32(stockId), Date = DateTime.Now, Premium = premiumResult, Price = priceResult, PricingType = Convert.ToInt32(pricingType), Status = (int)SalesOrderStatus.OrderConfirmed }; var stockDal = new StockDAL(); var stock = stockDal.GetById(Convert.ToInt32(stockId), null); var commDal = new CommodityDAL(); var commodity = commDal.GetById(Convert.ToInt32(commodityId),null); if(quantity > stock.AvailableQty) { return ErrorCode.QtyNotEnough; } if(quantity % stock.BuyUnit != 0) { return ErrorCode.NotInteger; } if(!commodity.IsOpen) { return ErrorCode.CommodityNotOpen; } TradeManagementDal.Create(tradeManagement); stock.AvailableQty = stock.AvailableQty - tradeManagement.Quantity; stockDal.Update(stock); return ErrorCode.NoError; } catch (Exception) { return ErrorCode.ServerError; } }
public void Execute(IServiceProvider serviceProvider) { try { var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); var serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); var service = serviceFactory.CreateOrganizationService(context.UserId); Entity entity = (Entity)context.PostEntityImages["Post"]; new_coordinationcontract agreementEntity = entity.ToEntity<new_coordinationcontract>(); if (agreementEntity.new_contrsctorder.Id == null || agreementEntity.new_contrsctorder.Id == Guid.Empty) return; SalesOrder updateOrder = new SalesOrder(); updateOrder.Id = agreementEntity.new_contrsctorder.Id; updateOrder.new_articipationof = agreementEntity.new_participationof; updateOrder.new_agreed= agreementEntity.new_agreed_fd; updateOrder.new_Dateofcoordination = agreementEntity.new_datecoordinationlac; updateOrder.new_participationlaw= agreementEntity.new_participationlaw; updateOrder.new_agreedlaw= agreementEntity.new_agreed_ld; updateOrder.new_Dateofcoordinationlaw= agreementEntity.new_Datecoordinationlaw; updateOrder.new_participationlo = agreementEntity.new_participationlo; updateOrder.new_agreedlog = agreementEntity.new_agreed_dd; updateOrder.new_Dateofcoordinationlog = agreementEntity.new_Datecoordinationlog; updateOrder.new_participationob = agreementEntity.new_participationob; updateOrder.new_agreed_ac = agreementEntity.new_agreed_ac; updateOrder.new_datecoordinationlac = agreementEntity.new_datecoordinationlac; updateOrder.new_participationsp = agreementEntity.new_participationsp; updateOrder.new_agreed_sd = agreementEntity.new_agreed_sd; updateOrder.new_datecoordinationsd = agreementEntity.new_datecoordinationsd; service.Update(updateOrder); } catch (Exception ex) { throw new InvalidPluginExecutionException(ex.Message); } }
protected void UpdateCustomer(AdventureWorksEntities ctx, SalesOrder obj, CustomerUpdate _data) { obj.CustomerIdObject = ctx.Customer.Find(_data.CustomerId); if (obj.CustomerIdObject == null) ErrorList.Current.AddError("Cannot find Customer with ID {0}.", _data.CustomerId); if (_data.BillingAddress != null) { obj.BillToAddressIdObject = ctx.Address.Find(_data.BillingAddress.AddressId); if (obj.BillToAddressIdObject == null) ErrorList.Current.AddError("Cannot find Address with ID {0}.", _data.BillingAddress.AddressId); } if (_data.ShippingAddress != null) { obj.ShipToAddressIdObject = ctx.Address.Find(_data.ShippingAddress.AddressId); if (obj.ShipToAddressIdObject == null) ErrorList.Current.AddError("Cannot find Address with ID {0}.", _data.ShippingAddress.AddressId); } }
protected PaymentInfo GetPaymentInfo(SalesOrder obj) { PaymentInfo res = new PaymentInfo() { CreditCard = new PaymentInfo_CreditCard { CreditCardApprovalCode = obj.CreditCardApprovalCode }, DueDate = obj.DueDate, SubTotal = obj.SubTotal, Freight = obj.Freight, TaxAmt = obj.TaxAmt, TotalDue = obj.TotalDue, }; if (obj.CreditCardIdObject != null) res.CreditCard.CreditCardId = obj.CreditCardIdObject.CreditCardId; if (obj.ShipMethodIdObject != null) res.ShipMethodId = obj.ShipMethodIdObject.ShipMethodId; if (obj.CurrencyRateIdObject != null) res.CurrencyRate = "$1 = " + obj.CurrencyRateIdObject.EndOfDayRate + " " + obj.CurrencyRateIdObject.ToCurrencyCodeObject.Name; return res; }
public static SalesOrder CreateSalesOrderFromSalesOrderViewModel(SalesOrderViewModel salesOrderViewModel) { SalesOrder salesOrder = new SalesOrder() { CustomerName = salesOrderViewModel.CustomerName, PoNumber = salesOrderViewModel.PoNumber, SalesOrderId = salesOrderViewModel.SalesOrderId, ObjectState = salesOrderViewModel.ObjectState }; int temporarySalesOrderItemId = -1; foreach (SalesOrderItemViewModel salesOrderItemViewModel in salesOrderViewModel.SalesOrderItems) { SalesOrderItem salesOrderItem = new SalesOrderItem(); salesOrderItem.SalesOrderItemId = salesOrderItemViewModel.SalesOrderItemId; 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--; } salesOrderItem.SalesOrderId = salesOrderViewModel.SalesOrderId; salesOrder.SalesOrderItems.Add(salesOrderItem); } return(salesOrder); }
// GET: Sales/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } SalesOrder salesOrder = _db.SalesOrder.Find(id); if (salesOrder == null) { return(HttpNotFound()); } SalesOrderViewModel salesOrderViewModel = new SalesOrderViewModel(); salesOrderViewModel.SalesOrderId = salesOrder.SalesOrderId; salesOrderViewModel.CustomerName = salesOrder.CustomerName; salesOrderViewModel.PONumber = salesOrder.PONumber; salesOrderViewModel.MessageToClient = "message to client from view model"; return(View(salesOrderViewModel)); }
/// <summary> /// Prepare the header for a receipt. /// </summary> /// <param name="reportLayout">The receipt string.</param> /// <param name="salesOrder">The sales order.</param> /// <param name="channelDateTimeOffset">The current time of the channel.</param> public static void PrepareGiftCardHeader(StringBuilder reportLayout, SalesOrder salesOrder, DateTimeOffset channelDateTimeOffset) { ThrowIf.Null(reportLayout, "reportLayout"); ThrowIf.Null(salesOrder, "salesOrder"); string channelDate = channelDateTimeOffset.ToString("d"); string channelTime = channelDateTimeOffset.ToString("T"); reportLayout.AppendLine(); reportLayout.AppendLine("<T:string_6150>"); // Report Title reportLayout.AppendLine(); reportLayout.AppendLine(string.Empty.PadLeft(55, '=')); reportLayout.Append(FormatHeaderLine("<T:string_6149>", salesOrder.StaffId, true)); reportLayout.Append("\t\t"); reportLayout.AppendLine(FormatHeaderLine("<T:string_6139>", channelDate, false)); reportLayout.Append(FormatHeaderLine("<T:string_6138>", salesOrder.StoreId, true)); reportLayout.Append("\t\t"); reportLayout.AppendLine(FormatHeaderLine("<T:string_6141>", channelTime, false)); reportLayout.AppendLine(FormatHeaderLine("<T:string_6140>", salesOrder.TerminalId, true)); }
private PickupInformationViewModel ShowPickupForm(int rowIndex) { // Before we show the pickup form, check that a pickup code exists if (string.IsNullOrWhiteSpace(ApplicationSettings.Terminal.PickupDeliveryModeCode)) { // "Pickup cannot be used for delivery because a pickup delivery code was not found." string errorMessage = LSRetailPosis.ApplicationLocalizer.Language.Translate(56382); SalesOrder.LogMessage(errorMessage, LSRetailPosis.LogTraceLevel.Error); SalesOrder.InternalApplication.Services.Dialog.ShowMessage(errorMessage, MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } PickupInformationViewModel vm = new PickupInformationViewModel(this.ViewModel.Transaction); vm.IsDeliveryChangeAllowed = this.ViewModel.IsDeliveryChangeAllowed; // Load any existing values if (rowIndex >= 0 && rowIndex < this.gridSource.Count) { LineLevelInformationViewModel viewModel = this.gridSource[rowIndex]; vm.PickupDate = viewModel.DeliveryDate; vm.SelectedStore = viewModel.DeliveryStore; } using (formPickupInformation pickup = new formPickupInformation(vm)) { LSRetailPosis.POSProcesses.POSFormsManager.ShowPOSForm(pickup); if (pickup.DialogResult == DialogResult.OK) { return(pickup.ViewModel); } } return(null); }
public IActionResult Print(int id) { SalesOrder salesOrder = _context.SalesOrder .Include(x => x.SalesOrderLines) .SingleOrDefault(x => x.SalesOrderId.Equals(id)); if (salesOrder == null) { return(NotFound()); } Branch branch = _context.Branch .SingleOrDefault(x => x.BranchId.Equals(salesOrder.BranchId)); Customer customer = _context.Customer .SingleOrDefault(x => x.CustomerId.Equals(salesOrder.CustomerId)); Currency currency = _context.Currency .SingleOrDefault(x => x.CurrencyId.Equals(branch.CurrencyId)); PrintSalesOrderViewModel vm = new PrintSalesOrderViewModel(); vm.SalesOrder = salesOrder; vm.Branch = branch; vm.Customer = customer; vm.Currency = currency; vm.Lines = new List <PrintSalesOrderLineViewModel>(); foreach (var item in salesOrder.SalesOrderLines) { PrintSalesOrderLineViewModel lineVm = new PrintSalesOrderLineViewModel(); Product product = _context.Product .SingleOrDefault(x => x.ProductId.Equals(item.ProductId)); lineVm.SalesOrderLine = item; lineVm.Product = product; vm.Lines.Add(lineVm); } return(View(vm)); }
public SalesOrder GetSalesOrder(Guid orderId) { if (orderId.Equals(Guid.Empty)) { return(null); } int cByte = ParamFieldLength.PACKAGE_HEAD + ParamFieldLength.ORDER_ID; byte[] sendByte = new byte[cByte]; int byteOffset = 0; Array.Copy(BitConverter.GetBytes((int)Command.ID_GET_SALESORDER), sendByte, BasicTypeLength.INT32); byteOffset = BasicTypeLength.INT32; Array.Copy(BitConverter.GetBytes(cByte), 0, sendByte, byteOffset, BasicTypeLength.INT32); byteOffset += BasicTypeLength.INT32; //orderID byte[] tempByte = Encoding.UTF8.GetBytes(orderId.ToString()); Array.Copy(tempByte, 0, sendByte, byteOffset, tempByte.Length); byteOffset += ParamFieldLength.ORDER_ID; Int32 operCode = 0; SalesOrder salesOrder = null; using (SocketClient socket = new SocketClient(ConstantValuePool.BizSettingConfig.IPAddress, ConstantValuePool.BizSettingConfig.Port)) { Byte[] receiveData = null; operCode = socket.SendReceive(sendByte, out receiveData); if (operCode == (int)RET_VALUE.SUCCEEDED) { string strReceive = Encoding.UTF8.GetString(receiveData, ParamFieldLength.PACKAGE_HEAD, receiveData.Length - ParamFieldLength.PACKAGE_HEAD); salesOrder = JsonConvert.DeserializeObject <SalesOrder>(strReceive); } socket.Close(); } return(salesOrder); }
public ServiceResponse <bool> GenerateInvoiceForOrder(SalesOrder order) { logger.LogInformation($"generating new order"); foreach (var item in order.SalesOrderItem) { item.Product = productService.GetProductById(item.Product.Id); item.Quantity = item.Quantity; var inventoryId = inventoryService.GetByProductId(item.Product.Id); inventoryService.UpdateUnitsAvalible(inventoryId.Id, -item.Quantity); } try { context.SalesOrders.Add(order); context.SaveChanges(); return(new ServiceResponse <bool> { isSuccess = true, Data = true, Message = "Open order created", Time = DateTime.UtcNow, }); } catch (System.Exception e) { return(new ServiceResponse <bool> { isSuccess = false, Data = false, Message = e.StackTrace, Time = DateTime.UtcNow, }); } }
public static void coba() { //INSERT using (var context = new Contoh02Context()) { var std = new SalesOrder() { TransNo = "trans01", TransDate = DateTime.Now, Items = new List <SalesOrderItem>() { new SalesOrderItem { ItemCode = "item01", Qty = 1 }, new SalesOrderItem { ItemCode = "item02", Qty = 2 } } }; context.SalesOrders.Add(std); context.SaveChanges(); } //DELETE using (var context = new Contoh02Context()) { var std = new SalesOrder() { Id = 1 }; context.SalesOrders.Remove(std); context.SaveChanges(); } }
public ActionResult CreateOrder() { string addressId = Request.QueryString["addressId"]; int shipId = Convert.ToInt32(addressId); var user = User.Identity; Guid userId = Guid.Parse(user.GetUserId()); Cart cart = db.Carts.FirstOrDefault(s => s.userId == userId); List <CartItem> cartItems = db.CartItems.Where(c => c.cartId == cart.Id).ToList(); SalesOrder so = new SalesOrder(); so.Id = Guid.NewGuid(); foreach (CartItem c in cartItems) { Recipe pd = db.Recipes.FirstOrDefault(p => p.Id == c.productId); so.orderCost += pd.Price; } so.customerId = userId; so.shippingId = shipId; so.shippingCost = 100; so.status = "Order Created"; so.totalCost = so.orderCost + so.shippingCost; db.SalesOrders.Add(so); db.SaveChanges(); foreach (CartItem c in cartItems) { OrderDetails od = new OrderDetails(); od.orderId = so.Id; od.productId = c.productId; od.quantity = c.quantity; od.specialOfferId = 1; db.OrderDetails.Add(od); db.SaveChanges(); } return(RedirectToAction("index")); }
/// <summary> /// Create an Open Sales Order /// </summary> /// <param name="order"></param> /// <returns></returns> public ServiceResponse <bool> GenerateOpenOrder(SalesOrder order) { var now = DateTime.UtcNow; _logger.LogInformation("Generating New Order"); foreach (var item in order.SalesOrderItems) { item.Product = _productService.GetProductById(item.Product.Id); var inventoryId = _inventoryService.GetByProductId(item.Product.Id).Id; _inventoryService.UpdateUnitsAvailable(inventoryId, -item.Quantity); } try { _db.SalesOrders.Add(order); _db.SaveChanges(); return(new ServiceResponse <bool> { IsSuccess = true, Data = true, Time = now, Message = "Open Order Created" }); } catch (Exception e) { return(new ServiceResponse <bool> { IsSuccess = false, Data = false, Time = now, Message = e.StackTrace }); } }
public ServiceResponse <bool> GenerateOpenOrder(SalesOrder order) { _logger.LogInformation("Generating new order"); foreach (var item in order.SalesOrderItems) { item.InventoryProduct = _productService.GetProductById(item.InventoryProduct.Id); var inventoryId = _inventoryService.GetByProductId(item.InventoryProduct.Id).Id; _inventoryService.UpdateUnitsAvailable(inventoryId, -item.Quantity); } ; try { _context.SalesOrders.Add(order); _context.SaveChanges(); return(new ServiceResponse <bool> { IsSuccess = true, Data = true, Message = $"Open Order Created", Time = DateTime.UtcNow }); } catch (Exception ex) { return(new ServiceResponse <bool> { IsSuccess = false, Data = false, Message = $"Failed to generate invoice: {ex.StackTrace}", Time = DateTime.UtcNow }); } }
public void saveSoShipMstr(SalesOrder soitem, string username, string guid, string ship_guid) { Context.soship_mstr model = new Context.soship_mstr(); model.soship_oid = ship_guid; // uuid NOT NULL, Random uid model.soship_dom_id = 1; model.soship_en_id = 1; model.soship_add_by = username; model.soship_add_date = DateTime.Now; model.soship_upd_by = username; model.soship_upd_date = DateTime.Now; model.soship_code = soitem.SalesOrderOncallId.HasValue ? soitem.SalesOrderOncall.SONumber : soitem.SalesOrderProsesKonsolidasiId.HasValue ? soitem.SalesOrderProsesKonsolidasi.SONumber : soitem.SalesOrderPickupId.HasValue ? soitem.SalesOrderPickup.SONumber : soitem.SalesOrderPickup.SONumber; model.soship_date = soitem.SalesOrderOncallId.HasValue ? soitem.SalesOrderOncall.TanggalMuat : soitem.SalesOrderProsesKonsolidasiId.HasValue ? soitem.SalesOrderProsesKonsolidasi.TanggalMuat : soitem.SalesOrderPickupId.HasValue ? soitem.SalesOrderPickup.TanggalPickup : soitem.SalesOrderPickup.TanggalPickup;// date, tgl settlement model.soship_so_oid = guid; model.soship_si_id = 1; model.soship_is_shipment = "Y"; model.soship_dt = DateTime.Now; model.soship_exc_rate = 1; model.soship_cu_id = 1; model.soship_branch_id = 10001; model.soship_expeditur = 0; context.soship_mstr.Add(model); context.SaveChanges(); }
// GET: SalesOrder/Create public IActionResult Create() { var username = HttpContext.User.Identity.Name; if (!(HttpContext.User.IsInRole("ApplicationUser") || HttpContext.User.IsInRole("Secretary"))) { ViewData["customerId"] = new SelectList(_context.Customer.Where(c => c.Employee.UserName == username && c.Active == true), "customerId", "customerName"); ViewData["employeeId"] = new SelectList(_context.Employee.Where(e => e.UserName == username), "EmployeeId", "DisplayName"); } else { ViewData["customerId"] = new SelectList(_context.Customer.Where(c => c.Active == true), "customerId", "customerName"); ViewData["employeeId"] = new SelectList(_context.Employee, "EmployeeId", "DisplayName"); } Branch defaultBranch = _context.Branch.Where(x => x.isDefaultBranch.Equals(true)).FirstOrDefault(); ViewData["branchId"] = new SelectList(_context.Branch, "branchId", "branchName", defaultBranch != null ? defaultBranch.branchId : null); ViewData["customerLineId"] = new SelectList(_context.CustomerLine, "customerLineId", "street1"); SalesOrder so = new SalesOrder(); return(View(so)); }
private void SetCurrent(SalesOrder current) { if (current == null) { if (CurrentItem == null) { return; } ItemsCollection.Remove(CurrentItem); return; } var index = ItemsCollection.IndexOf(current); if (index >= 0) { ItemsCollection[index] = current; } else { ItemsCollection.Add(current); } ChangeCurrentItem(current); }
public void OrderPrice_TotalsUpdated() { PXGraph.OnPrepare += Entry_OnPrepare; var soe = PXGraph.CreateInstance <SalesOrderEntry>(); PXGraph.OnPrepare -= Entry_OnPrepare; foreach (PXCache cache in soe.Caches.Values) { cache.Interceptor = new PXUIEmulatorAttribute(); } SalesOrder SO1 = soe.Orders.Insert(new SalesOrder()); OrderLine line = soe.OrderDetails.Insert(new OrderLine()); line.UnitPrice = 20.0m; line.OrderQty = 10; line.DiscPct = 5.0m; line.TaxAmt = 10.0m; line = soe.OrderDetails.Update(line); line.LinePrice.Should().Be(190.0m); soe.Orders.Current.LinesTotal.Should().Be(190.0m); soe.Orders.Current.TaxTotal.Should().Be(10.0m); }
// GET: Sales/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } SalesOrder salesOrder = _salesContext.SalesOrders.Find(id); if (salesOrder == null) { return(HttpNotFound()); } SalesOrderViewModel salesOrderViewModel = new SalesOrderViewModel() { SalesOrderId = salesOrder.SalesOrderId, CustomerName = salesOrder.CustomerName, PONumber = salesOrder.PONumber, MessageToClient = "From viewmodel" }; return(View(salesOrderViewModel)); }
public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } SalesOrder salesOrder = _salesContext.SalesOrders.Find(id); if (salesOrder == null) { return(HttpNotFound()); } SalesOrderViewModel _salesOrderViewModel = new SalesOrderViewModel(); _salesOrderViewModel.SalesOrderId = salesOrder.SalesOrderId; _salesOrderViewModel.CustomerName = salesOrder.CustomerName; _salesOrderViewModel.PONumber = salesOrder.PONumber; _salesOrderViewModel.MessageToClient = "Hello View Model"; _salesOrderViewModel.ObjectState = ObjectState.Deleted; return(View(_salesOrderViewModel)); }
public void CalculateOrderPrice_ReturnCorrectPrice() { var order = new SalesOrder { Lines = new List <SalesOrderLine> { new SalesOrderLine { Price = 10 }, new SalesOrderLine { Price = 20 } } }; // Act var price = order.GetOrderPrice(); // Assert Assert.Equal(30, price); }
// GET: Sales/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } SalesOrder salesOrder = _salesContext.SalesOrders.Find(id); if (salesOrder == null) { return(HttpNotFound()); } SalesOrderViewModel salesOrderViewModel = new SalesOrderViewModel(); salesOrderViewModel.SalesOrderId = salesOrder.SalesOrderId; salesOrderViewModel.CustomerName = salesOrder.CustomerName; salesOrderViewModel.PONumber = salesOrder.PONumber; salesOrderViewModel.ObjectState = ObjectState.Unchanged; salesOrderViewModel.MessageToClient = string.Format("The original value of Customer Name is {0}.", salesOrderViewModel.CustomerName); return(View(salesOrderViewModel)); }
public void BlocksOnlySensitiveFields() { SalesOrder salesOrder = new SalesOrder { SalesOrderId = 1, OrderDate = DateTime.Now, CustomerId = 1, Total = 1, CardNumber = "378282246310005", CardExpires = DateTime.Now, Filled = DateTime.Now }; SalesOrderDto salesOrderDto = new SalesOrderDto(salesOrder); Assert.Equal(salesOrder.SalesOrderId, salesOrderDto.SalesOrderId); Assert.Equal(salesOrder.OrderDate, salesOrderDto.OrderDate); Assert.Equal(salesOrder.CustomerId, salesOrderDto.CustomerId); Assert.Equal(salesOrder.Total, salesOrderDto.Total); Assert.Null(salesOrderDto.CardNumber); Assert.Null(salesOrderDto.CardExpires); // Assert.Null(salesOrderDto.CardAuthorized); Assert.Equal(salesOrder.Filled, salesOrderDto.Filled); }
public virtual SalesOrder_ReadOutput Read(int _salesOrderId) { SalesOrder_ReadOutput res = new SalesOrder_ReadOutput(); using (AdventureWorksEntities ctx = new AdventureWorksEntities()) { SalesOrder obj = ctx.SalesOrder.Find(_salesOrderId); if (obj == null) { ErrorList.Current.CriticalError(HttpStatusCode.NotFound, "SalesOrder with id {0} not found", _salesOrderId); } ServiceUtil.CopyProperties(obj, res); // CUSTOM_CODE_START: populate the Customer output structure of Read operation below res.Customer = GetCustomerInfo(obj); // CUSTOM_CODE_END // CUSTOM_CODE_START: populate the Payment output structure of Read operation below res.Payment = GetPaymentInfo(obj); // CUSTOM_CODE_END // CUSTOM_CODE_START: populate the Sales output structure of Read operation below res.Sales = GetSalesInfo(obj); // CUSTOM_CODE_END // CUSTOM_CODE_START: add custom code for Read operation below // CUSTOM_CODE_END } return(res); }
public IHttpActionResult SetUserClaimed(int UserId, int orderitemid) { ARCOeCardEntities arcodb = new eCard.ARCOeCardEntities(); try { SalesOrder So = arcodb.SalesOrders.Where(a => a.ID == orderitemid).FirstOrDefault(); PrenotesUser User = arcodb.PrenotesUsers.Where(a => a.Id == UserId).FirstOrDefault(); So.ModifiedDate = DateTime.Now; So.Status = 4; So.ModifiedBy = UserId; So.AssignedTO = User.Id; arcodb.SaveChanges(); return(Content(HttpStatusCode.OK, "SUCCESS")); } catch (Exception ex) { Log.Error("There was an error while assigning the user.", ex); return(Content(HttpStatusCode.InternalServerError, "There was an error while assigning the user.")); } }
private static IEnumerable <string> GetErrors(SalesOrder salesOrder) { if (salesOrder == null) { yield return("Order is null"); yield break; } if (salesOrder.OrderPickDate == null) { yield return("Order has not been picked, cannot invoice"); } if (salesOrder.Customer == null) { yield return("Order has no customer"); } else if (salesOrder.Customer.Tariff == null) { yield return("Cannot determine tariff for customer"); } }
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex < 0 || e.ColumnIndex < 0) { return; } var c = this.dataGridView1.Rows[e.RowIndex].DataBoundItem as Business.Models.SaleOrderModel; if (c == null) { return; } Guid id = c.Id; SalesOrder so = this.PharmacyDatabaseService.GetSalesOrder(out msg, id); if (so == null) { return; } FormSalesOrderEdit frm = new FormSalesOrderEdit(so, true, true, Editable); frm.ShowDialog(); }
private void dgvMain_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex < 0 || e.ColumnIndex < 0) { return; } try { if (_salesOrderList != null && _salesOrderList.Count > 0) { var c = (Business.Models.SaleOrderModel) this.dgvMain.Rows[e.RowIndex].DataBoundItem; SalesOrder so = this.PharmacyDatabaseService.GetSalesOrder(out msg, c.Id); FormSalesOrderEdit form = new FormSalesOrderEdit(so, true); form.ShowDialog(); } } catch (Exception ex) { MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); Log.Error(ex); } }
private bool AdexLineItemIsReceivable() { return(true); if (m_lineItem.PurchaseOrder.Order.OrderType == OrderType.ADEX) { SalesOrder so = m_lineItem.PurchaseOrder.Order.GetContract <SalesOrder>() as SalesOrder; if (so != null) { SalesLineItem sli = so.GetLineByPart(m_lineItem.Part); if (sli.ProcessedQty <= m_lineItem.ProcessedQty) { m_error = "This line cannot be received against until more units are shipped for this part."; return(false); } } } return(true); }
public async Task <IActionResult> Edit(int id, [Bind("Id,Destination,estimatedPrice,Tip,Published")] SalesOrderUpdateView salesOrderView) { if (id != salesOrderView.Id) { return(NotFound()); } if (ModelState.IsValid) { var salesOrder = new SalesOrder() { TraderID = salesOrderView.TraderUsername, BuyerID = salesOrderView.BuyerUsername, Destination = salesOrderView.Destination, Tip = salesOrderView.Tip, Id = salesOrderView.Id }; var response = await salesOrderRepository.UpdateAsync(salesOrder); return(RedirectToAction(nameof(Index))); } return(View(salesOrderView)); }
/// <summary> /// 提交处理 /// </summary> /// <param name="order"></param> /// <param name="outInventory"></param> public void SaveOutInventoryByOrderOutInventory(SalesOrder order, OutInventory outInventory) { //1. 更新订单表() //2. 添加出库表 //3. 添加出库明细表 SalesOrder neworder = BusinessHandlerFactory.SalesOrderBusinessHandler.Get(order.Id); this.BusinessHandlerFactory.SalesOrderBusinessHandler.Save(order); outInventory.Id = Guid.NewGuid(); neworder.OrderOutInventoryCode = outInventory.OutInventoryNumber; neworder.OrderOutInventoryTime = outInventory.CreateTime; this.Add(outInventory); ICollection <OutInventoryDetail> details = outInventory.SalesOutInventoryDetails; foreach (OutInventoryDetail detail in details) { detail.SalesOutInventoryID = outInventory.Id; detail.UpdateTime = DateTime.Now; detail.CreateTime = DateTime.Now; BusinessHandlerFactory.OutInventoryDetailBusinessHandler.Add(detail); } this.Save(); }
public ServiceResponse <bool> GenerateOpenOrder(SalesOrder order) { _logger.LogInformation("Generating new order"); foreach (var item in order.SalesOrderItems) { item.Product = _productService.GetProductById(item.Product.Id); var inventoryId = _inventoryService.GetProductId(item.Product.Id).Id; _inventoryService.UpdateUnitsAvailable(inventoryId, -item.Quantity); } try { _dbContext.SalesOrders.Add(order); _dbContext.SaveChanges(); return(new ServiceResponse <bool> { IsSuccess = true, Data = true, Message = "An order was created", Time = DateTime.UtcNow }); } catch (Exception ex) { return(new ServiceResponse <bool> { IsSuccess = false, Data = false, Message = $"An error occurred with the following: {ex}", Time = DateTime.UtcNow }); } }
// [Create] / [Update] void okButton_Click(object sender, RoutedEventArgs e) { SalesOrder so = (SalesOrder)DataContext; so.LockVersion++; // TODO: check var customer = MyApp.dbContext.Customers.First(c => c.Id == so.CustomerId); if (so.CustomerShipTo != customer.ShipTo) { customer.ShipTo = so.CustomerShipTo; } if (so.Id == 0) { MyApp.dbContext.SalesOrders.Add(so); } try { MyApp.dbContext.SaveChanges(); } catch (DbEntityValidationException ex) { var msg = ""; foreach (var err in ex.EntityValidationErrors) { foreach (var f in err.ValidationErrors) { msg += f.ErrorMessage; } } errMsg.Text = msg; errMsg.Visibility = Visibility.Visible; return; } Changed.Invoke(this, null); Close(); }
private bool CreateSalesOrderRecords(int nCustomerId, string[] szDetailsIds, string tradeId, ref int nSalesOrderIdHlp, ref string szError) { bool bStatus = false; int nQuoteid = 0; int nItemPos = 1; int nSalesOrderId = 0; int nQuoteDetailsId = 0; int nSubItemid = 0; int nPos = -1; int nTradeid = 0; int nSalesOrderNo = 0; double dOnHand = 0; double dQtyQuote = 0; double dReqQty = 0; double dShipQty = 0; double dPOQty = 0; double dUnitPrice = 0; double dTaxRate = 0; string szDetailsId = ""; string szDescription = ""; string szSalesOrderIdHlp = ""; string szItemIdHlp = ""; List<String> quotedetailsList = null; IQueryable<SUB_ITEM> qySubItem = null; SUB_ITEM subitem = null; UserQuotation quotation = null; UserQuotationDetail quotationdetail = null; SalesOrderDetail salesorderdetail = null; InitialInfo initialinfo = null; Trade trade = null; SetupChargeDetail setupcharge = null; try { if (string.IsNullOrEmpty(tradeId)) { trade = db.Trades.FirstOrDefault<Trade>(); if (trade != null) { nTradeid = trade.TradeId; } } else { nTradeid = Convert.ToInt32(tradeId); } //Get the sales order no initialinfo = db.InitialInfoes.FirstOrDefault<InitialInfo>(); if (initialinfo == null) { initialinfo = new InitialInfo(); initialinfo.InvoiceNo = 0; initialinfo.PaymentNo = 0; initialinfo.PurchaseOrderNo = 0; initialinfo.SalesOrderNo = 1; nSalesOrderNo = 1; initialinfo.TaxRate = 0; db.InitialInfoes.Add(initialinfo); } else { nSalesOrderNo = initialinfo.SalesOrderNo; nSalesOrderNo++; initialinfo.SalesOrderNo = nSalesOrderNo; dTaxRate = initialinfo.TaxRate; db.Entry(initialinfo).State = EntityState.Modified; } quotedetailsList = szDetailsIds.ToList<string>(); SalesOrder salesorder = new SalesOrder(); salesorder.CustomerId = nCustomerId; salesorder.SODate = DateTime.Now; salesorder.IsBlindShip = false; salesorder.TradeId = nTradeid; salesorder.SalesOrderNo = nSalesOrderNo.ToString(); salesorder.Tax_rate = Convert.ToDouble(dTaxRate); salesorder.Invs_Tax = Convert.ToDouble(dTaxRate); db.SalesOrders.Add(salesorder); db.SaveChanges(); nSalesOrderIdHlp = salesorder.SalesOrderId; nSalesOrderId = salesorder.SalesOrderId; // // Con szDetailsIds leer UserQuotationDetails, luego leer el inventario para establecer las cantidades disponible y // luego crear el detalle de la Sales Order, lee el inventario e incluye setup charge y runcharge foreach (var item in quotedetailsList) { nPos = -1; nPos = item.IndexOf("chk_"); if (nPos != -1) { szDetailsId = item.Replace("chk_", ""); nQuoteDetailsId = Convert.ToInt16(szDetailsId); quotationdetail = db.UserQuotationDetails.Find(nQuoteDetailsId); if (quotationdetail != null) { if (quotationdetail.Status == 0) { if (nQuoteid == 0) { nQuoteid = Convert.ToInt32(quotationdetail.DetailId); } dQtyQuote = Convert.ToDouble(quotationdetail.Quantity) - Convert.ToDouble(quotationdetail.ShippedQuantity); dReqQty = Convert.ToDouble(quotationdetail.Quantity); dShipQty = 0; dPOQty = 0; quotation = db.UserQuotations.Find(quotationdetail.DetailId); if (quotation != null) { subitem = db.SUB_ITEM.Where(sbit => sbit.ItemID == quotation.ProductId && sbit.Description == quotationdetail.ProductType).FirstOrDefault<SUB_ITEM>(); } else { nSubItemid = Convert.ToInt32(quotationdetail.ItemID); subitem = db.SUB_ITEM.Find(nSubItemid); } if (subitem != null) { szDescription = subitem.Description; //Get OnHand inventory dOnHand = Convert.ToDouble(subitem.OnHand_Db) - Convert.ToDouble(subitem.OnHand_Cr); if (dQtyQuote >= dOnHand) { if (dOnHand == 0) { dPOQty = dQtyQuote; } else { dPOQty = dQtyQuote - dOnHand; dShipQty = dOnHand; } } else { } //Create sales order detail salesorderdetail = new SalesOrderDetail(); salesorderdetail.SalesOrderId = nSalesOrderId; salesorderdetail.ItemID = subitem.ItemID; salesorderdetail.Sub_ItemID = subitem.Sub_ItemID; salesorderdetail.Description = szDescription; salesorderdetail.Quantity = dReqQty; salesorderdetail.ShipQuantity = dShipQty; salesorderdetail.BackOrderQuantity = dPOQty; salesorderdetail.Tax = 0; salesorderdetail.UnitPrice = quotationdetail.Amount; salesorderdetail.ItemPosition = nItemPos; salesorderdetail.ItemOrder = 0; salesorderdetail.Tax = Convert.ToDouble(dTaxRate); db.SalesOrderDetails.Add(salesorderdetail); db.SaveChanges(); nItemPos++; szSalesOrderIdHlp = salesorderdetail.SalesOrderId.ToString(); szItemIdHlp = salesorderdetail.ItemID; //Create setup charge setupcharge = db.SetupChargeDetails.Where(stup => stup.itemid == subitem.ItemID).FirstOrDefault<SetupChargeDetail>(); if (setupcharge != null) { salesorderdetail = new SalesOrderDetail(); salesorderdetail.SalesOrderId = nSalesOrderId; salesorderdetail.ItemID = string.Empty; salesorderdetail.Sub_ItemID = string.Empty; salesorderdetail.Description = string.Format("Set up Charge {0} {1}", szSalesOrderIdHlp, szItemIdHlp); salesorderdetail.Quantity = dReqQty; salesorderdetail.ShipQuantity = 0; salesorderdetail.BackOrderQuantity = 0; salesorderdetail.Tax = 0; salesorderdetail.UnitPrice = setupcharge.SetUpCharge; salesorderdetail.ItemPosition = 0; salesorderdetail.ItemOrder = 0; salesorderdetail.Tax = Convert.ToDouble(dTaxRate); db.SalesOrderDetails.Add(salesorderdetail); //Create run charge salesorderdetail = new SalesOrderDetail(); salesorderdetail.SalesOrderId = nSalesOrderId; salesorderdetail.ItemID = string.Empty; salesorderdetail.Sub_ItemID = string.Empty; salesorderdetail.Description = string.Format("Run Charge {0} {1}", szSalesOrderIdHlp, szItemIdHlp); salesorderdetail.Quantity = dReqQty; salesorderdetail.ShipQuantity = 0; salesorderdetail.BackOrderQuantity = 0; salesorderdetail.Tax = 0; salesorderdetail.UnitPrice = setupcharge.RunCharge; salesorderdetail.ItemPosition = 0; salesorderdetail.ItemOrder = 0; salesorderdetail.Tax = Convert.ToDouble(dTaxRate); db.SalesOrderDetails.Add(salesorderdetail); } //Update Quote Details quotationdetail.ShippedQuantity = dShipQty; quotationdetail.BOQuantity = dPOQty; if (dShipQty >= Convert.ToDouble(quotationdetail.Quantity)) { quotationdetail.Status = 1; } else { quotationdetail.Status = 1; } } else { //szDescription = quotationdetail.ProductType; ////Create sales order detail //salesorderdetail = new SalesOrderDetail(); //salesorderdetail.SalesOrderId = nSalesOrderId; //salesorderdetail.Description = szDescription; //salesorderdetail.Quantity = dReqQty; ////salesorderdetail.ShipQuantity = dShipQty; ////salesorderdetail.BackOrderQuantity = dPOQty; //salesorderdetail.Tax = 0; //salesorderdetail.UnitPrice = quotationdetail.Amount; //salesorderdetail.ItemPosition = nItemPos; //salesorderdetail.ItemOrder = 0; //db.SalesOrderDetails.Add(salesorderdetail); //nItemPos++; //quotationdetail.Status = 1; } //Update Sub Item Inventory } } } } //Update the sales order record with the quoteid if (nQuoteid != 0) { SalesOrder salesorderHlp = db.SalesOrders.Find(nSalesOrderId); if (salesorderHlp != null) { salesorderHlp.QuoteId = nQuoteid; db.Entry(salesorderHlp).State = EntityState.Modified; } } //Save all changes db.SaveChanges(); bStatus = true; } catch (Exception err) { szError = err.Message; } return bStatus; }
/// <summary> /// This method first connects to the Organization service. Afterwards, an /// opportunity is created to demonstrate a negative estimated value. This is /// followed by the creation of a quote with a negative product quantity. /// Finally, a sales order with a negative product price is shown. /// </summary> /// <param name="serverConfig">Contains server connection information.</param> /// <param name="promptforDelete">When True, the user will be prompted to delete all /// created entities.</param> public void Run(ServerConnection.Configuration serverConfig, bool promptforDelete) { try { //<snippetWorkingWithNegativePrices1> // Connect to the Organization service. // The using statement assures that the service proxy will be properly disposed. using (_serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri, serverConfig.HomeRealmUri,serverConfig.Credentials, serverConfig.DeviceCredentials)) { // This statement is required to enable early-bound type support. _serviceProxy.EnableProxyTypes(); CreateRequiredRecords(); #region Opportunity with negative estimated value // Create a new opportunity with user-specified negative // estimated value. Opportunity opportunity = new Opportunity { Name = "Example Opportunity", CustomerId = new EntityReference(Account.EntityLogicalName, _accountId), PriceLevelId = new EntityReference(PriceLevel.EntityLogicalName, _priceListId), IsRevenueSystemCalculated = false, EstimatedValue = new Money(-400.00m), FreightAmount = new Money(10.00m), ActualValue = new Money(-390.00m), OwnerId = new EntityReference { Id = _salesRepresentativeIds[0], LogicalName = SystemUser.EntityLogicalName } }; _opportunityId = _serviceProxy.Create(opportunity); opportunity.Id = _opportunityId; // Create a catalog product for the opportunity. OpportunityProduct catalogProduct = new OpportunityProduct { OpportunityId = opportunity.ToEntityReference(), ProductId = new EntityReference(Product.EntityLogicalName, _product1Id), UoMId = new EntityReference(UoM.EntityLogicalName, _defaultUnitId), Quantity = 8, Tax = new Money(12.42m), }; _catalogProductId = _serviceProxy.Create(catalogProduct); Console.WriteLine("Created opportunity with negative estimated value."); #endregion #region Quote with negative quantity // Create the quote. Quote quote = new Quote() { CustomerId = new EntityReference(Account.EntityLogicalName, _accountId), Name = "Sample Quote", PriceLevelId = new EntityReference(PriceLevel.EntityLogicalName, _priceListId) }; _quoteId = _serviceProxy.Create(quote); quote.Id = _quoteId; // Set the quote's product quantity to a negative value. QuoteDetail quoteDetail = new QuoteDetail() { ProductId = new EntityReference(Product.EntityLogicalName, _product1Id), Quantity = -4, QuoteId = quote.ToEntityReference(), UoMId = new EntityReference(UoM.EntityLogicalName, _defaultUnitId) }; _quoteDetailId = _serviceProxy.Create(quoteDetail); Console.WriteLine("Created quote with negative quantity."); #endregion #region Sales Order with negative price // Create the sales order. SalesOrder order = new SalesOrder() { Name = "Faux Order", DateFulfilled = new DateTime(2010, 8, 1), PriceLevelId = new EntityReference(PriceLevel.EntityLogicalName, _priceListId), CustomerId = new EntityReference(Account.EntityLogicalName, _accountId), FreightAmount = new Money(20.0M) }; _orderId = _serviceProxy.Create(order); order.Id = _orderId; // Add the product to the order with the price overriden with a // negative value. SalesOrderDetail orderDetail = new SalesOrderDetail() { ProductId = new EntityReference(Product.EntityLogicalName, _product1Id), Quantity = 4, SalesOrderId = order.ToEntityReference(), IsPriceOverridden = true, PricePerUnit = new Money(-40.0M), UoMId = new EntityReference(UoM.EntityLogicalName, _defaultUnitId) }; _orderDetailId = _serviceProxy.Create(orderDetail); Console.WriteLine("Created order with negative price per unit."); #endregion DeleteRequiredRecords(promptforDelete); } //</snippetWorkingWithNegativePrices1> } // Catch any service fault exceptions that Microsoft Dynamics CRM throws. catch (FaultException<Microsoft.Xrm.Sdk.OrganizationServiceFault>) { // You can handle an exception here or pass it back to the calling method. throw; } }
public IHttpActionResult Order(SalesOrder order) { if (order != null) { Customer customer = db.Customers.Find(order.CustomerId); if (customer != null) { order.Customer = customer; order.CustomerName = customer.Name; order.CustomerMobile = customer.Mobile; order.CustomerEmailAddress = customer.EmailAddress; foreach (SalesOrderItem orderItem in order.OrderItems) { Product product = db.Products.GetAll() .Where(prod => !prod.Discontinued) .FirstOrDefault(prod => prod.Code == orderItem.ProductCode); if (product != null) { if (orderItem.Quantity < product.Stocks) { product.Stocks -= orderItem.Quantity; orderItem.Product = product; orderItem.ProductId = product.Id; orderItem.UnitPrice = product.UnitPrice; orderItem.ProductDisplayName = product.DisplayName; orderItem.StocksRemaining = product.Stocks + orderItem.Quantity; orderItem.CategoryId = product.CategoryId; } else { ModelState.AddModelError(key: "Quantity", errorMessage: orderItem.ProductCode + " insufficient stocks."); } } else { ModelState.AddModelError(key: "ProductCode", errorMessage: orderItem.ProductCode + " not found or has been discontinued."); } } if (ModelState.IsValid) { db.SalesOrders.Add(order); db.Commit(); return Created(location: "orders/id/" + order.Id, content: new { Id = order.Id }); } } else { ModelState.AddModelError(key: "CustomerId", errorMessage: order.CustomerId + " not found."); } BadRequest(ModelState); } return Conflict(); }
/// <summary> /// Creates any entity records that this sample requires. /// </summary> public void CreateRequiredRecords() { // Create a unit group. UoMSchedule unitGroup = new UoMSchedule { Name = "Example Unit Group", BaseUoMName = "Example Primary Unit" }; _unitGroupId = _service.Create(unitGroup); // Retrieve the unit. QueryExpression unitQuery = new QueryExpression() { EntityName = UoM.EntityLogicalName, ColumnSet = new ColumnSet("uomid", "name"), Criteria = { Conditions = { new ConditionExpression ("uomscheduleid", ConditionOperator.Equal, _unitGroupId) } }, PageInfo = new PagingInfo { PageNumber = 1, Count = 1 } }; UoM unit = (UoM)_service.RetrieveMultiple(unitQuery).Entities[0]; // Create an account. Account account = new Account { Name = "Litware, Inc.", Address1_StateOrProvince = "Colorado" }; _accountId = (_service.Create(account)); // Create the 2 contacts. Contact contact = new Contact() { FirstName = "Ben", LastName = "Andrews", EMailAddress1 = "*****@*****.**", Address1_City = "Redmond", Address1_StateOrProvince = "WA", Address1_Telephone1 = "(206)555-5555", ParentCustomerId = new EntityReference { Id = _accountId, LogicalName = account.LogicalName } }; _contactIdList.Add(_service.Create(contact)); contact = new Contact() { FirstName = "Colin", LastName = "Wilcox", EMailAddress1 = "*****@*****.**", Address1_City = "Bellevue", Address1_StateOrProvince = "WA", Address1_Telephone1 = "(425)555-5555", ParentCustomerId = new EntityReference { Id = _accountId, LogicalName = account.LogicalName } }; _contactIdList.Add(_service.Create(contact)); // Create pricing and product objects. PriceLevel priceLevel = new PriceLevel() { Name = "Faux Price List" }; _priceLevelId = _service.Create(priceLevel); Product product = new Product() { ProductNumber = "1", QuantityDecimal = 4, Name = "Faux Product", Price = new Money(20.0M), DefaultUoMId = new EntityReference { Id = unit.Id, LogicalName = UoM.EntityLogicalName }, DefaultUoMScheduleId = new EntityReference { Id = _unitGroupId, LogicalName = UoMSchedule.EntityLogicalName } }; _productId = _service.Create(product); ProductPriceLevel productPrice = new ProductPriceLevel() { PriceLevelId = new EntityReference() { Id = _priceLevelId, LogicalName = PriceLevel.EntityLogicalName }, ProductId = new EntityReference() { Id = _productId, LogicalName = Product.EntityLogicalName }, UoMId = new EntityReference { Id = unit.Id, LogicalName = UoM.EntityLogicalName }, Amount = new Money(20.0M), }; _productPriceId = _service.Create(productPrice); // Create 3 orders. SalesOrder order = new SalesOrder() { Name = "Faux Order", DateFulfilled = new DateTime(2010, 8, 1), PriceLevelId = new EntityReference { Id = _priceLevelId, LogicalName = PriceLevel.EntityLogicalName }, CustomerId = new EntityReference { Id = _accountId, LogicalName = account.LogicalName }, FreightAmount = new Money(20.0M) }; _orderIdList.Add(_service.Create(order)); order = new SalesOrder() { Name = "Old Faux Order", DateFulfilled = new DateTime(2010, 4, 1), PriceLevelId = new EntityReference { Id = _priceLevelId, LogicalName = PriceLevel.EntityLogicalName }, CustomerId = new EntityReference { Id = _accountId, LogicalName = account.LogicalName }, FreightAmount = new Money(20.0M) }; _orderIdList.Add(_service.Create(order)); order = new SalesOrder() { Name = "Oldest Faux Order", DateFulfilled = new DateTime(2008, 8, 1), PriceLevelId = new EntityReference { Id = _priceLevelId, LogicalName = PriceLevel.EntityLogicalName }, CustomerId = new EntityReference { Id = _accountId, LogicalName = account.LogicalName }, FreightAmount = new Money(20.0M) }; _orderIdList.Add(_service.Create(order)); // Create 2 opportunities. Opportunity opportunity = new Opportunity() { Name = "Litware, Inc. Opportunity 1", EstimatedCloseDate = new DateTime(2011, 1, 1), CustomerId = new EntityReference { Id = _accountId, LogicalName = account.LogicalName } }; _opportunityIdList.Add(_service.Create(opportunity)); opportunity = new Opportunity() { Name = "Litware, Inc. Opportunity 2", EstimatedCloseDate = new DateTime(2020, 1, 1), CustomerId = new EntityReference { Id = _accountId, LogicalName = account.LogicalName } }; _opportunityIdList.Add(_service.Create(opportunity)); }
public ActionResult Edit(SalesOrder salesorder, string SODateHlp, string ShipDateHlp, string RequiredateHlp, string AprovedDateHlp, string billtoid) { int nBilltoId = 0; int nYear = 0; int nMonth = 0; int nDay = 0; string szMsg = ""; string szError = ""; string[] szShipDateHlp = null; string[] szSODateHlp = null; DateTime dShipDate = DateTime.Now; DateTime dSODate = DateTime.Now; DateTime dRequiredDate = DateTime.Now; DateTime dApprovedDate = DateTime.Now; List<KeyValuePair<string, string>> listSelector = new List<KeyValuePair<string, string>>(); IQueryable<Trade> qryTrade = null; IQueryable<Warehouses> qryWarehouse = null; CultureInfo provider = CultureInfo.InvariantCulture; dSODate = !string.IsNullOrEmpty(SODateHlp) ? DateTime.ParseExact(SODateHlp, "MM-dd-yyyy", provider) : Convert.ToDateTime(salesorder.SODate); dRequiredDate = !string.IsNullOrEmpty(RequiredateHlp) ? DateTime.ParseExact(RequiredateHlp, "MM-dd-yyyy", provider).Date : Convert.ToDateTime(salesorder.Requiredate); dShipDate = !string.IsNullOrEmpty(ShipDateHlp) ? DateTime.ParseExact(ShipDateHlp, "MM-dd-yyyy", provider).Date : DateTime.Now; dApprovedDate = !string.IsNullOrEmpty(AprovedDateHlp) ? DateTime.ParseExact(AprovedDateHlp, "MM-dd-yyyy", provider).Date : Convert.ToDateTime(salesorder.ShipDate); if (ModelState.IsValid) { salesorder.SODate = dSODate; salesorder.ShipDate = dShipDate; salesorder.Requiredate = dRequiredDate; salesorder.AprovedDate = dApprovedDate; if (salesorder.Tax_rate == null) { salesorder.Tax_rate = 0; } if (!string.IsNullOrEmpty(billtoid)) { try { nBilltoId = Convert.ToInt32(billtoid); } catch (Exception) { nBilltoId = 0; } if (nBilltoId == 0) { salesorder.CustomerShiptoId = null; } else { salesorder.CustomerShiptoId = nBilltoId; } } db.Entry(salesorder).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } else { //Get the drop down data to enabel the display of errors qryTrade = db.Trades.OrderBy(trd => trd.TradeName); if (qryTrade.Count() > 0) { foreach (var item in qryTrade) { listSelector.Add(new KeyValuePair<string, string>(item.TradeId.ToString(), item.TradeName)); } } SelectList tradeselectorlist = new SelectList(listSelector, "Key", "Value"); ViewBag.TradeList = tradeselectorlist; listSelector = new List<KeyValuePair<string, string>>(); qryWarehouse = db.Warehouses.OrderBy(csp => csp.Warehouse); if (qryWarehouse.Count() > 0) { foreach (var item in qryWarehouse) { listSelector.Add(new KeyValuePair<string, string>(item.Warehouse, item.Warehouse)); } } SelectList warehouselist = new SelectList(listSelector, "Key", "Value"); ViewBag.WarehouseList = warehouselist; //Get the error foreach (var item in ModelState.Values) { if (item.Errors.Count > 0) { foreach (var itemError in item.Errors) { szMsg = itemError.ErrorMessage; szError = string.Format("{0} {1}", szError, szMsg); } } } ViewBag.ErrorSalesOrder = szError; } return View(salesorder); }
// // GET: //CreateSalesOrder public ActionResult CreateSalesOrder(string id) { int nSalesOrderNo = 0; int nTradeid = 0; int nCustomerId = 0; double dTaxRate = 0; InitialInfo initialinfo = null; Customers customer = null; SalesOrder salesorder = null; //Get the sales order no initialinfo = db.InitialInfoes.FirstOrDefault<InitialInfo>(); if (initialinfo == null) { initialinfo = new InitialInfo(); initialinfo.InvoiceNo = 0; initialinfo.PaymentNo = 0; initialinfo.PurchaseOrderNo = 0; initialinfo.SalesOrderNo = 1; nSalesOrderNo = 1; initialinfo.TaxRate = 0; db.InitialInfoes.Add(initialinfo); } else { nSalesOrderNo = initialinfo.SalesOrderNo; nSalesOrderNo++; initialinfo.SalesOrderNo = nSalesOrderNo; dTaxRate = initialinfo.TaxRate; db.Entry(initialinfo).State = EntityState.Modified; } //Get the customer id customer = db.Customers.Where(cst => cst.CustomerNo == id).FirstOrDefault<Customers>(); if (customer != null) { nCustomerId = customer.Id; salesorder = new SalesOrder(); salesorder.CustomerId = nCustomerId; salesorder.SODate = DateTime.Now; salesorder.IsBlindShip = false; salesorder.TradeId = nTradeid; salesorder.SalesOrderNo = nSalesOrderNo.ToString(); salesorder.Tax_rate = Convert.ToDouble(dTaxRate); salesorder.Invs_Tax = Convert.ToDouble(dTaxRate); db.SalesOrders.Add(salesorder); db.SaveChanges(); } return RedirectToAction("Edit", new { id = salesorder.SalesOrderId }); //return View("Edit", new { id = salesorder.SalesOrderId }); }
public void Add(SalesOrder salesOrder) { context.SalesOrder.AddObject(salesOrder); context.SaveChanges(); }
public void When_related_entities_are_used_without_relationship_info_exception_is_raised() { var ctx = new XrmFakedContext(); var service = ctx.GetFakedOrganizationService(); var order = new SalesOrder(); var orderItems = new EntityCollection(new List<Entity>() { new SalesOrderDetail(), new SalesOrderDetail() }); // Add related order items so it can be created in one request order.RelatedEntities.Add(new Relationship { PrimaryEntityRole = EntityRole.Referenced, SchemaName = "order_details" }, orderItems); var request = new CreateRequest { Target = order }; var exception = Assert.Throws<Exception>(() => service.Execute(request)); Assert.Equal(exception.Message, "Relationship order_details does not exist in the metadata cache"); }
public void When_related_entities_and_relationship_are_used_child_entities_are_created() { var ctx = new XrmFakedContext(); var service = ctx.GetFakedOrganizationService(); ctx.AddRelationship("order_details", new XrmFakedRelationship() { Entity1LogicalName = SalesOrder.EntityLogicalName, //Referenced Entity1Attribute = "salesorderid", //Pk Entity2LogicalName = SalesOrderDetail.EntityLogicalName, Entity2Attribute = "salesorderid", //Lookup attribute RelationshipType = XrmFakedRelationship.enmFakeRelationshipType.OneToMany }); var order = new SalesOrder(); var orderItems = new EntityCollection(new List<Entity>() { new SalesOrderDetail(), new SalesOrderDetail() }); // Add related order items so it can be created in one request order.RelatedEntities.Add(new Relationship { PrimaryEntityRole = EntityRole.Referenced, SchemaName = "order_details" }, orderItems); var request = new CreateRequest { Target = order }; var id = (service.Execute(request) as CreateResponse).id; var createdOrderDetails = ctx.CreateQuery<SalesOrderDetail>().ToList(); Assert.Equal(createdOrderDetails.Count, 2); Assert.Equal(createdOrderDetails[0].SalesOrderId.Id, id); Assert.Equal(createdOrderDetails[1].SalesOrderId.Id, id); }
public static SalesOrder CreateSalesOrder(string soId) { SalesOrder salesOrder = new SalesOrder(); salesOrder.SoId = soId; return salesOrder; }
public void AddToSalesOrderCollection(SalesOrder salesOrder) { base.AddObject("SalesOrderCollection", salesOrder); }