diff --git a/Config/.gitkeep b/Config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Config/config.php b/Config/config.php new file mode 100644 index 0000000..4761639 --- /dev/null +++ b/Config/config.php @@ -0,0 +1,5 @@ + 'KonfirmasiBank' +]; diff --git a/Console/.gitkeep b/Console/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/DataTables/AccountDataTable.php b/DataTables/AccountDataTable.php new file mode 100644 index 0000000..0b10b63 --- /dev/null +++ b/DataTables/AccountDataTable.php @@ -0,0 +1,160 @@ +with(['ViewCustomer']); + return (new EloquentDataTable($query)) + ->filter(function ($query) { + if (request()->has('search')) { + $search = request()->get('search'); + $dataSearch = explode(',', $search['value']); + $query->where(function($query) use ($dataSearch){ + if($dataSearch[0] != "" && $dataSearch[1] == "" && $dataSearch[2] == ""){ + $query->where('CUSTOMER_NO', $dataSearch[0]); + } else if($dataSearch[0] != "" && $dataSearch[1] != "" && $dataSearch[2] == ""){ + $query->where('CUSTOMER_NO', $dataSearch[0]); + $query->Where('CO_CODE', $dataSearch[1]); + }else if($dataSearch[0] != "" && $dataSearch[1] != "" && $dataSearch[2] != ""){ + $query->where('CUSTOMER_NO', $dataSearch[0]); + $query->Where('CO_CODE', $dataSearch[1]); + $query->where('BATCH_DATE', 'like', "%" . Carbon::parse($dataSearch[2])->format('m'). "%" ); + } + + }); + } + }) + ->addColumn('customer_no', function ($model) { + return $model->CUSTOMER_NO; + }) + ->addColumn('account_number', function ($model) { + return $model->ACCOUNT_NUMBER; + }) + ->addColumn('account_name', function ($model) { + return $model->ACCOUNT_TITLE_1; + }) + ->addColumn('co_code', function ($model) { + return $model->CO_CODE; + }) + ->addColumn('currency', function ($model) { + return $model->CURRENCY; + // $dt = Carbon::create($model->tanggal_upload); + // return $dt->isoFormat('D MMMM Y H:mm:ss'); + }) + ->addColumn('batch_date', function ($model) { + $dt = Carbon::create($model->BATCH_DATE); + return $dt->isoFormat('DD/MM/YYYY'); + }) + ->addColumn('status', function ($model) { + return 'Approved'; + // if ($model->status == 1) { + // return 'Approved'; + // } else if ($model->status == 0) { + // return 'Menunggu Approval'; + // } else if ($model->status == 3) { + // return 'Rejected'; + // } else if ($model->status == 4) { + // return 'Approved Request Download'; + // } else if ($model->status == 5) { + // return 'Approved Download Approved'; + // } else if ($model->status == 6) { + // return 'Approved Request Delete'; + // } else if ($model->status == 7) { + // return 'Approved Request Delete'; + // } else if ($model->status == 8) { + // return 'Deleted'; + // } else if ($model->status == 9) { + // return 'Approved Request Non-Aktif'; + // } + }) + ->addIndexColumn() + ->rawColumns(['status', 'action']) + ->addColumn('action', 'konfirmasibank::._action') + ->setRowId('id'); + } + + /** + * Get the query source of dataTable. + */ + public function query(Account $model) + : QueryBuilder + { + $currentYear = Carbon::now()->format('Y'); + + return $model->newQuery()->where('BATCH_DATE', 'like', "%" . $currentYear. "%"); + } + + /** + * Optional method if you want to use the html builder. + */ + public function html() + : HtmlBuilder + { + return $this->builder() + ->setTableId('konfirmasibank-table') + ->columns($this->getColumns()) + ->minifiedAjax() + ->stateSave(false) + ->responsive() + ->autoWidth(true) + ->orderBy(1) + ->parameters([ + 'scrollX' => true, + 'drawCallback' => 'function() { KTMenu.createInstances(); }', + ]) + ->addTableClass('align-middle table-row-dashed fs-6 gy-5'); + } + + /** + * Get the dataTable columns definition. + */ + public function getColumns() + : array + { + return [ + Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false)->addClass('text-center'), + Column::make('customer_no')->title('NO CIF')->addClass('text-center'), + Column::make('account_number')->title('No Account')->addClass('text-center'), + Column::make('account_name')->title('Nama Account')->addClass('text-center'), + Column::make('co_code')->title('Kode Cabang')->addClass('text-center'), + Column::make('currency')->title('Mata Uang')->addClass('text-center'), + Column::make('batch_date')->title('Periode')->addClass('text-center'), + // Column::computed('status'), + Column::computed('action') + ->exportable(false) + ->printable(false) + ->addClass('text-center'), + ]; + } + + /** + * Get the filename for export. + */ + protected function filename() + : string + { + return 'Document_' . date('YmdHis'); + } +} \ No newline at end of file diff --git a/DataTables/CustomerDataTable.php b/DataTables/CustomerDataTable.php new file mode 100644 index 0000000..d0f60df --- /dev/null +++ b/DataTables/CustomerDataTable.php @@ -0,0 +1,100 @@ +filter(function ($query) { + if (request()->has('search')) { + $search = request()->get('search'); + $query->where('customer_no', 'like', "%" . $search['value'] . "%") + ->orWhere('customer_name', 'like', "%" . $search['value'] . "%"); + } + }) + ->addColumn('customer',function($model){ + return $model->ACCOUNT_NUMBER; + }) + ->addColumn('customer',function($model){ + return $model->customer; + }) + ->addIndexColumn() + ->addColumn('action', 'customer::_action') + ->setRowId('id'); + } + + /** + * Get the query source of dataTable. + */ + public function query(Customer $model): QueryBuilder + { + + return $model->newQuery(); + } + + /** + * Optional method if you want to use the html builder. + */ + public function html(): HtmlBuilder + { + return $this->builder() + ->setTableId('customer-table') + ->columns($this->getColumns()) + ->minifiedAjax() + ->stateSave(false) + ->responsive() + ->autoWidth(true) + ->orderBy(1) + ->parameters([ + 'scrollX' => true, + 'drawCallback' => 'function() { KTMenu.createInstances(); }', + ]) + ->addTableClass('align-middle table-row-dashed fs-6 gy-5'); + } + + /** + * Get the dataTable columns definition. + */ + public function getColumns(): array + { + return [ + Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false), + // Column::make('ID')->title('CIF'), + Column::make('CUSTOMER_NO')->title('CUSTOMER NO'), + Column::make('NAME_1')->title('NAME'), + Column::make('ADDRESS')->title('ADDRESS'), + Column::computed('action') + ->exportable(false) + ->printable(false) + ->width(60) + ->addClass('text-center'), + ]; + } + + /** + * Get the filename for export. + */ + protected function filename(): string + { + return 'Customer_' . date('YmdHis'); + } +} \ No newline at end of file diff --git a/DataTables/ViewAccountDataTable.php b/DataTables/ViewAccountDataTable.php new file mode 100644 index 0000000..ea465d1 --- /dev/null +++ b/DataTables/ViewAccountDataTable.php @@ -0,0 +1,161 @@ +with(['ViewCustomer']); + return (new EloquentDataTable($query)) + ->filter(function ($query) { + if (request()->has('search')) { + $search = request()->get('search'); + $dataSearch = explode(',', $search['value']); + $query->where(function($query) use ($dataSearch){ + if($dataSearch[0] != "" && $dataSearch[1] == "" && $dataSearch[2] == ""){ + $query->where('CUSTOMER_NO', $dataSearch[0]); + } else if($dataSearch[0] != "" && $dataSearch[1] != "" && $dataSearch[2] == ""){ + $query->where('CUSTOMER_NO', $dataSearch[0]); + $query->where('COMPANY_NAME', 'LIKE', "%" . $dataSearch[1] . "%"); + }else if($dataSearch[0] != "" && $dataSearch[1] != "" && $dataSearch[2] != ""){ + $query->where('CUSTOMER_NO', $dataSearch[0]); + $query->Where('COMPANY_NAME', 'LIKE', "%" . $dataSearch[1] . "%"); + $query->where('BATCH_DATE', 'like', "%" . Carbon::parse($dataSearch[2])->format('m'). "%" ); + } + + }); + } + }) + ->addColumn('account_number', function ($model) { + return $model->ACCOUNT_NUMBER; + }) + ->addColumn('co_code', function ($model) { + return $model->COMPANY_NAME; + }) + ->addColumn('product', function ($model) { + return $model->PRODUCT; + }) + ->addColumn('currency', function ($model) { + return $model->CURRENCY; + }) + ->addColumn('working_balance', function ($model) { + return $model->WORKING_BALANCE; + }) + ->addColumn('batch_date', function ($model) { + return $model->BATCH_DATE; + }) + // ->addColumn('', function ($model) { + // $dt = Carbon::create($model->BATCH_DATE); + // return $dt->isoFormat('DD/MM/YYYY'); + // }) + ->addColumn('status', function ($model) { + return 'Approved'; + // if ($model->status == 1) { + // return 'Approved'; + // } else if ($model->status == 0) { + // return 'Menunggu Approval'; + // } else if ($model->status == 3) { + // return 'Rejected'; + // } else if ($model->status == 4) { + // return 'Approved Request Download'; + // } else if ($model->status == 5) { + // return 'Approved Download Approved'; + // } else if ($model->status == 6) { + // return 'Approved Request Delete'; + // } else if ($model->status == 7) { + // return 'Approved Request Delete'; + // } else if ($model->status == 8) { + // return 'Deleted'; + // } else if ($model->status == 9) { + // return 'Approved Request Non-Aktif'; + // } + }) + ->addIndexColumn() + ->rawColumns(['status', 'action']) + ->addColumn('action', 'konfirmasibank::._action') + ->setRowId('id'); + } + + /** + * Get the query source of dataTable. + */ + public function query(ViewAccount $model) + : QueryBuilder + { + $currentYear = Carbon::now()->format('Y'); + + return $model->newQuery()->where('BATCH_DATE', 'like', "%" . $currentYear. "%"); + } + + /** + * Optional method if you want to use the html builder. + */ + public function html() + : HtmlBuilder + { + return $this->builder() + ->setTableId('konfirmasibank-table') + ->columns($this->getColumns()) + ->minifiedAjax() + ->stateSave(false) + ->responsive() + ->autoWidth(true) + ->orderBy(1) + ->parameters([ + 'scrollX' => true, + 'drawCallback' => 'function() { KTMenu.createInstances(); }', + ]) + ->addTableClass('align-middle table-row-dashed fs-6 gy-5'); + } + + /** + * Get the dataTable columns definition. + */ + public function getColumns() + : array + { + return [ + Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false)->addClass('text-center'), + Column::make('account_number')->title('NO Rekening')->addClass('text-center'), + Column::make('co_code')->title('Cabang')->addClass('text-center'), + Column::make('product')->title('Jenis Rekening')->addClass('text-center'), + Column::make('currency')->title('Mata uang')->addClass('text-center'), + Column::make('working_balance')->title('Saldo')->addClass('text-center'), + Column::make('batch_date')->title('Periode')->addClass('text-center'), + // Column::computed('status'), + Column::computed('action') + ->exportable(false) + ->printable(false) + ->addClass('text-center'), + ]; + } + + /** + * Get the filename for export. + */ + protected function filename() + : string + { + return 'Document_' . date('YmdHis'); + } +} \ No newline at end of file diff --git a/DataTables/ViewCustomerDataTable.php b/DataTables/ViewCustomerDataTable.php new file mode 100644 index 0000000..011531e --- /dev/null +++ b/DataTables/ViewCustomerDataTable.php @@ -0,0 +1,175 @@ +with(['ViewCustomer']); + return (new EloquentDataTable($query)) + ->filter(function ($query) { + + + if (request()->has('search')) { + $search = request()->get('search'); + + $dataSearch = explode(',', $search['value']); + //dd(int)$dataSearch[1]); + $query->where(function($query) use ($dataSearch){ + if($dataSearch[0] != "" && $dataSearch[1] == "" && $dataSearch[2] == ""){ + $query->where('CUSTOMER_CODE', $dataSearch[0]); + } else if($dataSearch[0] != "" && $dataSearch[1] != "" && $dataSearch[2] == ""){ + $query->where('CUSTOMER_CODE', $dataSearch[0]); + $query->Where('BRANCH_CODE', $dataSearch[1]); + }else if($dataSearch[0] != "" && $dataSearch[1] != "" && $dataSearch[2] != ""){ + $query->where('CUSTOMER_CODE', $dataSearch[0]); + $query->Where('BRANCH_CODE', $dataSearch[1]); + $query->Where('OPENING_DATE', 'like', "%" . $dataSearch[2] . "%"); + } + + }); + } + + if(request()->has('kodecabang')){ + if(request()->get('kodecabang') != null){ + $query->where('BRANCH_CODE', '>=', request()->get('kodecabang')); + } + } + + if(request()->has('periode')){ + if(request()->get('periode') != null){ + $query->where('OPENING_DATE', 'like', "%" . Carbon::parse(request()->get('periode'))->format('Y-m-d') . "%" ); + } + } + }) + ->addColumn('customer_code', function ($model) { + return $model->customer_code; + }) + ->addColumn('account_number', function ($model) { + return $model->account_number; + }) + ->addColumn('account_name', function ($model) { + return $model->account_name; + }) + ->addColumn('branch_code', function ($model) { + return $model->branch_code; + }) + ->addColumn('currency_code', function ($model) { + return $model->currency_code; + // $dt = Carbon::create($model->tanggal_upload); + // return $dt->isoFormat('D MMMM Y H:mm:ss'); + }) + ->addColumn('periode', function ($model) { + $dt = Carbon::create($model->opening_date); + return $dt->isoFormat('D MMMM Y'); + }) + ->addColumn('status', function ($model) { + return 'Approved'; + // if ($model->status == 1) { + // return 'Approved'; + // } else if ($model->status == 0) { + // return 'Menunggu Approval'; + // } else if ($model->status == 3) { + // return 'Rejected'; + // } else if ($model->status == 4) { + // return 'Approved Request Download'; + // } else if ($model->status == 5) { + // return 'Approved Download Approved'; + // } else if ($model->status == 6) { + // return 'Approved Request Delete'; + // } else if ($model->status == 7) { + // return 'Approved Request Delete'; + // } else if ($model->status == 8) { + // return 'Deleted'; + // } else if ($model->status == 9) { + // return 'Approved Request Non-Aktif'; + // } + }) + ->addIndexColumn() + ->rawColumns(['status', 'action']) + ->addColumn('action', 'konfirmasibank::._action') + ->setRowId('id'); + } + + /** + * Get the query source of dataTable. + */ + public function query(ViewCustomer $model) + : QueryBuilder + { + + return $model->newQuery(); + } + + /** + * Optional method if you want to use the html builder. + */ + public function html() + : HtmlBuilder + { + return $this->builder() + ->setTableId('konfirmasibank-table') + ->columns($this->getColumns()) + ->minifiedAjax() + ->stateSave(false) + ->responsive() + ->autoWidth(true) + ->orderBy(1) + ->parameters([ + 'scrollX' => true, + 'drawCallback' => 'function() { KTMenu.createInstances(); }', + ]) + ->addTableClass('align-middle table-row-dashed fs-6 gy-5'); + } + + /** + * Get the dataTable columns definition. + */ + public function getColumns() + : array + { + return [ + Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false)->addClass('text-center'), + Column::make('customer_code')->title('NO CIF')->addClass('text-center'), + Column::make('account_number')->title('No Account')->addClass('text-center'), + Column::make('account_name')->title('Nama Account')->addClass('text-center'), + Column::make('branch_code')->title('Kode Cabang')->addClass('text-center'), + Column::make('currency_code')->title('Mata Uang')->addClass('text-center'), + Column::make('opening_date')->title('Periode')->addClass('text-center'), + // Column::computed('status'), + Column::computed('action') + ->exportable(false) + ->printable(false) + ->addClass('text-center'), + ]; + } + + /** + * Get the filename for export. + */ + protected function filename() + : string + { + return 'Document_' . date('YmdHis'); + } +} diff --git a/Database/Migrations/.gitkeep b/Database/Migrations/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Database/Seeders/.gitkeep b/Database/Seeders/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Database/Seeders/KonfirmasiBankDatabaseSeeder.php b/Database/Seeders/KonfirmasiBankDatabaseSeeder.php new file mode 100644 index 0000000..76f5163 --- /dev/null +++ b/Database/Seeders/KonfirmasiBankDatabaseSeeder.php @@ -0,0 +1,21 @@ +call("OthersTableSeeder"); + } +} diff --git a/Database/factories/.gitkeep b/Database/factories/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Entities/.gitkeep b/Entities/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Entities/Account.php b/Entities/Account.php new file mode 100644 index 0000000..2f92295 --- /dev/null +++ b/Entities/Account.php @@ -0,0 +1,35 @@ +belongsTo(Customer::class, 'CUSTOMER_NO'); + } + + +} \ No newline at end of file diff --git a/Entities/Customer.php b/Entities/Customer.php new file mode 100644 index 0000000..ca1ce8b --- /dev/null +++ b/Entities/Customer.php @@ -0,0 +1,65 @@ +table("T24DWH.V_CUSTOMER")->limit(20)->get()->map(function($item) {return (array) $item;}); + return $data; + + } + + public function getCustomer(){ + $data = []; + $data = DB::connection("oracle")->table("T24DWH.V_CUSTOMER")->select('CUSTOMER_CODE')->limit(50); + return $data; + } + + public function exportPdf($cus_no,$account,$kodecabang,$periode){ + $data = []; + $data = DB::table('view_customers') + ->where('CUSTOMER_NO',$cus_no) + ->whereIn('ACCOUNT_NUMBER', $account) + ->where('SECTOR',$kodecabang) + ->where('LEGAL_ISS_DATE','LIKE','%'.$periode.'%') + ->get(); + + + return $data; + } + + + public function accounts(): HasMany + { + return $this->hasMany(Account::class, 'CUSTOMER_CODE'); + } + + +} \ No newline at end of file diff --git a/Entities/ViewAccount.php b/Entities/ViewAccount.php new file mode 100644 index 0000000..5764101 --- /dev/null +++ b/Entities/ViewAccount.php @@ -0,0 +1,105 @@ +table("STG_DB.VW_ACCOUNTS")->select('*')->where('CUSTOMER_NO',$cus_no)->whereIn('ACCOUNT_NUMBER',$account)->get(); + return $data; + + } + + public function getPinjaman($cus_no){ + $data = []; + $data = DB::connection("db2")->table("STG_DB.VW_AA_ARRANGEMENT")->select('CUSTOMER','STREET','ADDRESS','SHORT_NAME','CO_CODE','PRODUCT_LINE','PRODUCT','CURRENCY','COMPANY_NAME',DB::raw('MAX(CATEGORY) AS CATEGORY'),DB::raw('MAX(BATCH_DATE) AS BATCH_DATE'),DB::raw('MAX(WORKING_BALANCE) AS WORKING_BALANCE'),DB::raw('MAX(OPENING_DATE) AS OPENING_DATE'),DB::raw('MAX(MATURITY_DATE) AS MATURITY_DATE'),DB::raw('MAX(MATURITY_DATE) AS MATURITY_DATE'), DB::raw('MAX(ARRANGEMENT_ID) AS ARRANGEMENT_ID'))->where('CUSTOMER',$cus_no)->groupBy('CUSTOMER','STREET','ADDRESS','SHORT_NAME','CO_CODE','PRODUCT_LINE','PRODUCT','CURRENCY','COMPANY_NAME')->get(); + return $data; + + } + + public function getFasilitas($cus_no){ + $data = []; + $data =DB::connection("db2")->table("STG_DB.LIMIT")->select('*')->where('@ID', 'like', "%" .$cus_no. "%")->get(); + return $data; + } + + public function getTerm($arr_id){ + $data = []; + $data =DB::connection("db2")->table("STG_DB.AA_ARR_TERM_AMOUNT")->select(DB::raw('MAX(ID) AS ID'),DB::raw('MAX(TERM) AS TERM'))->where('ID', 'like', "%" .$arr_id."%")->orderBy('ID','DESC')->get(); + return $data; + } + + public function getInterest($arr_id){ + $data = []; + $data =DB::connection("db2")->table("STG_DB.AA_ARR_INTEREST")->select(DB::raw('MAX(ID) AS ID'),DB::raw('MAX(FIXED_RATE) AS FIXED_RATE'))->where('ID', 'like', "%".$arr_id."%")->orderBy('ID','DESC')->get(); + return $data; + } + + public function getCategory($category_id){ + + $data = []; + $data =DB::connection("db2")->table("STG_DB.CATEGORY")->select('ID','SHORT_NAME')->where('ID',$category_id)->get(); + return $data; + } + + public function getAA($aa_id){ + + $data = []; + $data =DB::connection("db2")->table("STG_DB.AA_ARRANGEMENENT")->select('ID')->where('ID', 'like',"%".$aa_id."%")->orderBy('ID','DESC')->get(); + return $data; + } + + public function getLimit($cus_id,$periode){ + + $data = []; + $data =DB::connection("db2")->table("STG_DB.LIMIT AS LM") + ->join('STG_DB.LIMIT_REFERENCE AS LR', 'LM.LIMIT_PRODUCT', '=', 'LR.ID') + ->join('STG_DB.COMPANY AS CP', 'LM.CO_CODE', '=', 'CP.ID') + ->join('STG_DB.CATEGORY AS CT', 'LM.LIMIT_PRODUCT', '=', 'CT.ID') + ->select('LM.LIMIT_CURRENCY','LM.APPROVAL_DATE','LM.EXPIRY_DATE','LM.AVAIL_AMT','LM.BATCH_DATE','LM.EXPIRY_DATE','LR.SHORT_NAME','LR.LIMIT_PERCENTAGE','CP.COMPANY_NAME','CT.SHORT_NAME AS ACCOUNT_TYPE') + ->where('LM.@ID', 'like',"%".$cus_id."%") + ->where('LM.BATCH_DATE', 'like',"%".$periode."%") + ->orderBy('LM.@ID','DESC')->get(); + return $data; + } + + public function getLimitProduct($limit_product_id){ + + $data = []; + $data =DB::connection("db2")->table("STG_DB.LIMIT_REFERENCE")->select('ID','SHORT_NAME','LIMIT_PERCENTAGE')->where('ID',$limit_product_id)->first(); + return $data; + } + +} \ No newline at end of file diff --git a/Entities/ViewCustomer.php b/Entities/ViewCustomer.php new file mode 100644 index 0000000..abfc3e5 --- /dev/null +++ b/Entities/ViewCustomer.php @@ -0,0 +1,34 @@ +middleware(function ($request, $next) { + $this->user = Auth::guard('web')->user(); + return $next($request); + }); + + addVendor('chained-select'); + + } + + /** + * Display a listing of the resource. + */ + public function index(ViewAccountDataTable $dataTable) + { + + if (is_null($this->user) || !$this->user->can('konfirmasibank.read')) { + abort(403, 'Sorry !! You are Unauthorized to view any master data !'); + } + + return $dataTable->render('konfirmasibank::index'); + } + + + /* + ----- export pdf ----- + */ + public function export(Request $request) { + if (is_null($this->user) || !$this->user->can('konfirmasibank.report')) { + abort(403, 'Sorry !! You are Unauthorized to view any master data !'); + } + + $account = explode("," , $request['acc_no']); + + $ViewAccount = new ViewAccount; + $data = []; + $DataAccounts = []; + $DataPinjaman = []; + $DataLimit = []; + $ListAccount = $ViewAccount->getAccount($request['cus_no'],$account,$request['kode_cabang'],$request['periode']); + + foreach ($ListAccount as $key1 => $account) { + $DataAccounts[$key1]['ACCOUNT_NUMBER'] = $account->ACCOUNT_NUMBER; + $DataAccounts[$key1]['CUSTOMER_NO'] = $account->CUSTOMER_NO; + $DataAccounts[$key1]['CURRENCY'] = $account->CURRENCY; + $DataAccounts[$key1]['PRODUCT'] = $account->PRODUCT; + $DataAccounts[$key1]['COMPANY_NAME'] = $account->COMPANY_NAME; + $DataAccounts[$key1]['WORKING_BALANCE'] = $account->WORKING_BALANCE; + $DataAccounts[$key1]['BATCH_DATE'] = $account->BATCH_DATE; + $DataAccounts[$key1]['MATURITY_DATE'] = $account->MATURITY_DATE; + $ListBunga =$ViewAccount->getInterest($account->ARRANGEMENT_ID); + $ListTenor =$ViewAccount->getTerm($account->ARRANGEMENT_ID); + foreach ($ListBunga as $bunga) { + if (strpos($bunga->ID ,$account->ARRANGEMENT_ID) !== false) { + $DataAccounts[$key1]['FIXED_RATE'] = $bunga->FIXED_RATE; + + } + } + + + + + } + + + $ListPinjaman =$ViewAccount->getPinjaman($ListAccount[0]->CUSTOMER_NO); + $pinjaman = []; + foreach ($ListPinjaman as $key => $item) { + $ListTenor =$ViewAccount->getTerm($item->ARRANGEMENT_ID); + $ListBunga =$ViewAccount->getInterest($item->ARRANGEMENT_ID); + $ListCategory =$ViewAccount->getCategory($item->CATEGORY); + $pinjaman[$key]['CUSTOMER'] = $item->CUSTOMER; + $pinjaman[$key]['SHORT_NAME'] = $item->SHORT_NAME; + $pinjaman[$key]['STREET'] = $item->STREET; + $pinjaman[$key]['ADDRESS'] = $item->ADDRESS; + $pinjaman[$key]['COMPANY_NAME'] = $item->COMPANY_NAME; + $pinjaman[$key]['CURRENCY'] = $item->CURRENCY; + $pinjaman[$key]['PRODUCT_LINE'] = $item->PRODUCT_LINE; + $pinjaman[$key]['PRODUCT'] = $item->PRODUCT; + $pinjaman[$key]['WORKING_BALANCE'] = $item->WORKING_BALANCE; + $pinjaman[$key]['BATCH_DATE'] = $item->OPENING_DATE; + $pinjaman[$key]['MATURITY_DATE'] = $item->MATURITY_DATE; + + foreach ($ListBunga as $bunga) { + if (strpos($bunga->ID ,$item->ARRANGEMENT_ID) !== false) { + $pinjaman[$key]['FIXED_RATE'] = $bunga->FIXED_RATE; + } + } + foreach ($ListTenor as $tenor) { + if (strpos($tenor->ID ,$item->ARRANGEMENT_ID) !== false) { + $pinjaman[$key]['TERM'] = $tenor->TERM; + } + } + foreach ($ListCategory as $category) { + if ($category->ID == $item->CATEGORY) { + $pinjaman[$key]['CATEGORY'] = $category->SHORT_NAME; + } + } + } + + $DataProducts = []; + $ListLimits = $ViewAccount->getLimit($request['cus_no'],$request['periode']); + + $data['DataAccounts'] = $DataAccounts; + $data['DataPinjaman'] = $pinjaman; + $data['DataLimit'] = $ListLimits; + + $currentDate = Carbon::now(); + $formattedDate = $currentDate->format('Y-m-d'); + + $html = View::make('konfirmasibank::exportPdf', ['data' => $data])->render(); + + $pdf = new Dompdf(); + $pdf->loadHtml($html); + + // Mengatur jenis kertas + $pdf->setPaper('f4', 'landscape')->set_option('defaultFont', 'Arial'); + + // Render HTML menjadi PDF + $pdf->render(); + + // Keluarkan file PDF ke browser + $pdf->stream('"Konfirmasi_bank_"'.$ListPinjaman[0]->SHORT_NAME.'"'. $formattedDate.'".pdf"'); + + // $pdf->render(); + // return $pdf->stream('Konfirmasi_bank_"'.$ListPinjaman[0]->SHORT_NAME.'"'. $formattedDate.'""'); + + } + + + } \ No newline at end of file diff --git a/Http/Middleware/.gitkeep b/Http/Middleware/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Http/Requests/.gitkeep b/Http/Requests/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Providers/.gitkeep b/Providers/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Providers/KonfirmasiBankServiceProvider.php b/Providers/KonfirmasiBankServiceProvider.php new file mode 100644 index 0000000..cd61f56 --- /dev/null +++ b/Providers/KonfirmasiBankServiceProvider.php @@ -0,0 +1,114 @@ +registerTranslations(); + $this->registerConfig(); + $this->registerViews(); + $this->loadMigrationsFrom(module_path($this->moduleName, 'Database/Migrations')); + } + + /** + * Register the service provider. + * + * @return void + */ + public function register() + { + $this->app->register(RouteServiceProvider::class); + } + + /** + * Register config. + * + * @return void + */ + protected function registerConfig() + { + $this->publishes([ + module_path($this->moduleName, 'Config/config.php') => config_path($this->moduleNameLower . '.php'), + ], 'config'); + $this->mergeConfigFrom( + module_path($this->moduleName, 'Config/config.php'), $this->moduleNameLower + ); + } + + /** + * Register views. + * + * @return void + */ + public function registerViews() + { + $viewPath = resource_path('views/modules/' . $this->moduleNameLower); + + $sourcePath = module_path($this->moduleName, 'Resources/views'); + + $this->publishes([ + $sourcePath => $viewPath + ], ['views', $this->moduleNameLower . '-module-views']); + + $this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$sourcePath]), $this->moduleNameLower); + } + + /** + * Register translations. + * + * @return void + */ + public function registerTranslations() + { + $langPath = resource_path('lang/modules/' . $this->moduleNameLower); + + if (is_dir($langPath)) { + $this->loadTranslationsFrom($langPath, $this->moduleNameLower); + $this->loadJsonTranslationsFrom($langPath); + } else { + $this->loadTranslationsFrom(module_path($this->moduleName, 'Resources/lang'), $this->moduleNameLower); + $this->loadJsonTranslationsFrom(module_path($this->moduleName, 'Resources/lang')); + } + } + + /** + * Get the services provided by the provider. + * + * @return array + */ + public function provides() + { + return []; + } + + private function getPublishableViewPaths(): array + { + $paths = []; + foreach (\Config::get('view.paths') as $path) { + if (is_dir($path . '/modules/' . $this->moduleNameLower)) { + $paths[] = $path . '/modules/' . $this->moduleNameLower; + } + } + return $paths; + } +} diff --git a/Providers/RouteServiceProvider.php b/Providers/RouteServiceProvider.php new file mode 100644 index 0000000..e954625 --- /dev/null +++ b/Providers/RouteServiceProvider.php @@ -0,0 +1,69 @@ +mapApiRoutes(); + + $this->mapWebRoutes(); + } + + /** + * Define the "web" routes for the application. + * + * These routes all receive session state, CSRF protection, etc. + * + * @return void + */ + protected function mapWebRoutes() + { + Route::middleware('web') + ->namespace($this->moduleNamespace) + ->group(module_path('KonfirmasiBank', '/Routes/web.php')); + } + + /** + * Define the "api" routes for the application. + * + * These routes are typically stateless. + * + * @return void + */ + protected function mapApiRoutes() + { + Route::prefix('api') + ->middleware('api') + ->namespace($this->moduleNamespace) + ->group(module_path('KonfirmasiBank', '/Routes/api.php')); + } +} diff --git a/Resources/assets/.gitkeep b/Resources/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Resources/assets/js/app.js b/Resources/assets/js/app.js new file mode 100644 index 0000000..e69de29 diff --git a/Resources/assets/sass/app.scss b/Resources/assets/sass/app.scss new file mode 100644 index 0000000..e69de29 diff --git a/Resources/lang/.gitkeep b/Resources/lang/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Resources/views/.gitkeep b/Resources/views/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Resources/views/_action.blade.php b/Resources/views/_action.blade.php new file mode 100644 index 0000000..d0a1b0a --- /dev/null +++ b/Resources/views/_action.blade.php @@ -0,0 +1,18 @@ +@php + $route = explode('.', Route::currentRouteName()); + +@endphp + +
+ ![]() Nomor : +Tanggal : + |
+ + + | +
+ BANK ARTHA GRAHA INTERNATIONAL +Kawasan Niaga Terpadu Sudirman (SCBD) + Jl. Jendral Sudirman Kav. 52 – 53 , Jakarta Indonesia + +Phone : +Faxmail : + |
+
Kepada Yth
+Bp. ...
+{{$data['DataPinjaman'][0]['STREET']}}, {{$data['DataPinjaman'][0]['ADDRESS']}}
+ +Sesuai dengan surat saudara Nomor …. tanggal … dengan ini kami smpaikan data – data nasbah sesuai permintaan saudara sebagai berikut :
+ +
+ Nama Nasabah + |
+ + : + | +
+ {{$data['DataPinjaman'][0]['SHORT_NAME']}} + |
+
+ Nomor CIF + |
+ + : + | +
+ {{$data['DataAccounts'][0]['CUSTOMER_NO']}} + |
+
SIMPAMAN NASABAH YANG BERSANGKUTAN PADA BANK
+POSISI ....
+No | +Rekening | +Cabang | +Jenis Rekening | +Mata Uang | +Saldo | +Jangka Waktu | +Suku Bung | +Tgl Jatuh Tempo | +
---|---|---|---|---|---|---|---|---|
{{ $i++ }} | +{{ $val['ACCOUNT_NUMBER'] }} | +{{ $val['COMPANY_NAME'] }} | +{{ $val['PRODUCT'] }} | +{{ $val['CURRENCY'] }} | +{{ $val['WORKING_BALANCE'] }} | +{{ $val['BATCH_DATE'] }} | +{{ $val['FIXED_RATE'] }} | +{{ $val['MATURITY_DATE'] }} | +
Tidak Ada Account | +
PINJAMAN YANG DI BERIKAN OLEH BANK KEPADA NASABAH
+POSISI ....
+No | +Jenis Pinjaman | +Cabang | +Jenis Rekening | +Mata Uang | +Saldo | +Jangka Waktu | +Suku Bung | +Tgl Jatuh Tempo | +
---|---|---|---|---|---|---|---|---|
{{ $i++ }} | +{{ $pinjaman['PRODUCT_LINE'] }} | +{{ $pinjaman['COMPANY_NAME'] }} | +{{ $pinjaman['CATEGORY'] }} | +{{ $pinjaman['CURRENCY'] }} | +{{ $pinjaman['WORKING_BALANCE'] }} | +{{ $pinjaman['BATCH_DATE'] }} | +{{ $pinjaman['FIXED_RATE'] }} | +{{ $pinjaman['MATURITY_DATE'] }} | +
Tidak Ada Pinjaman | +
FASILITAS LAIN YANG DI TERIMA OLEH NASABAH
+POSISI ....
+No | +Jenis Fasilitas | +Cabang | +Jenis Rekening | +Mata Uang | +Saldo | +Jangka Waktu | +Suku Bung | +Tgl Jatuh Tempo | +
---|---|---|---|---|---|---|---|---|
{{ $i++ }} | +{{ $limit->SHORT_NAME }} | +{{ $limit->COMPANY_NAME }} | +{{ $limit->ACCOUNT_TYPE }} | +{{ $limit->LIMIT_CURRENCY }} | +{{ $limit->AVAIL_AMT }} | +{{ $limit->BATCH_DATE }} | +{{ $limit->LIMIT_PERCENTAGE }} | +{{ $limit->EXPIRY_DATE}} | +
Tidak Ada Fasilitas | +
+ Nama Pejabat 1 +Jabatan + |
+
+ Nama Pejabat 2 +Jabatan + |
+