public double LoadPreviousMrp(PurchaseItems purchaseItems)
        {
            double previousMrp = 0;

            //Connection
            //string connectionString = @"Server=DESKTOP-0LIAG2C\SQLEXPRESS; Database=BusinessManagementSystem; Integrated Security=True";
            SqlConnection sqlConnection = new SqlConnection(connectionString);

            //Command
            string     commandString = @"SELECT PreviousMRP FROM PurchaseItems WHERE CategoryId = " + purchaseItems.CategoryId + " And ProductId = " + purchaseItems.ProductId + " ";
            SqlCommand sqlCommand    = new SqlCommand(commandString, sqlConnection);

            //Execute
            if (sqlConnection.State == ConnectionState.Closed)
            {
                sqlConnection.Open();
            }

            SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();

            while (sqlDataReader.Read())
            {
                previousMrp = double.Parse((sqlDataReader["PreviousMRP"]).ToString());
            }

            //Close
            sqlConnection.Close();

            return(previousMrp);
        }
        protected void Page_PreRender(object sender, EventArgs e)
        {
            if (Purchasable == null)
            {
                PurchaseSummary.Visible     = false;
                GeneralErrorMessage.Visible = true;

                WebForm.EnableDisableNextButton(false);

                return;
            }

            PurchaseSummary.Visible     = true;
            GeneralErrorMessage.Visible = false;
            Shipping.Visible            = Purchasable.RequiresShipping;

            PurchaseDiscounts.DataSource = Purchasable.Discounts;
            PurchaseDiscounts.DataBind();

            PurchaseItems.DataSource = Purchasable.Items;
            PurchaseItems.DataBind();

            QuoteId.Value = Purchasable.Quote.Id.ToString();

            if (Purchasable.RequiresShipping && Purchasable.ShipToAddress != null)
            {
                ShippingCity.Text          = Purchasable.ShipToAddress.City;
                ShippingCountry.Text       = Purchasable.ShipToAddress.Country;
                ShippingName.Text          = Purchasable.ShipToAddress.Name;
                ShippingPostalCode.Text    = Purchasable.ShipToAddress.PostalCode;
                ShippingStateProvince.Text = Purchasable.ShipToAddress.StateOrProvince;
                ShippingAddressLine1.Text  = Purchasable.ShipToAddress.Line1;
                ShippingAddressLine2.Text  = Purchasable.ShipToAddress.Line2;
            }
        }
Exemple #3
0
        public ActionResult Create([Bind(Include = "Id,Code,Name,Quantity,UnitPrice,UnitId,PurchaseBillId,StoreId,PurchaseBillDate")] PurchaseItemsViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                StoreItems    storeItems     = new StoreItems();
                PurchaseItems purchaseItems  = Mapper.Map <PurchaseItems>(viewModel);
                Guid          purchaseItemid = Guid.NewGuid();
                purchaseItems.Id           = purchaseItemid;
                storeItems.Id              = Guid.NewGuid();
                storeItems.Code            = viewModel.Code;
                storeItems.Name            = viewModel.Name;
                storeItems.PurchaseBillId  = viewModel.PurchaseBillId;
                storeItems.Quantity        = viewModel.Quantity;
                storeItems.UnitPrice       = viewModel.UnitPrice;
                storeItems.ExtendedPrice   = viewModel.ExtendedPrice;
                storeItems.StoreId         = viewModel.StoreId;
                storeItems.Unit            = viewModel.Unit;
                storeItems.UnitId          = viewModel.UnitId;
                storeItems.BalanceQuantity = viewModel.Quantity;
                storeItems.ItemAddedDate   = viewModel.PurchaseBillDate;
                storeItems.PurchaseItemsId = purchaseItemid;
                storeItems.Type            = "Inward";

                _dbContext.StoreItems.Add(storeItems);
                _dbContext.PurchaseItems.Add(purchaseItems);
                _dbContext.SaveChanges();
                return(Json(new { success = true }));
            }

            ViewBag.PurchaseBillId = new SelectList(_dbContext.PurchaseBills, "Id", "BillInvoice", viewModel.PurchaseBillId);
            ViewBag.UnitId         = new SelectList(_dbContext.Units, "Id", "Name", viewModel.UnitId);
            ViewBag.StoreId        = new SelectList(_dbContext.Store, "Id", "Name");
            return(View(viewModel));
        }
 public void AddPurchase(PurchaseItem PurchaseItem)
 {
     if (LastPurchaseM.AddPurchase(PurchaseItem))
     {
         PurchaseItems.Remove(PurchaseItem);
     }
 }
        // Need method to print in right format so for brevity will ovveride tostring
        public override string ToString()
        {
            var builder = new StringBuilder();

            // group by description, use annon object for brevity
            var items = PurchaseItems
                        .GroupBy(item => item.Description)
                        .Select(group => new
            {
                Count       = group.Count(),
                Description = group.Key,
                Price       = group.Sum(i => i.GetPrice())
            });

            // need to consider how quantity works
            foreach (var purchaseItem in items)
            {
                // hard code pound as no other currencies, not ideal
                builder.AppendLine($"{purchaseItem.Count} {purchaseItem.Description}: £{purchaseItem.Price}");
            }

            // Add footer
            builder.AppendLine($"Sales Taxes: £{SalesTaxes}");
            builder.AppendLine($"Total: £{Total}");

            return(builder.ToString());
        }
