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!" })); }
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" })); } } }