Exemple #1
0
        public void deleteProductSize(string id, string size)
        {
            PRODUCT_SIZE obj = UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID == Convert.ToInt32(id) && o.SIZE.Equals(size)).SingleOrDefault();

            UShopDB.PRODUCT_SIZEs.DeleteOnSubmit(obj);
            UShopDB.SubmitChanges();
        }
Exemple #2
0
        public void updateProductSize(PRODUCT_SIZE product)
        {
            PRODUCT_SIZE obj = UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID == product.PRODUCT_ID && o.SIZE.Equals(product.SIZE)).SingleOrDefault();

            obj.IN_STOCK_QUANTITY = product.IN_STOCK_QUANTITY;
            obj.PRODUCT_ID        = product.PRODUCT_ID;
            obj.SIZE = product.SIZE;

            UShopDB.SubmitChanges();
        }
Exemple #3
0
        public void add(RECEIPT_NOTE obj, DataTable dtItems)
        {
            UShopDB.RECEIPT_NOTEs.InsertOnSubmit(obj);
            UShopDB.SubmitChanges();
            obj.RN_CODE = getCODE("RCN", obj.RN_ID);

            List <RECEIPT_NOTE_ITEM> lst = new List <RECEIPT_NOTE_ITEM>();

            foreach (DataRow r in dtItems.Rows)
            {
                RECEIPT_NOTE_ITEM item = new RECEIPT_NOTE_ITEM();
                item.RN_ID              = obj.RN_ID;
                item.PRODUCT_ID         = Int32.Parse(r[0].ToString().Substring(r[0].ToString().IndexOf('0'), r[0].ToString().Length - r[0].ToString().IndexOf('0')));
                item.QUANTITY_STOCK_S   = Int32.Parse(r[2].ToString());
                item.QUANTITY_VOUCHER_S = Int32.Parse(r[3].ToString());

                item.SIZE = r[4].ToString();

                item.PRICE  = Int32.Parse(r[5].ToString());
                item.AMOUNT = Int32.Parse(r[6].ToString());

                item.RECORD_STATUS = "A";

                lst.Add(item);

                //
                foreach (RECEIPT_NOTE_ITEM i in lst)
                {
                    if (UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID.Equals(i.PRODUCT_ID) && o.SIZE.Equals(i.SIZE)).Count() > 0)
                    {
                        PRODUCT_SIZE p = UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID.Equals(i.PRODUCT_ID) && o.SIZE.Equals(i.SIZE)).First();
                        p.IN_STOCK_QUANTITY += item.QUANTITY_STOCK_S;
                    }
                    else
                    {
                        PRODUCT_SIZE p = new PRODUCT_SIZE();
                        p.PRODUCT_ID        = i.PRODUCT_ID ?? 1;
                        p.SIZE              = i.SIZE;
                        p.IN_STOCK_QUANTITY = item.QUANTITY_STOCK_S;
                        UShopDB.PRODUCT_SIZEs.InsertOnSubmit(p);
                    }
                }
            }

            UShopDB.RECEIPT_NOTE_ITEMs.InsertAllOnSubmit(lst);

            UShopDB.SubmitChanges();

            foreach (RECEIPT_NOTE_ITEM i in UShopDB.RECEIPT_NOTE_ITEMs.Where(o => o.RN_ID == obj.RN_ID))
            {
                i.RN_ITEM_CODE = getCODE("RIT", i.RN_ITEM_ID);
            }

            UShopDB.SubmitChanges();
        }
Exemple #4
0
        public PRODUCT_SIZE findProductSizeBy(int id, String size)
        {
            PRODUCT_SIZE ret = null;

            foreach (var item in proSizeList)
            {
                if (item.PRODUCT_ID == id && item.SIZE.Equals(size))
                {
                    ret = item;
                    break;
                }
            }
            return(ret);
        }
