public string UpsertFull(Merchant_Voucher voucher, List <Merchant_Voucher_Detail> products, string UserName, string connectionString) { using (var db = new OrmliteConnection().openConn(connectionString)) { Merchant_Voucher checkID; checkID = db.SingleOrDefault <Merchant_Voucher>("id={0} and ma_gian_hang = {1}", voucher.id, voucher.ma_gian_hang); //Transaction for voucher using (var dbTrans = db.OpenTransaction(IsolationLevel.ReadCommitted)) { try { if (checkID != null) { voucher.ma_khuyen_mai = checkID.ma_khuyen_mai; checkID.ten_khuyen_mai = voucher.ten_khuyen_mai; checkID.gia_tri = voucher.gia_tri; checkID.loai_khuyen_mai = voucher.loai_khuyen_mai; checkID.dieu_kien = voucher.dieu_kien; checkID.mieu_ta = voucher.mieu_ta; checkID.gia_ban = voucher.gia_ban; checkID.ngay_bat_dau = voucher.ngay_bat_dau; checkID.ngay_ket_thuc = voucher.ngay_ket_thuc; checkID.so_luong = voucher.so_luong; checkID.su_dung = voucher.su_dung; checkID.url = voucher.url; checkID.ma_anh_goc = voucher.ma_anh_goc; checkID.ngay_tao = voucher.ngay_tao; checkID.nguoi_tao = voucher.nguoi_tao; checkID.ngay_cap_nhat = DateTime.Now; checkID.nguoi_cap_nhat = UserName; checkID.trang_thai = voucher.trang_thai; db.Update(checkID); } else { var lastId = db.FirstOrDefault <Merchant_Voucher>("SELECT TOP 1 * FROM Merchant_Voucher ORDER BY id DESC"); if (lastId != null) { if (lastId.ma_khuyen_mai.Contains("VC")) { var nextNo = Int32.Parse(lastId.ma_khuyen_mai.Substring(2, 7)) + 1; voucher.ma_khuyen_mai = "VC" + String.Format("{0:0000000}", nextNo); } } else { voucher.ma_khuyen_mai = "VC" + "0000001"; } voucher.trang_thai = AllConstant.trang_thai.DANG_SU_DUNG; voucher.ngay_tao = DateTime.Now; voucher.nguoi_tao = UserName; voucher.ngay_cap_nhat = DateTime.Parse("1900-1-1"); db.Insert(voucher); } dbTrans.Commit(); } catch (Exception e) { dbTrans.Rollback(); return(e.Message.ToString()); } } //Transaction for voucher Details //using (var dbTrans = db.OpenTransaction(IsolationLevel.ReadCommitted)) //{ // try // { // if (products != null) // { // var checkData = db.Select<Merchant_Product_Promotion_Detail>("ma_khuyen_mai = {0} and ma_gian_hang = {1}", voucher.ma_khuyen_mai, voucher.ma_gian_hang); // if (checkData == null) // { // foreach (string ma_san_pham in products) // { // Merchant_Product_Promotion_Detail item = new Merchant_Product_Promotion_Detail(); // item.id = 0; // item.ma_san_pham = ma_san_pham; // item.ma_gian_hang = voucher.ma_gian_hang; // item.ma_chuong_trinh_km = voucher.ma_khuyen_mai; // item.nguoi_tao = UserName; // item.ngay_tao = DateTime.Now; // db.Insert(item); // } // } // else // { // foreach (string ma_san_pham in products) // { // var checkProDetail = checkData.FirstOrDefault(s => s.ma_san_pham == ma_san_pham); // if (checkProDetail == null) // { // Merchant_Product_Promotion_Detail item = new Merchant_Product_Promotion_Detail(); // item.id = 0; // item.ma_san_pham = ma_san_pham; // item.ma_gian_hang = voucher.ma_gian_hang; // item.ma_chuong_trinh_km = voucher.ma_khuyen_mai; // item.nguoi_tao = UserName; // item.ngay_tao = DateTime.Now; // db.Insert(item); // } // else // { // checkData.Remove(checkProDetail); // } // } // if (checkData != null) // { // foreach (Merchant_Product_Promotion_Detail item in checkData) // db.Delete<Merchant_Product_Promotion_Detail>("ma_khuyen_mai = {0} and ma_gian_hang = {1} and ma_san_pham = {2}", item.ma_chuong_trinh_km, item.ma_gian_hang, item.ma_san_pham); // } // } // } // else // { // db.Delete<Merchant_Product_Promotion_Detail>("ma_khuyen_mai = {0} and ma_gian_hang = {1}", voucher.ma_khuyen_mai, voucher.ma_gian_hang); // } // dbTrans.Commit(); // } // catch (Exception e) // { // dbTrans.Rollback(); // return e.Message.ToString(); // } //} } return("true" + voucher.ma_khuyen_mai); }
public ActionResult CreateUpdate(Merchant_Voucher data, HttpPostedFileBase file, List <Merchant_Image_Info> listimage) { try { using (var dbConn = Helpers.OrmliteConnection.openConn()) { var checkUpd = dbConn.SingleOrDefault <Merchant_Voucher>("ma_khuyen_mai={0} and id = {1}", data.ma_khuyen_mai, data.id); var checkIns = dbConn.SingleOrDefault <Merchant_Voucher>("ma_khuyen_mai={0}", data.ma_khuyen_mai); if (checkUpd == null) { if (checkIns != null) { return(Json(new { success = false, error = "Mã thẻ đã tồn tại!" })); } } //return Json(new { success = false, message = "Vui lòng chọn hình ảnh sản phẩm", JsonRequestBehavior.AllowGet }); if (listimage != null) { foreach (var item in listimage) { data.url = item.duong_dan_day_du; data.ma_anh_goc = item.ma_anh_goc; } } if (file != null) { data.url = new Helpers.ProcessImage().UploadImageToFolder(AllConstant.FoldderName_Merchant_Voucher, file, currentUser.ma_gian_hang, currentUser.name); data.ma_anh_goc = currentUser.name + "_" + DateTime.Now.ToString("yyyyMMddHHmmssfff"); } if (data.id > 0) { if (accessDetail != null && (accessDetail.access["all"] || accessDetail.access["update"])) { var exist = dbConn.SingleOrDefault <Merchant_Voucher>("id={0}", data.id); if (data.url == null) { exist.url = exist.url; data.ma_anh_goc = exist.ma_anh_goc; } data.ngay_cap_nhat = DateTime.Now; data.nguoi_cap_nhat = currentUser.name; dbConn.UpdateOnly(data, onlyFields: p => new { p.ma_khuyen_mai, p.ten_khuyen_mai, p.loai_khuyen_mai, p.url, p.ma_anh_goc, p.gia_tri, p.dieu_kien, p.gia_ban, p.so_luong, p.ngay_bat_dau, p.ngay_ket_thuc, p.mieu_ta, p.trang_thai, p.ngay_cap_nhat, p.nguoi_cap_nhat }, where : p => p.id == data.id); } else { return(Json(new { success = false, error = "Don't have permission to update" })); } } else { if (accessDetail != null && (accessDetail.access["all"] || accessDetail.access["create"])) { data.ma_gian_hang = currentUser.ma_gian_hang; data.ngay_tao = DateTime.Now; data.nguoi_tao = currentUser.name; data.ngay_cap_nhat = DateTime.Parse("01/01/1900"); dbConn.Insert(data); int Id = (int)dbConn.GetLastInsertId(); data.id = Id; } else { return(Json(new { success = false, error = "Don't have permission to create" })); } } } return(Json(new { success = true, data = data })); } catch (Exception e) { return(Json(new { success = false, error = e.Message })); } }