Exemple #1
0
 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;
            }
        }
Exemple #9
0
	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());
        }
Exemple #11
0
	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;
                }
            }
        }
Exemple #15
0
	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();
	}
Exemple #16
0
 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.";
        }
    }
Exemple #18
0
    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();
    }
Exemple #19
0
        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;
        }
Exemple #20
0
        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));
 }
Exemple #25
0
 public string ExportOrder(PurchaseOrder purchaseOrder)
 {
     /// TODO: Implement in project
     throw new NotImplementedException("This service requires custom implementation.");
 }
Exemple #26
0
        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);
            }
        }
Exemple #27
0
        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);
        }
Exemple #28
0
 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));
            }
        }
Exemple #30
0
 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;
         }
     }
 }  
Exemple #33
0
 public void DeletePurchaseOrder(PurchaseOrder current)
 {
     DataContext.PurchaseOrders.Attach(current);
     DataContext.PurchaseOrders.DeleteOnSubmit(current);
 }
Exemple #34
0
 public bool Update(string id, PurchaseOrder purchaseOrder)
 {
     purchaseOrder.PurchaseOrderId = int.Parse(id);
     return(_controller.Submit(purchaseOrder));
 }
Exemple #35
0
        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());
 }
Exemple #38
0
        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();
            }
        }
Exemple #39
0
 void updatepo()
 {
     purchase = null;
 }
Exemple #40
0
        // 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));
        }
Exemple #41
0
        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;
            }
        }
Exemple #42
0
 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);
            }
        }
Exemple #45
0
 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.");
 }
Exemple #47
0
 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();
        }
Exemple #51
0
        /// <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);
                    };
                };
            };
        }
Exemple #54
0
 private static void HandlePurcahseOrderPaymentMessage(PurchaseOrder message)
 {
     Console.WriteLine(message);
 }
Exemple #55
0
        } //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();
 }
Exemple #57
0
 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);
 }
Exemple #58
0
        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);
        }
Exemple #60
-1
 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());
 }