Exemple #6
0
        public ActionResult Edit([Bind(Include = "Id,Code,Name,Quantity,UnitPrice,UnitId,WareHouseId,PurchaseBillId,StoreId,PurchaseBillDate")] PurchaseItemsViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                PurchaseItems purchaseItems = Mapper.Map <PurchaseItems>(viewModel);
                // StoreItems storeItems = _dbContext.StoreItems.Where(si => si.PurchaseBillId == purchaseItems.PurchaseBillId && si.StoreId == purchaseItems.StoreId).FirstOrDefault();
                StoreItems storeItems = _dbContext.StoreItems.Where(si => si.PurchaseItemsId == viewModel.Id).FirstOrDefault();
                storeItems.Code            = viewModel.Code;
                storeItems.Name            = viewModel.Name;
                storeItems.Quantity        = viewModel.Quantity;
                storeItems.UnitPrice       = viewModel.UnitPrice;
                storeItems.ExtendedPrice   = viewModel.ExtendedPrice;
                storeItems.BalanceQuantity = viewModel.Quantity;
                storeItems.ItemAddedDate   = viewModel.PurchaseBillDate;

                _dbContext.Entry(purchaseItems).State = EntityState.Modified;
                _dbContext.Entry(storeItems).State    = EntityState.Modified;
                _dbContext.SaveChanges();
                return(Json(new { success = true }));
            }
            ViewBag.PurchaseBillId = new SelectList(_dbContext.PurchaseBills, "Id", "BillInvoice", viewModel.PurchaseBillId);
            ViewBag.UnitId         = new SelectList(_dbContext.Units, "Id", "Name", viewModel.UnitId);
            ViewBag.WareHouseId    = new SelectList(_dbContext.WareHouses, "Id", "Name");
            return(View(viewModel));
        }
Exemple #7
0
        private void OnAdd()
        {
            //var aBook = new Book
            //    {
            //        Isbn = 1111111111111,
            //        Details = new BookInfo {Publisher = new Publisher(), Author = new Author()},
            //        PurchaseItem = new PurchaseItems()
            //    };
            //_ctx.Books.Add(aBook);
            var aAut = new Author {
                FirstName = "<Enter First Name>", LastName = "<Enter Last Name>"
            };
            var aPub = new Publisher {
                Name = "<Enter Publisher>"
            };
            var aBookInfo = new BookInfo {
                Title = "<Enter Title>", Author = aAut, Publisher = aPub, Isbn = 1
            };
            var aPur = new Purchase {
                Date = DateTime.Now, Id = Guid.NewGuid()
            };
            var aPi = new PurchaseItems {
                Id = aPur.Id, Purchase = aPur
            };
            //var abi = _ctx.BookInfoes.Find(aBookInfo.Isbn);
            //if (abi == null) _ctx.BookInfoes.Add(aBookInfo);
            //abi = _ctx.BookInfoes.Find(aBookInfo.Isbn);
            var aBook = new Book {
                Id = Guid.NewGuid(), Details = aBookInfo, Earning = 0, PurchaseItem = aPi
            };

            _ctx.Books.Add(aBook);
            _books.MoveCurrentTo(aBook);
        }
        public bool SubmitPurchaseItemsInfo(PurchaseItems purchaseItem)
        {
            bool isSupplierSubmit = false;

            //Connection
            //string connectionString = @"Server=DESKTOP-0LIAG2C\SQLEXPRESS; Database=BusinessManagementSystem; Integrated Security=True";
            SqlConnection sqlConnection = new SqlConnection(connectionString);

            //Command
            //INSERT INTO Category (Code, Name) Values ('1234', 'arafat')
            string     commandString = @"INSERT INTO PurchaseItems (CategoryId, ProductId, PurchaseId, AvailableQuantity, ManufacturedDate, ExpireDate, Quantity, UnitPrice, TotalPrice, PreviousUnitPrice, PreviousMRP, MRP, Remarks) Values (" + purchaseItem.CategoryId + ", " + purchaseItem.ProductId + ", " + purchaseItem.PurchaseId + ", " + purchaseItem.AvailableQuantity + ", '" + purchaseItem.ManufacturedDate + "', '" + purchaseItem.ExpireDate + "', " + purchaseItem.Quantity + ", " + purchaseItem.UnitPrice + ", " + purchaseItem.TotalPrice + ", " + purchaseItem.PreviousUnitPrice + ", " + purchaseItem.PreviousMRP + ", " + purchaseItem.MRP + ", '" + purchaseItem.Remarks + "')";
            SqlCommand sqlCommand    = new SqlCommand(commandString, sqlConnection);

            //Open
            sqlConnection.Open();
            //Insert

            int isExecuted = sqlCommand.ExecuteNonQuery();

            if (isExecuted > 0)
            {
                isSupplierSubmit = true;
            }

            //Close
            sqlConnection.Close();

            return(isSupplierSubmit);
        }
