Compare commits
1 Commits
main
..
9a65d109e7
| Author | SHA1 | Date | |
|---|---|---|---|
| 9a65d109e7 |
@@ -1,10 +1,6 @@
|
||||
.git
|
||||
.gitea
|
||||
node_modules
|
||||
vendor
|
||||
.env
|
||||
.env.*
|
||||
!.env.example
|
||||
storage/logs
|
||||
storage/framework/cache
|
||||
storage/framework/sessions
|
||||
@@ -13,4 +9,3 @@ storage/debugbar
|
||||
npm-debug.log
|
||||
Dockerfile
|
||||
docker-compose.yml
|
||||
docker-compose.staging.yml
|
||||
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
APP_NAME=Lumen
|
||||
APP_ENV=local
|
||||
APP_KEY=WbPGkYNmXZ6ZQplGlvl0iZ7zyW1b09xa
|
||||
APP_DEBUG=true
|
||||
APP_URL=http://localhost
|
||||
APP_TIMEZONE=Asia/Kuala_Lumpur
|
||||
|
||||
LOG_CHANNEL=stack
|
||||
LOG_LEVEL=debug
|
||||
LOG_SLACK_WEBHOOK_URL=
|
||||
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=mysql
|
||||
DB_PORT=3306
|
||||
DB_DATABASE=erahn_xtra
|
||||
DB_USERNAME=root
|
||||
DB_PASSWORD=root
|
||||
|
||||
DB_CONNECTION_7=mysql
|
||||
DB_HOST_7=mysql
|
||||
DB_PORT_7=3306
|
||||
DB_DATABASE_7=master_erahn
|
||||
DB_USERNAME_7=root
|
||||
DB_PASSWORD_7=root
|
||||
|
||||
# DB_CONNECTION_3=mysql
|
||||
# DB_HOST_3=127.0.0.1
|
||||
# DB_PORT_3=3306
|
||||
# DB_DATABASE_3=erahn_baling
|
||||
# DB_USERNAME_3=root
|
||||
# DB_PASSWORD_3=root
|
||||
|
||||
# DB_CONNECTION_4=mysql
|
||||
# DB_HOST_4=127.0.0.1
|
||||
# DB_PORT_4=3306
|
||||
# DB_DATABASE_4=arrahn_ld
|
||||
# DB_USERNAME_4=root
|
||||
# DB_PASSWORD_4=root
|
||||
|
||||
# DB_CONNECTION_5=mysql
|
||||
# DB_HOST_5=127.0.0.1
|
||||
# DB_PORT_5=3306
|
||||
# DB_DATABASE_5=erahn_segamat
|
||||
# DB_USERNAME_5=root
|
||||
# DB_PASSWORD_5=root
|
||||
|
||||
# DB_CONNECTION_6=mysql
|
||||
# DB_HOST_6=127.0.0.1
|
||||
# DB_PORT_6=3306
|
||||
# DB_DATABASE_6=arrahn_kb2
|
||||
# DB_USERNAME_6=spider
|
||||
# DB_PASSWORD_6=G0dz!ll42020
|
||||
|
||||
|
||||
# DB_CONNECTION_8=mysql
|
||||
# DB_HOST_8=127.0.0.1
|
||||
# DB_PORT_8=3306
|
||||
# DB_DATABASE_8=arrahn_klanas
|
||||
# DB_USERNAME_8=spider
|
||||
# DB_PASSWORD_8=G0dz!ll42020
|
||||
|
||||
TENNANT_MASTER_DB=master_erahn
|
||||
TENNANT_KAUNTER_DB=kaunter_erahn
|
||||
|
||||
CACHE_DRIVER=file
|
||||
QUEUE_CONNECTION=sync
|
||||
@@ -1,84 +0,0 @@
|
||||
APP_NAME=Lumen
|
||||
APP_ENV=staging
|
||||
APP_KEY=WbPGkYNmXZ6ZQplGlvl0iZ7zyW1b09xa
|
||||
APP_DEBUG=true
|
||||
APP_URL=http://127.0.0.1:8090
|
||||
APP_TIMEZONE=Asia/Kuala_Lumpur
|
||||
|
||||
# Unique host ports — change these if they collide with other containers on the server.
|
||||
# Host nginx should proxy the staging domain to 127.0.0.1:${HTTP_PORT}
|
||||
HTTP_PORT=8090
|
||||
MYSQL_PUBLISH_PORT=3308
|
||||
|
||||
LOG_CHANNEL=stack
|
||||
LOG_LEVEL=debug
|
||||
LOG_SLACK_WEBHOOK_URL=
|
||||
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=mysql
|
||||
DB_PORT=3306
|
||||
DB_DATABASE=erahn_xtra
|
||||
DB_USERNAME=root
|
||||
DB_PASSWORD=root
|
||||
|
||||
DB_CONNECTION_7=mysql
|
||||
DB_HOST_7=mysql
|
||||
DB_PORT_7=3306
|
||||
DB_DATABASE_7=master_erahn
|
||||
DB_USERNAME_7=root
|
||||
DB_PASSWORD_7=root
|
||||
|
||||
DB_CONNECTION_2=mysql
|
||||
DB_HOST_2=mysql
|
||||
DB_PORT_2=3306
|
||||
DB_DATABASE_2=erahn_xtra
|
||||
DB_USERNAME_2=root
|
||||
DB_PASSWORD_2=root
|
||||
|
||||
DB_CONNECTION_3=mysql
|
||||
DB_HOST_3=mysql
|
||||
DB_PORT_3=3306
|
||||
DB_DATABASE_3=erahn_baling
|
||||
DB_USERNAME_3=root
|
||||
DB_PASSWORD_3=root
|
||||
|
||||
DB_CONNECTION_4=mysql
|
||||
DB_HOST_4=mysql
|
||||
DB_PORT_4=3306
|
||||
DB_DATABASE_4=arrahn_ld
|
||||
DB_USERNAME_4=root
|
||||
DB_PASSWORD_4=root
|
||||
|
||||
DB_CONNECTION_5=mysql
|
||||
DB_HOST_5=mysql
|
||||
DB_PORT_5=3306
|
||||
DB_DATABASE_5=erahn_segamat
|
||||
DB_USERNAME_5=root
|
||||
DB_PASSWORD_5=root
|
||||
|
||||
DB_CONNECTION_7=mysql
|
||||
DB_HOST_7=mysql
|
||||
DB_PORT_7=3306
|
||||
DB_DATABASE_7=master_erahn
|
||||
DB_USERNAME_7=root
|
||||
DB_PASSWORD_7=root
|
||||
|
||||
DB_CONNECTION_6=mysql
|
||||
DB_HOST_6=mysql
|
||||
DB_PORT_6=3306
|
||||
DB_DATABASE_6=erahn_test
|
||||
DB_USERNAME_6=root
|
||||
DB_PASSWORD_6=root
|
||||
|
||||
# DB_CONNECTION_8=mysql
|
||||
# DB_HOST_8=mysql
|
||||
# DB_PORT_8=3306
|
||||
# DB_DATABASE_8=arrahn_klanas
|
||||
# DB_USERNAME_8=spider
|
||||
# DB_PASSWORD_8=G0dz!ll42020
|
||||
|
||||
TENNANT_MASTER_DB=master_erahn
|
||||
TENNANT_KAUNTER_DB=kaunter_erahn
|
||||
|
||||
CACHE_DRIVER=file
|
||||
QUEUE_CONNECTION=sync
|
||||
@@ -1,49 +0,0 @@
|
||||
name: Build Docker Image
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- staging
|
||||
tags:
|
||||
- "v*"
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-backend:
|
||||
runs-on: docker
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Login to Docker registry
|
||||
run: |
|
||||
echo "${{ secrets.REGISTRY_PASSWORD }}" | \
|
||||
docker login git.koppkb.com \
|
||||
-u "${{ secrets.REGISTRY_USERNAME }}" \
|
||||
--password-stdin
|
||||
|
||||
- name: Build & push backend image
|
||||
run: |
|
||||
set -e
|
||||
|
||||
IMAGE="git.koppkb.com/kopkb/api_arrahn"
|
||||
TAGS="-t ${IMAGE}:${{ gitea.sha }}"
|
||||
|
||||
if [ "${{ gitea.ref_type }}" = "tag" ] && echo "${{ gitea.ref_name }}" | grep -q '^v'; then
|
||||
TAGS="${TAGS} -t ${IMAGE}:${{ gitea.ref_name }}"
|
||||
fi
|
||||
|
||||
if [ "${{ gitea.ref_name }}" = "staging" ]; then
|
||||
TAGS="${TAGS} -t ${IMAGE}:staging"
|
||||
fi
|
||||
|
||||
echo "Building and pushing backend: ${TAGS}"
|
||||
docker buildx build \
|
||||
--target staging \
|
||||
--platform linux/amd64 \
|
||||
--cache-from type=registry,ref=${IMAGE}:buildcache,ignore-error=true \
|
||||
--cache-to type=registry,ref=${IMAGE}:buildcache,mode=max \
|
||||
-f docker/php/Dockerfile \
|
||||
${TAGS} \
|
||||
--push .
|
||||
@@ -1,122 +0,0 @@
|
||||
name: Deploy to Staging
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
image_tag:
|
||||
description: "Docker image tag to deploy (commit SHA, staging, or v*)"
|
||||
required: true
|
||||
default: "staging"
|
||||
type: string
|
||||
|
||||
env:
|
||||
APP_IMAGE: git.koppkb.com/kopkb/api_arrahn
|
||||
DEPLOY_DIR: /home/arrahn/Project/api_arrahn
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: host
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ inputs.image_tag }}
|
||||
|
||||
- name: Login to Docker registry
|
||||
run: |
|
||||
echo "${{ secrets.REGISTRY_PASSWORD }}" | \
|
||||
docker login git.koppkb.com \
|
||||
-u "${{ secrets.REGISTRY_USERNAME }}" \
|
||||
--password-stdin
|
||||
|
||||
- name: Verify image exists in registry
|
||||
run: |
|
||||
set -e
|
||||
IMAGE_TAG="${{ inputs.image_tag }}"
|
||||
IMAGE="${APP_IMAGE}:${IMAGE_TAG}"
|
||||
|
||||
echo "Checking if image exists: ${IMAGE}"
|
||||
if ! docker manifest inspect "${IMAGE}" > /dev/null 2>&1; then
|
||||
echo "ERROR: Image ${IMAGE} does not exist in registry!"
|
||||
echo "Run the Build Docker Image workflow first."
|
||||
exit 1
|
||||
fi
|
||||
echo "✓ ${IMAGE} found"
|
||||
|
||||
- name: Pull Docker image
|
||||
run: |
|
||||
set -e
|
||||
IMAGE_TAG="${{ inputs.image_tag }}"
|
||||
docker pull "${APP_IMAGE}:${IMAGE_TAG}"
|
||||
echo "✓ Image pulled successfully"
|
||||
|
||||
- name: Sync compose file and deploy
|
||||
run: |
|
||||
set -e
|
||||
IMAGE_TAG="${{ inputs.image_tag }}"
|
||||
|
||||
mkdir -p "${DEPLOY_DIR}/docker/nginx" "${DEPLOY_DIR}/docker/mysql"
|
||||
cp docker-compose.staging.yml "${DEPLOY_DIR}/docker-compose.yml"
|
||||
cp docker/nginx/default.conf "${DEPLOY_DIR}/docker/nginx/default.conf"
|
||||
cp -R docker/mysql/init "${DEPLOY_DIR}/docker/mysql/"
|
||||
|
||||
if [ ! -f "${DEPLOY_DIR}/.env.staging" ]; then
|
||||
if [ -f .env.staging ]; then
|
||||
cp .env.staging "${DEPLOY_DIR}/.env.staging"
|
||||
echo "Copied .env.staging from repo (first deploy). Edit ${DEPLOY_DIR}/.env.staging on the server if needed."
|
||||
else
|
||||
echo "ERROR: ${DEPLOY_DIR}/.env.staging is missing on the server"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
cd "${DEPLOY_DIR}"
|
||||
|
||||
export APP_IMAGE
|
||||
export IMAGE_TAG
|
||||
|
||||
docker compose --env-file .env.staging -f docker-compose.yml pull app
|
||||
docker compose --env-file .env.staging -f docker-compose.yml up -d --no-build --remove-orphans
|
||||
|
||||
echo "✓ Deployed IMAGE_TAG=${IMAGE_TAG}"
|
||||
|
||||
- name: Verify deployment
|
||||
run: |
|
||||
set -e
|
||||
cd "${DEPLOY_DIR}"
|
||||
|
||||
echo "Waiting for services to start..."
|
||||
sleep 10
|
||||
|
||||
for SERVICE in app web mysql; do
|
||||
STATUS=$(docker compose --env-file .env.staging -f docker-compose.yml ps --status running --format '{{.Name}}' "$SERVICE" 2>/dev/null || true)
|
||||
if [ -z "$STATUS" ]; then
|
||||
echo "ERROR: ${SERVICE} is not running"
|
||||
docker compose --env-file .env.staging -f docker-compose.yml ps
|
||||
docker compose --env-file .env.staging -f docker-compose.yml logs --tail=50 "$SERVICE" || true
|
||||
exit 1
|
||||
fi
|
||||
echo "✓ ${SERVICE} is running (${STATUS})"
|
||||
done
|
||||
|
||||
HTTP_PORT=$(grep -E '^HTTP_PORT=' .env.staging 2>/dev/null | cut -d= -f2- | tr -d '"' || true)
|
||||
HTTP_PORT=${HTTP_PORT:-8090}
|
||||
|
||||
check_health() {
|
||||
NAME=$1
|
||||
URL=$2
|
||||
for i in 1 2 3 4 5 6; do
|
||||
if curl -sf "$URL" > /dev/null; then
|
||||
echo "✓ ${NAME} health check passed (${URL})"
|
||||
return 0
|
||||
fi
|
||||
echo "Waiting for ${NAME}... attempt ${i}/6"
|
||||
sleep 5
|
||||
done
|
||||
echo "ERROR: ${NAME} health check failed (${URL})"
|
||||
docker compose --env-file .env.staging -f docker-compose.yml logs --tail=50 app web || true
|
||||
return 1
|
||||
}
|
||||
|
||||
check_health "api" "http://127.0.0.1:${HTTP_PORT}/health"
|
||||
+1
-1
@@ -5,6 +5,6 @@ Homestead.yaml
|
||||
.env
|
||||
.phpunit.result.cache
|
||||
ray.php
|
||||
docker-compose.yml
|
||||
/docker_src
|
||||
/.vscode
|
||||
**/.DS_Store
|
||||
@@ -1 +1,17 @@
|
||||
You know what is this when you in this project
|
||||
|
||||
If you does't know what is this you probably in wrong project
|
||||
|
||||
```sql
|
||||
--- for all ip
|
||||
CREATE USER 'master_erahn'@'%' IDENTIFIED BY 'password';
|
||||
|
||||
--- for specific ip
|
||||
CREATE USER 'kaunter_erahn'@'localhost' IDENTIFIED BY 'password';
|
||||
|
||||
GRANT ALL PRIVILEGES ON kaunter_erahn.* TO 'kaunter_erahn'@'%';
|
||||
FLUSH PRIVILEGES;
|
||||
```
|
||||
|
||||
Gadai=Pembiayaan
|
||||
Tebus=penyelesaian penuh/ansuran
|
||||
@@ -1,18 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Anggota extends Model
|
||||
{
|
||||
protected $table = 'anggota';
|
||||
protected $connection = 'mysql7';
|
||||
|
||||
protected $fillable = [
|
||||
'no_anggota',
|
||||
'nama',
|
||||
'noic',
|
||||
'no_tel',
|
||||
];
|
||||
}
|
||||
@@ -1,95 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Cawangan;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class ImportCsv extends Command
|
||||
{
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'csv:import';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'Import CSV file to MySQL table';
|
||||
|
||||
/**
|
||||
* Create a new command instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$file = resource_path('data/anggota.csv');
|
||||
$handle = fopen($file, 'r');
|
||||
$header = fgetcsv($handle);
|
||||
|
||||
$columnMap = [
|
||||
'no_anggota' => 'no_anggota',
|
||||
'nama' => 'nama',
|
||||
'no_kp' => 'noic',
|
||||
'telefon' => 'no_tel',
|
||||
];
|
||||
|
||||
$chunk = [];
|
||||
$chunkSize = 1000;
|
||||
$totalRows = 0;
|
||||
|
||||
$bar = $this->output->createProgressBar();
|
||||
$bar->start();
|
||||
|
||||
try {
|
||||
while (($row = fgetcsv($handle)) !== false) {
|
||||
$csvData = array_combine($header, $row);
|
||||
$data = [];
|
||||
|
||||
foreach ($columnMap as $csvCol => $dbCol) {
|
||||
$data[$dbCol] = $csvData[$csvCol] ?? null;
|
||||
}
|
||||
|
||||
$data['status'] = 1;
|
||||
$chunk[] = $data;
|
||||
|
||||
if (count($chunk) >= $chunkSize) {
|
||||
DB::table('anggota')->insertOrIgnore($chunk);
|
||||
$totalRows += count($chunk);
|
||||
$chunk = [];
|
||||
$bar->advance($chunkSize);
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($chunk)) {
|
||||
DB::table('anggota')->insertOrIgnore($chunk);
|
||||
$totalRows += count($chunk);
|
||||
}
|
||||
|
||||
$bar->finish();
|
||||
$this->info("\n✅ Successfully imported {$totalRows} rows");
|
||||
} catch (\Exception $e) {
|
||||
$this->error("\n❌ Error: " . $e->getMessage());
|
||||
}
|
||||
|
||||
fclose($handle);
|
||||
}
|
||||
}
|
||||
@@ -24,7 +24,6 @@ class Kernel extends ConsoleKernel
|
||||
Commands\ClearCachesAll::class,
|
||||
Commands\RestartSupervisor::class,
|
||||
Commands\InsertSempornaData::class,
|
||||
//Commands\ImportCsv::class,
|
||||
|
||||
];
|
||||
|
||||
|
||||
+1
-2
@@ -61,8 +61,7 @@ class Customer extends Model
|
||||
'kumpulan',
|
||||
'telefon2',
|
||||
'nota_pekerjaan',
|
||||
'tagpelanggan',
|
||||
'tag_anggota'
|
||||
'tagpelanggan'
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
@@ -30,7 +30,6 @@ use App\Status;
|
||||
use App\LookupStatus;
|
||||
use App\ARFiles;
|
||||
use App\WTDDraft;
|
||||
use App\WTDSimulasi;
|
||||
use App\SerahBaki;
|
||||
use App\WTD;
|
||||
use App\StokAudit1;
|
||||
@@ -63,6 +62,7 @@ use Illuminate\Pagination\LengthAwarePaginator;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use App\Jobs\AccountCheckJob;
|
||||
use App\Penyelarasan;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
|
||||
@@ -2365,6 +2365,7 @@ class AdminPageController extends Controller
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first();
|
||||
|
||||
//$latestbatch = SerahBaki::on($cawangan['mysql'])->where('norujukan','baru')->get()->toArray();
|
||||
|
||||
//new added
|
||||
$serahBaki = SerahBaki::on($cawangan['mysql'])
|
||||
->where('norujukan', 'baru')
|
||||
@@ -2437,16 +2438,18 @@ class AdminPageController extends Controller
|
||||
{
|
||||
//array_push($latestbatch,['recno' => 0,'norujukan' => 'lama','batchno' => 0,'baki' => $lelong_data->sum('baki'),'aktif' => 1]);
|
||||
array_push($finalDataArray,['recno' => 0,'norujukan' => 'lama','batchno' => 0,'baki' => $lelong_data->sum('baki'),'aktif' => 1]);
|
||||
|
||||
}
|
||||
|
||||
//$data = $this->paginate($latestbatch,8);
|
||||
$data = $this->paginate($finalDataArray,8);
|
||||
|
||||
//dd($data);
|
||||
|
||||
return response()->json($data,200);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function rekodWTDByBatchNo($batchno,Request $request){
|
||||
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first();
|
||||
@@ -2724,7 +2727,7 @@ class AdminPageController extends Controller
|
||||
'prkod' => "01",
|
||||
'teller' => "DM",
|
||||
'bakipjm' => ($lel['bakipjm']) ? $lel['bakipjm'] : 0,
|
||||
'bakiupah' => $lel['bakiupah'],
|
||||
'bakiupah' => ($lel['bakiupah']) ? $lel['bakiupah'] : 0,
|
||||
'cajlain' => '0.00',
|
||||
'cajlelong' => $lel['cajlelong'],
|
||||
'kodgl' => '',
|
||||
@@ -2746,7 +2749,7 @@ class AdminPageController extends Controller
|
||||
't_jual' => $lel['t_jual'],
|
||||
'hargajual' => $lel['hargajual'],
|
||||
'pinjaman' => $lel['pinjaman'],
|
||||
'bakiupah' => $lel['bakiupah'],
|
||||
'bakiupah' => ($lel['bakiupah']) ? $lel['bakiupah'] : 0,
|
||||
'cajlelong' => $lel['cajlelong'],
|
||||
'gst_cl' => $lel['gst_cl'],
|
||||
'baki' => $lel['baki'],
|
||||
@@ -2776,6 +2779,222 @@ class AdminPageController extends Controller
|
||||
|
||||
}
|
||||
|
||||
public function janaSimulasiWTD(Request $request)
|
||||
{
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw', '=', $request->kodcaw)->first();
|
||||
|
||||
//listing sag belum tuntut cwgn
|
||||
$sag_cwgn = collect(
|
||||
Lelong::on($cawangan['mysql'])
|
||||
->selectRaw('norujukan')
|
||||
->whereYear('t_jual', $request->tahun)
|
||||
->whereNull('trkhtuntut')
|
||||
->where('baki', '>', 0)
|
||||
->pluck('norujukan') // lebih bersih
|
||||
);
|
||||
|
||||
//listing sag blocked
|
||||
$sag_online = collect(
|
||||
WTDDraft::on('mysql7')
|
||||
->selectRaw('norujukan')
|
||||
->where('kodcaw', '=', $request->kodcaw)
|
||||
->pluck('norujukan')
|
||||
);
|
||||
//dd($sag_online);
|
||||
//filter sag yg tk wujud dlm wtd_draft
|
||||
$filtersag = $sag_cwgn->diff($sag_online);
|
||||
|
||||
//query baru
|
||||
$tarikh_belum_tuntut = Lelong::on($cawangan['mysql'])
|
||||
->selectRaw('
|
||||
MONTH(t_jual) as bulan,
|
||||
SUM(pinjaman) as pembiayaan,
|
||||
ABS(SUM(baki)) as baki,
|
||||
COUNT(DISTINCT norujukan) as jumlah_norujukan,
|
||||
kodcaw
|
||||
')
|
||||
->whereIn('norujukan', $filtersag)
|
||||
->groupBy('bulan', 'kodcaw')
|
||||
->orderBy('bulan')
|
||||
->get();
|
||||
|
||||
$tarikh_belum_tuntut = $tarikh_belum_tuntut->map(function ($item) {
|
||||
$item->bulan = \Carbon\Carbon::create()->month($item->bulan)->format('F');
|
||||
return $item;
|
||||
});
|
||||
|
||||
return response()->json($tarikh_belum_tuntut);
|
||||
}
|
||||
|
||||
public function RekodSimulasiWTD(Request $request)
|
||||
{
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw', '=', $request->kodcaw)->first();
|
||||
|
||||
$rekod_simulasi = Lelong::on($cawangan['mysql'])
|
||||
->join('gadai','lelong.norujukan','=','gadai.norujukan')
|
||||
->selectRaw('ABS(lelong.baki) as baki, lelong.t_lelong, lelong.pinjaman, lelong.norujukan, gadai.nokp')
|
||||
->whereMonth('lelong.t_jual', $request->month)
|
||||
->whereYear('lelong.t_jual', $request->year)
|
||||
->whereNull('lelong.trkhtuntut')
|
||||
->where('lelong.baki', '>', 0)
|
||||
->get();
|
||||
|
||||
return response()->json($rekod_simulasi);
|
||||
}
|
||||
|
||||
public function prosesSimulasiWTD(Request $request)
|
||||
{
|
||||
$proses = $request->input;
|
||||
|
||||
// dd($proses, $cawangan);
|
||||
|
||||
$baki = 0;
|
||||
$jumlahPembiayaan = 0;
|
||||
$simulasi = WTDSimulasi::max('simulasi')+1;
|
||||
|
||||
foreach ($proses as $item) {
|
||||
WTDSimulasi::create([
|
||||
'bulan' => $item['bulan'],
|
||||
'tahun' => $item['tahun'],
|
||||
'kodcaw' => $item['kodcaw'],
|
||||
'jumlah_sag' => $item['jumlah_sag'],
|
||||
'pembiayaan'=> $item['pembiayaan'],
|
||||
'baki'=> $item['baki'],
|
||||
'simulasi' => $simulasi,
|
||||
]);
|
||||
$baki += $item['baki'];
|
||||
$jumlahPembiayaan = $item['pembiayaan'];
|
||||
}
|
||||
|
||||
return response()->json(['status' => 'success','simulasi' => $simulasi,'baki' => $baki,'pinjaman' => $jumlahPembiayaan]);
|
||||
}
|
||||
|
||||
public function pengesahanSimulasiWTD(Request $request)
|
||||
{
|
||||
// Decode the JSON records from the request
|
||||
$records = json_decode($request->records, true);
|
||||
|
||||
// Retrieve and clean 'kodcaw' from the request
|
||||
$kodcaw = $request->kodcaw;
|
||||
$kodcaw_clean = str_replace('"', '', $kodcaw);
|
||||
|
||||
// Get the database connection for the branch (cawangan)
|
||||
$cawangan = Cawangan::where('kodcaw', $kodcaw_clean)->first();
|
||||
|
||||
// Check if 'Cawangan' exists
|
||||
if (!$cawangan) {
|
||||
return response()->json(['status' => 'error', 'message' => 'Invalid branch code (kodcaw).'], 404);
|
||||
}
|
||||
|
||||
$cawangan_connection = $cawangan->mysql;
|
||||
|
||||
// Get the latest batch number and increment it
|
||||
$latestBatch = SerahBaki::on($cawangan_connection)->max('batchno') + 1;
|
||||
|
||||
// Initialize total variables
|
||||
$totalPembiayaan = 0;
|
||||
$totalBaki = 0;
|
||||
|
||||
|
||||
try {
|
||||
// Iterate through the records and save them to the WTDDraft table
|
||||
foreach ($records as $record) {
|
||||
// Check if 'bulan' and 'tahun' exist in the record
|
||||
if (!isset($record['bulan']) || !isset($record['tahun'])) {
|
||||
return response()->json(['status' => 'error', 'message' => 'Missing bulan or tahun in records.'], 400);
|
||||
}
|
||||
$month = DateTime::createFromFormat('F', $record["bulan"])->format('n');
|
||||
|
||||
|
||||
// Query norujukan records from the database
|
||||
$query_norujukan = Lelong::on($cawangan_connection)
|
||||
->join('gadai', 'lelong.norujukan', '=', 'gadai.norujukan')
|
||||
->selectRaw('ABS(lelong.baki) as baki, lelong.t_lelong, lelong.pinjaman, lelong.norujukan, gadai.nokp, lelong.t_jual')
|
||||
->whereMonth('lelong.t_jual', $month)
|
||||
->whereYear('lelong.t_jual', $record["tahun"])
|
||||
->whereNull('lelong.trkhtuntut')
|
||||
->where('lelong.baki', '>', 0)
|
||||
->get();
|
||||
|
||||
// Save each record to the WTDDraft table
|
||||
foreach ($query_norujukan as $query) {
|
||||
$wtddraft = new WTDDraft();
|
||||
$wtddraft->nokp = $query['nokp'];
|
||||
$wtddraft->kodcaw = $kodcaw_clean;
|
||||
$wtddraft->norujukan = $query['norujukan'];
|
||||
$wtddraft->t_jual = $query['t_jual'];
|
||||
$wtddraft->t_gadai = $query['t_gadai'] ?? null; // Optional: ensure 't_gadai' exists
|
||||
$wtddraft->t_lelong = $query['t_lelong'];
|
||||
$wtddraft->batchno_serah = $latestBatch;
|
||||
$wtddraft->save();
|
||||
}
|
||||
|
||||
// Accumulate totals
|
||||
$totalPembiayaan += $record['pembiayaan'] ?? 0;
|
||||
$totalBaki += $record['baki'] ?? 0;
|
||||
}
|
||||
|
||||
// Create a new record in the SerahBaki table
|
||||
SerahBaki::on($cawangan_connection)->create([
|
||||
'norujukan' => 'baru',
|
||||
'batchno' => $latestBatch,
|
||||
'hargajual' => 0.00,
|
||||
'pinjaman' => $totalPembiayaan,
|
||||
'upah' => 0.00,
|
||||
'cajlel' => 0.00,
|
||||
'gst_cl' => 0.00,
|
||||
'gst_hj' => 0.00,
|
||||
'baki' => $totalBaki,
|
||||
'tarikh' => Carbon::now()->toDateString(),
|
||||
't_jual' => Carbon::now()->toDateString(),
|
||||
'nopelanggan' => '',
|
||||
'aktif' => 0,
|
||||
]);
|
||||
|
||||
// Return a success response with the new batch number
|
||||
return response()->json(['status' => 'success', 'batchno' => $latestBatch], 200);
|
||||
|
||||
} catch (\Throwable $e) {
|
||||
// Log the error and return a failure response
|
||||
Log::error($e->getMessage());
|
||||
Log::error($e->getLine());
|
||||
return response()->json(['status' => 'error', 'message' => $e->getMessage()], 500);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function simulasiToDraft(Request $request)
|
||||
{
|
||||
$bulan = $request->bulan;
|
||||
|
||||
if (!$bulan || count($bulan) === 0) {
|
||||
return response()->json(['error' => 'Sila pilih sekurang-kurangnya satu bulan.'], 400);
|
||||
}
|
||||
|
||||
$simulasi = WTDSimulasi::whereIn('bulan', $bulan)->get();
|
||||
|
||||
if ($simulasi->isEmpty()) {
|
||||
return response()->json(['error' => 'Tiada data untuk bulan yang dipilih.'], 404);
|
||||
}
|
||||
|
||||
// foreach ($simulasi as $data) {
|
||||
// WTDDraft::create([
|
||||
// 'nokp' => $data->nokp ?? null,
|
||||
// 'kodcaw' => $data->kodcaw ?? null,
|
||||
// 'norujukan' => $data->norujukan ?? null,
|
||||
// 't_jual' => $data->t_jual ?? null,
|
||||
// 't_gadai' => $data->t_gadai ?? null,
|
||||
// 't_lelong' => $data->t_lelong ?? null,
|
||||
// 'batchno_serah' => $data->simulasi, // Simpan sebagai rujukan
|
||||
// ]);
|
||||
// }
|
||||
|
||||
dd($bulan, $simulasi);
|
||||
|
||||
return response()->json(['message' => 'Data berjaya dipindahkan ke WTD Draft!']);
|
||||
|
||||
}
|
||||
public function PenjanaanPC(Request $request){
|
||||
|
||||
$timeloni = Carbon::now();
|
||||
@@ -3227,6 +3446,8 @@ class AdminPageController extends Controller
|
||||
return response()->json($customers);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function AkruKeuntunganSebenar(Request $request){
|
||||
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first();
|
||||
@@ -3824,13 +4045,13 @@ class AdminPageController extends Controller
|
||||
|
||||
$get_imbangduga = imbangdugabackup::on($cawangan['mysql'])->where('tarikh', $lastDayOfYear)->first();
|
||||
$get_imbangduga = optional($get_imbangduga)->toArray() ?? [];
|
||||
// if(empty($get_imbangduga)){
|
||||
// $requestData = new Request([
|
||||
// 'tarikh' => $request->tarikh,
|
||||
// 'kodcaw' => $kodcaw,
|
||||
// ]);
|
||||
// $exception_case = $this->AkruKeuntunganSebenar($requestData);
|
||||
// }
|
||||
if(empty($get_imbangduga)){
|
||||
$requestData = new Request([
|
||||
'tarikh' => $request->tarikh,
|
||||
'kodcaw' => $kodcaw,
|
||||
]);
|
||||
$exception_case = $this->AkruKeuntunganSebenar($requestData)->getData();
|
||||
}
|
||||
|
||||
$backdate_keun_sebenar += isset($get_imbangduga['keun_sebenar']) ? $get_imbangduga['keun_sebenar'] : 0;
|
||||
$backdate_keun_sebenar += (float) ($exception_case ?? 0);
|
||||
@@ -3851,6 +4072,13 @@ class AdminPageController extends Controller
|
||||
if($kodcaw == '011229')
|
||||
$total -= 45390.37;
|
||||
|
||||
if($kodcaw == 'KB2')
|
||||
$total -= 64.8;
|
||||
|
||||
$total += Penyelarasan::on('mysql7')
|
||||
->where('kodcaw', $kodcaw)
|
||||
->sum(DB::raw('rugilelong + bakilelong + `lain-lain`'));
|
||||
|
||||
return response()->json($total,200);
|
||||
}
|
||||
|
||||
@@ -4022,222 +4250,4 @@ class AdminPageController extends Controller
|
||||
'result' => $status === 'completed' ? $result : null,
|
||||
]);
|
||||
}
|
||||
|
||||
//function wtd baru
|
||||
public function janaSimulasiWTD(Request $request)
|
||||
{
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw', '=', $request->kodcaw)->first();
|
||||
|
||||
//listing sag belum tuntut cwgn
|
||||
$sag_cwgn = collect(
|
||||
Lelong::on($cawangan['mysql'])
|
||||
->selectRaw('norujukan')
|
||||
->whereYear('t_jual', $request->tahun)
|
||||
->whereNull('trkhtuntut')
|
||||
->where('baki', '>', 0)
|
||||
->pluck('norujukan') // lebih bersih
|
||||
);
|
||||
|
||||
//listing sag blocked
|
||||
$sag_online = collect(
|
||||
WTDDraft::on('mysql7')
|
||||
->selectRaw('norujukan')
|
||||
->where('kodcaw', '=', $request->kodcaw)
|
||||
->pluck('norujukan')
|
||||
);
|
||||
//dd($sag_online);
|
||||
//filter sag yg tk wujud dlm wtd_draft
|
||||
$filtersag = $sag_cwgn->diff($sag_online);
|
||||
|
||||
//query baru
|
||||
$tarikh_belum_tuntut = Lelong::on($cawangan['mysql'])
|
||||
->selectRaw('
|
||||
MONTH(t_jual) as bulan,
|
||||
SUM(pinjaman) as pembiayaan,
|
||||
ABS(SUM(baki)) as baki,
|
||||
COUNT(DISTINCT norujukan) as jumlah_norujukan,
|
||||
kodcaw
|
||||
')
|
||||
->whereIn('norujukan', $filtersag)
|
||||
->groupBy('bulan', 'kodcaw')
|
||||
->orderBy('bulan')
|
||||
->get();
|
||||
|
||||
$tarikh_belum_tuntut = $tarikh_belum_tuntut->map(function ($item) {
|
||||
$item->bulan = \Carbon\Carbon::create()->month($item->bulan)->format('F');
|
||||
return $item;
|
||||
});
|
||||
|
||||
return response()->json($tarikh_belum_tuntut);
|
||||
}
|
||||
|
||||
public function RekodSimulasiWTD(Request $request)
|
||||
{
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw', '=', $request->kodcaw)->first();
|
||||
|
||||
$rekod_simulasi = Lelong::on($cawangan['mysql'])
|
||||
->join('gadai','lelong.norujukan','=','gadai.norujukan')
|
||||
->selectRaw('ABS(lelong.baki) as baki, lelong.t_lelong, lelong.pinjaman, lelong.norujukan, gadai.nokp')
|
||||
->whereMonth('lelong.t_jual', $request->month)
|
||||
->whereYear('lelong.t_jual', $request->year)
|
||||
->whereNull('lelong.trkhtuntut')
|
||||
->where('lelong.baki', '>', 0)
|
||||
->get();
|
||||
|
||||
return response()->json($rekod_simulasi);
|
||||
}
|
||||
|
||||
public function prosesSimulasiWTD(Request $request)
|
||||
{
|
||||
$proses = $request->input;
|
||||
|
||||
// dd($proses, $cawangan);
|
||||
|
||||
$baki = 0;
|
||||
$jumlahPembiayaan = 0;
|
||||
$simulasi = WTDSimulasi::max('simulasi')+1;
|
||||
|
||||
foreach ($proses as $item) {
|
||||
WTDSimulasi::create([
|
||||
'bulan' => $item['bulan'],
|
||||
'tahun' => $item['tahun'],
|
||||
'kodcaw' => $item['kodcaw'],
|
||||
'jumlah_sag' => $item['jumlah_sag'],
|
||||
'pembiayaan'=> $item['pembiayaan'],
|
||||
'baki'=> $item['baki'],
|
||||
'simulasi' => $simulasi,
|
||||
]);
|
||||
$baki += $item['baki'];
|
||||
$jumlahPembiayaan = $item['pembiayaan'];
|
||||
}
|
||||
|
||||
return response()->json(['status' => 'success','simulasi' => $simulasi,'baki' => $baki,'pinjaman' => $jumlahPembiayaan]);
|
||||
}
|
||||
|
||||
public function pengesahanSimulasiWTD(Request $request)
|
||||
{
|
||||
// Decode the JSON records from the request
|
||||
$records = json_decode($request->records, true);
|
||||
|
||||
// Retrieve and clean 'kodcaw' from the request
|
||||
$kodcaw = $request->kodcaw;
|
||||
$kodcaw_clean = str_replace('"', '', $kodcaw);
|
||||
|
||||
// Get the database connection for the branch (cawangan)
|
||||
$cawangan = Cawangan::where('kodcaw', $kodcaw_clean)->first();
|
||||
|
||||
// Check if 'Cawangan' exists
|
||||
if (!$cawangan) {
|
||||
return response()->json(['status' => 'error', 'message' => 'Invalid branch code (kodcaw).'], 404);
|
||||
}
|
||||
|
||||
$cawangan_connection = $cawangan->mysql;
|
||||
|
||||
// Get the latest batch number and increment it
|
||||
$latestBatch = SerahBaki::on($cawangan_connection)->max('batchno') + 1;
|
||||
|
||||
// Initialize total variables
|
||||
$totalPembiayaan = 0;
|
||||
$totalBaki = 0;
|
||||
|
||||
|
||||
try {
|
||||
// Iterate through the records and save them to the WTDDraft table
|
||||
foreach ($records as $record) {
|
||||
// Check if 'bulan' and 'tahun' exist in the record
|
||||
if (!isset($record['bulan']) || !isset($record['tahun'])) {
|
||||
return response()->json(['status' => 'error', 'message' => 'Missing bulan or tahun in records.'], 400);
|
||||
}
|
||||
$month = DateTime::createFromFormat('F', $record["bulan"])->format('n');
|
||||
|
||||
|
||||
// Query norujukan records from the database
|
||||
$query_norujukan = Lelong::on($cawangan_connection)
|
||||
->join('gadai', 'lelong.norujukan', '=', 'gadai.norujukan')
|
||||
->selectRaw('ABS(lelong.baki) as baki, lelong.t_lelong, lelong.pinjaman, lelong.norujukan, gadai.nokp, lelong.t_jual')
|
||||
->whereMonth('lelong.t_jual', $month)
|
||||
->whereYear('lelong.t_jual', $record["tahun"])
|
||||
->whereNull('lelong.trkhtuntut')
|
||||
->where('lelong.baki', '>', 0)
|
||||
->get();
|
||||
|
||||
// Save each record to the WTDDraft table
|
||||
foreach ($query_norujukan as $query) {
|
||||
$wtddraft = new WTDDraft();
|
||||
$wtddraft->nokp = $query['nokp'];
|
||||
$wtddraft->kodcaw = $kodcaw_clean;
|
||||
$wtddraft->norujukan = $query['norujukan'];
|
||||
$wtddraft->t_jual = $query['t_jual'];
|
||||
$wtddraft->t_gadai = $query['t_gadai'] ?? null; // Optional: ensure 't_gadai' exists
|
||||
$wtddraft->t_lelong = $query['t_lelong'];
|
||||
$wtddraft->batchno_serah = $latestBatch;
|
||||
$wtddraft->save();
|
||||
}
|
||||
|
||||
// Accumulate totals
|
||||
$totalPembiayaan += $record['pembiayaan'] ?? 0;
|
||||
$totalBaki += $record['baki'] ?? 0;
|
||||
}
|
||||
|
||||
// Create a new record in the SerahBaki table
|
||||
SerahBaki::on($cawangan_connection)->create([
|
||||
'norujukan' => 'baru',
|
||||
'batchno' => $latestBatch,
|
||||
'hargajual' => 0.00,
|
||||
'pinjaman' => $totalPembiayaan,
|
||||
'upah' => 0.00,
|
||||
'cajlel' => 0.00,
|
||||
'gst_cl' => 0.00,
|
||||
'gst_hj' => 0.00,
|
||||
'baki' => $totalBaki,
|
||||
'tarikh' => Carbon::now()->toDateString(),
|
||||
't_jual' => Carbon::now()->toDateString(),
|
||||
'nopelanggan' => '',
|
||||
'aktif' => 0,
|
||||
]);
|
||||
|
||||
// Return a success response with the new batch number
|
||||
return response()->json(['status' => 'success', 'batchno' => $latestBatch], 200);
|
||||
|
||||
} catch (\Throwable $e) {
|
||||
// Log the error and return a failure response
|
||||
Log::error($e->getMessage());
|
||||
Log::error($e->getLine());
|
||||
return response()->json(['status' => 'error', 'message' => $e->getMessage()], 500);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function simulasiToDraft(Request $request)
|
||||
{
|
||||
$bulan = $request->bulan;
|
||||
|
||||
if (!$bulan || count($bulan) === 0) {
|
||||
return response()->json(['error' => 'Sila pilih sekurang-kurangnya satu bulan.'], 400);
|
||||
}
|
||||
|
||||
$simulasi = WTDSimulasi::whereIn('bulan', $bulan)->get();
|
||||
|
||||
if ($simulasi->isEmpty()) {
|
||||
return response()->json(['error' => 'Tiada data untuk bulan yang dipilih.'], 404);
|
||||
}
|
||||
|
||||
// foreach ($simulasi as $data) {
|
||||
// WTDDraft::create([
|
||||
// 'nokp' => $data->nokp ?? null,
|
||||
// 'kodcaw' => $data->kodcaw ?? null,
|
||||
// 'norujukan' => $data->norujukan ?? null,
|
||||
// 't_jual' => $data->t_jual ?? null,
|
||||
// 't_gadai' => $data->t_gadai ?? null,
|
||||
// 't_lelong' => $data->t_lelong ?? null,
|
||||
// 'batchno_serah' => $data->simulasi, // Simpan sebagai rujukan
|
||||
// ]);
|
||||
// }
|
||||
|
||||
//dd($bulan, $simulasi);
|
||||
|
||||
return response()->json(['message' => 'Data berjaya dipindahkan ke WTD Draft!']);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@ use App\AuditCustomer;
|
||||
use Illuminate\Http\Request;
|
||||
use App\TuntutBaki;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\Anggota;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
@@ -395,66 +394,12 @@ class CustomerController extends Controller
|
||||
'nota_pekerjaan'=>$request->nota_pekerjaan,
|
||||
// 'nota_arcc'=>$request->nota_arcc,
|
||||
'telefon' => $request->telefon1,
|
||||
'telefon2' => $request->telefon2,
|
||||
'telefon2' => $request->telefon2,
|
||||
'telefon2' => $request->telefon2
|
||||
));
|
||||
|
||||
return response()->json($customer_update, 200);
|
||||
}
|
||||
|
||||
public function assignAnggota($noic, Request $request)
|
||||
{
|
||||
// Semak sama ada pelanggan wujud
|
||||
$customer = Customer::on('mysql7')
|
||||
->where('kpbaru', $noic)
|
||||
->orWhere('kplama', $noic)
|
||||
->first();
|
||||
|
||||
if (!$customer) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Pelanggan tidak dijumpai.'
|
||||
], 404);
|
||||
}
|
||||
|
||||
// Kemaskini tag_anggota
|
||||
$customer->tag_anggota = 1;
|
||||
$customer->save();
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => 'Tag anggota berjaya dikemaskini.',
|
||||
'data' => $customer
|
||||
], 200);
|
||||
}
|
||||
}
|
||||
|
||||
public function assignAnggota($noic, Request $request)
|
||||
{
|
||||
// Semak sama ada pelanggan wujud
|
||||
$customer = Customer::on('mysql7')
|
||||
->where('kpbaru', $noic)
|
||||
->orWhere('kplama', $noic)
|
||||
->first();
|
||||
|
||||
if (!$customer) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Pelanggan tidak dijumpai.'
|
||||
], 404);
|
||||
}
|
||||
|
||||
// Kemaskini tag_anggota
|
||||
$customer->tag_anggota = 1;
|
||||
$customer->save();
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => 'Tag anggota berjaya dikemaskini.',
|
||||
'data' => $customer
|
||||
], 200);
|
||||
}
|
||||
|
||||
public function customerUpdateKaunter($nokp,$kodcaw, Request $request){
|
||||
$current = Carbon::now();
|
||||
|
||||
@@ -881,22 +826,6 @@ class CustomerController extends Controller
|
||||
return response()->json($blacklist);
|
||||
}
|
||||
|
||||
public function anggotaKoperasi(Request $request){
|
||||
|
||||
$anggota = Anggota::where('noic',$request->noic)->first();
|
||||
|
||||
return response()->json($anggota);
|
||||
}
|
||||
|
||||
|
||||
public function anggotaKoperasi(Request $request){
|
||||
|
||||
$anggota = Anggota::where('noic',$request->noic)->first();
|
||||
|
||||
return response()->json($anggota);
|
||||
}
|
||||
|
||||
|
||||
public function showCustomerByEachCawangan($ic)
|
||||
{
|
||||
$cawangan_all = Cawangan::on('mysql7')->get();
|
||||
@@ -1138,41 +1067,4 @@ public function AdminsearchCustomerBySAG(Request $request)
|
||||
return response()->json($results);
|
||||
}
|
||||
|
||||
public function updateTagPdpa(Request $request)
|
||||
{
|
||||
$tarikh_cetak_pdpa = Carbon::now()->toDateString();
|
||||
|
||||
$no_ic = $request->input('no_ic');
|
||||
|
||||
$customer = Customer::where('kplama', $no_ic)
|
||||
->orWhere('kpbaru', $no_ic)
|
||||
->first();
|
||||
|
||||
if (!$customer) {
|
||||
return response()->json(['error' => 'Customer not found.'], 404);
|
||||
}
|
||||
|
||||
$customer->tag_pdpa = $request->input('tag_pdpa');
|
||||
$customer->tarikh_cetak_pdpa = $tarikh_cetak_pdpa;
|
||||
$customer->save();
|
||||
|
||||
return response()->json(['message' => 'Customer PDPA updated successfully.'], 200);
|
||||
}
|
||||
|
||||
// public function createNotaArcc($kodcaw, Request $request)
|
||||
// {
|
||||
// $current = Carbon::now();
|
||||
|
||||
// $customer = Customer::on('mysql7')->create([
|
||||
// 'kodcaw' => $kodcaw,
|
||||
// 'tarikhdaftar' => $current->toDateString(),
|
||||
// 'nota_arcc' => $request->nota_arcc,
|
||||
// 'teller' => $request->teller,
|
||||
// 'aktif' => 'A'
|
||||
// ]);
|
||||
|
||||
// return response()->json($customer, 201);
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -6,8 +6,6 @@ use App\Audit;
|
||||
use App\Mohon;
|
||||
use App\Cawangan;
|
||||
use App\Mohonid;
|
||||
use App\MohonAnggota;
|
||||
use App\Customer;
|
||||
|
||||
use Carbon\Carbon;
|
||||
|
||||
@@ -231,98 +229,6 @@ class KelulusanController extends Controller
|
||||
return response()->json($kelulusan,201);
|
||||
}
|
||||
|
||||
public function updateAnggota($kodcaw, Request $request)
|
||||
{
|
||||
$harini = Carbon::now();
|
||||
|
||||
// Dapatkan sambungan database cawangan
|
||||
$cawangan = Cawangan::on('mysql7')
|
||||
->where('kodcaw', '=', $kodcaw)
|
||||
->first();
|
||||
|
||||
if (!$cawangan) {
|
||||
return response()->json(['success' => false, 'message' => 'Kod cawangan tidak sah'], 404);
|
||||
}
|
||||
|
||||
$nokp = $request->nokp;
|
||||
$komen = $request->komenkelulusan;
|
||||
$namaoperasi = $request->namaoperasi;
|
||||
$status = $request->sahkan; // 1 = Lulus, 2 = Batal
|
||||
|
||||
// Debug log masuk
|
||||
Log::info('UpdateKelulusanAnggota triggered', [
|
||||
'kodcaw' => $kodcaw,
|
||||
'nokp' => $nokp,
|
||||
'status' => $status,
|
||||
'komen' => $komen,
|
||||
'namaoperasi' => $namaoperasi
|
||||
]);
|
||||
|
||||
// Kalau LULUS
|
||||
if ($status == 1) {
|
||||
$kelulusan = MohonAnggota::on($cawangan['mysql'])
|
||||
->where('nokp', '=', $nokp)
|
||||
->update([
|
||||
'status' => 'DILULUSKAN',
|
||||
'komen' => $komen,
|
||||
'peloperasi' => $namaoperasi,
|
||||
'datetime_pelulus' => $harini,
|
||||
'updated_at' => $harini,
|
||||
]);
|
||||
|
||||
// Update CUSTOMER di pusat (mysql7)
|
||||
Customer::on('mysql7')
|
||||
->where('kpbaru', '=', $nokp)
|
||||
->update([
|
||||
'tag_anggota' => 1,
|
||||
]);
|
||||
}
|
||||
// Kalau BATAL / TOLAK
|
||||
else if ($status == 2) {
|
||||
$kelulusan = MohonAnggota::on($cawangan['mysql'])
|
||||
->where('nokp', '=', $nokp)
|
||||
->update([
|
||||
'status' => 'DITOLAK',
|
||||
'komen' => $komen,
|
||||
'peloperasi' => $namaoperasi,
|
||||
'datetime_pelulus' => $harini,
|
||||
'updated_at' => $harini,
|
||||
]);
|
||||
} else {
|
||||
return response()->json(['success' => false, 'message' => 'Status tidak sah'], 400);
|
||||
}
|
||||
|
||||
// 🧾 Simpan audit log
|
||||
$audit = new Audit();
|
||||
$audit->users = $namaoperasi;
|
||||
$audit->actions = ($status == 1)
|
||||
? "Kelulusan anggota oleh operasi (tag_anggota=1)"
|
||||
: "Pembatalan / tolak anggota oleh operasi";
|
||||
$audit->new_data = json_encode([
|
||||
'nokp' => $nokp,
|
||||
'status' => $status,
|
||||
'komen' => $komen,
|
||||
]);
|
||||
$audit->kodcaw = $kodcaw;
|
||||
$audit->created_at = $harini;
|
||||
$audit->updated_at = $harini;
|
||||
$audit->save();
|
||||
|
||||
Log::info('Kelulusan anggota dikemas kini', [
|
||||
'nokp' => $nokp,
|
||||
'status' => $status,
|
||||
'updated_tag_anggota' => ($status == 1) ? 1 : 0
|
||||
]);
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'status' => ($status == 1) ? 'DILULUSKAN' : 'DITOLAK',
|
||||
'updated_rows' => $kelulusan
|
||||
], 200);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function updatekomen($kodcaw,$norujukan,Request $request)
|
||||
{
|
||||
$harini = Carbon::now();
|
||||
@@ -408,64 +314,6 @@ public function create(REQUEST $request,$kodcaw,$norujukan,$roles)
|
||||
return response()->json($kelulusan);
|
||||
}
|
||||
|
||||
public function createKelulusanAnggota(Request $request, $kodcaw)
|
||||
{
|
||||
try {
|
||||
$harini = Carbon::now();
|
||||
|
||||
// ✅ Dapatkan maklumat cawangan (database connection)
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw', $kodcaw)->first();
|
||||
|
||||
if (!$cawangan) {
|
||||
return response()->json(['success' => false, 'message' => 'Cawangan tidak dijumpai'], 404);
|
||||
}
|
||||
|
||||
// ✅ Simpan ke dalam model MohonAnggota
|
||||
$kelulusan = new MohonAnggota();
|
||||
$kelulusan->setConnection($cawangan['mysql']); // guna connection cawangan dinamik
|
||||
$kelulusan->tarikh = $harini->toDateString();
|
||||
$kelulusan->nokp = $request->nokp;
|
||||
$kelulusan->nama = $request->nama ?? null;
|
||||
$kelulusan->status = 'MENUNGGU OPERASI';
|
||||
$kelulusan->komen = $request->komen;
|
||||
$kelulusan->teller = $request->teller;
|
||||
$kelulusan->peloperasi = null;
|
||||
$kelulusan->created_at = $harini;
|
||||
$kelulusan->updated_at = $harini;
|
||||
$kelulusan->save();
|
||||
|
||||
// ✅ Simpan audit trail
|
||||
$audit = new Audit();
|
||||
$audit->users = $request->teller;
|
||||
$audit->actions = 'Mohon kelulusan anggota';
|
||||
$audit->new_data = json_encode(['mohon_anggota_id' => $kelulusan->id]);
|
||||
$audit->kodcaw = $kodcaw;
|
||||
$audit->created_at = $harini;
|
||||
$audit->updated_at = $harini;
|
||||
$audit->save();
|
||||
|
||||
// ✅ Return JSON response ke frontend
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => 'Permohonan kelulusan anggota berjaya dihantar kepada operasi.',
|
||||
'data' => [
|
||||
'id' => $kelulusan->id,
|
||||
'nokp' => $kelulusan->nokp,
|
||||
'status' => $kelulusan->status,
|
||||
'komen' => $kelulusan->komen,
|
||||
'teller' => $kelulusan->teller,
|
||||
],
|
||||
], 201);
|
||||
|
||||
} catch (\Throwable $th) {
|
||||
Log::error('❌ createKelulusanAnggota error: ' . $th->getMessage());
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => $th->getMessage(),
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
|
||||
//KEPOHONAN EDIT DAN HAPUS
|
||||
|
||||
public function kepohonancreate(REQUEST $request,$kodcaw,$norujukan)
|
||||
@@ -692,54 +540,6 @@ public function create(REQUEST $request,$kodcaw,$norujukan,$roles)
|
||||
return response()->json($kelulusan, 200);
|
||||
}
|
||||
|
||||
public function listKelulusanAnggota(Request $request)
|
||||
{
|
||||
$harini = Carbon::now();
|
||||
Log::info($request->all());
|
||||
$cawangan = Cawangan::on('mysql7')->get();
|
||||
|
||||
$array_kelulusan = [];
|
||||
|
||||
foreach ($cawangan as $caw) {
|
||||
|
||||
$kelulusan = MohonAnggota::on($caw['mysql'])
|
||||
->whereDate('tarikh', $harini->toDateString())
|
||||
->where(function ($query) {
|
||||
$query->where('peloperasi', '=', 0)
|
||||
->orWhereNull('peloperasi');
|
||||
})
|
||||
->orderBy('id', 'desc')
|
||||
->get();
|
||||
|
||||
if ($kelulusan->isNotEmpty()) {
|
||||
|
||||
// Kumpul semua nokp daripada senarai kelulusan
|
||||
$nokpList = $kelulusan->pluck('nokp')->unique()->toArray();
|
||||
|
||||
// Ambil semua nama daripada table customer (main DB)
|
||||
$customers = Customer::whereIn('kpbaru', $nokpList)
|
||||
->pluck('nama', 'kpbaru')
|
||||
->toArray();
|
||||
|
||||
// Masukkan nama ke dalam setiap item kelulusan
|
||||
$kelulusan = $kelulusan->map(function ($item) use ($customers) {
|
||||
$item->nama = $customers[$item->nokp] ?? '-';
|
||||
return $item;
|
||||
});
|
||||
|
||||
// Tambah ke array utama
|
||||
$array_kelulusan[] = [
|
||||
"kelulusanall" => $kelulusan,
|
||||
"cawangan" => $caw['details_caw'],
|
||||
"cawangankod" => $caw['kodcaw']
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
return response()->json($array_kelulusan, 200);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -846,8 +846,7 @@ $date = new Carbon($request->tarikh);
|
||||
$bilangan_gadai = $gadai->count();
|
||||
$bilangan_tebus = $tebus->count();
|
||||
// $bilangan_ansuran = $ansuran->count();
|
||||
//$bilangan_customer_baru = Customer::on($cawangan['mysql'])->where([['tarikhdaftar','>=',$request->mula],['tarikhdaftar','<=',$request->akhir]])->count();
|
||||
$bilangan_customer_baru = Customer::on('mysql7')->whereBetween('tarikhdaftar', [$request->mula, $request->akhir])->where('kodcaw', $request->kodcaw)->count();
|
||||
$bilangan_customer_baru = Customer::on($cawangan['mysql'])->where([['tarikhdaftar','>=',$request->mula],['tarikhdaftar','<=',$request->akhir]])->count();
|
||||
|
||||
//f
|
||||
$data_lelong = Lelong::on($cawangan['mysql'])->where([['t_jual','>=',$request->mula],['t_jual','<=',$request->akhir]])->get();
|
||||
@@ -975,11 +974,23 @@ $date = new Carbon($request->tarikh);
|
||||
|
||||
$gadaiDataKaunter = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$total_keuntunganansuran_data_kaunter)->whereNotNull('hargajualan')->pluck('norujukan');
|
||||
|
||||
// $keuntunganansuran_kaunter_query = TransaksiKeuntungan::on('mysql7')
|
||||
// ->whereIn('norujukan',$gadaiDataKaunter)
|
||||
// ->whereDate('tarikh_bayaran','>=',$request->mula)
|
||||
// ->whereDate('tarikh_bayaran','<=',$request->akhir);
|
||||
// //new update
|
||||
$keuntunganansuran_kaunter_query = TransaksiKeuntungan::on('mysql7')
|
||||
->whereIn('norujukan',$gadaiDataKaunter)
|
||||
->whereDate('tarikh_bayaran','>=',$request->mula)
|
||||
->whereDate('tarikh_bayaran','<=',$request->akhir);
|
||||
|
||||
->leftJoin('transaction as trans', function($join)
|
||||
{
|
||||
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
|
||||
})
|
||||
->whereDate('trans.created_at','>=',$request->mula)
|
||||
->whereDate('trans.created_at','<=',$request->akhir)
|
||||
->where('trans.teller','<>','Online')
|
||||
->where('trans.trans_type','=','A')
|
||||
->where('trans.kodcaw',$request->kodcaw)
|
||||
->pluck('transaksi_keuntungan.norujukan');
|
||||
|
||||
|
||||
$total_keuntunganansuran_kaunter = $keuntunganansuran_kaunter_query->sum('bayaran_keuntungan');
|
||||
@@ -1245,7 +1256,7 @@ $date = new Carbon($request->tarikh);
|
||||
array_push($atarray,[
|
||||
'tarikh' => $tarikh,
|
||||
'masa' => $masa,
|
||||
'users' => $at['users'],
|
||||
'users' => isset($at['users']) && $at['users'] !== '' ? $at['users'] : '-',
|
||||
'pelulus' => isset($atnewdata['namapelulus']) ? $atnewdata['namapelulus'] : '-',
|
||||
'actions' => $at['actions'],
|
||||
'norujukan' => $at['norujukan'],
|
||||
|
||||
@@ -605,9 +605,9 @@ class LelongController extends Controller
|
||||
|
||||
if($cawangan['tagarrahnbid'] == 1){
|
||||
if(env('APP_ENV') != 'production'){
|
||||
$link = 'https://adminbid-kopkb.erahn.com.my/api/portalApi';
|
||||
$link = 'http://niklah.arrahn.com.my/api/portalApi';
|
||||
}else{
|
||||
$link = 'https://adminbid-kopkb.erahn.com.my/api/portalApi';
|
||||
$link = 'http://adminbid.arrahn/api/portalApi';
|
||||
}
|
||||
|
||||
$lelong = Http::withOptions(['verify' => true])->get($link,[
|
||||
|
||||
@@ -203,10 +203,7 @@ class MarhunController extends Controller
|
||||
$marhun = Marhun::on($cawangan['mysql'])
|
||||
->select('marhun.norujukan','gadai.nokp','customer.nama','marhun.marhun','marhun.nota','marhun.berat','marhun.karat','marhun.harga','marhun.n_marhun','marhun.t_gadai','marhun.tag_permata', 'marhun.berat_batu_permata')
|
||||
->rightJoin('gadai', 'gadai.norujukan', '=', 'marhun.norujukan')
|
||||
->rightJoin('master_erahn.customer as customer', function($join) {
|
||||
$join->on('customer.kpbaru', '=', 'gadai.nokp')
|
||||
->orOn('customer.kplama', '=', 'gadai.nokp');
|
||||
})
|
||||
->rightJoin(config('tennant_database.master_db') . '.customer as customer', 'customer.kpbaru','=','gadai.nokp')
|
||||
->where('marhun.t_gadai','=',$tarikh)
|
||||
->orderBy('marhun.t_gadai')
|
||||
->get();
|
||||
@@ -224,10 +221,7 @@ class MarhunController extends Controller
|
||||
$marhun = Marhun::on($cawangan['mysql'])
|
||||
->select('marhun.norujukan','gadai.sttebus','gadai.pinjaman','gadai.nokp','customer.nama','marhun.marhun','marhun.nota','marhun.berat','marhun.karat','marhun.harga','marhun.n_marhun','marhun.t_gadai')
|
||||
->rightJoin('gadai', 'gadai.norujukan', '=', 'marhun.norujukan')
|
||||
->rightJoin('master_erahn.customer as customer', function($join) {
|
||||
$join->on('customer.kpbaru', '=', 'gadai.nokp')
|
||||
->orOn('customer.kplama', '=', 'gadai.nokp');
|
||||
})
|
||||
->rightJoin(config('tennant_database.master_db') . '.customer as customer', 'customer.kpbaru','=','gadai.nokp')
|
||||
->where('marhun.t_gadai','<=',$tarikh)
|
||||
->whereYear('marhun.t_gadai','=',$current->year)
|
||||
->where('gadai.sttebus','=','')
|
||||
|
||||
@@ -48,7 +48,7 @@ class GadaianController extends Controller
|
||||
$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, sum(upah12) as sum_upah_12'));
|
||||
$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)
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class MohonAnggota extends Model
|
||||
{
|
||||
protected $table = 'mohon_anggota';
|
||||
protected $connection = 'mysql7';
|
||||
|
||||
protected $fillable = [
|
||||
'tarikh', 'nokp', 'status', 'komen', 'siri', 'teller', 'pelulus', 'peloperasi'
|
||||
];
|
||||
}
|
||||
@@ -398,7 +398,7 @@ class OnePercentService
|
||||
$t_gadai = Carbon::parse($gadai->t_gadai);
|
||||
$t_bayaran = Carbon::parse($trans->tarikh_bayaran);
|
||||
|
||||
if (($t_gadai->month == $t_bayaran->month) && ($t_gadai->year == $t_bayaran->year)) {
|
||||
if ($t_gadai->month === $t_bayaran->month && $t_gadai->year === $t_bayaran->year) {
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
|
||||
@@ -9,8 +9,6 @@ use Illuminate\Http\Request as HttpRequest;
|
||||
use App\Support\v2\GadaiV2 as Version2Gadai;
|
||||
use App\Support\v2\Penebusan;
|
||||
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class OnePercent extends MasterServices
|
||||
{
|
||||
protected $kodcaw;
|
||||
@@ -63,30 +61,18 @@ class OnePercent extends MasterServices
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function getKadarUjrah(HttpRequest $request)
|
||||
{
|
||||
// Log::info('[DEBUG-CONTROLLER] Data request', [
|
||||
// 'nokp' => $request->nokp,
|
||||
// 'kodcaw' => $request->kodcaw,
|
||||
// 'nilaimarhun' => $request->nilaimarhun
|
||||
// ]);
|
||||
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw', $request->kodcaw)->first();
|
||||
public function getKadarUjrah(HttpRequest $request){
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw',$request->kodcaw)->first();
|
||||
$onePercentServices = new Calculation();
|
||||
|
||||
$kadarujrah = $onePercentServices->getKadarUjrah(
|
||||
$request->nilaimarhun,
|
||||
$cawangan['group_id'],
|
||||
$request->nokp
|
||||
);
|
||||
$kadarujrah = $onePercentServices->getKadarUjrah($request->nilaimarhun,$cawangan['group_id']);
|
||||
|
||||
return $kadarujrah;
|
||||
}
|
||||
}
|
||||
|
||||
public function getOnePercent(HttpRequest $request){
|
||||
$margin = (!is_numeric($request->margin)) ? 0 : $request->margin;
|
||||
$onePercentServices = new Calculation();
|
||||
$keuntungan = $onePercentServices->kiraanKeuntunganSebenar($request->pembiayaan,$request->nilaimarhun,$request->kadarujrah,$margin, $request->nokp);
|
||||
$keuntungan = $onePercentServices->kiraanKeuntunganSebenar($request->pembiayaan,$request->nilaimarhun,$request->kadarujrah,$margin);
|
||||
|
||||
return $keuntungan;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ namespace App\Support\v2;
|
||||
|
||||
use App\Audit;
|
||||
use App\Cawangan;
|
||||
use App\Customer;
|
||||
use App\KadarUpah;
|
||||
use App\Support\v2\Calculation;
|
||||
use Carbon\Carbon;
|
||||
@@ -58,34 +57,6 @@ class GadaiV2
|
||||
}
|
||||
}
|
||||
|
||||
private function getKadarUpahAnggota($nokp, $total_nilai_marhun = 0, $groupid = 2): ?float
|
||||
{
|
||||
if (!$nokp) {
|
||||
return null; // tiada nokp = tak boleh tentukan kadar
|
||||
}
|
||||
|
||||
$customer = Customer::on('mysql7')
|
||||
->select('tag_anggota')
|
||||
->where(function ($q) use ($nokp) {
|
||||
$q->where('kpbaru', $nokp)
|
||||
->orWhere('kplama', $nokp);
|
||||
})
|
||||
->first();
|
||||
|
||||
$customer = $customer ? $customer->toArray() : [];
|
||||
|
||||
if (isset($customer['tag_anggota']) && $customer['tag_anggota'] == 1) {
|
||||
return 0.00; // ahli — kadar 0.00 memang sah
|
||||
}
|
||||
|
||||
$kadar = KadarUpah::where('min', '<=', $total_nilai_marhun)
|
||||
->where('max', '>=', $total_nilai_marhun)
|
||||
->where('group_id', $groupid)
|
||||
->value('kadarujrah');
|
||||
|
||||
return is_null($kadar) ? null : (float) $kadar; // tak jumpa row = null (block)
|
||||
}
|
||||
|
||||
public function createMarhun($norujukan,HttpRequest $request){
|
||||
$current = Carbon::now();
|
||||
$current = new Carbon();
|
||||
@@ -111,24 +82,15 @@ class GadaiV2
|
||||
$total_nilai_marhun = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->sum('n_marhun');
|
||||
$total_berat = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->sum('berat');
|
||||
|
||||
$kadar_raw = $this->getKadarUpahAnggota($request->nokp, $total_nilai_marhun, $cawangan['group_id']);
|
||||
//query kadar upah baru
|
||||
$kadar_raw = KadarUpah::where('min','<=',$total_nilai_marhun)->where('max','>=',$total_nilai_marhun)->where('group_id',$cawangan['group_id'])->first();
|
||||
|
||||
if (is_null($kadar_raw)) {
|
||||
Log::error('[BLOCKED] Kadar upah tidak dijumpai', [
|
||||
'nokp' => $request->nokp,
|
||||
'total_nilai_marhun' => $total_nilai_marhun,
|
||||
'group_id' => $cawangan['group_id'],
|
||||
]);
|
||||
throw new \Exception("Kadar upah tidak dijumpai, transaksi dibatalkan!");
|
||||
}
|
||||
|
||||
// $kadar_raw = 0.00 (ahli) akan lepas ke sini dan diteruskan
|
||||
|
||||
// query kadar upah lama
|
||||
// $kadar_raw = KadarUpah::where('min','<=',$total_nilai_marhun)->where('max','>=',$total_nilai_marhun)->first();
|
||||
|
||||
$onepercentservices = new Calculation();
|
||||
$keuntungan = $onepercentservices->kiraanKeuntunganSebenar($request->pinjaman,$total_nilai_marhun,$kadar_raw,$margin_pinjam);
|
||||
$keuntungan = $onepercentservices->kiraanKeuntunganSebenar($request->pinjaman,$total_nilai_marhun,$kadar_raw['kadarujrah'],$margin_pinjam);
|
||||
// $upah1 = $request->pinjaman * ($kadar_raw['kadarupdah']/100);
|
||||
// $upah6 = $upah1 * 6;
|
||||
// $upah12 = $upah1 * 12;
|
||||
@@ -140,7 +102,7 @@ if (is_null($kadar_raw)) {
|
||||
|
||||
$hargajualan = $request->pinjaman + $upah12;
|
||||
|
||||
$akrual = $this->kiraupahTawarruqStokAuditUjrahOnePercent(0.5,0,$kadar_raw,$request->pinjaman,$total_nilai_marhun,$margin_pinjam);
|
||||
$akrual = $this->kiraupahTawarruqStokAuditUjrahOnePercent(0.5,0,$kadar_raw['kadarujrah'],$request->pinjaman,$total_nilai_marhun,$margin_pinjam);
|
||||
|
||||
$gadai = Gadai::on($cawangan['mysql'])
|
||||
->where('norujukan','=',$norujukan)
|
||||
@@ -148,7 +110,7 @@ if (is_null($kadar_raw)) {
|
||||
'nilaimarhun' => $total_nilai_marhun,
|
||||
'berat'=> $total_berat,
|
||||
'pinjaman' => $request->pinjaman,
|
||||
'kadarupah' => $kadar_raw,
|
||||
'kadarupah' => $kadar_raw['kadarujrah'],
|
||||
'marhun' => $request->marhun,
|
||||
'percentpinj' => $margin_pinjam,
|
||||
'teller' => $request->teller,
|
||||
@@ -169,7 +131,7 @@ if (is_null($kadar_raw)) {
|
||||
'upahdibayar' => 0.00,
|
||||
'tempohbayar' => 0.00,
|
||||
'lelong_tawarruq' => 1,
|
||||
'kadarujrah' => $kadar_raw,
|
||||
'kadarujrah' => $kadar_raw['kadarujrah'],
|
||||
'ujrah' => $ujrah,
|
||||
'onepercent' => $onepercent,
|
||||
'margin_semasa' => $margin_pinjam,
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
/cache
|
||||
@@ -23,6 +23,33 @@ $app = new Laravel\Lumen\Application(
|
||||
dirname(__DIR__)
|
||||
);
|
||||
|
||||
/*
|
||||
| Laravel's storage_path() helper resolves app('path.storage'). Lumen does not
|
||||
| register that binding by default; config files that call storage_path() at
|
||||
| load time (e.g. config/logging.php) would fail without this.
|
||||
*/
|
||||
$app->instance('path.storage', $app->storagePath());
|
||||
|
||||
/*
|
||||
| Laravel's Foundation helpers are loaded before Lumen's and win for names like
|
||||
| response() and url(). Those helpers resolve Illuminate\Contracts\* from the
|
||||
| container; Lumen only registers the "url" service, not the contracts. Map the
|
||||
| contracts to Lumen's implementations so helpers work across the app.
|
||||
*/
|
||||
$app->singleton(
|
||||
\Illuminate\Contracts\Routing\ResponseFactory::class,
|
||||
function () {
|
||||
return new \Laravel\Lumen\Http\ResponseFactory();
|
||||
}
|
||||
);
|
||||
|
||||
$app->singleton(
|
||||
\Illuminate\Contracts\Routing\UrlGenerator::class,
|
||||
function ($app) {
|
||||
return $app->make('url');
|
||||
}
|
||||
);
|
||||
|
||||
$app->withFacades();
|
||||
|
||||
$app->withEloquent();
|
||||
@@ -60,6 +87,7 @@ $app->singleton(
|
||||
*/
|
||||
|
||||
$app->configure('app');
|
||||
$app->configure('logging');
|
||||
$app->configure('tinker');
|
||||
$app->configure('tennant_database');
|
||||
$app->configure('report');
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'url' => env('APP_URL', url('/')),
|
||||
'url' => env('APP_URL', 'http://localhost'),
|
||||
'api_arrahnbid' => env('API_ARRAHNBID', 'http://lelong.test/api/'),
|
||||
'api_v3' => env('API_V3', 'http://apiv3.localhost/api/')
|
||||
];
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
|
||||
use Monolog\Handler\NullHandler;
|
||||
use Monolog\Handler\StreamHandler;
|
||||
use Monolog\Handler\SyslogUdpHandler;
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Default Log Channel
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option defines the default log channel that gets used when writing
|
||||
| messages to the logs. The name specified in this option should match
|
||||
| one of the channels defined in the "channels" configuration array.
|
||||
|
|
||||
*/
|
||||
|
||||
'default' => env('LOG_CHANNEL', 'stack'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Log Channels
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may configure the log channels for your application. Out of
|
||||
| the box, Laravel uses the Monolog PHP logging library. This gives
|
||||
| you a variety of powerful log handlers / formatters to utilize.
|
||||
|
|
||||
| Available Drivers: "single", "daily", "slack", "syslog",
|
||||
| "errorlog", "monolog", "custom", "stack"
|
||||
|
|
||||
*/
|
||||
|
||||
'channels' => [
|
||||
'stack' => [
|
||||
'driver' => 'stack',
|
||||
'channels' => ['single'],
|
||||
'ignore_exceptions' => false,
|
||||
],
|
||||
|
||||
'single' => [
|
||||
'driver' => 'single',
|
||||
'path' => storage_path('logs/laravel.log'),
|
||||
'level' => env('LOG_LEVEL', 'debug'),
|
||||
],
|
||||
|
||||
'daily' => [
|
||||
'driver' => 'daily',
|
||||
'path' => storage_path('logs/laravel.log'),
|
||||
'level' => env('LOG_LEVEL', 'debug'),
|
||||
'days' => 14,
|
||||
],
|
||||
|
||||
'slack' => [
|
||||
'driver' => 'slack',
|
||||
'url' => env('LOG_SLACK_WEBHOOK_URL'),
|
||||
'username' => 'Laravel Log',
|
||||
'emoji' => ':boom:',
|
||||
'level' => env('LOG_LEVEL', 'critical'),
|
||||
],
|
||||
|
||||
'papertrail' => [
|
||||
'driver' => 'monolog',
|
||||
'level' => env('LOG_LEVEL', 'debug'),
|
||||
'handler' => SyslogUdpHandler::class,
|
||||
'handler_with' => [
|
||||
'host' => env('PAPERTRAIL_URL'),
|
||||
'port' => env('PAPERTRAIL_PORT'),
|
||||
],
|
||||
],
|
||||
|
||||
'stderr' => [
|
||||
'driver' => 'monolog',
|
||||
'handler' => StreamHandler::class,
|
||||
'formatter' => env('LOG_STDERR_FORMATTER'),
|
||||
'with' => [
|
||||
'stream' => 'php://stderr',
|
||||
],
|
||||
],
|
||||
|
||||
'syslog' => [
|
||||
'driver' => 'syslog',
|
||||
'level' => env('LOG_LEVEL', 'debug'),
|
||||
],
|
||||
|
||||
'errorlog' => [
|
||||
'driver' => 'errorlog',
|
||||
'level' => env('LOG_LEVEL', 'debug'),
|
||||
],
|
||||
|
||||
'null' => [
|
||||
'driver' => 'monolog',
|
||||
'handler' => NullHandler::class,
|
||||
],
|
||||
|
||||
'emergency' => [
|
||||
'path' => storage_path('logs/laravel.log'),
|
||||
],
|
||||
],
|
||||
|
||||
];
|
||||
+3
-1
@@ -1,5 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'excluded_cawangan' => []
|
||||
'excluded_cawangan' => [
|
||||
'lahad datu',
|
||||
]
|
||||
];
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateAnggotaTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('anggota', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('no_anggota')->unique()->nullable(); // No keahlian
|
||||
$table->string('nama');
|
||||
$table->string('noic')->unique(); // IC wajib unik
|
||||
$table->string('no_tel')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('anggota');
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class AddStatusToAnggotaTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('anggota', function (Blueprint $table) {
|
||||
$table->tinyInteger('status')
|
||||
->default(1)
|
||||
->comment('1 = aktif, 0 = tidak aktif')
|
||||
->after('no_tel');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('anggota', function (Blueprint $table) {
|
||||
//
|
||||
$table->dropColumn('status');
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class AddTagAnggotaToCustomerTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('customer', function (Blueprint $table) {
|
||||
$table->boolean('tag_anggota')->default(0)->after('ahli');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('customer', function (Blueprint $table) {
|
||||
$table->dropColumn('tag_anggota');
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class CreateMohonAnggotaTable extends Migration
|
||||
{
|
||||
// Dapatkan semua sambungan DB aktif (kecuali mysql7 pusat)
|
||||
public function getActiveDB()
|
||||
{
|
||||
$config_db = array_keys(config("database.connections"));
|
||||
|
||||
$db_connection = array_filter($config_db, function($connection) {
|
||||
try {
|
||||
if ($connection == 'mysql7') return false; // skip pusat
|
||||
DB::connection($connection)->getPdo();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
return $db_connection;
|
||||
}
|
||||
|
||||
/**
|
||||
* Jalankan migration
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
$db_connection = $this->getActiveDB();
|
||||
|
||||
foreach ($db_connection as $dbase) {
|
||||
if (!Schema::connection($dbase)->hasTable('mohon_anggota')) {
|
||||
Schema::connection($dbase)->create('mohon_anggota', function (Blueprint $table) {
|
||||
$table->bigIncrements('id');
|
||||
$table->date('tarikh')->nullable();
|
||||
$table->string('nokp', 20)->nullable();
|
||||
$table->string('nama', 100)->nullable();
|
||||
$table->string('status', 50)->default('MENUNGGU OPERASI');
|
||||
$table->text('komen')->nullable();
|
||||
$table->string('teller', 100)->nullable();
|
||||
$table->string('peloperasi', 100)->nullable();
|
||||
$table->dateTime('datetime_pelulus')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Undur migration
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
$db_connection = $this->getActiveDB();
|
||||
|
||||
foreach ($db_connection as $dbase) {
|
||||
Schema::connection($dbase)->dropIfExists('mohon_anggota');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,77 +0,0 @@
|
||||
# Staging stack — isolated from local docker-compose.yml (8080 / 3306)
|
||||
# and from other apps on the server (unique project name + host ports).
|
||||
#
|
||||
# Local:
|
||||
# docker compose --env-file .env.staging -f docker-compose.staging.yml up -d --build
|
||||
#
|
||||
# CI (image already in registry):
|
||||
# APP_IMAGE=git.koppkb.com/KoPKB/api_arrahn IMAGE_TAG=<sha> \
|
||||
# docker compose --env-file .env.staging -f docker-compose.staging.yml up -d --no-build
|
||||
#
|
||||
# Host nginx reverse-proxies the public domain to 127.0.0.1:${HTTP_PORT}.
|
||||
# See docker/nginx/host-proxy.example.conf
|
||||
#
|
||||
# If 8090 or 3308 is already taken, set HTTP_PORT / MYSQL_PUBLISH_PORT in .env.staging.
|
||||
|
||||
name: api_arrahn_staging
|
||||
|
||||
services:
|
||||
app:
|
||||
image: ${APP_IMAGE:-api_arrahn}:${IMAGE_TAG:-staging}
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker/php/Dockerfile
|
||||
target: staging
|
||||
container_name: api_arrahn_staging_app
|
||||
working_dir: /var/www/html
|
||||
volumes:
|
||||
- storage_staging:/var/www/html/storage
|
||||
- ./.env.staging:/var/www/html/.env.staging:ro
|
||||
env_file:
|
||||
- .env.staging
|
||||
environment:
|
||||
APP_ENV: staging
|
||||
USE_STAGING_ENV: "true"
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
depends_on:
|
||||
mysql:
|
||||
condition: service_healthy
|
||||
restart: unless-stopped
|
||||
|
||||
web:
|
||||
image: nginx:1.25-alpine
|
||||
container_name: api_arrahn_staging_web
|
||||
ports:
|
||||
- "${HTTP_PORT:-8090}:80"
|
||||
volumes:
|
||||
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
|
||||
depends_on:
|
||||
- app
|
||||
restart: unless-stopped
|
||||
|
||||
mysql:
|
||||
image: mysql:8.0
|
||||
container_name: api_arrahn_staging_mysql
|
||||
command: --default-authentication-plugin=mysql_native_password
|
||||
ports:
|
||||
- "127.0.0.1:${MYSQL_PUBLISH_PORT:-3308}:3306"
|
||||
environment:
|
||||
MYSQL_DATABASE: erahn_xtra
|
||||
MYSQL_USER: xtrauser
|
||||
MYSQL_PASSWORD: password
|
||||
MYSQL_ROOT_PASSWORD: root
|
||||
volumes:
|
||||
- mysql_staging_data:/var/lib/mysql
|
||||
- ./docker/mysql/init:/docker-entrypoint-initdb.d:ro
|
||||
healthcheck:
|
||||
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-uroot", "-proot"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 30
|
||||
start_period: 20s
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
mysql_staging_data:
|
||||
storage_staging:
|
||||
@@ -3,7 +3,6 @@ services:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker/php/Dockerfile
|
||||
target: development
|
||||
working_dir: /var/www/html
|
||||
volumes:
|
||||
- ./:/var/www/html:cached
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
CREATE DATABASE IF NOT EXISTS master_erahn;
|
||||
CREATE DATABASE IF NOT EXISTS kaunter_erahn;
|
||||
|
||||
GRANT ALL PRIVILEGES ON master_erahn.* TO 'xtrauser'@'%';
|
||||
GRANT ALL PRIVILEGES ON kaunter_erahn.* TO 'xtrauser'@'%';
|
||||
GRANT ALL PRIVILEGES ON erahn_xtra.* TO 'xtrauser'@'%';
|
||||
FLUSH PRIVILEGES;
|
||||
@@ -6,19 +6,9 @@ server {
|
||||
index index.php index.html;
|
||||
|
||||
charset utf-8;
|
||||
client_max_body_size 50M;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ @php;
|
||||
}
|
||||
|
||||
location @php {
|
||||
include fastcgi_params;
|
||||
fastcgi_param SCRIPT_FILENAME /var/www/html/public/index.php;
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
fastcgi_pass app:9000;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_read_timeout 120s;
|
||||
try_files $uri $uri/ /index.php?$query_string;
|
||||
}
|
||||
|
||||
location ~ \.php$ {
|
||||
@@ -27,10 +17,10 @@ server {
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
fastcgi_pass app:9000;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_read_timeout 120s;
|
||||
}
|
||||
|
||||
location ~ /\.(?!well-known).* {
|
||||
deny all;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-23
@@ -1,4 +1,4 @@
|
||||
FROM php:7.4-fpm AS base
|
||||
FROM php:7.4-fpm
|
||||
|
||||
WORKDIR /var/www/html
|
||||
|
||||
@@ -25,27 +25,6 @@ RUN apt-get update \
|
||||
COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer
|
||||
|
||||
COPY docker/php/php.ini /usr/local/etc/php/conf.d/app.ini
|
||||
COPY docker/php/zz-clear-env.conf /usr/local/etc/php-fpm.d/zz-clear-env.conf
|
||||
COPY docker/php/entrypoint.sh /usr/local/bin/app-entrypoint.sh
|
||||
|
||||
RUN chmod +x /usr/local/bin/app-entrypoint.sh \
|
||||
&& usermod -u 1000 www-data && groupmod -g 1000 www-data
|
||||
RUN usermod -u 1000 www-data && groupmod -g 1000 www-data
|
||||
|
||||
ENTRYPOINT ["app-entrypoint.sh"]
|
||||
CMD ["php-fpm"]
|
||||
|
||||
FROM base AS staging
|
||||
|
||||
COPY --chown=www-data:www-data . /var/www/html
|
||||
|
||||
RUN composer install --no-interaction --prefer-dist --no-dev --optimize-autoloader \
|
||||
&& mkdir -p \
|
||||
storage/logs \
|
||||
storage/framework/cache/data \
|
||||
storage/framework/views \
|
||||
storage/framework/sessions \
|
||||
storage/app/public \
|
||||
bootstrap/cache \
|
||||
&& chown -R www-data:www-data storage bootstrap/cache vendor
|
||||
|
||||
FROM base AS development
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
cd /var/www/html
|
||||
|
||||
if [ "${USE_STAGING_ENV:-false}" = "true" ] && [ -f .env.staging ]; then
|
||||
cp .env.staging .env
|
||||
fi
|
||||
|
||||
if [ -f composer.json ]; then
|
||||
if [ -f vendor/autoload.php ] && [ "${USE_STAGING_ENV:-false}" = "true" ]; then
|
||||
: # vendor is baked into the staging image
|
||||
elif [ "${USE_STAGING_ENV:-false}" = "true" ]; then
|
||||
composer install --no-interaction --prefer-dist --no-dev --optimize-autoloader
|
||||
else
|
||||
composer install --no-interaction --prefer-dist
|
||||
fi
|
||||
fi
|
||||
|
||||
mkdir -p \
|
||||
storage/logs \
|
||||
storage/framework/cache/data \
|
||||
storage/framework/views \
|
||||
storage/framework/sessions \
|
||||
storage/app/public \
|
||||
bootstrap/cache
|
||||
|
||||
chown -R www-data:www-data storage bootstrap/cache
|
||||
|
||||
exec docker-php-entrypoint "$@"
|
||||
@@ -1,3 +0,0 @@
|
||||
[www]
|
||||
; Pass container env vars (from compose env_file) through to PHP workers.
|
||||
clear_env = no
|
||||
@@ -1,417 +0,0 @@
|
||||
id,nama,no_kp,telefon,no_anggota
|
||||
9,WAN ZULKIFLY B WAN MOHAMED,680509035997,010-8995997,1
|
||||
13,HASANAH MOHAMAD,740325036196,1169670585,2
|
||||
14,HASLINA HASBULLAH,630216035760,1111473265,3
|
||||
16,NURWIDAD BINTI AZLY,891020035246,134040289,4
|
||||
19,ZULAILA BINTI CHE MAT,840313035290,1137707081,5
|
||||
25,MUHAMMAD HAFIFI BIN ABD RAHMAN,970403035003,1114884900,6
|
||||
33,FARAHAIN FATIN BINTI MOHD FAUZI,940624035560,169877154,7
|
||||
45,NURHANA BINTI FARHAN,910508125764,1137425769,8
|
||||
51,CHE FAHMI AMIRUL BIN CHE MOHAMAD ZAID,930702035381,1139239497,9
|
||||
53,KELVIN @ MOHD NAJIB BIN KEREAN,900420125525,146750406,10
|
||||
55,MUHAMMAD NAZIF BIN ABDULLAH,840830025541,166892948,11
|
||||
56,SUHAIBAH BINTI JUSOH,931212035148,199128698,12
|
||||
58,ELMA HARFAZLYANA BINTI BAHAR,990827126556,198782708,13
|
||||
59,MARINAH MAZNAH BINTI AMAT @ ABD RAHMAN,961109126102,1128686033,14
|
||||
60,SITI NUR ATHIRAH BINTI ZULKIFLI,980222036786,128108084,15
|
||||
61,MOHAMAD HAFIZUL BIN SANUAR,930619036201,149246474,16
|
||||
63,MUHAMAD MUSLIM BIN MADIRAN,970326035551,179726697,17
|
||||
64,EQA NURFITRIANA BINTI ALIMUDDIN,980202126442,1112085474,18
|
||||
65,ZULKARNAIN BIN MOHD JAMAL,980203126321,1139237021,19
|
||||
68,IRFAHANNA EMIRAH BINTI MOHD ALWI,10506031090,1110311820,20
|
||||
70,NURAIN SYAFIKA BINTI BURHAN,20828030380,179016282,21
|
||||
71,NUR FADHILAH AFIFAH BINTI MOHD NAZMI,980827035268,1117821334,22
|
||||
75,MOHD HAFIZUDDIN BIN HARUN,930822115351,134986658,23
|
||||
76,MUHAMMAD AMMAR FIRDAUS BIN RIDZUAN,970826035291,109253592,24
|
||||
77,MOHAMAD AFDHAL BIN ANWAR,890818075031,012 2017437,25
|
||||
78,NOR AIN BINTI ABDULLAH AZID,920411035470,1131590164,26
|
||||
79,SITI NOORAINI BINTI LAZIM,900617025042,1140794473,27
|
||||
82,FATIN AFIQAH BINTI MOHD SHAH,920322036084,199084590,28
|
||||
84,NUR ASIAH BINTI MUHAMMAD,950324035840,010-4152116,29
|
||||
85,AHMAD NAZRI BIN ISMAIL,700601035039,199179559,30
|
||||
86,TUAN NURHAFIZA BINTI TUAN ZULKIFLI,890624035306,133925842,31
|
||||
87,MOHAMAD NAZMI BIN MOHD SUKRI,980131035999,139245295,32
|
||||
88,AMIRUL HISHAM AIMI BIN CHE AMRAN,940515035545,139622447,33
|
||||
90,MUHAMMAD HAFIZI WAJDI BIN HASSAN,951103036043,1125509097,34
|
||||
91,NUR AMIRAH BINTI ZULKIPLI,980422036502,134863252,35
|
||||
92,WAN NOR AZIAN WAN ABDUL MANAF,740428035008,179142365,36
|
||||
94,SITI MARIAM BINTI MUHAMMAD AZHAR,800123035154,199288851,37
|
||||
95,TUAN NOR DIANA BT TUAN AZHAN,940401035870,193770187,38
|
||||
96,MOHAMMAD IZFAN BIN MAT IZANI,970805036113,137884588,39
|
||||
97,NUR IZZAH IWANI BT MOHD RAZDI,970624035146,179189543,40
|
||||
98,WAN ROZARINA BT WAN ZAIN,801210035368,129616201,41
|
||||
100,SYAHADAL AUZAEAIN BIN ZULKARNAIN,961020855069,169324952,42
|
||||
101,SYARIFAH AL QURAISYAH BT SAYED MUSTAPHA,970319035596,105750423,43
|
||||
106,MOHAMAD HAFIZ BIN CHE SOH,890905035337,199720813,44
|
||||
110,NIK NUREN SYAFIKAH BT NIK MOHAMED NAZRI,950501035164,179406274,45
|
||||
121,SITI FATIMAH SALWANI BT ROSMAN,891222035658,126209004,46
|
||||
122,AHMAD AFKAR BIN MOHD NOOR,10626030957,108847563,47
|
||||
123,MOHD THAQAFI BIN SHAMSUDDIN,920409036669,179162486,48
|
||||
124,NUR AYUNI BINTI AHMAD FAUZI,971101035686,1111433401,49
|
||||
127,NOR AZILA BT CHE SOH,751005035980,1110742242,50
|
||||
153,ALILYHAYATIE BINTI MOHAMED,840101036822,123015583,51
|
||||
162,ERNINGSIH BINTI JUNAIDI,900705125262,1139238537,52
|
||||
165,FATIN NADIA BINTI ZAIDI,920114-03-6346,199405259,53
|
||||
168,ISMAIL BIN ZAKARIA,870210035359,105681405,54
|
||||
171,KAMSAH BIN LINGGISAN,870513496697,146555718,55
|
||||
179,MOHAMAD FAIZ MOHAMED ASRI,850922035543,139938243,56
|
||||
207,RAZAKI BIN MAMAT,770215035851,199178946,57
|
||||
208,HAFEIZAH BT . AB KADIR,790918035426,129897112,58
|
||||
219,MOHD HAYYUL ILTIZAM BIN OTHMAN,851018035793,133929331,59
|
||||
232,MOHD SHAHMIN BIN SA'ARI,861130295121,196438873,60
|
||||
237,MUHAMAD FARIZ BIN ABDULLAH,871004035205,179268308,61
|
||||
245,MUHAMMAD SYAKIRIN BIN MOHD AMINUDDIN,880425065327,129077963,62
|
||||
262,MOHAMED AZMI MAHMOOD,840511035443,199731345,63
|
||||
264,MOHD RAZANI A. RAHIM,670930106593,199099713,64
|
||||
272,NOROSMINI BT. MAT NOOR,821001035984,129493588,65
|
||||
280,WAN MOHAMMAD ARMANI WAN SHARIFUDIN,870119035091,189022406,66
|
||||
312,NORALINA MOHD YUSOFF,630106035380,182269464,67
|
||||
319,NOR'AINI AH KOM BT ABDULLAH,631231675058,1112301671,68
|
||||
320,AZLY BIN OTHMAN,620809035425,199598184,69
|
||||
324,FARIDAH BT. MAMAT,600813035112,139492226,70
|
||||
325,MOHD NAIM MOHAMAD,570805035441,169214503,71
|
||||
327,NUR IZZATI HUSNA BINTI ABD RAHMAN,880417035750,194166991,72
|
||||
328,NORAZERA BINTI ADIN,930513126372,143560193,73
|
||||
343,NOR AZIAH BINTI AHMAD,770716035702,129521803,74
|
||||
354,SITI ANIZA BT HARDAH,890801125848,143751889,75
|
||||
358,RUFAIDA BINTI HAJIHIL,861221125160,178317763,76
|
||||
363,MUHAMMAD AMIN BIN RIFFIN,950626035483,132747420,77
|
||||
364,MUHAMMAD RASIHI BIN ABD KARIM,830401035435,134487279,78
|
||||
366,LIYANA FARIEHA BINTI BAKHORI,960209025136,194622615,79
|
||||
367,AFA HUSNA BINTI MD RADZI,921018025748,103737560,80
|
||||
369,NOR INTAN MARLINI BT NOR AZLAN,851124035914,139269494,81
|
||||
370,NUR AIN SOFIA BINTI ROSLI,960131035018,169409127,82
|
||||
376,MOHD FAIZUL AZAHA BIN UMANAH,840502035417,199992928,83
|
||||
378,MOHD FAIZAL BIN SAFIE,871129295529,139922275,84
|
||||
380,HASWATI BINTI KARIMIN .,820421126036,1119544351,85
|
||||
381,JURINA BINTI MADAYA,880609125224,168178634,86
|
||||
383,NURFARAHIM BT MOHD OMAR,900427035418,1126220662,87
|
||||
386,SHAZRINA BINTI AZLIND,970518125682,128373831,88
|
||||
388,HASANUDDIN BIN HUSAING,980814126339,128376008,89
|
||||
390,SITI ANNA SHAHEERA BINTI ALI,921121125026,146567467,90
|
||||
397,NUR AFRINA BINTI ALIMI,990616065714,137969408,91
|
||||
398,ABDUL HALIM BIN TALIB,901025065707,1111313873,92
|
||||
399,NUR IZZATI BINTI ZULKIFLI,890123035826,178916936,93
|
||||
400,NUR LIANA SYAFIKAH BINTI SALAM,940605035186,148478780,94
|
||||
401,AHMAD SYAHMI BIN AHMAD IZANI,870828035545,1111706484,95
|
||||
402,ROZALMI BIN RAZALI,820101035629,138973594,96
|
||||
403,SHAMSURIATI BINTI HASSAN,880826035444,133605298,97
|
||||
404,MOHD AMIRRUDDIN BIN ARZAMI,840417025943,137868197,98
|
||||
405,MOHD AZIZI BIN AB RASHID,870112295165,148983787,99
|
||||
406,SUHAIRAH BINTI SULIMAN,840615036280,139463484,100
|
||||
407,MOHD FARID BIN IBRAHIM,790406035393,199499704,101
|
||||
408,MOHD FAIZUL BIN HUSSAIN,850910035837,139090920,102
|
||||
409,MOHD KHAIDIR BIN AWANG,880606035899,139742581,103
|
||||
410,NOR AZIAH BINTI AHMAD,770716-03-5702,129521803,104
|
||||
411,FATIHA BINTI CHE ABDULLAH,950102915068,129698210,105
|
||||
412,NIK ABDULLAH BIN NIK MUHAMMAD,630411035213,148125345,106
|
||||
413,MAHNUN BINTI HUSSIN,740530035352,1155061673,107
|
||||
414,SYUKRI BIN ARIFFIN,771218715013,183416221,108
|
||||
415,ARMIN BIN MANDANGAN,981019126449,169369704,109
|
||||
416,ZAID BIN ZAKARIA,670108035479,199179138,110
|
||||
417,MOHD FIRDAUS BIN MAHAMOOD,900202035513,145075069,111
|
||||
419,NORAZANI BINTI HUSAIN,721203035204,179818808,112
|
||||
420,AZURAWATY BINTI AHMAD,840821025208,175800844,113
|
||||
421,WAN RUSLAILE BINTI WAN MOHD ZAIN,841118035644,145060899,114
|
||||
422,NOOR HAFIZI BIN MOHAMAD,890922095155,1133406383,115
|
||||
423,ISMAIL BIN ZAKARIA,870201035359,010 5681405,116
|
||||
424,MOHAMMAD FARIZ BIN MUSTAPHA,850115035969,196017695,117
|
||||
425,ABDUL HAKIM BIN AHMAD AB.NASHIR,901116025225,143464266,118
|
||||
426,AZIRIN BIN RIFFIN,730605035551,199104757,119
|
||||
427,KATHERINE RUMBANG,770421125700,1139025242,120
|
||||
428,MUHAMAD SHAHARIL BIN SIDIK,860104035049,199868018,121
|
||||
429,AMIRAH FARHAN BINTI MOHD ASRI,890711035566,136246932,122
|
||||
430,MUHAMAD HAZLAN BIN RAMLI,940225036443,148030664,123
|
||||
431,MOHD FARIS BIN RUSLEE,870812035081,179119982,124
|
||||
433,RIDHUAN BIN ABDULLAH,840612125739,1116518794,125
|
||||
434,MANIAH BINTI ASUN,840331126284,105897892,126
|
||||
435,NORFISHAH BINTI MUSTAFFA,870406026294,124478826,127
|
||||
436,NOR AZIAM BINTI JUSOH,830621035488,179627003,128
|
||||
437,HAFIZUL RAHMAN BIN MOHD FAUZI,830521035683,129397958,129
|
||||
438,NIK NOR SHAHIRAH BINTI NIK YUSOFF,950923035690,109510068,130
|
||||
439,MOHAMMED SHAZWAN BIN NORDIN,850729036165,1111683685,131
|
||||
440,MOHD REDZUAN BIN SHAARANI,870710085395,179022324,132
|
||||
441,Noor Azlan bin md noor,841201035127,199034008,133
|
||||
442,SITI RAIHAN BINTI MAT SAN,890907115154,197284647,134
|
||||
443,NIK MOHAMAD HAZIM AQMAL BIN NIK ALIM AMIRAH,920609035353,104473383,135
|
||||
445,RAJA NOR AIDAH BINTI RAJA AHMAD,901012065900,139515155,136
|
||||
447,NORLIN BINTI SAIMAN,871205235350,1160575580,137
|
||||
448,MUHAMMAD KHAIRUL BIN ALI,841212035595,179484638,138
|
||||
449,ROSLINA BINTI MOHD RAMLI,820804034326,139824757,139
|
||||
450,NUR AIN FARINA PANAI ABDULLAH,870728125228,146557037,140
|
||||
451,SUZIANA BINTI YUSOF,840822035520,104568684,141
|
||||
452,KAMSAH BIN LINGGISAN,870513 49 6697,014 655 5718,142
|
||||
453,MOHD. RAMDHAN BIN WARIMIN,890430125629,109430138,143
|
||||
454,MUHAMMAD DAUD BIN ABDULLAH,930921017159,1119526732,144
|
||||
455,NIK MUHAMMAD ARASH PUTRA BIN AZIHAN,981109036041,179003770,145
|
||||
456,MUHAMMAD IQABAL ZUEL,831202035533,149404101,146
|
||||
457,MOHD FAHMI BIN MAT LUDIN,801104115567,1121039021,147
|
||||
458,MOHD ARIFIN BIN ISMAIL,680229035095,109262869,148
|
||||
461,MOHD NOR BIN OSMAN,830601035405,129247270,149
|
||||
462,NURFARAHIAH BINTI MAT JUSOH,891028035718,199403985,150
|
||||
463,NURUL NISHA BINTI MUHAMMAD,841218035676,1110948404,151
|
||||
464,MUHAMAD IZZUWAN BIN MD SHUKRI,910607035537,179515004,152
|
||||
465,NORALINA BINTI MOHD YUSOFF,630106-03-5380,018-2269464,153
|
||||
466,NUR AININA BINTI MOHAMMAD,961010036086,1119723793,154
|
||||
467,TUAN MOHD NOR NAZRIM BIN TUAN MOHAMMAD,820527115175,122428020,155
|
||||
469,MUHAMMAD FAQIH AMRI BIN JAILANI,980917035229,166138478,156
|
||||
470,SITI NOORAAINI BINTI DAUD,761026035532,129602691,157
|
||||
471,MOHAMAD DAWAWI BIN IBRAHIM,810215035505,179415892,158
|
||||
472,RAKIAH BINTI YAACOB,590208035476,145177720,159
|
||||
473,ASMA BINTI AHMAD,871129295094,135675063,160
|
||||
474,AHMAD AZIMAN BIN CHE ALIAS,970425035485,1137999991,161
|
||||
475,MOHD SYAHMIE SYAWAL BIN MOHD BAKRI,900503036069,145144451,162
|
||||
476,MARJUNI BIN MOHD ALI,840503126521,1116027090,163
|
||||
477,AINIE HAYATIE HAMAZAH,880122115024,1116168995,164
|
||||
478,MUHAMMAD IZWAN BIN IBRAHIM,890601035127,1129079797,165
|
||||
480,FARIDAH BINTI MAMAT,600813-03-5112,139492226,166
|
||||
481,MOHD SABRI BIN ABDULLAH,530502035069,199813353,167
|
||||
482,MOHD KHALID BIN ABDUL RAHMAN,630807035295,145036476,168
|
||||
483,AZMADI B. HJ. OMAR,681028035093,199803003,169
|
||||
484,RUSMAWATI MAMAT,660827035548,104559409,170
|
||||
485,AZIMAH BT. ABDULLAH,580910035282,018770 4639,171
|
||||
486,MIHAMIDAH BT. HAMAT,680930035552,1127486160,172
|
||||
488,NOR AISAH BT. RAMELI,720723035748,1115469653,173
|
||||
490,RAZAKI B. CHE OMAR,681228035207,148131565,174
|
||||
491,SULAINI BT. JAAFAR @ MAT ZIN,740628035916,199058471,175
|
||||
492,TUAN RAZAK B. TUAN MUDA,670301035817,129695589,176
|
||||
493,AMINUDDIN MD NOR,690217035097,199975353,177
|
||||
494,ROHANA MAEL,711021035730,129249968,178
|
||||
495,WAN NOR AZIAN WAN ABDUL MANAF,720428035008,179142365,179
|
||||
496,ZAILILAH BT. HASSAN,700825035062,189163000,180
|
||||
497,NARWATI BT. LUPIN,740110035874,10416116,181
|
||||
498,CHE SOH B. HASSAN,591010035935,139070565,182
|
||||
499,MOHD EZANEE B. MOHD NOOR,610916035317,199815500,183
|
||||
500,MASTURA MUHAMMAD,761003035214,139856061,184
|
||||
501,HASSAN SHUKRI B. HUSSEIN,660604035049,139026550,185
|
||||
502,MOHD RAMLI B. YAACOB,570601035001,145091165,186
|
||||
504,NIK NOOR MASTURA BT NIK SOH,750607035174,183134464,187
|
||||
506,ROSEMALIZA BT. MUHAMAD,700224035542,199092277,188
|
||||
507,ROSHAFIZA B MAMAT,800619035051,179653635,189
|
||||
508,FATIMAH BTE MAT ZIN,821025036084,139360958,190
|
||||
509,MOHD SAHARUDIN B AB RAHMAN,810310035757,1131056099,191
|
||||
510,KAMARUL IRWAN BIN ABDUL RAZAK,780508035619,199195969,192
|
||||
511,MOHD BIN YAACOB,580925115015,129623355,193
|
||||
512,ANIS ISMAIL,720504035190,199105226,194
|
||||
513,HAFEIZAH BT. AB KADIR,790918035246,129897112,195
|
||||
514,MOHD FAIZAL B. MOHAMMAD,790118035305,139521113,196
|
||||
515,KAMRUL HISAN BIN MOHD KAMSON,650127035003,139817419,197
|
||||
516,SAFINAH BT MAHAT,620212065058,189832242,198
|
||||
517,NIK JAWAHIR BT NIK ISMAIL,700602035276,129599499,199
|
||||
518,ASMAH LAILY HUSSEIN,710328035204,139636908,200
|
||||
519,W.M. AZHARI B WAN ABDULLAH,700325035605,139821822,201
|
||||
520,WAN AZKAN BIN WAN HASSAN,660304035653,199825653,202
|
||||
521,ZAITON MAT ADAM,600821035462,179631848,203
|
||||
522,WAN MOHAMED SHARIF B WAN MUSA,540704035365,199115365,204
|
||||
523,RAMELAH BINTI DERAMAN,650629035046,196953070,205
|
||||
524,NORLY BINTI DERAMAN @ IBRAHIM,691213035190,169243019,206
|
||||
525,MUHAMAD SUKRI BIN SEMAN,740906035335,179702750,207
|
||||
526,ZAILANI YAACOB,681215035179,103346695,208
|
||||
527,AMIRIZA HAMZAH,680919035447,199806158,209
|
||||
528,MUHD NASROM SHAH B. YUSUF,720208035305,199505505,210
|
||||
529,A'SRI CHE ALI,610820035873,1111255604,211
|
||||
530,FARIDAH CHE ALI,690103035478,1139190727,212
|
||||
531,ABDUL RAHMAN ALI,701112086323,129516256,213
|
||||
532,RAMILAN ABDUL RAHMAN,650207035433,199583737,214
|
||||
533,MD AZHARI ABD RAHMAN,640406035111,139676728,215
|
||||
534,NOR FAZILLAWATI MOHAMED,830720035328,199475444,216
|
||||
535,SARINA MOHD ZAIN,700926035096,137617588,217
|
||||
536,ROSELINA MOHD MAHIDDIN,651027035588,129535394,218
|
||||
537,AMRAN MOHAMAD,720417035475,199448955,219
|
||||
538,ROZIANI BT. AHAMED KAMIL,750101039848,011 26403553,220
|
||||
539,MOHD YAMIN ISMAIL,630904035043,199602549,221
|
||||
540,AZIZAH KAMARUL ZAMAN,680615035210,179594611,222
|
||||
541,MOHD FIRDAUS JAMALUDIN,880218035387,129540047,223
|
||||
542,NOR AZLIMAH RAMLI,850708035112,179722326,224
|
||||
543,MOHD AZRUL FAIZAL ABU BAKAR,821105035735,194458020,225
|
||||
544,ABDULLAH ZAWAWI BIN MAMAT,730119035695,145042276,226
|
||||
545,AZIMAT MAMAT,650501035629,148098787,227
|
||||
546,NORHAYATI YAACOB,670110035304,179191617,228
|
||||
547,MOHD NORIKHWAN BIN SHAHIMI,850216035415,179730779,229
|
||||
548,ASHAMDI ASAARI,810910035427,173332616,230
|
||||
549,NIK NABIHAH NIK YUSOFF,880923035956,172989264,231
|
||||
550,MUHAMAD BUKHARI ABD RAHIM,820112035587,129469118,232
|
||||
551,MOHD ZANI MD ZAIN,650519035491,139972365,233
|
||||
552,NURHAIDA ABD SAMAD,821230015194,139321786,234
|
||||
553,MUHAMAD FARKIAMI AB. RAHIM,761216035621,133999602,235
|
||||
554,MOHD FAIZUL AZAHA UMANAH,840502038417,199992928,236
|
||||
555,SAIDITINA AISHAH MAHAMUD,891128065084,139278425,237
|
||||
556,MOHD HAFIZ YAHAYA,820209035567,199087605,238
|
||||
557,AHMAD KHALLIFA MOHD HANAPI,870217035167,179238977,239
|
||||
558,NUR RASHIHAH SALLEH,851117035318,139089829,240
|
||||
559,NIK FADHLINEE NIK MARWAN @ NIK FAUZI,841217035308,129578497,241
|
||||
560,ROSLINA MOHD RAMLI,820804035326,139824757,242
|
||||
561,WAN RAMLAH WAN DERAMAN,770227035840,1125712878,243
|
||||
562,MOHD ROSLAN MOHD ALI,610821035779,146455992,244
|
||||
563,ZANJABILA MOHD SALEH,851020035522,199859436,245
|
||||
564,NORAI MAT DAUD,750607035262,146060678,246
|
||||
565,MARIYANI MUDA,801209035512,129900535,247
|
||||
566,ABDULLAH HAKIM AB. ALIM,821128035885,199497979,248
|
||||
567,NOR HAFIZUDIN MOHAMED,861115296249,179274383,249
|
||||
568,NORMALA MOHD NOOR,850827035270,133267027,250
|
||||
569,SHAHILLA CHE RAZALI,830131075006,145297313,251
|
||||
570,NUR IDAYU MAT NASIR,861008295152,139019799,252
|
||||
571,MOHAMED AZMI MAHMOOD,840511-03-5443,199731345,253
|
||||
572,ABDUL RAZAK OMAR,640822035671,1111929667,254
|
||||
573,MOHD EKHWAN ZAKARIA,880422065567,1151667076,255
|
||||
574,ABDUL HAFIZ NAWAWI,870526025085,176755443,256
|
||||
575,FARAH AWANIS EDRUS,831209035296,129229523,257
|
||||
576,SADEED MUHDHAR MOHD ZAIN,870621035767,139121305,258
|
||||
577,NURUL AINI HARUN,860606296396,1137504434,259
|
||||
578,WAN MOHD RAZIS WAN SUHAIMI,831220035721,139839010,260
|
||||
579,NIK LOKMAN NIK MAN,830209035013,137440221,261
|
||||
580,MOHD SHAHRUL RIDZUAN ABDULLAH,850316035383,126865723,262
|
||||
581,WAN MOHD RIDHUAN WAN MAT LUDIN,861016296219,179717099,263
|
||||
582,MOHAMAD FAIZ MOHAMED ASRI,850922-03-5543,139347720,264
|
||||
583,MUHAMMAD FERDAUS NOOR ABAS,870119065071,179704287,265
|
||||
584,NUR FARAZLIN ROSLI,880611035172,196132336,266
|
||||
585,OTHMAN BIN DAUD,740522035889,139504781,267
|
||||
586,NOOR HAFIZI BIN MOHAMMAD,890922035155,174677645,268
|
||||
587,SITI ZALEHA HARUN,840731036042,1137550567,269
|
||||
588,FATIN FAUZANA BT. MOHD RAMLI,870615035568,1110109118,270
|
||||
589,AZID @ ABDUL AZID BIN SULAIMAN,700618035799,199271623,271
|
||||
590,MOHD SHAFIK AFFANDIE BIN MAMAT,870725035323,173550586,272
|
||||
591,HAZRUL BIN HUSSIN,831219035169,139697822,273
|
||||
592,NUR ADNIN BINTI MOHAMED,830725035298,109333696,274
|
||||
593,SAMSIANA BINTI RAHENG,840808035516,199900575,275
|
||||
594,MOHD FAIZ BIN MOHD WARDI,850817035955,1111617548,276
|
||||
595,MOHD ZAIRY BIN MOHD ROSLI,810118035503,173594115,277
|
||||
596,MOHD ASRI BIN MUKHTAR,791007035681,199721640,278
|
||||
597,NORHAPIZAH BINTI MOHAMMED @ AZIZ,871120035544,199329511,279
|
||||
598,NURUL ZATUR NAJAHAH BT YUNUS,870717065020,132128673,280
|
||||
599,MOHD EZUAN BIN ISMAIL,840324035077,137745031,281
|
||||
600,CHE RUSLI BIN MUHAMMAD,721110035459,139462647,282
|
||||
601,AHMAD AMIN BIN RASHID,850606035525,104515525,283
|
||||
602,MOHD HAFIZ BIN MOHAMMAD,840515035141,129394353,284
|
||||
603,MUZANI BIN IBRAHIM,680518035841,1140297681,285
|
||||
604,WAN AZMEER BIN WAN MAHMOOD,900114035839,133136965,286
|
||||
605,KHAIRUL ANUAR BIN YAACOB,850127035333,199618159,287
|
||||
606,AZHAN BIN MAT,870802035651,199117990,288
|
||||
607,SAKRI BIN MAT NOR,720104036207,129295955,289
|
||||
608,NASRUL HAFEZ B. MAT NASIR,831220035975,1110105975,290
|
||||
609,ARJUNAIDEY AZWAR BIN AB RAHMAN,830113035019,148284946,291
|
||||
610,MOHAMAD AZIZI BIN MOHAMED NOOR,870824295657,013 9109873,292
|
||||
611,MUHAMAD HAFIZ BIN ZAKARIA,871115035873,179156428,293
|
||||
612,MUHAMMAD ARIEZ BIN AZMAN,910504035219,179808962,294
|
||||
613,MOHAMAD RIDZWAN BIN MOHAMAD,920720035749,169357949,295
|
||||
614,ATHIRAH AZRI BINTI AZMI,870619035426,179235024,296
|
||||
615,MOHD ZULFADLI BIN IBRAHIM,860216035481,1129276057,297
|
||||
616,AIDAMARNI BINTI SALLEH,810123035890,139131328,298
|
||||
617,NORMAHWATI BT BELUDTU,840301125854,198405462,299
|
||||
618,NURHUSIN BIN APAN,831010127337,178190102,300
|
||||
619,MUHAMMAD NAFIS B ZAINUDIN,870509035089,194714564,301
|
||||
620,MOHD HAFIZUL FIKRI BIN SIDI MOHAMED NOOR,880422035149,179514823,302
|
||||
621,AHMAD ZULKHAIRI BIN ZULKFLI,890910036289,102911183,303
|
||||
622,MOHD AL-AMIN BIN YUSOFF,870516295487,1133301744,304
|
||||
623,CHE KHAIRUL AZLI CHE HASHIM,920827035829,179008827,305
|
||||
624,MOHD FIRDAUS BIN MOHAMAD,850127035237,139440200,306
|
||||
625,MOHD AYUB BIN SUHAIMI,871231675069,189650520,307
|
||||
626,MD AZWAN BIN NORDIN,900826125883,109313914,308
|
||||
627,MOHD HAFIZ FAHMI BIN SAHAK,871104125355,198955381,309
|
||||
628,SITI MASHITA BINTI MARIJIN,860930495944,019 5324767,310
|
||||
629,RIDZAN NURLINA BT MOHAMED NASIR,850119065698,189160395,311
|
||||
630,MOHAMAD FURQANUL AIZAT BIN FAUZI,900728035593,1120722721,312
|
||||
631,MUHAMMAD IZZUDDIN BIN MOKHTAR,890209035333,199011095,313
|
||||
632,MOHAMAD SHAKIR BIN ABDUL MANAN,901105035591,1110630511,314
|
||||
633,NOOR SUHAILA BINTI IBRAHIM,940423035150,104164407,315
|
||||
634,SITI NORAZNI BINTI HASSAN,900515036058,145268580,316
|
||||
635,MOHD HANIF BIN MAT ROF,811107035721,129637776,317
|
||||
636,ASMARIHAN BINTI AB GHANI,880205035150,1110970931,318
|
||||
637,HADAFI BIN MOHD ZUKIPELI,890302035071,1110104559,319
|
||||
638,MOHD SHAHLAN B. ANUAR,900728035913,179872315,320
|
||||
639,MOHD FAIZAL BIN IBRAHIM,870504295017,194178298,321
|
||||
640,MOHAMMAD KHAIRULNIZAN BIN JUSOF,910218036157,179600102,322
|
||||
641,MUHAMAD HAFIZ SHAR'E BIN HANAFI,940607035497,136749495,323
|
||||
642,ROHAYA BINTI MUHAMAD,620101038014,1117932057,324
|
||||
644,MAHARI BUKHARI BIN MAT,891115035169,145161951,325
|
||||
645,MOHAMAD AZUHAIDIE BIN AHMAD,940801035677,145116331,326
|
||||
646,MOHD ZULKIFLIE BIN MOHD ZAIN,841120035977,139559841,327
|
||||
647,IRMA SYUHADA BT IBRAHIM,840229145446,139403344,328
|
||||
648,MUHAMMAD SHAKIL BIN HAMIDIN,901226035221,179864356,329
|
||||
649,MARIATI BINTI MADAN,850919125118,198122726,330
|
||||
650,NOOR ATIQAH BT AHMAD,881228125268,102025862,331
|
||||
652,WAN MANITA BT HAMAD@ WAN MOHD,890711035662,179545432,332
|
||||
653,WAN NURHAFIZOL BIN WAN MANSOR,850127035739,179676792,333
|
||||
654,LUQMAN HAKIM BIN MOHD YAHAYA,911129035421,193458235,334
|
||||
655,MUHAMAD ASYWAM BIN A'SRI,940908036063,199016835,335
|
||||
656,MOHD HISYAM KHAIRIE BIN MOHD YUSNI,900713035689,132829323,336
|
||||
657,WAN NURUL AMIRA BINTI WAN HARON,881119035132,1110764243,337
|
||||
658,MOHD ZARIM BIN MOHD ZAMRI,930609125147,143595362,338
|
||||
659,MUHAMMAD FAIZUL HAKIMI BIN MUSTAPA,880711035225,197523023,339
|
||||
660,MOHD FAHMIE BIN ZAKARIA,910721036285,1116507469,340
|
||||
661,PG. SITI KADIZAH BINTI PG. ABDULLAH,800705125272,146510936,341
|
||||
662,SAFITERI BINTI TARNO,901121125730,168137928,342
|
||||
663,MUHAMMAD KHAIRUL AMIRIN BIN MOHD ROSLI,940425036165,129536020,343
|
||||
664,NUR FAKHIRA BINTI AHMAD KAMIL,950711035138,149693382,344
|
||||
665,MUHAMMAD HAZIM BIN MOHD ASRI,950310145475,196154087,345
|
||||
666,NURUL HIDAYAH BINTI MUSTAPA@DERAMAN,910729035308,199419472,346
|
||||
667,MOHD MUSTAKIM BIN YUSOFF,850213035911,1110814060,347
|
||||
668,NORIZAN BINTI AWANG,701017035288,1137589963,348
|
||||
669,NAZIRAH BINTI MOHAMED,911116036150,179413710,349
|
||||
670,MOHD NAWITAR BIN MOHD,780825035663,179763812,350
|
||||
671,WAN NORHISHAM BIN WAN JAAFAR,700908035391,197293648,351
|
||||
672,MOHAMAD HAMIRUL BIN HALID,901202146381,195126381,352
|
||||
673,MUNAWIR BIN MD NASIR,931019125045,198449355,353
|
||||
674,MOHD FHAEIS BIN MUHAMMAD,940413035755,187730960,354
|
||||
675,SARIP BIN SALANI,881022125297,168269145,355
|
||||
676,WAN AHMAD KAMAL BIN MOHD NOR,930530036037,173267793,356
|
||||
677,ABDUL MUHAIMIN BIN AHMAD,891218036009,136444757,357
|
||||
678,NUR ALISSYA BINTI MOHD HAZMAN,941128035232,1117806234,358
|
||||
679,DATO' DR WAN ZAWAWI BIN WAN ISMAIL,610613035547,199889217,359
|
||||
680,ABDUL MUHAIMIN BIN ABDULLAH,870129295153,1128005291,360
|
||||
681,FATIN NADIA BINTI ZAIDI,920114036346,199405259,361
|
||||
682,MOHAMMAD ASWAT BIN PATEK MOHD,850514065129,129742514,362
|
||||
683,ASMADI BIN ABDUL WAHED,900702035683,139072135,363
|
||||
684,AHMAD TARZIDIE BIN AB MANAF,851223035055,0112-6018916,364
|
||||
685,NURUL ALIA BINTI MOHAMAD KAMAL,940726035326,105705470,365
|
||||
686,JUNAIDI BIN BAKRI,890128125249,1136662466,366
|
||||
687,ASHIKIN ABDULLAH,590406035258,1111420604,367
|
||||
688,NIK NUREN SYAFIKAH BT NIK MOHAMED NAZRI,950101035164,179406274,368
|
||||
689,NOORHISHAM B. SAMAT @ MAT JURI,751016125447,139449192,369
|
||||
690,NIK MOHD NASIRUDDIN BIN NIK COB,740714036093,148007363,370
|
||||
691,AB AZIZ BIN YUNUS,600410035193,199891913,371
|
||||
692,MOHAMAD HAFIZ BIN CHE SOH,890905035331,199720813,372
|
||||
693,NIK NISREEN BT MUHAMMAD FITRI,961201855068,148471010,373
|
||||
694,FAIZAL BIN MOKTAR,920721125455,1162289550,374
|
||||
695,FATHIAH BT TAIP,921127126396,1133145854,375
|
||||
696,ABD MUHAIMIN BIN TURIDI,920126855015,184664503,376
|
||||
697,MUHAMMAD HIZHAM BIN ZAKARIA,930817035701,179442383,377
|
||||
698,ZALIHA BT MD ZAIN,870215295360,173831225,378
|
||||
699,MOHD FADZLI BIN MOHD NASRAH,950712035797,1160860255,379
|
||||
700,HASWATI BT KARIMIN,820421036036,1119544351,380
|
||||
701,NURATIKAH BINTI AJANI,940111125392,196946450,381
|
||||
702,MOHD FADILLAH BIN MATLIN,930711125549,178958563,382
|
||||
704,NAFISAH BINTI MUHAMADIN,950827125784,189602088,383
|
||||
706,WAN NUR FATIN NATASYA BT W M AZHARI,970113035574,136652264,384
|
||||
707,HAZNINA AINI BINTI HASSAN,880608295176,139973524,385
|
||||
708,MUHAMAD SHAUQI BIN SHAHAPUDIN,931013036439,148340734,386
|
||||
709,NUR FARAHIM BT MOHD OMAR,900427045418,1126220662,387
|
||||
710,NORAZRINA BINTI KAMIN,921214125834,128668241,388
|
||||
711,MOHD AMIRUDDIN BIN AZAMI,840417025942,137868197,389
|
||||
712,SRI NUR FARHANA BINTI KASIM,931114086208,010 8816543,390
|
||||
713,NOR AMYLIA EZATY BT ISMAIL,980315036312,142144227,391
|
||||
714,WAN NOR IZYAN BINTI WAN HISHAM,990415105986,1140201378,392
|
||||
715,U'WAIMAR BIN ZULHAZMI,950819885011,139984700,393
|
||||
716,MUHAMMAD AMMAR BIN ISMAIL,203030737,193517702,394
|
||||
717,AMIR THAQIF THARIY BIN SHAMSUDDIN,980822036069,1114932463,395
|
||||
718,MOHD AIZAD SALIM BIN AGUS SALIM,1126121073,136613176,396
|
||||
719,FADZLYEENA BINTI SAIREN,900204126128,149550642,397
|
||||
720,NURUL AIN IZAZI BINTI ABD AZIZ,10528030056,1112908502,398
|
||||
721,ARMAN SHARIF IBRAHIM BIN HISHAMUDIN,990624106475,129018250,399
|
||||
722,MUHAMMAD AFIQ BIN HAMZAH,910130035045,1159983870,400
|
||||
723,ZULKIFLI BIN AB HAMID,850102035679,179475958,401
|
||||
724,MUHAMAD AIMAN BIN MAZLAN,990808035309,138399913,402
|
||||
725,MOHAMAD HAFIZUDIN BIN ABDUL SATAR,910917035997,139577319,403
|
||||
726,ZULIYANA BINTI TAJUDIN,911117015992,197591920,404
|
||||
727,WAN MUHAMMAD SHAHRIL BIN WAN MOHD FADZLI,970824036039,143342577,405
|
||||
728,MUHAMMAD AIMAN HAKIM BIN MOHD RODHI,961010465075,105116144,406
|
||||
729,WAM MUHAMMAD JAMALUL'AQIL BIN WAN ZAKARIA,961117036035,169315308,407
|
||||
730,MUHAMMAD YAZID BIN OSMAN,20506040041,165276449,408
|
||||
731,PUTERI NUR AISHAH BINTI WAGIMIN,20528010740,177315254,409
|
||||
732,NURFARHANA BINTI ALIRNOR,911112065034,148160691,410
|
||||
733,AHMAD SUHAIL IRFAN BIN ZAMRI,10629030979,129607215,411
|
||||
734,NUR HUSNINA BT LUKMAN,961226035322,199652655,412
|
||||
735,CHE SOH B HASSAN,591010035395,139070565,413
|
||||
736,NUR MUZIERA SHAZRINA BINTI MUHAMAD,1024030736,172604369,414
|
||||
737,FAZILA BINTI TOMAS,951226126794,1169309126,415
|
||||
738,RIDZUAN BIN AMRAN,911118125691,1173376044,416
|
||||
|
@@ -21,10 +21,6 @@ use App\Http\Controllers\TransactionOnlineTrailController;
|
||||
use App\Http\Controllers\Reports\RingkasanHarianController;
|
||||
use App\Transaction;
|
||||
|
||||
$router->get('/health', function () {
|
||||
return response()->json(['status' => 'ok']);
|
||||
});
|
||||
|
||||
$router->group(['namespace' => '\Rap2hpoutre\LaravelLogViewer'], function() use ($router) {
|
||||
$router->get('logs', 'LogViewerController@index');
|
||||
});
|
||||
@@ -63,11 +59,7 @@ $router->group(['prefix'=>'api'], function () use ($router){
|
||||
$router->put('customers/information/update/admin', ['uses' => 'CustomerController@customerUpdateAdmin']); //blh refer sini izazi
|
||||
$router->get('admin/customers/nokp/search',['uses'=>'CustomerController@showOneCustomerByICAdmin']);
|
||||
$router->get('customer/blacklist',['uses'=>'CustomerController@blacklistCustomer']);
|
||||
$router->get('customer/anggota',['uses'=>'CustomerController@anggotaKoperasi']);
|
||||
$router->get('customer/eachcawangan/{ic}',['uses'=>'CustomerController@showCustomerByEachCawangan']);
|
||||
$router->put('customers/{noic}/assign-anggota', ['uses' => 'CustomerController@assignAnggota']);
|
||||
$router->post('/customers/update-tag-pdpa', ['uses' => 'CustomerController@updateTagPdpa']);
|
||||
|
||||
//arcc
|
||||
$router->get('customer/searchbyname',['uses'=>'CustomerController@searchByName']);
|
||||
$router->get('customer/searchbygadai/{kodcaw}/{norujukan}',['uses'=>'CustomerController@AdminsearchGadai']);
|
||||
@@ -412,20 +404,15 @@ $router->group(['prefix'=>'api'], function () use ($router){
|
||||
$router->get('SenaraiDahLulus/{kodcaw}/{norujukan}',['uses'=>'KelulusanController@listdahlulus']);
|
||||
$router->get('ListLatestLulus/{kodcaw}/{norujukan}',['uses'=>'KelulusanController@listlatestlulus']);
|
||||
$router->put('UpdateKelulusan/{kodcaw}/{norujukan}',['uses'=>'KelulusanController@update']);
|
||||
$router->put('UpdateKelulusanAnggota/{kodcaw}',['uses'=>'KelulusanController@updateAnggota']);
|
||||
$router->put('UpdateKelulusanKomen/{kodcaw}/{norujukan}',['uses'=>'KelulusanController@updatekomen']);
|
||||
|
||||
$router->post('CreateKelulusan/{kodcaw}/{norujukan}/roles/{roles}',['uses'=>'KelulusanController@create']);
|
||||
$router->post('CreateKelulusanAnggota/{kodcaw}/roles/{roles}',['uses'=>'KelulusanController@createKelulusanAnggota']);
|
||||
$router->post('CreateLulus/{kodcaw}/{norujukan}',['uses'=>'KelulusanController@kepohonancreate']);
|
||||
$router->get('GetLulus/{kodcaw}/',['uses'=>'KelulusanController@kepohonangetteller']);
|
||||
$router->put('UpdateKelulusan/kepohonan/{kodcaw}/{norujukan}',['uses'=>'KelulusanController@updatekepohonankhazanah']);
|
||||
$router->get('GetLulusAll/{kodcaw}/',['uses'=>'KelulusanController@listkepohonan']);
|
||||
$router->get('ListOperasi/',['uses'=>'KelulusanController@listoperasi']);
|
||||
$router->get('ListOperasiKelulusan/',['uses'=>'KelulusanController@listoperasikelulusan']);
|
||||
$router->get('list/approval/anggota',['uses'=>'KelulusanController@listKelulusanAnggota']);
|
||||
|
||||
|
||||
|
||||
|
||||
//API REQUEST TELLER
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
/debugbar
|
||||
/framework/sessions
|
||||
Reference in New Issue
Block a user