コード例 #1
0
ファイル: ReceiptNoteModel.cs プロジェクト: uitstu/ushop
        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();
        }
コード例 #2
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'), 5));
                item.QUANTITY_STOCK_S     = Int32.Parse(r[2].ToString());
                item.QUANTITY_VOUCHER_S   = Int32.Parse(r[3].ToString());
                item.QUANTITY_STOCK_M     = Int32.Parse(r[4].ToString());
                item.QUANTITY_VOUCHER_M   = Int32.Parse(r[5].ToString());
                item.QUANTITY_STOCK_L     = Int32.Parse(r[6].ToString());
                item.QUANTITY_VOUCHER_L   = Int32.Parse(r[7].ToString());
                item.QUANTITY_STOCK_XL    = Int32.Parse(r[8].ToString());
                item.QUANTITY_VOUCHER_XL  = Int32.Parse(r[9].ToString());
                item.QUANTITY_STOCK_XXL   = Int32.Parse(r[10].ToString());
                item.QUANTITY_VOUCHER_XXL = Int32.Parse(r[11].ToString());

                item.TOTAL_STOCK   = Int32.Parse(r[12].ToString());
                item.TOTAL_VOUCHER = Int32.Parse(r[13].ToString());
                item.PRICE         = Int32.Parse(r[14].ToString());
                item.AMOUNT        = Int32.Parse(r[15].ToString());

                item.RECORD_STATUS = "A";

                lst.Add(item);

                foreach (PRODUCT p in UShopDB.PRODUCTs.Where(o => o.PRODUCT_ID == item.PRODUCT_ID))
                {
                    p.SIZE_S   += item.QUANTITY_STOCK_S;
                    p.SIZE_M   += item.QUANTITY_STOCK_M;
                    p.SIZE_L   += item.QUANTITY_STOCK_L;
                    p.SIZE_XL  += item.QUANTITY_STOCK_XL;
                    p.SIZE_XXL += item.QUANTITY_STOCK_XXL;
                }
            }

            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();
        }