Exemple #9
0
        /// <summary>
        /// 生产出入库
        /// </summary>
        /// <returns></returns>
        public virtual StockEntity CreateStocks()
        {
            if (PurchaseItems == null || PurchaseItems.Count(it => it.Product != null && it.Product.Id != 0) == 0)
            {
                return(null);
            }
            var info = new StockEntity {
                Purchase = this, StockItems = new List <StockItemEntity>(), SaveType = SaveType.Add
            };

            foreach (var purchaseItem in PurchaseItems.Where(it => it.Product != null && it.Product.Id != 0))
            {
                var stockItem = new StockItemEntity
                {
                    Count      = purchaseItem.Count,
                    Stock      = info,
                    Product    = purchaseItem.Product,
                    Storehouse = Storehouse,
                    Name       = purchaseItem.Name,
                    SaveType   = SaveType.Add
                };
                info.StockItems.Add(stockItem);
            }

            return(info);
        }
        public int AvailableQuantity(PurchaseItems purchaseItems)
        {
            int avail = 0;

            //Connection
            //string connectionString = @"Server=DESKTOP-0LIAG2C\SQLEXPRESS; Database=BusinessManagementSystem; Integrated Security=True";
            SqlConnection sqlConnection = new SqlConnection(connectionString);

            //Command

            string     commandString = @"Select AvailableQuantity From PurchaseItems WHERE CategoryId = " + purchaseItems.CategoryId + " And ProductId = " + purchaseItems.ProductId + " ";
            SqlCommand sqlCommand    = new SqlCommand(commandString, sqlConnection);

            //Open
            sqlConnection.Open();

            //With DataReader
            SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();

            while (sqlDataReader.Read())
            {
                avail = Convert.ToInt32(sqlDataReader["AvailableQuantity"]);
            }

            //Close
            sqlConnection.Close();

            return(avail);
        }
        private void PreviousMrpLoad()
        {
            PurchaseItems purchaseItems = new PurchaseItems();

            purchaseItems.CategoryId = Convert.ToInt32(categoryComboBox.SelectedValue);
            purchaseItems.ProductId  = Convert.ToInt32(productsComboBox.SelectedValue);
            previousMRPTextBox.Text  = null;
            previousMRPTextBox.Text  = _PurchaseManager.LoadPreviousMrp(purchaseItems) + "";
        }
        private int GetPurchaseQuantity()
        {
            PurchaseItems purchase_ = new PurchaseItems();

            purchase_.CategoryId = Convert.ToInt32(categoryComboBox.SelectedValue);
            purchase_.ProductId  = Convert.ToInt32(productsComboBox.SelectedValue);

            purchaseQuantity = _PurchaseManager.LoadPurchaseQuantity(purchase_);

            return(purchaseQuantity);
        }
Exemple #13
0
        private async void SavePurchaseItem()
        {
            IRestDataMapper mapper = containerExtension.Resolve <IRestDataMapper>();

            CurrentPurchaseItem.recordState  = ConstValues.RCS_FINE;
            CurrentPurchaseItem.purchaseType = GetPurchaseType();
            decimal      rq = (CurrentPurchaseItem.reorderLevel * SelectedUom.baseRatioToPurchase * SelectedUom.purchaseQuantifyValue);
            PurchaseItem pi = PurchaseItems.Where(i => i.item.id == SelectedItem.id).FirstOrDefault();

            if (pi != null)
            {
                SelectedStore.reorderLevel      += rq;
                CurrentPurchaseItem.reorderLevel = rq;
                CurrentPurchaseItem = CurrentPurchaseItem.Merge(pi);
                _ = await PurchaseRestService.UpdatePurchaseItemAsync(mapper, CurrentPurchaseItem);

                _ = await ItemRestService.UpdateStoreInforAsync(mapper, SelectedStore);

                PurchaseItem np = CurrentPurchaseItem.CloneObject();
                PurchaseItems.Remove(pi);
                PurchaseItems.Add(np);
                SelectedStore       = null;
                SelectedUom         = null;
                SelectedItem        = null;
                SelectedItmCt       = null;
                CurrentPurchaseItem = null;
            }
            else
            {
                CurrentPurchaseItem.reorderLevel = rq;
                SelectedStore.reorderLevel       = rq;
                CurrentPurchaseItem = await PurchaseRestService.CreatePurchaseItemAsync(mapper, CurrentPurchaseItem);

                if (CurrentPurchaseItem.id > 0)
                {
                    _ = await ItemRestService.UpdateStoreInforAsync(mapper, SelectedStore);

                    PurchaseItems.Add(CurrentPurchaseItem.CloneObject());
                    SelectedStore       = null;
                    SelectedUom         = null;
                    SelectedItem        = null;
                    SelectedItmCt       = null;
                    CurrentPurchaseItem = null;
                }
                else
                {
                    _ = ShowMessageDialg("Saving Purchase Item", "Can't Savae Purchase Item, found Some problems.", MsgDialogType.error);
                }
            }
            CurrenPurchase.CalaculatePurchase(PurchaseItems);
            _ = await PurchaseRestService.UpdatePurchaseAsync(mapper, CurrenPurchase);
        }
