Merge branch 'ujrah_master' of https://bitbucket.org/arrahn-pkb/api_arrahn into api-laporan-ujrah
This commit is contained in:
@@ -63,7 +63,17 @@ class MarhunController extends Controller
|
|||||||
|
|
||||||
$harga = HargaEmas::on('mysql7')->where('karat',$request->karat)->first();
|
$harga = HargaEmas::on('mysql7')->where('karat',$request->karat)->first();
|
||||||
|
|
||||||
$nilai_marhun = $request->berat_emas * $harga['harga'];
|
$hargaemas = $harga['harga'];
|
||||||
|
if(isset($request->jenisAT)){
|
||||||
|
if($request->jenisAT == 'hargalama'){
|
||||||
|
$hargaemas = $request->harga;
|
||||||
|
// $nilai_marhun = $request->berat_emas * $request->harga;
|
||||||
|
}else $hargaemas = $harga['harga'];
|
||||||
|
// $nilai_marhun = $request->berat_emas * $harga['harga'];
|
||||||
|
}else $hargaemas = $harga['harga'];
|
||||||
|
|
||||||
|
$nilai_marhun = $request->berat_emas * $hargaemas;
|
||||||
|
|
||||||
|
|
||||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
||||||
$marhun = Marhun::on($cawangan['mysql'])->create([
|
$marhun = Marhun::on($cawangan['mysql'])->create([
|
||||||
@@ -75,7 +85,7 @@ class MarhunController extends Controller
|
|||||||
'nota' => $request->nota,
|
'nota' => $request->nota,
|
||||||
'karat' => $request->karat,
|
'karat' => $request->karat,
|
||||||
'berat' => $request->berat_emas,
|
'berat' => $request->berat_emas,
|
||||||
'harga' => $harga['harga'],
|
'harga' => $hargaemas,
|
||||||
'n_marhun' => $nilai_marhun
|
'n_marhun' => $nilai_marhun
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,58 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Cawangan;
|
||||||
|
use App\CawanganDetail;
|
||||||
|
use App\Customer;
|
||||||
|
use App\Gadai;
|
||||||
|
use App\Marhun;
|
||||||
|
use DateTime;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use App\Services\Reports\GadaianService as ReportGadaianService;
|
||||||
|
|
||||||
|
class ReportGadaiController extends Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function getLaporanCawangan(string $kod_cawangan, Request $request)
|
||||||
|
{
|
||||||
|
$reportGadaianService = new ReportGadaianService($kod_cawangan, $request);
|
||||||
|
return $reportGadaianService->getCawanganReport();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getSummaryLaporanGadai(Request $request)
|
||||||
|
{
|
||||||
|
$onDate = $request->onDate;
|
||||||
|
$startDate = $request->startDate;
|
||||||
|
$endDate = $request->endDate;
|
||||||
|
|
||||||
|
$active_cawangan_db_connection = getActiveCawanganDbConnection();
|
||||||
|
|
||||||
|
$active_cawangan_db_name = array_map(function ($db_connection) {
|
||||||
|
return config('database.connections' . '.' . $db_connection . '.' . 'database');
|
||||||
|
}, $active_cawangan_db_connection);
|
||||||
|
|
||||||
|
$active_cawangan_detail = Cawangan::select('kodcaw', 'details_caw')->whereIn('db_name', $active_cawangan_db_name)->get()->toArray();
|
||||||
|
|
||||||
|
$summary_gadaian_data = array_map(function ($db_connection) use ($request) {
|
||||||
|
$query = Gadai::on($db_connection);
|
||||||
|
|
||||||
|
$query->select(DB::raw('count(norujukan) as total_gadaian, sum(berat) as sum_berat, sum(nilaimarhun) as sum_nilai_marhun, sum(pinjaman) as sum_pinjaman'));
|
||||||
|
|
||||||
|
$query->when($request->filled('startDate') and $request->filled('endDate'), function ($q) use ($request) {
|
||||||
|
return $q->where('t_gadai', '>=', $request->startDate)
|
||||||
|
->where('t_gadai', '<=', $request->endDate);
|
||||||
|
});
|
||||||
|
|
||||||
|
return $query->get()->toArray();
|
||||||
|
|
||||||
|
}, $active_cawangan_db_connection);
|
||||||
|
|
||||||
|
$response = array_map(function ($cawangan_detail, $summary_gadaian_data) {
|
||||||
|
return array_merge($cawangan_detail, $summary_gadaian_data[0]);
|
||||||
|
}, $active_cawangan_detail, $summary_gadaian_data);
|
||||||
|
|
||||||
|
return json_encode($response);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,193 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Services\Reports;
|
||||||
|
|
||||||
|
use App\Cawangan;
|
||||||
|
use App\CawanganDetail;
|
||||||
|
use App\Customer;
|
||||||
|
use App\Gadai;
|
||||||
|
use App\Marhun;
|
||||||
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class GadaianService
|
||||||
|
{
|
||||||
|
|
||||||
|
public $kod_cawangan;
|
||||||
|
public $startDate;
|
||||||
|
public $endDate;
|
||||||
|
|
||||||
|
public function __construct($kod_cawangan, Request $request)
|
||||||
|
{
|
||||||
|
$this->kod_cawangan = $kod_cawangan;
|
||||||
|
$this->startDate = $request->startDate;
|
||||||
|
$this->endDate = $request->endDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getCawanganReport()
|
||||||
|
{
|
||||||
|
$cawangan_connection = Cawangan::where('kodcaw', $this->kod_cawangan)->first()->mysql;
|
||||||
|
|
||||||
|
$query_total_gadaian = Gadai::on($cawangan_connection);
|
||||||
|
|
||||||
|
$query_total_gadaian->when(!empty($this->startDate) and !empty($this->endDate), function ($q) {
|
||||||
|
return $q->where('t_gadai', '>=', $this->startDate)
|
||||||
|
->where('t_gadai', '<=', $this->endDate);
|
||||||
|
});
|
||||||
|
|
||||||
|
$total_gadaian = $this->getTotalGadaian($query_total_gadaian);
|
||||||
|
$total_summary_gadaian_teller = $this->getTotalSummaryGadaianGroupByTeller($query_total_gadaian);
|
||||||
|
$total_summary_gadaian = $this->getTotalSummaryGadaian($query_total_gadaian);
|
||||||
|
$customer_info = $this->getCustomerInfo($total_gadaian);
|
||||||
|
$marhun_gadaian = $this->getMarhunGadaian($total_gadaian, $cawangan_connection);
|
||||||
|
$cawangan_detail = $this->getCawanganDetail($cawangan_connection);
|
||||||
|
|
||||||
|
$total_gadaian = $total_gadaian->zip($customer_info, $marhun_gadaian)->map(function ($data) {
|
||||||
|
|
||||||
|
[$gadai, $customer_info, $marhun_gadaian] = $data;
|
||||||
|
|
||||||
|
return [
|
||||||
|
'no_rujukan' => $gadai['norujukan'],
|
||||||
|
'nama' => $customer_info['nama'],
|
||||||
|
'alamat' => $customer_info['alamat1'],
|
||||||
|
'no_kp' => $gadai['nokp'],
|
||||||
|
'masa' => $gadai['masa'],
|
||||||
|
'marhun' => $marhun_gadaian,
|
||||||
|
'berat' => $gadai['berat'],
|
||||||
|
'nilai_marhun' => $gadai['nilaimarhun'],
|
||||||
|
'pembiayaan' => $gadai['pinjaman'],
|
||||||
|
'peratusan_margin_pinjaman' => $gadai['percentpinj'],
|
||||||
|
'teller' => $gadai['teller'],
|
||||||
|
];
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
$total_gadaian = $total_gadaian->groupBy('teller');
|
||||||
|
|
||||||
|
$gadaian_tellers = $total_gadaian->keys();
|
||||||
|
|
||||||
|
$total_gadaian = $total_gadaian
|
||||||
|
->zip($total_summary_gadaian_teller)
|
||||||
|
->map(function ($data) {
|
||||||
|
|
||||||
|
[$gadaian, $summary] = $data;
|
||||||
|
|
||||||
|
return [
|
||||||
|
'gadaian' => $gadaian,
|
||||||
|
'summary_gadaian_teller' => $summary,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$total_gadaian = $gadaian_tellers->combine($total_gadaian);
|
||||||
|
|
||||||
|
$data = [
|
||||||
|
'query' => [
|
||||||
|
'startDate' => formatDate($this->startDate),
|
||||||
|
'endDate' => formatDate($this->endDate),
|
||||||
|
],
|
||||||
|
'cawangan_detail' => $cawangan_detail,
|
||||||
|
'gadaian' => $total_gadaian,
|
||||||
|
'summary_gadaian' => $total_summary_gadaian,
|
||||||
|
];
|
||||||
|
|
||||||
|
return json_encode($data);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getCawanganDetail($cawangan_connection)
|
||||||
|
{
|
||||||
|
$cawangan_detail = CawanganDetail::on($cawangan_connection)->get()
|
||||||
|
->map(function ($detail) {
|
||||||
|
return [
|
||||||
|
'nama' => $detail['namacaw'],
|
||||||
|
'code' => $detail['kodcaw'] . ' Ar-Rahn ' . $detail['cawangan'],
|
||||||
|
'alamat' => $detail['alamat1'],
|
||||||
|
'waktu_operasi' => $detail['alamat4'],
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
return $cawangan_detail[0];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getTotalSummaryGadaian(Builder $query_total_gadaian)
|
||||||
|
{
|
||||||
|
|
||||||
|
$total_summary_gadaian = (clone $query_total_gadaian)
|
||||||
|
->selectRaw('sum(berat) as total_berat, sum(nilaimarhun) as total_nilai_marhun, sum(pinjaman) as total_pembiayaan')
|
||||||
|
->get()
|
||||||
|
->map(function ($x) {
|
||||||
|
return [
|
||||||
|
'total_berat' => $x['total_berat'],
|
||||||
|
'total_nilai_marhun' => $x['total_nilai_marhun'],
|
||||||
|
'total_pembiayaan' => $x['total_pembiayaan'],
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
return $total_summary_gadaian[0];
|
||||||
|
}
|
||||||
|
private function getTotalSummaryGadaianGroupByTeller(Builder $query_total_gadaian)
|
||||||
|
{
|
||||||
|
|
||||||
|
$total_summary_gadaian_groupByTeller = (clone $query_total_gadaian)
|
||||||
|
->selectRaw('sum(berat) as total_berat, sum(nilaimarhun) as total_nilai_marhun, sum(pinjaman) as total_pembiayaan')
|
||||||
|
->groupBy('teller')
|
||||||
|
->get();
|
||||||
|
return $total_summary_gadaian_groupByTeller;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getTotalGadaian(Builder $query_total_gadaian)
|
||||||
|
{
|
||||||
|
$total_gadaian = (clone $query_total_gadaian)
|
||||||
|
->select('t_gadai', 'norujukan', 'nokp', 'semakbarcode', 'masa', 'berat', 'nilaimarhun', 'pinjaman', 'upah12', 'percentpinj', 'teller', 'nokp')
|
||||||
|
->orderBy('teller')
|
||||||
|
->orderBy('sirig')
|
||||||
|
->get();
|
||||||
|
return $total_gadaian;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getCustomerInfo($total_gadaian)
|
||||||
|
{
|
||||||
|
|
||||||
|
$extract_nokp = $total_gadaian->pluck('nokp');
|
||||||
|
|
||||||
|
$customer_info = Customer::on('mysql7')
|
||||||
|
->select(['nama', 'alamat1', 'kpbaru', 'kplama'])
|
||||||
|
->where(function ($query) use ($extract_nokp) {
|
||||||
|
$query->whereIn('kpbaru', $extract_nokp)
|
||||||
|
->orWhereIn('kplama', $extract_nokp);
|
||||||
|
})
|
||||||
|
->get();
|
||||||
|
|
||||||
|
$customer_info = collect($extract_nokp)->map(function ($nokp) use ($customer_info) {
|
||||||
|
return $customer_info->where('kpbaru', $nokp)->first() ?? $customer_info->where('kplama', $nokp)->first();
|
||||||
|
})->toArray();
|
||||||
|
|
||||||
|
return $customer_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getMarhunGadaian($total_gadaian, $cawangan_connection)
|
||||||
|
{
|
||||||
|
|
||||||
|
$extract_norujukan = $total_gadaian->pluck('norujukan');
|
||||||
|
|
||||||
|
$marhun_gadaian = Marhun::on($cawangan_connection)
|
||||||
|
->select('norujukan', 'bil', 'marhun')
|
||||||
|
->whereIn('norujukan', $extract_norujukan)
|
||||||
|
->get()
|
||||||
|
->groupBy('norujukan')
|
||||||
|
->toArray();
|
||||||
|
|
||||||
|
$marhun_gadaian = array_map(function ($gadaian) {
|
||||||
|
return array_map(function ($norujukan) {
|
||||||
|
return $norujukan['bil'] . ' ' . $norujukan['marhun'];
|
||||||
|
}, $gadaian);
|
||||||
|
}, $marhun_gadaian);
|
||||||
|
|
||||||
|
$marhun_gadaian = array_map(function ($gadaian) {
|
||||||
|
return implode(',', $gadaian);
|
||||||
|
}, $marhun_gadaian);
|
||||||
|
|
||||||
|
return $marhun_gadaian;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
<?php
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use DateTime;
|
||||||
|
|
||||||
|
if (!function_exists('formatNumber')) {
|
||||||
|
function formatNumber ($amount) {
|
||||||
|
$formattedAmount = number_format($amount, 2, '.', ',');
|
||||||
|
|
||||||
|
return $formattedAmount;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!function_exists('formatDate')) {
|
||||||
|
function formatDate ($date_string) {
|
||||||
|
return (new DateTime($date_string))->format("d-m-Y");
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('getActiveCawanganDbConnection')) {
|
||||||
|
|
||||||
|
function getActiveCawanganDbConnection()
|
||||||
|
{
|
||||||
|
|
||||||
|
$all_active_db_keys = array_filter(array_keys(config('database.connections')), function ($connection) {
|
||||||
|
try {
|
||||||
|
DB::connection($connection)->getPdo();
|
||||||
|
return true;
|
||||||
|
} catch (\Throwable $th) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$non_cawangan_database = ['lelong', 'online_arrahn', 'kaunterpkb'];
|
||||||
|
|
||||||
|
$all_cawangan_db = array_filter($all_active_db_keys, function ($db_key) use ($non_cawangan_database) {
|
||||||
|
$isNotCawangan = in_array(config('database.connections.' . $db_key . '.database'), $non_cawangan_database);
|
||||||
|
|
||||||
|
if ($isNotCawangan) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
return $all_cawangan_db;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+3
-1
@@ -60,6 +60,7 @@ $app->singleton(
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
$app->configure('app');
|
$app->configure('app');
|
||||||
|
$app->configure('tinker');
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@@ -110,6 +111,7 @@ $app->router->group([
|
|||||||
'namespace' => 'App\Http\Controllers',
|
'namespace' => 'App\Http\Controllers',
|
||||||
], function ($router) {
|
], function ($router) {
|
||||||
require __DIR__.'/../routes/web.php';
|
require __DIR__.'/../routes/web.php';
|
||||||
|
require __DIR__.'/../routes/report.php';
|
||||||
});
|
});
|
||||||
|
|
||||||
$app->middleware([
|
$app->middleware([
|
||||||
@@ -117,5 +119,5 @@ $app->middleware([
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
$app->register(\Rap2hpoutre\LaravelLogViewer\LaravelLogViewerServiceProvider::class);
|
$app->register(\Rap2hpoutre\LaravelLogViewer\LaravelLogViewerServiceProvider::class);
|
||||||
|
$app->register(\Laravel\Tinker\TinkerServiceProvider::class);
|
||||||
return $app;
|
return $app;
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
"php": "^7.2.5",
|
"php": "^7.2.5",
|
||||||
"auth0/auth0-php": "^7.4",
|
"auth0/auth0-php": "^7.4",
|
||||||
"laravel/lumen-framework": "^7.0",
|
"laravel/lumen-framework": "^7.0",
|
||||||
|
"laravel/tinker": "^2.8",
|
||||||
"rap2hpoutre/laravel-log-viewer": "^1.7"
|
"rap2hpoutre/laravel-log-viewer": "^1.7"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
@@ -16,6 +17,9 @@
|
|||||||
"phpunit/phpunit": "^8.5"
|
"phpunit/phpunit": "^8.5"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
"files":[
|
||||||
|
"app/helpers.php"
|
||||||
|
],
|
||||||
"classmap": [
|
"classmap": [
|
||||||
"database/seeds",
|
"database/seeds",
|
||||||
"database/factories"
|
"database/factories"
|
||||||
|
|||||||
Generated
+206
-1
@@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "f3fc95d4bf94ca7763a98f60d5a6fd91",
|
"content-hash": "9002d37085a4ef790b6e9f7269b8f058",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "auth0/auth0-php",
|
"name": "auth0/auth0-php",
|
||||||
@@ -2202,6 +2202,75 @@
|
|||||||
},
|
},
|
||||||
"time": "2020-09-15T14:53:08+00:00"
|
"time": "2020-09-15T14:53:08+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "laravel/tinker",
|
||||||
|
"version": "v2.8.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/laravel/tinker.git",
|
||||||
|
"reference": "b936d415b252b499e8c3b1f795cd4fc20f57e1f3"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/laravel/tinker/zipball/b936d415b252b499e8c3b1f795cd4fc20f57e1f3",
|
||||||
|
"reference": "b936d415b252b499e8c3b1f795cd4fc20f57e1f3",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0",
|
||||||
|
"illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0",
|
||||||
|
"illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0",
|
||||||
|
"php": "^7.2.5|^8.0",
|
||||||
|
"psy/psysh": "^0.10.4|^0.11.1",
|
||||||
|
"symfony/var-dumper": "^4.3.4|^5.0|^6.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"mockery/mockery": "~1.3.3|^1.4.2",
|
||||||
|
"phpstan/phpstan": "^1.10",
|
||||||
|
"phpunit/phpunit": "^8.5.8|^9.3.3"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0)."
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "2.x-dev"
|
||||||
|
},
|
||||||
|
"laravel": {
|
||||||
|
"providers": [
|
||||||
|
"Laravel\\Tinker\\TinkerServiceProvider"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Laravel\\Tinker\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Taylor Otwell",
|
||||||
|
"email": "taylor@laravel.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Powerful REPL for the Laravel framework.",
|
||||||
|
"keywords": [
|
||||||
|
"REPL",
|
||||||
|
"Tinker",
|
||||||
|
"laravel",
|
||||||
|
"psysh"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/laravel/tinker/issues",
|
||||||
|
"source": "https://github.com/laravel/tinker/tree/v2.8.2"
|
||||||
|
},
|
||||||
|
"time": "2023-08-15T14:27:00+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "monolog/monolog",
|
"name": "monolog/monolog",
|
||||||
"version": "2.6.0",
|
"version": "2.6.0",
|
||||||
@@ -2453,6 +2522,62 @@
|
|||||||
},
|
},
|
||||||
"time": "2018-02-13T20:26:39+00:00"
|
"time": "2018-02-13T20:26:39+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "nikic/php-parser",
|
||||||
|
"version": "v4.17.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/nikic/PHP-Parser.git",
|
||||||
|
"reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d",
|
||||||
|
"reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-tokenizer": "*",
|
||||||
|
"php": ">=7.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"ircmaxell/php-yacc": "^0.0.7",
|
||||||
|
"phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
|
||||||
|
},
|
||||||
|
"bin": [
|
||||||
|
"bin/php-parse"
|
||||||
|
],
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "4.9-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"PhpParser\\": "lib/PhpParser"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Nikita Popov"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A PHP parser written in PHP",
|
||||||
|
"keywords": [
|
||||||
|
"parser",
|
||||||
|
"php"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/nikic/PHP-Parser/issues",
|
||||||
|
"source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1"
|
||||||
|
},
|
||||||
|
"time": "2023-08-13T19:53:39+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "opis/closure",
|
"name": "opis/closure",
|
||||||
"version": "3.6.3",
|
"version": "3.6.3",
|
||||||
@@ -2893,6 +3018,86 @@
|
|||||||
},
|
},
|
||||||
"time": "2017-10-23T01:57:42+00:00"
|
"time": "2017-10-23T01:57:42+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "psy/psysh",
|
||||||
|
"version": "v0.11.22",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/bobthecow/psysh.git",
|
||||||
|
"reference": "128fa1b608be651999ed9789c95e6e2a31b5802b"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/128fa1b608be651999ed9789c95e6e2a31b5802b",
|
||||||
|
"reference": "128fa1b608be651999ed9789c95e6e2a31b5802b",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-json": "*",
|
||||||
|
"ext-tokenizer": "*",
|
||||||
|
"nikic/php-parser": "^4.0 || ^3.1",
|
||||||
|
"php": "^8.0 || ^7.0.8",
|
||||||
|
"symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4",
|
||||||
|
"symfony/var-dumper": "^6.0 || ^5.0 || ^4.0 || ^3.4"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"bamarni/composer-bin-plugin": "^1.2"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
|
||||||
|
"ext-pdo-sqlite": "The doc command requires SQLite to work.",
|
||||||
|
"ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.",
|
||||||
|
"ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history."
|
||||||
|
},
|
||||||
|
"bin": [
|
||||||
|
"bin/psysh"
|
||||||
|
],
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-0.11": "0.11.x-dev"
|
||||||
|
},
|
||||||
|
"bamarni-bin": {
|
||||||
|
"bin-links": false,
|
||||||
|
"forward-command": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"src/functions.php"
|
||||||
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"Psy\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Justin Hileman",
|
||||||
|
"email": "justin@justinhileman.info",
|
||||||
|
"homepage": "http://justinhileman.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "An interactive shell for modern PHP.",
|
||||||
|
"homepage": "http://psysh.org",
|
||||||
|
"keywords": [
|
||||||
|
"REPL",
|
||||||
|
"console",
|
||||||
|
"interactive",
|
||||||
|
"shell"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/bobthecow/psysh/issues",
|
||||||
|
"source": "https://github.com/bobthecow/psysh/tree/v0.11.22"
|
||||||
|
},
|
||||||
|
"time": "2023-10-14T21:56:36+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "ralouphie/getallheaders",
|
"name": "ralouphie/getallheaders",
|
||||||
"version": "3.0.3",
|
"version": "3.0.3",
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
"name": "laravel/lumen",
|
||||||
|
"description": "The Laravel Lumen Framework.",
|
||||||
|
"keywords": ["framework", "laravel", "lumen"],
|
||||||
|
"license": "MIT",
|
||||||
|
"type": "project",
|
||||||
|
"require": {
|
||||||
|
"php": "^7.2.5",
|
||||||
|
"auth0/auth0-php": "^7.4",
|
||||||
|
"laravel/lumen-framework": "^7.0",
|
||||||
|
"rap2hpoutre/laravel-log-viewer": "^1.7"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"fzaninotto/faker": "^1.9.1",
|
||||||
|
"mockery/mockery": "^1.3.1",
|
||||||
|
"phpunit/phpunit": "^8.5"
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"database/seeds",
|
||||||
|
"database/factories"
|
||||||
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"App\\": "app/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload-dev": {
|
||||||
|
"classmap": [
|
||||||
|
"tests/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"config": {
|
||||||
|
"preferred-install": "dist",
|
||||||
|
"sort-packages": true,
|
||||||
|
"optimize-autoloader": true
|
||||||
|
},
|
||||||
|
"minimum-stability": "dev",
|
||||||
|
"prefer-stable": true,
|
||||||
|
"scripts": {
|
||||||
|
"post-root-package-install": [
|
||||||
|
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,60 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Laravel CORS Options
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The allowed_methods and allowed_headers options are case-insensitive.
|
||||||
|
|
|
||||||
|
| You don't need to provide both allowed_origins and allowed_origins_patterns.
|
||||||
|
| If one of the strings passed matches, it is considered a valid origin.
|
||||||
|
|
|
||||||
|
| If ['*'] is provided to allowed_methods, allowed_origins or allowed_headers
|
||||||
|
| all methods / origins / headers are allowed.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* You can enable CORS for 1 or multiple paths.
|
||||||
|
* Example: ['api/*']
|
||||||
|
*/
|
||||||
|
'paths' => ['api/*'],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Matches the request method. `['*']` allows all methods.
|
||||||
|
*/
|
||||||
|
'allowed_methods' => ['*'],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Matches the request origin. `['*']` allows all origins. Wildcards can be used, eg `*.mydomain.com`
|
||||||
|
*/
|
||||||
|
'allowed_origins' => ['*'],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Patterns that can be used with `preg_match` to match the origin.
|
||||||
|
*/
|
||||||
|
'allowed_origins_patterns' => [],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sets the Access-Control-Allow-Headers response header. `['*']` allows all headers.
|
||||||
|
*/
|
||||||
|
'allowed_headers' => ['*'],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sets the Access-Control-Expose-Headers response header with these headers.
|
||||||
|
*/
|
||||||
|
'exposed_headers' => [],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sets the Access-Control-Max-Age response header when > 0.
|
||||||
|
*/
|
||||||
|
'max_age' => 86400,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sets the Access-Control-Allow-Credentials header.
|
||||||
|
*/
|
||||||
|
'supports_credentials' => true,
|
||||||
|
];
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Console Commands
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This option allows you to add additional Artisan commands that should
|
||||||
|
| be available within the Tinker environment. Once the command is in
|
||||||
|
| this array you may execute the command in Tinker using its name.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'commands' => [
|
||||||
|
// App\Console\Commands\ExampleCommand::class,
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Auto Aliased Classes
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Tinker will not automatically alias classes in your vendor namespaces
|
||||||
|
| but you may explicitly allow a subset of classes to get aliased by
|
||||||
|
| adding the names of each of those classes to the following list.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'alias' => [
|
||||||
|
//
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Classes That Should Not Be Aliased
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Typically, Tinker automatically aliases classes as you require them in
|
||||||
|
| Tinker. However, you may wish to never alias certain classes, which
|
||||||
|
| you may accomplish by listing the classes in the following array.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'dont_alias' => [
|
||||||
|
'App\Nova',
|
||||||
|
],
|
||||||
|
|
||||||
|
];
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Faker\Generator as Faker;
|
||||||
|
|
||||||
|
class GadaiFactory
|
||||||
|
{
|
||||||
|
protected $faker;
|
||||||
|
|
||||||
|
public function __construct(Faker $faker)
|
||||||
|
{
|
||||||
|
$this->faker = $faker;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
static $number = 1;
|
||||||
|
|
||||||
|
return [
|
||||||
|
'kodcaw' => 'KB2',
|
||||||
|
'norujukan' => ($number > 9) ? 'KB2231123-00' . $number : 'KB2231123-000' . $number ,
|
||||||
|
'nopelanggan' => 'M03-00009968',
|
||||||
|
'nokp' => '630411035213',
|
||||||
|
't_gadai' => '2023-11-23',
|
||||||
|
'masa' => '13:46:57',
|
||||||
|
'sirig' => $number++,
|
||||||
|
'nilaimarhun' => 3000.09,
|
||||||
|
'berat' => 10.17,
|
||||||
|
'pinjaman' => 2300,
|
||||||
|
'telahbayar' => 0.00,
|
||||||
|
'upahtelahbyr' => 0.00,
|
||||||
|
'cajtelahbyr' => null,
|
||||||
|
'ansuran' => null,
|
||||||
|
'ansupah' => null,
|
||||||
|
'kadarupah' => null,
|
||||||
|
'tempoh' => 0.5,
|
||||||
|
't_lelong' => null,
|
||||||
|
't_hapus' => null,
|
||||||
|
'sttebus' => '',
|
||||||
|
'terima' => 1,
|
||||||
|
'cetak' => 1,
|
||||||
|
'tncek' => null,
|
||||||
|
'nocek' => null,
|
||||||
|
'bkcode' => null,
|
||||||
|
'teller' => 'NORLY BINTI DERAMAN',
|
||||||
|
'pelulus' => null,
|
||||||
|
'cancelid' => null,
|
||||||
|
'canceltime' => null,
|
||||||
|
'f_lulus' => null,
|
||||||
|
'tag' => null,
|
||||||
|
'jbg' => 0.5,
|
||||||
|
'bakipjm' => 2300,
|
||||||
|
'bakiupah' => 39.1,
|
||||||
|
'upahdibayar' => 0.00,
|
||||||
|
'marhun' => '1 R/L,',
|
||||||
|
'taglel' => null,
|
||||||
|
't_update' => '2023-11-23',
|
||||||
|
't_matang' => '2024-06-24',
|
||||||
|
't_matang1' => '2024-06-24',
|
||||||
|
'penilai' => 'MOHD KHALID ABDUL RAHMAN',
|
||||||
|
'tagserah' => 1,
|
||||||
|
'namapelulus' => '',
|
||||||
|
'percentpinj' => 80,
|
||||||
|
'namateller' => 'NORLY BINTI DERAMAN',
|
||||||
|
'jumtebus' => 0.00,
|
||||||
|
'upahnotis' => 0.00,
|
||||||
|
'tagpalsu' => 0,
|
||||||
|
'historygadaian' => '',
|
||||||
|
'tagcetak' => 1,
|
||||||
|
'lel1stop' => 0,
|
||||||
|
'tebus' => null,
|
||||||
|
'bakihargajualan' => 2769.2,
|
||||||
|
'hargajualan' => 2769.2,
|
||||||
|
'upah12' => 120,
|
||||||
|
'tagkomuditi' => 0,
|
||||||
|
'tempohbayar' => 0,
|
||||||
|
'lelong_tawarruq' => 0,
|
||||||
|
'semakbarcode' => 'Lulus'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Faker\Generator as Faker;
|
||||||
|
|
||||||
|
class MarhunFactory
|
||||||
|
{
|
||||||
|
protected $faker;
|
||||||
|
|
||||||
|
public function __construct(Faker $faker)
|
||||||
|
{
|
||||||
|
$this->faker = $faker;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
static $number = 1;
|
||||||
|
|
||||||
|
return [
|
||||||
|
'kodcaw' => 'KB2',
|
||||||
|
'marhun' => 'R/L',
|
||||||
|
't_gadai' => '2023-11-23',
|
||||||
|
'norujukan' => ($number > 9) ? 'KB2231123-00' . $number : 'KB2231123-000' . $number ,
|
||||||
|
'bil' => 1,
|
||||||
|
'nota' => $number++,
|
||||||
|
'karat' => '24.0K',
|
||||||
|
'berat' => 10.17,
|
||||||
|
'harga' => 295.11,
|
||||||
|
'n_marhun' => 3000.09
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Faker\Factory as FakerFactory;
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
class GadaiSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
$faker = FakerFactory::create();
|
||||||
|
$gadaiFactory = new GadaiFactory($faker);
|
||||||
|
|
||||||
|
// Create 10 instances of Gadai
|
||||||
|
for ($i = 0; $i < 10; $i++) {
|
||||||
|
DB::connection('mysql')->table('gadai')->insert($gadaiFactory->create());
|
||||||
|
DB::connection('mysql')->table('marhun')->insert($gadaiFactory->create());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
$router->group(['prefix'=>'api'], function () use ($router){
|
||||||
|
$router->get('gadailaporanOverallSummary', ['uses' => 'ReportGadaiController@getSummaryLaporanGadai']);
|
||||||
|
$router->get('gadailaporan/{kod_cawangan}', ['uses' => 'ReportGadaiController@getLaporanCawangan']);
|
||||||
|
});
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
use Faker\Factory as FakerFactory;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
$faker = FakerFactory::create();
|
||||||
|
$gadaiFactory = new GadaiFactory($faker);
|
||||||
|
$marhunFactory = new MarhunFactory($faker);
|
||||||
|
|
||||||
|
|
||||||
|
// Create 10 instances of Gadai
|
||||||
|
for ($i = 0; $i < 10; $i++) {
|
||||||
|
DB::connection('mysql')->table('gadai')->insert($gadaiFactory->create());
|
||||||
|
DB::connection('mysql')->table('marhun')->insert($marhunFactory->create());
|
||||||
|
}
|
||||||
|
|
||||||
|
exit();
|
||||||
|
|
||||||
|
?>
|
||||||
Reference in New Issue
Block a user