private double GetGajiKaryawan(int bulan, int tahun)
        {
            double result = 0;

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_GAJI_KARYAWAN);

                whereBuilder.Add("bulan = @bulan");
                whereBuilder.Add("tahun = @tahun");

                var obj = _context.db.QuerySingleOrDefault <dynamic>(whereBuilder.ToSql(), new { bulan, tahun });

                if (obj != null)
                {
                    result = (double)(obj.gaji_pokok + obj.tunjangan + obj.lembur + obj.bonus - obj.potongan);
                }
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(result);
        }
        public virtual IQueryable <TEntity> Query(Expression <Func <TEntity, bool> > predict)
        {
            WhereBuilder whereBuilder = new WhereBuilder();
            WherePart    wherePart    = whereBuilder.ToSql(predict);
            string       whereQuery   = wherePart.Sql;
            string       query        = $"SELECT * FROM  {_tableName} WHERE {whereQuery}";

            return(_connection.Query <TEntity>(query, wherePart.Parameters).AsQueryable());
        }
예제 #3
0
        private IQueryable <AzureWorkItem> ExecuteQueryInternal(Expression expression)
        {
            WhereFinder          whereFinder     = new WhereFinder();
            MethodCallExpression whereExpression = whereFinder.GetWhere(expression);

            if (whereExpression != null)
            {
                LambdaExpression lambdaExpression = (whereExpression.Arguments[1] as UnaryExpression).Operand as LambdaExpression;
                WhereBuilder     whereBuilder     = new WhereBuilder();
                var whereCond = whereBuilder.ToSql(lambdaExpression as Expression <Func <AzureWorkItem, bool> >);
                return(AzureDevOpsWorkItemFactory.GetWorkItems(ConnectionInfo, witClient, whereCond).GetAwaiter().GetResult());
            }
            throw new NotSupportedException("Cannot query without a where condition.");
        }
        private double GetReturPenjualan(DateTime tanggalMulai, DateTime tanggalSelesai)
        {
            double result = 0;

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_RETUR_PENJUALAN);
                whereBuilder.Add("tanggal BETWEEN @tanggalMulai AND @tanggalSelesai");

                result = _context.db.QuerySingleOrDefault <double>(whereBuilder.ToSql(), new { tanggalMulai, tanggalSelesai });
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(result);
        }
        private double GetDiskonProduk(DateTime tanggalMulai, DateTime tanggalSelesai)
        {
            double result = 0;

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_DISKON_PRODUK);
                whereBuilder.Add("t_jual_produk.tanggal BETWEEN @tanggalMulai AND @tanggalSelesai");

                result = _context.db.QuerySingleOrDefault <double>(whereBuilder.ToSql(), new { tanggalMulai, tanggalSelesai });
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(result);
        }