Exemple #14
0
        public ActionResult Details(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PurchaseItems purchaseItems = _dbContext.PurchaseItems.Find(id);

            if (purchaseItems == null)
            {
                return(HttpNotFound());
            }
            return(View(purchaseItems));
        }
Exemple #15
0
        public async Task <IActionResult> NewOrder([FromBody] PurchaseItems items)
        {
            if (!items.Items.Any(x => x.Count > 0))
            {
                return(BadRequest("Number of elements less than zero"));
            }
            {
                foreach (var item in items.Items)
                {
                    var medicament = _medicamentsService.GetBy(x => x.Id == item.Id);
                    medicament.ItemsAvailable += item.Count;
                    _medicamentsService.Update(medicament);
                }

                return(Ok());
            }
        }
        public ActionResult MyPurchases()
        {
            string customer_id            = Request.Cookies["customer_id"].Value;
            List <PurchaseItems> allitems = new List <PurchaseItems>();

            using (SqlConnection conn = new SqlConnection("Server=.; Database=ShoppingCartT4; Integrated Security=true; MultipleActiveResultSets=True"))
            {
                conn.Open();
                string        sql    = @"select purchase_time, i.pro_id, pro_name, pro_desc, pro_image, count(i.pro_id) as count from Purchaseitem i join Product p on i.pro_id = p.pro_id where customer_id ='" + customer_id + "' group by i.pro_id, purchase_time, pro_name, pro_desc, pro_image";
                SqlCommand    cmd    = new SqlCommand(sql, conn);
                SqlDataReader reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    PurchaseItems singleitem = new PurchaseItems();
                    singleitem.purchase_time = (DateTime)reader["purchase_time"];
                    singleitem.pro_id        = (int)reader["pro_id"];
                    singleitem.pro_desc      = (string)reader["pro_desc"];
                    singleitem.pro_image     = (string)reader["pro_image"];
                    singleitem.pro_name      = (string)reader["pro_name"];
                    singleitem.count         = (int)reader["count"];
                    List <string> arr = new List <string>();

                    using (SqlConnection conn1 = new SqlConnection("Server=.; Database=ShoppingCartT4; Integrated Security=true; MultipleActiveResultSets=True"))
                    {
                        conn1.Open();

                        string        sql1    = @"select activation_code from Purchaseitem where purchase_time='" + singleitem.purchase_time.ToString("yyyy-MM-dd") + "' and pro_id = '" + singleitem.pro_id + "' and customer_id='" + customer_id + "'";
                        SqlCommand    cmd1    = new SqlCommand(sql1, conn);
                        SqlDataReader reader1 = cmd1.ExecuteReader();

                        while (reader1.Read())
                        {
                            arr.Add((string)reader1["activation_code"]);
                        }
                    }
                    singleitem.activation_code = arr;
                    allitems.Add(singleitem);
                }
            }
            ViewBag.purchases = allitems;
            ViewBag.Count     = int.Parse(Request.Cookies["Count"].Value);
            ViewBag.firstname = Request.Cookies["firstname"].Value;
            return(View());
        }
        private void showDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            PurchaseItems purchaseItems = new PurchaseItems();

            if (e.RowIndex >= 0)
            {
                DataGridViewRow row = this.showDataGridView.Rows[e.RowIndex];
                categoryComboBox.Text          = row.Cells[1].Value.ToString();
                productsComboBox.Text          = row.Cells[2].Value.ToString();
                manufactureDateTimePicker.Text = row.Cells[3].Value.ToString();
                expireDateTimePicker.Text      = row.Cells[4].Value.ToString();
                quantityTextBox.Text           = row.Cells[5].Value.ToString();
                unitPriceTextBox.Text          = row.Cells[6].Value.ToString();
                remarksTextBox.Text            = row.Cells[7].Value.ToString();
                addButton.Text = " Update ";
            }
            showDataGridView.DataSource = _PurchaseManager.Display();
        }
        private void GetTotalAvailableQuantity()
        {
            //availableQuantityTextBox.Text = null;

            int quantity = GetPurchaseQuantity();

            PurchaseItems purchase_ = new PurchaseItems();

            purchase_.CategoryId = Convert.ToInt32(categoryComboBox.SelectedValue);
            purchase_.ProductId  = Convert.ToInt32(productsComboBox.SelectedValue);

            int avail = _PurchaseManager.AvailableQuantity(purchase_);

            int totalQuantity = avail + quantity;

            //availableQuantity = availableQuantity + totalQuantity;

            availableQuantityTextBox.Text = totalQuantity.ToString();
        }
