Ejemplo n.º 1
0
        public Basket AddUpdateBasket(string user, string productId, int quantity)
        {
            CatalogRepository catalogRepository = new CatalogRepository();
            Basket            basket            = baskets.FirstOrDefault(item => item.User == user);

            if (basket == null)
            {
                throw new Exception("Basket not available");
            }
            Catalog.Models.ProductQty product = basket.Products.FirstOrDefault(p => p.ProductId == productId);
            if (product == null)
            {
                Catalog.Models.Catalog catalog = catalogRepository.GetCatalogs(productId);
                ProductQty             p       = new ProductQty();
                p.ProductId = catalog.Id;
                p.Quantity  = quantity;
                basket.Products.Add(p);
            }
            else
            {
                basket.Products.Remove(product);
                product.ProductId = productId;
                product.Quantity  = quantity;
                basket.Products.Add(product);
            }

            return(basket);
        }
Ejemplo n.º 2
0
 public void Update(ProductQty productQty)
 {
     using (var em = EntityManagerFactory.CreateInstance(ds))
     {
         Update(em, null, productQty);
     }
 }
Ejemplo n.º 3
0
        public ActionResult AddToCart(int id, int quantity)
        {
            Product    product = db.Products.Find(id);
            ProductQty item    = new ProductQty();

            item.Item     = product;
            item.Quantity = quantity;
            var  cartId = HttpContext.Session["cartId"];
            Cart cart   = db.Carts.Find(cartId);

            if (cart != null && (cart.Status == CartStatus.SHIPPED || cart.Status == CartStatus.PAID))
            {
                cart = null;
            }
            if (cart == null)
            {
                var userId = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>().FindById(User.Identity.GetUserId()).UserId;
                var user   = db.Users.Find(userId);
                cart = new Cart {
                    Date      = DateTime.Now,
                    Items     = new List <ProductQty>(),
                    Purchaser = user,
                    Status    = CartStatus.OPEN,
                    TaxRate   = 0.13,
                    Discount  = 0
                };
                db.Carts.Add(cart);
            }
            cart.Items.Add(item);
            db.SaveChanges();
            HttpContext.Session["cartId"] = cart.Id;
            return(RedirectToAction("Details", new { id = cart.Id }));
        }
Ejemplo n.º 4
0
        private void PopulateProduct(ProductQty productQty)
        {
            var item = new ListViewItem(productQty.ProductId.ToString());

            item.SubItems.Add(productQty.Product.Code);
            item.SubItems.Add(productQty.Product.Name);
            item.SubItems.Add(productQty.Product.Unit);
            item.SubItems.Add(productQty.SalesPrice.ToString("N0").Replace(",", "."));

            lvwProduct.Items.Add(item);
        }
Ejemplo n.º 5
0
        public void Save(Product product)
        {
            Transaction tx = null;

            try
            {
                using (var em = EntityManagerFactory.CreateInstance(ds))
                {
                    tx = em.BeginTransaction();

                    Guid ID = Guid.NewGuid();

                    string[] columns = { "ID",       "ProductCode", "ProductName", "CategoryId", "Unit", "Notes",
                                         "IsActive", "CreatedDate", "ModifiedDate" };

                    object[] values = { ID,                               product.Code, product.Name, product.CategoryId, product.Unit, product.Notes,
                                        product.IsActive == true?1:0,
                                        DateTime.Now.ToShortDateString(), DateTime.Now.ToShortDateString() };

                    var q = new Query().Select(columns).From(tableName).Insert(values);

                    em.ExecuteNonQuery(q.ToSql(), tx);

                    var productQty = new ProductQty();

                    productQty.ActiveYear  = Store.ActiveYear;
                    productQty.ActiveMonth = Store.ActiveMonth;
                    productQty.ProductId   = ID;
                    productQty.QtyIn       = 0;
                    productQty.QtyOut      = 0;
                    productQty.QtyEnd      = 0;

                    productQtyRepository.Save(em, tx, productQty);

                    tx.Commit();
                }
            }
            catch (Exception ex)
            {
                tx.Rollback();
                throw ex;
            }
        }