コード例 #3
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>();

            //update
            foreach (DataRow r in dtItems.Rows)
            {
                foreach (RECEIPT_NOTE_ITEM i in UShopDB.RECEIPT_NOTE_ITEMs.Where(o => o.RN_ID.Equals(obj.RN_ID)))
                {
                    if (Int32.Parse(r[0].ToString().Substring(r[0].ToString().IndexOf('0'), 5)).Equals(i.PRODUCT_ID) && i.RN_ID.Equals(obj.RN_ID) && i.RECORD_STATUS.Equals("A"))
                    {
                        lstUpdated.Add(i);
                        break;
                    }
                }
            }


            //insert
            foreach (DataRow r in dtItems.Rows)
            {
                bool isFounded = false;
                foreach (RECEIPT_NOTE_ITEM i in UShopDB.RECEIPT_NOTE_ITEMs.Where(o => o.RN_ID.Equals(obj.RN_ID)))
                {
                    if (Int32.Parse(r[0].ToString().Substring(r[0].ToString().IndexOf('0'), 5)).Equals(i.PRODUCT_ID) && i.RECORD_STATUS.Equals("A"))
                    {
                        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.QUANTITY_STOCK_M     = Int32.Parse(r[4].ToString());
                    re_i.QUANTITY_VOUCHER_M   = Int32.Parse(r[5].ToString());
                    re_i.QUANTITY_STOCK_L     = Int32.Parse(r[6].ToString());
                    re_i.QUANTITY_VOUCHER_L   = Int32.Parse(r[7].ToString());
                    re_i.QUANTITY_STOCK_XL    = Int32.Parse(r[8].ToString());
                    re_i.QUANTITY_VOUCHER_XL  = Int32.Parse(r[9].ToString());
                    re_i.QUANTITY_STOCK_XXL   = Int32.Parse(r[10].ToString());
                    re_i.QUANTITY_VOUCHER_XXL = Int32.Parse(r[11].ToString());
                    re_i.TOTAL_STOCK          = Int32.Parse(r[12].ToString());
                    re_i.TOTAL_VOUCHER        = Int32.Parse(r[13].ToString());
                    re_i.PRICE  = Int32.Parse(r[14].ToString());
                    re_i.AMOUNT = Int32.Parse(r[15].ToString());

                    lstInserted.Add(re_i);
                }
            }

            //delete
            foreach (RECEIPT_NOTE_ITEM i in UShopDB.RECEIPT_NOTE_ITEMs.Where(o => o.RN_ID.Equals(obj.RN_ID)))
            {
                bool isFounded = false;
                foreach (DataRow r in dtItems.Rows)
                {
                    if (Int32.Parse(r[0].ToString().Substring(r[0].ToString().IndexOf('0'), 5)).Equals(i.PRODUCT_ID) && i.RN_ID.Equals(obj.RN_ID) && i.RECORD_STATUS.Equals("A"))
                    {
                        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 r in lstDeleted)
            {
                foreach (PRODUCT p in UShopDB.PRODUCTs)
                {
                    if (p.PRODUCT_ID.Equals(r.PRODUCT_ID) && (p.SIZE_S < r.QUANTITY_STOCK_S || p.SIZE_M < r.QUANTITY_STOCK_M ||
                                                              p.SIZE_L < r.QUANTITY_STOCK_L || p.SIZE_XL < r.QUANTITY_STOCK_XL || p.SIZE_XXL < r.QUANTITY_STOCK_XXL))
                    {
                        strError += "\nSo luong " + p.PRODUCT_NAME + "khong du de delete.";
                        break;
                    }
                }
            }

            //kiem tra update
            foreach (RECEIPT_NOTE_ITEM i in lstUpdated)
            {
                //DataRow rForCheck = new DataRow();
                foreach (DataRow r in dtItems.Rows)
                {
                    if (i.PRODUCT_ID.Equals(Int32.Parse(r[0].ToString().Substring(r[0].ToString().IndexOf('0'), 5))))
                    {
                        //rForCheck = r;

                        //i.RN_ID = obj.RN_ID;
                        //i.PRODUCT_ID = getProductByCODE(r[0].ToString()).PRODUCT_ID;
                        int sTotal   = Int32.Parse(r[2].ToString());
                        int mTotal   = Int32.Parse(r[4].ToString());
                        int lTotal   = Int32.Parse(r[6].ToString());
                        int xlTotal  = Int32.Parse(r[8].ToString());
                        int xxlTotal = Int32.Parse(r[10].ToString());

                        foreach (PRODUCT p in UShopDB.PRODUCTs)
                        {
                            if (p.PRODUCT_ID.Equals(i.PRODUCT_ID) && (p.SIZE_S + (sTotal - i.QUANTITY_STOCK_S) < 0 ||
                                                                      p.SIZE_M + (mTotal - i.QUANTITY_STOCK_M) < 0 || p.SIZE_L + (lTotal - i.QUANTITY_STOCK_L) < 0 ||
                                                                      p.SIZE_XL + (xlTotal - i.QUANTITY_STOCK_XL) < 0 || p.SIZE_XXL + (xxlTotal - i.QUANTITY_STOCK_XXL) < 0))
                            {
                                strError += "\nSo luong " + p.PRODUCT_NAME + "khong du de update.";
                                break;
                            }
                        }

                        break;
                    }
                }
            }

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

            //

            if (!strError.Equals(""))
            {
                Console.WriteLine("loi roi hixx " + strError);
                return(strError);
            }

            //
            if (dtItems.Rows.Count == 0) //chuc nang xoa RECEIPT_NOTE
            {
                obj.RECORD_STATUS = "D";
            }
            //
            //delete
            foreach (RECEIPT_NOTE_ITEM r in lstDeleted)
            {
                UShopDB.RECEIPT_NOTE_ITEMs.DeleteOnSubmit(r);

                //cap nhat PRODUCT table
                foreach (PRODUCT p in UShopDB.PRODUCTs)
                {
                    if (p.PRODUCT_ID.Equals(r.PRODUCT_ID))
                    {
                        p.SIZE_S   -= r.QUANTITY_STOCK_S;
                        p.SIZE_M   -= r.QUANTITY_STOCK_M;
                        p.SIZE_L   -= r.QUANTITY_STOCK_L;
                        p.SIZE_XL  -= r.QUANTITY_STOCK_XL;
                        p.SIZE_XXL -= r.QUANTITY_STOCK_XXL;
                        break;
                    }
                }
            }

            //update
            foreach (RECEIPT_NOTE_ITEM i in lstUpdated)
            {
                foreach (DataRow r in dtItems.Rows)
                {
                    if (i.PRODUCT_ID.Equals(Int32.Parse(r[0].ToString().Substring(r[0].ToString().IndexOf('0'), 5))))
                    {
                        int sTotal   = Int32.Parse(r[2].ToString());
                        int mTotal   = Int32.Parse(r[4].ToString());
                        int lTotal   = Int32.Parse(r[6].ToString()); Console.WriteLine("lTotal aaa: " + lTotal);
                        int xlTotal  = Int32.Parse(r[8].ToString());
                        int xxlTotal = Int32.Parse(r[10].ToString());

                        foreach (PRODUCT p in UShopDB.PRODUCTs)
                        {
                            Console.WriteLine("chay ko du");
                            if (p.PRODUCT_ID.Equals(i.PRODUCT_ID))
                            {
                                p.SIZE_S   += (sTotal - i.QUANTITY_STOCK_S);
                                p.SIZE_M   += (mTotal - i.QUANTITY_STOCK_M); Console.WriteLine("QUANTITY_STOCK_L aaa: " + i.QUANTITY_STOCK_L);
                                p.SIZE_L   += (lTotal - i.QUANTITY_STOCK_L); Console.WriteLine("Tang " + (lTotal - i.QUANTITY_STOCK_L));
                                p.SIZE_XL  += (xlTotal - i.QUANTITY_STOCK_XL);
                                p.SIZE_XXL += (xxlTotal - i.QUANTITY_STOCK_XXL);
                                break;
                            }
                        }

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

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

                        i.QUANTITY_STOCK_M     = Int32.Parse(r[4].ToString());
                        i.QUANTITY_VOUCHER_M   = Int32.Parse(r[5].ToString());
                        i.QUANTITY_STOCK_L     = Int32.Parse(r[6].ToString());
                        i.QUANTITY_VOUCHER_L   = Int32.Parse(r[7].ToString());
                        i.QUANTITY_STOCK_XL    = Int32.Parse(r[8].ToString());
                        i.QUANTITY_VOUCHER_XL  = Int32.Parse(r[9].ToString());
                        i.QUANTITY_STOCK_XXL   = Int32.Parse(r[10].ToString());
                        i.QUANTITY_VOUCHER_XXL = Int32.Parse(r[11].ToString());
                        i.TOTAL_STOCK          = Int32.Parse(r[12].ToString());
                        i.TOTAL_VOUCHER        = Int32.Parse(r[13].ToString());
                        i.PRICE  = Int32.Parse(r[14].ToString());
                        i.AMOUNT = Int32.Parse(r[15].ToString());

                        break;
                    }
                }
            }

            //insert

            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))
                    {
                        p.SIZE_S   += r.QUANTITY_STOCK_S;
                        p.SIZE_M   += r.QUANTITY_STOCK_M;
                        p.SIZE_L   += r.QUANTITY_STOCK_L;
                        p.SIZE_XL  += r.QUANTITY_STOCK_XL;
                        p.SIZE_XXL += r.QUANTITY_STOCK_XXL;
                    }
                    break;
                }
            }

            UShopDB.SubmitChanges();

            return("");
        }
コード例 #4
0
ファイル: ReceiptNoteModel.cs プロジェクト: uitstu/ushop
        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("");
        }