Exemple #19
0
        public ActionResult DeleteConfirmed(Guid id)
        {
            PurchaseItems purchaseItems = _dbContext.PurchaseItems.Find(id);
            StoreItems    storeItems    = _dbContext.StoreItems.Where(si => si.PurchaseItemsId == id).FirstOrDefault();

            try
            {
                _dbContext.PurchaseItems.Remove(purchaseItems);
                _dbContext.StoreItems.Remove(storeItems);
                _dbContext.SaveChanges();
                return(Json(new { success = true }));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
            }

            return(RedirectToAction("Index"));
        }
Exemple #20
0
        private async void EndPurchase()
        {
            IRestDataMapper mapper = containerExtension.Resolve <IRestDataMapper>();

            CurrenPurchase.recordState = ConstValues.RCS_FINE;
            _ = await PurchaseRestService.UpdatePurchaseAsync(mapper, CurrenPurchase);

            if (CurrenPurchase.creditAmount > 0.00m)
            {
                CurrenPurchase.invoiceType = ConstValues.INVT_CREDIT;
                CreditInvoice = CreditInvoice.CreateNewCreditInvoice(branch, loggedUser.LoggedUser, CurrenPurchase);
                SelectedSupplier.supplierCreditAccount.totalCredit += CurrenPurchase.creditAmount;
                _ = await SupplierCreditRestService.updateSupplierCreditAccountAsync(mapper, SelectedSupplier.supplierCreditAccount);

                _ = await SupplierCreditRestService.CreateSupplierCreditInvoiceAsync(mapper, CreditInvoice);
            }
            if (CurrenPurchase.payAmount > 0.00m)
            {
                CurrenCashBook = CurrenCashBook.CreateNewCashBook(branch, loggedUser.LoggedUser, CurrenPurchase);
                CurrenCashBook.branchAccount = SelectedBac;
                _ = await FinancialRestService.CreateCashBookAsync(mapper, CurrenCashBook);
            }
            if (CurrenPurchase.chqAmount > 0.00m)
            {
                CurrenChqueBook = CurrenChqueBook.CreateNewChequeBook(branch, loggedUser.LoggedUser, CurrenPurchase);
                CurrenChqueBook.branchAccount = SelectedBac;
                _ = await FinancialRestService.CreateChequeBookAsync(mapper, CurrenChqueBook);
            }
            SelectedStore       = null;
            SelectedUom         = null;
            SelectedItem        = null;
            SelectedItmCt       = null;
            CurrentPurchaseItem = null;
            CurrenPurchase      = null;
            SelectedSupCt       = null;
            SelectedSupplier    = null;
            CreditInvoice       = null;
            CurrenCashBook      = null;
            CurrenChqueBook     = null;
            PurchaseItems.Clear();
            Initialize();
        }
Exemple #21
0
        public ActionResult Edit(Guid?id, DateTime puchaseBillDate)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PurchaseItems purchaseItems = _dbContext.PurchaseItems.Find(id);

            if (purchaseItems == null)
            {
                return(HttpNotFound());
            }
            PurchaseItemsViewModel viewModel = Mapper.Map <PurchaseItemsViewModel>(purchaseItems);

            ViewBag.PurchaseBillId     = new SelectList(_dbContext.PurchaseBills, "Id", "BillInvoice", purchaseItems.PurchaseBillId);
            ViewBag.UnitId             = new SelectList(_dbContext.Units, "Id", "Name", purchaseItems.UnitId);
            ViewBag.StoreId            = new SelectList(_dbContext.Store, "Id", "Name", purchaseItems.StoreId);
            viewModel.PurchaseBillDate = puchaseBillDate;
            return(PartialView("_Edit", viewModel));
        }
        private IEnumerable <IPurchasableItemOptions> GetPostedOptions()
        {
            var options = new List <IPurchasableItemOptions>();

            foreach (var item in PurchaseItems.Items)
            {
                var itemValues = new OrderedDictionary();

                PurchaseItems.ExtractItemValues(itemValues, item, true);

                var quoteProductIdValue = itemValues["QuoteProduct.Id"];

                if (quoteProductIdValue == null)
                {
                    continue;
                }

                Guid quoteProductId;

                if (!Guid.TryParse(quoteProductIdValue.ToString(), out quoteProductId))
                {
                    continue;
                }

                var isSelectedValue = itemValues["IsSelected"];

                if (!(isSelectedValue is bool))
                {
                    continue;
                }

                var quoteProductReference = new EntityReference("quotedetail", quoteProductId);
                var isSelected            = (bool)isSelectedValue;

                options.Add(new PurchasableItemOptions(quoteProductReference, isSelected));
            }

            return(options);
        }