Ejemplo n.º 6
0
        public void Update(IEntityManager em, Transaction tx, ProductQty productQty)
        {
            try
            {
                string[] columns = { "ActiveYear",          "ActiveMonth",          "ProductId",
                                     "QtyBegin",            "ValueBegin",
                                     "QtyIn",               "PurchasePrice",
                                     "QtyAvailable",        "ValueAverage",         "ValueAvailable",
                                     "QtyOut",              "SalesPrice",           "SalesValue",
                                     "QtyEnd",              "ValueEnd",
                                     "QtyPlusCorrection",   "QtyMinusCorrection",
                                     "ValuePlusCorrection", "ValueMinusCorrection",
                                     "QtyPayment",          "PaymentPrice",         "PaymentValue" };

                object[] values = { productQty.ActiveYear,          productQty.ActiveMonth,          productQty.ProductId,
                                    productQty.QtyBegin,            productQty.ValueBegin,
                                    productQty.QtyIn,               productQty.PurchasePrice,
                                    productQty.QtyAvailable,        productQty.ValueAverage,         productQty.ValueAvailable,
                                    productQty.QtyOut,              productQty.SalesPrice,           productQty.SalesValue,
                                    productQty.QtyEnd,              productQty.ValueEnd,
                                    productQty.QtyPlusCorrection,   productQty.QtyMinusCorrection,
                                    productQty.ValuePlusCorrection, productQty.ValueMinusCorrection,
                                    productQty.QtyPayment,          productQty.PaymentPrice,         productQty.PaymentValue };

                var q = new Query().Select(columns).From(tableName).Update(values)
                        .Where("ID").Equal("{" + productQty.ID + "}");

                if (tx == null)
                {
                    em.ExecuteNonQuery(q.ToSql());
                }
                else
                {
                    em.ExecuteNonQuery(q.ToSql(), tx);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 7
0
        public ProductQty GetSummary(int month, int year)
        {
            ProductQty productQty = null;

            using (var em = EntityManagerFactory.CreateInstance(ds))
            {
                string sql = "SELECT Sum(ProductQty.QtyBegin) AS QtyBegin, Sum(ProductQty.ValueBegin) AS ValueBegin, "
                             + "Sum(ProductQty.QtyIn) AS QtyIn, Sum(ProductQty.PurchasePrice) AS PurchasePrice, "
                             + "Sum(ProductQty.QtyAvailable) AS QtyAvailable, Sum(ProductQty.ValueAverage) AS ValueAverage, Sum(ProductQty.ValueAvailable) AS ValueAvailable, "
                             + "Sum(ProductQty.QtyOut) AS QtyOut, Sum(ProductQty.SalesPrice) AS SalesPrice, Sum(ProductQty.SalesValue) AS SalesValue, "
                             + "Sum(ProductQty.QtyEnd) AS QtyEnd, Sum(ProductQty.ValueEnd) AS ValueEnd, "
                             + "Sum(ProductQty.ValuePlusCorrection) AS ValuePlusCorrection, Sum(ProductQty.ValueMinusCorrection) AS ValueMinusCorrection, "
                             + "Sum(ProductQty.QtyPlusCorrection) AS QtyPlusCorrection, Sum(ProductQty.QtyMinusCorrection) AS QtyMinusCorrection, "
                             + "Sum(ProductQty.QtyPayment) AS QtyPayment, Sum(ProductQty.PaymentPrice) AS PaymentPrice, Sum(ProductQty.PaymentValue) AS PaymentValue "
                             + "FROM ProductQty "
                             + "WHERE ProductQty.ActiveYear=" + year + " AND ProductQty.ActiveMonth= " + month;


                productQty = em.ExecuteObject <ProductQty>(sql, new ProductQtySummaryMapper());
            }

            return(productQty);
        }
Ejemplo n.º 8
0
        public ProductQty GetByMonthAndYear(int month, int year, Guid productId)
        {
            ProductQty productQty = null;

            using (var em = EntityManagerFactory.CreateInstance(ds))
            {
                string sql = "SELECT q.ID, q.ActiveYear, q.ActiveMonth, "
                             + "q.ProductId, p.ProductCode, p.ProductName, p.Unit, p.Notes, p.IsActive, "
                             + "q.QtyBegin, q.ValueBegin, "
                             + "q.QtyIn, q.PurchasePrice, "
                             + "q.QtyAvailable, q.ValueAverage, q.ValueAvailable, "
                             + "q.QtyOut, q.SalesPrice, q.SalesValue, "
                             + "q.QtyEnd, q.ValueEnd, "
                             + "q.QtyPlusCorrection, q.QtyMinusCorrection, "
                             + "q.ValuePlusCorrection, q.ValueMinusCorrection, "
                             + "q.QtyPayment, q.PaymentPrice, q.PaymentValue "
                             + "FROM (ProductQty q INNER JOIN Product p on q.ProductId=p.ID) "
                             + "WHERE q.ProductId = '{" + productId + "}' AND q.ActiveMonth = " + month + " AND q.ActiveYear = " + year;

                productQty = em.ExecuteObject <ProductQty>(sql, new ProductQtyMapper());
            }

            return(productQty);
        }
Ejemplo n.º 9
0
        private void PopulateProductQty2(ProductQty productQty)
        {
            var item = new ListViewItem(productQty.ID.ToString());

            item.SubItems.Add(productQty.ActiveYear.ToString());
            item.SubItems.Add(Store.GetMonthName(productQty.ActiveMonth));
            item.SubItems.Add(productQty.QtyBegin.ToString("N0").Replace(",", "."));
            item.SubItems.Add(productQty.ValueBegin.ToString("N0").Replace(",", "."));
            item.SubItems.Add(productQty.QtyIn.ToString("N0").Replace(",", "."));
            item.SubItems.Add(productQty.PurchasePrice.ToString("N0").Replace(",", "."));
            item.SubItems.Add(productQty.QtyAvailable.ToString("N0").Replace(",", "."));
            item.SubItems.Add(productQty.ValueAverage.ToString("N0").Replace(",", "."));
            item.SubItems.Add(productQty.ValueAvailable.ToString("N0").Replace(",", "."));
            item.SubItems.Add(productQty.QtyOut.ToString("N0").Replace(",", "."));
            item.SubItems.Add(productQty.SalesPrice.ToString("N0").Replace(",", "."));
            item.SubItems.Add(productQty.QtyEnd.ToString("N0").Replace(",", "."));
            item.SubItems.Add(productQty.ValueEnd.ToString("N0").Replace(",", "."));
            item.SubItems.Add(productQty.QtyPlusCorrection.ToString("N0").Replace(",", "."));
            item.SubItems.Add(productQty.QtyMinusCorrection.ToString("N0").Replace(",", "."));
            item.SubItems.Add(productQty.ValuePlusCorrection.ToString("N0").Replace(",", "."));
            item.SubItems.Add(productQty.ValueMinusCorrection.ToString("N0").Replace(",", "."));

            lvwProductQty2.Items.Add(item);
        }
Ejemplo n.º 10
0
        private void ProductQtyNewPeriod()
        {
            //cek periode baru
            int newYear  = 0;
            int newMonth = 0;

            if (Store.ActiveMonth < 12)
            {
                newYear  = Store.ActiveYear;
                newMonth = Store.ActiveMonth + 1;
            }
            else
            {
                newYear  = Store.ActiveYear + 1;
                newMonth = 1;
            }

            ProductQty productQty = new ProductQty();

            var newQty = productQtyRepository.GetAll(newMonth, newYear);

            if (newQty.Count == 0)
            {
                //cari data lama
                var oldQty = productQtyRepository.GetAll(Store.ActiveMonth, Store.ActiveYear);

                foreach (var p in oldQty)
                {
                    productQty.ActiveYear           = newYear;
                    productQty.ActiveMonth          = newMonth;
                    productQty.ProductId            = p.ProductId;
                    productQty.QtyBegin             = p.QtyEnd;
                    productQty.ValueBegin           = p.ValueEnd;
                    productQty.QtyIn                = 0;
                    productQty.PurchasePrice        = 0;
                    productQty.QtyAvailable         = 0;
                    productQty.ValueAverage         = 0;
                    productQty.ValueAvailable       = 0;
                    productQty.QtyOut               = 0;
                    productQty.SalesPrice           = 0;
                    productQty.QtyEnd               = p.QtyEnd;
                    productQty.ValueEnd             = p.ValueEnd;
                    productQty.QtyPlusCorrection    = 0;
                    productQty.QtyMinusCorrection   = 0;
                    productQty.ValuePlusCorrection  = 0;
                    productQty.ValueMinusCorrection = 0;

                    productQtyRepository.Save(productQty);
                }
            }
            else
            {
                foreach (var newQ in newQty)
                {
                    //cari data lama
                    var oldQty1 = productQtyRepository.GetByMonthAndYear(Store.ActiveMonth, Store.ActiveYear, newQ.ProductId);

                    if (oldQty1 != null)
                    {
                        productQtyRepository.UpdateQtyBegin(newMonth, newYear, oldQty1.ProductId, oldQty1.QtyEnd, oldQty1.ValueEnd);
                    }
                }
                inventoryRepository.GenerateInventory(newMonth, newYear);
            }
        }
Ejemplo n.º 11
0
        private void SaveProduct()
        {
            if (txtCode.Text == "")
            {
                MessageBox.Show("Kode harus diisi", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtCode.Focus();
            }
            else if (formMode == FormMode.Add && productRepository.IsProductCodeExisted(txtCode.Text))
            {
                MessageBox.Show("Kode : " + txtCode.Text + "\n\n" + "sudah ada ", "Perhatian",
                                MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else if (cboCategory.Text == "")
            {
                MessageBox.Show("Kategori harus diisi", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtName.Focus();
            }
            else if (txtName.Text == "")
            {
                MessageBox.Show("Nama harus diisi", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtName.Focus();
            }
            else if (formMode == FormMode.Add && productRepository.IsProductNameExisted(txtName.Text))
            {
                MessageBox.Show("Nama : " + txtName.Text + "\n\n" + "sudah ada ", "Perhatian",
                                MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else if (txtUnit.Text == "")
            {
                MessageBox.Show("Satuan harus diisi", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtUnit.Focus();
            }
            else
            {
                var product = new Product();

                product.Code       = txtCode.Text;
                product.Name       = txtName.Text;
                product.CategoryId = new Guid(txtCategoryId.Text);
                product.Unit       = txtUnit.Text;
                product.Notes      = txtNotes.Text;
                product.IsActive   = chkIsActive.Checked;

                if (formMode == FormMode.Add)
                {
                    productRepository.Save(product);
                    GetLastProduct();
                }
                else if (formMode == FormMode.Edit)
                {
                    product.ID = new Guid(txtID.Text);

                    var productQtyItems = new List <ProductQty>();

                    if (Store.IsAdministrator)
                    {
                        foreach (ListViewItem item in lvwProductQty.Items)
                        {
                            string id                   = item.SubItems[0].Text;
                            string year                 = item.SubItems[1].Text;
                            string month                = item.SubItems[2].Text;
                            string qtyBegin             = item.SubItems[3].Text;
                            string valueBegin           = item.SubItems[4].Text;
                            string qtyIn                = item.SubItems[5].Text;
                            string purchasePrice        = item.SubItems[6].Text;
                            string qtyAvailable         = item.SubItems[7].Text;
                            string valueAverage         = item.SubItems[8].Text;
                            string valueAvailable       = item.SubItems[9].Text;
                            string qtyOut               = item.SubItems[10].Text;
                            string salesPrice           = item.SubItems[11].Text;
                            string qtyEnd               = item.SubItems[12].Text;
                            string valueEnd             = item.SubItems[13].Text;
                            string qtyPlusCorrection    = item.SubItems[14].Text;
                            string qtyMinusCorrection   = item.SubItems[15].Text;
                            string valuePlusCorrection  = item.SubItems[16].Text;
                            string valueMinusCorrection = item.SubItems[17].Text;

                            var pq = new ProductQty();

                            pq.ID                   = new Guid(id);
                            pq.ProductId            = new Guid(txtID.Text);
                            pq.ActiveMonth          = Store.GetMonthCode(month);
                            pq.ActiveYear           = int.Parse(year);
                            pq.QtyBegin             = int.Parse(qtyBegin);
                            pq.ValueBegin           = decimal.Parse(valueBegin.Replace(".", ""));
                            pq.QtyIn                = int.Parse(qtyIn);
                            pq.PurchasePrice        = decimal.Parse(purchasePrice.Replace(".", ""));
                            pq.QtyAvailable         = int.Parse(qtyAvailable);
                            pq.ValueAverage         = decimal.Parse(valueAverage.Replace(".", ""));
                            pq.ValueAvailable       = decimal.Parse(valueAvailable.Replace(".", ""));
                            pq.QtyOut               = int.Parse(qtyOut);
                            pq.SalesPrice           = decimal.Parse(salesPrice.Replace(".", ""));
                            pq.QtyEnd               = int.Parse(qtyEnd);
                            pq.ValueEnd             = decimal.Parse(valueEnd.Replace(".", ""));
                            pq.QtyPlusCorrection    = int.Parse(qtyPlusCorrection);
                            pq.QtyMinusCorrection   = int.Parse(qtyMinusCorrection);
                            pq.ValuePlusCorrection  = decimal.Parse(valuePlusCorrection.Replace(".", ""));
                            pq.ValueMinusCorrection = decimal.Parse(valueMinusCorrection.Replace(".", ""));

                            productQtyItems.Add(pq);
                        }
                    }

                    else //dummy
                    {
                        foreach (ListViewItem item in lvwProductQty2.Items)
                        {
                            string id                   = item.SubItems[0].Text;
                            string year                 = item.SubItems[1].Text;
                            string month                = item.SubItems[2].Text;
                            string qtyBegin             = item.SubItems[3].Text;
                            string valueBegin           = item.SubItems[4].Text;
                            string qtyIn                = item.SubItems[5].Text;
                            string purchasePrice        = item.SubItems[6].Text;
                            string qtyAvailable         = item.SubItems[7].Text;
                            string valueAverage         = item.SubItems[8].Text;
                            string valueAvailable       = item.SubItems[9].Text;
                            string qtyOut               = item.SubItems[10].Text;
                            string salesPrice           = item.SubItems[11].Text;
                            string qtyEnd               = item.SubItems[12].Text;
                            string valueEnd             = item.SubItems[13].Text;
                            string qtyPlusCorrection    = item.SubItems[14].Text;
                            string qtyMinusCorrection   = item.SubItems[15].Text;
                            string valuePlusCorrection  = item.SubItems[16].Text;
                            string valueMinusCorrection = item.SubItems[17].Text;

                            var pq = new ProductQty();

                            pq.ID                   = new Guid(id);
                            pq.ProductId            = new Guid(txtID.Text);
                            pq.ActiveMonth          = Store.GetMonthCode(month);
                            pq.ActiveYear           = int.Parse(year);
                            pq.QtyBegin             = int.Parse(qtyBegin);
                            pq.ValueBegin           = decimal.Parse(valueBegin.Replace(".", ""));
                            pq.QtyIn                = int.Parse(qtyIn);
                            pq.PurchasePrice        = decimal.Parse(purchasePrice.Replace(".", ""));
                            pq.QtyAvailable         = int.Parse(qtyAvailable);
                            pq.ValueAverage         = decimal.Parse(valueAverage.Replace(".", ""));
                            pq.ValueAvailable       = decimal.Parse(valueAvailable.Replace(".", ""));
                            pq.QtyOut               = int.Parse(qtyOut);
                            pq.SalesPrice           = decimal.Parse(salesPrice.Replace(".", ""));
                            pq.QtyEnd               = int.Parse(qtyEnd);
                            pq.ValueEnd             = decimal.Parse(valueEnd.Replace(".", ""));
                            pq.QtyPlusCorrection    = int.Parse(qtyPlusCorrection);
                            pq.QtyMinusCorrection   = int.Parse(qtyMinusCorrection);
                            pq.ValuePlusCorrection  = decimal.Parse(valuePlusCorrection.Replace(".", ""));
                            pq.ValueMinusCorrection = decimal.Parse(valueMinusCorrection.Replace(".", ""));

                            productQtyItems.Add(pq);
                        }
                    }



                    product.ProductQty = productQtyItems;
                    productRepository.Update(product);
                }

                LoadProducts();
                DisableForm();
                formMode = FormMode.View;
            }
        }