Esempio n. 1
0
        public ActionResult CreateUpdate(Merchant_StockOutHeader header, List <Merchant_StockOutDetail> details)
        {
            if (accessDetail != null && (accessDetail.access["all"] || accessDetail.access["create"] || accessDetail.access["update"]))
            {
                try
                {
                    using (var dbConn = MCC.Helpers.OrmliteConnection.openConn())
                    {
                        Merchant_StockOutHeader check = dbConn.FirstOrDefault <Merchant_StockOutHeader>("ma_phieu_xuat_kho={0}".Params(header.ma_phieu_xuat_kho));
                        if (check == null)
                        {
                            var chars       = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
                            var beginString = new char[3];
                            var lastString  = new char[3];
                            var random      = new Random();

                            for (int i = 0; i < beginString.Length; i++)
                            {
                                beginString[i] = chars[random.Next(chars.Length)];
                            }
                            for (int i = 0; i < lastString.Length; i++)
                            {
                                lastString[i] = chars[random.Next(chars.Length)];
                            }
                            header.ma_phieu_xuat_kho = string.Join("", beginString) + DateTime.Now.ToString("yyyyMMddHHmm") + string.Join("", lastString);
                            //Nếu là admin tạo thiếu xuất kho thì chưa điền phiếu xuất kho này của gian hàng nào
                            if (isAdmin)
                            {
                                header.ma_gian_hang = "NONE";
                            }
                            else
                            {
                                header.ma_gian_hang = currentUser.ma_gian_hang;
                            }
                            header.danh_sach_don_hang = "NONE";
                            header.nguoi_xuat_kho     = currentUser.name;
                            header.nguoi_tao          = currentUser.name;
                            header.nguoi_cap_nhat     = currentUser.name;
                            header.ngay_tao           = DateTime.Now;
                            header.ngay_cap_nhat      = DateTime.Now;
                            header.ngay_xuat_kho      = DateTime.Now;
                            header.ngay_duyet         = DateTime.Now;
                            header.trang_thai         = AllConstant.trang_thai_duyet.CHUA_DUYET;
                            dbConn.Insert(header);
                            int Id = (int)dbConn.GetLastInsertId();
                            header.id = Id;
                            check     = header;
                        }
                        else
                        {
                            check.ghi_chu        = header.ghi_chu;
                            check.ma_chung_tu    = header.ma_chung_tu;
                            check.ma_kho         = header.ma_kho;
                            check.ngay_cap_nhat  = DateTime.Now;
                            check.ngay_xuat_kho  = DateTime.Now;
                            check.nguoi_nhan     = header.nguoi_nhan;
                            check.nguoi_cap_nhat = currentUser.name;
                            check.nguoi_xuat_kho = currentUser.name;
                            dbConn.UpdateOnly(check,
                                              onlyFields: p =>
                                              new
                            {
                                p.ghi_chu,
                                p.ma_chung_tu,
                                p.ma_kho,
                                p.ngay_cap_nhat,
                                p.ngay_xuat_kho,
                                p.nguoi_nhan,
                                p.nguoi_cap_nhat,
                                p.nguoi_xuat_kho
                            },
                                              where : p => p.ma_phieu_xuat_kho == check.ma_phieu_xuat_kho);
                        }
                        if (details != null)
                        {
                            //Xóa tất cả các sản phẩm đang có trong phiếu xuất kho hiện tại
                            dbConn.Delete <Merchant_StockOutDetail>("ma_phieu_xuat_kho={0}".Params(check.ma_phieu_xuat_kho));
                            //Thêm các sản phẩm của đơn hàng mới
                            Merchant_StockOutDetail data = new Merchant_StockOutDetail();
                            foreach (var item in details)
                            {
                                data.don_vi_tinh       = item.don_vi_tinh;
                                data.ma_gian_hang      = check.ma_gian_hang;
                                data.ma_phieu_xuat_kho = check.ma_phieu_xuat_kho;
                                data.ma_san_pham       = item.ma_san_pham;
                                data.ngay_cap_nhat     = DateTime.Now;
                                data.ngay_tao          = DateTime.Now;
                                data.nguoi_cap_nhat    = currentUser.name;
                                data.nguoi_tao         = currentUser.name;
                                data.so_luong_yeu_cau  = item.so_luong_yeu_cau;
                                dbConn.Insert(data);
                            }
                            List <SqlParameter> lstParameter = new List <SqlParameter>();
                            lstParameter.Add(new SqlParameter("@ma_don_hang", check.danh_sach_don_hang));
                            lstParameter.Add(new SqlParameter("@ma_phieu_xuat_kho", check.ma_phieu_xuat_kho));
                            new BIBIAM.Core.Data.Providers.SqlHelper().ExecuteQuery("p_Update_Order_StockOut", lstParameter);
                        }
                        return(Json(new { success = true, data = check }));
                    }
                }
                catch (Exception e)
                {
                    return(Json(new { success = false, error = "Lỗi trong quá trình tạo!" }));
                }
            }
            return(Json(new { success = false, error = "Không có quyền tạo!" }));
        }
