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