Пример #1
0
        public async Task <IHttpActionResult> Post(ThanhToanDatPhongViewModel.Dto instance)
        {
            var result         = new TransferObj <THANHTOAN_DATPHONG>();
            var curentUnitCode = _service.GetCurrentUnitCode();

            if (instance.MA_DATPHONG == "")
            {
                result.Status  = false;
                result.Message = "Mã không hợp lệ";
                return(Ok(result));
            }
            else
            {
                var exist = _service.Repository.DbSet.FirstOrDefault(x => x.MA_DATPHONG == instance.MA_DATPHONG && x.UNITCODE.Equals(curentUnitCode));
                if (exist != null)
                {
                    result.Status  = false;
                    result.Message = "Đã thanh toán đặt phòng này";
                    return(Ok(result));
                }
            }
            try
            {
                var item = _service.InsertThanhToan(instance);
                int inst = await _service.UnitOfWork.SaveAsync();

                if (inst > 0)
                {
                    //TRỪ TỒN PHIẾU ĐẶT PHÒNG
                    _service.Approval(item.ID, _service.GetConnectionString(), curentUnitCode);
                    //Chuyển phiếu đặt phòng về bảng lịch sử và xóa phiếu đặt phòng vừa thanh toán
                    if (_service.UpdateTrangThaiDatPhong(item))
                    {
                        result.Status  = true;
                        result.Data    = item;
                        result.Message = "Thanh toán thành công";
                    }
                }
                else
                {
                    result.Status  = false;
                    result.Data    = null;
                    result.Message = "Thao tác không thành công";
                }
            }
            catch (Exception e)
            {
                result.Status  = false;
                result.Message = e.Message;
            }
            return(Ok(result));
        }
Пример #2
0
        public IHttpActionResult GetDetails(string ID)
        {
            var result = new TransferObj <ThanhToanDatPhongViewModel.Dto>();

            ThanhToanDatPhongViewModel.Dto dto = new ThanhToanDatPhongViewModel.Dto();
            if (string.IsNullOrEmpty(ID))
            {
                return(BadRequest("ID không chính xác"));
            }
            else
            {
                var unitCode  = _service.GetCurrentUnitCode();
                var thanhToan = _service.Repository.DbSet.FirstOrDefault(x => x.UNITCODE.Equals(unitCode) && x.ID.Equals(ID));
                if (thanhToan != null)
                {
                    string connectString = ConfigurationManager.ConnectionStrings["ERBusConnection"].ConnectionString;
                    dto = Mapper.Map <THANHTOAN_DATPHONG, ThanhToanDatPhongViewModel.Dto>(thanhToan);
                    var nguoiPhucVu = _service.UnitOfWork.Repository <NGUOIDUNG>().DbSet.FirstOrDefault(x => x.USERNAME.Equals(dto.I_CREATE_BY) && x.UNITCODE.Equals(unitCode));
                    if (nguoiPhucVu != null)
                    {
                        dto.PHUCVU = nguoiPhucVu.TENNHANVIEN;
                    }
                    var phong = _service.UnitOfWork.Repository <PHONG>().DbSet.FirstOrDefault(x => x.MAPHONG.Equals(dto.MAPHONG) && x.UNITCODE.Equals(unitCode));
                    if (phong != null)
                    {
                        dto.TENPHONG = phong.TENPHONG;
                        //lấy thông tin cấu hình phòng
                        var cauHinhPhong = _service.UnitOfWork.Repository <CAUHINH_LOAIPHONG>().DbSet.FirstOrDefault(x => x.MALOAIPHONG.Equals(phong.MALOAIPHONG) && x.UNITCODE.Equals(unitCode));
                        if (cauHinhPhong != null)
                        {
                            dto.MAHANG        = cauHinhPhong.MAHANG;
                            dto.MAHANG_DICHVU = cauHinhPhong.MAHANG_DICHVU;
                        }
                    }
                    var thanhToanChiTiet = _service.UnitOfWork.Repository <THANHTOAN_DATPHONG_CHITIET>().DbSet.Where(x => x.MA_DATPHONG.Equals(thanhToan.MA_DATPHONG)).OrderByDescending(x => x.SAPXEP).ToList();
                    dto.DtoDetails = Mapper.Map <List <THANHTOAN_DATPHONG_CHITIET>, List <ThanhToanDatPhongViewModel.DtoDetail> >(thanhToanChiTiet);
                    if (dto.DtoDetails.Count > 0)
                    {
                        string listMatHang = "";
                        foreach (var matHang in dto.DtoDetails)
                        {
                            listMatHang += matHang.MAHANG + ",";
                        }
                        listMatHang = listMatHang.Substring(0, listMatHang.Length - 1);
                        var MatHangViewModel = _service.GetDataMatHang(_service.ConvertConditionStringToArray(listMatHang), unitCode, connectString);
                        foreach (var row in dto.DtoDetails)
                        {
                            var hang = MatHangViewModel.FirstOrDefault(x => x.MAHANG.Equals(row.MAHANG));
                            if (hang != null)
                            {
                                row.TENHANG = hang.TENHANG;
                            }
                            var donViTinh = _service.UnitOfWork.Repository <DONVITINH>().DbSet.FirstOrDefault(x => x.MADONVITINH.Equals(hang.MADONVITINH) && x.UNITCODE.Equals(unitCode));
                            if (donViTinh != null)
                            {
                                row.DONVITINH = donViTinh.TENDONVITINH;
                            }
                            row.MATHUE_RA = hang.MATHUE_RA;
                            if (row.MAHANG.Equals(dto.MAHANG))
                            {
                                decimal TIENGIOHAT = 0;
                                int     DONVI_THOIGIAN_TINHTIEN = 0;
                                int.TryParse(dto.DONVI_THOIGIAN_TINHTIEN.Value.ToString(), out DONVI_THOIGIAN_TINHTIEN);
                                if (DONVI_THOIGIAN_TINHTIEN != 0)
                                {
                                    decimal.TryParse(((row.GIABANLE_VAT / DONVI_THOIGIAN_TINHTIEN) * row.SOLUONG).ToString(), out TIENGIOHAT);
                                }
                                row.THANHTIEN   = TIENGIOHAT;
                                dto.TIEN_GIOHAT = TIENGIOHAT;
                            }
                            else
                            {
                                row.THANHTIEN = row.SOLUONG * row.GIABANLE_VAT;
                            }
                        }
                    }
                }
                if (dto != null && !string.IsNullOrEmpty(dto.MA_DATPHONG))
                {
                    result.Data    = dto;
                    result.Status  = true;
                    result.Message = "Oke";
                }
                else
                {
                    result.Data    = null;
                    result.Status  = false;
                    result.Message = "NotFound";
                }
            }
            return(Ok(result));
        }