Exemple #5
0
 public void addProductSize(PRODUCT_SIZE obj)
 {
     try
     {
         UShopDB.PRODUCT_SIZEs.InsertOnSubmit(obj);
         UShopDB.SubmitChanges();
         //obj.PRODUCT_CODE = getCODE("PRO",obj.PRODUCT_ID);
         //UShopDB.SubmitChanges();
     }
     catch (Exception ex)
     {
         throw new Exception();
     }
 }
Exemple #6
0
        private bool updateProductSize(int productId, string size, int deltaQuantity)
        {
            PRODUCT_SIZE prosize = UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID == productId && o.SIZE.Equals(size)).SingleOrDefault();

            if (prosize != null)
            {
                if (prosize.IN_STOCK_QUANTITY == 0)
                {
                    throw new Exception("instock quantity is zero but still has an invoice item ");
                }

                prosize.IN_STOCK_QUANTITY = prosize.IN_STOCK_QUANTITY + deltaQuantity;

                UShopDB.SubmitChanges();
                return(true);
            }
            return(false);
        }
Exemple #7
0
        public void addItem(String productCodeName, String size)
        {
            if (productCodeName != null && !productCodeName.Equals("") && !productCodeName.Equals(Resources.EMPTY_ITEM) &&
                size != null && !size.Equals("") && !size.Equals(Resources.EMPTY_ITEM) &&
                productList != null && productList.Count > 0 &&
                proSizeList != null && proSizeList.Count > 0)
            {
                List <String> paramList   = new List <String>();
                String[]      splitString = productCodeName.Split(new char[] { '-' });
                String        proCode     = splitString[0];
                String        proName     = splitString[1];
                PRODUCT       curProduct  = findProductBy(proCode);
                PRODUCT_SIZE  currProSize = findProductSizeBy(curProduct.PRODUCT_ID, size);
                DataTable     table       = InvoiceAddingView.getInvoiceItemDataTable();

                //check instock quanntity
                if (currProSize.IN_STOCK_QUANTITY <= 0)
                {
                    invoiceAddingView.showMessageBox("Sản phẩm đã hết hàng!", System.Windows.Forms.MessageBoxIcon.Information);
                    return;
                }
                //minus taken
                currProSize.IN_STOCK_QUANTITY--;
                //check exist rows
                for (int i = 0; i < table.Rows.Count; i++)
                {
                    String itemProCodeName = table.Rows[i]["PRODUCT_NAME"] + "";
                    String itemSize        = table.Rows[i]["SIZE"] + "";
                    if (itemProCodeName.Equals(productCodeName) && size.Equals(itemSize))
                    {
                        int   itemQuantity = Convert.ToInt16(table.Rows[i]["QUANTITY"]);
                        float sale         = Convert.ToSingle(table.Rows[i]["DISCOUNT_AMOUNT"]);
                        itemQuantity++;
                        table.Rows[i]["QUANTITY"] = itemQuantity;
                        table.Rows[i]["AMOUNT"]   = calculateAmount(itemQuantity, (float)curProduct.COST_PRICE, sale);
                        sumTotalAmount();
                        return;
                    }
                }

                /* INVOICE_ITEM item = null;
                *  if ((item = isExistItem(curProduct.PRODUCT_ID, size) ) != null)
                *  {
                *    item.QUANTITY = item.QUANTITY + 1;
                *    item.AMOUNT = item.QUANTITY * item.PRICE;
                *  }
                *
                *  item = new INVOICE_ITEM();
                *  // miss ITEM_ID, ITEM_CODE, INVOICE_ID
                *  item.PRICE = curProduct.COST_PRICE;
                *  item.PRODUCT_ID = curProduct.PRODUCT_ID;
                *  item.QUANTITY = 1;
                *  item.SIZE = size;
                *  item.AMOUNT = item.QUANTITY * item.PRICE;
                *  item.DISCOUNT = 0;
                *  item.RECORD_STATUS = RECORD_STATUS.ACTIVE+"";
                *
                *  //add into list
                *  invoiceItemList.Add(item);*/


                //create params
                float  discount = (float)curProduct.SALE_AMOUNT;
                int    quantity = 1;
                double amount   = calculateAmount(quantity, (float)curProduct.COST_PRICE, discount);
                String note     = "";

                paramList.Add(table.Rows.Count + 1 + "");
                paramList.Add(productCodeName);
                paramList.Add(size);
                paramList.Add(curProduct.UNIT);

                paramList.Add(discount + "");
                paramList.Add(quantity + "");
                paramList.Add(curProduct.COST_PRICE + "");
                paramList.Add(amount + "");
                paramList.Add(note);

                //add into grid
                invoiceAddingView.addItemIntoGrid(paramList.ToArray());
                sumTotalAmount();

                //remove this product out of product list
                //productList.Remove(curProduct);
                //remove this size out of prosize list
                //proSizeList.Remove(currProSize);

                //update ui
                //invoiceAddingView.showProductName(generateProductNameList(null), false);
                //update ui
                //invoiceAddingView.showSizeOfProduct(generateSizeList());
            }
            else
            {
                invoiceAddingView.showMessageBox("Trường Tên sản phẩm, Kích cỡ chưa được chọn hoặc không hợp lệ", System.Windows.Forms.MessageBoxIcon.Error);
            }
        }