Exemple #23
0
        public IActionResult Buy([FromBody] PurchaseItems items)
        {
            if (!items.Items.Any(x => x.Count > 0))
            {
                return(BadRequest("Number of elements less than zero"));
            }
            {
                var    medicamentSales = new List <MedicamentSale>();
                double totalPrice      = 0;
                foreach (var item in items.Items)
                {
                    var medicament     = _medicamentsService.GetBy(x => x.Id == item.Id);
                    var medicamentSale = new MedicamentSale
                    {
                        Medicament = medicament,
                        Count      = item.Count
                    };

                    totalPrice += medicament.Price * item.Count;

                    medicamentSales.Add(medicamentSale);
                    medicament.ItemsAvailable = medicament.ItemsAvailable - item.Count;
                    _medicamentsService.Update(medicament);
                }

                var sale = new Sale
                {
                    MedicamentSales = medicamentSales,
                    TotalPrice      = totalPrice,
                    DateTime        = DateTime.Now
                };

                _saleService.Create(sale);

                return(this.Ok());
            }
        }
 private void OnAdd()
 {
     //var aBook = new Book
     //    {
     //        Isbn = 1111111111111,
     //        Details = new BookInfo {Publisher = new Publisher(), Author = new Author()},
     //        PurchaseItem = new PurchaseItems()
     //    };
     //_ctx.Books.Add(aBook);
     var aAut = new Author { FirstName = "<Enter First Name>", LastName = "<Enter Last Name>" };
     var aPub = new Publisher {  Name="<Enter Publisher>"};
     var aBookInfo = new BookInfo { Title = "<Enter Title>", Author = aAut, Publisher = aPub, Isbn = 1};
     var aPur = new Purchase { Date = DateTime.Now, Id=Guid.NewGuid()};
     var aPi = new PurchaseItems { Id = aPur.Id, Purchase = aPur };
     //var abi = _ctx.BookInfoes.Find(aBookInfo.Isbn);
     //if (abi == null) _ctx.BookInfoes.Add(aBookInfo);
     //abi = _ctx.BookInfoes.Find(aBookInfo.Isbn);
     var aBook = new Book { Id = Guid.NewGuid(), Details = aBookInfo, Earning = 0, PurchaseItem = aPi };
        _ctx.Books.Add(aBook);
     _books.MoveCurrentTo(aBook);
 }
        private void addButton_Click(object sender, EventArgs e)
        {
            //Set Category as Mandatory
            if (String.IsNullOrEmpty(categoryComboBox.Text))
            {
                MessageBox.Show("Category should not be empty!");
                return;
            }

            //Set Products as Mandatory
            if (String.IsNullOrEmpty(productsComboBox.Text))
            {
                MessageBox.Show("Products should not be empty!");
                return;
            }

            //Set Manufactured Date as Mandatory
            if (String.IsNullOrEmpty(manufactureDateTimePicker.Text))
            {
                MessageBox.Show("Manufactured Date should not be empty!");
                return;
            }

            //Set Expired Date as Mandatory
            if (String.IsNullOrEmpty(expireDateTimePicker.Text))
            {
                MessageBox.Show("Expired Date should not be empty!");
                return;
            }

            //Set Quantity as Mandatory
            if (String.IsNullOrEmpty(quantityTextBox.Text))
            {
                MessageBox.Show("Quantity should not be empty!");
                return;
            }

            //Set Unit Price as Mandatory
            if (String.IsNullOrEmpty(unitPriceTextBox.Text))
            {
                MessageBox.Show("Unit Price should not be empty!");
                return;
            }

            //Set MRP as Mandatory
            if (String.IsNullOrEmpty(mrpTextBox.Text))
            {
                MessageBox.Show("MRP should not be empty!");
                return;
            }

            if (categoryComboBox.Text == "-Select-")
            {
                MessageBox.Show("Select a category");
                return;
            }

            if (productsComboBox.Text == "-Select-")
            {
                MessageBox.Show("Select a product");
                return;
            }

            Purchase      purchase     = new Purchase();
            PurchaseItems purchaseItem = new PurchaseItems();

            purchaseItem.CategoryId        = Convert.ToInt32(categoryComboBox.SelectedValue);
            purchaseItem.ProductId         = Convert.ToInt32(productsComboBox.SelectedValue);
            purchaseItem.AvailableQuantity = Convert.ToInt32(availableQuantityTextBox.Text);
            purchaseItem.ManufacturedDate  = (manufactureDateTimePicker.Text);
            purchaseItem.ExpireDate        = (expireDateTimePicker.Text);
            purchaseItem.Quantity          = Convert.ToInt32(quantityTextBox.Text);
            purchaseItem.UnitPrice         = float.Parse(unitPriceTextBox.Text);
            purchaseItem.TotalPrice        = float.Parse(totalPriceTextBox.Text);
            purchaseItem.PreviousUnitPrice = float.Parse(previousUnitPriceTextBox.Text);
            purchaseItem.PreviousMRP       = float.Parse(previousMRPTextBox.Text);
            purchaseItem.MRP     = float.Parse(mrpTextBox.Text);
            purchaseItem.Remarks = remarksTextBox.Text;

            //Check UNIQUE

            if (_PurchaseManager.IsInvoiceNoExists(purchase))
            {
                MessageBox.Show(billInvoiceNoTextBox.Text + " Already Exists!");
                return;
            }

            //Check UNIQUE

            if (_PurchaseManager.IsCodeExists(purchase))
            {
                MessageBox.Show(codeTextBox.Text + " Already Exists!");
                return;
            }

            if (purchaseItems == null)
            {
                purchaseItems = new List <PurchaseItems>();
            }

            purchaseItems.Add(purchaseItem);

            MessageBox.Show(" Saved");

            showDataGridView.DataSource = null;
            showDataGridView.DataSource = purchaseItems;
        }
        protected void ApplyDiscount_OnClick(object sender, EventArgs e)
        {
            if (Purchasable == null)
            {
                return;
            }

            var discountCode = DiscountCode.Value;

            var discountCodeValidationResult = DiscountCodeValidationResult.ValidateDiscountCode(ServiceContext, Purchasable.Quote.Id, discountCode);

            if (!discountCodeValidationResult.IsValid)
            {
                DiscountErrorAlreadyApplied.Visible = discountCodeValidationResult.ErrorCode ==
                                                      DiscountCodeValidationResult.DiscountErrorCode.AlreadyApplied ||
                                                      discountCodeValidationResult.DiscountErrors.Any(
                    o => o.ErrorCode == DiscountCodeValidationResult.DiscountErrorCode.AlreadyApplied);
                DiscountErrorCodeNotSpecified.Visible = discountCodeValidationResult.ErrorCode ==
                                                        DiscountCodeValidationResult.DiscountErrorCode.CodeNotSpecified ||
                                                        discountCodeValidationResult.DiscountErrors.Any(
                    o => o.ErrorCode == DiscountCodeValidationResult.DiscountErrorCode.CodeNotSpecified);
                DiscountErrorDoesNotExist.Visible = discountCodeValidationResult.ErrorCode ==
                                                    DiscountCodeValidationResult.DiscountErrorCode.DoesNotExist ||
                                                    discountCodeValidationResult.DiscountErrors.Any(
                    o => o.ErrorCode == DiscountCodeValidationResult.DiscountErrorCode.DoesNotExist);
                DiscountErrorInvalidDiscount.Visible = discountCodeValidationResult.ErrorCode ==
                                                       DiscountCodeValidationResult.DiscountErrorCode.InvalidDiscountConfiguration ||
                                                       discountCodeValidationResult.ErrorCode == DiscountCodeValidationResult.DiscountErrorCode.QuoteNotFound ||
                                                       discountCodeValidationResult.ErrorCode == DiscountCodeValidationResult.DiscountErrorCode.UpdateFailed ||
                                                       discountCodeValidationResult.DiscountErrors.Any(
                    o => o.ErrorCode == DiscountCodeValidationResult.DiscountErrorCode.InvalidDiscountConfiguration);
                DiscountErrorMaximumRedemptions.Visible = discountCodeValidationResult.ErrorCode ==
                                                          DiscountCodeValidationResult.DiscountErrorCode.MaximumRedemptions ||
                                                          discountCodeValidationResult.DiscountErrors.Any(
                    o => o.ErrorCode == DiscountCodeValidationResult.DiscountErrorCode.MaximumRedemptions);
                DiscountErrorMinimumAmountNotMet.Visible = discountCodeValidationResult.ErrorCode ==
                                                           DiscountCodeValidationResult.DiscountErrorCode.MinimumAmountNotMet ||
                                                           discountCodeValidationResult.DiscountErrors.Any(
                    o => o.ErrorCode == DiscountCodeValidationResult.DiscountErrorCode.MinimumAmountNotMet);
                DiscountErrorUnknown.Visible    = discountCodeValidationResult.ErrorCode == DiscountCodeValidationResult.DiscountErrorCode.Unknown || (discountCodeValidationResult.ErrorCode == 0 && !discountCodeValidationResult.DiscountErrors.Any());
                DiscountErrorZeroAmount.Visible = discountCodeValidationResult.ErrorCode == DiscountCodeValidationResult.DiscountErrorCode.ZeroAmount ||
                                                  discountCodeValidationResult.DiscountErrors.Any(
                    o => o.ErrorCode == DiscountCodeValidationResult.DiscountErrorCode.ZeroAmount);
                DiscountErrorNotApplicable.Visible = discountCodeValidationResult.ErrorCode ==
                                                     DiscountCodeValidationResult.DiscountErrorCode.NotApplicable ||
                                                     discountCodeValidationResult.DiscountErrors.Any(
                    o =>
                    o.ErrorCode == DiscountCodeValidationResult.DiscountErrorCode.NotApplicable);

                return;
            }

            DiscountErrorAlreadyApplied.Visible      = false;
            DiscountErrorCodeNotSpecified.Visible    = false;
            DiscountErrorDoesNotExist.Visible        = false;
            DiscountErrorInvalidDiscount.Visible     = false;
            DiscountErrorMaximumRedemptions.Visible  = false;
            DiscountErrorMinimumAmountNotMet.Visible = false;
            DiscountErrorUnknown.Visible             = false;
            DiscountErrorZeroAmount.Visible          = false;

            try
            {
                // Add new discount code to existing discount codes and update quote, plugins will process the code.
                var updateContext = new OrganizationServiceContext(new OrganizationService("Xrm"));
                var quoteUpdate   = new Entity("quote")
                {
                    Id = Purchasable.Quote.Id
                };
                var updateDiscountCodes = string.IsNullOrWhiteSpace(discountCodeValidationResult.ExistingDiscountCodes) ? discountCode : string.Format("{0},{1}", discountCodeValidationResult.ExistingDiscountCodes, discountCode);
                quoteUpdate["adx_discountcodes"] = updateDiscountCodes;
                updateContext.Attach(quoteUpdate);
                updateContext.UpdateObject(quoteUpdate);
                updateContext.SaveChanges();
            }
            catch (Exception ex)
            {
                ADXTrace.Instance.TraceError(TraceCategory.Application, ex.ToString());
            }

            Target = GetTargetEntityReference();

            if (Target == null)
            {
                return;
            }

            var options = IsPostBack
                                ? GetPostedOptions()
                                : Enumerable.Empty <IPurchasableItemOptions>();

            Guid quoteId;

            if (IsPostBack && Guid.TryParse(QuoteId.Value, out quoteId))
            {
                WebForm.CurrentSessionHistory.QuoteId = quoteId;
            }

            var dataAdapter = CreatePurchaseDataAdapter(Target, CurrentStepEntityPrimaryKeyLogicalName);

            var quoteProducts = ServiceContext.CreateQuery("quotedetail").Where(q => q.GetAttributeValue <EntityReference>("quoteid") == Purchasable.Quote).ToArray();

            foreach (var quoteProduct in quoteProducts)
            {
                ServiceContext.TryRemoveFromCache(quoteProduct);
            }

            Purchasable = dataAdapter.Select(options);

            PurchaseDiscounts.DataSource = Purchasable.Discounts;
            PurchaseDiscounts.DataBind();

            PurchaseItems.DataSource = Purchasable.Items;
            PurchaseItems.DataBind();

            DiscountCode.Value = string.Empty;
        }
 public bool SubmitPurchaseItemsInfo(PurchaseItems purchaseItem)
 {
     return(_PurchaseRepo.SubmitPurchaseItemsInfo(purchaseItem));
 }
 public double LoadPreviousMrp(PurchaseItems purchaseItems)
 {
     return(_PurchaseRepo.LoadPreviousMrp(purchaseItems));
 }
 public double LoadPreviousUnitPrice(PurchaseItems purchaseItems)
 {
     return(_PurchaseRepo.LoadPreviousUnitPrice(purchaseItems));
 }
        //public DataTable LoadSalesQuantity(PurchaseItems purchaseItems)
        //{
        //    return _PurchaseRepo.LoadSalesQuantity(purchaseItems);
        //}

        public int AvailableQuantity(PurchaseItems purchaseItems)
        {
            return(_PurchaseRepo.AvailableQuantity(purchaseItems));
        }
 public int LoadPurchaseQuantity(PurchaseItems purchaseItems)
 {
     return(_PurchaseRepo.LoadPurchaseQuantity(purchaseItems));
 }