Esempio n. 2
0
 public ActionResult AddProduct_Order(string ma_phieu_xuat_kho, string ma_don_hang)
 {
     if (accessDetail != null && (accessDetail.access["all"] || accessDetail.access["create"] || accessDetail.access["update"]))
     {
         try
         {
             using (var dbConn = MCC.Helpers.OrmliteConnection.openConn())
             {
                 Merchant_OrderHeader orderheader = dbConn.FirstOrDefault <Merchant_OrderHeader>("ma_don_hang={0}".Params(ma_don_hang));
                 if (orderheader == null)
                 {
                     return(Json(new { success = false, message = "Không tồn tại đơn hàng này!" }));
                 }
                 Merchant_StockOutHeader existheader = dbConn.FirstOrDefault <Merchant_StockOutHeader>("ma_phieu_xuat_kho={0}".Params(ma_phieu_xuat_kho));
                 if (existheader == null)
                 {
                     return(Json(new { success = false, message = "Không có phiếu xuất kho này!" }));
                 }
                 //Nếu là admin khi chọn đơn hàng mới quyết định phiếu xuất kho này của gian hàng nào
                 if (isAdmin)
                 {
                     existheader.ma_gian_hang = orderheader.ma_gian_hang;
                 }
                 //Xóa tất cả các sản phẩm đang có trong phiếu xuất kho hiện tại
                 dbConn.Delete <Merchant_StockOutDetail>("ma_phieu_xuat_kho={0}".Params(ma_phieu_xuat_kho));
                 //Thêm các sản phẩm của đơn hàng mới
                 List <Merchant_OrderDetail> orderdetail = dbConn.Select <Merchant_OrderDetail>("ma_don_hang={0} and trang_thai_xuat_kho<>{1}".Params(ma_don_hang, "DA_XUAT_KHO"));
                 Merchant_StockOutDetail     data        = new Merchant_StockOutDetail();
                 foreach (var item in orderdetail)
                 {
                     data.don_vi_tinh       = "cai";
                     data.ma_gian_hang      = orderheader.ma_gian_hang;
                     data.ma_phieu_xuat_kho = ma_phieu_xuat_kho;
                     data.ma_san_pham       = item.ma_san_pham;
                     data.ngay_cap_nhat     = DateTime.Now;
                     data.ngay_tao          = DateTime.Now;
                     data.nguoi_cap_nhat    = currentUser.name;
                     data.nguoi_tao         = currentUser.name;
                     data.so_luong_yeu_cau  = item.so_luong;
                     dbConn.Insert(data);
                 }
                 List <SqlParameter> lstParameter = new List <SqlParameter>();
                 lstParameter.Add(new SqlParameter("@ma_don_hang", ma_don_hang));
                 lstParameter.Add(new SqlParameter("@ma_phieu_xuat_kho", ma_phieu_xuat_kho));
                 new BIBIAM.Core.Data.Providers.SqlHelper().ExecuteQuery("p_Update_Order_StockOut", lstParameter);
                 existheader.danh_sach_don_hang = ma_don_hang;
                 dbConn.UpdateOnly(existheader,
                                   onlyFields: p =>
                                   new
                 {
                     p.danh_sach_don_hang,
                     p.ma_gian_hang
                 },
                                   where : p => p.ma_phieu_xuat_kho == existheader.ma_phieu_xuat_kho);
                 return(Json(new { success = true, error = "Thành công!" }));
             }
         }
         catch (Exception e)
         {
             return(Json(new { success = false, error = "Lỗi trong quá trình tạo!" }));
         }
     }
     return(Json(new { success = false, error = "Không có quyền tạo!" }));
 }