public ReturnType AddPurchaseProduct(PurchaseProduct puchaseProduct)
 {
     try
     {
         using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString()))
         {
             alading.AddToPurchaseProduct(puchaseProduct);
             if (alading.SaveChanges() == 1)
             {
                 return(ReturnType.Success);
             }
             else
             {
                 return(ReturnType.PropertyExisted);
             }
         }
     }
     catch (SqlException sex)
     {
         return(ReturnType.ConnFailed);
     }
     catch (Exception ex)
     {
         return(ReturnType.OthersError);
     }
 }
Пример #2
0
        public List <PurchaseProduct> GeneratePurchaseProducts(int amount)
        {
            List <PurchaseProduct> purchaseProducts = new List <PurchaseProduct>();

            for (int i = 0; i < amount; i++)
            {
                int l = R.Next(0, 3);
                for (int j = 0; j < l; j++)
                {
                    PurchaseProduct purchaseProduct = new PurchaseProduct();

                    purchaseProduct.PurchaseId = i + 1;

                    if (i == 0)
                    {
                        purchaseProduct.ProductId = R.Next(0, 31);
                    }
                    if (i == 1)
                    {
                        purchaseProduct.ProductId = R.Next(31, 61);
                    }
                    if (i == 2)
                    {
                        purchaseProduct.ProductId = R.Next(61, 101);
                    }

                    purchaseProducts.Add(purchaseProduct);
                }
            }

            return(purchaseProducts);
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,OrderID,ProductID")] PurchaseProduct purchaseProduct)
        {
            if (id != purchaseProduct.Id)
            {
                return(Redirect("/error/PageNotFound"));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(purchaseProduct);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PurchaseProductExists(purchaseProduct.Id))
                    {
                        return(Redirect("/error/PageNotFound"));
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["OrderID"]   = new SelectList(_context.Orders, "Id", "Id", purchaseProduct.OrderID);
            ViewData["ProductID"] = new SelectList(_context.Products, "ID", "Image", purchaseProduct.ProductID);
            return(View(purchaseProduct));
        }
Пример #4
0
        public List <PurchaseProduct> SupplierReport()
        {
            var response = context.PurchaseProduct
                           .Include(x => x.Supplier)
                           .ToList()
                           .GroupBy(x => x.SupplierId);
            List <PurchaseProduct> supplier = new List <PurchaseProduct>();

            foreach (var item in response)
            {
                string  name       = "";
                decimal grandTotal = 0;
                decimal totalDues  = 0;

                foreach (var iterate in item.ToList())
                {
                    name        = iterate.Supplier.Name;
                    grandTotal += iterate.GrandTotal;
                    totalDues  += iterate.Dues;
                }
                PurchaseProduct purchaseProduct = new PurchaseProduct()
                {
                    UpdatedBy  = name,
                    GrandTotal = grandTotal,
                    Dues       = totalDues,
                };
                supplier.Add(purchaseProduct);
            }
            return(supplier);
        }
Пример #5
0
        public void btnAddProduct_Click(object sender, EventArgs e)
        {
            PurchaseProduct newprod = new PurchaseProduct();

            newprod.id = Convert.ToInt64(Purchase_ProductID.Text);
            newprod.ShortDescription = Purchase_Product.Text;
            newprod.LongDescription  = Purchase_Description2.Text;
            newprod.UM         = Purchase_Um.Text;
            newprod.Qta        = Convert.ToDouble(Purchase_Qta.Text);
            newprod.UnitPrice  = StaticFunctions.FixDecimal(Purchase_Up.Text);
            newprod.Vat        = (Purchase_Vat.Text.Length > 0) ? Convert.ToDecimal(Purchase_Vat.Text) : 0;
            newprod.ListPrice  = StaticFunctions.FixDecimal(Purchase_Pl.Text);
            newprod.FinalPrice = StaticFunctions.FixDecimal(Purchase_Pf.Text);

            ArrayList np = new ArrayList();

            if (Session["newBillProd"] != null)
            {
                np = (ArrayList)Session["newBillProd"];
            }

            newprod.ObId = np.Count;

            np.Add(newprod);
            Session["newBillProd"] = np;

            RepeaterPurchaseProduct.DataSource = np;
            RepeaterPurchaseProduct.DataBind();
            RepeaterPurchaseProduct.Visible = true;
        }
 public ReturnType UpdatePurchaseProduct(PurchaseProduct purchaseProduct)
 {
     try
     {
         using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString()))
         {
             PurchaseProduct oldPurchaseProduct = alading.PurchaseProduct.FirstOrDefault(cc => cc.PurchaseProductCode == purchaseProduct.PurchaseProductCode);
             alading.Attach(oldPurchaseProduct);
             alading.ApplyPropertyChanges("PurchaseProduct", purchaseProduct);
             if (alading.SaveChanges() == 1)
             {
                 return(ReturnType.Success);
             }
             else
             {
                 return(ReturnType.Success);
             }
         }
     }
     catch (SqlException sex)
     {
         return(ReturnType.ConnFailed);
     }
     catch (System.Exception ex)
     {
         return(ReturnType.OthersError);
     }
 }