Exemple #8
0
 public void updateProductSize(PRODUCT_SIZE obj)
 {
     _model.updateProductSize(obj);
     _view.loadProductSizes(_model.loadProductSize());
 }
Exemple #9
0
 public void saveProductSize(PRODUCT_SIZE obj)
 {
     _model.addProductSize(obj);
     _view.loadProductSizes(_model.loadProductSize());
 }
Exemple #10
0
        public string update(RECEIPT_NOTE obj, DataTable dtItems)
        {
            String strError = "";

            List <RECEIPT_NOTE_ITEM> lstDeleted  = new List <RECEIPT_NOTE_ITEM>();
            List <RECEIPT_NOTE_ITEM> lstUpdated  = new List <RECEIPT_NOTE_ITEM>();
            List <RECEIPT_NOTE_ITEM> lstInserted = new List <RECEIPT_NOTE_ITEM>();

            //list update
            foreach (DataRow r in dtItems.Rows)
            {
                int    id   = Int32.Parse(r[0].ToString().Substring(r[0].ToString().IndexOf('0'), r[0].ToString().Length - r[0].ToString().IndexOf('0')));
                string size = r[4].ToString();

                foreach (RECEIPT_NOTE_ITEM i in UShopDB.RECEIPT_NOTE_ITEMs.Where(o => o.RN_ID.Equals(obj.RN_ID) && o.RECORD_STATUS.Equals("A")))
                {
                    if (id.Equals(i.PRODUCT_ID) && i.RN_ID.Equals(obj.RN_ID) && i.SIZE.Equals(size))
                    {
                        lstUpdated.Add(i);
                        break;
                    }
                }
            }


            //list insert
            foreach (DataRow r in dtItems.Rows)
            {
                int    id   = Int32.Parse(r[0].ToString().Substring(r[0].ToString().IndexOf('0'), r[0].ToString().Length - r[0].ToString().IndexOf('0')));
                string size = r[4].ToString();

                bool isFounded = false;
                foreach (RECEIPT_NOTE_ITEM i in UShopDB.RECEIPT_NOTE_ITEMs.Where(o => o.RN_ID.Equals(obj.RN_ID) && o.RECORD_STATUS.Equals("A")))
                {
                    if (id.Equals(i.PRODUCT_ID) && i.RN_ID.Equals(obj.RN_ID) && i.SIZE.Equals(size))
                    {
                        isFounded = true;
                        break;
                    }
                }

                if (!isFounded)
                {
                    RECEIPT_NOTE_ITEM re_i = new RECEIPT_NOTE_ITEM();

                    re_i.RN_ID            = obj.RN_ID;
                    re_i.PRODUCT_ID       = getProductByCODE(r[0].ToString()).PRODUCT_ID;
                    re_i.QUANTITY_STOCK_S = Int32.Parse(r[2].ToString());

                    re_i.QUANTITY_VOUCHER_S = Int32.Parse(r[3].ToString());

                    re_i.SIZE = r[4].ToString();

                    re_i.PRICE  = Int32.Parse(r[5].ToString());
                    re_i.AMOUNT = Int32.Parse(r[6].ToString());

                    lstInserted.Add(re_i);
                }
            }

            //list delete
            foreach (RECEIPT_NOTE_ITEM i in UShopDB.RECEIPT_NOTE_ITEMs.Where(o => o.RN_ID.Equals(obj.RN_ID) && o.RECORD_STATUS.Equals("A")))
            {
                bool isFounded = false;
                foreach (DataRow r in dtItems.Rows)
                {
                    int    id   = Int32.Parse(r[0].ToString().Substring(r[0].ToString().IndexOf('0'), r[0].ToString().Length - r[0].ToString().IndexOf('0')));
                    string size = r[4].ToString();

                    if (id.Equals(i.PRODUCT_ID) && i.RN_ID.Equals(obj.RN_ID) && i.SIZE.Equals(size))
                    {
                        isFounded = true;
                        break;
                    }
                }
                if (!isFounded)
                {
                    lstDeleted.Add(i);
                }
            }

            // Sau khi tim duoc lstInsert-Delete-Update, tien hanh kiem tra co loi hay khong

            //kiem tra delete
            foreach (RECEIPT_NOTE_ITEM re in lstDeleted)
            {
                int count = UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID == re.PRODUCT_ID && o.SIZE.Equals(re.SIZE)).Count();

                if (count > 0)
                {
                    PRODUCT_SIZE p = UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID == re.PRODUCT_ID && o.SIZE.Equals(re.SIZE)).First();
                    if (p.IN_STOCK_QUANTITY - re.QUANTITY_STOCK_S < 0)
                    {
                        PRODUCT pro = null;
                        pro       = UShopDB.PRODUCTs.Where(o => o.PRODUCT_ID == p.PRODUCT_ID).SingleOrDefault();
                        strError += "\nSo luong " + pro.PRODUCT_NAME + "khong du de delete.";
                    }
                    break;
                }
                else
                {
                    //ko co thi sao?
                }
            }

            //kiem tra update
            foreach (DataRow r in dtItems.Rows)
            {
                int    id   = Int32.Parse(r[0].ToString().Substring(r[0].ToString().IndexOf('0'), r[0].ToString().Length - r[0].ToString().IndexOf('0')));
                string size = r[4].ToString();
                string name = r[1].ToString();

                foreach (RECEIPT_NOTE_ITEM re in lstUpdated)
                {
                    if (re.PRODUCT_ID == id)
                    {
                        int sub             = Int32.Parse(r[2].ToString());
                        RECEIPT_NOTE_ITEM i = new RECEIPT_NOTE_ITEM();

                        foreach (RECEIPT_NOTE_ITEM rr in lstUpdated)
                        {
                            if (rr.PRODUCT_ID == id)
                            {
                                i = rr;
                                break;
                            }
                        }


                        int count = UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID == id && o.SIZE.Equals(size)).Count();

                        if (count > 0)
                        {
                            PRODUCT_SIZE p = UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID == id && o.SIZE.Equals(size)).First();
                            if (p.IN_STOCK_QUANTITY + (sub - i.QUANTITY_STOCK_S) < 0)
                            {
                                strError += "\nSo luong " + name + "khong du de delete.";
                            }
                            break;
                        }
                        else
                        {
                            //ko co thi sao?
                        }
                    }
                }
            }

            //insert khong can quan tam so luong luc truoc nen khong can kiem tra

            //

            if (!strError.Equals(""))
            {
                return(strError);
            }

            //
            if (dtItems.Rows.Count == 0) //chuc nang xoa RECEIPT_NOTE
            {
                obj.RECORD_STATUS = "D";
            }
            //

            //delete
            foreach (RECEIPT_NOTE_ITEM r in lstDeleted)
            {
                int count = UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID.Equals(r.PRODUCT_ID) && o.SIZE.Equals(r.SIZE)).Count();
                if (count > 0)
                {
                    /*
                     * int sub = 0;
                     * foreach (DataRow ro in dtItems.Rows)
                     * {
                     *  int id = Int32.Parse(ro[0].ToString().Substring(ro[0].ToString().IndexOf('0'), ro[0].ToString().Length - ro[0].ToString().IndexOf('0')));
                     *  string size = ro[4].ToString();
                     *  string name = ro[1].ToString();
                     *
                     *  if (id.Equals(r.PRODUCT_ID) && size.Equals(r.SIZE) && r.RN_ID.Equals(obj.RN_ID) && r.RECORD_STATUS.Equals("A"))
                     *  {
                     *      sub = Int32.Parse(ro[2].ToString());
                     *  }
                     * }
                     * Console.WriteLine("sub = "+sub);
                     * */
                    if (UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID.Equals(r.PRODUCT_ID) && o.SIZE.Equals(r.SIZE)).Count() > 0)
                    {
                        UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID.Equals(r.PRODUCT_ID) && o.SIZE.Equals(r.SIZE)).First().IN_STOCK_QUANTITY -= r.QUANTITY_STOCK_S;
                    }
                }
                r.RECORD_STATUS = "D";
            }

            //update
            foreach (RECEIPT_NOTE_ITEM r in lstUpdated)
            {
                foreach (DataRow ro in dtItems.Rows)
                {
                    int    id   = Int32.Parse(ro[0].ToString().Substring(ro[0].ToString().IndexOf('0'), ro[0].ToString().Length - ro[0].ToString().IndexOf('0')));
                    string size = ro[4].ToString();
                    string name = ro[1].ToString();
                    int    sub  = Int32.Parse(ro[2].ToString());

                    if (id == r.PRODUCT_ID)
                    {
                        int count = UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID.Equals(r.PRODUCT_ID) && o.SIZE.Equals(r.SIZE)).Count();
                        if (count > 0)
                        {
                            UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID.Equals(r.PRODUCT_ID) && o.SIZE.Equals(r.SIZE)).First().IN_STOCK_QUANTITY += (sub - r.QUANTITY_STOCK_S);
                        }
                        r.QUANTITY_STOCK_S += (sub - r.QUANTITY_STOCK_S);
                        break;
                    }
                }
            }

            //insert
            foreach (RECEIPT_NOTE_ITEM r in lstInserted)
            {
                int count = UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID.Equals(r.PRODUCT_ID) && o.SIZE.Equals(r.SIZE)).Count();
                if (count > 0)
                {
                    UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID.Equals(r.PRODUCT_ID) && o.SIZE.Equals(r.SIZE)).First().IN_STOCK_QUANTITY += r.QUANTITY_STOCK_S;
                }
                else
                {
                    PRODUCT_SIZE pro = new PRODUCT_SIZE();
                    pro.PRODUCT_ID        = r.PRODUCT_ID ?? 1;
                    pro.SIZE              = r.SIZE;
                    pro.IN_STOCK_QUANTITY = r.QUANTITY_STOCK_S;
                    UShopDB.PRODUCT_SIZEs.InsertOnSubmit(pro);
                }
                r.RECORD_STATUS = "A";
                UShopDB.RECEIPT_NOTE_ITEMs.InsertOnSubmit(r);
            }

            /*
             * foreach (RECEIPT_NOTE_ITEM r in lstInserted)
             * {
             *
             *  r.RECORD_STATUS = "A";
             *  UShopDB.RECEIPT_NOTE_ITEMs.InsertOnSubmit(r);
             *
             *  foreach (PRODUCT p in UShopDB.PRODUCTs)
             *  {
             *      if (p.PRODUCT_ID.Equals(r.PRODUCT_ID))
             *      {
             *          //
             *          if (UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID.Equals(p.PRODUCT_ID) && o.SIZE.Equals("S")).Count() > 0)
             *              UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID.Equals(p.PRODUCT_ID) && o.SIZE.Equals("S")).First().IN_STOCK_QUANTITY += r.QUANTITY_STOCK_S;
             *          else
             *          {
             *              if (r.QUANTITY_STOCK_S>0)
             *                  UShopDB.PRODUCT_SIZEs.InsertOnSubmit(new PRODUCT_SIZE { PRODUCT_ID = p.PRODUCT_ID, SIZE = "S", IN_STOCK_QUANTITY = r.QUANTITY_STOCK_S });
             *          }
             *
             *          if (UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID.Equals(p.PRODUCT_ID) && o.SIZE.Equals("M")).Count() > 0)
             *              UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID.Equals(p.PRODUCT_ID) && o.SIZE.Equals("M")).First().IN_STOCK_QUANTITY += r.QUANTITY_STOCK_M;
             *          else
             *          {
             *              if (r.QUANTITY_STOCK_M > 0)
             *                  UShopDB.PRODUCT_SIZEs.InsertOnSubmit(new PRODUCT_SIZE { PRODUCT_ID = p.PRODUCT_ID, SIZE = "M", IN_STOCK_QUANTITY = r.QUANTITY_STOCK_M });
             *          }
             *
             *          if (UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID.Equals(p.PRODUCT_ID) && o.SIZE.Equals("L")).Count() > 0)
             *              UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID.Equals(p.PRODUCT_ID) && o.SIZE.Equals("L")).First().IN_STOCK_QUANTITY += r.QUANTITY_STOCK_L;
             *          else
             *          {
             *              if (r.QUANTITY_STOCK_L > 0)
             *                  UShopDB.PRODUCT_SIZEs.InsertOnSubmit(new PRODUCT_SIZE { PRODUCT_ID = p.PRODUCT_ID, SIZE = "L", IN_STOCK_QUANTITY = r.QUANTITY_STOCK_L });
             *          }
             *
             *          if (UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID.Equals(p.PRODUCT_ID) && o.SIZE.Equals("XL")).Count() > 0)
             *              UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID.Equals(p.PRODUCT_ID) && o.SIZE.Equals("XL")).First().IN_STOCK_QUANTITY += r.QUANTITY_STOCK_XL;
             *          else
             *          {
             *              if (r.QUANTITY_STOCK_XL > 0)
             *                  UShopDB.PRODUCT_SIZEs.InsertOnSubmit(new PRODUCT_SIZE { PRODUCT_ID = p.PRODUCT_ID, SIZE = "XL", IN_STOCK_QUANTITY = r.QUANTITY_STOCK_XL });
             *          }
             *
             *          if (UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID.Equals(p.PRODUCT_ID) && o.SIZE.Equals("XXL")).Count() > 0)
             *              UShopDB.PRODUCT_SIZEs.Where(o => o.PRODUCT_ID.Equals(p.PRODUCT_ID) && o.SIZE.Equals("XXL")).First().IN_STOCK_QUANTITY += r.QUANTITY_STOCK_XXL;
             *          else
             *          {
             *              if (r.QUANTITY_STOCK_XXL > 0)
             *                  UShopDB.PRODUCT_SIZEs.InsertOnSubmit(new PRODUCT_SIZE { PRODUCT_ID = p.PRODUCT_ID, SIZE = "XXL", IN_STOCK_QUANTITY = r.QUANTITY_STOCK_XXL });
             *          }
             *          //
             *
             *      }
             *      break;
             *  }
             * }
             */
            UShopDB.SubmitChanges();

            return("");
        }