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());
            }
        }
Beispiel #2
0
            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());
        }
Beispiel #9
0
 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);
     }
 }
Beispiel #10
0
            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);
            }