Пример #7
0
        private void btnAddProduct_Click(object sender, EventArgs e)
        {
            PurchaseProduct newprod = new PurchaseProduct();

            newprod.id = Convert.ToInt64(EstProductID.Text);
            newprod.ShortDescription = EstProduct.Text;
            newprod.LongDescription  = EstDescription2.Text;
            newprod.UM  = EstUm.Text;
            newprod.Qta = Convert.ToInt32(EstQta.Text);
            decimal chFrom = (1 / StaticFunctions.FixDecimal(EstChange.Text));

            newprod.UnitPrice  = Math.Round(StaticFunctions.FixDecimal(EstUp.Text) * chFrom, 2);
            newprod.Vat        = (EstVat.Text.Length > 0) ? Convert.ToInt32(EstVat.Text) : 0;
            newprod.ListPrice  = Math.Round(StaticFunctions.FixDecimal(EstPl.Text) * chFrom, 2);
            newprod.FinalPrice = Math.Round(StaticFunctions.FixDecimal(EstPf.Text) * chFrom, 2);
            newprod.Reduction  = (EstReduc.Text.Length > 0) ? Convert.ToInt32(EstReduc.Text) : 0;

            ArrayList np = new ArrayList();

            if (Session["newprod"] != null)
            {
                np = (ArrayList)Session["newprod"];
            }

            newprod.ObId = np.Count;

            np.Add(newprod);
            Session["newprod"] = np;

            RepeaterEstProduct.DataSource = np;
            RepeaterEstProduct.DataBind();
            RepeaterEstProduct.Visible = true;
        }
Пример #8
0
        private void RepeaterEstProduct_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            switch (e.CommandName)
            {
            case "DelPurPro":
                Literal   ObjectID = (Literal)e.Item.FindControl("ObjectID");
                ArrayList np       = new ArrayList();
                np = (ArrayList)Session["newprod"];
                np.RemoveAt(Convert.ToInt32(ObjectID.Text));

                for (int i = 0; i < np.Count; i++)
                {
                    PurchaseProduct newprod = (PurchaseProduct)np[i];
                    newprod.ObId = i;
                    np[i]        = newprod;
                }

                Session["newprod"]            = np;
                RepeaterEstProduct.DataSource = np;
                RepeaterEstProduct.DataBind();
                RepeaterEstProduct.Visible = true;

                break;
            }
        }
        public ReturnType RemovePurchaseProduct(string purchaseProductCode)
        {
            try
            {
                using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString()))
                {
                    /*List<PurchaseOrder> list = alading.PurchaseOrder.Where(p => p.PurchaseOrderID == purchaseorderID).ToList();*/
                    List <PurchaseProduct> list = alading.PurchaseProduct.Where(p => p.PurchaseProductCode == purchaseProductCode).ToList();
                    if (list.Count == 0)
                    {
                        return(ReturnType.NotExisted);
                    }

                    else
                    {
                        PurchaseProduct sy = list.First();
                        alading.DeleteObject(sy);
                        alading.SaveChanges();
                        return(ReturnType.Success);
                    }
                }
            }
            catch (SqlException sex)
            {
                return(ReturnType.ConnFailed);
            }
            catch (System.Exception ex)
            {
                return(ReturnType.OthersError);
            }
        }
