12 Commits

150 changed files with 7103 additions and 121 deletions
+24 -6
View File
@@ -158,7 +158,6 @@ class GadaiController extends Controller
}
public function create($kodcaw,Request $request){
$master = new MasterServices($kodcaw);
$response = $master->createGadai($request);
@@ -228,11 +227,14 @@ class GadaiController extends Controller
}
public function daftarGadaiMarhun($norujukan,Request $request){
// dd("ggwp");
$master = new MasterServices($request->kodcaw);
$response = $master->createMarhunGadai($request->norujukan,$request);
public function daftarGadaiMarhun($kodcaw, $norujukan, Request $request)
{
if (\App\ShorakaTransaction::where('norujukan', $norujukan)->exists()) {
abort(409, 'Kontrak telah dihantar ke Shoraka dan tidak boleh diubah.');
}
$request->merge(['kodcaw' => $kodcaw, 'norujukan' => $norujukan]);
$master = new MasterServices($kodcaw);
$response = $master->createMarhunGadai($norujukan, $request);
return response()->json($response, 200);
}
@@ -369,6 +371,9 @@ class GadaiController extends Controller
}
public function batalGadai($kodcaw, $norujukan,Request $request){
if (\App\ShorakaTransaction::where('norujukan', $norujukan)->exists()) {
abort(409, 'Transaksi Shoraka telah dihantar. Semakan operasi diperlukan sebelum pembatalan.');
}
$current = Carbon::now();
$current = new Carbon();
@@ -406,6 +411,11 @@ class GadaiController extends Controller
}
public function pembelianKomuditi($kodcaw,$norujukan){
if (\App\ShorakaTransaction::where('norujukan', $norujukan)->exists()
|| !\App\KomuditiTransaksi::on('mysql7')->where('norujukan', $norujukan)->exists()) {
app(\App\Services\ShorakaGadaiService::class)->assertCompleted($kodcaw, $norujukan);
}
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$gadai = Gadai::on($cawangan['mysql'])
@@ -418,6 +428,10 @@ class GadaiController extends Controller
}
public function cetakSAG($kodcaw,$norujukan,Request $request){
if (\App\ShorakaTransaction::where('norujukan', $norujukan)->exists()) {
app(\App\Services\ShorakaGadaiService::class)->assertCompleted($kodcaw, $norujukan);
}
$harini = Carbon::now();
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
@@ -442,6 +456,10 @@ class GadaiController extends Controller
}
public function serahMarhun($kodcaw,$norujukan){
if (\App\ShorakaTransaction::where('norujukan', $norujukan)->exists()) {
app(\App\Services\ShorakaGadaiService::class)->assertCompleted($kodcaw, $norujukan);
}
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$gadai = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
+14 -28
View File
@@ -120,6 +120,9 @@ class KomuditiController extends Controller
}
public function updateKomuditi(Request $request){
if (\App\ShorakaTransaction::where('norujukan', $request->norujukan)->exists()) {
abort(409, 'Transaksi Shoraka memerlukan semakan operasi; stok lama tidak boleh diubah.');
}
$current = Carbon::now();
$current = new Carbon();
@@ -141,37 +144,20 @@ class KomuditiController extends Controller
return response()->json($komuditi_transaksi);
}
public function transaksiKomuditi(Request $request){
$current = Carbon::now();
$current = new Carbon();
$komuditi_current = KomuditiPurchase::on('mysql7')->where('date_purchase','=',$current->toDateString())->orderBy('created_at','desc')->first();
$unit_current = $komuditi_current['unit_komuditi'];
$update_unit = $unit_current - $request->unit_komuditi;
$unit_current = round((float) $komuditi_current['unit_komuditi'], 2);
$unit_komuditi = round((float) $request->unit_komuditi, 2);
$update_unit = round($unit_current - $unit_komuditi, 2);
$update_komuditi = KomuditiPurchase::on('mysql7')->where('id','=',$komuditi_current['id'])->update([
'unit_komuditi' => $update_unit
]);
$komuditi_transaksi = KomuditiTransaksi::on('mysql7')->create([
'unit_komuditi' => $unit_komuditi,
'nosijil'=>$komuditi_current['no_sijil'],
'norujukan' => $request->norujukan,
'kodcaw' => $request->kodcaw ,
'teller' => $request->teller ,
'masa' => $current->toTimeString(),
'tarikh' => $current->toDateString()
]);
return response()->json($komuditi_transaksi);
public function transaksiKomuditi(Request $request)
{
$this->validate($request, ['kodcaw' => 'required|string', 'norujukan' => 'required|string']);
return app(ShorakaGadaiController::class)->submitGadai(
$request->kodcaw, $request->norujukan,
app(\App\Services\ShorakaGadaiService::class),
app(\App\Services\ShorakaService::class)
);
}
public function batalKomuditi(Request $request){
if (\App\ShorakaTransaction::where('norujukan', $request->norujukan)->exists()) {
abort(409, 'Transaksi Shoraka memerlukan semakan operasi; stok lama tidak boleh diubah.');
}
$komuditi_current = KomuditiPurchase::on('mysql7')->orderBy('created_at','desc')->first();
+14
View File
@@ -59,6 +59,11 @@ class MarhunController extends Controller
public function create($kodcaw,Request $request)
{
$order = \App\ShorakaTransaction::where('norujukan', $request->norujukan)->first();
if ($order) {
abort(409, 'Kontrak Shoraka telah dihantar dan tidak boleh diubah.');
}
$current = Carbon::now();
$current = new Carbon();
@@ -127,6 +132,10 @@ class MarhunController extends Controller
public function deletemarhun($kodcaw,$norujukan,Request $request)
{
$order = \App\ShorakaTransaction::where('norujukan', $norujukan)->first();
if ($order) {
abort(409, 'Kontrak Shoraka telah dihantar dan tidak boleh diubah.');
}
$current = Carbon::now();
$current = new Carbon();
@@ -152,6 +161,11 @@ class MarhunController extends Controller
public function editmarhun($kodcaw,$norujukan,Request $request)
{
$order = \App\ShorakaTransaction::where('norujukan', $norujukan)->first();
if ($order) {
abort(409, 'Kontrak Shoraka telah dihantar dan tidak boleh diubah.');
}
$current = Carbon::now();
$current = new Carbon();
+291
View File
@@ -0,0 +1,291 @@
<?php
namespace App\Http\Controllers;
use App\ShorakaTransaction;
use App\Services\ShorakaService;
use Carbon\Carbon;
use Illuminate\Database\QueryException;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use Throwable;
class ShorakaController extends Controller
{
public function index(Request $request)
{
$this->validate($request, [
'kodcaw' => 'nullable|string|max:30',
'norujukan' => 'nullable|string|max:100',
'status' => 'nullable|string|max:30',
'date_from' => 'nullable|date_format:Y-m-d',
'date_to' => 'nullable|date_format:Y-m-d',
'per_page' => 'nullable|integer|min:1|max:100',
'page' => 'nullable|integer|min:1',
'branch_scope' => 'nullable|string|max:30',
]);
$query = ShorakaTransaction::query();
foreach (['kodcaw', 'norujukan', 'status'] as $field) {
if ($request->filled($field)) {
$query->where($field, $request->input($field));
}
}
if ($request->filled('date_from')) {
$query->where('created_at', '>=', $request->input('date_from') . ' 00:00:00');
}
if ($request->filled('date_to')) {
$query->where('created_at', '<', Carbon::parse($request->input('date_to'))->addDay()->format('Y-m-d') . ' 00:00:00');
}
$records = $query->orderByDesc('created_at')->orderByDesc('id')
->paginate(min(100, max(1, (int) $request->input('per_page', 25))));
$payload = [
'data' => $records->getCollection()->map(function (ShorakaTransaction $record) {
return [
'id' => $record->id,
'kodcaw' => $record->kodcaw,
'norujukan' => $record->norujukan,
'teller' => $record->teller,
'status' => $record->status,
'order_id' => $record->order_id,
'created_at' => optional($record->created_at)->toDateTimeString(),
'updated_at' => optional($record->updated_at)->toDateTimeString(),
];
})->values(),
'total' => $records->total(),
'current_page' => $records->currentPage(),
'per_page' => $records->perPage(),
'last_page' => $records->lastPage(),
];
if ($request->input('with_branches')) {
$branches = ShorakaTransaction::query()->whereNotNull('kodcaw');
if ($request->filled('branch_scope')) {
$branches->where('kodcaw', $request->input('branch_scope'));
}
$payload['branches'] = $branches->distinct()->orderBy('kodcaw')->pluck('kodcaw')->values();
}
return response()->json($payload);
}
public function submit(Request $request, ShorakaService $shoraka)
{
$validated = $this->validate($request, [
'norujukan' => 'required|string|max:255',
'ownership' => 'required|string|max:255',
'order_amount' => 'required|numeric|min:0.01|max:9999999999999.99',
'murabaha_amount' => 'required|numeric|min:0.01|max:9999999999999.99',
'tenor_other' => 'required|integer|min:1',
'teller' => 'nullable|string|max:255',
]);
if (!$shoraka->configured()) {
return $this->unconfigured();
}
$existing = ShorakaTransaction::where('norujukan', $validated['norujukan'])->first();
if ($existing) {
return $this->duplicate($existing);
}
$payload = [
'product_type' => 'FINANCING',
'commodity_type' => '000-COPPER',
'ownership' => $validated['ownership'],
'ownership_doc_no' => $validated['norujukan'],
'value_date' => Carbon::now()->format('d/m/Y'),
'order_currency' => 'MYR',
'order_amount' => number_format((float) $validated['order_amount'], 2, '.', ''),
'murabaha_amount' => number_format((float) $validated['murabaha_amount'], 2, '.', ''),
// Appendix codes in v1.5: OTHERS and MONTH.
'tenor' => 'OTHERS',
'tenor_other' => $validated['tenor_other'],
'tenor_other_unit' => 'MONTH',
'order_type' => 'Buy & Sell',
];
try {
// The unique norujukan index is the atomic claim for concurrent submissions.
$attributes = [
'norujukan' => $validated['norujukan'],
'kodcaw' => $request->attributes->get('shoraka_kodcaw'),
'teller' => $validated['teller'] ?? null,
'status' => 'PENDING',
'product_type' => $payload['product_type'],
'commodity_type' => $payload['commodity_type'],
'ownership_name' => $payload['ownership'],
'ownership_doc_no' => $payload['ownership_doc_no'],
'order_amount' => $payload['order_amount'],
'murabaha_amount' => $payload['murabaha_amount'],
'request_payload' => $payload,
'attempt_count' => 1,
];
$transaction = ShorakaTransaction::create($attributes);
} catch (QueryException $exception) {
$existing = ShorakaTransaction::where('norujukan', $validated['norujukan'])->first();
if ($existing) {
return $this->duplicate($existing);
}
throw $exception;
}
try {
$response = $shoraka->submitOrder($payload);
$this->saveOrder($transaction, $response);
return response()->json([
'success' => true,
'message' => 'Order berjaya dihantar ke Shoraka.',
'data' => $this->orderData($transaction),
]);
} catch (Throwable $exception) {
// A timeout or invalid response does not prove the remote trade failed.
// Block resubmission until this reference has been reconciled with Shoraka.
$transaction->update([
'status' => $transaction->order_id ? $transaction->status : 'UNKNOWN',
'error_message' => 'Submission outcome requires reconciliation with Shoraka.',
]);
return $this->upstreamError('submit', $transaction, $exception);
}
}
public function refresh(string $norujukan, ShorakaService $shoraka)
{
if (!$shoraka->configured()) {
return $this->unconfigured();
}
$transaction = ShorakaTransaction::where('norujukan', $norujukan)->firstOrFail();
if (!$transaction->order_id) {
return $this->missingOrderId();
}
try {
$response = $shoraka->orderStatus($transaction->order_id);
$this->saveOrder($transaction, $response);
return response()->json(['success' => true, 'data' => $this->orderData($transaction)]);
} catch (Throwable $exception) {
return $this->upstreamError('status', $transaction, $exception);
}
}
public function certificate(string $norujukan, ShorakaService $shoraka)
{
if (!$shoraka->configured()) {
return $this->unconfigured();
}
$transaction = ShorakaTransaction::where('norujukan', $norujukan)->firstOrFail();
if (!$transaction->order_id) {
return $this->missingOrderId();
}
try {
$pdf = $shoraka->certificate($transaction->order_id);
return response($pdf, 200, [
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment; filename="shoraka-' . $transaction->id . '.pdf"',
'Cache-Control' => 'private, no-store',
]);
} catch (Throwable $exception) {
return $this->upstreamError('certificate', $transaction, $exception);
}
}
public function callback(Request $request, ShorakaService $shoraka)
{
if (!$shoraka->configured()) {
return $this->unconfigured();
}
$payload = $request->json()->all();
if (!$shoraka->validCallback($payload)) {
return response()->json(['success' => false, 'message' => 'Invalid callback signature.'], 401);
}
// ownershipDocNo and certificateUrl are NOT signed. Never use them to link
// a callback to a local record or download a file.
$transaction = ShorakaTransaction::where('order_id', $payload['orderId'])->first();
if (!$transaction) {
return response()->json(['success' => false, 'message' => 'Order not found.'], 404);
}
try {
// There is no signed callback timestamp. Query the current order so a
// delayed/replayed callback cannot directly restore an old status.
$response = $shoraka->orderStatus($transaction->order_id);
unset($payload['signature']);
$this->saveOrder($transaction, $response, ['callback_payload' => $payload]);
// Exact acknowledgement required by section 6.
return response('OK', 200, ['Content-Type' => 'text/plain']);
} catch (Throwable $exception) {
return $this->upstreamError('callback', $transaction, $exception);
}
}
protected function saveOrder(ShorakaTransaction $transaction, array $response, array $extra = []): void
{
$transaction->update(array_merge([
'order_id' => (string) $response['orderId'],
'status' => $response['status'],
'certificate_url' => $response['certificateUrl'] ?? null,
'response_payload' => $response,
'submitted_at' => $transaction->submitted_at ?: Carbon::now(),
'completed_at' => $response['status'] === 'Completed'
? ($transaction->completed_at ?: Carbon::now()) : $transaction->completed_at,
'error_message' => null,
], $extra));
app(\App\Services\ShorakaGadaiService::class)->sync($transaction);
}
protected function orderData(ShorakaTransaction $transaction): array
{
return [
'norujukan' => $transaction->norujukan,
'kodcaw' => $transaction->kodcaw,
'teller' => $transaction->teller,
'order_id' => $transaction->order_id,
'status' => $transaction->status,
'certificate_url' => $transaction->certificate_url,
];
}
protected function duplicate(ShorakaTransaction $transaction)
{
return response()->json([
'success' => false,
'message' => 'Transaksi telah direkodkan. Semak status dengan Shoraka sebelum penghantaran semula.',
'data' => $this->orderData($transaction),
], 409);
}
protected function missingOrderId()
{
return response()->json([
'success' => false,
'message' => 'Order ID belum tersedia. Semakan dengan Shoraka diperlukan.',
], 409);
}
protected function unconfigured()
{
return response()->json([
'success' => false,
'message' => 'API ID dan Secret Key Shoraka belum dikonfigurasi.',
], 503);
}
protected function upstreamError(string $operation, ShorakaTransaction $transaction, Throwable $exception)
{
// Connection exceptions may include request details; log only the class.
Log::error('Shoraka request failed', [
'operation' => $operation,
'transaction_id' => $transaction->id,
'exception_type' => get_class($exception),
]);
return response()->json([
'success' => false,
'message' => 'Permintaan Shoraka gagal. Semak status transaksi sebelum mencuba semula.',
], 502);
}
}
@@ -0,0 +1,76 @@
<?php
namespace App\Http\Controllers;
use App\KomuditiTransaksi;
use App\Services\ShorakaGadaiService;
use App\Services\ShorakaService;
use Illuminate\Http\Request;
class ShorakaGadaiController extends ShorakaController
{
public function readiness(ShorakaService $shoraka)
{
try {
\App\ShorakaTransaction::query()->limit(1)->exists();
$storeReady = true;
} catch (\Throwable $exception) {
$storeReady = false;
}
return response()->json(['provider' => 'shoraka', 'ready' => $storeReady && $shoraka->configured()]);
}
public function showGadai(string $kodcaw, string $norujukan, ShorakaGadaiService $gadaiService)
{
$gadai = $gadaiService->gadai($kodcaw, $norujukan);
$order = $gadaiService->transaction($kodcaw, $norujukan);
return response()->json([
'success' => true,
'data' => [
'norujukan' => $norujukan, 'kodcaw' => $kodcaw,
'order_amount' => $gadai->pinjaman, 'murabaha_amount' => $gadai->hargajualan,
'order' => $order ? $this->orderData($order) : null,
'details' => $order ? $order->response_payload : null,
'simulation' => $order && strpos((string) $order->order_id, 'SIM-') === 0,
'can_complete' => $gadai->exists && $order && $order->status === 'Completed'
&& number_format((float) $gadai->pinjaman, 2, '.', '') === $order->order_amount
&& number_format((float) $gadai->hargajualan, 2, '.', '') === $order->murabaha_amount,
],
]);
}
public function submitGadai(string $kodcaw, string $norujukan, Request $request, ShorakaGadaiService $gadaiService, ShorakaService $shoraka)
{
$gadai = $gadaiService->gadai($kodcaw, $norujukan);
$existing = $gadaiService->transaction($kodcaw, $norujukan);
if ($existing) {
return $this->duplicate($existing);
}
// Historical commodity purchases must never be traded again.
if (KomuditiTransaksi::on('mysql7')->where('norujukan', $norujukan)->exists()
|| $gadai->cetak || $gadai->sttebus) {
abort(409, 'Gadaian lama atau telah selesai tidak boleh dihantar sebagai order baharu.');
}
$payload = $gadaiService->payload($gadai);
$teller = $request->input('teller');
if (is_string($teller) && $teller !== '') {
$payload['teller'] = $teller;
}
$submission = new Request($payload);
$submission->attributes->set('shoraka_kodcaw', $kodcaw);
return $this->submit($submission, $shoraka);
}
public function refreshGadai(string $kodcaw, string $norujukan, ShorakaGadaiService $gadaiService, ShorakaService $shoraka)
{
$gadaiService->gadai($kodcaw, $norujukan);
$gadaiService->transaction($kodcaw, $norujukan);
return $this->refresh($norujukan, $shoraka);
}
public function certificateGadai(string $kodcaw, string $norujukan, ShorakaGadaiService $gadaiService, ShorakaService $shoraka)
{
$gadaiService->assertCompleted($kodcaw, $norujukan);
return $this->certificate($norujukan, $shoraka);
}
}
+77
View File
@@ -0,0 +1,77 @@
<?php
namespace App\Services;
use App\Cawangan;
use App\Customer;
use App\Gadai;
use App\ShorakaTransaction;
use Illuminate\Validation\ValidationException;
class ShorakaGadaiService
{
public function gadai(string $kodcaw, string $norujukan): Gadai
{
$branch = Cawangan::on('mysql7')->where('kodcaw', $kodcaw)->firstOrFail();
return Gadai::on($branch->mysql)->where('kodcaw', $kodcaw)->where('norujukan', $norujukan)->first()
?? abort(404, 'Maklumat gadaian tidak tersedia. Semakan diperlukan.');
}
public function payload(Gadai $gadai): array
{
$customer = Customer::on('mysql7')->where(function ($query) use ($gadai) {
$query->where('kpbaru', $gadai->nokp)->orWhere('kplama', $gadai->nokp);
})->firstOrFail();
if (!$customer->nama || $gadai->pinjaman <= 0 || $gadai->hargajualan < $gadai->pinjaman) {
throw ValidationException::withMessages([
'norujukan' => 'Nama pelanggan, pembiayaan dan harga jualan mesti lengkap.',
]);
}
return [
'norujukan' => $gadai->norujukan,
'ownership' => $customer->nama,
'order_amount' => $gadai->pinjaman,
'murabaha_amount' => $gadai->hargajualan,
// Both GadaiV1 and GadaiV2 price the contract using upah12.
// "tempoh" is elapsed charge time, NOT the contractual tenor.
'tenor_other' => 12,
];
}
public function transaction(string $kodcaw, string $norujukan)
{
$order = ShorakaTransaction::where('norujukan', $norujukan)->first();
if ($order && (string) $order->kodcaw !== $kodcaw) {
abort(409, 'Rekod Shoraka tidak dipadankan dengan cawangan ini.');
}
return $order;
}
public function sync(ShorakaTransaction $order): void
{
if (!$order->kodcaw) {
return;
}
$gadai = $this->gadai($order->kodcaw, $order->norujukan);
if (!$gadai->exists) {
return;
}
$sameAmounts = number_format((float) $gadai->pinjaman, 2, '.', '') === $order->order_amount
&& number_format((float) $gadai->hargajualan, 2, '.', '') === $order->murabaha_amount;
$gadai->getConnection()->table('gadai')->where('norujukan', $order->norujukan)->update([
'tagkomuditi' => $order->status === 'Completed' && $sameAmounts ? 1 : 0,
]);
}
public function assertCompleted(string $kodcaw, string $norujukan): void
{
$gadai = $this->gadai($kodcaw, $norujukan);
$order = $this->transaction($kodcaw, $norujukan);
if (!$gadai->exists || !$order || $order->status !== 'Completed'
|| number_format((float) $gadai->pinjaman, 2, '.', '') !== $order->order_amount
|| number_format((float) $gadai->hargajualan, 2, '.', '') !== $order->murabaha_amount) {
abort(409, 'Pembiayaan dan SAG ditahan sehingga transaksi Shoraka selesai dan amaun sepadan.');
}
}
}
+220
View File
@@ -0,0 +1,220 @@
<?php
namespace App\Services;
use Illuminate\Http\Client\Response;
use Illuminate\Support\Facades\Http;
use RuntimeException;
class ShorakaService
{
const STATUSES = ['Active', 'Completed', 'Cancelled', 'Pending Sell', 'Take Delivery'];
const CALLBACK_FIELDS = [
'orderId', 'status', 'bankName', 'ownershipName', 'commodityType',
'unit', 'volume', 'productType', 'valueDate', 'cancelDate', 'orderType',
'orderCurrency', 'orderAmount', 'murabahaAmount', 'tenor',
'tenorOther', 'tenorOtherUnit',
];
protected $baseUrl;
protected $apiId;
protected $secretKey;
protected $timeout;
public function __construct()
{
$this->baseUrl = rtrim((string) config('services.shoraka.base_url'), '/');
$this->apiId = (string) config('services.shoraka.api_id');
$this->secretKey = (string) config('services.shoraka.secret_key');
$this->timeout = (int) config('services.shoraka.timeout', 60);
}
public function configured(): bool
{
if ($this->simulationRequested()) {
return $this->simulationAllowed() && in_array($this->simulationMode(), ['failed', 'pending'], true);
}
return $this->apiId !== '' && $this->secretKey !== '';
}
protected function simulationAllowed(): bool
{
return app()->environment('local', 'testing');
}
protected function simulationMode(): string
{
return strtolower(trim((string) config('services.shoraka.simulation', 'off')));
}
protected function simulationRequested(): bool
{
return !in_array($this->simulationMode(), ['', 'off'], true);
}
private function simulatedResponse(string $orderId): array
{
if (!$this->simulationAllowed()) {
throw new RuntimeException('Shoraka simulation is restricted to local/testing.');
}
if (strpos($orderId, 'SIM-FAILED-') === 0) {
return ['orderId' => $orderId, 'status' => 'Cancelled'];
}
if (strpos($orderId, 'SIM-PENDING-') === 0) {
return ['orderId' => $orderId, 'status' => 'Active'];
}
throw new RuntimeException('Invalid simulation order ID.');
}
public function submitOrder(array $data): array
{
if ($this->simulationRequested()) {
if (!$this->simulationAllowed() || !in_array($this->simulationMode(), ['failed', 'pending'], true)) {
throw new RuntimeException('Shoraka simulation configuration is not allowed.');
}
return $this->simulatedResponse('SIM-' . strtoupper($this->simulationMode()) . '-' . bin2hex(random_bytes(12)));
}
$payload = ['api_id' => $this->apiId];
foreach ([
'product_type', 'commodity_type', 'ownership', 'value_date',
'order_currency', 'order_amount', 'murabaha_amount', 'tenor',
'tenor_other', 'tenor_other_unit', 'order_type', 'ownership_doc_no',
] as $field) {
$payload[$field] = $data[$field] ?? '';
}
foreach (['order_amount', 'murabaha_amount'] as $field) {
$payload[$field] = number_format((float) $payload[$field], 2, '.', '');
}
// ownership_doc_no is deliberately excluded by the v1.5 signature contract.
$signed = $payload;
unset($signed['api_id'], $signed['ownership_doc_no']);
$payload['signature'] = $this->signature(array_values($signed));
return $this->orderResponse($this->request()->post(
$this->baseUrl . '/api/submitorder', $payload
));
}
public function orderStatus(string $orderId): array
{
if (strpos($orderId, 'SIM-') === 0) {
return $this->simulatedResponse($orderId); // Never send simulated references to the real provider.
}
if ($this->simulationRequested()) {
throw new RuntimeException('Real order status is unavailable while simulation is enabled.');
}
return $this->orderResponse($this->request()->post(
$this->baseUrl . '/api/orderstatus', $this->orderPayload($orderId)
), $orderId);
}
public function certificate(string $orderId): string
{
if ($this->simulationRequested() || strpos($orderId, 'SIM-') === 0) {
throw new RuntimeException('Certificates are unavailable for simulation.');
}
// Section 5 specifies POST, despite GET in the document history.
$response = $this->request()->accept('application/pdf')->post(
$this->baseUrl . '/api/certificate', $this->orderPayload($orderId)
);
$this->checkResponse($response);
$type = strtolower(trim(explode(';', $response->header('Content-Type'))[0]));
if ($type !== 'application/pdf' || substr($response->body(), 0, 5) !== '%PDF-') {
throw new RuntimeException('Shoraka returned an invalid PDF certificate.');
}
return $response->body();
}
public function validCallback(array $payload): bool
{
if ($this->simulationRequested() || strpos((string) ($payload['orderId'] ?? ''), 'SIM-') === 0) {
return false;
}
if (!$this->configured()
|| !isset($payload['apiId'], $payload['signature'])
|| !is_string($payload['apiId'])
|| !hash_equals($this->apiId, $payload['apiId'])
|| !is_string($payload['signature'])
|| !preg_match('/\A[0-9a-fA-F]{64}\z/', $payload['signature'])) {
return false;
}
$values = [];
foreach (self::CALLBACK_FIELDS as $field) {
// Preserve the original strings: decimal formatting affects the hash.
if (!array_key_exists($field, $payload) || !is_string($payload[$field])) {
return false;
}
$values[] = $payload[$field];
}
return $payload['orderId'] !== ''
&& in_array($payload['status'], self::STATUSES, true)
&& hash_equals($this->signature($values), strtolower($payload['signature']));
}
protected function signature(array $values): string
{
return hash('sha256', implode(';', array_merge(
[$this->secretKey, $this->apiId], $values
)));
}
protected function orderPayload(string $orderId): array
{
if ($orderId === '') {
throw new RuntimeException('Shoraka order ID is required.');
}
return [
'api_id' => $this->apiId,
'order_id' => $orderId,
'signature' => $this->signature([$orderId]),
];
}
protected function request()
{
if (!$this->configured()) {
throw new RuntimeException('Shoraka credentials are not configured.');
}
// Never forward signed requests through redirects or retry a trade automatically.
return Http::asForm()->acceptJson()->timeout($this->timeout)
->withOptions(['allow_redirects' => false]);
}
protected function checkResponse(Response $response): void
{
if (!$response->successful()) {
// Do not expose upstream bodies which may contain credentials or customer data.
throw new RuntimeException('Shoraka request failed. HTTP ' . $response->status());
}
}
protected function orderResponse(Response $response, string $expectedId = null): array
{
$this->checkResponse($response);
$data = $response->json();
if (!is_array($data)
|| !isset($data['orderId'], $data['status'])
|| !(is_string($data['orderId']) || is_int($data['orderId']))
|| (string) $data['orderId'] === ''
|| !in_array($data['status'], self::STATUSES, true)
|| ($expectedId !== null && (string) $data['orderId'] !== $expectedId)) {
throw new RuntimeException('Shoraka returned an invalid order response.');
}
if (isset($data['certificateUrl']) && !is_string($data['certificateUrl'])) {
throw new RuntimeException('Shoraka returned an invalid certificate URL.');
}
return $data;
}
}
+41
View File
@@ -0,0 +1,41 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class ShorakaTransaction extends Model
{
protected $fillable = [
'norujukan',
'kodcaw',
'teller',
'order_id',
'status',
'product_type',
'commodity_type',
'ownership_name',
'ownership_doc_no',
'order_amount',
'murabaha_amount',
'certificate_url',
'certificate_path',
'request_payload',
'response_payload',
'callback_payload',
'attempt_count',
'error_message',
'submitted_at',
'completed_at',
];
protected $casts = [
'order_amount' => 'decimal:2',
'murabaha_amount' => 'decimal:2',
'request_payload' => 'array',
'response_payload' => 'array',
'callback_payload' => 'array',
'submitted_at' => 'datetime',
'completed_at' => 'datetime',
];
}
+3 -4
View File
@@ -88,9 +88,7 @@ class GadaiV1
$hargajualan = $request->pinjaman + $upah12;
$gadai = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->update(array(
$gadaiFields = array(
'nilaimarhun' => $total_nilai_marhun,
'berat'=> $total_berat,
'pinjaman' => $request->pinjaman,
@@ -115,7 +113,8 @@ class GadaiV1
'upahdibayar' => 0.00,
'tempohbayar' => 0.00,
'lelong_tawarruq' => 1
));
);
$gadai = Gadai::on($cawangan['mysql'])->where('norujukan', $norujukan)->update($gadaiFields);
$new_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
+6 -35
View File
@@ -11,8 +11,6 @@ use Carbon\Carbon;
use App\Gadai;
use App\HargaEmas;
use App\InOutMar;
use App\KomuditiPurchase;
use App\KomuditiTransaksi;
use App\Marhun;
use App\Moratorium;
use App\Palsu;
@@ -809,19 +807,18 @@ class Penebusan
$array_tebus = $request->only(['jeniskeuntungan', 'nopelanggan','jenistebus','addpinjaman','nowakil','marhun','teller','bakipinjaman','bakiupah']);
$array_trans = $request->only(['nopelanggan', 'noic','jenisAT','pinjaman','pinjamanbaru','marhun','teller','jenistebus']);
$array_tebus_base = $request->only(['totalbayaran', 'bakiupah','jeniskeuntungan','bakipinjaman','jenistebus','teller','nowakil','duitpelanggan']);
$array_trans_base = $request->only(['pinjaman','teller','pinjamanbaru']);
try{
DB::connection($cawangan['mysql'])->beginTransaction();
$this->saveTebus($kodcaw,$norujukan,$gadai,$cawangan,$array_tebus);
$this->createTransaction($cawangan,$kodcaw,$norujukan,$array_trans);
$newReference = $this->createTransaction($cawangan,$kodcaw,$norujukan,$array_trans);
DB::connection('mysql7')->beginTransaction();
$this->saveTebusBase($kodcaw,$norujukan,$gadai,$array_tebus_base);
$this->createTransactionBase($norujukan,$kodcaw,$array_trans_base);
$array_response = [
'result' => 'success',
'data' => 1
'data' => 1,
'norujukan_baru' => $newReference
];
DB::connection($cawangan['mysql'])->commit();
@@ -949,7 +946,7 @@ class Penebusan
$gadaiTransaction = Gadai::on($cawangan['mysql'])->where('t_gadai','=',$current->toDateString())->orderBy('sirig', 'desc')->first();
$gadaiTransaction = optional($gadaiTransaction)->toArray();
$new_sirig = ($gadaiTransaction) ? $gadaiTransaction['sirig'] + 1 : 1;
$new_sirig = (int) ($gadaiTransaction['sirig'] ?? 0) + 1;
$curent_year = substr($current->year,2,2);
$curent_month = sprintf("%02d", $current->month);
$current_day = sprintf("%02d", $current->day);
@@ -1077,37 +1074,11 @@ class Penebusan
't_update' => $current->toDateString(),
));
return $new_sag_number;
}catch(\Exception $e){
throw new \Exception("Error in Transaction: " . $e->getMessage());
}
}
private function createTransactionBase($norujukan,$kodcaw,$array_trans_base){
$current = Carbon::now();
$komuditi_current = KomuditiPurchase::on('mysql7')->where('date_purchase','=',$current->toDateString())->orderBy('created_at','desc')->first();
$unit_current = isset($komuditi_current['unit_komuditi']) ? $komuditi_current['unit_komuditi']: 0;
try{
$update_unit = $unit_current - $array_trans_base['pinjamanbaru'];
KomuditiPurchase::on('mysql7')->where('id','=',$komuditi_current['id'])->update([
'unit_komuditi' => $update_unit
]);
KomuditiTransaksi::on('mysql7')->create([
'unit_komuditi' => $update_unit,
'nosijil'=>$komuditi_current['no_sijil'],
'norujukan' => $norujukan,
'kodcaw' => $kodcaw,
'teller' => $array_trans_base['teller'],
'masa' => $current->toTimeString(),
'tarikh' => $current->toDateString()
]);
}catch(\Exception $e){
throw new \Exception("Error in TransactionBase: " . $e->getMessage());
}
}
}
}
+9 -41
View File
@@ -12,8 +12,6 @@ use Carbon\Carbon;
use App\Gadai;
use App\HargaEmas;
use App\InOutMar;
use App\KomuditiPurchase;
use App\KomuditiTransaksi;
use App\Marhun;
use App\FailoverTransaction;
use App\FailoverTransactionFailed;
@@ -984,20 +982,19 @@ class Penebusan
$array_tebus = $request->only(['jeniskeuntungan', 'nopelanggan','jenistebus','addpinjaman','nowakil','marhun','teller']);
$array_trans = $request->only(['nopelanggan', 'noic','jenisAT','pinjaman','pinjamanbaru','marhun','teller','jenistebus']);
$array_tebus_base = $request->only(['totalbayaran', 'bakiupah','jeniskeuntungan','bakipinjaman','jenistebus','teller','nowakil','duitpelanggan']);
$array_trans_base = $request->only(['pinjaman','teller','pinjamanbaru']);
try{
DB::connection($cawangan['mysql'])->beginTransaction();
$this->saveTebus($kodcaw,$norujukan,$gadai,$cawangan,$array_tebus);
$this->createTransaction($cawangan,$kodcaw,$norujukan,$array_trans);
$newReference = $this->createTransaction($cawangan,$kodcaw,$norujukan,$array_trans);
DB::connection('mysql7')->beginTransaction();
$this->saveTebusBase($kodcaw,$norujukan,$gadai,$array_tebus_base);
$this->createTransactionBase($norujukan,$kodcaw,$array_trans_base);
$array_response = [
'result' => 'success',
'data' => 1
'data' => 1,
'norujukan_baru' => $newReference
];
DB::connection($cawangan['mysql'])->commit();
@@ -1044,19 +1041,18 @@ class Penebusan
$array_tebus = $request->only(['jeniskeuntungan', 'nopelanggan','jenistebus','addpinjaman','nowakil','marhun','teller']);
$array_trans = $request->only(['nopelanggan', 'noic','pinjaman','pinjamanbaru','marhun','teller','jenistebus']);
$array_tebus_base = $request->only(['totalbayaran', 'bakiupah','jeniskeuntungan','bakipinjaman','jenistebus','teller','nowakil','duitpelanggan']);
$array_trans_base = $request->only(['pinjaman','teller','pinjamanbaru']);
try{
DB::connection($cawangan['mysql'])->beginTransaction();
$this->saveTebus($kodcaw,$norujukan,$gadai,$cawangan,$array_tebus);
$this->createTransaction($cawangan,$kodcaw,$norujukan,$array_trans);
$newReference = $this->createTransaction($cawangan,$kodcaw,$norujukan,$array_trans);
DB::connection('mysql7')->beginTransaction();
$this->saveTebusBase($kodcaw,$norujukan,$gadai,$array_tebus_base);
$this->createTransactionBase($norujukan,$kodcaw,$array_trans_base);
$array_response = [
'result' => 'success',
'data' => 1
'data' => 1,
'norujukan_baru' => $newReference
];
DB::connection($cawangan['mysql'])->commit();
@@ -1228,7 +1224,7 @@ class Penebusan
$gadaiTransaction = Gadai::on($cawangan['mysql'])->where('t_gadai','=',$current->toDateString())->orderBy('sirig', 'desc')->first();
$gadaiTransaction = optional($gadaiTransaction)->toArray();
$new_sirig = ($gadaiTransaction) ? $gadaiTransaction['sirig'] + 1 : 1;
$new_sirig = (int) ($gadaiTransaction['sirig'] ?? 0) + 1;
$curent_year = substr($current->year,2,2);
$curent_month = sprintf("%02d", $current->month);
$current_day = sprintf("%02d", $current->day);
@@ -1356,39 +1352,11 @@ class Penebusan
't_update' => $current->toDateString(),
));
return $new_sag_number;
}catch(\Exception $e){
throw new \Exception("Error in Transaction: " . $e->getMessage());
}
}
private function createTransactionBase($norujukan,$kodcaw,$array_trans_base){
$current = Carbon::now();
$komuditi_current = KomuditiPurchase::on('mysql7')->where('date_purchase','=',$current->toDateString())->orderBy('created_at','desc')->first();
$unit_current = isset($komuditi_current['unit_komuditi']) ? $komuditi_current['unit_komuditi']: 0;
try{
$update_unit = $unit_current - $array_trans_base['pinjamanbaru'];
KomuditiPurchase::on('mysql7')->where('id','=',$komuditi_current['id'])->update([
'unit_komuditi' => $update_unit
]);
KomuditiTransaksi::on('mysql7')->create([
'unit_komuditi' => $update_unit,
'nosijil'=>$komuditi_current['no_sijil'],
'norujukan' => $norujukan,
'kodcaw' => $kodcaw,
'teller' => $array_trans_base['teller'],
'masa' => $current->toTimeString(),
'tarikh' => $current->toDateString()
]);
}catch(\Exception $e){
throw new \Exception("Error in TransactionBase: " . $e->getMessage());
}
}
}
}
+4
View File
@@ -87,6 +87,7 @@ $app->singleton(
*/
$app->configure('app');
$app->configure('services');
$app->configure('logging');
$app->configure('logviewer');
$app->configure('tinker');
@@ -157,4 +158,7 @@ $app->middleware([
$app->register(\Rap2hpoutre\LaravelLogViewer\LaravelLogViewerServiceProvider::class);
$app->register(\Laravel\Tinker\TinkerServiceProvider::class);
$app->register(\App\Providers\AppServiceProvider::class);
$app->register(\KitLoong\MigrationsGenerator\MigrationsGeneratorServiceProvider::class);
return $app;
+1
View File
@@ -15,6 +15,7 @@
},
"require-dev": {
"fzaninotto/faker": "^1.9.1",
"kitloong/laravel-migrations-generator": "^6.11",
"mockery/mockery": "^1.3.1",
"phpunit/phpunit": "^8.5"
},
Generated
+142 -4
View File
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "2a35e67752107934701ceea957a4fd34",
"content-hash": "64c3d9455edb548f4cd5ec1f8d9f77be",
"packages": [
{
"name": "auth0/auth0-php",
@@ -6686,6 +6686,81 @@
},
"time": "2020-07-09T08:09:16+00:00"
},
{
"name": "kitloong/laravel-migrations-generator",
"version": "v6.11.1",
"source": {
"type": "git",
"url": "https://github.com/kitloong/laravel-migrations-generator.git",
"reference": "0f007e86dce6e0cfd71dc0b757da18851c376c3b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/kitloong/laravel-migrations-generator/zipball/0f007e86dce6e0cfd71dc0b757da18851c376c3b",
"reference": "0f007e86dce6e0cfd71dc0b757da18851c376c3b",
"shasum": ""
},
"require": {
"doctrine/dbal": "^2.4|^3.0",
"ext-pdo": "*",
"illuminate/support": "^5.6|^6.0|^7.0|^8.0|^9.0|^10.0",
"myclabs/php-enum": "^1.6|^1.7|^1.8",
"php": ">=7.1.3"
},
"require-dev": {
"barryvdh/laravel-ide-helper": "^2.5",
"friendsofphp/php-cs-fixer": "^2.19.0|^3.1",
"larastan/larastan": "^0.4|^0.5|^0.6|^0.7|^1.0|^2.0",
"mockery/mockery": "^1.0",
"orchestra/testbench": "^3.6|^4.0|^5.0|^6.0|^7.0|^8.0",
"phpmd/phpmd": "^2.10",
"slevomat/coding-standard": "^6.0|^7.0|^8.5",
"squizlabs/php_codesniffer": "^3.5"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"KitLoong\\MigrationsGenerator\\MigrationsGeneratorServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"KitLoong\\MigrationsGenerator\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Kit Loong",
"email": "kitloong1008@gmail.com"
}
],
"description": "Generates Laravel Migrations from an existing database",
"keywords": [
"artisan",
"generator",
"laravel",
"lumen",
"migration",
"migrations"
],
"support": {
"issues": "https://github.com/kitloong/laravel-migrations-generator/issues",
"source": "https://github.com/kitloong/laravel-migrations-generator/tree/v6.11.1"
},
"funding": [
{
"url": "https://www.buymeacoffee.com/kitloong",
"type": "custom"
}
],
"time": "2024-02-06T14:42:33+00:00"
},
{
"name": "mockery/mockery",
"version": "1.5.0",
@@ -6817,6 +6892,69 @@
],
"time": "2022-03-03T13:19:32+00:00"
},
{
"name": "myclabs/php-enum",
"version": "1.8.5",
"source": {
"type": "git",
"url": "https://github.com/myclabs/php-enum.git",
"reference": "e7be26966b7398204a234f8673fdad5ac6277802"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/myclabs/php-enum/zipball/e7be26966b7398204a234f8673fdad5ac6277802",
"reference": "e7be26966b7398204a234f8673fdad5ac6277802",
"shasum": ""
},
"require": {
"ext-json": "*",
"php": "^7.3 || ^8.0"
},
"require-dev": {
"phpunit/phpunit": "^9.5",
"squizlabs/php_codesniffer": "1.*",
"vimeo/psalm": "^4.6.2 || ^5.2"
},
"type": "library",
"autoload": {
"psr-4": {
"MyCLabs\\Enum\\": "src/"
},
"classmap": [
"stubs/Stringable.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP Enum contributors",
"homepage": "https://github.com/myclabs/php-enum/graphs/contributors"
}
],
"description": "PHP Enum implementation",
"homepage": "https://github.com/myclabs/php-enum",
"keywords": [
"enum"
],
"support": {
"issues": "https://github.com/myclabs/php-enum/issues",
"source": "https://github.com/myclabs/php-enum/tree/1.8.5"
},
"funding": [
{
"url": "https://github.com/mnapoli",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/myclabs/php-enum",
"type": "tidelift"
}
],
"time": "2025-01-14T11:49:03+00:00"
},
{
"name": "phar-io/manifest",
"version": "2.0.3",
@@ -8389,12 +8527,12 @@
],
"aliases": [],
"minimum-stability": "dev",
"stability-flags": [],
"stability-flags": {},
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
"php": "^7.2.5"
},
"platform-dev": [],
"plugin-api-version": "2.3.0"
"platform-dev": {},
"plugin-api-version": "2.9.0"
}
+23
View File
@@ -0,0 +1,23 @@
<?php
return [
'shoraka' => [
// Local UI tests only: off, failed or pending. Success is deliberately excluded.
'simulation' => env('SHORAKA_SIMULATION', 'off'),
'base_url' => env(
'SHORAKA_BASE_URL',
'https://uat2.shorakagroup.com'
),
'api_id' => env('SHORAKA_API_ID'),
'secret_key' => env('SHORAKA_SECRET_KEY'),
'timeout' => env(
'SHORAKA_TIMEOUT',
60
),
],
];
@@ -0,0 +1,87 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateShorakaTransactionsTable extends Migration
{
public function up()
{
Schema::create(
'shoraka_transactions',
function (Blueprint $table) {
$table->id();
// Rujukan pembiayaan dalam eRahn
$table->string('norujukan')->unique();
// Maklumat daripada Shoraka
$table->string('order_id')
->nullable()
->unique();
$table->string('status')
->default('PENDING');
$table->string('product_type')
->default('FINANCING');
$table->string('commodity_type');
$table->string('ownership_name');
$table->string('ownership_doc_no')
->nullable();
$table->decimal(
'order_amount',
15,
2
);
$table->decimal(
'murabaha_amount',
15,
2
);
$table->string('certificate_url')
->nullable();
$table->string('certificate_path')
->nullable();
// Simpan payload untuk audit dan troubleshooting
$table->json('request_payload')
->nullable();
$table->json('response_payload')
->nullable();
$table->json('callback_payload')
->nullable();
$table->unsignedInteger('attempt_count')
->default(0);
$table->text('error_message')
->nullable();
$table->timestamp('submitted_at')
->nullable();
$table->timestamp('completed_at')
->nullable();
$table->timestamps();
$table->index('status');
}
);
}
public function down()
{
Schema::dropIfExists('shoraka_transactions');
}
}
@@ -0,0 +1,22 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddKodcawToShorakaTransactions extends Migration
{
public function up()
{
Schema::table('shoraka_transactions', function (Blueprint $table) {
$table->string('kodcaw', 20)->nullable()->index();
});
}
public function down()
{
Schema::table('shoraka_transactions', function (Blueprint $table) {
$table->dropColumn('kodcaw');
});
}
}
@@ -0,0 +1,23 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
class AddTellerToShorakaTransactions extends Migration
{
public function up()
{
Schema::table('shoraka_transactions', function (Blueprint $table) {
$table->string('teller')->nullable();
});
}
public function down()
{
Schema::table('shoraka_transactions', function (Blueprint $table) {
$table->dropColumn('teller');
});
}
}
@@ -0,0 +1,170 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;
class DropUnusedCawanganTables extends Migration
{
/**
* Empty legacy tables on every branch database.
* mysql7 is the master database and is skipped.
*/
public function up()
{
$tables = [
'advansur',
'alert',
'ansrugi',
'auditbarcode',
'auditdaftar',
'auditrekodsemakan',
'audtrail',
'bajet',
'bakipelanggan',
'batchlel_xtra',
'bayaranpenebusan',
'belian',
'budgetgadai',
'budgettebus',
'budgetupah',
'checker',
'configkaunter',
'coordination',
'customer',
'gadaisimulasi',
'gadaitemp',
'gadaixtra',
'glejer',
'hapusgadaionline',
'hapuskira',
'hargaemasbeli',
'hargaemasjual',
'imbangan',
'imbang_duga_lama',
'inoutmarxtra',
'jemas00',
'jemasbeli',
'jemasxtra',
'jualan',
'jualemas',
'jumlahtebus',
'karatbeli',
'karatjual',
'karatxtra',
'kawalanstok',
'kawalanstokxtra',
'kawalanstok_lama',
'kumpulan',
'kurangxtra',
'ku_nm',
'ku_nmbaru',
'ku_nmxtra',
'lapringkasan',
'lapterkumpul',
'lapterkumpulharian',
'lelkarat',
'lelmarhun_xtra',
'lelongxtra',
'marhunbeli',
'marhunjual',
'marhunsimulasi',
'marhunxtra',
'model',
'outmarhun',
'outmarhunxtra',
'parameter',
'pelelong',
'pembeliemas',
'pemeriksaan',
'pengesahangadai',
'pengguna',
'percentonline',
'polisxtra',
'poskod',
'ramalan',
'rekodtangguh',
'sahabat',
'senhitam',
'serahbaki',
'simpanan',
'simulasi_batchlel',
'simulasi_batchlelxtra',
'simulasi_lelmarhun',
'simulasi_lelongxtra',
'syarikat',
'tagpelanggan',
'tebuslelong',
'tebus_xtra',
'tempimbang',
'tempnosiri',
'tempnosirixtra',
'temppwd',
'temptarikhaging',
'temp_ic',
'tunaigadteb',
'tuntutan',
'tuntutbakixtra',
'ubs_code',
'zparameter',
'zparameter1',
];
foreach ($this->getActiveDB() as $connection) {
$this->dropTables($connection, $tables);
}
}
public function down()
{
// Original table definitions are not kept. This drop cannot be reversed.
}
private function getActiveDB()
{
$config_db = array_keys(config('database.connections'));
return array_filter($config_db, function ($connection) {
try {
if ($connection === 'mysql7') {
return false;
}
DB::connection($connection)->getPdo();
return true;
} catch (\Exception $e) {
return false;
}
});
}
private function dropTables($connection, array $tables)
{
$db = DB::connection($connection);
$placeholders = implode(',', array_fill(0, count($tables), '?'));
$rows = $db->select(
"SELECT TABLE_NAME AS table_name
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_TYPE = 'BASE TABLE'
AND LOWER(TABLE_NAME) IN ($placeholders)",
$tables
);
if (count($rows) === 0) {
return;
}
$quoted = array_map(function ($row) {
return '`'.str_replace('`', '``', $row->table_name).'`';
}, $rows);
$db->statement('SET FOREIGN_KEY_CHECKS=0');
try {
$db->statement('DROP TABLE IF EXISTS '.implode(', ', $quoted));
} finally {
$db->statement('SET FOREIGN_KEY_CHECKS=1');
}
}
}
@@ -0,0 +1,60 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;
class DropUnusedMasterTables extends Migration
{
/**
* Empty legacy tables on the master database (mysql7).
*/
public function up()
{
$tables = [
'approval_withdrawal',
'cawangan00',
'cawangan_notis',
'coordination',
'customers_main',
'log_blast_sms',
'log_blast_wasap',
'mobile_payment_info',
'mobile_payment_log',
'moratorium',
'otp_token',
'tac_express_payment',
];
$db = DB::connection('mysql7');
$placeholders = implode(',', array_fill(0, count($tables), '?'));
$rows = $db->select(
"SELECT TABLE_NAME AS table_name
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_TYPE = 'BASE TABLE'
AND LOWER(TABLE_NAME) IN ($placeholders)",
$tables
);
if (count($rows) === 0) {
return;
}
$quoted = array_map(function ($row) {
return '`'.str_replace('`', '``', $row->table_name).'`';
}, $rows);
$db->statement('SET FOREIGN_KEY_CHECKS=0');
try {
$db->statement('DROP TABLE IF EXISTS '.implode(', ', $quoted));
} finally {
$db->statement('SET FOREIGN_KEY_CHECKS=1');
}
}
public function down()
{
// Original table definitions are not kept. This drop cannot be reversed.
}
}
@@ -0,0 +1,38 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateAddtunaiTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('addtunai', function (Blueprint $table) {
$table->integer('recno');
$table->date('tarikh')->nullable();
$table->string('kodcaw', 10)->nullable()->default('');
$table->string('kodlaluan', 100)->nullable()->default('');
$table->decimal('tambah', 11)->nullable()->default(0);
$table->decimal('kurang', 11)->nullable()->default(0);
$table->string('nota', 40)->nullable()->default('');
$table->integer('bil')->default(0);
$table->timestamp('created_at');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('addtunai');
}
}
@@ -0,0 +1,42 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateAkruNetPecahanTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('akru_net_pecahan', function (Blueprint $table) {
$table->unsignedBigInteger('id');
$table->integer('tahun');
$table->integer('bulan');
$table->decimal('persen_semasa', 9);
$table->decimal('ujrah_semasa', 9);
$table->decimal('persen_sebelum', 9);
$table->decimal('ujrah_sebelum', 9);
$table->decimal('keuntungan_semasa_1persen', 9);
$table->decimal('keuntungan_semasa_ujrah', 9);
$table->decimal('baki_keun_blm_byr_1persen', 9);
$table->decimal('baki_keun_blm_byr_ujrah', 9);
$table->decimal('pend_akru_1persen', 9);
$table->decimal('pend_akru_ujrah', 9);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('akru_net_pecahan');
}
}
@@ -0,0 +1,33 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateAkruNetTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('akru_net', function (Blueprint $table) {
$table->integer('id');
$table->integer('tahun')->nullable();
$table->integer('bulan')->nullable();
$table->decimal('jumlah', 9)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('akru_net');
}
}
@@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateBandarTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('bandar', function (Blueprint $table) {
$table->string('kodbandar', 10)->nullable();
$table->string('namabandar', 30)->nullable();
$table->string('kodnegeri', 3)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('bandar');
}
}
@@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateBankTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('bank', function (Blueprint $table) {
$table->string('bankcode', 10)->nullable();
$table->string('bankdesc', 30)->nullable();
$table->string('note', 30)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('bank');
}
}
@@ -0,0 +1,35 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateBatalgadaiTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('batalgadai', function (Blueprint $table) {
$table->integer('recno');
$table->string('norujukan', 20)->nullable();
$table->string('tellerid', 50)->nullable();
$table->string('namateller', 30)->nullable();
$table->date('tarikh');
$table->time('masa');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('batalgadai');
}
}
@@ -0,0 +1,42 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateBatchPembiayaanOnlineTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('batch_pembiayaan_online', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('batch_no', 50);
$table->string('kodcaw', 20);
$table->date('tarikh');
$table->string('slot', 20)->nullable()->comment('BATCH1 / BATCH2');
$table->integer('bilangan')->default(0);
$table->decimal('jumlah_keseluruhan', 12)->default(0);
$table->string('status', 30)->default('DRAFT');
$table->string('pc_submitted_by', 100)->nullable();
$table->timestamp('submitted_at')->nullable();
$table->timestamps();
$table->index(['kodcaw', 'tarikh', 'status']);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('batch_pembiayaan_online');
}
}
@@ -0,0 +1,51 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateBatchlelTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('batchlel', function (Blueprint $table) {
$table->integer('recno');
$table->string('kodcaw', 10)->default('');
$table->integer('batchno');
$table->date('tarikh')->nullable()->default('0000-00-00');
$table->date('tarikh2')->nullable()->default('0000-00-00');
$table->time('masadari')->nullable()->default('00:00:00');
$table->time('masahingga')->nullable()->default('00:00:00');
$table->string('pilihankos', 1)->default('');
$table->decimal('pcntkos', 5)->default(0);
$table->decimal('koslelong', 7)->default(0);
$table->decimal('jumnm', 11)->default(0);
$table->decimal('diskaun', 5)->default(0);
$table->string('alamat1', 40)->default('');
$table->string('alamat2', 40)->default('');
$table->string('alamat3', 40)->default('');
$table->string('alamat4', 20)->default('');
$table->string('telefon', 30)->default('');
$table->integer('nopelelong')->default(0);
$table->decimal('percentgst', 3)->default(6);
$table->decimal('percentgst_hj', 3)->default(0);
$table->date('t_daftar')->nullable();
$table->integer('tag_sms')->default(0);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('batchlel');
}
}
@@ -0,0 +1,31 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateBrandTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('brand', function (Blueprint $table) {
$table->integer('brandNo');
$table->string('brand', 30);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('brand');
}
}
@@ -0,0 +1,53 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateCawanganTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('cawangan', function (Blueprint $table) {
$table->string('kodcaw', 10);
$table->string('kodnegeri', 3)->nullable();
$table->string('namacaw', 80)->nullable();
$table->string('alamat1', 60)->nullable();
$table->string('alamat2', 60)->nullable();
$table->string('alamat3', 60)->nullable();
$table->string('alamat4', 60)->nullable();
$table->string('notel', 40)->nullable();
$table->string('nofaks', 11);
$table->date('systemdate')->nullable();
$table->decimal('cajkhidmat', 7)->nullable()->default(0);
$table->tinyInteger('openst')->nullable()->default(0);
$table->string('prkod', 2)->nullable();
$table->string('nokotak', 10)->nullable();
$table->string('murtahin', 60)->nullable();
$table->string('saksi', 60)->nullable();
$table->string('glus', 15)->nullable();
$table->string('glut', 15)->nullable();
$table->decimal('ut_kasar', 15)->default(0);
$table->decimal('belanjat', 15)->default(0);
$table->decimal('ut_bersih', 15)->default(0);
$table->string('msword', 80)->nullable();
$table->date('t_aging');
$table->string('cawangan', 20)->nullable()->default('Wakaf Bharu');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('cawangan');
}
}
@@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateDaerahTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('daerah', function (Blueprint $table) {
$table->integer('koddaerah')->nullable()->default(0);
$table->string('namadaerah', 30)->nullable();
$table->string('kodnegeri', 3)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('daerah');
}
}
@@ -0,0 +1,78 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateDenominasiTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('denominasi', function (Blueprint $table) {
$table->date('tarikh')->nullable();
$table->integer('bd1')->default(0);
$table->decimal('b1', 11)->default(0);
$table->integer('bd5')->default(0);
$table->decimal('b5', 11)->default(0);
$table->integer('bd10')->default(0);
$table->decimal('b10', 11)->default(0);
$table->integer('bd20')->default(0);
$table->decimal('b20', 11)->default(0);
$table->integer('bd50')->default(0);
$table->decimal('b50', 11)->default(0);
$table->integer('bd100')->default(0);
$table->decimal('b100', 11)->default(0);
$table->integer('txtring1')->default(0);
$table->decimal('k1', 11)->default(0);
$table->integer('txtring5')->default(0);
$table->decimal('k5', 11)->default(0);
$table->integer('txtsen1')->default(0);
$table->decimal('k01', 11)->default(0);
$table->integer('txtsen5')->default(0);
$table->decimal('k05', 11)->default(0);
$table->integer('txtsen10')->default(0);
$table->decimal('k010', 11)->default(0);
$table->integer('txtsen20')->default(0);
$table->decimal('k020', 11)->default(0);
$table->integer('txtsen50')->default(0);
$table->decimal('k050', 11)->default(0);
$table->integer('txtring10')->default(0);
$table->decimal('k10', 11)->default(0);
$table->integer('txtring20')->default(0);
$table->decimal('k20', 11)->default(0);
$table->integer('txtring50')->default(0);
$table->decimal('k50', 11)->default(0);
$table->integer('txtring100')->default(0);
$table->decimal('k100', 11)->default(0);
$table->integer('txtring1000')->default(0);
$table->decimal('k1000', 11)->default(0);
$table->decimal('jumlahbundle', 11)->default(0);
$table->decimal('txtjumlah', 11)->default(0);
$table->string('nota', 100)->nullable();
$table->decimal('jumlahkeping', 11)->default(0);
$table->decimal('lebihan', 11)->default(0);
$table->integer('sd1')->default(0);
$table->integer('sd2')->default(0);
$table->integer('sd5')->default(0);
$table->decimal('s1', 11)->default(0);
$table->decimal('s2', 11)->default(0);
$table->decimal('s5', 11)->default(0);
$table->integer('recno');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('denominasi');
}
}
@@ -0,0 +1,169 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateGadaiTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('gadai', function (Blueprint $table) {
$table->string('kodcaw', 10)->nullable();
$table->string('norujukan', 20);
$table->string('prkod', 2)->nullable();
$table->string('nopelanggan', 12)->nullable();
$table->string('nokp', 14)->nullable();
$table->date('t_gadai')->nullable();
$table->time('masa')->nullable();
$table->integer('sirig')->nullable()->default(0);
$table->decimal('nilaimarhun', 9)->nullable()->default(0);
$table->decimal('n_marhuns', 9)->nullable()->default(0);
$table->decimal('berat', 7)->nullable()->default(0);
$table->decimal('pinjaman', 9)->nullable()->default(0);
$table->string('cara_terima', 20)->nullable();
$table->decimal('telahbayar', 7)->nullable()->default(0);
$table->decimal('upahtelahbyr', 7)->default(0);
$table->decimal('cajtelahbyr', 7)->nullable()->default(0);
$table->decimal('ansuran', 9)->nullable()->default(0);
$table->decimal('ansupah', 7)->nullable()->default(0);
$table->decimal('kadarupah', 5)->nullable()->default(0);
$table->decimal('tempoh', 10)->default(0);
$table->date('t_lanjut1')->nullable();
$table->date('t_lanjut2')->nullable();
$table->date('t_matang')->nullable();
$table->date('t_matang1')->nullable();
$table->date('t_matang2')->nullable();
$table->date('t_notis1')->nullable();
$table->date('t_notis2')->nullable();
$table->date('t_notis3')->nullable();
$table->date('t_lelong')->nullable();
$table->date('t_hapus')->nullable();
$table->string('sttebus', 1)->nullable();
$table->string('terima', 1)->nullable();
$table->integer('cetak')->nullable()->default(0);
$table->string('tncek', 1)->nullable();
$table->string('nocek', 10)->nullable();
$table->string('bkcode', 4)->nullable();
$table->string('glcode', 15)->nullable();
$table->string('teller', 100)->nullable();
$table->string('pelulus', 50)->nullable();
$table->string('pelulust', 7)->nullable();
$table->string('disburseid', 7)->nullable();
$table->time('disbursetime')->nullable();
$table->string('cancelid', 7)->nullable();
$table->time('canceltime')->nullable();
$table->string('f_lulus', 1)->nullable();
$table->string('tag', 1)->nullable();
$table->decimal('jbg', 9)->nullable()->default(0);
$table->decimal('bakipjm', 9)->nullable()->default(0);
$table->decimal('bakiupah', 9)->nullable()->default(0);
$table->decimal('cajlain', 7)->nullable()->default(0);
$table->string('marhun')->nullable();
$table->string('jenisupah', 1)->nullable();
$table->decimal('cajkhidmat', 7)->nullable()->default(0);
$table->tinyInteger('stcajkhidmat')->nullable()->default(0);
$table->string('kodgl', 15)->nullable();
$table->tinyInteger('taglel')->nullable()->default(0);
$table->integer('instno')->nullable()->default(0);
$table->integer('currInstno')->nullable()->default(0);
$table->decimal('ansakhir', 7)->nullable()->default(0);
$table->decimal('ansupahakhir', 7)->nullable()->default(0);
$table->decimal('jumupahaz', 7)->nullable()->default(0);
$table->decimal('tunggakan', 7)->nullable()->default(0);
$table->date('t_update')->nullable();
$table->string('jantina', 1)->nullable();
$table->string('bangsa', 1)->nullable();
$table->integer('sirit')->nullable()->default(0);
$table->tinyInteger('jenisansur')->nullable()->default(0);
$table->string('nokotak', 10)->nullable();
$table->tinyInteger('tiada')->nullable()->default(0);
$table->integer('tagtbaki')->default(0);
$table->string('penilai', 50)->nullable();
$table->string('namapenilai', 30)->nullable();
$table->integer('tagserah')->default(0);
$table->date('tempTarikhAging')->nullable();
$table->string('jenistebus', 1);
$table->string('namapelulus', 50)->nullable();
$table->decimal('percentpinj', 9)->default(0);
$table->integer('kuantiti')->default(0);
$table->string('namateller', 30)->nullable();
$table->decimal('jumtebus', 11)->nullable()->default(0);
$table->decimal('upahnotis', 9)->nullable()->default(0);
$table->decimal('upahpercuma', 11);
$table->integer('tagpalsu')->default(0);
$table->decimal('upahdibayar', 10)->default(0);
$table->integer('tagcetak');
$table->integer('tag_sms')->default(0);
$table->string('semakbarcode', 40)->default('Tidak Lulus');
$table->integer('wangkeluarteller')->default(0);
$table->integer('semakpetibesi')->default(0);
$table->integer('semakaudit')->default(0);
$table->string('historygadaian', 20)->default('0');
$table->integer('tagkiratebus')->default(0);
$table->integer('checkbp')->default(0);
$table->decimal('pampasan', 9)->default(0);
$table->integer('lel1stop')->default(0);
$table->string('tellernew', 40);
$table->string('idjompay', 25)->default('0');
$table->integer('tangguh')->default(0);
$table->date('tebus')->nullable();
$table->decimal('upahSim', 7)->default(0);
$table->decimal('jbgakru', 5)->default(0);
$table->decimal('upahakru', 7)->default(0);
$table->integer('tagpalsu2')->default(0);
$table->integer('tagcall')->default(0);
$table->decimal('upah_semasa', 11)->nullable()->default(0);
$table->decimal('simulasi_hargaasas', 11)->nullable()->default(0);
$table->decimal('simulasi_cajlelong', 11)->nullable()->default(0);
$table->decimal('simulasi_bakilelong', 11)->nullable()->default(0);
$table->decimal('sim_hargaasas', 9)->nullable()->default(0);
$table->decimal('sim_cajlelong', 9)->nullable()->default(0);
$table->decimal('sim_upahlelong', 9)->nullable()->default(0);
$table->decimal('sim_bakilelong', 9)->nullable()->default(0);
$table->decimal('percentrebet', 9)->nullable()->default(0);
$table->decimal('rebet', 9)->nullable()->default(0);
$table->decimal('upahlpsrebet', 9)->nullable()->default(0);
$table->integer('taguploadslip')->nullable()->default(0);
$table->integer('tagsahupahonline')->nullable()->default(0);
$table->decimal('bayarupahonline', 9)->nullable()->default(0);
$table->date('tbayaronline')->nullable();
$table->decimal('upahsebenar', 9)->nullable()->default(0);
$table->integer('tagupdatedbonline')->nullable()->default(0);
$table->decimal('bayarpinjamanonline', 9)->nullable()->default(0);
$table->string('jenis_bayaran', 5)->nullable();
$table->decimal('upah12', 9)->nullable();
$table->decimal('hargajualan', 9)->nullable();
$table->decimal('bakihargajualan', 9)->nullable();
$table->tinyInteger('tagkomuditi')->nullable();
$table->tinyInteger('lelong_tawarruq')->nullable()->default(1);
$table->float('tempohbayar', 10)->default(0);
$table->char('tag_tebus', 2);
$table->decimal('kadarujrah', 5);
$table->decimal('ujrah', 9);
$table->decimal('onepercent', 9);
$table->decimal('margin_semasa', 5);
$table->tinyInteger('tagbaru')->default(0);
$table->decimal('tunggakanujrah', 9);
$table->decimal('tunggakanonepercent', 9);
$table->tinyInteger('tagnotis')->default(0);
$table->decimal('kadarrebet', 8, 4)->nullable()->default(0);
$table->decimal('diskaun', 12)->nullable()->default(0);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('gadai');
}
}
@@ -0,0 +1,38 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateGlcodeTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('glcode', function (Blueprint $table) {
$table->integer('recno');
$table->string('kodcaw', 10)->nullable();
$table->string('glcode', 15)->nullable();
$table->string('descpt', 40)->nullable();
$table->string('acttype', 1)->nullable();
$table->string('jenisakaun', 10)->nullable();
$table->tinyInteger('bayaran')->nullable()->default(0);
$table->date('tarikh')->nullable();
$table->decimal('amaun', 15)->nullable()->default(0);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('glcode');
}
}
@@ -0,0 +1,47 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateGldetailTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('gldetail', function (Blueprint $table) {
$table->string('kodcaw', 10)->nullable();
$table->integer('recno');
$table->date('tarikh')->nullable();
$table->string('dtacct', 15)->nullable();
$table->string('ktacct', 15)->nullable();
$table->string('descpt', 40)->nullable();
$table->string('acttype', 1)->nullable();
$table->string('fracttype', 1)->nullable();
$table->decimal('amaun', 13)->default(0);
$table->string('teller', 7)->nullable();
$table->string('pelulus', 7)->nullable();
$table->string('terima', 1)->nullable();
$table->string('jenisbyr', 2)->nullable();
$table->string('bkcode', 4)->nullable();
$table->string('nocek', 6)->nullable();
$table->decimal('pendahuluan', 13)->nullable()->default(0);
$table->decimal('serahan', 13)->nullable()->default(0);
$table->timestamp('date_created');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('gldetail');
}
}
@@ -0,0 +1,34 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateHargaemasTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('hargaemas', function (Blueprint $table) {
$table->string('karat', 5)->nullable();
$table->date('t_efektif')->nullable();
$table->decimal('harga', 7)->nullable()->default(0);
$table->time('m_efektif');
$table->decimal('harga2', 5);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('hargaemas');
}
}
@@ -0,0 +1,68 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateImbangDugaBackupTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('imbang_duga_backup', function (Blueprint $table) {
$table->integer('recno');
$table->string('kodcaw', 10)->nullable();
$table->date('tarikh')->nullable();
$table->decimal('tunaiditangan', 11)->nullable();
$table->decimal('pembiayaantawarruq', 11)->nullable();
$table->decimal('bayaranpendahuluan', 11)->nullable();
$table->decimal('pinjamankoop', 11)->nullable();
$table->decimal('emaspalsu', 11)->nullable();
$table->decimal('serahan', 11)->nullable();
$table->decimal('bds', 11)->nullable();
$table->decimal('perubatan', 11)->nullable();
$table->decimal('keraian', 11)->nullable();
$table->decimal('rugilelong', 11)->nullable();
$table->decimal('bakilelong', 11)->nullable();
$table->decimal('wtd', 11)->nullable();
$table->decimal('untungrugiterkumpul', 11)->nullable();
$table->decimal('keun_sebenar', 11)->nullable();
$table->decimal('pendahuluan', 11)->nullable();
$table->decimal('cajlelong', 11)->nullable();
$table->decimal('pindahkekpkb', 11)->nullable();
$table->decimal('penghutangkaki', 11)->nullable();
$table->decimal('phapuskira', 11)->nullable();
$table->decimal('belian1stop', 11)->nullable();
$table->decimal('keun_penggadai', 11)->nullable();
$table->decimal('pend_terakru', 11)->nullable();
$table->decimal('cajperkhidmatan', 11)->nullable();
$table->decimal('cajlelongxtra', 11)->nullable();
$table->decimal('upahsimpanxtra', 11)->nullable();
$table->decimal('bakilelongxtra', 11)->nullable();
$table->decimal('rugilelongxtra', 11)->nullable();
$table->decimal('utgterkumpulxtra', 11)->nullable();
$table->decimal('jualan1stop', 11)->nullable();
$table->decimal('hapuskira', 11)->nullable();
$table->decimal('totalharta', 11)->nullable();
$table->decimal('totaltanggungan', 11)->nullable();
$table->integer('tagtally')->nullable();
$table->timestamps();
$table->decimal('ujrah', 9);
$table->decimal('onepercent', 9);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('imbang_duga_backup');
}
}
@@ -0,0 +1,40 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateInoutmarTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('inoutmar', function (Blueprint $table) {
$table->date('tarikh')->nullable();
$table->time('masa')->nullable();
$table->string('norujukan', 14)->nullable();
$table->decimal('nm', 9)->nullable();
$table->string('kpd', 20)->nullable();
$table->string('drp', 20)->nullable();
$table->decimal('bln', 3, 0)->nullable();
$table->decimal('thn', 5, 0)->nullable();
$table->tinyInteger('tag')->nullable();
$table->string('jenistebus', 2);
$table->string('namateller', 30);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('inoutmar');
}
}
@@ -0,0 +1,33 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateJemasTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('jemas', function (Blueprint $table) {
$table->integer('recno');
$table->string('marhun', 30)->nullable();
$table->string('descpt', 30)->nullable();
$table->integer('ordernum');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('jemas');
}
}
@@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateJenisakaunTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('jenisakaun', function (Blueprint $table) {
$table->integer('recno')->default(0);
$table->string('kod', 1)->nullable();
$table->string('keterangan', 20)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('jenisakaun');
}
}
@@ -0,0 +1,34 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateKaratTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('karat', function (Blueprint $table) {
$table->string('karat', 10)->nullable();
$table->string('keterangan', 20)->nullable();
$table->decimal('harga', 5)->nullable();
$table->integer('recno');
$table->decimal('harga2', 5)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('karat');
}
}
@@ -0,0 +1,44 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateLelmarhunTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('lelmarhun', function (Blueprint $table) {
$table->string('kodcaw', 10)->nullable();
$table->string('norujukan', 20)->nullable();
$table->date('t_gadai')->nullable();
$table->decimal('bil', 3, 0)->nullable();
$table->string('marhun', 30)->nullable();
$table->string('nota', 30)->nullable();
$table->string('karat', 10)->nullable();
$table->decimal('berat', 7)->nullable();
$table->decimal('harga', 5)->nullable();
$table->decimal('n_marhun', 9)->nullable();
$table->integer('batch_no')->nullable();
$table->decimal('hargaasas', 11)->nullable();
$table->integer('recno');
$table->decimal('hargaasas_sim', 7)->nullable();
$table->decimal('beratasal', 11)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('lelmarhun');
}
}
@@ -0,0 +1,119 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateLelongTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('lelong', function (Blueprint $table) {
$table->integer('batchno')->default(0);
$table->integer('sirilel')->nullable();
$table->string('kodcaw', 10)->nullable();
$table->string('norujukan', 20)->nullable();
$table->date('t_lelong')->nullable();
$table->decimal('hargaasas', 9)->nullable()->default(0);
$table->decimal('sandaran', 11)->default(0);
$table->decimal('hargajual', 9)->nullable()->default(0);
$table->string('glcode', 15)->nullable();
$table->date('t_jual')->nullable();
$table->integer('nopembeli')->nullable()->default(0);
$table->decimal('jbg', 7)->nullable()->default(0);
$table->decimal('kadarupah', 5)->default(0);
$table->decimal('upahsimpan', 7)->nullable();
$table->decimal('ansuran', 9)->nullable();
$table->decimal('nilaimarhun', 9)->default(0);
$table->decimal('pinjaman', 9)->default(0);
$table->decimal('bakipjmas', 9)->nullable();
$table->decimal('bakipjm', 9)->nullable();
$table->decimal('bakiupahas', 7)->nullable();
$table->decimal('bakiupah', 9)->default(0);
$table->decimal('cajlainas', 7)->nullable();
$table->decimal('cajlain', 7)->nullable();
$table->decimal('cajlelongas', 7)->nullable();
$table->decimal('cajlelong', 7)->default(0);
$table->decimal('baki', 9)->default(0);
$table->string('terima', 1)->nullable();
$table->tinyInteger('cetak')->default(0);
$table->string('teller', 20)->nullable();
$table->string('pelulus', 20)->nullable();
$table->string('pelulust', 7)->nullable();
$table->string('f_lulus', 1)->nullable();
$table->string('type', 1)->nullable();
$table->string('prkod', 2)->nullable();
$table->tinyInteger('tagsurat')->nullable();
$table->date('trkhtuntut')->nullable();
$table->string('tellertb', 7)->nullable();
$table->string('pelulustb', 7)->nullable();
$table->string('terimatb', 1)->nullable();
$table->date('t_hapuskira')->nullable();
$table->decimal('hapuskira', 7)->nullable();
$table->decimal('hkpjm', 9)->nullable();
$table->string('cancelid', 7)->nullable();
$table->time('canceltime')->nullable();
$table->string('kodgl', 15)->nullable();
$table->date('t_update')->nullable();
$table->decimal('berat', 7)->default(0);
$table->string('marhun')->nullable();
$table->integer('recno');
$table->decimal('lebihkurang', 9)->default(0);
$table->decimal('nilaimarhuns', 9)->default(0);
$table->integer('tagaid')->nullable();
$table->decimal('gst_hj', 7)->nullable();
$table->decimal('gst_cl', 7)->nullable();
$table->decimal('hargajual_sim', 7)->nullable();
$table->decimal('cajlelong_sim', 7)->nullable();
$table->decimal('gst_hj_sim', 7)->nullable();
$table->decimal('gst_cl_sim', 7)->nullable();
$table->decimal('bakiupah_sim', 7)->nullable();
$table->decimal('hargaasas_sim', 7)->nullable();
$table->string('mutu_terendah', 10)->nullable();
$table->decimal('harga_baru', 7)->nullable();
$table->decimal('turun', 7)->nullable();
$table->decimal('percent', 7)->nullable();
$table->decimal('baki_sim', 7)->nullable();
$table->decimal('hargalama', 7)->nullable();
$table->date('t_lelong_sim')->nullable();
$table->integer('tag_gst')->nullable();
$table->decimal('makan_pinj', 7)->nullable();
$table->decimal('baki_upah6', 7)->nullable();
$table->decimal('baki6', 7)->nullable();
$table->decimal('rugi_asal', 9)->default(0);
$table->string('tagpelanggan', 20)->nullable()->default('99');
$table->integer('fasa')->default(0);
$table->decimal('pmt', 11)->nullable();
$table->string('tagpmt', 20)->nullable();
$table->decimal('hargaasasasal', 11)->nullable();
$table->decimal('beratasal', 11)->default(0);
$table->integer(' loopsemak')->nullable();
$table->integer('lel1stop')->default(0);
$table->integer('jbg_lelong')->default(0);
$table->decimal('berat_plastik', 11)->nullable()->default(0);
$table->integer('status_bida_online')->default(0);
$table->string('nopelanggan', 14)->nullable();
$table->integer('tag_tbaki')->nullable();
$table->string('pel_tbaki', 20)->default('0');
$table->integer('tagcall')->default(0);
$table->decimal('ujrah', 9);
$table->decimal('onepercent', 9);
$table->tinyInteger('tagujrah')->default(0);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('lelong');
}
}
@@ -0,0 +1,39 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateLelongTebusTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('lelong_tebus', function (Blueprint $table) {
$table->integer('recno');
$table->date('tarikh')->nullable();
$table->string('teller', 100)->nullable();
$table->string('norujukan', 30)->nullable();
$table->string('batch_no', 10)->nullable();
$table->decimal('nilai_marhun', 11)->nullable();
$table->decimal('pinjaman', 11)->nullable();
$table->decimal('upah', 11)->nullable();
$table->integer('jbg')->nullable();
$table->string('jenis_tebus', 10)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('lelong_tebus');
}
}
@@ -0,0 +1,50 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMarhunTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('marhun', function (Blueprint $table) {
$table->string('kodcaw', 3)->nullable();
$table->string('norujukan', 20)->nullable();
$table->date('t_gadai')->nullable();
$table->decimal('bil', 3, 0)->nullable();
$table->string('marhun', 30)->nullable();
$table->string('nota', 30)->nullable();
$table->string('karat', 10)->nullable();
$table->decimal('berat', 7)->nullable();
$table->decimal('harga', 5)->nullable();
$table->decimal('n_marhun', 9)->nullable();
$table->tinyInteger('tags')->nullable();
$table->tinyInteger('cfmlelong')->nullable();
$table->decimal('hargas', 5)->nullable();
$table->decimal('n_marhuns', 7)->nullable();
$table->integer('recno');
$table->integer('new')->nullable();
$table->date('ttag')->nullable();
$table->decimal('hel', 9)->nullable();
$table->decimal('nml', 9)->nullable();
$table->decimal('berat_batu_permata', 7)->nullable();
$table->integer('tag_permata')->default(0);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('marhun');
}
}
@@ -0,0 +1,43 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateModalOnlineTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('modal_online', function (Blueprint $table) {
$table->bigIncrements('id');
$table->date('tarikh');
$table->string('kodcaw', 20);
$table->decimal('had', 12)->default(100000);
$table->decimal('digunakan', 12)->default(0);
$table->decimal('baki', 12)->default(100000);
$table->decimal('tambah', 12)->default(0);
$table->decimal('kurang', 12)->default(0);
$table->tinyInteger('ditutup')->default(0);
$table->string('ditutup_oleh', 100)->nullable();
$table->timestamp('ditutup_at')->nullable();
$table->timestamps();
$table->unique(['tarikh', 'kodcaw']);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('modal_online');
}
}
@@ -0,0 +1,39 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMohonAnggotaTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('mohon_anggota', function (Blueprint $table) {
$table->unsignedBigInteger('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();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('mohon_anggota');
}
}
@@ -0,0 +1,48 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMohonTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('mohon', function (Blueprint $table) {
$table->integer('id');
$table->date('tarikh')->nullable();
$table->string('norujukan', 20);
$table->decimal('siri', 9, 0)->default(0);
$table->mediumText('komen')->nullable();
$table->date('lastdategadai')->nullable();
$table->integer('bilgad')->default(0);
$table->decimal('jumpinj', 9)->default(0);
$table->string('jenistebus', 2);
$table->string('teller', 100)->nullable();
$table->string('pelulus', 100);
$table->string('peloperasi', 100);
$table->string('masalulus', 100);
$table->string('khazanah', 100);
$table->string('operasi', 100);
$table->decimal('margin', 10)->nullable();
$table->decimal('nilaimarhun', 10)->nullable();
$table->decimal('berat', 10)->nullable();
$table->string('status', 100)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('mohon');
}
}
@@ -0,0 +1,48 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMohonidTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('mohonid', function (Blueprint $table) {
$table->integer('recno');
$table->date('tarikh')->nullable();
$table->time('masa')->nullable()->comment('Time period');
$table->string('onlineid', 40)->nullable();
$table->string('mohon', 40)->nullable();
$table->string('norujukan', 20)->nullable();
$table->string('id', 40)->nullable();
$table->timestamp('timestamp_approved_by_pc')->nullable()->comment('Time Approved by PC');
$table->string('katalaluan', 50)->nullable();
$table->integer('benar')->nullable();
$table->string('teller', 100)->nullable();
$table->decimal('pinjaman', 10)->nullable();
$table->decimal('ansuran', 10)->default(0)->comment('Ansuran Amount');
$table->decimal('nilaimarhun', 10)->nullable();
$table->decimal('berat', 10)->nullable();
$table->decimal('margin', 4)->nullable();
$table->boolean('tagoperasi')->default(false)->comment('Tag Operasi');
$table->string('operasi')->nullable()->comment('Nama Operasi');
$table->timestamp('timestamp_approved_by_operasi')->nullable()->comment('Time approved by Operasi');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('mohonid');
}
}
@@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateNegeriTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('negeri', function (Blueprint $table) {
$table->string('kodnegeri', 3)->nullable();
$table->string('negeri', 25)->nullable();
$table->string('cutiumum', 1)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('negeri');
}
}
@@ -0,0 +1,43 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePalsuTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('palsu', function (Blueprint $table) {
$table->integer('recno');
$table->string('kodcaw', 10)->nullable();
$table->date('tarikh')->nullable();
$table->string('norujukan', 20)->nullable();
$table->string('teller', 20)->nullable();
$table->string('nota', 100)->nullable();
$table->decimal('pembiayaan', 11)->nullable()->comment('Pembiayaan amount');
$table->decimal('nilaimarhun', 11)->nullable()->comment('Nilai marhun amount');
$table->double('jbg', 4, 2)->nullable()->comment('JBG value');
$table->decimal('untung', 11)->nullable()->comment('Untung amount');
$table->decimal('untungonepercent', 11)->nullable()->comment('Satu Persen amount');
$table->decimal('untungcajlain', 11)->nullable()->comment('Caj Lain-Lain amount');
$table->string('jenis', 50)->nullable()->comment('Jenis/Type classification');
$table->unsignedSmallInteger('status')->default(0)->comment('Status value');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('palsu');
}
}
@@ -0,0 +1,39 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePampasanTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('pampasan', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('norujukan', 50)->unique();
$table->string('baucerno', 30)->index();
$table->string('kodcaw', 20)->index();
$table->decimal('jumlah_pampasan', 11);
$table->json('denominasi')->nullable();
$table->string('teller', 100);
$table->tinyInteger('status')->default(0)->comment('0 = belum dituntut, 1 = dituntut');
$table->timestamps();
$table->timestamp('agreement_printed_at')->nullable()->comment('Timestamp when agreement was printed');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('pampasan');
}
}
@@ -0,0 +1,42 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePanjarTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('panjar', function (Blueprint $table) {
$table->integer('recno');
$table->date('tarikh')->nullable();
$table->string('deskripsi', 100)->nullable();
$table->decimal('bayaran', 11)->nullable();
$table->longText('nota')->nullable();
$table->integer('tag')->nullable();
$table->string('kategori', 40)->nullable();
$table->string('nama', 40);
$table->string('id', 40)->nullable();
$table->decimal('bakiperubatan', 11)->nullable();
$table->string('nobaucer', 15)->nullable();
$table->integer('nobil')->nullable();
$table->string('tuntutoleh', 40)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('panjar');
}
}
@@ -0,0 +1,31 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePekerjaanTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('pekerjaan', function (Blueprint $table) {
$table->string('kodkerja', 2)->nullable();
$table->string('keterangan', 30)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('pekerjaan');
}
}
@@ -0,0 +1,38 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePembeliTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('pembeli', function (Blueprint $table) {
$table->integer('nopembeli');
$table->string('nokp', 14)->nullable();
$table->string('nama', 100)->nullable();
$table->string('alamat1', 300)->nullable();
$table->string('alamat2', 40)->nullable();
$table->string('alamat3', 40)->nullable();
$table->string('alamat4', 20)->nullable();
$table->string('telefon', 20)->nullable();
$table->integer('tag_syarikat')->nullable()->default(0);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('pembeli');
}
}
@@ -0,0 +1,61 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePembiayaanOnlineTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('pembiayaan_online', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('norujukan', 50)->index();
$table->string('nokp', 20);
$table->string('nopelanggan', 50)->nullable();
$table->string('nama_pelanggan', 150)->nullable();
$table->string('kodcaw', 20);
$table->decimal('pinjaman', 12);
$table->string('kodbank', 20)->nullable();
$table->string('nama_bank', 100)->nullable();
$table->string('noakaun', 50)->nullable();
$table->string('nama_akaun', 150)->nullable();
$table->unsignedBigInteger('bukti_akaun_file_id')->nullable();
$table->unsignedBigInteger('borang_file_id')->nullable();
$table->string('status', 30)->default('PENDING_PC');
$table->text('reject_reason')->nullable();
$table->string('rejected_by', 100)->nullable();
$table->timestamp('rejected_at')->nullable();
$table->unsignedBigInteger('batch_id')->nullable()->index();
$table->unsignedBigInteger('bukti_file_id')->nullable();
$table->string('no_rujukan_bayaran', 100)->nullable();
$table->date('tarikh_bayaran')->nullable();
$table->timestamp('paid_at')->nullable();
$table->string('created_by', 100)->nullable();
$table->string('pc_submitted_by', 100)->nullable();
$table->string('pc_verified_by', 100)->nullable();
$table->timestamp('pc_verified_at')->nullable();
$table->string('ops_by', 100)->nullable();
$table->text('nota')->nullable();
$table->tinyInteger('blast_sent')->default(0);
$table->timestamps();
$table->index(['kodcaw', 'status']);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('pembiayaan_online');
}
}
@@ -0,0 +1,98 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePeratusanTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('peratusan', function (Blueprint $table) {
$table->string('kodcaw', 10)->nullable();
$table->date('tarikhawal')->nullable();
$table->date('tarikhakhir')->nullable();
$table->decimal('upah', 11)->nullable();
$table->decimal('gadai', 11)->nullable();
$table->decimal('tebus', 11)->nullable();
$table->decimal('bakipb', 11)->nullable();
$table->decimal('nmgad', 9)->nullable();
$table->decimal('nmteb', 9)->nullable();
$table->integer('statgad')->nullable();
$table->integer('statteb')->nullable();
$table->integer('statpel')->nullable();
$table->decimal('per', 9)->nullable();
$table->integer('bilper')->nullable();
$table->integer('perbilper')->nullable();
$table->decimal('pinj', 9)->nullable();
$table->integer('perpinj')->nullable();
$table->decimal('nm', 9)->nullable();
$table->decimal('overpinj', 9)->nullable();
$table->decimal('pinjover', 9)->nullable();
$table->integer('bilpinjover')->nullable();
$table->decimal('nmover', 9)->nullable();
$table->decimal('berat14', 7)->nullable();
$table->decimal('nm14', 9)->nullable();
$table->decimal('nms14', 9)->nullable();
$table->decimal('beratm14', 7)->nullable();
$table->decimal('nmsm14', 9)->nullable();
$table->decimal('berat18', 7, 1)->nullable();
$table->decimal('nm18', 9)->nullable();
$table->decimal('nms18', 9)->nullable();
$table->decimal('beratm18', 7)->nullable();
$table->decimal('nmsm18', 9)->nullable();
$table->decimal('berat20', 7)->nullable();
$table->decimal('nm20', 9)->nullable();
$table->decimal('nms20', 9)->nullable();
$table->decimal('beratm20', 7)->nullable();
$table->decimal('nmsm20', 9)->nullable();
$table->decimal('berat21', 7)->nullable();
$table->decimal('nm21', 9)->nullable();
$table->decimal('nms21', 9)->nullable();
$table->decimal('beratm21', 7)->nullable();
$table->decimal('nmsm21', 9)->nullable();
$table->decimal('berat22', 7)->nullable();
$table->decimal('nm22', 9)->nullable();
$table->decimal('nms22', 9)->nullable();
$table->decimal('beratm22', 7)->nullable();
$table->decimal('nmsm22', 9)->nullable();
$table->decimal('berat23', 7)->nullable();
$table->decimal('nm23', 9)->nullable();
$table->decimal('nms23', 9)->nullable();
$table->decimal('beratm23', 7)->nullable();
$table->decimal('nmsm23', 9)->nullable();
$table->decimal('berat24', 7)->nullable();
$table->decimal('nm24', 9)->nullable();
$table->decimal('nms24', 9)->nullable();
$table->decimal('beratm24', 7)->nullable();
$table->decimal('nmsm24', 9)->nullable();
$table->decimal('jumberat', 7)->nullable();
$table->decimal('jumnm', 9)->nullable();
$table->decimal('jumnms', 9)->nullable();
$table->decimal('jumberatm', 7)->nullable();
$table->decimal('jumnmsm', 9)->nullable();
$table->decimal('bezarm', 10)->nullable();
$table->decimal('bezaper', 3)->nullable();
$table->decimal('jumberath', 11)->nullable();
$table->decimal('jumnmh', 11)->nullable();
$table->decimal('jumnmsh', 11)->nullable();
$table->decimal('jumberatb', 11)->nullable();
$table->decimal('jumnmsb', 11)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('peratusan');
}
}
@@ -0,0 +1,40 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePolisTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('polis', function (Blueprint $table) {
$table->date('tarikh')->nullable();
$table->string('kodcaw', 10)->nullable();
$table->string('norujukan', 20)->nullable();
$table->string('komen1', 30)->nullable();
$table->string('komen2', 30)->nullable();
$table->tinyInteger('tebus')->nullable();
$table->integer('recno');
$table->string('teller', 100)->nullable();
$table->decimal('caj', 9)->default(0);
$table->string('kodnegeri', 3)->nullable();
$table->string('koddaerah', 3)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('polis');
}
}
@@ -0,0 +1,89 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateProductTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('product', function (Blueprint $table) {
$table->string('prkod', 2);
$table->string('database', 8)->nullable();
$table->string('keterangan', 20)->nullable();
$table->integer('tempoh')->nullable();
$table->integer('tempohmax')->nullable();
$table->decimal('pinjaman', 7)->nullable();
$table->decimal('pinjaman2', 7)->nullable();
$table->decimal('marginmin', 5)->nullable();
$table->decimal('marginmax', 5)->nullable();
$table->decimal('marginansur', 7)->nullable();
$table->string('laporan', 40)->nullable();
$table->integer('lanjut1')->nullable();
$table->integer('lanjut2')->nullable();
$table->integer('matang')->nullable();
$table->integer('notis1')->nullable();
$table->integer('notis2')->nullable();
$table->integer('notis3')->nullable();
$table->tinyInteger('nt1')->nullable();
$table->tinyInteger('nt2')->nullable();
$table->tinyInteger('nt3')->nullable();
$table->tinyInteger('nt1a')->nullable();
$table->tinyInteger('nt2a')->nullable();
$table->tinyInteger('nt3a')->nullable();
$table->decimal('cajnotis3', 5)->nullable();
$table->decimal('cajnotis', 5)->nullable();
$table->integer('sks1')->nullable();
$table->integer('sks2')->nullable();
$table->integer('sks3')->nullable();
$table->integer('sks4')->nullable();
$table->integer('sks5')->nullable();
$table->integer('sks6')->nullable();
$table->tinyInteger('sks1n')->nullable();
$table->tinyInteger('sks2n')->nullable();
$table->tinyInteger('sks3n')->nullable();
$table->tinyInteger('sks4n')->nullable();
$table->tinyInteger('sks5n')->nullable();
$table->tinyInteger('sks6n')->nullable();
$table->string('pkadarupah', 1)->nullable();
$table->integer('hari')->nullable();
$table->string('kodgl', 15)->nullable();
$table->string('glcode', 15)->nullable();
$table->string('glcodebk', 15)->nullable();
$table->string('glcode_up', 15)->nullable();
$table->string('glcode_kc', 15)->nullable();
$table->string('glcode_cn', 15)->nullable();
$table->string('glcode_cl', 15)->nullable();
$table->string('glcode_hk', 15)->nullable();
$table->string('glcode_sc', 15)->nullable();
$table->string('glcode_up_jmc', 10)->default('5000/016');
$table->string('pilihtempoh', 1)->default('0');
$table->integer('harisebulan')->default(0);
$table->integer('hari15')->default(0);
$table->tinyInteger('jenisansur')->nullable();
$table->dateTime('tarikh')->nullable();
$table->string('gl_phk', 10)->nullable();
$table->string('gl_bp', 10)->nullable();
$table->string('gl_belumbp', 10)->nullable();
$table->string('glcode_upxtra', 15);
$table->string('glcode_clxtra', 15);
$table->string('glpd_xtra', 15);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('product');
}
}
@@ -0,0 +1,61 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateSimulasiLelongTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('simulasi_lelong', function (Blueprint $table) {
$table->integer('recNo');
$table->smallInteger('BatchNo')->nullable()->default(0);
$table->integer('SiriLel')->nullable()->default(0);
$table->string('KodCaw', 3)->nullable();
$table->string('NoRujukan', 20)->nullable();
$table->date('T_Lelong')->nullable();
$table->decimal('HargaAsas', 9)->nullable()->default(0);
$table->decimal('HargaJual', 9)->nullable()->default(0);
$table->date('T_Jual')->nullable();
$table->integer('NoPembeli')->nullable()->default(0);
$table->decimal('Jbg', 7)->nullable()->default(0);
$table->decimal('KadarUpah', 5)->nullable()->default(0);
$table->decimal('NilaiMarhun', 9)->nullable()->default(0);
$table->decimal('NilaiMarhunS', 9)->default(0);
$table->decimal('Pinjaman', 9)->nullable()->default(0);
$table->decimal('BakiUpah', 7)->nullable()->default(0);
$table->decimal('CajLain', 7)->nullable()->default(0);
$table->decimal('CajLelong', 7)->nullable()->default(0);
$table->decimal('Baki', 9)->nullable()->default(0);
$table->string('Terima', 1)->nullable();
$table->tinyInteger('Cetak')->nullable()->default(0);
$table->string('Teller', 7)->nullable();
$table->string('Pelulus', 7)->nullable();
$table->tinyInteger('TagSurat')->nullable()->default(0);
$table->date('TrkhTuntut')->nullable();
$table->decimal('Berat', 7)->nullable()->default(0);
$table->string('Marhun', 30)->nullable();
$table->decimal('percent', 9)->default(0);
$table->decimal('turun', 11)->default(0);
$table->decimal('hargalama', 11)->default(0);
$table->string('mutu_terendah', 4);
$table->decimal('harga_baru', 11)->default(0);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('simulasi_lelong');
}
}
@@ -0,0 +1,45 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateStokaudit10Table extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('stokaudit10', function (Blueprint $table) {
$table->integer('id');
$table->integer('tahun')->nullable();
$table->integer('bulan')->nullable();
$table->string('norujukan', 199)->nullable();
$table->decimal('tempoh', 9)->nullable();
$table->string('nokp', 199)->nullable();
$table->decimal('berat', 9)->nullable();
$table->decimal('nilaimarhun', 9)->nullable();
$table->decimal('pinjaman', 9)->nullable();
$table->decimal('bakipjm', 9)->nullable();
$table->decimal('kadarupah', 9)->nullable();
$table->decimal('tempohblmbyar', 9)->nullable();
$table->decimal('upahblmbyar', 9)->nullable();
$table->integer('lanjutan')->nullable();
$table->decimal('utgonepercent', 9);
$table->decimal('ujrah', 9);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('stokaudit10');
}
}
@@ -0,0 +1,45 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateStokaudit11Table extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('stokaudit11', function (Blueprint $table) {
$table->integer('id');
$table->integer('tahun')->nullable();
$table->integer('bulan')->nullable();
$table->string('norujukan', 199)->nullable();
$table->decimal('tempoh', 9)->nullable();
$table->string('nokp', 199)->nullable();
$table->decimal('berat', 9)->nullable();
$table->decimal('nilaimarhun', 9)->nullable();
$table->decimal('pinjaman', 9)->nullable();
$table->decimal('bakipjm', 9)->nullable();
$table->decimal('kadarupah', 9)->nullable();
$table->decimal('tempohblmbyar', 9)->nullable();
$table->decimal('upahblmbyar', 9)->nullable();
$table->integer('lanjutan')->nullable();
$table->decimal('utgonepercent', 9);
$table->decimal('ujrah', 9);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('stokaudit11');
}
}
@@ -0,0 +1,45 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateStokaudit12Table extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('stokaudit12', function (Blueprint $table) {
$table->integer('id');
$table->integer('tahun')->nullable();
$table->integer('bulan')->nullable();
$table->string('norujukan', 199)->nullable();
$table->decimal('tempoh', 9)->nullable();
$table->string('nokp', 199)->nullable();
$table->decimal('berat', 9)->nullable();
$table->decimal('nilaimarhun', 9)->nullable();
$table->decimal('pinjaman', 9)->nullable();
$table->decimal('bakipjm', 9)->nullable();
$table->decimal('kadarupah', 9)->nullable();
$table->decimal('tempohblmbyar', 9)->nullable();
$table->decimal('upahblmbyar', 9)->nullable();
$table->integer('lanjutan')->nullable();
$table->decimal('utgonepercent', 9);
$table->decimal('ujrah', 9);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('stokaudit12');
}
}
@@ -0,0 +1,45 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateStokaudit1Table extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('stokaudit1', function (Blueprint $table) {
$table->integer('id');
$table->integer('tahun')->nullable();
$table->integer('bulan')->nullable();
$table->string('norujukan', 199)->nullable();
$table->decimal('tempoh', 9)->nullable();
$table->string('nokp', 199)->nullable();
$table->decimal('berat', 9)->nullable();
$table->decimal('nilaimarhun', 9)->nullable();
$table->decimal('pinjaman', 9)->nullable();
$table->decimal('bakipjm', 9)->nullable();
$table->decimal('kadarupah', 9)->nullable();
$table->decimal('tempohblmbyar', 9)->nullable();
$table->decimal('upahblmbyar', 9)->nullable();
$table->integer('lanjutan')->nullable();
$table->decimal('utgonepercent', 9);
$table->decimal('ujrah', 9);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('stokaudit1');
}
}
@@ -0,0 +1,45 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateStokaudit2Table extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('stokaudit2', function (Blueprint $table) {
$table->integer('id');
$table->integer('tahun')->nullable();
$table->integer('bulan')->nullable();
$table->string('norujukan', 199)->nullable();
$table->decimal('tempoh', 9)->nullable();
$table->string('nokp', 199)->nullable();
$table->decimal('berat', 9)->nullable();
$table->decimal('nilaimarhun', 9)->nullable();
$table->decimal('pinjaman', 9)->nullable();
$table->decimal('bakipjm', 9)->nullable();
$table->decimal('kadarupah', 9)->nullable();
$table->decimal('tempohblmbyar', 9)->nullable();
$table->decimal('upahblmbyar', 9)->nullable();
$table->integer('lanjutan')->nullable();
$table->decimal('utgonepercent', 9);
$table->decimal('ujrah', 9);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('stokaudit2');
}
}
@@ -0,0 +1,45 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateStokaudit3Table extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('stokaudit3', function (Blueprint $table) {
$table->integer('id');
$table->integer('tahun')->nullable();
$table->integer('bulan')->nullable();
$table->string('norujukan', 199)->nullable();
$table->decimal('tempoh', 9)->nullable();
$table->string('nokp', 199)->nullable();
$table->decimal('berat', 9)->nullable();
$table->decimal('nilaimarhun', 9)->nullable();
$table->decimal('pinjaman', 9)->nullable();
$table->decimal('bakipjm', 9)->nullable();
$table->decimal('kadarupah', 9)->nullable();
$table->decimal('tempohblmbyar', 9)->nullable();
$table->decimal('upahblmbyar', 9)->nullable();
$table->integer('lanjutan')->nullable();
$table->decimal('utgonepercent', 9);
$table->decimal('ujrah', 9);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('stokaudit3');
}
}
@@ -0,0 +1,45 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateStokaudit4Table extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('stokaudit4', function (Blueprint $table) {
$table->integer('id');
$table->integer('tahun')->nullable();
$table->integer('bulan')->nullable();
$table->string('norujukan', 199)->nullable();
$table->decimal('tempoh', 9)->nullable();
$table->string('nokp', 199)->nullable();
$table->decimal('berat', 9)->nullable();
$table->decimal('nilaimarhun', 9)->nullable();
$table->decimal('pinjaman', 9)->nullable();
$table->decimal('bakipjm', 9)->nullable();
$table->decimal('kadarupah', 9)->nullable();
$table->decimal('tempohblmbyar', 9)->nullable();
$table->decimal('upahblmbyar', 9)->nullable();
$table->integer('lanjutan')->nullable();
$table->decimal('utgonepercent', 9);
$table->decimal('ujrah', 9);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('stokaudit4');
}
}
@@ -0,0 +1,45 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateStokaudit5Table extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('stokaudit5', function (Blueprint $table) {
$table->integer('id');
$table->integer('tahun')->nullable();
$table->integer('bulan')->nullable();
$table->string('norujukan', 199)->nullable();
$table->decimal('tempoh', 9)->nullable();
$table->string('nokp', 199)->nullable();
$table->decimal('berat', 9)->nullable();
$table->decimal('nilaimarhun', 9)->nullable();
$table->decimal('pinjaman', 9)->nullable();
$table->decimal('bakipjm', 9)->nullable();
$table->decimal('kadarupah', 9)->nullable();
$table->decimal('tempohblmbyar', 9)->nullable();
$table->decimal('upahblmbyar', 9)->nullable();
$table->integer('lanjutan')->nullable();
$table->decimal('utgonepercent', 9);
$table->decimal('ujrah', 9);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('stokaudit5');
}
}
@@ -0,0 +1,45 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateStokaudit6Table extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('stokaudit6', function (Blueprint $table) {
$table->integer('id');
$table->integer('tahun')->nullable();
$table->integer('bulan')->nullable();
$table->string('norujukan', 199)->nullable();
$table->decimal('tempoh', 9)->nullable();
$table->string('nokp', 199)->nullable();
$table->decimal('berat', 9)->nullable();
$table->decimal('nilaimarhun', 9)->nullable();
$table->decimal('pinjaman', 9)->nullable();
$table->decimal('bakipjm', 9)->nullable();
$table->decimal('kadarupah', 9)->nullable();
$table->decimal('tempohblmbyar', 9)->nullable();
$table->decimal('upahblmbyar', 9)->nullable();
$table->integer('lanjutan')->nullable();
$table->decimal('utgonepercent', 9);
$table->decimal('ujrah', 9);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('stokaudit6');
}
}
@@ -0,0 +1,45 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateStokaudit7Table extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('stokaudit7', function (Blueprint $table) {
$table->integer('id');
$table->integer('tahun')->nullable();
$table->integer('bulan')->nullable();
$table->string('norujukan', 199)->nullable();
$table->decimal('tempoh', 9)->nullable();
$table->string('nokp', 199)->nullable();
$table->decimal('berat', 9)->nullable();
$table->decimal('nilaimarhun', 9)->nullable();
$table->decimal('pinjaman', 9)->nullable();
$table->decimal('bakipjm', 9)->nullable();
$table->decimal('kadarupah', 9)->nullable();
$table->decimal('tempohblmbyar', 9)->nullable();
$table->decimal('upahblmbyar', 9)->nullable();
$table->integer('lanjutan')->nullable();
$table->decimal('utgonepercent', 9);
$table->decimal('ujrah', 9);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('stokaudit7');
}
}
@@ -0,0 +1,45 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateStokaudit8Table extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('stokaudit8', function (Blueprint $table) {
$table->integer('id');
$table->integer('tahun')->nullable();
$table->integer('bulan')->nullable();
$table->string('norujukan', 199)->nullable();
$table->decimal('tempoh', 9)->nullable();
$table->string('nokp', 199)->nullable();
$table->decimal('berat', 9)->nullable();
$table->decimal('nilaimarhun', 9)->nullable();
$table->decimal('pinjaman', 9)->nullable();
$table->decimal('bakipjm', 9)->nullable();
$table->decimal('kadarupah', 9)->nullable();
$table->decimal('tempohblmbyar', 9)->nullable();
$table->decimal('upahblmbyar', 9)->nullable();
$table->integer('lanjutan')->nullable();
$table->decimal('utgonepercent', 9);
$table->decimal('ujrah', 9);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('stokaudit8');
}
}
@@ -0,0 +1,45 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateStokaudit9Table extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('stokaudit9', function (Blueprint $table) {
$table->integer('id');
$table->integer('tahun')->nullable();
$table->integer('bulan')->nullable();
$table->string('norujukan', 199)->nullable();
$table->decimal('tempoh', 9)->nullable();
$table->string('nokp', 199)->nullable();
$table->decimal('berat', 9)->nullable();
$table->decimal('nilaimarhun', 9)->nullable();
$table->decimal('pinjaman', 9)->nullable();
$table->decimal('bakipjm', 9)->nullable();
$table->decimal('kadarupah', 9)->nullable();
$table->decimal('tempohblmbyar', 9)->nullable();
$table->decimal('upahblmbyar', 9)->nullable();
$table->integer('lanjutan')->nullable();
$table->decimal('utgonepercent', 9);
$table->decimal('ujrah', 9);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('stokaudit9');
}
}
@@ -0,0 +1,39 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateTangguhlelongTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('tangguhlelong', function (Blueprint $table) {
$table->integer('recno');
$table->smallInteger('batchno')->nullable();
$table->string('norujukan', 20)->nullable();
$table->date('tarikhtangguh')->nullable();
$table->string('nota', 30)->nullable();
$table->decimal('pinjaman', 11)->nullable();
$table->decimal('percentpinj', 9)->nullable();
$table->integer('jbg')->nullable();
$table->decimal('berat', 7)->nullable();
$table->integer('fasa')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('tangguhlelong');
}
}
@@ -0,0 +1,35 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateTarafTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('taraf', function (Blueprint $table) {
$table->string('taraf', 2)->nullable();
$table->string('keterangan', 25)->nullable();
$table->decimal('pinjmax', 5)->nullable();
$table->decimal('limittunait', 9)->nullable();
$table->decimal('limittunaip', 9)->nullable();
$table->decimal('maxpinjmohon', 9)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('taraf');
}
}
@@ -0,0 +1,86 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateTebusTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('tebus', function (Blueprint $table) {
$table->integer('sirit');
$table->string('kodcaw', 10)->nullable();
$table->string('norujukan', 20)->nullable();
$table->string('nopelanggan', 12)->nullable();
$table->string('jenisbyr', 2)->nullable();
$table->string('jenistebus', 1)->nullable();
$table->string('jeniscek', 2)->nullable();
$table->string('bankcode', 4)->nullable();
$table->string('nocek', 20)->nullable();
$table->decimal('cajcek', 5)->nullable()->default(0);
$table->string('glcode', 15)->nullable();
$table->date('t_jangka')->nullable();
$table->date('t_lunas')->nullable();
$table->date('t_tendang')->nullable();
$table->date('t_tebus')->nullable();
$table->decimal('jbg', 7)->nullable();
$table->decimal('kadarupah', 5)->nullable();
$table->decimal('upahsimpan', 7)->nullable();
$table->decimal('ansuran', 9)->nullable();
$table->decimal('nilaimarhun', 9)->nullable();
$table->decimal('addpinjaman', 7)->nullable();
$table->decimal('pinjaman', 9)->nullable();
$table->decimal('bakipjm', 9)->default(0);
$table->decimal('bakiupah', 7)->nullable();
$table->decimal('cajlain', 7)->nullable()->default(0);
$table->string('terima', 1)->nullable();
$table->integer('cetak')->nullable();
$table->string('teller', 100)->nullable();
$table->string('pelulus', 7)->nullable();
$table->string('pelulust', 7)->nullable();
$table->string('f_lulus', 1)->nullable();
$table->integer('nowakil')->nullable();
$table->string('prkod', 2)->nullable();
$table->string('cancelid', 7)->nullable();
$table->time('canceltime')->nullable();
$table->string('kodgl', 15)->nullable();
$table->decimal('upahasal', 7)->nullable()->default(0);
$table->string('nota', 30)->nullable();
$table->decimal('rebate', 7)->nullable();
$table->string('marhuntebus', 80)->nullable();
$table->tinyInteger('tiada')->nullable()->default(0);
$table->decimal('gantirugi', 9)->nullable()->default(0);
$table->date('trkhupah')->nullable();
$table->integer('tagterima')->nullable()->default(0);
$table->string('hubungan', 10)->nullable();
$table->decimal('upahpercuma', 11)->nullable();
$table->decimal('upahdibayar', 11)->default(0);
$table->string('historygadaian', 20)->nullable();
$table->decimal('pinjamanterkini', 11)->nullable();
$table->decimal('bayaranpampasan', 9)->nullable();
$table->decimal('byrnonline', 9)->nullable();
$table->decimal('byrnlebih', 9)->nullable();
$table->decimal('byrnkurang', 9)->nullable();
$table->date('tarikhbyrn')->nullable();
$table->decimal('ujrah', 9);
$table->decimal('onepercent', 9);
$table->decimal('diskaun_rebate', 12)->nullable()->default(0);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('tebus');
}
}
@@ -0,0 +1,40 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateTunaiTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('tunai', function (Blueprint $table) {
$table->date('tarikh')->nullable();
$table->string('kodcaw', 10)->nullable();
$table->string('kodlaluan', 100)->nullable();
$table->decimal('bakiawal', 11)->default(0);
$table->decimal('masuk', 11)->default(0);
$table->decimal('yuran', 7)->default(0);
$table->decimal('keluar', 11)->default(0);
$table->decimal('baki', 11)->default(0);
$table->decimal('tambah', 11)->default(0);
$table->decimal('kurang', 11)->default(0);
$table->integer('recno');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('tunai');
}
}
@@ -0,0 +1,51 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateTuntutbakiTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('tuntutbaki', function (Blueprint $table) {
$table->integer('recno');
$table->integer('batchno')->nullable()->default(0);
$table->string('jenis', 1)->nullable();
$table->string('kodcaw', 10)->nullable();
$table->string('norujukan', 20)->nullable();
$table->date('tarikh')->nullable();
$table->string('prkod', 2)->nullable();
$table->string('teller', 100)->nullable();
$table->string('pelulus', 20)->nullable();
$table->decimal('bakipjm', 9)->default(0);
$table->decimal('bakiupah', 7)->default(0);
$table->decimal('cajlain', 7)->default(0);
$table->decimal('cajlelong', 7)->default(0);
$table->string('kodgl', 15)->nullable();
$table->string('glcode', 15)->nullable();
$table->string('terima', 1)->nullable();
$table->string('f_lulus', 1)->nullable();
$table->decimal('jumlah', 7)->default(0);
$table->integer('nowakil')->default(0);
$table->decimal('hargajual', 9)->default(0);
$table->decimal('gst_cl', 9)->nullable()->default(0);
$table->decimal('gst_hj', 9)->nullable()->default(0);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('tuntutbaki');
}
}
@@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateUgamaTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('ugama', function (Blueprint $table) {
$table->string('kodugama', 2)->nullable();
$table->string('keterangan', 15)->nullable();
$table->integer('recno')->default(0);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('ugama');
}
}
@@ -0,0 +1,49 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateUpdateserverTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('updateserver', function (Blueprint $table) {
$table->date('tarikh')->nullable();
$table->decimal('gadai', 11)->nullable();
$table->decimal('bajetgadai', 11)->default(0);
$table->decimal('variansgadai', 11)->default(0);
$table->decimal('tebus', 11)->nullable();
$table->decimal('bajettebus', 11)->default(0);
$table->decimal('varianstebus', 11)->default(0);
$table->decimal('upah', 11)->nullable();
$table->decimal('upahbajet', 11)->default(0);
$table->decimal('variansupah', 11)->default(0);
$table->decimal('pinjamangadai', 11)->nullable();
$table->integer('customerbaru')->nullable();
$table->decimal('bakipetibesi', 11)->nullable();
$table->decimal('nilaimarhuntotal', 11)->nullable();
$table->decimal('vgadai', 11)->nullable();
$table->decimal('vtebus', 11)->nullable();
$table->decimal('vupah', 11)->nullable();
$table->decimal('vsumgadai', 11)->nullable();
$table->decimal('vsumtebus', 11)->nullable();
$table->decimal('vsumupah', 11)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('updateserver');
}
}
@@ -0,0 +1,53 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateVaultTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('vault', function (Blueprint $table) {
$table->string('kodcaw', 10)->nullable();
$table->date('tarikh')->nullable();
$table->decimal('bakiawal', 11)->default(0);
$table->decimal('keluar', 11)->default(0);
$table->decimal('masuk', 11)->default(0);
$table->decimal('bakiakhir', 11)->default(0);
$table->decimal('bakieod', 11)->default(0);
$table->integer('recno');
$table->decimal('pendahuluan', 11)->default(0);
$table->decimal('serahan', 11)->default(0);
$table->integer('1sen')->default(0);
$table->integer('5sen')->default(0);
$table->integer('10sen')->default(0);
$table->integer('20sen')->default(0);
$table->integer('50sen')->default(0);
$table->integer('rm1')->default(0);
$table->integer('rm2')->default(0);
$table->integer('rm5')->default(0);
$table->integer('rm10')->default(0);
$table->integer('rm20')->default(0);
$table->integer('rm50')->default(0);
$table->integer('rm100')->default(0);
$table->integer('rm1000')->default(0);
$table->decimal('totpanjar', 11)->default(0);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('vault');
}
}
@@ -0,0 +1,35 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateWakilSuratTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('wakil_surat', function (Blueprint $table) {
$table->unsignedBigInteger('id');
$table->string('nosiri')->nullable();
$table->string('no_surat')->nullable();
$table->string('norujukan')->nullable();
$table->string('t_cetak')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('wakil_surat');
}
}
@@ -0,0 +1,39 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateWakilTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('wakil', function (Blueprint $table) {
$table->string('nopelanggan', 12)->nullable();
$table->integer('nowakil');
$table->string('nama', 40)->nullable();
$table->string('nokp', 14)->nullable();
$table->string('hubungan', 20)->nullable();
$table->string('alamat1', 40)->nullable();
$table->string('alamat2', 40)->nullable();
$table->string('alamat3', 40)->nullable();
$table->string('telefon', 20)->nullable();
$table->string('nota', 20)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('wakil');
}
}
@@ -0,0 +1,45 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateWtdTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql2')->create('wtd', function (Blueprint $table) {
$table->string('norujukan', 20);
$table->date('tarikh')->nullable();
$table->string('nokp', 20)->nullable();
$table->string('nopelanggan', 20)->nullable();
$table->string('nama', 50);
$table->integer('batchno')->nullable();
$table->date('t_jual')->nullable();
$table->decimal('hargajual', 9)->nullable();
$table->decimal('pinjaman', 9)->nullable();
$table->decimal('bakiupah', 9)->nullable();
$table->decimal('cajlelong', 9)->nullable();
$table->decimal('gst_cl', 9)->nullable();
$table->decimal('baki', 9)->nullable();
$table->decimal('rugi', 9)->nullable();
$table->decimal('ansrugi', 9)->nullable();
$table->decimal('wtd', 9)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql2')->dropIfExists('wtd');
}
}
@@ -0,0 +1,42 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateAkruNetPecahanTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('akru_net_pecahan', function (Blueprint $table) {
$table->unsignedBigInteger('id')->primary();
$table->integer('tahun');
$table->integer('bulan');
$table->decimal('persen_semasa', 9);
$table->decimal('ujrah_semasa', 9);
$table->decimal('persen_sebelum', 9);
$table->decimal('ujrah_sebelum', 9);
$table->decimal('keuntungan_semasa_1persen', 9);
$table->decimal('keuntungan_semasa_ujrah', 9);
$table->decimal('baki_keun_blm_byr_1persen', 9);
$table->decimal('baki_keun_blm_byr_ujrah', 9);
$table->decimal('pend_akru_1persen', 9);
$table->decimal('pend_akru_ujrah', 9);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('akru_net_pecahan');
}
}
@@ -0,0 +1,36 @@
<?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->unsignedBigInteger('id')->primary();
$table->string('no_anggota')->nullable()->unique();
$table->string('nama');
$table->string('noic')->unique();
$table->string('no_tel')->nullable();
$table->tinyInteger('status')->default(1)->comment('1 = aktif, 0 = tidak aktif');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('anggota');
}
}
@@ -0,0 +1,35 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateArrahnFilesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('arrahn_files', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedBigInteger('files_id')->nullable()->index();
$table->longText('data')->nullable();
$table->string('filename')->nullable();
$table->string('type', 100)->nullable();
$table->string('tarikhmasa', 50)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('arrahn_files');
}
}
@@ -0,0 +1,41 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateArrahnMasterDbTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('arrahn_master_db', function (Blueprint $table) {
$table->integer('mid')->primary();
$table->string('ip_caw', 25);
$table->string('id_caw', 50);
$table->string('pwd_caw', 25)->default('');
$table->string('details_caw', 50);
$table->string('db_name', 50);
$table->string('kodcaw', 10);
$table->string('mysql', 10);
$table->integer('zone')->nullable();
$table->integer('group_id');
$table->char('version', 4)->default('v1');
$table->integer('tagarrahnbid')->default(0);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('arrahn_master_db');
}
}
@@ -0,0 +1,38 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateAuditCustomerTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('audit_customer', function (Blueprint $table) {
$table->integer('aid', true);
$table->string('username', 50)->default('');
$table->string('old_data', 5000)->default('');
$table->string('new_data', 5000)->default('');
$table->string('kodcaw', 50)->default('');
$table->timestamp('created_at');
$table->timestamp('updated_at')->nullable();
$table->string('customer_name', 100)->default('');
$table->string('customer_nokp', 50)->default('');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('audit_customer');
}
}
@@ -0,0 +1,38 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateAuditTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('audit', function (Blueprint $table) {
$table->increments('id');
$table->string('users', 199)->nullable();
$table->string('actions', 199)->nullable();
$table->string('norujukan', 199)->nullable();
$table->string('old_data', 5000)->nullable();
$table->string('new_data', 5000)->nullable();
$table->string('kodcaw', 199)->nullable();
$table->timestamps();
$table->string('details', 5000)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('audit');
}
}
@@ -0,0 +1,36 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateBajetTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('bajet', function (Blueprint $table) {
$table->integer('id')->primary();
$table->string('kodcaw', 50)->nullable();
$table->string('bulan', 50)->nullable();
$table->decimal('nilaibajet', 9)->nullable();
$table->timestamps();
$table->string('updated_by', 50)->nullable();
$table->integer('bajetid')->nullable()->index('FK_bajet_bajettahunan');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('bajet');
}
}
@@ -0,0 +1,34 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateBajettahunanTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('bajettahunan', function (Blueprint $table) {
$table->integer('id')->primary();
$table->string('kodcaw', 50)->nullable();
$table->date('tahun')->nullable();
$table->string('jenisbajet', 50)->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('bajettahunan');
}
}
@@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateBankTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('bank', function (Blueprint $table) {
$table->integer('id')->primary();
$table->string('name', 100)->default('0');
$table->string('abbreviation', 100)->default('0');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('bank');
}
}
@@ -0,0 +1,52 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateBsasOrdersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('bsas_orders', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('uuid', 64)->nullable()->unique();
$table->string('norujukan', 50)->index();
$table->string('kodcaw', 20)->index();
$table->string('serial_number', 20)->default('1');
$table->string('product_code', 50)->nullable();
$table->decimal('bid_value', 14)->nullable();
$table->decimal('otc_murabaha_value', 14)->nullable();
$table->string('otc_counter_party', 150)->nullable();
$table->string('status', 30)->default('pending')->index();
$table->integer('status_code')->nullable();
$table->string('status_message')->nullable();
$table->string('e_cert_no', 100)->nullable()->index();
$table->json('bid_ecert_response')->nullable();
$table->json('otc_ecert_response')->nullable();
$table->json('stb_ecert_response')->nullable();
$table->json('request_payload')->nullable();
$table->json('order_response')->nullable();
$table->json('result_response')->nullable();
$table->string('created_by', 100)->nullable();
$table->timestamps();
$table->index(['norujukan', 'status']);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('bsas_orders');
}
}
@@ -0,0 +1,36 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateCawanganFeatureTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('cawangan_feature', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('kodcaw', 20);
$table->string('feature', 64);
$table->tinyInteger('enabled')->default(0);
$table->timestamps();
$table->unique(['kodcaw', 'feature'], 'uniq_cawangan_feature');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('cawangan_feature');
}
}
@@ -0,0 +1,48 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateCawanganTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('cawangan', function (Blueprint $table) {
$table->integer('caw_id')->primary();
$table->string('caw_dbuser', 20);
$table->string('caw_dbpass', 20);
$table->string('caw_dbname', 20);
$table->string('caw_ip', 100);
$table->string('caw_host', 100);
$table->string('caw_name', 100);
$table->string('caw_code', 10);
$table->string('kategori', 10);
$table->string('nama_bank', 100);
$table->string('bank_acc', 100);
$table->string('bank_acc_no', 30);
$table->string('alamat1', 50);
$table->string('alamat2', 50);
$table->string('notel', 20);
$table->string('nofaks', 20);
$table->string('lokasi', 20);
$table->integer('pkb_jmc');
$table->string('aros', 30);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('cawangan');
}
}
@@ -0,0 +1,80 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateCustomerTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('customer', function (Blueprint $table) {
$table->bigInteger('id')->unique('nopelanggan');
$table->string('ahli', 1)->nullable();
$table->boolean('tag_anggota')->default(false);
$table->unsignedBigInteger('gambar_mykad')->nullable();
$table->string('kodcaw', 10)->nullable();
$table->integer('nosiri')->nullable();
$table->date('tarikhdaftar')->nullable();
$table->string('nopelanggan', 12)->default('');
$table->string('kplama', 14)->nullable()->index('kplama');
$table->string('kpbaru', 14)->nullable()->index('kpbaru');
$table->string('nama', 60)->nullable()->index('nama');
$table->date('t_lahir')->nullable();
$table->string('jantina', 1)->nullable();
$table->string('alamat1', 300)->nullable();
$table->string('alamat2', 40)->nullable();
$table->string('alamat3', 40)->nullable();
$table->string('alamat4', 20)->nullable();
$table->string('poskod', 5)->nullable();
$table->integer('koddaerah')->nullable();
$table->string('kodnegeri', 3)->nullable();
$table->string('telefon', 20)->nullable();
$table->decimal('jumpinjaman', 9)->nullable();
$table->date('t_gadai')->nullable();
$table->decimal('pinjamhari', 9)->nullable();
$table->string('bumiputra', 1)->nullable();
$table->string('warganegara', 1)->nullable();
$table->string('bangsa', 1)->nullable();
$table->string('kodkerja', 2)->nullable();
$table->string('kodugama', 2)->nullable();
$table->string('kodstatus', 3)->nullable();
$table->string('kodbank', 4)->nullable();
$table->string('noakaun', 20)->nullable();
$table->string('nota', 200)->nullable();
$table->string('teller', 100)->nullable();
$table->string('pelulus', 20)->nullable();
$table->date('t_ubah')->nullable();
$table->time('m_ubah')->nullable();
$table->string('aktif', 1)->nullable();
$table->decimal('yuranahli', 5)->nullable();
$table->string('nopelangganlama', 12)->nullable();
$table->string('tujuangadai', 30)->nullable();
$table->string('kodkerjabaru', 2)->nullable();
$table->integer('tagperingatan')->nullable();
$table->string('namateller', 100)->nullable();
$table->integer('kumpulan')->nullable();
$table->string('telefon2', 20)->nullable();
$table->string('tagpelanggan', 20)->nullable();
$table->string('nota_pekerjaan')->nullable();
$table->string('nota_arcc')->nullable();
$table->primary(['id']);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('customer');
}
}
@@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateDaerahTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('daerah', function (Blueprint $table) {
$table->integer('koddaerah')->index('koddaerah');
$table->string('namadaerah', 30)->nullable();
$table->string('kodnegeri', 3)->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('daerah');
}
}
@@ -0,0 +1,56 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateDenopanjarTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('denopanjar', function (Blueprint $table) {
$table->integer('no')->primary();
$table->string('kodlaluan', 100)->nullable();
$table->float('serahan', 9)->nullable();
$table->date('tarikh')->nullable();
$table->time('masa');
$table->integer('update')->default(0);
$table->string('jenis', 50)->nullable();
$table->integer('recno')->nullable()->index('recno');
$table->string('kodcaw', 50);
$table->integer('bd1')->nullable();
$table->integer('bd5')->nullable();
$table->integer('bd10')->nullable();
$table->integer('bd20')->nullable();
$table->integer('bd50')->nullable();
$table->integer('bd100')->nullable();
$table->integer('txtring1')->nullable();
$table->integer('txtring5')->nullable();
$table->integer('txtring10')->nullable();
$table->integer('txtring20')->nullable();
$table->integer('txtring50')->nullable();
$table->integer('txtring100')->nullable();
$table->integer('txtring1000')->nullable();
$table->integer('txtsen1')->nullable();
$table->integer('txtsen5')->nullable();
$table->integer('txtsen10')->nullable();
$table->integer('txtsen20')->nullable();
$table->integer('txtsen50')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('denopanjar');
}
}
@@ -0,0 +1,56 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateDenopendserTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('denopendser', function (Blueprint $table) {
$table->integer('no', true);
$table->string('kodlaluan', 100)->nullable();
$table->float('amaun', 9)->nullable();
$table->date('tarikh')->nullable();
$table->time('masa');
$table->integer('update')->default(0);
$table->string('jenis', 50)->nullable();
$table->integer('recno')->nullable()->index('recno');
$table->string('kodcaw', 50);
$table->integer('bd1')->nullable();
$table->integer('bd5')->nullable();
$table->integer('bd10')->nullable();
$table->integer('bd20')->nullable();
$table->integer('bd50')->nullable();
$table->integer('bd100')->nullable();
$table->integer('txtring1')->nullable();
$table->integer('txtring5')->nullable();
$table->integer('txtring10')->nullable();
$table->integer('txtring20')->nullable();
$table->integer('txtring50')->nullable();
$table->integer('txtring100')->nullable();
$table->integer('txtring1000')->nullable();
$table->integer('txtsen1')->nullable();
$table->integer('txtsen5')->nullable();
$table->integer('txtsen10')->nullable();
$table->integer('txtsen20')->nullable();
$table->integer('txtsen50')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('denopendser');
}
}
@@ -0,0 +1,33 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateFaqTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('faq', function (Blueprint $table) {
$table->unsignedInteger('id')->primary();
$table->string('tajuk', 2000);
$table->string('isikandungan', 5000);
$table->timestamp('reg_date');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('faq');
}
}

Some files were not shown because too many files have changed in this diff Show More