public async Task <IHttpActionResult> Put(string id, NvKhuyenMaiTinhTienVm.Dto instance) { TransferObj <NvChuongTrinhKhuyenMai> result = new TransferObj <NvChuongTrinhKhuyenMai>(); NvChuongTrinhKhuyenMai check = _service.FindById(instance.Id); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (check == null) { return(NotFound()); } //if (id != instance.Id || check.TrangThai == (int)ApprovalState.IsComplete) //{ // return BadRequest(); //} try { NvChuongTrinhKhuyenMai item = _service.UpdatePhieu(instance); _service.UnitOfWork.Save(); result.Status = true; result.Data = item; return(Ok(result)); } catch (Exception e) { return(InternalServerError()); } }
public List <IQueryFilter> GetFilters() { var result = new List <IQueryFilter>(); var refObj = new NvChuongTrinhKhuyenMai(); if (!string.IsNullOrEmpty(this.UnitCode)) { result.Add(new QueryFilterLinQ { Property = ClassHelper.GetProperty(() => refObj.UnitCode), Value = this.UnitCode, Method = FilterMethod.EqualTo }); } if (!string.IsNullOrEmpty(this.MaChuongTrinh)) { result.Add(new QueryFilterLinQ { Property = ClassHelper.GetProperty(() => refObj.MaChuongTrinh), Value = this.MaChuongTrinh, Method = FilterMethod.Like }); } if (!string.IsNullOrEmpty(this.NoiDung)) { result.Add(new QueryFilterLinQ { Property = ClassHelper.GetProperty(() => refObj.NoiDung), Value = this.NoiDung, Method = FilterMethod.Like }); } if (!string.IsNullOrEmpty(this.MaKhoXuat)) { result.Add(new QueryFilterLinQ { Property = ClassHelper.GetProperty(() => refObj.MaKhoXuat), Value = this.MaKhoXuat, Method = FilterMethod.Like }); } if (!string.IsNullOrEmpty(this.MaKhoXuatKhuyenMai)) { result.Add(new QueryFilterLinQ { Property = ClassHelper.GetProperty(() => refObj.MaKhoXuatKhuyenMai), Value = this.MaKhoXuatKhuyenMai, Method = FilterMethod.Like }); } return(result); }
public async Task <IHttpActionResult> GetDetails(string id) { TransferObj <NvChuongTrinhKhuyenMaiVm.Dto> result = new TransferObj <NvChuongTrinhKhuyenMaiVm.Dto>(); NvChuongTrinhKhuyenMaiVm.Dto temp = new NvChuongTrinhKhuyenMaiVm.Dto(); string _parentUnitCode = _service.GetParentUnitCode(); NvChuongTrinhKhuyenMai phieu = _service.FindById(id); if (phieu != null) { temp = Mapper.Map <NvChuongTrinhKhuyenMai, NvChuongTrinhKhuyenMaiVm.Dto>(phieu); List <NvChuongTrinhKhuyenMaiChiTiet> tb_ChuongTrinhKhuyenMaiChiTiet = _service.UnitOfWork.Repository <NvChuongTrinhKhuyenMaiChiTiet>().DbSet.ToList(); List <NvChuongTrinhKhuyenMaiChiTiet> chiTietChuongTrinhKhuyenMai = tb_ChuongTrinhKhuyenMaiChiTiet.Where(x => x.MaChuongTrinh == phieu.MaChuongTrinh).ToList(); temp.DataDetails = Mapper.Map <List <NvChuongTrinhKhuyenMaiChiTiet>, List <NvChuongTrinhKhuyenMaiVm.DtoDetail> >(chiTietChuongTrinhKhuyenMai); foreach (NvChuongTrinhKhuyenMaiVm.DtoDetail tmp in temp.DataDetails) { switch (tmp.LoaiChuongTrinh) { case TypePromotion.ByItemGetItem: MdMerchandise hangHoa = _service.UnitOfWork.Repository <MdMerchandise>().DbSet.FirstOrDefault(x => x.MaVatTu == tmp.MaHang); tmp.TenHang = (hangHoa != null ? hangHoa.TenHang : ""); break; case TypePromotion.MerchandiseType: MdMerchandiseType loaiHangHoa = _service.UnitOfWork.Repository <MdMerchandiseType>().DbSet.FirstOrDefault(x => x.MaLoaiVatTu == tmp.MaHang); tmp.TenHang = (loaiHangHoa != null ? loaiHangHoa.TenLoaiVatTu : ""); break; case TypePromotion.MerchandiseGroup: MdNhomVatTu nhomHangHoa = _service.UnitOfWork.Repository <MdNhomVatTu>().DbSet.FirstOrDefault(x => x.MaNhom == tmp.MaHang); tmp.TenHang = (nhomHangHoa != null ? nhomHangHoa.TenNhom : ""); break; case TypePromotion.Sponsor: MdSupplier nhaCungCap = _service.UnitOfWork.Repository <MdSupplier>().DbSet.FirstOrDefault(x => x.MaNCC == tmp.MaHang && x.UnitCode.StartsWith(_parentUnitCode)); tmp.TenHang = (nhaCungCap != null ? nhaCungCap.TenNCC : ""); break; default: break; } } result.Data = temp; result.Status = true; return(Ok(result)); } return(NotFound()); }
public async Task <IHttpActionResult> PostUnApprove(string id) { string unitCode = _service.GetCurrentUnitCode(); NvChuongTrinhKhuyenMai chuongTrinh = _service.FindById(id); if (chuongTrinh == null || chuongTrinh.TrangThai == (int)ApprovalState.IsNotApproval) { return(NotFound()); } chuongTrinh.TrangThai = (int)ApprovalState.IsNotApproval; chuongTrinh.ObjectState = ObjectState.Modified; await _service.UnitOfWork.SaveAsync(); return(Ok(true)); }
public async Task <IHttpActionResult> GetDetails(string id) { TransferObj <NvKhuyenMaiVoucherVm.Dto> result = new TransferObj <NvKhuyenMaiVoucherVm.Dto>(); NvKhuyenMaiVoucherVm.Dto temp = new NvKhuyenMaiVoucherVm.Dto(); NvChuongTrinhKhuyenMai phieu = _service.FindById(id); if (phieu != null) { temp = Mapper.Map <NvChuongTrinhKhuyenMai, NvKhuyenMaiVoucherVm.Dto>(phieu); DbSet <NvChuongTrinhKhuyenMaiChiTiet> tb_ChuongTrinhKhuyenMaiChiTiet = _service.UnitOfWork.Repository <NvChuongTrinhKhuyenMaiChiTiet>().DbSet; result.Data = temp; result.Status = true; return(Ok(result)); } return(NotFound()); }
public async Task <IHttpActionResult> Post(NvKhuyenMaiTinhTienVm.Dto instance) { TransferObj <NvChuongTrinhKhuyenMai> result = new TransferObj <NvChuongTrinhKhuyenMai>(); try { NvChuongTrinhKhuyenMai item = _service.InsertPhieu(instance); _service.UnitOfWork.Save(); result.Data = item; result.Status = true; return(CreatedAtRoute("DefaultApi", new { controller = this, id = instance.Id }, result)); } catch (Exception e) { result.Status = false; result.Message = e.Message; return(Ok(result)); } }
public async Task <IHttpActionResult> Delete(string id) { NvChuongTrinhKhuyenMai instance = await _service.Repository.FindAsync(id); if (instance == null) { return(NotFound()); } try { _service.Delete(instance.Id); await _service.UnitOfWork.SaveAsync(); return(Ok(instance)); } catch (Exception) { return(InternalServerError()); } }
public async Task <IHttpActionResult> GetDetails(string id) { TransferObj <NvKhuyenMaiTichDiemVm.Dto> result = new TransferObj <NvKhuyenMaiTichDiemVm.Dto>(); NvKhuyenMaiTichDiemVm.Dto temp = new NvKhuyenMaiTichDiemVm.Dto(); NvChuongTrinhKhuyenMai phieu = _service.FindById(id); if (phieu != null) { temp = Mapper.Map <NvChuongTrinhKhuyenMai, NvKhuyenMaiTichDiemVm.Dto>(phieu); DbSet <NvChuongTrinhKhuyenMaiChiTiet> tb_ChuongTrinhKhuyenMaiChiTiet = _service.UnitOfWork.Repository <NvChuongTrinhKhuyenMaiChiTiet>().DbSet; List <NvChuongTrinhKhuyenMaiChiTiet> chiTietChuongTrinhKhuyenMai = tb_ChuongTrinhKhuyenMaiChiTiet.Where(x => x.MaChuongTrinh == phieu.MaChuongTrinh).ToList(); temp.DataDetails = Mapper.Map <List <NvChuongTrinhKhuyenMaiChiTiet>, List <NvKhuyenMaiTichDiemVm.DtoDetail> >(chiTietChuongTrinhKhuyenMai); result.Data = temp; result.Status = true; return(Ok(result)); } return(NotFound()); }
public MdMerchandiseVm.DtoAndPromotion GetDataPromotionByMerchandise(MdMerchandiseVm.DtoAndPromotion para) { try { para.IsTichDiem = false; var _unitCode = GetCurrentUnitCode(); var data = new MdMerchandiseVm.DtoAndPromotion(); var resultPromotion = new List <NvChuongTrinhKhuyenMaiVm.Promotion>(); var kmTichDiemTheoGio = new NvChuongTrinhKhuyenMai(); var kmTichDiem = new NvChuongTrinhKhuyenMai(); var nowDay = DateTime.Now; var date = new DateTime(nowDay.Year, nowDay.Month, nowDay.Day, 0, 0, 0); var resultTichDiem = UnitOfWork.Repository <NvChuongTrinhKhuyenMai>().DbSet.Where(x => x.LoaiKhuyenMai == 6 && x.TuNgay <= date && x.DenNgay >= date && x.UnitCode.StartsWith(_unitCode) && x.TrangThai == 10).ToList(); if (resultTichDiem.Count > 0) { int getHour = DateTime.Now.Hour * 60 + DateTime.Now.Minute; string[] tugio = resultTichDiem[0].TuGio.Split(':'); string[] dengio = resultTichDiem[0].DenGio.Split(':'); int minuteTuGio = Int32.Parse(tugio[0]) * 60 + Int32.Parse(tugio[1]); int minuteDenGio = Int32.Parse(dengio[0]) * 60 + Int32.Parse(dengio[1]); if (minuteTuGio <= getHour && getHour <= minuteDenGio) { kmTichDiemTheoGio = resultTichDiem[0]; } else { kmTichDiem = resultTichDiem[0]; } } using (BTS.API.ENTITY.ERPContext ctx = new BTS.API.ENTITY.ERPContext()) { using (var dbContextTransaction = ctx.Database.BeginTransaction()) { string maHang = para.MaVatTu; var pNgay = new OracleParameter("p_Ngay", OracleDbType.Date, DateTime.Now.Date, ParameterDirection.Input); var pMaVatTu = new OracleParameter("p_maVatTu", OracleDbType.NVarchar2, maHang, ParameterDirection.Input); var pUnitCode = new OracleParameter("p_unitCode", OracleDbType.NVarchar2, _unitCode, ParameterDirection.Input); var pDataPromotion = new OracleParameter("p_dataPromotion", OracleDbType.RefCursor, ParameterDirection.Output); string strQuerry = "BEGIN TBNETERP.KHUYENMAI.KHUYENMAI_HANG_THEOMAHANG(:pNgay,:pMaVatTu,:pUnitCode,:datapromotion); END;"; var khuyenMai = ctx.Database.SqlQuery <NvChuongTrinhKhuyenMaiVm.Promotion>(strQuerry, pNgay, pMaVatTu, pUnitCode, pDataPromotion); try { int count = 0; decimal tienKhuyenMai = 0; resultPromotion = khuyenMai.ToList(); //kiểm tra riêng km tích điểm if (kmTichDiem.MaChuongTrinh != null && kmTichDiem.LoaiKhuyenMai != null) { para.TyLeKhuyenMai_TichDiem = kmTichDiem.TyLeKhuyenMai; para.GiaTriKhuyenMai_TichDiem = kmTichDiem.GiaTriKhuyenMai; para.IsTichDiem = true; } else if (kmTichDiemTheoGio.MaChuongTrinh != null && kmTichDiemTheoGio.LoaiKhuyenMai != null && kmTichDiemTheoGio.TuGio != null) { para.TyLeKhuyenMai_TichDiem = kmTichDiemTheoGio.TyLeKhuyenMai; para.GiaTriKhuyenMai_TichDiem = kmTichDiemTheoGio.GiaTriKhuyenMai; para.IsTichDiem = true; } //kiểm tra khuyến mại từ giờ đến giờ if (resultPromotion.Count != 0) { foreach (var record in resultPromotion) { MdMerchandiseVm.ListDataDetails detailsKhuyenMai = new MdMerchandiseVm.ListDataDetails(); if (string.IsNullOrEmpty(record.TuGio) || string.IsNullOrEmpty(record.DenGio)) { if (record.LoaiKhuyenMai == LoaiKhuyenMai.DongGia) { para.TyLeKhuyenMai_DongGia = record.TyLeKhuyenMai; para.GiaTriKhuyenMai_DongGia = record.GiaTriKhuyenMaiChildren; para.LoaiKhuyenMai = LoaiKhuyenMai.DongGia.ToString(); } else if (record.LoaiKhuyenMai == LoaiKhuyenMai.ChietKhau) { para.TyLeKhuyenMai_ChietKhau = record.TyLeKhuyenMaiChildren; para.GiaTriKhuyenMai_ChietKhau = record.GiaTriKhuyenMaiChildren; para.LoaiKhuyenMai = LoaiKhuyenMai.ChietKhau.ToString(); } else if (record.LoaiKhuyenMai == LoaiKhuyenMai.TinhTien) { para.TyLeBatDau_TinhTien = record.TyLeBatDau; para.TyLeKhuyenMai_TinhTien = record.TyLeKhuyenMai; para.GiaTriKhuyenMai_TinhTien = record.GiaTriKhuyenMaiChildren; para.LoaiKhuyenMai = LoaiKhuyenMai.TinhTien.ToString(); } else if (record.LoaiKhuyenMai == LoaiKhuyenMai.Buy1Get1) { para.MaHang_Km_Buy1Get1 = record.MaHang_Km_Buy1Get1; para.TenHang_Km_Buy1Get1 = record.TenHang_Km_Buy1Get1; para.SoLuong_Km_Buy1Get1 = record.SoLuong_Km_Buy1Get1; para.LoaiKhuyenMai = LoaiKhuyenMai.Buy1Get1.ToString(); } else if (record.LoaiKhuyenMai == LoaiKhuyenMai.Combo) { para.GiaTriKhuyenMai_Combo = record.GiaTriKhuyenMai; // tiền sau khi đã trừ k/m para.LoaiKhuyenMai = LoaiKhuyenMai.Combo.ToString(); para.SoLuongKhuyenMai_Combo = record.SoLuong_KhuyenMai; detailsKhuyenMai.MaVatTuCon = record.MaHang_Km_Buy1Get1; detailsKhuyenMai.TenVatTuCon = record.TenHang_Km_Buy1Get1; para.ListMaHangKhuyenMai.Add(detailsKhuyenMai); } } else { //nếu từ giờ đến giờ thì kiểm tra còn tron khung giờ khuyến mại không int getHour = DateTime.Now.Hour * 60 + DateTime.Now.Minute; string[] tugio = record.TuGio.Split(':'); string[] dengio = record.DenGio.Split(':'); int minuteTuGio = Int32.Parse(tugio[0]) * 60 + Int32.Parse(tugio[1]); int minuteDenGio = Int32.Parse(dengio[0]) * 60 + Int32.Parse(dengio[1]); if (minuteTuGio <= getHour && getHour <= minuteDenGio) { if (record.LoaiKhuyenMai == LoaiKhuyenMai.DongGia) { para.TuGio = record.TuGio; para.DenGio = record.DenGio; para.TyLeKhuyenMai_DongGia = record.TyLeKhuyenMai; //tỷ lệ đồng giá para.GiaTriKhuyenMai_DongGia = record.GiaTriKhuyenMaiChildren; //tiền km đồng giá para.LoaiKhuyenMai = LoaiKhuyenMai.DongGia.ToString(); } else if (record.LoaiKhuyenMai == LoaiKhuyenMai.ChietKhau) { para.TuGio = record.TuGio; para.DenGio = record.DenGio; para.TyLeKhuyenMai_ChietKhau = record.TyLeKhuyenMaiChildren; //tỷ lệ khuyến mại para.GiaTriKhuyenMai_ChietKhau = record.GiaTriKhuyenMaiChildren; // tiền sau khi đã trừ k/m para.LoaiKhuyenMai = LoaiKhuyenMai.ChietKhau.ToString(); } else if (record.LoaiKhuyenMai == LoaiKhuyenMai.TinhTien) { para.TyLeKhuyenMai_TinhTien = record.TyLeKhuyenMai; para.GiaTriKhuyenMai_TinhTien = record.GiaTriKhuyenMaiChildren; para.LoaiKhuyenMai = LoaiKhuyenMai.TinhTien.ToString(); } else if (record.LoaiKhuyenMai == LoaiKhuyenMai.Buy1Get1) { para.MaHang_Km_Buy1Get1 = record.MaHang_Km_Buy1Get1; para.TenHang_Km_Buy1Get1 = record.TenHang_Km_Buy1Get1; para.SoLuong_Km_Buy1Get1 = record.SoLuong_Km_Buy1Get1; para.LoaiKhuyenMai = LoaiKhuyenMai.Buy1Get1.ToString(); } else if (record.LoaiKhuyenMai == LoaiKhuyenMai.Combo) { para.TuGio = record.TuGio; para.DenGio = record.DenGio; para.GiaTriKhuyenMai_Combo = record.GiaTriKhuyenMai; // tiền sau khi đã trừ k/m para.LoaiKhuyenMai = LoaiKhuyenMai.Combo.ToString(); para.SoLuongKhuyenMai_Combo = record.SoLuong_KhuyenMai; detailsKhuyenMai.MaVatTuCon = record.MaHang_Km_Buy1Get1; detailsKhuyenMai.TenVatTuCon = record.TenHang_Km_Buy1Get1; para.ListMaHangKhuyenMai.Add(detailsKhuyenMai); } } } para.MaChuongTrinhKhuyenMai = record.MaChuongTrinh; para.SoLuong = record.SoLuong; para.SoLuong_KhuyenMai = record.SoLuong_KhuyenMai; para.MaKhoKhuyenMai = record.MaKhoKhuyenMai; para.TienHangKhuyenMai = tienKhuyenMai; count++; } } if (count > 1) { para.LogKhuyenMaiError = count; para.NoiDungKhuyenMai = "Cảnh báo ! Mã hàng đang được kích hoạt trong 2 chương trình khuyến mại"; } else if (count == 0) { para.LogKhuyenMaiError = 1; para.NoiDungKhuyenMai = "Mã hàng này không được khuyến mại"; } else { para.LogKhuyenMaiError = 1; para.NoiDungKhuyenMai = "Mã hàng này được khuyến mại trong chương trình mã : " + resultPromotion[0].MaChuongTrinh; } data = para; } catch { data = para; } } } return(data); } catch { return(null); } }
public List <IQueryFilter> GetFilters() { var result = new List <IQueryFilter>(); var refObj = new NvChuongTrinhKhuyenMai(); if (!string.IsNullOrEmpty(this.UnitCode)) { result.Add(new QueryFilterLinQ { Property = ClassHelper.GetProperty(() => refObj.UnitCode), Value = this.UnitCode, Method = FilterMethod.EqualTo }); } if (!string.IsNullOrEmpty(this.MaChuongTrinh)) { result.Add(new QueryFilterLinQ { Property = ClassHelper.GetProperty(() => refObj.MaChuongTrinh), Value = this.MaChuongTrinh, Method = FilterMethod.Like }); } if (!string.IsNullOrEmpty(this.NoiDung)) { result.Add(new QueryFilterLinQ { Property = ClassHelper.GetProperty(() => refObj.NoiDung), Value = this.NoiDung, Method = FilterMethod.Like }); } if (!string.IsNullOrEmpty(this.MaKhoXuat)) { result.Add(new QueryFilterLinQ { Property = ClassHelper.GetProperty(() => refObj.MaKhoXuat), Value = this.MaKhoXuat, Method = FilterMethod.Like }); } if (!string.IsNullOrEmpty(this.MaKhoXuatKhuyenMai)) { result.Add(new QueryFilterLinQ { Property = ClassHelper.GetProperty(() => refObj.MaKhoXuatKhuyenMai), Value = this.MaKhoXuatKhuyenMai, Method = FilterMethod.Like }); } if (this.TuNgay.HasValue) { result.Add(new QueryFilterLinQ { Property = ClassHelper.GetProperty(() => refObj.TuNgay), Value = this.TuNgay.Value, Method = FilterMethod.GreaterThanOrEqualTo }); } if (this.DenNgay.HasValue) { result.Add(new QueryFilterLinQ { Property = ClassHelper.GetProperty(() => refObj.DenNgay), Value = this.DenNgay.Value.AddDays(1), Method = FilterMethod.LessThan }); } if (this.TrangThaiSuDung != 0) { result.Add(new QueryFilterLinQ { Property = ClassHelper.GetProperty(() => refObj.TrangThaiSuDung), Value = this.TrangThaiSuDung, Method = FilterMethod.EqualTo }); } return(result); }