Пример #10
0
        public async Task <ActionResult> DeleteConfirmed(Guid id)
        {
            PurchaseProduct purchaseProduct = await db.PurchasesProducts.FindAsync(id);

            db.PurchasesProducts.Remove(purchaseProduct);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
Пример #11
0
 private void RemoveAndRestoreProduct(ref ArrayList np, int iNdex)
 {
     np.RemoveAt(iNdex);
     for (int i = 0; i < np.Count; i++)
     {
         PurchaseProduct pProd = (PurchaseProduct)np[i];
         pProd.ObId = i;
         np[i]      = pProd;
     }
 }
Пример #12
0
        public async Task <IActionResult> CancelProduct([FromBody] PurchaseProduct purchaseProduct)
        {
            var isProductCancelled = await customerService.CancelProductAsync(purchaseProduct);

            if (!isProductCancelled)
            {
                return(BadRequest(new { message = "Unable to cancel the Product, Please coordinate with FCT administrator" }));
            }

            return(Ok(isProductCancelled));
        }
Пример #13
0
        public ActionResult Index()
        {
            PurchaseProduct purchaseProduct = new PurchaseProduct();

            ViewBag.Auth     = "true";
            ViewBag.UserName = Session["UserName"];
            int userId = Convert.ToInt32(Session["UserId"]);

            ViewData["PurchasedProduct"] = purchaseProduct.ListAll(userId);
            return(View());
        }
Пример #14
0
        public async Task <IActionResult> Create([Bind("PurchaseProductID,ProductID")] PurchaseProduct purchaseProduct)
        {
            if (ModelState.IsValid)
            {
                _context.Add(purchaseProduct);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["ProductID"] = new SelectList(_context.Products, "ProductID", "ProductTitle", purchaseProduct.ProductID);
            return(View(purchaseProduct));
        }
Пример #15
0
        public void PurchaseProductCommand(object source, RepeaterCommandEventArgs e)
        {
            switch (e.CommandName)
            {
            case "DelPurPro":
                Literal   ObjectID = (Literal)e.Item.FindControl("ObjectID");
                ArrayList np       = new ArrayList();
                np = (ArrayList)Session["newBillProd"];
                RemoveAndRestoreProduct(ref np, Convert.ToInt32(ObjectID.Text));
                Session["newBillProd"]             = np;
                RepeaterPurchaseProduct.DataSource = np;
                RepeaterPurchaseProduct.DataBind();
                RepeaterPurchaseProduct.Visible = true;
                break;

            case "ModPurPro":
                ObjectID = (Literal)e.Item.FindControl("ObjectID");
                np       = new ArrayList();
                np       = (ArrayList)Session["newBillProd"];
                PurchaseProduct pProd = (PurchaseProduct)np[Convert.ToInt32(ObjectID.Text)];
                if (pProd.id == 0)
                {
                    EstFreeProduct.Text = pProd.ShortDescription;
                    EstFreeProduct.Text = pProd.LongDescription;
                    EstFreeUm.Text      = pProd.UM;
                    EstFreeQta.Text     = Convert.ToInt32(pProd.Qta).ToString();
                    EstFreeUp.Text      = Convert.ToDecimal(pProd.UnitPrice).ToString();
                    EstFreeVat.Text     = Convert.ToInt32(pProd.Vat).ToString();
                    EstFreePf.Text      = Convert.ToDecimal(pProd.ListPrice).ToString();
                    EstFreePf.Text      = Convert.ToDecimal(pProd.FinalPrice).ToString();
                }
                else
                {
                    Purchase_ProductID.Text    = pProd.id.ToString();
                    Purchase_Product.Text      = pProd.ShortDescription;
                    Purchase_Description2.Text = pProd.LongDescription;
                    Purchase_Um.Text           = pProd.UM;
                    Purchase_Qta.Text          = pProd.Qta.ToString();
                    Purchase_Up.Text           = pProd.UnitPrice.ToString();
                    Purchase_Vat.Text          = pProd.Vat.ToString();
                    Purchase_Pl.Text           = pProd.ListPrice.ToString();
                    Purchase_Pf.Text           = pProd.FinalPrice.ToString();
                }

                RemoveAndRestoreProduct(ref np, Convert.ToInt32(ObjectID.Text));
                Session["newBillProd"]             = np;
                RepeaterPurchaseProduct.DataSource = np;
                RepeaterPurchaseProduct.DataBind();
                RepeaterPurchaseProduct.Visible = true;
                break;
            }
        }
Пример #16
0
        public async Task <ActionResult> Edit([Bind(Include = "PurchaseProductID,ProductId,PurchaseId,Quantity,Price")] PurchaseProduct purchaseProduct)
        {
            if (ModelState.IsValid)
            {
                db.Entry(purchaseProduct).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewBag.ProductId  = new SelectList(db.Products, "ProductId", "Name", purchaseProduct.ProductId);
            ViewBag.PurchaseId = new SelectList(db.Purchases, "PurchaseID", "PurchaseID", purchaseProduct.PurchaseId);
            return(View(purchaseProduct));
        }
Пример #17
0
        public async Task <bool> CancelPurchaseOrderAsync(PurchaseProduct purchaseProduct)
        {
            var product = await this.purchaseRepository.GetAsync(p => p.ProductId == purchaseProduct.ProductId && p.UserId == purchaseProduct.UserId);

            if (product != null)
            {
                this.purchaseRepository.Delete(product);
                await this.unitOfWork.CommitAsync();

                return(true);
            }
            return(false);
        }
        public async Task <ActionResult> CreatePurchase([FromBody] PurchaseCreateDto purchase)
        {
            int id          = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);
            var logineduser = await _auth.VerifyUser(id);


            Purchase _newPurchase = new Purchase()
            {
                NumberCode       = String.Format("{0:d9}", (DateTime.Now.Ticks / 10) % 1000000000),
                Customer         = await _context.Customers.FirstOrDefaultAsync(s => s.Id == purchase.CustomerId),
                CustomsInclude   = purchase.CustomsInclude,
                CustomsCost      = purchase.CustomsCost,
                TransportInclude = purchase.TransportInclude,
                TransportCost    = purchase.TransportCost,
                PaymentTerm      = await _context.PaymentTerms.FirstOrDefaultAsync(s => s.Id == purchase.PaymentTermId),
                PaymentKind      = await _context.PaymentKinds.FirstOrDefaultAsync(s => s.Id == purchase.PaymentKindId),
                PaymentPeriod    = purchase.PaymentPeriod,
                PaymentLastDate  = purchase.PaymentLastDate,
                DeliveryTerm     = await _context.DeliveryTerms.FirstOrDefaultAsync(s => s.Id == purchase.DeliveryTermId),
                DeliveryPeriod   = purchase.DeliveryPeriod,
                Company          = logineduser.Company,
                ApprovedDate     = DateTime.Now,
                ApprovedWorker   = logineduser,
                OpenClose        = true,
                Status           = true
            };

            _context.Purchases.Add(_newPurchase);
            await _context.SaveChangesAsync();

            foreach (var item in purchase.PurchaseProductList)
            {
                PurchaseProduct purchaseProduct = new PurchaseProduct()
                {
                    Purchase       = _newPurchase,
                    Product        = await _context.Products.FirstOrDefaultAsync(s => s.Id == item.ProductId),
                    Country        = await _context.Country.FirstOrDefaultAsync(s => s.Id == item.CountryId),
                    Quantity       = item.Quantity,
                    Price          = item.Price,
                    Discount       = item.Discount,
                    LastPrice      = item.LastPrice,
                    VAT            = item.VAT,
                    ComingQuantity = 0
                };

                _context.PurchaseProducts.Add(purchaseProduct);
                await _context.SaveChangesAsync();
            }

            return(StatusCode(201));
        }
Пример #19
0
        private void Purchase()
        {
            if (!ValidateInputFields())
            {
                RaiseNotification("Alert", "Please all the required fields");
                return;
            }

            var transaction = new PurchaseTransaction();
            var product     = new PurchaseProduct();

            try
            {
                product.ProductId     = Convert.ToInt32(ProductId);
                product.PurchasePrice = Convert.ToDecimal(PurchasePrice);
                product.SellingPrice  = Convert.ToDecimal(SellingPrice);
                product.Quantity      = Convert.ToInt32(Quantity);

                transaction.ItemList.Add(product);
                transaction.PaymentList.Add(new PurchasePayment()
                {
                    PaymentAmount = Convert.ToDecimal(Amount),
                    Payment       = new Payment()
                    {
                        PaidAmount  = Convert.ToDecimal(Amount),
                        PaymentDate = DateTime.Today,
                        PaymentType = 1
                    }
                });
                //To do
                //transaction.PurchaseTaxTotal = //Compute tax from SelectedTaxRate
                transaction.PurchaseTaxTotal = Convert.ToDecimal(1.00);
                transaction.SupplierId       = SelectedSupplierId;
                transaction.PurchaseTxnTotal = Convert.ToDecimal(Amount);
                transaction.BillNumber       = BillNumber;
                transaction.GSTIN            = GSTIN;
                transaction.PurchaseDate     = DateTime.Today;
                _purchaseTransaction.Complete(transaction);
                RaiseNotification("Success",
                                  string.Format("Successfully added the purchase of the product {0}", ProductName));
            }
            catch (Exception ex)
            {
                log.Error(transaction, ex);
                RaiseNotification("Error", "Failed to add purchase.");
            }
            finally
            {
                ResetUI();
            }
        }
        public IActionResult Index(PurchaseProductVM purchaseProduct)
        {
            try
            {
                #region Pushing into Purchase Product
                PurchaseProduct purchase = new PurchaseProduct()
                {
                    InvoiceNumber = purchaseProduct.InvoiceNumber,
                    SupplierId    = purchaseProduct.SupplierId,
                    SubTotal      = purchaseProduct.SubTotal,
                    GrandTotal    = purchaseProduct.GrandTotal,
                    Discount      = purchaseProduct.Discount,
                    Dues          = purchaseProduct.Dues,
                    PaidAmount    = purchaseProduct.PaidAmount,
                    PaymentMode   = purchaseProduct.PaymentMode,
                };
                context.PurchaseProduct.Add(purchase);
                context.Save();
                #endregion

                #region Pushing into Purchase Product Detail
                foreach (var item in purchaseProduct.PurchaseProductDetails)
                {
                    PurchaseProductDetail purchaseProductDetail = new PurchaseProductDetail()
                    {
                        PurchaseProductId = purchase.Id,
                        InvoiceNumber     = item.InvoiceNumber,
                        ProductId         = item.ProductId,
                        Quantity          = item.Quantity,
                        UnitPrice         = item.UnitPrice,
                        VatAndTaxId       = item.VatAndTaxId,
                        BasePrice         = item.BasePrice,
                        SellPrice         = item.SellPrice,
                    };
                    context.PurchaseProductDetail.Add(purchaseProductDetail);
                    context.Save();
                    UpdateInventory(item.ProductId, item.Quantity, item.SellPrice);
                }

                #endregion

                return(Json(true));
            }
            catch (Exception ex)
            {
                return(Json(ex.Message));

                throw ex;
            }
        }
Пример #21
0
        // GET: PurchaseProducts/Details/5
        public async Task <ActionResult> Details(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PurchaseProduct purchaseProduct = await db.PurchasesProducts.FindAsync(id);

            if (purchaseProduct == null)
            {
                return(HttpNotFound());
            }
            return(View(purchaseProduct));
        }
Пример #22
0
        public IActionResult Purchase(PurchaseViewModel purchaseViewModel)
        {
            var activeUser = _userManager.GetUserAsync(User).Result;

            var productList = new List <Product>();
            var productIds  = _cartService.Get(HttpContext.Session);

            foreach (var productId in productIds)
            {
                var product = _dbContext.Products.Include(prod => prod.PurchaseProducts).FirstOrDefault(prod => prod.Id == productId);

                if (product != null)
                {
                    productList.Add(product);
                }
            }

            if (productList.Count != 0)
            {
                var purchase = new Purchase
                {
                    User             = activeUser,
                    PurchaseProducts = new List <PurchaseProduct>(),
                    DateTime         = DateTime.Now
                };

                _dbContext.Purchases.Add(purchase);

                foreach (var product in productList)
                {
                    purchase.TotalCost += product.Price - product.Price * product.Discount / 100;
                    var orderProduct = new PurchaseProduct()
                    {
                        Purchase = purchase,
                        Product  = product
                    };

                    purchase.PurchaseProducts.Add(orderProduct);
                    product.PurchaseProducts.Add(orderProduct);
                }

                _dbContext.SaveChanges();
                _cartService.Clear(HttpContext.Session);

                return(View("Purchase"));
            }

            return(RedirectToAction("Index", "Home"));
        }
Пример #23
0
        public async Task <ActionResult> Create([Bind(Include = "PurchaseProductID,ProductId,PurchaseId,Quantity,Price")] PurchaseProduct purchaseProduct)
        {
            if (ModelState.IsValid)
            {
                purchaseProduct.PurchaseProductId = Guid.NewGuid();
                db.PurchasesProducts.Add(purchaseProduct);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            ViewBag.ProductId  = new SelectList(db.Products, "ProductId", "Name", purchaseProduct.ProductId);
            ViewBag.PurchaseId = new SelectList(db.Purchases, "PurchaseID", "PurchaseID", purchaseProduct.PurchaseId);
            return(View(purchaseProduct));
        }
Пример #24
0
        public async Task <bool> PlacePurchaseOrderAsync(PurchaseProduct purchaseProduct)
        {
            var isIteamAlreadyPurchased = await this.purchaseRepository.ExistsAsync(p => p.ProductId == purchaseProduct.ProductId && p.UserId == purchaseProduct.UserId);

            if (!isIteamAlreadyPurchased)
            {
                this.purchaseRepository.Create(new Purchase {
                    ProductId = purchaseProduct.ProductId, UserId = purchaseProduct.UserId
                });
                await this.unitOfWork.CommitAsync();

                return(true);
            }
            return(false);
        }
Пример #25
0
        // GET: PurchaseProducts/Edit/5
        public async Task <ActionResult> Edit(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PurchaseProduct purchaseProduct = await db.PurchasesProducts.FindAsync(id);

            if (purchaseProduct == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ProductId  = new SelectList(db.Products, "ProductId", "Name", purchaseProduct.ProductId);
            ViewBag.PurchaseId = new SelectList(db.Purchases, "PurchaseID", "PurchaseID", purchaseProduct.PurchaseId);
            return(View(purchaseProduct));
        }
Пример #26
0
        private static PurchaseProduct GetProduct(long id, string sdesc, string ldesc, string um, double qta, decimal up, decimal vat, decimal lprice, decimal fprice, decimal cost, string prodcode, decimal reallprice)
        {
            PurchaseProduct newprod = new PurchaseProduct();

            newprod.id = id;
            newprod.ShortDescription = sdesc;
            newprod.LongDescription  = ldesc;
            newprod.UM            = um;
            newprod.Qta           = qta;
            newprod.UnitPrice     = up;
            newprod.Vat           = vat;
            newprod.ListPrice     = lprice;
            newprod.FinalPrice    = fprice;
            newprod.Cost          = cost;
            newprod.ProductCode   = prodcode;
            newprod.RealListPrice = reallprice;
            return(newprod);
        }
Пример #27
0
        public IActionResult Purchase(PurchaseProduct purchase)
        {
            try
            {
                //Acá iría toda la logica de la compra del producto.
                //Como pago y envio de mail.

                //Logueo la compra.
                _logService.Create(new Log {
                    UserId = purchase.User.Id, TimeStamp = DateTime.Now, Action = $"Compra del producto {purchase.Product.Id}"
                });
                return(Ok("Producto comprado."));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
            }

            return(NoContent());
        }
Пример #28
0
 public void PurchaseProductDatabound(Object sender, RepeaterItemEventArgs e)
 {
     switch (e.Item.ItemType)
     {
     case ListItemType.Item:
     case ListItemType.AlternatingItem:
         Label           ShortDescription = (Label)e.Item.FindControl("ShortDescription");
         Label           UM         = (Label)e.Item.FindControl("UM");
         Label           Qta        = (Label)e.Item.FindControl("Qta");
         Label           UnitPrice  = (Label)e.Item.FindControl("UnitPrice");
         Label           FinalPrice = (Label)e.Item.FindControl("FinalPrice");
         Literal         ObjectID   = (Literal)e.Item.FindControl("ObjectID");
         PurchaseProduct newprod    = (PurchaseProduct)e.Item.DataItem;
         ShortDescription.Text = newprod.ShortDescription;
         UM.Text         = newprod.UM.ToString();
         Qta.Text        = newprod.Qta.ToString();
         UnitPrice.Text  = newprod.UnitPrice.ToString("c");
         FinalPrice.Text = newprod.FinalPrice.ToString("c");
         ObjectID.Text   = newprod.ObId.ToString();
         break;
     }
 }
Пример #29
0
        private void RepeaterEstProduct_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            NumberFormatInfo nfi = new CultureInfo(UC.Culture, false).NumberFormat;

            switch (e.Item.ItemType)
            {
            case ListItemType.Item:
            case ListItemType.AlternatingItem:
                Literal         ShortDescription = (Literal)e.Item.FindControl("ShortDescription");
                Literal         UM              = (Literal)e.Item.FindControl("UM");
                Literal         Qta             = (Literal)e.Item.FindControl("Qta");
                Literal         UnitPrice       = (Literal)e.Item.FindControl("UnitPrice");
                Literal         Vat             = (Literal)e.Item.FindControl("Vat");
                Literal         Reduction       = (Literal)e.Item.FindControl("Reduction");
                Literal         FinalPrice      = (Literal)e.Item.FindControl("FinalPrice");
                Literal         ObjectID        = (Literal)e.Item.FindControl("ObjectID");
                PurchaseProduct purchaseProduct = (PurchaseProduct)e.Item.DataItem;
                ShortDescription.Text = purchaseProduct.ShortDescription;
                UM.Text        = purchaseProduct.UM.ToString();
                Qta.Text       = purchaseProduct.Qta.ToString();
                Vat.Text       = purchaseProduct.Vat.ToString();
                Reduction.Text = purchaseProduct.Reduction.ToString();
                string  sy   = EstCurrency.SelectedValue.Split('|')[2];
                decimal chTo = StaticFunctions.FixDecimal(EstChange.Text);

                UnitPrice.Text        = sy + " " + Math.Round((purchaseProduct.UnitPrice * chTo), 2).ToString("N", nfi);
                FinalPrice.Text       = sy + " " + Math.Round((purchaseProduct.FinalPrice * chTo), 2).ToString("N", nfi);
                this.TotalQuotePrice += (purchaseProduct.FinalPrice * chTo);
                ObjectID.Text         = purchaseProduct.ObId.ToString();
                break;

            case ListItemType.Footer:
                Literal TotalQuote = (Literal)e.Item.FindControl("TotalQuote");
                sy = EstCurrency.SelectedValue.Split('|')[2];
                TotalQuote.Text = sy + " " + Math.Round(TotalQuotePrice, 2).ToString("N", nfi);
                break;
            }
        }
        public async Task CreatePurchaseByUserId(User user, string address)
        {
            var products = await this.cartService.GetAllProductsForCurrentUser(user);

            var currentPurchase = new Purchase
            {
                DeliveryAddress = address,
                PurchaseDate    = DateTime.UtcNow,
                User            = user,
                UserId          = user.Id,
                TotalPrice      = products.Sum(p => p.TotalPrice)
            };

            await this.context.Purchases.AddAsync(currentPurchase);

            await this.context.SaveChangesAsync();

            foreach (var product in products)
            {
                var curentProduct = await this.context.Products.FirstOrDefaultAsync(p => p.Id == product.Id);

                curentProduct.Quantity      -= product.PurchasedQuantity;
                curentProduct.PurchaseCount += product.PurchasedQuantity;

                await this.cartService.RemoveProductFromUserCart(product.Id, user);

                var purchaseProduct = new PurchaseProduct
                {
                    ProductId  = product.Id,
                    Quantity   = product.PurchasedQuantity,
                    PurchaseId = currentPurchase.Id,
                };

                await this.context.PurchaseProducts.AddAsync(purchaseProduct);

                await this.context.SaveChangesAsync();
            }
        }
Пример #31
0
        public ActionResult Create(TransactionModel tm, int? ProductID, int? CustomerID)
        {
            if (ModelState.IsValid)
            {
                PurchaseProduct pp = new PurchaseProduct();
                Transaction t = new Transaction();

                //t.Customer = tm.Customer;
                t.CustomerID = tm.CustomerID;
                t.Number = tm.Number;
                //t.Product = tm.Product;
                t.ProductID = tm.ProductID;
                t.TimeStamp = tm.TimeStamp;
                t.TransactionID = tm.TransactionID;
                t.IsPaid = tm.IsPaid;
                t.Expense = tm.Number * db.Products.Find(t.ProductID).CNYPrice.Value;
                t.Price = db.Products.Find(t.ProductID).Price;
                t.CNYPrice = db.Products.Find(t.ProductID).CNYPrice.Value;
                t.CNYSellPrice = db.Products.Find(t.ProductID).CNYSellPrice.Value;
                t.Income = Convert.ToDecimal(tm.TransactionSellAmount.Substring(1));
                t.Benefit = t.Income - t.Expense;
                t.Weight = tm.Weight;
                t.TransPortPrice = Convert.ToDecimal(tm.TransportCharge.Substring(1));
                if (t.IsPaid)
                    t.PaidDateTime = tm.PaidDateTime;
                //t.User = tm.User;
                t.UserID = tm.UserID;
                pp.CustomerID = tm.CustomerID;
                pp.ProductID = tm.ProductID;

                pp.ProviderID = db.Products.Find(tm.ProductID).ProviderID;
                pp.TimeStamp = DateTime.Now;

                if (ProductID.HasValue)
                {
                    t.ProductID = ProductID.Value;
                }

                if (CustomerID.HasValue)
                    t.CustomerID = CustomerID.Value;

                if (Session["LoginUser"] != null)
                {
                    t.UserID = ((User)Session["LoginUser"]).UserID;
                    pp.UserID = t.UserID;
                }

                db.PurchaseProducts.Add(pp);
                db.Transactions.Add(t);

                db.SaveChanges();
                return RedirectToAction("Index");
            }
            else
            {
                ViewBag.Products = new SelectList(db.Products.OrderByDescending(x => x.ProductName), "ProductID", "ProductName", tm.ProductID);
                ViewBag.Customers = new SelectList(db.Customers.OrderByDescending(x => x.Name), "CustomerID", "Name", tm.CustomerID);

                return View(tm);
            }
        }
Пример #32
0
        public void FillDB()
        {
            using (MngPaycheckContext db = new MngPaycheckContext())
            {
                //WORK WITH PRODUCT
                Product prod = new Product()
                {
                    Name = "Asus",
                    Characteristicks = "Super laptop",
                    Cost = 1012,
                    Description = "It`s a super"
                };

                Product prod2 = new Product()
                {
                    Name = "Acer",
                    Characteristicks = "Super laptop",
                    Cost = 2016,
                    Description = "It`s a super"
                };

                ProductType prodType = new ProductType()
                {
                    Name = "Laptop",
                };

                ProductParametrValue productParametrValue = new ProductParametrValue(prod, "5 gb");
                ProductParametr productParametr = new ProductParametr()
                {
                    Name = "Ram",
                    ProductType = prodType,
                    ProductParametrValue = productParametrValue
                };

                prod.ProductType = prodType;

                db.Products.Add(prod);
                db.ProductTypes.Add(prodType);
                db.ProductParametrs.Add(productParametr);
                db.ProductParametrValues.Add(productParametrValue);
                db.SaveChanges();

                /////////WORK WITH PURCHASES
                ///////Create one purchase and added two products in this purchase
                ///
                ///
                ///
                ///
                //Create Buyer and add to Buyer purchase
                Buyer buyer = new Buyer()
                {
                    Name = "Andrew",
                    Login = "******",
                    Password = "******",
                };
                db.Buyers.Add(buyer);
                db.SaveChanges();

                Purchase purchase = new Purchase()
                {
                    Favorite = false,
                    PurchaseAdress = "123123213",
                    PurchaseDate = DateTime.Now,
                    SumPurchase = 100213,
                    PaymentType = new PaymentType() { Name = "Cash"},
                    Buyer = buyer
                };

                PurchaseProduct purchaseProduct = new PurchaseProduct()
                {
                    Cost = prod.Cost,
                    Units = 12,
                    Product = prod,
                    Purchase = purchase
                };

                PurchaseProduct purchaseProduct2 = new PurchaseProduct()
                {
                    Cost = prod2.Cost,
                    Product = prod2,
                    Purchase = purchase
                };

                db.PurchaseProducts.Add(purchaseProduct);
                db.PurchaseProducts.Add(purchaseProduct2);
                db.SaveChanges();
                //////////////////////

                PaymentType paytype = new PaymentType()
                {
                    Name = "Creditka"
                };

                purchase.PaymentType = paytype;

                db.PaymentTypes.Add(paytype);
                db.SaveChanges();

                foreach (var item in db.Buyers.Select(a=>a.Purchases).ToList())
                {
                    foreach (var it in item.Select(a=>a.Favorite))
                    {
                       Console.WriteLine(it.ToString());
                    }
                }

                //LogicsType<Purchase> payType = new LogicsType<Purchase>(new PaymentTypeStrategy());
                //foreach (var item in payType.Execute(paytype))//получаю список всех елементов, у которых тип == paytype
                //{
                //    Console.WriteLine(item.PurchaseAdress);
                //}

                //Console.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!!");

                //LogicsType<Product> productType = new LogicsType<Product>(new ProductTypeStrategy());
                //foreach (var item in productType.Execute(prodType))
                //{
                //    Console.WriteLine(item.Name);
                //}
            }
            Console.WriteLine("OK!");
        }