Exemplo n.º 1
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!" }));
 }
Exemplo n.º 2
0
        public ActionResult CreateUpdate(Merchant_OrderHeader data, List <Merchant_OrderDetail> details)
        {
            using (var dbConn = MCC.Helpers.OrmliteConnection.openConn())
            {
                try
                {
                    if (accessDetail != null && (accessDetail.access["all"] || (accessDetail.access["create"] && accessDetail.access["update"])))
                    {
                        if (details == null)
                        {
                            return(Json(new { success = false, error = "Vui lòng chọn sản phẩm!" }));
                        }
                        Customer custom = dbConn.FirstOrDefault <Customer>("ma_khach_hang={0}".Params(data.ma_khach_hang));
                        if (data.id > 0 || !String.IsNullOrEmpty(data.ma_don_hang))
                        {
                            Merchant_OrderHeader exist = dbConn.FirstOrDefault <Merchant_OrderHeader>("ma_don_hang={0}".Params(data.ma_don_hang));

                            if (exist != null)
                            {
                                if (exist.trang_thai_don_hang != AllConstant.trang_thai_don_hang.NEW)
                                {
                                    return(Json(new { success = false, error = "Đơn hàng này đã được xác nhận, không được phép chình sửa!" }));
                                }

                                exist.hinh_thuc_thanh_toan = data.hinh_thuc_thanh_toan;
                                exist.ngay_cap_nhat        = DateTime.Now;
                                exist.nguoi_cap_nhat       = currentUser.name;
                                exist.quan_huyen_giao      = data.quan_huyen_giao;
                                exist.tinh_thanh_giao      = data.tinh_thanh_giao;
                                exist.so_dien_thoai_giao   = data.so_dien_thoai_giao;
                                exist.dia_chi_giao_hang    = data.dia_chi_giao_hang;
                                dbConn.UpdateOnly(exist,
                                                  onlyFields: p =>
                                                  new
                                {
                                    p.hinh_thuc_thanh_toan,
                                    p.ngay_cap_nhat,
                                    p.nguoi_cap_nhat,
                                    p.quan_huyen_giao,
                                    p.tinh_thanh_giao,
                                    p.so_dien_thoai_giao,
                                    p.dia_chi_giao_hang,
                                },
                                                  where : p => p.ma_don_hang == exist.ma_don_hang);
                            }
                            data = exist;
                        }
                        else
                        {
                            //Tạo OrderHeader
                            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)];
                            }
                            data.ma_don_hang         = string.Join("", beginString) + DateTime.Now.ToString("yyyyMMddHHmm") + string.Join("", lastString);
                            data.quan_huyen_giao     = data.quan_huyen_giao;
                            data.tinh_thanh_giao     = data.tinh_thanh_giao;
                            data.ma_gian_hang        = currentUser.ma_gian_hang;
                            data.hoten               = custom.hoten;
                            data.trang_thai_don_hang = AllConstant.trang_thai_don_hang.NEW;
                            data.ngay_tao            = DateTime.Now;
                            data.ngay_cap_nhat       = DateTime.Now;
                            data.ngay_lay_hang       = DateTime.Now;
                            data.ngay_giao_hang      = DateTime.Now;
                            data.ngay_xac_nhan       = DateTime.Now;
                            data.ngay_hen_giao_hang  = DateTime.Now;
                            data.nguoi_tao           = User.Identity.Name;
                            dbConn.Insert(data);
                            int Id = (int)dbConn.GetLastInsertId();
                            data.id = Id;
                        }

                        //Xóa tất các các OrderDetail đã có của đơn hàng này
                        dbConn.Delete <Merchant_OrderDetail>("ma_don_hang={0}".Params(data.ma_don_hang));
                        //Tạo OrderDetail mới
                        Merchant_Product     productinfo = new Merchant_Product();
                        Merchant_OrderDetail existdetail = new Merchant_OrderDetail();
                        foreach (Merchant_OrderDetail item in details)
                        {
                            if (item.ma_san_pham != null)
                            {
                                productinfo = dbConn.FirstOrDefault <Merchant_Product>("ma_san_pham={0} and ma_gian_hang={1}", item.ma_san_pham, data.ma_gian_hang);
                                existdetail = dbConn.FirstOrDefault <Merchant_OrderDetail>("ma_don_hang={0} and ma_san_pham={1}".Params(data.ma_don_hang, item.ma_san_pham));
                                if (existdetail != null)
                                {
                                    existdetail.so_luong = existdetail.so_luong + item.so_luong;
                                    dbConn.UpdateOnly(existdetail,
                                                      onlyFields: p =>
                                                      new
                                    {
                                        p.so_luong,
                                    },
                                                      where : p => p.ma_don_hang == existdetail.ma_don_hang && p.ma_san_pham == existdetail.ma_san_pham);
                                }
                                else
                                {
                                    item.ma_don_hang   = data.ma_don_hang;
                                    item.ma_gian_hang  = data.ma_gian_hang;
                                    item.ten_san_pham  = productinfo.ten_san_pham;
                                    item.don_gia       = productinfo.don_gia;
                                    item.thanh_tien    = item.so_luong * productinfo.don_gia;
                                    item.ngay_tao      = DateTime.Now;
                                    item.ngay_cap_nhat = DateTime.Now;
                                    item.nguoi_tao     = User.Identity.Name;
                                    dbConn.Insert(item);
                                }
                            }
                        }
                        return(Json(new { success = true, data = data }));
                    }
                    else
                    {
                        return(Json(new { success = false, error = "Không có quyền tạo" }));
                    }
                }
                catch (Exception e)
                {
                    return(Json(new { success = false, error = "Lỗi" }));
                }
            }
        }