public THANHTOAN_DATPHONG InsertThanhToan(ThanhToanDatPhongViewModel.Dto instance)
        {
            var dataThanhToanDatPhong = Mapper.Map <ThanhToanDatPhongViewModel.Dto, THANHTOAN_DATPHONG>(instance);

            dataThanhToanDatPhong.ID                 = Guid.NewGuid().ToString();
            dataThanhToanDatPhong.NGAY_THANHTOAN     = DateTime.Now;
            dataThanhToanDatPhong.THOIGIAN_THANHTOAN = DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second;
            dataThanhToanDatPhong.I_STATE            = "P";
            var result      = AddUnit(dataThanhToanDatPhong);
            var dataDetails = Mapper.Map <List <ThanhToanDatPhongViewModel.DtoDetail>, List <THANHTOAN_DATPHONG_CHITIET> >(instance.DtoDetails);

            dataDetails.ForEach(x =>
            {
                x.ID          = Guid.NewGuid().ToString();
                x.MA_DATPHONG = result.MA_DATPHONG;
                x.UNITCODE    = result.UNITCODE;
                if (!string.IsNullOrEmpty(instance.MAHANG) && x.MAHANG.Equals(instance.MAHANG))
                {
                    decimal THOIGIAN_SUDUNG = 0;
                    decimal.TryParse(instance.THOIGIAN_SUDUNG, out THOIGIAN_SUDUNG);
                    x.SOLUONG = THOIGIAN_SUDUNG;
                }
            });
            result = Insert(result);
            UnitOfWork.Repository <THANHTOAN_DATPHONG_CHITIET>().InsertRange(dataDetails);
            return(result);
        }
        public ThanhToanDatPhongViewModel.Dto GetMerchandiseInBundleGoods(string unitCode, string stringConnect, DatPhongViewModel.DatPhongPayDto data)
        {
            ThanhToanDatPhongViewModel.Dto thanhToanDto             = new ThanhToanDatPhongViewModel.Dto();
            List <ThanhToanDatPhongViewModel.DtoDetail> listDetails = new List <ThanhToanDatPhongViewModel.DtoDetail>();

            using (OracleConnection connection = new OracleConnection(stringConnect))
            {
                if (data != null)
                {
                    try
                    {
                        connection.Open();
                        if (connection.State == ConnectionState.Open)
                        {
                            OracleCommand command = new OracleCommand();
                            command.Connection  = connection;
                            command.CommandType = CommandType.Text;
                            command.CommandText = @"SELECT a.MABOHANG, c.MAHANG, f.TENHANG, g.TENDONVITINH AS DONVITINH, C.CHIETKHAU, CASE WHEN C.CHIETKHAU <= 100 THEN ROUND(C.SOLUONG * (E.GIABANLE_VAT - (E.GIABANLE_VAT * C.CHIETKHAU / 100)), 2) ELSE ROUND(C.SOLUONG * (E.GIABANLE_VAT - C.CHIETKHAU), 2) END AS GIABANLE_VAT, f.MATHUE_RA FROM LOAIPHONG a INNER JOIN BOHANG b ON a.MABOHANG = b.MABOHANG INNER JOIN BOHANG_CHITIET c ON B.MABOHANG = c.MABOHANG INNER JOIN PHONG d ON D.MALOAIPHONG = A.MALOAIPHONG INNER JOIN MATHANG_GIA e ON C.MAHANG = E.MAHANG INNER JOIN MATHANG f ON e.MAHANG = f.MAHANG INNER JOIN DONVITINH g ON f.MADONVITINH = g.MADONVITINH AND e.UNITCODE = f.UNITCODE AND f.UNITCODE = g.UNITCODE AND a.UNITCODE = b.UNITCODE AND b.UNITCODE = c.UNITCODE AND a.UNITCODE = d.UNITCODE AND c.UNITCODE = e.UNITCODE AND D.MAPHONG = '" + data.MAPHONG + "' AND a.UNITCODE = '" + unitCode + "' ORDER BY c.SAPXEP ASC ";
                            OracleDataReader dataReader = command.ExecuteReader();
                            if (dataReader.HasRows)
                            {
                                while (dataReader.Read())
                                {
                                    ThanhToanDatPhongViewModel.DtoDetail detail = new ThanhToanDatPhongViewModel.DtoDetail();
                                    if (dataReader["MABOHANG"] != null)
                                    {
                                        detail.MABOHANG = dataReader["MABOHANG"].ToString();
                                    }
                                    if (dataReader["MAHANG"] != null)
                                    {
                                        detail.MAHANG = dataReader["MAHANG"].ToString();
                                    }
                                    if (dataReader["TENHANG"] != null)
                                    {
                                        detail.TENHANG = dataReader["TENHANG"].ToString();
                                    }
                                    if (dataReader["DONVITINH"] != null)
                                    {
                                        detail.DONVITINH = dataReader["DONVITINH"].ToString();
                                    }
                                    detail.SOLUONG = 1;
                                    if (dataReader["GIABANLE_VAT"] != null)
                                    {
                                        decimal GIABANLE_VAT = 0;
                                        decimal.TryParse(dataReader["GIABANLE_VAT"].ToString(), out GIABANLE_VAT);
                                        detail.GIABANLE_VAT = GIABANLE_VAT;
                                    }
                                    if (dataReader["CHIETKHAU"] != null)
                                    {
                                        decimal CHIETKHAU = 0;
                                        decimal.TryParse(dataReader["CHIETKHAU"].ToString(), out CHIETKHAU);
                                        detail.CHIETKHAU = CHIETKHAU;
                                    }
                                    if (dataReader["MATHUE_RA"] != null)
                                    {
                                        detail.MATHUE_RA = dataReader["MATHUE_RA"].ToString();
                                    }
                                    listDetails.Add(detail);
                                }
                            }
                            dataReader.Close();
                            command.CommandType = CommandType.Text;
                            command.CommandText = @"SELECT C.MALOAIPHONG, D.MAHANG, D.MAHANG_DICHVU, NVL(D.SOPHUT,0) AS DONVI_THOIGIAN_TINHTIEN FROM (SELECT A.MALOAIPHONG,A.UNITCODE FROM LOAIPHONG A INNER JOIN PHONG B ON A.MALOAIPHONG = B.MALOAIPHONG AND A.UNITCODE = B.UNITCODE AND B.MAPHONG = '" + data.MAPHONG + "' AND A.UNITCODE = '" + unitCode + "') C LEFT JOIN CAUHINH_LOAIPHONG D ON C.MALOAIPHONG = D.MALOAIPHONG AND C.UNITCODE = D.UNITCODE ";
                            OracleDataReader dataReaderCauHinh = command.ExecuteReader();
                            if (dataReaderCauHinh.HasRows)
                            {
                                while (dataReaderCauHinh.Read())
                                {
                                    if (dataReaderCauHinh["MAHANG"] != null)
                                    {
                                        thanhToanDto.MAHANG = dataReaderCauHinh["MAHANG"].ToString();
                                    }
                                    if (dataReaderCauHinh["MAHANG_DICHVU"] != null)
                                    {
                                        thanhToanDto.MAHANG_DICHVU = dataReaderCauHinh["MAHANG_DICHVU"].ToString();
                                    }
                                    if (dataReaderCauHinh["DONVI_THOIGIAN_TINHTIEN"] != null)
                                    {
                                        int DONVI_THOIGIAN_TINHTIEN = 0;
                                        int.TryParse(dataReaderCauHinh["DONVI_THOIGIAN_TINHTIEN"].ToString(), out DONVI_THOIGIAN_TINHTIEN);
                                        thanhToanDto.DONVI_THOIGIAN_TINHTIEN = DONVI_THOIGIAN_TINHTIEN;
                                    }
                                }
                                dataReaderCauHinh.Close();
                            }
                            thanhToanDto.MA_DATPHONG       = data.MA_DATPHONG;
                            thanhToanDto.MAPHONG           = data.MAPHONG;
                            thanhToanDto.MAKHO             = data.MAKHO;
                            thanhToanDto.NGAY_DATPHONG     = data.NGAY_DATPHONG;
                            thanhToanDto.THOIGIAN_DATPHONG = data.THOIGIAN_DATPHONG;
                            thanhToanDto.TEN_KHACHHANG     = data.TEN_KHACHHANG;
                            thanhToanDto.DIENTHOAI         = data.DIENTHOAI;
                            thanhToanDto.CANCUOC_CONGDAN   = data.CANCUOC_CONGDAN;
                            thanhToanDto.DIENGIAI          = data.DIENGIAI;
                            thanhToanDto.MABOHANG          = data.MABOHANG;
                            thanhToanDto.DtoDetails        = listDetails;
                        }
                    }
                    catch
                    {
                        thanhToanDto = null;
                    }
                    finally
                    {
                        connection.Close();
                        connection.Dispose();
                    }
                }
            }
            return(thanhToanDto);
        }