public static Batch CreateOrders2() { var b = new Batch(); var o = new PurchaseOrder(); o.CustId = "0815"; var i = new Item(); i.ProdId = "1234"; i.Price = 37; i.Quantity = 2; o.Item.Add(i); i = new Item(); i.ProdId = "5678"; i.Price = 1.5; i.Quantity = 3; o.Item.Add(i); b.PurchaseOrder.Add(o); o = new PurchaseOrder(); o.CustId = "1324"; i = new Item(); i.ProdId = "7788"; i.Price = 42; i.Quantity = 1; b.PurchaseOrder.Add(o); return b; }
public PurchaseOrder Add(PurchaseOrder order) { this.orders.Add(order); this.orders.Save(); return order; }
public ActionResult Update([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<ProductViewModel> products) { if (products != null && this.ModelState.IsValid) { var purchaseOrder = new PurchaseOrder() { DateOfOrder = DateTime.Now, DateOfDelivery = DateTime.Now.AddDays(2), ClientId = this.UserProfile.OrganizationId ?? 0, SupplierId = products.FirstOrDefault().SupplierId, CreatorId = this.UserProfile.Id }; this.PurchaseOrders.Add(purchaseOrder); var order = products.Select(product => new OrderQuantity() { ProductId = product.Id, PurchaseOrderId = purchaseOrder.Id, Quantity = product.Quantities }).ToList(); this.OrderQuantities.Add(order); this.AddToastMessage("Succefull", "You made order !", ToastType.Success); return this.Redirect("/Private/Orders/All"); } this.AddToastMessage("Error!", string.Empty, ToastType.Error); return this.Json(products.ToDataSourceResult(request, this.ModelState)); }
protected void btnSave_Click(object sender, EventArgs e) { PurchaseOrderModule module = new PurchaseOrderModule(); PurchaseOrder purchaseOrder = new PurchaseOrder(); try { purchaseOrder.CustomerId = Convert.ToInt32(ddlCustomers.SelectedValue); purchaseOrder.PONo = txtPONo.Text; purchaseOrder.Price = Convert.ToDecimal(txtPrice.Text); purchaseOrder.CreatedBy = txtCreatedBy.Text; purchaseOrder.DateCreated = Convert.ToDateTime(txtDateCreated.Text); purchaseOrder.DeliveryDateTime = Convert.ToDateTime(txtDeliveryDate.Text); purchaseOrder.Quantity = Convert.ToInt32(txtQuantity.Text); purchaseOrder.Remarks = txtRemarks.Text; purchaseOrder.Status = Convert.ToInt32(ddlStatus.SelectedValue); purchaseOrder.TotalPrice = Convert.ToDecimal(txtTotalPrice.Text); if (ViewState["id"] != null) purchaseOrder.Id = Convert.ToInt32(ViewState["id"]); module.Save(purchaseOrder); Response.Redirect("~/PurchasedOrder.aspx"); //lblCustomer.Text = ddlCustomers.SelectedValue; //Helper.EnableControls(false, Helper.GetControlsInPlaceHolder("InfoPlaceHolder", Master)); } catch (Exception ex) { lblError.Text = "Please contact administrator. Error message : " + ex.Message; } }
public List<PurchaseOrder> Save(PurchaseOrder po) { List<PurchaseOrder> poList = InitialData(); po.PoNumber = "PO010003"; poList.Add(po); return poList; }
public CheckoutDetailsVM(PurchaseOrder p, string FullName, string Email, string BillingAddress, string ShippingAddress) { this.LastOrder = p; this.FullName = FullName; this.Email = Email; this.BillingAddress = BillingAddress; this.ShippingAddress = ShippingAddress; }
public void CreateUpdateCustomer(PurchaseOrder order, IIdentity identity) { // try catch so this does not interrupt the order process. try { var billingAddress = order.OrderAddresses.FirstOrDefault(x => x.Name == Constants.Order.BillingAddressName); var shippingAddress = order.OrderAddresses.FirstOrDefault(x => x.Name == Constants.Order.ShippingAddressName); // create customer if anonymous, or update join customer club and selected values on existing user MembershipUser user = null; if (!identity.IsAuthenticated) { string email = null; if (billingAddress != null) { email = billingAddress.Email.Trim(); user = Membership.GetUser(email); } if (user == null) { var customer = CreateCustomer(email, Guid.NewGuid().ToString(), billingAddress.DaytimePhoneNumber, billingAddress, shippingAddress, false, createStatus => Log.Error("Failed to create user during order completion. " + createStatus.ToString())); if (customer != null) { order.CustomerId = Guid.Parse(customer.PrimaryKeyId.Value.ToString()); order.CustomerName = customer.FirstName + " " + customer.LastName; order.AcceptChanges(); SetExtraCustomerProperties(order, customer); _emailService.SendWelcomeEmail(billingAddress.Email); } } else { var customer = CustomerContext.Current.GetContactForUser(user); order.CustomerName = customer.FirstName + " " + customer.LastName; order.CustomerId = Guid.Parse(customer.PrimaryKeyId.Value.ToString()); order.AcceptChanges(); SetExtraCustomerProperties(order, customer); } } else { user = Membership.GetUser(identity.Name); var customer = CustomerContext.Current.GetContactForUser(user); SetExtraCustomerProperties(order, customer); } } catch (Exception ex) { // Log here Log.Error("Error during creating / update user", ex); } }
protected void Page_Load(object sender, EventArgs e) { _orderGroupId = !string.IsNullOrEmpty(Request.QueryString["po"]) ? Int32.Parse(Request.QueryString["po"]) : 0; _orderDetail = OrderContext.Current.GetPurchaseOrderById(_orderGroupId); if (!IsPostBack) { // Get and set Line Items LineItemsSimpleInfoID.OrderLineItems = Shipment.GetShipmentLineItems(SplitShipment); LineItemsSimpleInfoID.BillingCurrency = _orderDetail.BillingCurrency; // Get the Shipping method and Shipping Cost ShippingMethodInfoID.Shipment = SplitShipment; ShippingMethodInfoID.BillingCurrency = _orderDetail.BillingCurrency; // Get and set Shipping Address var address = _orderDetail.OrderAddresses.ToArray().FirstOrDefault(a => a.Name.Equals(SplitShipment.ShippingAddressId)); address = address ?? _orderDetail.OrderAddresses.ToArray().FirstOrDefault(a => (OrderAddressValuePrefix + a.OrderGroupAddressId.ToString()).Equals(SplitShipment.ShippingAddressId)); if (address == null) { var contact = CustomerContext.Current.GetContactById(Mediachase.Commerce.Security.SecurityContext.Current.CurrentUserId); var customerAddresses = CustomerContext.Current.GetAllContactAddresses(contact).ToList(); foreach (var customerAddress in customerAddresses) { // check ID if (SplitShipment.ShippingAddressId.Equals(CustomerAddressValuePrefix + customerAddress.AddressId)) { address = ConvertToOrderAddress(customerAddress); break; } // check Name if (SplitShipment.ShippingAddressId.Equals(customerAddress.Name)) { address = ConvertToOrderAddress(customerAddress); break; } } } if (address != null) { ShipAddressInfo.OrderAddress = address; } // Get and set Sub Total, Shipping & Tax Estimated Shipping Costs OrderSubtotalID.SplitShipment = this.SplitShipment; OrderSubtotalID.BillingCurrency = _orderDetail.BillingCurrency; } }
private void Create(string filename) { XmlSerializer ser=new XmlSerializer(typeof(PurchaseOrder)); PurchaseOrder po=new PurchaseOrder(); Address addr=new Address(); addr.FirstName="George"; po.MyAddress=addr; TextWriter writer=new StreamWriter(filename); ser.Serialize(writer, po); writer.Close(); }
/// <summary> /// Gets the full name of the billing address. /// </summary> /// <param name="po">The purchase order.</param> /// <returns></returns> protected string GetBillingAddressFullNameHtmlEncoded(PurchaseOrder po) { if (po == null || po.OrderForms.Count == 0) { return "- not set -"; } var billingAddress = po.OrderAddresses.ToArray().FirstOrDefault(a => a.Name.Equals(po.OrderForms[0].BillingAddressId)); if (billingAddress == null || string.IsNullOrWhiteSpace(billingAddress.FirstName)) { return "- not set -"; } return string.Format("{0} {1}", billingAddress.FirstName.ToHtmlEncoded(), billingAddress.LastName.ToHtmlEncoded()); }
private void Create(string filename) { XmlSerializer ser=new XmlSerializer(typeof(PurchaseOrder)); PurchaseOrder po=new PurchaseOrder(); Item item1=new Item("aaa111", (decimal)34.22); Item item2=new Item("bbb222", (decimal)2.89); po.ItemsOrdered=new Item[2]; po.ItemsOrdered[0]=item1; po.ItemsOrdered[1]=item2; TextWriter writer=new StreamWriter(filename); ser.Serialize(writer, po); writer.Close(); }
public decimal CalculateTotal(PurchaseOrder order) { decimal itemTotal = order.GetItemTotal(); decimal discountAmount = CalculateDiscount(order); decimal taxAmount = 0.0M; if (order.Country == "US") taxAmount = FindTaxAmount(order); else if (order.Country == "UK") taxAmount = FindVatAmount(order); decimal total = itemTotal - discountAmount + taxAmount; return total; }
protected void btnSave_Click(object sender, EventArgs e) { if (Page.ViewState["SupplierId"] != null) { PurchaseOrder original_PurchaseOrder; var modified_PurchaseOrder = new PurchaseOrder(); purchaseOrderManager = new PurchaseOrderManager(this); original_PurchaseOrder = purchaseOrderManager.GetPurchaseOrder(Convert.ToInt32(Page.ViewState["PurchaseOrderId"]), Company.CompanyId); modified_PurchaseOrder.CopyPropertiesFrom(original_PurchaseOrder); modified_PurchaseOrder.SupplierId = Convert.ToInt32(Page.ViewState["SupplierId"]); purchaseOrderManager.Update(original_PurchaseOrder, modified_PurchaseOrder); } Response.Redirect("PurchaseOrders.aspx"); }
public static bool SaverPurchaseOrder(PurchaseOrder order) { using (var session = NHibernateHelper.OpenSession()) { using (var tx = session.BeginTransaction()) { try { //update itemprice and also check if item is inReserve foreach (var itemprice in order.ItemPriceList) { itemprice.Purchase = order; if (itemprice.Item.InReserve && itemprice.Item.ReserveStock < (itemprice.PackageQuantity * itemprice.QuantityPerPack)) itemprice.Item.InReserve = false; } // update/create skuItem. foreach (var priceItem in order.ItemPriceList) { ItemSKU skuItem; skuItem = Builders.ItemSKUBuilder.GetItemSKUBasedOnPrice(priceItem.Item.ID, priceItem.Retail, priceItem.Wholesale); if (skuItem != null) skuItem.StockQuantity += priceItem.QuantityPerPack * priceItem.PackageQuantity; else skuItem = new ItemSKU(priceItem.Item, priceItem.QuantityPerPack * priceItem.PackageQuantity, priceItem.Retail, priceItem.Wholesale); session.SaveOrUpdate(skuItem); } session.SaveOrUpdate(order); tx.Commit(); log.Info("Purchase Order Added."); } catch (Exception ex) { tx.Rollback(); log.Error(ex); return false; } return true; } } }
private void CreatePO(string filename) { // Creates an instance of the XmlSerializer class; // specifies the type of object to serialize. XmlSerializer serializer=new XmlSerializer(typeof(PurchaseOrder)); TextWriter writer=new StreamWriter(filename); PurchaseOrder po=new PurchaseOrder(); // Creates an address to ship and bill to. Address billAddress=new Address(); billAddress.Name="Teresa Atkinson"; billAddress.Line1="1 Main St."; billAddress.City="AnyTown"; billAddress.State="WA"; billAddress.Zip="00000"; // Sets ShipTo and BillTo to the same addressee. po.ShipTo=billAddress; po.OrderDate=System.DateTime.Now.ToLongDateString(); // Creates an OrderedItem. OrderedItem i1=new OrderedItem(); i1.ItemName="Widget S"; i1.Description="Small widget"; i1.UnitPrice=(decimal)5.23; i1.Quantity=3; i1.Calculate(); // Inserts the item into the array. OrderedItem[] items={i1}; po.OrderedItems=items; // Calculate the total cost. decimal subTotal=new decimal(); foreach(OrderedItem oi in items) { subTotal+=oi.LineTotal; } po.SubTotal=subTotal; po.ShipCost=(decimal)12.51; po.TotalCost=po.SubTotal+po.ShipCost; // Serializes the purchase order, and closes the TextWriter. serializer.Serialize(writer, po); writer.Close(); }
public static void Run() { var po = new PurchaseOrder { CustId = "0815", Item = new Item[] { new Item { ProdId = "1234", Price = 37, Quantity = 2 }, new Item { ProdId = "5678", Price = 1.5, Quantity = 3 } } }; po.CompareWithBaseline("New.xml"); }
protected void btnSubmit_Click(object sender, EventArgs e) { Dictionary<String, PurchaseOrder> purchaseOrders = new Dictionary<String, PurchaseOrder>(); foreach (RepeaterItem rptItem in OrderItems.Items) { TextBox orderItemTextBox = (TextBox)rptItem.FindControl("txtAmountToOrder"); Label itemName = (Label)rptItem.FindControl("lblItemName"); Label itemPrice = (Label)rptItem.FindControl("lblItemCost"); PurchaseOrderItem orderItem = new PurchaseOrderItem(); orderItem.itemName = itemName.Text; orderItem.itemPrice = Double.Parse(itemPrice.Text, NumberStyles.Currency); orderItem.orderAmount = Convert.ToInt32(orderItemTextBox.Text); Label supplier = (Label)rptItem.FindControl("lblSupplier"); if (!purchaseOrders.ContainsKey(supplier.Text)) { PurchaseOrder newOrder = new PurchaseOrder(); newOrder.manufacturer.name = supplier.Text; newOrder.addItemToOrder(orderItem); purchaseOrders[newOrder.manufacturer.name] = newOrder; } else { purchaseOrders[supplier.Text].addItemToOrder(orderItem); } } Boolean success = PurchaseManager.processOrder(purchaseOrders.Values.ToList()); if (success) { lblMsg.Text = "Purchase orders successfully created."; } else { lblMsg.Text = "Sorry, there was an error. Please try again."; } }
private void CreatePO(string filename) { XmlSerializer serializer = new XmlSerializer(typeof(PurchaseOrder)); TextWriter writer = new StreamWriter(filename); PurchaseOrder po = new PurchaseOrder(); Address billAddress = new Address(); billAddress.Name = "Teresa Atkinson"; billAddress.Line1 = "1 Main St."; billAddress.City = "AnyTown"; billAddress.State = "WA"; billAddress.Zip = "00000"; po.ShipTo = billAddress; po.OrderDate = System.DateTime.Now.ToLongDateString(); OrderedItem i1 = new OrderedItem(); i1.ItemName = "Widget S"; i1.Description = "Small widget"; i1.UnitPrice = (decimal)5.23; i1.Quantity = 3; i1.Calculate(); OrderedItem[] items = { i1 }; po.OrderedItems = items; decimal subTotal = new decimal(); foreach (OrderedItem oi in items) { subTotal += oi.LineTotal; } po.SubTotal = subTotal; po.ShipCost = (decimal)12.51; po.TotalCost = po.SubTotal + po.ShipCost; serializer.Serialize(writer, po); writer.Close(); }
public ItemPricing(decimal _basic, decimal _transportPercent, decimal _transport, decimal _miscPercent, decimal _misc, decimal _vatPercent, decimal _vat, decimal _discountPercent, decimal _discount, decimal _wholesaleMargin, decimal _wholesale, decimal _retailMargin, decimal _retail, decimal _purchaseValue, PurchaseOrder _purchase, Item item, int _netWeight, int _grossWeight, DateTime _manufactureDate, DateTime _expiredDate) { this.Basic = _basic; this.TransportPercent = _transportPercent; this.Transport = _transport; this.MiscPercent = _miscPercent; this.Misc = _misc; this.VAT = _vat; this.VATPercent = _vatPercent; this.DiscountPercent = _discountPercent; this.Discount = Discount; this.WholesaleMargin = _wholesaleMargin; this.Wholesale = _wholesale; this.Retail = _retail; this.RetailMargin = _retailMargin; this.Purchase = _purchase; this.PurchaseValue = _purchaseValue; this.Item = item; this.NetWeight = _netWeight; this.GrossWeight = _grossWeight; this.ManufacturedDate = _manufactureDate; this.ExpiredDate = _expiredDate; }
public static void Run() { // Explicit cloning var po1 = PurchaseOrder.Load("../../Data/po1.xml"); var po2 = (PurchaseOrder)po1.Clone(); po2.CompareWithBaseline("Clone.xml"); // Implicit cloning var po = new PurchaseOrder(); var adr = new USAddress(); adr.Country = "US"; adr.City = "Mercer Island"; adr.Name = "Patrick Hines"; adr.State = "WA"; adr.Street = "123 Main St"; adr.Zip = 68042; po.BillTo = adr; po.ShipTo = adr; po.BillTo.Equals(adr).Require(); (!po.BillTo.Equals(po.ShipTo)).Require(); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Context.Items["PurchaseOrderId"] != null) { Page.ViewState["PurchaseOrderId"] = Context.Items["PurchaseOrderId"]; purchaseOrderManager = new PurchaseOrderManager(this); purchaseOrder = purchaseOrderManager.GetPurchaseOrder( Convert.ToInt32(Page.ViewState["PurchaseOrderId"]), Company.CompanyId); lblPurchaseOrderCode.Text = "Código: " + purchaseOrder.PurchaseOrderCode; if (purchaseOrder.SupplierId != null) { var supplierManager = new SupplierManager(this); Supplier supplier = supplierManager.GetSupplier(Convert.ToInt32(purchaseOrder.SupplierId), Company.CompanyId); selSupplier.ShowSupplier(supplier); } } } }
/// <summary> /// Returns a new instance of an ApplicationUser based on a previously made purchase order. /// </summary> /// <param name="purchaseOrder"></param> public ApplicationUser(PurchaseOrder purchaseOrder) { Addresses = new List<CustomerAddress>(); var firstAddress = purchaseOrder.OrderAddresses.FirstOrDefault(); if (firstAddress != null) { Email = firstAddress.Email; UserName = firstAddress.Email; FirstName = firstAddress.FirstName; LastName = firstAddress.LastName; } foreach (OrderAddress orderAddress in purchaseOrder.OrderAddresses) { CustomerAddress address = CustomerAddress.CreateInstance(); address.AddressType = CustomerAddressTypeEnum.Shipping; address.PostalCode = orderAddress.PostalCode; address.City = orderAddress.City; address.CountryCode = orderAddress.CountryCode; address.CountryName = orderAddress.CountryName; address.State = orderAddress.State; address.Email = orderAddress.Email; address.FirstName = orderAddress.FirstName; address.LastName = orderAddress.LastName; address.Created = orderAddress.Created; address.Line1 = orderAddress.Line1; address.Line2 = orderAddress.Line2; address.DaytimePhoneNumber = orderAddress.DaytimePhoneNumber; address.EveningPhoneNumber = orderAddress.EveningPhoneNumber; address.Name = orderAddress.Name; address.RegionCode = orderAddress.RegionCode; address.RegionName = orderAddress.RegionName; Addresses.Add(address); } }
public Message actionCreateNewReOrderWithDefaultValue(int stationery_id, int supplier_id) { Stationery stationery = new StationeryController().actionGetStationeryByID(stationery_id); Supplier supplier = new SupplierController().actionGetSuppierByID(supplier_id); PurchaseOrder order = new PurchaseOrder(); order.po_stationery = stationery.id; order.po_quantity_in_hand = stationery.quantity_in_stock - stationery.pending_quantity_to_distribute; order.po_reorder_date = DateTime.Now; order.po_reorder_level = stationery.reorder_level; order.po_reordered_quantity = stationery.reorder_quantity; order.po_supplier = supplier.id; try { data.PurchaseOrders.AddObject(order); return this.getNewDefaultMessageForDBOperations(data.SaveChanges() == 1); } catch (Exception e) { return this.getNewDefaultMessageForException(e); } }
//get List of PODetails by PO private List <PODetail> ListPODetailsInPO(PurchaseOrder po) { return(new PODetailsDAO().ListPODetailsByPOCode(po.PurchaseOrderCode)); }
public string ExportOrder(PurchaseOrder purchaseOrder) { /// TODO: Implement in project throw new NotImplementedException("This service requires custom implementation."); }
public bool UpdatePurchaseOrder(PurchaseOrder po, int senderId = -1) { try { bool allItemsProcessed = true; bool allItemsPending = true; foreach (Item item in po.Items) { if (item.Status == ItemStatus.Pending) { allItemsProcessed = false; } if (item.Status != ItemStatus.Pending && item.Status != ItemStatus.NoLongerRequired && item.Description != "No longer needed") { allItemsPending = false; } } if (allItemsProcessed && po.ClosePurchaseOrder) { po.Status = POStatus.Closed; } else if (allItemsPending) { po.Status = POStatus.Pending; } else if (allItemsProcessed && po.ClosePurchaseOrder == false && po.Status != POStatus.Closed) { po.Status = POStatus.UnderReview; } else if (!allItemsProcessed && !allItemsPending) { po.Status = POStatus.UnderReview; } if (IsValid(po) && po.Items.Count > 0 ? repo.UpdatePurchaseOrder(po.IsModifyItem ? po : MergeDuplicates(po)) : false) { if (po.Status == POStatus.Closed) { EmployeeService empService = new EmployeeService(); EmployeeDTO emp = empService.GetEmployeeInformation(senderId); if (SendPOProcessedEmailNotification(po: po, sender: emp)) { return(true); } po.AddError(new Error(120, "The process confirmation email was not sent", "Email not sent")); return(false); } return(true); } po.AddError(new Error(10, "The Purchase Order was not updated", "Business")); return(false); } catch (Exception ex) { po.AddError(new Error(2, ex.Message, ex.GetType().ToString())); return(false); } }
public List <DeliveryOrderSupplierProduct> FindBalanceValuestoInput(int doid) { DeliveryOrder _do = db.DeliveryOrders.Find(doid); PurchaseOrder _po = db.PurchaseOrders.Find(_do.PurchaseOrder.Id); //Find All DO with respect to the po that needs to be updated List <DeliveryOrder> doListCheck = db.DeliveryOrders .Where(x => x.PurchaseOrder == _po) .ToList(); //Find List of Products in the PO List <Product> prodListCheck = db.PurchaseOrderSupplierProducts.Where(x => x.PurchaseOrder == _po) .Select(x => x.SupplierProduct.Product) .Distinct() .ToList(); Dictionary <int, int> _prodCountCheckDict = new Dictionary <int, int>(); //Assign Dictionary for (int i = 0; i < prodListCheck.Count; i++) { int p = prodListCheck[i].Id; _prodCountCheckDict[p] = db.PurchaseOrderSupplierProducts .Where(x => x.PurchaseOrder == _po) .Where(x => x.SupplierProduct.Product.Id == p) .First() .POQuantityRequested; } //Update Dict Value for Checking for (int i = 0; i < prodListCheck.Count; i++) { List <DeliveryOrderSupplierProduct> _dosrList = doService.FindDOSRByProductIdAndPO(_po, prodListCheck[i].Id); foreach (DeliveryOrderSupplierProduct _dosr in _dosrList) { int p2 = _dosr.PurchaseOrderSupplierProduct.SupplierProduct.Product.Id; _prodCountCheckDict[p2] = _prodCountCheckDict[p2] - _dosr.DOQuantityReceived; Debug.WriteLine(p2 + ": " + _prodCountCheckDict[p2]); } } List <DeliveryOrderSupplierProduct> dosrList = new List <DeliveryOrderSupplierProduct>(); foreach (KeyValuePair <int, int> entry in _prodCountCheckDict) { PurchaseOrderSupplierProduct _posr = db.PurchaseOrderSupplierProducts .Where(x => x.PurchaseOrder == _do.PurchaseOrder) .Where(x => x.SupplierProduct.Product.Id == entry.Key) .First(); DeliveryOrderSupplierProduct _dosr = db.DeliveryOrderSupplierProducts .Where(x => x.DeliveryOrder == _do) .Where(x => x.PurchaseOrderSupplierProduct == _posr) .First(); _dosr.DOQuantityReceived = entry.Value; dosrList.Add(_dosr); } return(dosrList); }
public void AddPurchaseOrder(PurchaseOrder purchaseOrder) { DataContext.PurchaseOrders.InsertOnSubmit(purchaseOrder); }
public async Task <ISingleResponse <PurchaseOrder> > CreatePurchaseOrderAsync(PurchaseOrder entity) { Logger?.LogInformation("'{0}' has been invoked", nameof(CreatePurchaseOrderAsync)); try { UnitOfWork.Repository <PurchaseOrder>().Add(entity); await UnitOfWork.SaveChangesAsync(); return(new SingleResponse <PurchaseOrder>(entity)); } catch (Exception ex) { return(new SingleResponse <PurchaseOrder>(Logger, nameof(CreatePurchaseOrderAsync), ex)); } }
public void UpdatePurchaseOrder(PurchaseOrder current) { DataContext.PurchaseOrders.Attach(current); }
/// <summary> /// Validates the success response against the saved order. /// </summary> /// <param name="response"></param> /// <returns></returns> protected virtual StatusCode ValidateResponse(PaymentSuccessResponse response) { PurchaseOrder purchaseOrder = PurchaseOrder.LoadByOrderGroupId(int.Parse(response.OrderNumber)); if (purchaseOrder == null) { return(StatusCode.OrderNotFound); } if (string.IsNullOrWhiteSpace(response.TransactionNumber)) { return(StatusCode.TransactionNumberMissing); } if (string.IsNullOrWhiteSpace(response.InterfaceVersion)) { return(StatusCode.InterfaceVersionMissing); } if (string.IsNullOrWhiteSpace(response.OrderCurrencyCode)) { return(StatusCode.OrderCurrencyCodeMissing); } if (string.IsNullOrWhiteSpace(response.OrderGrossAmount)) { return(StatusCode.OrderGrossAmountMissing); } if (string.IsNullOrWhiteSpace(response.OrderGrossAmount)) { return(StatusCode.OrderGrossAmountMissing); } if (string.IsNullOrWhiteSpace(response.SoftwareVersion)) { return(StatusCode.SoftwareVersionMissing); } if (string.IsNullOrWhiteSpace(response.OrderTimestamp)) { return(StatusCode.OrderTimestampMissing); } if (response.OrderTimestamp.Equals(purchaseOrder.GetString(MetadataConstants.OrderTimestamp), StringComparison.InvariantCulture) == false) { return(StatusCode.OrderTimestampMismatch); } if (response.OrderGrossAmount.Equals(purchaseOrder.Total.ToVerifoneAmountString()) == false) { return(StatusCode.OrderGrossAmountMismatch); } if (response.OrderCurrencyCode.Equals(purchaseOrder.GetString(MetadataConstants.OrderCurrencyCode)) == false) { return(StatusCode.OrderCurrencyCodeMismatch); } // TODO: Validate signature-one and signature-two return(StatusCode.OK); }
partial void PurchaseOrders_Inserting(PurchaseOrder entity) { if (entity.PurchaseOrderStatus == true) { foreach (PurchaseOrderDetail PODetail in entity.PurchaseOrderDetails) { PODetail.IsReceiveComplete = true; } } }
public void DeletePurchaseOrder(PurchaseOrder current) { DataContext.PurchaseOrders.Attach(current); DataContext.PurchaseOrders.DeleteOnSubmit(current); }
public bool Update(string id, PurchaseOrder purchaseOrder) { purchaseOrder.PurchaseOrderId = int.Parse(id); return(_controller.Submit(purchaseOrder)); }
public bool EditOrderProdukbeli(ListOrderBeli oData, PurchaseOrder oDatas) { methodName = "EditOrderProdukbeli"; traceID = 1; using (var uow = new UnitOfWork(AppConfig.Current.ContextName)) { traceID = 2; var oDBData = uow.ListOrderBeli.Get(oData.Id); if (oDBData != null) { using (var trans = uow.BeginTransaction()) { try { traceID = 3; oDBData.MapFrom(oData); uow.ListOrderBeli.Update(oDBData); traceID = 4; OrderProdukBeli oDBListorderbeli = uow.OrderProdukBeli.SingleOrDefault(m => m.IdOrderProdukBeli == oData.IdOrderBeli); if (oDBListorderbeli != null) { traceID = 5; oDBListorderbeli.MapFrom(oData); traceID = 6; uow.OrderProdukBeli.Update(oDBListorderbeli); } else { traceID = 7; OrderProdukBeli oNewListorderbeli = new OrderProdukBeli(); oNewListorderbeli.MapFrom(oData); traceID = 8; uow.OrderProdukBeli.Add(oNewListorderbeli); } traceID = 9; OrderJasaBeli oDBListorderbeli1 = uow.OrderJasaBeli.SingleOrDefault(m => m.IdOrderJasa == oData.IdOrderBeli); if (oDBListorderbeli1 != null) { traceID = 10; oDBListorderbeli1.MapFrom(oData); traceID = 11; // oDBListorderbeli1.TanggalStartdate = oData.TanggalPengiriman; uow.OrderJasaBeli.Update(oDBListorderbeli1); } else { traceID = 12; traceID = 13; } traceID = 14; uow.Save(); trans.Commit(); } catch (Exception ex) { trans.Rollback(); throw new AppException(500, methodName, traceID, ex); } } } } return(true); }
public PurchaseOrderEditVM(PurchaseOrder entity) : base(entity) { }
public Task UpdateAsync(PurchaseOrder purchaseOrder) { _context.Entry <PurchaseOrder>(purchaseOrder); return(_context.SaveChangesAsync()); }
public void ReceiveOrder(int purchaseOrderID, List <OpenPurchaseOrderDetails> openPODetails) { //openpodetails and unordereditems collected in code-behind from controls on page using (var context = new eToolsContext()) { UnorderedPurchaseItemCartController unorderedItemsController = new UnorderedPurchaseItemCartController(); List <UnorderedPurchaseItemCart> unorderedItems = unorderedItemsController.Get_ListUnorderedPurchaseItemCart(); //transaction //create a receiveorder for the purchaseorderid ReceiveOrder receiveOrder = new ReceiveOrder(); receiveOrder.PurchaseOrderID = purchaseOrderID; receiveOrder.ReceiveDate = DateTime.Now; context.ReceiveOrders.Add(receiveOrder); //create receiveorderdetails for each openPODetails if there is anything entered in receivedquantity foreach (OpenPurchaseOrderDetails openPO in openPODetails) { //make a receiveorderdetail if quantityreceived > 0 and update stockitems, make a returnorderdetail if quantityreturned > 0 if (openPO.ReceivedQuantity > 0) { ReceiveOrderDetail rOD = new ReceiveOrderDetail(); rOD.ReceiveOrderID = receiveOrder.ReceiveOrderID; rOD.PurchaseOrderDetailID = openPO.PurchaseOrderDetailID; rOD.QuantityReceived = openPO.ReceivedQuantity; openPO.QuantityOutstanding -= openPO.ReceivedQuantity; context.ReceiveOrderDetails.Add(rOD); //adjust stockitem QoH (+ReceivedQuantity) and QoO (-ReceivedQuantity) with same stockitemid StockItem stockItem = context.StockItems.Find(openPO.StockItemID); stockItem.QuantityOnHand += openPO.ReceivedQuantity; stockItem.QuantityOnOrder -= openPO.ReceivedQuantity; context.Entry(stockItem).State = System.Data.Entity.EntityState.Modified; } if (openPO.ReturnedQuantity > 0) { ReturnedOrderDetail reOD = new ReturnedOrderDetail(); reOD.ReceiveOrderID = receiveOrder.ReceiveOrderID; reOD.PurchaseOrderDetailID = openPO.PurchaseOrderDetailID; reOD.ItemDescription = openPO.StockItemDescription; reOD.Quantity = openPO.ReturnedQuantity; reOD.Reason = openPO.ReturnReason; reOD.VendorStockNumber = openPO.VendorStockNumber; context.ReturnedOrderDetails.Add(reOD); } } //create returnorderdetail for each unorderedItems and delete them from database UnorderedPurchaseItemCartController unOsysmgr = new UnorderedPurchaseItemCartController(); foreach (UnorderedPurchaseItemCart item in unorderedItems) { ReturnedOrderDetail reOD = new ReturnedOrderDetail(); reOD.ReceiveOrderID = receiveOrder.ReceiveOrderID; reOD.ItemDescription = item.Description; reOD.Quantity = item.Quantity; reOD.VendorStockNumber = item.VendorStockNumber; context.ReturnedOrderDetails.Add(reOD); unOsysmgr.Delete_UnorderedPurchaseItemCart(item.CartID); } //if no purchaseorderdetails have > 0 QOS, close the order if (!(openPODetails.Any(x => x.QuantityOutstanding > 0))) { PurchaseOrder pOrder = context.PurchaseOrders.Find(purchaseOrderID); pOrder.Closed = true; context.Entry(pOrder).State = System.Data.Entity.EntityState.Modified; } context.SaveChanges(); } }
void updatepo() { purchase = null; }
// GET: uCommerceEmail public override ActionResult Index(RenderModel model) { PurchaseOrder basket = TransactionLibrary.GetPurchaseOrder(Guid.Parse(Request.QueryString["orderGuid"])); var basketModel = new PurchaseOrderViewModel(); basketModel.BillingAddress = basket.BillingAddress; basketModel.ShipmentAddress = basket.BillingAddress; foreach (var orderLine in basket.OrderLines) { var orderLineModel = new OrderlineViewModel(); orderLineModel.ProductName = orderLine.ProductName; orderLineModel.Sku = orderLine.Sku; orderLineModel.VariantSku = orderLine.VariantSku; orderLineModel.Total = new Money(orderLine.Total.GetValueOrDefault(), orderLine.PurchaseOrder.BillingCurrency).ToString(); orderLineModel.Tax = new Money(orderLine.VAT, basket.BillingCurrency).ToString(); orderLineModel.Price = new Money(orderLine.Price, basket.BillingCurrency).ToString(); orderLineModel.PriceWithDiscount = new Money(orderLine.Price - orderLine.Discount, basket.BillingCurrency).ToString(); orderLineModel.Quantity = orderLine.Quantity; orderLineModel.Discount = orderLine.Discount; basketModel.OrderLines.Add(orderLineModel); } basketModel.DiscountTotal = new Money(basket.DiscountTotal.GetValueOrDefault(), basket.BillingCurrency).ToString(); basketModel.DiscountAmount = basket.DiscountTotal.GetValueOrDefault(); basketModel.SubTotal = new Money(basket.SubTotal.GetValueOrDefault(), basket.BillingCurrency).ToString(); basketModel.OrderTotal = new Money(basket.OrderTotal.GetValueOrDefault(), basket.BillingCurrency).ToString(); basketModel.TaxTotal = new Money(basket.TaxTotal.GetValueOrDefault(), basket.BillingCurrency).ToString(); basketModel.ShippingTotal = new Money(basket.ShippingTotal.GetValueOrDefault(), basket.BillingCurrency).ToString(); basketModel.PaymentTotal = new Money(basket.PaymentTotal.GetValueOrDefault(), basket.BillingCurrency).ToString(); var shipment = basket.Shipments.FirstOrDefault(); if (shipment != null) { basketModel.ShipmentName = shipment.ShipmentName; basketModel.ShipmentAmount = basket.ShippingTotal.GetValueOrDefault(); } var payment = basket.Payments.FirstOrDefault(); if (payment != null) { basketModel.PaymentName = payment.PaymentMethodName; basketModel.PaymentAmount = basket.PaymentTotal.GetValueOrDefault(); } ViewBag.RowSpan = 4; if (basket.DiscountTotal > 0) { ViewBag.RowSpan++; } if (basket.ShippingTotal > 0) { ViewBag.RowSpan++; } if (basket.PaymentTotal > 0) { ViewBag.RowSpan++; } return(base.View("/Views/uCommerceEmail.cshtml", basketModel)); }
private void readBillInfoToUI() { // 单据表头表尾信息 m_purchaseOrder = PurchaseOrder.getInctance().getPurchaseInfoFromBillNumber(m_billNumber); m_supplierPkey = m_purchaseOrder.supplierId; this.labelPurchaseName.Visible = true; this.labelTradingDate.Visible = true; this.labelBillNumber.Visible = true; this.labelPurchaseType.Visible = true; this.labelDeliveryDate.Visible = true; this.labelPaymentDate.Visible = true; this.labelSummary.Visible = true; this.labelBusinessPeople.Visible = true; this.labelMakeBillStaff.Visible = true; this.labelReviewBillStaff.Visible = true; this.labelReviewDate.Visible = true; this.labelPurchaseName.Text = m_purchaseOrder.supplierName; this.labelTradingDate.Text = m_purchaseOrder.tradingDate; this.labelBillNumber.Text = m_purchaseOrder.billNumber; this.labelPurchaseType.Text = m_purchaseOrder.purchaseType; this.labelDeliveryDate.Text = m_purchaseOrder.deliveryDate; this.labelPaymentDate.Text = m_purchaseOrder.paymentDate; this.labelSummary.Text = m_purchaseOrder.exchangesUnit; m_staffPkey = m_purchaseOrder.businessPeopleId; this.labelBusinessPeople.Text = m_purchaseOrder.businessPeopleName; this.labelMakeBillStaff.Text = m_purchaseOrder.makeOrderStaffName; // DataGridView 赋值 SortedDictionary <int, PurchaseOrderDetailsTable> purchaseOrderDetails = PurchaseOrderDetails.getInctance().getPurchaseInfoFromBillNumber(m_billNumber); foreach (KeyValuePair <int, PurchaseOrderDetailsTable> index in purchaseOrderDetails) { PurchaseOrderDetailsTable record = new PurchaseOrderDetailsTable(); record = index.Value; int rowIndex = Convert.ToInt32(record.rowNumber.ToString()) - 1; dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.MatetielNumber].Value = record.materielID; dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.MatetielName].Value = record.materielName; dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.Model].Value = record.materielModel; dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.Unit].Value = record.materielUnitPurchase; dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.Price].Value = record.price; dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.Value].Value = record.value; dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.Turnover].Value = record.sumMoney; dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.TransportationCost].Value = record.transportationCost; dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.OtherCost].Value = record.otherCost; dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.SumTurnover].Value = record.totalMoney; } // 如果单据已审核,则禁用页面所有控件 if (m_purchaseOrder.isReview == "1") { this.labelReviewBillStaff.Text = m_purchaseOrder.orderrReviewName; this.labelReviewDate.Text = m_purchaseOrder.reviewDate; this.panelIsReview.Visible = true; this.save.Enabled = false; this.toolStripButtonReview.Enabled = false; this.dataGridViewDataList.ReadOnly = true; this.dataGridViewDataCount.ReadOnly = true; this.panelPurchaseName.Visible = false; this.panelTradingDate.Visible = false; this.panelPurchaseType.Visible = false; this.panelDeliveryDate.Visible = false; this.panelPaymentDate.Visible = false; this.panelSummary.Visible = false; this.textBoxPurchaseName.Visible = false; this.dateTimePickerTradingDate.Visible = false; this.comboBoxPurchaseType.Visible = false; this.dateTimePickerDeliveryDate.Visible = false; this.dateTimePickerPaymentDate.Visible = false; this.textBoxSummary.Visible = false; this.panelBusinessPeople.Visible = false; } else { this.labelReviewBillStaff.Visible = false; this.labelReviewDate.Visible = false; } }
public void DeletePurchase(PurchaseOrder purchase) { this._stockProvider.Delete(_stockProvider.Get().ToList().Where(item => item.PurchaseOrderId == purchase.Id).FirstOrDefault()); this._purchaseProvider.Delete(purchase); }
public async Task <Tuple <int, Stream> > UploadPurchaseOrderAsync(MemoryStream memoryStream) { using (var reader = new StreamReader(memoryStream)) using (var csv = new CsvReader(reader)) { csv.Configuration.IgnoreBlankLines = false; csv.Configuration.RegisterClassMap <PurchaseOrderHeaderMapping>(); csv.Configuration.RegisterClassMap <PurchaseOrderLineMapping>(); var headerRecords = new List <PurchaseOrderHeader>(); var lineItemRecords = new List <PurchaseOrderLine>(); var isHeader = true; while (csv.Read()) { if (isHeader) { csv.ReadHeader(); isHeader = false; continue; } if (string.IsNullOrEmpty(csv.GetField(0))) { isHeader = true; continue; } switch (csv.Context.HeaderRecord[0]) { case "External Reference": headerRecords.Add(csv.GetRecord <PurchaseOrderHeader>()); break; case "Product ID": lineItemRecords.Add(csv.GetRecord <PurchaseOrderLine>()); break; default: throw new InvalidOperationException("Unknown record type."); } } PurchaseOrderList purchaseOrders = new PurchaseOrderList(); foreach (var header in headerRecords) { var purchaseOrder = new PurchaseOrder(); purchaseOrder.ObjectNodeSenderTechnicalID = header.ExternalReference; purchaseOrder.Name.Text = header.Name; purchaseOrder.CurrencyCode = header.CurrencyCode; purchaseOrder.DeliveryTerms.IncoTerms.ClassificationCode = header.IncotermsCode; purchaseOrder.DeliveryTerms.IncoTerms.TransferLocationName = header.IncotermsLocationName; purchaseOrder.SellerParty.PartyKey.PartyID = header.SupplierId; purchaseOrder.ResponsiblePurchasingUnitParty.PartyKey.PartyID = header.PurchasingUnitId; var lineItems = lineItemRecords.FindAll(x => x.ExternalReference == header.ExternalReference); foreach (var line in lineItems) { int lineItemId = 10; var item = new Models.PurchaseOrders.PO.Item(); item.ItemID = lineItemId.ToString(); item.Quantity.Text = line.Quantity; item.Quantity.UnitCode = line.QuantityUnitCode; item.ListUnitPrice.Amount.Text = line.ListUnitPriceAmount; item.ListUnitPrice.Amount.CurrencyCode = header.CurrencyCode; item.ShipToLocation.LocationID = line.ShipToLocationId; item.DirectMaterialIndicator = "true"; item.ThirdPartyDealIndicator = "false"; item.FollowUpDelivery.EmployeeTimeConfirmationRequiredIndicator = "false"; item.FollowUpInvoice.EvaluatedReceiptSettlementIndicator = "false"; item.FollowUpInvoice.RequirementCode = "01"; purchaseOrder.Items.Add(item); lineItemId += 10; } purchaseOrders.PurchaseOrders.Add(purchaseOrder); } var purchaseOrderXml = HelperExtensions.SerializeToXml(purchaseOrders); //read createxml file string filePath = Path.Combine(HostingEnvironment.ContentRootPath, "xmlfiles/purchaseOrder.xml"); //merge xml files XmlDocument doc = new XmlDocument(); doc.Load(filePath); var nsmgr = new XmlNamespaceManager(doc.NameTable); nsmgr.AddNamespace("soapenv", "http://schemas.xmlsoap.org/soap/envelope/"); nsmgr.AddNamespace("glob", "http://sap.com/xi/SAPGlobal20/Global"); var element = doc.SelectSingleNode("/soapenv:Envelope/soapenv:Body/glob:PurchaseOrderBundleMaintainRequest_sync", nsmgr); if (element != null) { var subDoc = new XmlDocument(); subDoc.LoadXml(purchaseOrderXml); var nsmgr1 = new XmlNamespaceManager(subDoc.NameTable); nsmgr1.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema"); nsmgr1.AddNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance"); var purchaseOrderListNodes = subDoc.SelectNodes("//PurchaseOrderList/PurchaseOrder", nsmgr1); var sb = new StringBuilder(); foreach (XmlNode child in purchaseOrderListNodes) { sb.AppendLine("<PurchaseOrder>"); sb.AppendLine(child.InnerXml); sb.AppendLine("</PurchaseOrder>"); } var res = sb.ToString(); element.InnerXml = sb.ToString(); var basicMsgNode = doc.CreateNode(XmlNodeType.Element, "BasicMessageHeader", null); XmlNode purchaseOrderNode = doc.SelectSingleNode("//PurchaseOrder"); element.InsertBefore(basicMsgNode, purchaseOrderNode); doc.Save(filePath); StreamReader sr = new StreamReader(filePath); string soapXml = sr.ReadToEnd(); sr.Close(); var tenantSetting = await _tenantSettingService.GetSetting(); UriBuilder urlBuilder = new UriBuilder(tenantSetting.BaseUrl) { Path = "/sap/bc/srt/scs/sap/managepurchaseorderin" }; var request = new HttpRequestMessage(HttpMethod.Post, urlBuilder.ToString()); request.Headers.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("text/xml")); var byteArray = Encoding.ASCII.GetBytes($"{tenantSetting.User}:{tenantSetting.Password}"); request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray)); request.Content = new StringContent(soapXml, Encoding.UTF8, "text/xml"); var response = await _client.HttpClient.SendAsync(request); if (response.IsSuccessStatusCode) { var responseData = await response.Content.ReadAsStreamAsync(); return(Tuple.Create((int)response.StatusCode, responseData)); } var errorResonseData = await response.Content.ReadAsStreamAsync(); return(Tuple.Create((int)response.StatusCode, errorResonseData)); } } return(null); }
//For Cybersource: save merchant reference code, request id, and merchant id into a lookup table for void functionality. djk 3.21.14 public void SaveCyberSourceResponse(PurchaseOrder order, ReplyMessage response, string siteName) { var sb = new StringBuilder(); try { var requestId = ""; var merchantId = ""; var merchantReferenceCode = ""; var _siteName = siteName; sb.Append("Entering save reponse\r\n"); //call to get correct merchant id based on site name if (!String.IsNullOrEmpty(_siteName)) { merchantId = Util.ConvertSiteNameToMerchantId(_siteName); } //merchant reference code if (!string.IsNullOrEmpty(order.PO)) { merchantReferenceCode = order.PO; } sb.Append("Save response site name: " + _siteName + "\r\n"); sb.Append("Save response merchant ID = " + merchantId + "\r\n"); //request id if (!string.IsNullOrEmpty(response.requestID)) { requestId = response.requestID; } if (!String.IsNullOrEmpty(ConfigurationManager.AppSettings["CyberSourceTransactionsConnectionString"])) { var connectionString = ConfigurationManager.AppSettings["CyberSourceTransactionsConnectionString"]; var insertCybersourceResponse = "InsertCyberSourceResponse"; sb.Append("connection string: " + connectionString + "\r\n"); using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); sb.Append("connection string open \r\n"); SqlParameter requestIdParam = new SqlParameter { ParameterName = "RequestId", SqlDbType = SqlDbType.VarChar, Direction = ParameterDirection.Input, Value = requestId }; SqlParameter merchantIdParam = new SqlParameter() { ParameterName = "MerchantId", SqlDbType = SqlDbType.VarChar, Direction = ParameterDirection.Input, Value = merchantId }; SqlParameter merchantReferenceCodeParam = new SqlParameter() { ParameterName = "MerchantReferenceCode", SqlDbType = SqlDbType.VarChar, Direction = ParameterDirection.Input, Value = merchantReferenceCode }; if (conn != null) { SqlCommand command = new SqlCommand(insertCybersourceResponse, conn); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add(requestIdParam); command.Parameters.Add(merchantIdParam); command.Parameters.Add(merchantReferenceCodeParam); var result = command.ExecuteNonQuery(); } } } else { sb.Append("save response connection string from config is empty."); } TraceToLogSaveResponse(sb.ToString()); } catch (ApplicationException e) { sb.Append("Error: " + e.Message); TraceToLogSaveResponse(sb.ToString()); throw new Exception(e.Message); } }
public bool CreatePurchaseOrder(PurchaseOrder po) { return(IsValid(po) && po.Items.Count > 0 ? repo.CreatePurchaseOrder(po) : false); }
public void POConstructor() { po=new PurchaseOrder(); Assert.AreEqual(po.Number,"", "Number not initialized."); Assert.AreEqual(po.PartCount,0, "PartCount not initialized."); Assert.AreEqual(po.ChargeCount,0, "ChargeCount not initialized."); Assert.AreEqual(po.Invoice,null, "Invoice not initialized."); Assert.AreEqual(po.Vendor,null, "Vendor not initialized."); }
public bool UpdateStatus(PurchaseOrder purchase) { this._purchaseProvider.Update(purchase); return(true); }
//update PurchaseOrder private int UpdatePurchaseOrder(PurchaseOrder po) { return(poDAO.UpdatePurchaseOrder(po)); }
private ExportOrderInformation ExportOrder(PurchaseOrder purchaseOrder, IExportOrderService service) { // Export to back-end system, and retrieves an external id that is stored on the order string externalOrderNumber = service.ExportOrder(purchaseOrder); _log.Debug("Exported {0} to external system, got {1} back", purchaseOrder.TrackingNumber, externalOrderNumber); // TODO: This design could be better // It might take days to get a status update from a backend system. We // cannot export the same order many times, that would be a problem. // Instead, we should add a flag to indicate the order has been exported, // save it on order and reserve the BackendOrderNumber field to the // actual order id in the back-end. This will allow us to track that // an order has been exported, but not completed yet. // We could also use a custom Order Status for this ExportOrderInformation result = new ExportOrderInformation { ExternalOrderId = externalOrderNumber, PurchaseOrderNumber = purchaseOrder.TrackingNumber }; return result; }
public override void Given() { order = PurchaseOrder.MakeValidOrder(); map = new ChangeOrderAttributesMap(); }
/// <summary> /// 提交订单,保存修改 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSubmit_Click(object sender, EventArgs e) { this.btnSubmit.Enabled = false; this.dataGridView1.EndEdit(); try { if (this.dataGridView1.Rows.Count <= 0) { MessageBox.Show("您至少需要增加一条采购药品信息,请选择采购药品", "错误", MessageBoxButtons.OK); this.btnSubmit.Enabled = true; return; } foreach (DataGridViewRow dr in this.dataGridView1.Rows) { if (Convert.ToDecimal(dr.Cells[clmDrugNumber.Name].Value) <= 0 || Convert.ToDecimal(dr.Cells[clmPurchasePrice.Name].Value) <= 0) { MessageBox.Show("单价或数量为0"); this.btnSubmit.Enabled = true; dataGridView1.CurrentCell = dr.Cells[clmDrugNumber.Name]; dataGridView1.BeginEdit(true); return; } } string msg = string.Empty; #region 构造主表 PurchaseOrder order = new PurchaseOrder(); List <PurchaseOrderDetail> orderDetails = new List <PurchaseOrderDetail>(); order.Decription = txtDescription.Text; order.SupplyUnitId = _order.SupplyUnitId; order.Id = _order.Id; order.CreateUserId = _order.CreateUserId; order.OrderStatusValue = (int)OrderStatus.Waitting; order.AllReceiptedDate = dtpAllReceiptedDate.Value; order.UpdateUserId = AppClientContext.CurrentUser.Id; #endregion #region 构造明细表 for (int j = 0; j < this._listPurchaseOrderDetail.Count; j++) { PurchaseOrderDetail detail = new PurchaseOrderDetail(); detail.AmountOfTax = this._listPurchaseOrderDetail[j].AmountOfTax; detail.DrugInfoId = this._listPurchaseOrderDetail[j].DrugInfoId; detail.Amount = this._listPurchaseOrderDetail[j].Amount; detail.PurchasePrice = this._listPurchaseOrderDetail[j].PurchasePrice; detail.Id = _listPurchaseOrderDetail[j].Id; detail.sequence = j; detail.Deleted = _listPurchaseOrderDetail[j].isdeleted; orderDetails.Add(detail); } #endregion this.PharmacyDatabaseService.CreatePurchaseOrder(out msg, order, orderDetails.ToArray()); if (!String.IsNullOrEmpty(msg)) { MessageBox.Show(msg, "错误", MessageBoxButtons.OK); return; } PurchaseOrder updateOrder = this.PharmacyDatabaseService.GetPurchaseOrder(out msg, order.Id); nudTotalMoney.Value = updateOrder.TotalMoney; lblOrderStatus.Text = EnumHelper <OrderStatus> .GetDisplayValue(OrderStatus.Waitting);; btnSubmit.Enabled = false; MessageBox.Show("采购记录修改成功", "提示", MessageBoxButtons.OK); this.PharmacyDatabaseService.WriteLog(AppClientContext.CurrentUser.Id, "执行更新采购记录单细节操作成功,采购单号:" + updateOrder.DocumentNumber); } catch (Exception ex) { MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK); this.btnSubmit.Enabled = true; Log.Error(ex); } }
//add PurchaseOrder with PODetails public int AddPurchaseOrder(PurchaseOrder po) { return(poDAO.AddPurchaseOrder(po)); }
void po_validation() { it["prepares_valid_data"] = () => { item1.Errors.Count().should_be(0); item2.Errors.Count().should_be(0); contact.Errors.Count().should_be(0); }; it["creates_po"] = () => { newPO = new PurchaseOrder { ContactId = contact.Id, PurchaseDate = DateTime.Now }; newPO = poService.CreateObject(newPO, contactService); newPO.Errors.Count().should_be(0); poService.GetObjectById(newPO.Id).should_not_be_null(); }; context["when creating PO Detail"] = () => { before = () => { newPO = new PurchaseOrder { ContactId = contact.Id, PurchaseDate = DateTime.Now }; newPO = poService.CreateObject(newPO, contactService); }; it["creates po detail"] = () => { PurchaseOrderDetail poDetail = new PurchaseOrderDetail { PurchaseOrderId = newPO.Id, ItemId = item1.Id, Quantity = 5, Price = 30000 }; poDetail = poDetailService.CreateObject(poDetail, poService, itemService); poDetail.Errors.Count().should_be(0); }; it["must not allow PO confirmation if there is no PO Detail"] = () => { newPO = poService.ConfirmObject(newPO, DateTime.Today, poDetailService, stockMutationService, itemService, _barringService, _warehouseItemService); newPO.Errors.Count().should_not_be(0); }; it["should not create po detail if there is no item id"] = () => { PurchaseOrderDetail poDetail = new PurchaseOrderDetail { PurchaseOrderId = newPO.Id, ItemId = 0, Quantity = 5, Price = 25000 }; poDetail = poDetailService.CreateObject(poDetail, poService, itemService); poDetail.Errors.Count().should_not_be(0); }; context["when creating PO Detail"] = () => { before = () => { poDetail1 = new PurchaseOrderDetail { PurchaseOrderId = newPO.Id, ItemId = item1.Id, Quantity = 5, Price = 30000 }; poDetail1 = poDetailService.CreateObject(poDetail1, poService, itemService); }; it["should be valid when creating PO Detail 1"] = () => { poDetail1.Errors.Count.should_be(0); }; it["should not be valid when creating PO Detail 2 with the same item"] = () => { poDetail2 = new PurchaseOrderDetail { PurchaseOrderId = newPO.Id, ItemId = item1.Id, Quantity = 5, Price = 2500000 }; poDetail2 = poDetailService.CreateObject(poDetail2, poService, itemService); poDetail2.Errors.Count().should_not_be(0); }; context["should not be valid when creating PO Detail 2 with the same item"] = () => { before = () => { poDetail2 = new PurchaseOrderDetail { PurchaseOrderId = newPO.Id, ItemId = item2.Id, Quantity = 5, Price = 2500000 }; poDetail2 = poDetailService.CreateObject(poDetail2, poService, itemService); }; it["should be valid when creating a new PO Detail 2"] = () => { poDetail2.Errors.Count().should_be(0); }; it["should not be valid when updating PO Detail 2 item to the same item as POD1"] = () => { poDetail2.ItemId = item1.Id; poDetailService.UpdateObject(poDetail2, poService, itemService); poDetail2.Errors.Count().should_not_be(0); }; }; }; }; context["when confirming PO"] = () => { before = () => { newPO = new PurchaseOrder { ContactId = contact.Id, PurchaseDate = DateTime.Now }; newPO = poService.CreateObject(newPO, contactService); poDetail1 = new PurchaseOrderDetail { PurchaseOrderId = newPO.Id, ItemId = item1.Id, Quantity = 5, Price = 30000 }; poDetail1 = poDetailService.CreateObject(poDetail1, poService, itemService); poDetail2 = new PurchaseOrderDetail { PurchaseOrderId = newPO.Id, ItemId = item2.Id, Quantity = 5, Price = 25000 }; poDetail2 = poDetailService.CreateObject(poDetail2, poService, itemService); }; it["allows confirmation"] = () => { newPO = poService.ConfirmObject(newPO, DateTime.Today, poDetailService, stockMutationService, itemService, _barringService, _warehouseItemService); newPO.IsConfirmed.should_be(true); }; context["post PO confirm"] = () => { before = () => { item1 = itemService.GetObjectById(item1.Id); item2 = itemService.GetObjectById(item2.Id); Quantity1 = item1.PendingReceival; Quantity2 = item2.PendingReceival; newPO = poService.ConfirmObject(newPO, DateTime.Today, poDetailService, stockMutationService, itemService, _barringService, _warehouseItemService); }; it["should increase pending receival in item"] = () => { int diff_1 = item1.PendingReceival - Quantity1; diff_1.should_be(poDetail1.Quantity); int diff_2 = item2.PendingReceival - Quantity2; diff_2.should_be(poDetail2.Quantity); }; it["should create StockMutation"] = () => { stockMutationService.GetObjectsByItemId(item1.Id).Count().should_be(1); stockMutationService.GetObjectsByItemId(item2.Id).Count().should_be(1); }; }; }; }
private static void HandlePurcahseOrderPaymentMessage(PurchaseOrder message) { Console.WriteLine(message); }
} //eom public void Add_ReceivedOrders(int purchaseOrderId, int poNumber, List <ReceiveOrderDetail> newOrders) { using (var context = new ApplicationDbContext()) { int idValue = 0; ReceiveOrder receiveNewOrder = null; ReceiveOrderDetail receiveNewOrderDetail = null; ReturnedOrderDetail returnedOrder = null; //Add new received order receiveNewOrder = new ReceiveOrder(); receiveNewOrder.PurchaseOrderID = purchaseOrderId; receiveNewOrder.ReceiveDate = DateTime.Now; receiveNewOrder = context.ReceiveOrders.Add(receiveNewOrder); idValue = receiveNewOrder.ReceiveOrderDetails.Count() + 1; //Loop through the details of order foreach (ReceiveOrderDetail item in newOrders) { if (item.QtyReceived != 0) { if (item.QtyReceived <= item.Outstanding) { receiveNewOrderDetail = new ReceiveOrderDetail(); receiveNewOrderDetail.PurchaseOrderDetailID = item.PurchaseOrderDetailId; receiveNewOrderDetail.ReceiveOrderID = idValue; receiveNewOrderDetail.QuantityReceived = item.QtyReceived; receiveNewOrder.ReceiveOrderDetails.Add(receiveNewOrderDetail); //Update quantities in parts table var partExists = context.Parts.Where(p => p.PartID == item.PartId).SingleOrDefault(); if (partExists != null) { if (partExists.QuantityOnOrder >= item.Outstanding) { context.Parts.Attach(partExists); partExists.QuantityOnHand += item.QtyReceived; partExists.QuantityOnOrder -= item.QtyReceived; context.Entry(partExists).State = EntityState.Modified; } else { throw new Exception("There is an issue with Part Number " + partExists.PartID + " - " + partExists.Description + " the quanity on order (" + partExists.QuantityOnOrder + ") is less than that outsanding."); } } else { throw new Exception("Part does not exist in database or there is no quantity on order"); } } else { throw new Exception("Receive Quantity can not be more than Outstanding quantity"); } } //Process returned items if (!string.IsNullOrEmpty(item.QtyReturned.ToString()) && !string.IsNullOrEmpty(item.Notes)) { returnedOrder = new ReturnedOrderDetail(); returnedOrder.ReceiveOrderID = idValue; returnedOrder.PurchaseOrderDetailID = item.PurchaseOrderDetailId; returnedOrder.ItemDescription = item.PartDescription; returnedOrder.Quantity = item.QtyReturned; returnedOrder.Reason = item.Notes; returnedOrder.VendorPartNumber = item.PartId.ToString(); receiveNewOrder.ReturnedOrderDetails.Add(returnedOrder); } } //Process items in unorder cart var unordered = context.UnorderedPurchaseItemCarts.Where(up => up.PurchaseOrderNumber == 0); if (unordered.Count() > 0) { foreach (var unorderedItem in unordered) { ReturnedOrderDetail unorderedReturn = new ReturnedOrderDetail(); unorderedReturn.ReceiveOrderID = idValue; unorderedReturn.Quantity = unorderedItem.Quantity; unorderedReturn.Reason = unorderedItem.Description; unorderedReturn.VendorPartNumber = unorderedItem.VendorPartNumber; receiveNewOrder.ReturnedOrderDetails.Add(unorderedReturn); context.UnorderedPurchaseItemCarts.Remove(unorderedItem); } } //Get count of outstanding items int outstandingSum = newOrders.Sum(item => item.Outstanding); int receivedSum = newOrders.Sum(rs => rs.QtyReceived); if ((outstandingSum - receivedSum) == 0) { PurchaseOrder po = context.PurchaseOrders.Find(purchaseOrderId); if (po != null) { context.PurchaseOrders.Attach(po); po.Closed = true; context.Entry(po).State = EntityState.Modified; } } context.SaveChanges(); } }
static void Main(string[] args) { var firstOrder = PurchaseOrder.All().First(); }
private void InstantiateObjects(ISession session) { this.finishedGood = (FinishedGood)session.Instantiate(this.finishedGood); this.currentPurchasePrice = (ProductPurchasePrice)session.Instantiate(this.currentPurchasePrice); this.order = (PurchaseOrder)session.Instantiate(this.order); this.supplier = (Organisation)session.Instantiate(this.supplier); }
public override void Init() { base.Init(); var euro = new Currencies(this.DatabaseSession).FindBy(Currencies.Meta.IsoCode, "EUR"); var mechelen = new CityBuilder(this.DatabaseSession).WithName("Mechelen").Build(); ContactMechanism takenViaContactMechanism = new PostalAddressBuilder(this.DatabaseSession).WithGeographicBoundary(mechelen).WithAddress1("Haverwerf 15").Build(); var supplierContactMechanism = new PartyContactMechanismBuilder(this.DatabaseSession) .WithContactMechanism(takenViaContactMechanism) .WithUseAsDefault(true) .WithContactPurpose(new ContactMechanismPurposes(this.DatabaseSession).BillingAddress) .Build(); var internalOrganisation = new InternalOrganisations(this.DatabaseSession).FindBy(InternalOrganisations.Meta.Name, "internalOrganisation"); this.supplier = new OrganisationBuilder(this.DatabaseSession).WithName("supplier").Build(); this.supplier.AddPartyContactMechanism(supplierContactMechanism); new SupplierRelationshipBuilder(this.DatabaseSession).WithSupplier(supplier).WithInternalOrganisation(internalOrganisation).Build(); this.finishedGood = new FinishedGoodBuilder(this.DatabaseSession) .WithManufacturerId("10101") .WithName("finished good") .Build(); var supplierOffering = new SupplierOfferingBuilder(this.DatabaseSession) .WithPart(this.finishedGood) .WithSupplier(this.supplier) .WithFromDate(DateTime.UtcNow.AddYears(-1)) .Build(); var previousPurchasePrice = new ProductPurchasePriceBuilder(this.DatabaseSession) .WithCurrency(euro) .WithUnitOfMeasure(new UnitsOfMeasure(this.DatabaseSession).Piece) .WithFromDate(DateTime.UtcNow.AddYears(-1)) .WithThroughDate(DateTime.UtcNow.AddDays(-1)) .WithPrice(8) .Build(); this.currentPurchasePrice = new ProductPurchasePriceBuilder(this.DatabaseSession) .WithCurrency(euro) .WithUnitOfMeasure(new UnitsOfMeasure(this.DatabaseSession).Piece) .WithFromDate(DateTime.UtcNow) .WithThroughDate(DateTime.UtcNow.AddYears(1).AddDays(-1)) .WithPrice(10) .Build(); var futurePurchasePrice = new ProductPurchasePriceBuilder(this.DatabaseSession) .WithCurrency(euro) .WithUnitOfMeasure(new UnitsOfMeasure(this.DatabaseSession).Piece) .WithFromDate(DateTime.UtcNow.AddYears(1)) .WithPrice(8) .Build(); supplierOffering.AddProductPurchasePrice(previousPurchasePrice); supplierOffering.AddProductPurchasePrice(this.currentPurchasePrice); supplierOffering.AddProductPurchasePrice(futurePurchasePrice); this.order = new PurchaseOrderBuilder(this.DatabaseSession) .WithTakenViaSupplier(this.supplier) .WithBillToContactMechanism(takenViaContactMechanism) .WithDeliveryDate(DateTime.UtcNow) .WithVatRegime(new VatRegimes(this.DatabaseSession).Exempt) .Build(); this.DatabaseSession.Derive(true); this.DatabaseSession.Commit(); }
public static PurchaseOrder ConvertToPurchaseOrder(this OrderGroup orderGroup, PurchaseOrder purchaseOrder) { if (!string.IsNullOrEmpty(orderGroup.AddressId)) { purchaseOrder.AddressId = orderGroup.AddressId; } if (orderGroup.AffiliateId != Guid.Empty) { purchaseOrder.AffiliateId = orderGroup.AffiliateId; } if (!string.IsNullOrEmpty(orderGroup.BillingCurrency)) { purchaseOrder.BillingCurrency = orderGroup.BillingCurrency; } if (!string.IsNullOrEmpty(orderGroup.CustomerName)) { purchaseOrder.CustomerName = orderGroup.CustomerName; } if (orderGroup.HandlingTotal >= 0) { purchaseOrder.HandlingTotal = orderGroup.HandlingTotal; } if (orderGroup.InstanceId != Guid.Empty) { purchaseOrder.InstanceId = orderGroup.InstanceId; } if (orderGroup.MarketId != null) { purchaseOrder.MarketId = orderGroup.MarketId; } if (!string.IsNullOrEmpty(orderGroup.Owner)) { purchaseOrder.Owner = orderGroup.Owner; } if (!string.IsNullOrEmpty(orderGroup.OwnerOrg)) { purchaseOrder.OwnerOrg = orderGroup.OwnerOrg; } if (!string.IsNullOrEmpty(orderGroup.ProviderId)) { purchaseOrder.ProviderId = orderGroup.ProviderId; } if (orderGroup.ShippingTotal >= 0) { purchaseOrder.ShippingTotal = orderGroup.ShippingTotal; } if (!string.IsNullOrEmpty(orderGroup.Status)) { purchaseOrder.Status = orderGroup.Status; } if (orderGroup.SubTotal >= 0) { purchaseOrder.SubTotal = orderGroup.SubTotal; } if (orderGroup.TaxTotal >= 0) { purchaseOrder.TaxTotal = orderGroup.TaxTotal; } if (orderGroup.Total >= 0) { purchaseOrder.Total = orderGroup.Total; } orderGroup.MapPropertiesToModel(purchaseOrder); MapOrderAddresses(orderGroup, purchaseOrder); MapOrderNotes(orderGroup, purchaseOrder); MapOrderForms(orderGroup, purchaseOrder); return(purchaseOrder); }
private void PutData(PurchaseOrder newInvoice) { //newInvoice.purchaseOrderID = Convert.ToInt32(purchaseOrderID.Text.ToString()); newInvoice.employeeID = Convert.ToInt32(employeeID.SelectedValue.ToString()); newInvoice.vendorID = Convert.ToInt32(vendorID.SelectedValue.ToString()); }