예제 #6
0
        public IList <ReportPenjualanPerKasir> PerKasirGetByBulan(int bulan, int tahun)
        {
            IList <ReportPenjualanPerKasir> oList = new List <ReportPenjualanPerKasir>();

            try
            {
                var whereBuilderHeader = new WhereBuilder(SQL_TEMPLATE_PER_KASIR_HEADER);

                whereBuilderHeader.Add("EXTRACT(MONTH FROM t_mesin.tanggal) = @bulan");
                whereBuilderHeader.Add("EXTRACT(YEAR FROM t_mesin.tanggal) = @tahun");

                var listOfHeader = _context.db.Query <dynamic>(whereBuilderHeader.ToSql(), new { bulan, tahun })
                                   .ToList();

                var whereBuilderDetail = new WhereBuilder(SQL_TEMPLATE_PER_KASIR_DETAIL);
                whereBuilderDetail.Add("EXTRACT(MONTH FROM t_mesin.tanggal) = @bulan");
                whereBuilderDetail.Add("EXTRACT(YEAR FROM t_mesin.tanggal) = @tahun");
                whereBuilderDetail.Add("t_mesin.pengguna_id = @kasir_id");

                foreach (var header in listOfHeader)
                {
                    var listOfDetail = _context.db.Query <ReportPenjualanPerKasir>(whereBuilderDetail.ToSql(), new { bulan, tahun, header.kasir_id })
                                       .ToList();

                    foreach (var detail in listOfDetail)
                    {
                        detail.kasir_id    = header.kasir_id;
                        detail.kasir       = header.kasir;
                        detail.saldo_awal  = (double)header.saldo_awal;
                        detail.ppn         = (double)header.ppn;
                        detail.diskon_nota = (double)header.diskon_nota;
                        detail.total_nota  = (double)header.total_nota;

                        oList.Add(detail);
                    }
                }
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
예제 #7
0
        public IList <ReportPenyesuaianStokProduk> GetPenyesuaianStokByTanggal(DateTime tanggalMulai, DateTime tanggalSelesai)
        {
            IList <ReportPenyesuaianStokProduk> oList = new List <ReportPenyesuaianStokProduk>();

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_PENYESUAIAN_STOK);

                whereBuilder.Add("t_penyesuaian_stok.tanggal BETWEEN @tanggalMulai AND @tanggalSelesai");

                oList = _context.db.Query <ReportPenyesuaianStokProduk>(whereBuilder.ToSql(), new { tanggalMulai, tanggalSelesai }).ToList();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
예제 #8
0
        public IList <ReportPengeluaranBiaya> GetByTanggal(DateTime tanggalMulai, DateTime tanggalSelesai)
        {
            IList <ReportPengeluaranBiaya> oList = new List <ReportPengeluaranBiaya>();

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE);

                whereBuilder.Add("t_pengeluaran_biaya.tanggal BETWEEN @tanggalMulai AND @tanggalSelesai");

                oList = _context.db.Query <ReportPengeluaranBiaya>(whereBuilder.ToSql(), new { tanggalMulai, tanggalSelesai }).ToList();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
예제 #9
0
        public IList <ReportPenjualanPerKasir> PerKasirGetByTanggal(DateTime tanggalMulai, DateTime tanggalSelesai)
        {
            IList <ReportPenjualanPerKasir> oList = new List <ReportPenjualanPerKasir>();

            try
            {
                var whereBuilderHeader = new WhereBuilder(SQL_TEMPLATE_PER_KASIR_HEADER);

                whereBuilderHeader.Add("t_mesin.tanggal BETWEEN @tanggalMulai AND @tanggalSelesai");

                var listOfHeader = _context.db.Query <dynamic>(whereBuilderHeader.ToSql(), new { tanggalMulai, tanggalSelesai })
                                   .ToList();

                var whereBuilderDetail = new WhereBuilder(SQL_TEMPLATE_PER_KASIR_DETAIL);
                whereBuilderDetail.Add("t_mesin.tanggal BETWEEN @tanggalMulai AND @tanggalSelesai");
                whereBuilderDetail.Add("t_mesin.pengguna_id = @kasir_id");

                foreach (var header in listOfHeader)
                {
                    var listOfDetail = _context.db.Query <ReportPenjualanPerKasir>(whereBuilderDetail.ToSql(), new { tanggalMulai, tanggalSelesai, header.kasir_id })
                                       .ToList();

                    foreach (var detail in listOfDetail)
                    {
                        detail.kasir_id    = header.kasir_id;
                        detail.kasir       = header.kasir;
                        detail.saldo_awal  = (double)header.saldo_awal;
                        detail.ppn         = (double)header.ppn;
                        detail.diskon_nota = (double)header.diskon_nota;
                        detail.total_nota  = (double)header.total_nota;

                        oList.Add(detail);
                    }
                }
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
        public IList <ReportReturPenjualanProdukHeader> GetByTanggal(DateTime tanggalMulai, DateTime tanggalSelesai)
        {
            IList <ReportReturPenjualanProdukHeader> oList = new List <ReportReturPenjualanProdukHeader>();

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_HEADER);

                whereBuilder.Add("t_retur_jual_produk.tanggal BETWEEN @tanggalMulai AND @tanggalSelesai");

                oList = _context.db.Query <ReportReturPenjualanProdukHeader>(whereBuilder.ToSql(), new { tanggalMulai, tanggalSelesai })
                        .ToList();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
예제 #11
0
        public IList <ReportKasbonDetail> DetailGetByTanggal(DateTime tanggalMulai, DateTime tanggalSelesai)
        {
            IList <ReportKasbonDetail> oList = new List <ReportKasbonDetail>();

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_DETAIL);

                whereBuilder.Add("t_kasbon.tanggal BETWEEN @tanggalMulai AND @tanggalSelesai");

                oList = _context.db.Query <ReportKasbonDetail>(whereBuilder.ToSql(), new { tanggalMulai, tanggalSelesai })
                        .ToList();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
예제 #12
0
        public IList <ReportPenyesuaianStokProduk> GetPenyesuaianStokByBulan(int bulan, int tahun)
        {
            IList <ReportPenyesuaianStokProduk> oList = new List <ReportPenyesuaianStokProduk>();

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_PENYESUAIAN_STOK);

                whereBuilder.Add("EXTRACT(MONTH FROM t_penyesuaian_stok.tanggal) = @bulan");
                whereBuilder.Add("EXTRACT(YEAR FROM t_penyesuaian_stok.tanggal) = @tahun");

                oList = _context.db.Query <ReportPenyesuaianStokProduk>(whereBuilder.ToSql(), new { bulan, tahun }).ToList();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
예제 #13
0
        public IList <ReportPengeluaranBiaya> GetByBulan(int bulan, int tahun)
        {
            IList <ReportPengeluaranBiaya> oList = new List <ReportPengeluaranBiaya>();

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE);

                whereBuilder.Add("EXTRACT(MONTH FROM t_pengeluaran_biaya.tanggal) = @bulan");
                whereBuilder.Add("EXTRACT(YEAR FROM t_pengeluaran_biaya.tanggal) = @tahun");

                oList = _context.db.Query <ReportPengeluaranBiaya>(whereBuilder.ToSql(), new { bulan, tahun }).ToList();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
예제 #14
0
        public IList <ReportGajiKaryawan> GetByTanggal(DateTime tanggalMulai, DateTime tanggalSelesai)
        {
            IList <ReportGajiKaryawan> oList = new List <ReportGajiKaryawan>();

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_HEADER);

                whereBuilder.Add("t_gaji_karyawan.tanggal BETWEEN @tanggalMulai AND @tanggalSelesai");

                oList = _context.db.Query <ReportGajiKaryawan>(whereBuilder.ToSql(), new { tanggalMulai, tanggalSelesai })
                        .ToList();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
예제 #15
0
        public IList <ReportCustomerProduk> CustomerProdukGetByTanggal(DateTime tanggalMulai, DateTime tanggalSelesai)
        {
            IList <ReportCustomerProduk> oList = new List <ReportCustomerProduk>();

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_CUSTOMER_PRODUK);

                whereBuilder.Add("t_jual_produk.tanggal BETWEEN @tanggalMulai AND @tanggalSelesai");

                oList = _context.db.Query <ReportCustomerProduk>(whereBuilder.ToSql(), new { tanggalMulai, tanggalSelesai })
                        .ToList();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
예제 #16
0
        public IList <ReportPenjualanProduk> PerGolonganDetailGetByTanggal(DateTime tanggalMulai, DateTime tanggalSelesai)
        {
            IList <ReportPenjualanProduk> oList = new List <ReportPenjualanProduk>();

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_PER_GOLONGAN_DETAIL);

                whereBuilder.Add("t_jual_produk.tanggal BETWEEN @tanggalMulai AND @tanggalSelesai");

                oList = _context.db.Query <ReportPenjualanProduk>(whereBuilder.ToSql(), new { tanggalMulai, tanggalSelesai })
                        .ToList();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
예제 #17
0
        public IList <ReportProdukFavorit> ProdukFavoritGetByTanggal(DateTime tanggalMulai, DateTime tanggalSelesai, int limit)
        {
            IList <ReportProdukFavorit> oList = new List <ReportProdukFavorit>();

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_PRODUK_FAVORIT);

                whereBuilder.Add("t_jual_produk.tanggal BETWEEN @tanggalMulai AND @tanggalSelesai");

                oList = _context.db.Query <ReportProdukFavorit>(whereBuilder.ToSql(), new { tanggalMulai, tanggalSelesai, limit })
                        .ToList();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
        private double GetPenjualan(int bulan, int tahun)
        {
            double result = 0;

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_PENJUALAN);

                whereBuilder.Add("EXTRACT(MONTH FROM tanggal) = @bulan");
                whereBuilder.Add("EXTRACT(YEAR FROM tanggal) = @tahun");

                result = _context.db.QuerySingleOrDefault <double>(whereBuilder.ToSql(), new { bulan, tahun });
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(result);
        }
예제 #19
0
        public IList <ReportCustomerProduk> CustomerProdukGetByBulan(int bulan, int tahun)
        {
            IList <ReportCustomerProduk> oList = new List <ReportCustomerProduk>();

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_CUSTOMER_PRODUK);

                whereBuilder.Add("EXTRACT(MONTH FROM t_jual_produk.tanggal) = @bulan");
                whereBuilder.Add("EXTRACT(YEAR FROM t_jual_produk.tanggal) = @tahun");

                oList = _context.db.Query <ReportCustomerProduk>(whereBuilder.ToSql(), new { bulan, tahun })
                        .ToList();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
예제 #20
0
        public IList <ReportGajiKaryawan> GetByBulan(int bulan, int tahun)
        {
            IList <ReportGajiKaryawan> oList = new List <ReportGajiKaryawan>();

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_HEADER);

                whereBuilder.Add("t_gaji_karyawan.bulan = @bulan");
                whereBuilder.Add("t_gaji_karyawan.tahun = @tahun");

                oList = _context.db.Query <ReportGajiKaryawan>(whereBuilder.ToSql(), new { bulan, tahun })
                        .ToList();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
        public IList <ReportReturPembelianProdukDetail> DetailGetByBulan(int bulanAwal, int bulanAkhir, int tahun)
        {
            IList <ReportReturPembelianProdukDetail> oList = new List <ReportReturPembelianProdukDetail>();

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_DETAIL);

                whereBuilder.Add("(EXTRACT(MONTH FROM t_retur_beli_produk.tanggal) BETWEEN @bulanAwal AND @bulanAkhir)");
                whereBuilder.Add("EXTRACT(YEAR FROM t_retur_beli_produk.tanggal) = @tahun");

                oList = _context.db.Query <ReportReturPembelianProdukDetail>(whereBuilder.ToSql(), new { bulanAwal, bulanAkhir, tahun })
                        .ToList();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
예제 #22
0
        public IList <ReportProdukFavorit> ProdukFavoritGetByBulan(int bulan, int tahun, int limit)
        {
            IList <ReportProdukFavorit> oList = new List <ReportProdukFavorit>();

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_PRODUK_FAVORIT);

                whereBuilder.Add("EXTRACT(MONTH FROM t_jual_produk.tanggal) = @bulan");
                whereBuilder.Add("EXTRACT(YEAR FROM t_jual_produk.tanggal) = @tahun");

                oList = _context.db.Query <ReportProdukFavorit>(whereBuilder.ToSql(), new { bulan, tahun, limit })
                        .ToList();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
예제 #23
0
        public IList <ReportPenjualanProduk> PerProdukGetByBulan(int bulanAwal, int bulanAkhir, int tahun)
        {
            IList <ReportPenjualanProduk> oList = new List <ReportPenjualanProduk>();

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_PER_PRODUK);

                whereBuilder.Add("(EXTRACT(MONTH FROM t_jual_produk.tanggal) BETWEEN @bulanAwal AND @bulanAkhir)");
                whereBuilder.Add("EXTRACT(YEAR FROM t_jual_produk.tanggal) = @tahun");

                oList = _context.db.Query <ReportPenjualanProduk>(whereBuilder.ToSql(), new { bulanAwal, bulanAkhir, tahun })
                        .ToList();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
예제 #24
0
        public IList <ReportPenjualanProduk> PerGolonganDetailGetByBulan(int bulan, int tahun)
        {
            IList <ReportPenjualanProduk> oList = new List <ReportPenjualanProduk>();

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_PER_GOLONGAN_DETAIL);

                whereBuilder.Add("EXTRACT(MONTH FROM t_jual_produk.tanggal) = @bulan");
                whereBuilder.Add("EXTRACT(YEAR FROM t_jual_produk.tanggal) = @tahun");

                oList = _context.db.Query <ReportPenjualanProduk>(whereBuilder.ToSql(), new { bulan, tahun })
                        .ToList();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
        public IList <ReportReturPenjualanProdukHeader> GetByBulan(int bulan, int tahun)
        {
            IList <ReportReturPenjualanProdukHeader> oList = new List <ReportReturPenjualanProdukHeader>();

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_HEADER);

                whereBuilder.Add("EXTRACT(MONTH FROM t_retur_jual_produk.tanggal) = @bulan");
                whereBuilder.Add("EXTRACT(YEAR FROM t_retur_jual_produk.tanggal) = @tahun");

                oList = _context.db.Query <ReportReturPenjualanProdukHeader>(whereBuilder.ToSql(), new { bulan, tahun })
                        .ToList();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
예제 #26
0
        public IList <ReportKasbonHeader> GetByBulan(int bulanAwal, int bulanAkhir, int tahun)
        {
            IList <ReportKasbonHeader> oList = new List <ReportKasbonHeader>();

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_HEADER);

                whereBuilder.Add("(EXTRACT(MONTH FROM t_kasbon.tanggal) BETWEEN @bulanAwal AND @bulanAkhir)");
                whereBuilder.Add("EXTRACT(YEAR FROM t_kasbon.tanggal) = @tahun");

                oList = _context.db.Query <ReportKasbonHeader>(whereBuilder.ToSql(), new { bulanAwal, bulanAkhir, tahun })
                        .ToList();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
예제 #27
0
        public static void InitTest()
        {
            //var a = new WherePart();
            var lst = new List <string> {
                "12", "33"
            };
            var builder = new WhereBuilder <AModel>();

            var date = DateTime.Now;

            var a = builder.ToSql(x => x.Code == "112" && x.BirthDay == date && lst.Contains(x.Hobbiy));

            SqlCommand cmd = new SqlCommand(a.RawSql, new SqlConnection(""));

            foreach (var key in a.Parameters.Keys)
            {
                cmd.Parameters.AddWithValue($"{key}", a.Parameters[key]);
            }

            var b = a.RawSql;
        }
예제 #28
0
        public IList <ReportKasbonDetail> DetailGetByBulan(int bulan, int tahun)
        {
            IList <ReportKasbonDetail> oList = new List <ReportKasbonDetail>();

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_DETAIL);

                whereBuilder.Add("EXTRACT(MONTH FROM t_kasbon.tanggal) = @bulan");
                whereBuilder.Add("EXTRACT(YEAR FROM t_kasbon.tanggal) = @tahun");

                oList = _context.db.Query <ReportKasbonDetail>(whereBuilder.ToSql(), new { bulan, tahun })
                        .ToList();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }
예제 #29
0
        public TEntity Single(Expression <Func <TEntity, bool> > expression, IDbTransaction ts = null)
        {
            using (_connection)
            {
                //build ra câu select
                var query = new StringBuilder(CommandBuilder.CreateSelectCommand(_entityInfo));

                //lấy expression để build ra câu where
                var builder   = new WhereBuilder <TEntity>();
                var wherePart = builder.ToSql(expression);
                if (wherePart.Parameters == null)
                {
                    throw new Exception("Can not find any parameter in where part.");
                }

                query.Append($" WHERE {wherePart.RawSql}");

                DynamicParameters parameter = new DynamicParameters();
                parameter.AddDynamicParams(wherePart.Parameters);
                return(_connection.QuerySingle <TEntity>(query.ToString(), parameter, ts));
            }
        }
예제 #30
0
        public IList <ReportPiutangPenjualanProduk> PerProdukGetByTanggal(DateTime tanggalMulai, DateTime tanggalSelesai)
        {
            IList <ReportPiutangPenjualanProduk> oList = new List <ReportPiutangPenjualanProduk>();

            try
            {
                var whereBuilder = new WhereBuilder(SQL_TEMPLATE_PER_PRODUK);

                whereBuilder.Add("t_jual_produk.tanggal_tempo IS NOT NULL");
                whereBuilder.Add("(t_jual_produk.total_nota - t_jual_produk.diskon + t_jual_produk.ppn + t_jual_produk.ongkos_kirim) - t_jual_produk.total_pelunasan <> 0");
                whereBuilder.Add("t_jual_produk.tanggal BETWEEN @tanggalMulai AND @tanggalSelesai");

                oList = _context.db.Query <ReportPiutangPenjualanProduk>(whereBuilder.ToSql(), new { tanggalMulai, tanggalSelesai })
                        .ToList();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(oList);
        }