feat: move pelelong berlesen functions to operasi and update login and reports #4

Merged
ismailmasseran merged 2 commits from feat/remove-pelelong-berlesen into main 2026-10-06 11:26:49 +08:00
36 changed files with 717 additions and 638 deletions
Showing only changes of commit 2e10fe899f - Show all commits
@@ -40,6 +40,13 @@ class LoginController extends Controller
$this->middleware('guest')->except('logout');
}
protected function credentials(\Illuminate\Http\Request $request)
{
return array_merge($request->only($this->username(), 'password'), [
'status' => 'active',
]);
}
public function username()
{
return 'username';
+2 -2
View File
@@ -155,7 +155,7 @@ class HomeController extends Controller
}
}
} else { //operasi,jurulelong
} else { //operasi
$sag = LelongBid::where('status_semak', 0) //belum disemak
->get();
}
@@ -608,7 +608,7 @@ class HomeController extends Controller
}
}
if ($user->hasAnyRole('operasi', 'pengurus-operasi', 'jurulelong')) {
if ($user->hasAnyRole('operasi', 'pengurus-operasi')) {
$arrayinfo = [];
+2 -2
View File
@@ -1948,7 +1948,7 @@ class LelongController extends Controller
public function stopcawangan($id,$cawid)
{
event(new LelongNotify('start'));
event(new LelongNotify('stop'));
$currentdate = Carbon::now();
$currenttime = $currentdate->toTimeString();
$endtime = $currentdate->addHours(2);
@@ -1965,7 +1965,7 @@ class LelongController extends Controller
$lelong->save();
return redirect()->route('home')
->with('success','Lelongan bermula');
->with('success','Lelongan ditamatkan');
}
public function startall($id)
@@ -843,6 +843,8 @@ class ReportController extends Controller
$pdf = PDF::loadView('pdf.simulasireportbycust',compact('simulasilel','cawanganDetail','marhuns','simulasi_id','cawid','ktlhbyr','cawname'))
->setPaper('a4','potrait');
$pdf->setPaper('a4', 'landscape');
return $pdf->download('Laporan Simulasi Cawangan by Pelanggan.pdf');
+1
View File
@@ -37,6 +37,7 @@ class Kernel extends HttpKernel
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\EnsureActiveAccount::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
@@ -0,0 +1,30 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class EnsureActiveAccount
{
public function handle($request, Closure $next)
{
$guard = Auth::guard('web');
$user = $guard->user();
if ($user && $user->status !== 'active') {
$guard->logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
$message = 'Akaun anda tidak aktif. Sila hubungi pentadbir.';
if ($request->expectsJson()) {
return response()->json(['message' => $message], 403);
}
return redirect()->route('login')->withErrors(['username' => $message]);
}
return $next($request);
}
}
@@ -0,0 +1,35 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;
use Spatie\Permission\Models\Role;
use Spatie\Permission\PermissionRegistrar;
class TransferAuctionControlsToOperasi extends Migration
{
public function up()
{
$this->transfer('jurulelong', 'operasi');
}
public function down()
{
$this->transfer('operasi', 'jurulelong');
}
private function transfer($from, $to)
{
DB::transaction(function () use ($from, $to) {
$source = Role::where('name', $from)->where('guard_name', 'web')->first();
$target = Role::findOrCreate($to, 'web');
foreach (['lelongan', 'janapemenang'] as $permission) {
$target->givePermissionTo($permission);
if ($source) {
$source->revokePermissionTo($permission);
}
}
});
app(PermissionRegistrar::class)->forgetCachedPermissions();
}
}
@@ -0,0 +1,84 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
use Spatie\Permission\PermissionRegistrar;
class MergeJurulelongRoleIntoOperasi extends Migration
{
private $backup = 'jurulelong_role_merge_backup';
public function up()
{
if (!Schema::hasTable($this->backup)) {
Schema::create($this->backup, function (Blueprint $table) {
$table->unsignedBigInteger('id')->primary();
$table->longText('payload');
});
}
DB::transaction(function () {
$tables = config('permission.table_names');
$key = config('permission.column_names.role_pivot_key') ?: 'role_id';
foreach (DB::table($tables['roles'])->where('name', 'jurulelong')->get() as $role) {
$target = DB::table($tables['roles'])->where('name', 'operasi')
->where('guard_name', $role->guard_name)->first();
$snapshot = ['role' => (array) $role, 'renamed' => !$target, 'rows' => [], 'added' => []];
if (!$target) {
DB::table($tables['roles'])->where('id', $role->id)->update(['name' => 'operasi']);
} else {
foreach (['model_has_roles', 'role_has_permissions'] as $pivot) {
$snapshot['rows'][$pivot] = [];
$snapshot['added'][$pivot] = [];
foreach (DB::table($tables[$pivot])->where($key, $role->id)->get() as $row) {
$original = (array) $row;
$snapshot['rows'][$pivot][] = $original;
$replacement = $original;
$replacement[$key] = $target->id;
if (!DB::table($tables[$pivot])->where($replacement)->exists()) {
DB::table($tables[$pivot])->insert($replacement);
$snapshot['added'][$pivot][] = $replacement;
}
}
DB::table($tables[$pivot])->where($key, $role->id)->delete();
}
DB::table($tables['roles'])->where('id', $role->id)->delete();
}
DB::table($this->backup)->insert([
'id' => $role->id,
'payload' => json_encode($snapshot, JSON_THROW_ON_ERROR),
]);
}
});
app(PermissionRegistrar::class)->forgetCachedPermissions();
}
public function down()
{
DB::transaction(function () {
$tables = config('permission.table_names');
foreach (DB::table($this->backup)->get() as $backup) {
$snapshot = json_decode($backup->payload, true, 512, JSON_THROW_ON_ERROR);
if ($snapshot['renamed']) {
DB::table($tables['roles'])->where('id', $backup->id)->update($snapshot['role']);
} else {
DB::table($tables['roles'])->insert($snapshot['role']);
foreach ($snapshot['rows'] as $pivot => $rows) {
foreach ($snapshot['added'][$pivot] as $row) {
DB::table($tables[$pivot])->where($row)->delete();
}
foreach ($rows as $row) {
DB::table($tables[$pivot])->insert($row);
}
}
}
}
});
Schema::dropIfExists($this->backup);
app(PermissionRegistrar::class)->forgetCachedPermissions();
}
}
+4 -16
View File
@@ -82,7 +82,7 @@ class RolesSeeder extends Seeder
'description' => 'Wang Tidak Dituntut Cawangan'
]);
//jurulelong
//operasi
Permission::create([
'name' => 'pendaftaranbatch',
'description' => 'Daftar batch lelong'
@@ -238,14 +238,10 @@ class RolesSeeder extends Seeder
$role4->givePermissionTo('pengurusangambar');
$role4->givePermissionTo('WTDcaw');
$role5 = Role::create(['name' => 'jurulelong']);
$role5->givePermissionTo('pendaftaranbatch');
$role5->givePermissionTo('kemaskinihargaasas');
$role5->givePermissionTo('import');
$role5->givePermissionTo('lelongan');
$role5->givePermissionTo('janapemenang');
$role6 = Role::create(['name' => 'operasi']);
$role6->givePermissionTo('import');
$role6->givePermissionTo('lelongan');
$role6->givePermissionTo('janapemenang');
$role6->givePermissionTo('pengguna');
$role6->givePermissionTo('pendaftaranbatch');
$role6->givePermissionTo('report');
@@ -342,14 +338,6 @@ class RolesSeeder extends Seeder
]);
$user->assignRole($role4);
$user = \App\Models\User::factory()->create([
'name' => 'Juru Lelong',
'username' => 'Juru Lelong',
'email' => 'jurulelong@example.com',
'user_type' => 1
]);
$user->assignRole($role5);
$user = \App\Models\User::factory()->create([
'name' => 'Operasi',
'username' => 'Operasi',
+49
View File
@@ -0,0 +1,49 @@
* { box-sizing: border-box; }
:root { --teal: #008e95; --teal-dark: #00686e; --yellow: #ffce1b; --ink: #183b3e; }
body { margin: 0; min-height: 100vh; padding: 48px 28px; display: grid; place-items: center; background: #edf4f3; color: var(--ink); font-family: 'Segoe UI', Arial, sans-serif; }
.login-shell { width: min(1100px, 100%); min-height: 680px; display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; border: 1px solid #dbe7e5; border-radius: 26px; background: white; box-shadow: 0 24px 70px #164f4d12; }
.brand-panel { position: relative; overflow: hidden; padding: 48px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: linear-gradient(145deg, #00969b, #007d84); color: white; }
.brand-logo { position: relative; z-index: 1; width: 250px; max-width: 100%; height: auto; }
.brand-copy { position: relative; z-index: 1; margin: 36px 0; }
.eyebrow { display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 11px; font-weight: 700; letter-spacing: 2px; }
.eyebrow span { width: 7px; height: 7px; background: var(--yellow); border-radius: 50%; }
h1 { margin: 22px 0; font-size: clamp(34px, 3.5vw, 48px); line-height: 1.2; font-weight: 650; letter-spacing: -1.8px; }
h1 em { color: var(--yellow); font-style: normal; }
.brand-copy p { max-width: 340px; color: #e2f3f3; font-size: 15px; line-height: 1.85; }
.brand-divider { height: 3px; width: 42px; background: var(--yellow); margin: 30px auto 18px; }
.brand-caption { font-size: 12px; color: #e2f3f3; letter-spacing: .4px; }
.brand-bottom { display: flex; align-items: center; gap: 13px; justify-content: center; margin-top: 32px; position: relative; z-index: 1; font-size: 11px; line-height: 1.65; color: #e2f3f3; }
.brand-mark { width: 37px; height: 37px; display: grid; place-items: center; border: 1px solid #ffffff55; border-radius: 10px; color: var(--yellow); font-size: 17px; font-weight: 700; }
.brand-orbit { position: absolute; width: 420px; height: 420px; bottom: -235px; right: -200px; border: 1px solid #ffffff29; border-radius: 50%; box-shadow: 0 0 0 45px #ffffff06, 0 0 0 90px #ffffff05; }
.form-panel { padding: 70px 56px 28px; display: flex; flex-direction: column; justify-content: center; }
.form-content { width: 100%; margin: auto 0; }
.section-label { color: var(--teal-dark); font-size: 10px; font-weight: 700; letter-spacing: 2px; }
h2 { margin: 14px 0 10px; font-size: 36px; letter-spacing: -1.2px; font-weight: 650; }
.form-intro { margin: 0 0 34px; color: #64797a; font-size: 14px; line-height: 1.7; }
.field { margin-bottom: 22px; }
label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 9px; }
input { width: 100%; height: 52px; border: 1px solid #cfddda; border-radius: 9px; padding: 0 15px; background: #fcfdfd; font: inherit; font-size: 14px; color: var(--ink); }
input::placeholder { color: #7c8f90; }
input:focus { outline: 3px solid #008e9524; border-color: var(--teal); background: white; }
input[aria-invalid="true"] { border-color: #b73131; }
.password-field { position: relative; }
.password-field input { padding-right: 72px; }
button, a { -webkit-tap-highlight-color: transparent; }
.password-toggle { position: absolute; right: 8px; top: 6px; height: 40px; padding: 0 10px; border: 0; border-radius: 6px; color: var(--teal-dark); background: transparent; cursor: pointer; font: inherit; font-size: 12px; font-weight: 600; }
.form-links { display: flex; justify-content: flex-end; margin: -6px 0 25px; }
a { color: var(--teal-dark); font-size: 13px; font-weight: 600; text-decoration: none; }
a:hover { text-decoration: underline; }
button:focus-visible, a:focus-visible { outline: 3px solid var(--teal); outline-offset: 4px; }
.submit-button { width: 100%; display: flex; align-items: center; justify-content: center; gap: 18px; min-height: 52px; border: 0; border-radius: 9px; background: var(--yellow); color: #233f3c; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; transition: background .15s; }
.submit-button:hover { background: #f3c112; }
.submit-button span { font-size: 22px; line-height: 1; }
.form-note { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 26px; color: #718483; font-size: 11px; }
.note-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--teal); }
footer { padding-top: 55px; text-align: center; color: #6a7f7d; font-size: 10px; line-height: 1.7; }
.notice { padding: 13px 15px; border-radius: 8px; margin-bottom: 20px; font-size: 13px; line-height: 1.5; }
.notice-success { background: #e5f5ed; color: #216348; }
.notice-error { background: #fff0ee; color: #a32626; }
.field-error { color: #a32626; font-size: 12px; margin: 8px 0 0; line-height: 1.5; }
@media (max-width: 800px) { body { padding: 24px; } .brand-panel { padding: 34px; } .form-panel { padding: 42px 30px 24px; } h1 { font-size: 36px; } }
@media (max-width: 600px) { body { padding: 18px 14px; } .login-shell { grid-template-columns: 1fr; min-height: auto; border-radius: 20px; } .brand-panel { padding: 28px; } .brand-logo { width: 210px; } .brand-copy { margin: 26px 0 0; } .eyebrow { font-size: 9px; } h1 { font-size: 32px; margin: 15px 0 10px; } .brand-copy p, .brand-divider, .brand-caption, .brand-bottom { display: none; } .form-panel { padding: 32px 26px 24px; } h2 { font-size: 30px; } .form-intro { margin-bottom: 25px; } footer { padding-top: 35px; } }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }
+2 -2
View File
@@ -27,8 +27,8 @@
@hasrole('pengurus-cawangan')
I am a pengurus-cawangan!
@endhasrole
@hasrole('jurulelong')
I am a jurulelong!
@hasrole('operasi')
I am an operasi user!
@endhasrole
@hasrole('operasi')
I am a operasi!
+70 -98
View File
@@ -1,104 +1,76 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>E-Rahn Lelong</title>
<!-- Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap" rel="stylesheet">
<!-- Styles -->
<link rel="stylesheet" href="{{ asset('css/neon.css?version=2') }}">
<style>
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-t{border-top-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.dark\:text-gray-500{--tw-text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--tw-text-opacity))}}
</style>
<style>
body {
font-family: 'Nunito', sans-serif;
}
</style>
</head>
<body class="">
<div class="d-flex align-items-center py-5 cover justify-content-center section-fade-out bg-image">
<div class="container p-5 shadow-lg bg-login-text">
<div class="row">
<div class="col-md-6 d-flex flex-column justify-content-center align-items-center border-right">
<img src="{{ asset('img/erahn-lelong.jpeg') }}" alt="Italian Trulli" style="width:250px;height:80px;">
{{-- <h1 class="text-light"><i class="fa fa-fw fa-gavel"></i>E-Rahn Lelong</h1> --}}
<p class="pb-4 text-light">Sistem Lelongan Atas Talian</p>
<h3>-ADMIN-</h3>
</div>
<div class="col-md-6 flex-column active show p-5 border-left">
<form method="POST" action="{{ route('login') }}">
<html lang="ms">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Log Masuk | e-rahn.Lelong</title>
<link rel="icon" href="{{ asset('img/arrahn_favicon.ico') }}">
<link rel="stylesheet" href="{{ asset('css/login.css') }}?v=2">
</head>
<body>
<main class="login-shell">
<section class="brand-panel" aria-label="e-rahn.Lelong">
<img class="brand-logo" src="{{ asset('img/erahn-lelong.jpeg') }}" alt="e-rahn.Lelong">
<div class="brand-copy">
<span class="eyebrow"><span></span> PORTAL PENGURUSAN</span>
<div class="brand-divider"></div>
<span class="brand-caption">Sistem Lelongan Atas Talian</span>
</div>
<div class="brand-bottom"><span class="brand-mark">e-r</span><span>Koperasi Permodalan<br>Kelantan Berhad</span></div>
<div class="brand-orbit" aria-hidden="true"></div>
</section>
<section class="form-panel" aria-labelledby="login-title">
<div class="form-content">
<span class="section-label">SELAMAT KEMBALI</span>
<h2 id="login-title">Log masuk</h2>
<p class="form-intro">Masukkan maklumat akaun anda untuk meneruskan.</p>
@if (session('success'))
<div class="notice notice-success" role="status">{{ session('success') }}</div>
@endif
@if (session('failed'))
<div class="notice notice-error" role="alert">{{ session('failed') }}</div>
@endif
<form method="POST" action="{{ route('login') }}">
@csrf
<div class="form-group">
<input id="username" type="text" class="form-control @error('username') is-invalid @enderror" name="username" value="{{ old('username') }}" required autocomplete="username" placeholder="Username" autofocus>
{{-- <input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" placeholder="Email" autofocus>
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror --}}
@if (Session::has("success"))
<div class="alert alert-success alert-dismissible fade show">
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
{{ Session::get('success') }}
</div>
@elseif (Session::has("failed"))
<div class="alert alert-danger alert-dismissible fade show">
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
{{ Session::get('failed') }}
</div>
@endif
@error('username')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="form-group mb-3">
{{-- <input type="password" class="form-control" placeholder="Katalaluan" id="form10"> --}}
<input id="password" placeholder="Katalaluan" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="current-password">
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
{{-- <small class="form-text text-muted text-right">
<a href="{{ route('termasyarat') }}" class="link-terma text-light"> Sila Baca Terma Dan Syarat&nbsp;Terlebih Dahulu Klik Disini</a>
</small> --}}
<div class="field">
<label for="username">Nama pengguna</label>
<input id="username" type="text" name="username" value="{{ old('username') }}"
placeholder="Masukkan nama pengguna" required autocomplete="username" autofocus
@error('username') aria-invalid="true" aria-describedby="username-error" @enderror>
@error('username')
<p class="field-error" id="username-error" role="alert">{{ $message }}</p>
@enderror
</div>
<div class="text-center">
<button type="submit" class="btn btn-primary">
{{ __('Login') }}
</button>
<div class="form-group text-end">
<a href="{{ route('forgot-password') }}" class="nav-link"> Lupa Katalaluan?</a>
</div>
{{-- <a class="btn navbar-btn text-white mx-2 btn-primary" href="../../lelong-sketch/admin/dashboardadmin.html">Log Masuk</a> --}}
<div class="field">
<label for="password">Kata laluan</label>
<div class="password-field">
<input id="password" type="password" name="password" placeholder="Masukkan kata laluan"
required autocomplete="current-password"
@error('password') aria-invalid="true" aria-describedby="password-error" @enderror>
<button class="password-toggle" type="button" id="password-toggle" aria-controls="password" aria-pressed="false" hidden>Papar</button>
</div>
@error('password')
<p class="field-error" id="password-error" role="alert">{{ $message }}</p>
@enderror
</div>
</form>
</div>
</div>
<div class="form-links"><a href="{{ route('forgot-password') }}">Lupa kata laluan?</a></div>
<button class="submit-button" type="submit">Log masuk <span aria-hidden="true">&rarr;</span></button>
</form>
<div class="form-note"><span class="note-dot" aria-hidden="true"></span>Akses untuk pengguna berdaftar</div>
</div>
</div>
<footer class="text-light">
<div class="py-3">
<div class="container">
<div class="row">
<div class="col-md-12 text-center">
<p class="mb-0"> E-Rahn Lelong © Koperasi Permodalan Kelantan Berhad</p>
</div>
</div>
</div>
</div>
</footer>
</body>
<footer>&copy; {{ date('Y') }} Koperasi Permodalan Kelantan Berhad</footer>
</section>
</main>
<script>
const toggle = document.getElementById('password-toggle');
const password = document.getElementById('password');
toggle.hidden = false;
toggle.addEventListener('click', function () {
const visible = password.type === 'password';
password.type = visible ? 'text' : 'password';
toggle.textContent = visible ? 'Sorok' : 'Papar';
toggle.setAttribute('aria-pressed', String(visible));
});
</script>
</body>
</html>
+3 -3
View File
@@ -118,8 +118,8 @@
</div>
</div>
@endhasrole
@hasrole('jurulelong')
Saya jurulelong!
@hasrole('operasi')
Saya operasi!
<div class="container">
<div class="row">
<div class="col-6 col-sm-4">
@@ -200,7 +200,7 @@
<!-- <td>{{$lel['info']['cajlelong']}}</td> -->
<td class="text-center">
@hasrole('jurulelong')
@hasrole('operasi')
<!-- @if($lel['info']['sts_lelong'] == 0) -->
<!-- <a href="{{ route('lelong.refreshhome',$lel['info']['lelong_id']) }}" data-toggle="tooltip" data-placement="top" title="Kemaskini Data" style="margin-right:40px"><i class="fas fa-sync-alt"></i></a> -->
+3 -3
View File
@@ -176,8 +176,8 @@
</div>
</div>
@endhasrole
@hasrole('jurulelong')
Saya jurulelong!
@hasrole('operasi')
Saya operasi!
<div class="container">
<div class="row">
<div class="col-6 col-sm-4">
@@ -258,7 +258,7 @@
<!-- <td>{{$lel['info']['cajlelong']}}</td> -->
<td class="text-center">
@hasrole('jurulelong')
@hasrole('operasi')
<!-- @if($lel['info']['sts_lelong'] == 0) -->
<!-- <a href="{{ route('lelong.refreshhome',$lel['info']['lelong_id']) }}" data-toggle="tooltip" data-placement="top" title="Kemaskini Data" style="margin-right:40px"><i class="fas fa-sync-alt"></i></a> -->
+3 -3
View File
@@ -26,8 +26,8 @@
@hasrole('pengurus-cawangan')
I am a pengurus-cawangan!
@endhasrole
@hasrole('jurulelong')
I am a jurulelong!
@hasrole('operasi')
I am an operasi user!
<table class="table table-striped table-xl text-center" id="tablelelong" style="width:100%">
<thead class="bg-primary text-white">
<tr>
@@ -80,7 +80,7 @@
<!-- <td>{{$lel['info']['cajlelong']}}</td> -->
<td class="text-center">
@hasrole('jurulelong')
@hasrole('operasi')
<!-- @if($lel['info']['sts_lelong'] == 0) -->
<a href="{{ route('lelong.refreshhome',$lel['info']['lelong_id']) }}" data-toggle="tooltip" data-placement="top" title="Kemaskini Data" style="margin-right:40px"><i class="fas fa-sync-alt"></i></a>
+3 -3
View File
@@ -208,8 +208,8 @@
</div>
</div>
@endhasrole
@hasrole('jurulelong')
{{-- Saya jurulelong! --}}
@hasrole('operasi')
{{-- Kawalan lelong oleh operasi. --}}
{{-- <div class="container">
<div class="row">
<div class="col-6 col-sm-4">
@@ -290,7 +290,7 @@
<!-- <td>{{$lel['info']['cajlelong']}}</td> -->
<td class="text-center">
@hasrole('jurulelong')
@hasrole('operasi')
<!-- @if($lel['info']['sts_lelong'] == 0) -->
<!-- <a href="{{ route('lelong.refreshhome',$lel['info']['lelong_id']) }}" data-toggle="tooltip" data-placement="top" title="Kemaskini Data" style="margin-right:40px"><i class="fas fa-sync-alt"></i></a> -->
+3 -3
View File
@@ -118,8 +118,8 @@
</div>
</div>
@endhasrole
@hasrole('jurulelong')
Saya jurulelong!
@hasrole('operasi')
Saya operasi!
<div class="container">
<div class="row">
<div class="col-6 col-sm-4">
@@ -200,7 +200,7 @@
<!-- <td>{{$lel['info']['cajlelong']}}</td> -->
<td class="text-center">
@hasrole('jurulelong')
@hasrole('operasi')
<!-- @if($lel['info']['sts_lelong'] == 0) -->
<!-- <a href="{{ route('lelong.refreshhome',$lel['info']['lelong_id']) }}" data-toggle="tooltip" data-placement="top" title="Kemaskini Data" style="margin-right:40px"><i class="fas fa-sync-alt"></i></a> -->
+2 -3
View File
@@ -12,7 +12,7 @@
{{ session('status') }}
</div>
@endif
@hasrole('jurulelong')
@hasrole('operasi')
@if(count($arrayinfo)> 0)
@foreach ($arrayinfo as $lel)
<div class="card container my-4">
@@ -125,8 +125,7 @@
@if($cawangan_detail['status_online'] == 0 && $cawangan_detail['belum_semak'] == 0)
<a class="btn btn-success btn-sm" href="{{ route('lelong.startcawangan',[$lel['info']['id'], 'cawid'=>$cawangan_detail['caw_id']]) }}" data-toggle="tooltip" data-placement="top" title="Mula Lelong Cawangan">Mula Lelong</a>
@elseif($cawangan_detail['status_online'] == 1)
<a class="btn btn-danger btn-sm" data-placement="top" title="Tamat Lelong Cawangan">Tamat Lelong</a>
<!-- <a class="btn btn-danger btn-sm" href="{{ route('lelong.stopcawangan',[$lel['info']['id'], 'cawid'=>$cawangan_detail['caw_id']]) }}" data-toggle="tooltip" data-placement="top" title="Tamat Lelong Cawangan">Tamat Lelong</a> -->
<a class="btn btn-danger btn-sm" href="{{ route('lelong.stopcawangan',[$lel['info']['id'], 'cawid'=>$cawangan_detail['caw_id']]) }}" data-toggle="tooltip" data-placement="top" title="Tamat Lelong Cawangan">Tamat Lelong</a>
@endif
@elseif($lel['info']['sts_lelong'] == 2)
@endif
+3 -3
View File
@@ -119,8 +119,8 @@
</div>
</div>
@endhasrole
@hasrole('jurulelong')
Saya jurulelong!
@hasrole('operasi')
Saya operasi!
<div class="container">
<div class="row">
<div class="col-6 col-sm-4">
@@ -201,7 +201,7 @@
<!-- <td>{{$lel['info']['cajlelong']}}</td> -->
<td class="text-center">
@hasrole('jurulelong')
@hasrole('operasi')
<!-- @if($lel['info']['sts_lelong'] == 0) -->
<!-- <a href="{{ route('lelong.refreshhome',$lel['info']['lelong_id']) }}" data-toggle="tooltip" data-placement="top" title="Kemaskini Data" style="margin-right:40px"><i class="fas fa-sync-alt"></i></a> -->
+29 -123
View File
@@ -673,6 +673,35 @@
</li>
@endhasrole
@hasrole('operasi')
<li>
<a href="#juruLelongOperasiSubmenu" data-toggle="collapse"
aria-expanded="{{ request()->is('home', 'home/*', 'lelong/senarailelong', 'lelong/senarailelong/*', 'lelong/senarailelongtaklaku', 'lelong/senarailelongtaklaku/*', 'pemenang/listcawangan', 'pemenang/listcawangan/*', 'pemenang/listpemenang', 'pemenang/listpemenang/*') ? 'true' : 'false' }}" aria-controls="juruLelongOperasiSubmenu">
<div class="sidebar-menu">
<div class="sidebar-menu-main-title">
<span class="material-symbols-rounded sidebar-menu-item-main">gavel</span>
Juru Lelong
</div>
<span class="material-symbols-rounded sidebar-menu-item-expand">expand_more</span>
</div>
</a>
<ul class="list-unstyled collapse {{ request()->is('home', 'home/*', 'lelong/senarailelong', 'lelong/senarailelong/*', 'lelong/senarailelongtaklaku', 'lelong/senarailelongtaklaku/*', 'pemenang/listcawangan', 'pemenang/listcawangan/*', 'pemenang/listpemenang', 'pemenang/listpemenang/*') ? 'show' : '' }}" id="juruLelongOperasiSubmenu">
<li class="{{ request()->is('home', 'home/*') ? 'active' : '' }}">
<a href="{{ url('home') }}">ON/OFF Lelong</a>
</li>
<li class="{{ request()->is('lelong/senarailelong', 'lelong/senarailelong/*') ? 'active' : '' }}">
<a href="{{ url('lelong/senarailelong') }}">Senarai Lelong</a>
</li>
<li class="{{ request()->is('lelong/senarailelongtaklaku', 'lelong/senarailelongtaklaku/*') ? 'active' : '' }}">
<a href="{{ url('lelong/senarailelongtaklaku') }}">Senarai Lelong Tidak Laku</a>
</li>
<li class="{{ request()->is('pemenang/listcawangan', 'pemenang/listcawangan/*') ? 'active' : '' }}">
<a href="{{ url('pemenang/listcawangan') }}">Jana Pemenang</a>
</li>
<li class="{{ request()->is('pemenang/listpemenang', 'pemenang/listpemenang/*') ? 'active' : '' }}">
<a href="{{ url('pemenang/listpemenang') }}">Senarai Pemenang</a>
</li>
</ul>
</li>
<li>
<a href="#analisaSubmenu" data-toggle="collapse" aria-expanded="false">
<div class="sidebar-menu">
@@ -742,18 +771,10 @@
</a>
<ul class="list-unstyled collapse {{ (request()->is('lelong/*') ? 'show' : '' || request()->is('jananotis/*')) ? 'show' : '' }}"
id="lelongSubmenu">
<li
class="{{ request()->is('lelong/senarailelong/*') || request()->is('lelong/senarailelong') ? 'active' : '' }}">
<a href="{{ url('lelong/senarailelong') }}">Senarai Lelong</a>
</li>
<li
class="{{ request()->is('lelong/senarailelongall/*') || request()->is('lelong/senarailelongall') ? 'active' : '' }}">
<a href="{{ url('lelong/senarailelongall') }}">Senarai Lelong All</a>
</li>
<li
class="{{ request()->is('lelong/senarailelongtaklaku/*') || request()->is('lelong/senarailelongtaklaku') ? 'active' : '' }}">
<a href="{{ url('lelong/senarailelongtaklaku') }}">Senarai Lelong Tidak Laku</a>
</li>
<li
class="{{ request()->is('lelong/pindahsenarailelong/*') || request()->is('lelong/pindahsenarailelong') ? 'active' : '' }}">
<a href="{{ url('lelong/pindahsenarailelong') }}">Pindah Lelong</a>
@@ -829,10 +850,6 @@
class="{{ request()->is('pembida/senaraipembida/*') || request()->is('pembida/senaraipembida') ? 'active' : '' }}">
<a href="{{ url('pembida/senaraipembida') }}">Pengesahan Pembida Baharu</a>
</li>
<li
class="{{ request()->is('pembida/senaraipembidakeseluruhan/*') || request()->is('pembida/senaraipembidakeseluruhan') ? 'active' : '' }}">
<a href="{{ url('pembida/senaraipembidakeseluruhan') }}">Senarai Pembida</a>
</li>
<li
class="{{ request()->is('pembida/senlelpembayaranbidaan/*') || request()->is('pembida/senlelpembayaranbidaan') ? 'active' : '' }}">
<a href="{{ url('pembida/senlelpembayaranbidaan') }}">Pembayaran Bidaan</a>
@@ -867,17 +884,6 @@
</div>
</a>
</li>
<li
class="{{ request()->is('pengurusangambar/marhun') || request()->is('pengurusangambar/marhun/*') ? 'active' : '' }}">
<a href="{{ url('pengurusangambar/marhun') }}">
<div class="sidebar-menu-main-title">
<span class="material-symbols-rounded sidebar-menu-item-main">
gallery_thumbnail
</span>
Galeri Marhun
</div>
</a>
</li>
<li>
<div class="sidebar-menu-title">Laporan</div>
</li>
@@ -912,16 +918,8 @@
</li>
</ul>
<ul class="list-unstyled collapse {{ request()->is('report/*') ? 'show' : '' }}" id="reportSubmenu">
<li
class="{{ request()->is('report/lapbidaanpembidaindex/*') || request()->is('report/lapbidaanpembidaindex') ? 'active' : '' }}">
<a href="{{ url('report/lapbidaanpembidaindex') }}">Bidaan Pembida</a>
</li>
</ul>
<ul class="list-unstyled collapse {{ request()->is('report/*') ? 'show' : '' }}" id="reportSubmenu">
<li
class="{{ request()->is('report/laplelongindex/*') || request()->is('report/laplelongindex') ? 'active' : '' }}">
<a href="{{ url('report/laplelongindex') }}">Lelong Keseluruhan</a>
</li>
</ul>
<ul class="list-unstyled collapse {{ request()->is('report/*') ? 'show' : '' }}" id="reportSubmenu">
<li
@@ -1052,98 +1050,6 @@
</ul>
</li>
@endhasrole
@hasrole('jurulelong')
<li>
<a href="#lelongSubmenu" data-toggle="collapse" aria-expanded="false">
<div class="sidebar-menu">
<div class="sidebar-menu-main-title">
<span class="material-symbols-rounded sidebar-menu-item-main">
assignment_ind
</span>
Lelong
</div>
<span class="material-symbols-rounded sidebar-menu-item-expand">expand_more</span>
</div>
</a>
<ul class="list-unstyled collapse {{ request()->is('lelong/*') ? 'show' : '' }}" id="lelongSubmenu">
<li
class="{{ request()->is('lelong/senarailelong/*') || request()->is('lelong/senarailelong') ? 'active' : '' }}">
<a href="{{ url('lelong/senarailelong') }}">Senarai Lelong</a>
</li>
<li
class="{{ request()->is('lelong/senarailelongtaklaku/*') || request()->is('lelong/senarailelongtaklaku') ? 'active' : '' }}">
<a href="{{ url('lelong/senarailelongtaklaku') }}">Senarai Lelong Tidak Laku</a>
</li>
</ul>
</li>
<li>
<a href="#pemenangSubmenu" data-toggle="collapse" aria-expanded="false">
<div class="sidebar-menu">
<div class="sidebar-menu-main-title">
<span class="material-symbols-rounded sidebar-menu-item-main">
published_with_changes
</span>
Pemenang
</div>
<span class="material-symbols-rounded sidebar-menu-item-expand">expand_more</span>
</div>
</a>
<ul class="list-unstyled collapse {{ request()->is('pemenang/*') ? 'show' : '' }}"
id="pemenangSubmenu">
<li
class="{{ request()->is('pemenang/listcawangan/*') || request()->is('pemenang/listcawangan') ? 'active' : '' }}">
<a href="{{ url('pemenang/listcawangan') }}">Jana Pemenang</a>
</li>
<li
class="{{ request()->is('pemenang/listpemenang/*') || request()->is('pemenang/listpemenang') ? 'active' : '' }}">
<a href="{{ url('pemenang/listpemenang') }}">Senarai Pemenang</a>
</li>
</ul>
</li>
<li class="{{ request()->is('report/') ? 'active' : '' }}">
<a href="#reportSubmenu" data-toggle="collapse" aria-expanded="false">
<div class="sidebar-menu">
<div class="sidebar-menu-main-title">
<span class="material-symbols-rounded sidebar-menu-item-main">
dynamic_feed
</span>
Pembida
</div>
<span class="material-symbols-rounded sidebar-menu-item-expand">expand_more</span>
</div>
</a>
<ul class="list-unstyled collapse {{ request()->is('report/*') ? 'show' : '' }}" id="reportSubmenu">
<li
class="{{ request()->is('report/lapbidaanpembidaindex/*') || request()->is('report/lapbidaanpembidaindex') ? 'active' : '' }}">
<a href="{{ url('report/lapbidaanpembidaindex') }}">Bidaan Pembida</a>
</li>
</ul>
<ul class="list-unstyled collapse {{ request()->is('report/*') ? 'show' : '' }}" id="reportSubmenu">
<li
class="{{ request()->is('report/laplelongindex/*') || request()->is('report/laplelongindex') ? 'active' : '' }}">
<a href="{{ url('report/laplelongindex') }}">Lelong Keseluruhan</a>
</li>
</ul>
<ul class="list-unstyled collapse {{ request()->is('report/*') ? 'show' : '' }}" id="reportSubmenu">
<li
class="{{ request()->is('pembida/senaraipembidakeseluruhan/*') || request()->is('pembida/senaraipembidakeseluruhan') ? 'active' : '' }}">
<a href="{{ url('pembida/senaraipembidakeseluruhan') }}">Senarai Pembida</a>
</li>
</ul>
</li>
<li
class="{{ request()->is('pengurusangambar/marhun') || request()->is('pengurusangambar/marhun/*') ? 'active' : '' }}">
<a href="{{ url('pengurusangambar/marhun') }}">
<div class="sidebar-menu-main-title">
<span class="material-symbols-rounded sidebar-menu-item-main">
gallery_thumbnail
</span>
Galeri Marhun
</div>
</a>
</li>
@endhasrole
@hasrole('account')
<li class="{{ request()->is('account/senarailelongan') ? 'active' : '' }}">
<a href="{{ url('account/senarailelongan') }}">
@@ -60,7 +60,7 @@
<td>{{$data['laporan']['jbg']}}</td>
<td>{{$data['laporan']['cajlelong']}}</td>
<td class="text-center">
@hasrole('jurulelong')
@hasrole('operasi')
<a href="{{ route('lelong.show',$data['laporan']['lelong_id']) }}" data-toggle="tooltip" data-placement="top" title="Butiran" style="margin-right:40px" ><i class="far fa-edit"></i></a>
@endhasrole
@hasrole('operasi')
@@ -78,7 +78,7 @@
@endhasrole
</td>
<td class="text-center">
@hasrole('jurulelong')
@hasrole('operasi')
<a href="{{ route('lelong.show',$data['laporan']['lelong_id']) }}" data-toggle="tooltip" data-placement="top" title="Butiran" style="margin-right:40px" ><i class="far fa-edit"></i></a>
@endhasrole
@hasrole('operasi')
@@ -42,7 +42,8 @@
<tr>
<th>No</th>
<th>Nama Pelanggan</th>
<th>No.KP</th>
<th>No.KP</th>
<th>No.Telefon</th>
<th>No.Rujukan</th>
<th>Tempoh</th>
<th>Berat Asal (gm)</th>
@@ -61,6 +62,7 @@
<td>{{$loop->iteration}}</td>
<td style='word-wrap' align="left">{{$customer->nama}}</td>
<td style='word-wrap'>{{$customer->nokp}}</td>
<td style='word-wrap'>{{$customer->notel}}</td>
<td style="white-space: nowrap;">@foreach($customer['gadai'] as $data)
{{$data->norujukan}}<br>
@endforeach
@@ -1,277 +1,306 @@
@extends('layouts.app')
@section('content')
<div class="container-fluid">
<div class="row ">
<div class="col mx-auto p-4">
<div class="card">
<div class="card-header header-style">
<a href="{{ route('lelong.showlelongdone',$lelongid) }}" class="header-style-icon">
<i class="fas fa-arrow-left"></i>
</a>
<div class="header-style-title">
senarai Sags : {{ $cawanganDetail->caw_name }}
</div>
</div>
<div class="card-body">
@if ($message = Session::get('success'))
<div class="alert alert-success">
{{ $message }}
</div>
@endif
@php
$myDateTime = DateTime::createFromFormat('Y-m-d', $lelonglel->tarikh_lelong );
$t_lelong = $myDateTime->format('d-m-Y');
@endphp
<form id="cariansag" action="{{route('lelong.cajrugilelong')}}" method="POST">
@csrf
<input type="hidden" name="lelongid" value="{{$lelongid}}">
<input type="hidden" name="cawid" value="{{$cawid}}">
<div class="col-3">
<div class="form-group row">
<label class="col-6 col-form-label text-left">Tarikh Lelong</label>
<div class="col-6">
<div class="input-group">
<input type="text" readonly class="form-control bg-light" value="{{$t_lelong}}">
<div class="container-fluid">
<div class="row ">
<div class="col mx-auto p-4">
<div class="card">
<div class="card-header header-style">
<a href="{{ route('lelong.showlelongdone', $lelongid) }}" class="header-style-icon">
<i class="fas fa-arrow-left"></i>
</a>
<div class="header-style-title">
senarai Sags : {{ $cawanganDetail->caw_name }}
</div>
</div>
<div class="card-body">
@if ($message = Session::get('success'))
<div class="alert alert-success">
{{ $message }}
</div>
</div>
</div>
</div>
<div class="col-3">
<div class="form-group row">
<label class="col-6 col-form-label text-left">JBG</label>
<div class="col-6">
<div class="input-group">
<input type="text" readonly class="form-control bg-light" value="{{$lelonglel->jbg}}">
@endif
@php
$myDateTime = DateTime::createFromFormat('Y-m-d', $lelonglel->tarikh_lelong);
$t_lelong = $myDateTime->format('d-m-Y');
@endphp
<form id="cariansag" action="{{ route('lelong.cajrugilelong') }}" method="POST">
@csrf
<input type="hidden" name="lelongid" value="{{ $lelongid }}">
<input type="hidden" name="cawid" value="{{ $cawid }}">
<div class="col-3">
<div class="form-group row">
<label class="col-6 col-form-label text-left">Tarikh Lelong</label>
<div class="col-6">
<div class="input-group">
<input type="text" readonly class="form-control bg-light"
value="{{ $t_lelong }}">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-3">
<div class="form-group row">
<label class="col-6 col-form-label text-left">Bil SAG Cawangan</label>
<div class="col-6">
<div class="input-group">
<input type="text" readonly class="form-control bg-light" value="{{sizeof($arraymarhun)}}">
<div class="col-3">
<div class="form-group row">
<label class="col-6 col-form-label text-left">JBG</label>
<div class="col-6">
<div class="input-group">
<input type="text" readonly class="form-control bg-light"
value="{{ $lelonglel->jbg }}">
</div>
</div>
</div>
</div>
<div class="col-3">
<div class="form-group row">
<label class="col-6 col-form-label text-left">Bil SAG Cawangan</label>
<div class="col-6">
<div class="input-group">
<input type="text" readonly class="form-control bg-light"
value="{{ sizeof($arraymarhun) }}">
</div>
</div>
</div>
</div>
<div class="col-3">
<div class="form-group row">
<label class="col-6 col-form-label text-left">Caj Lelong (%)</label>
<div class="col-sm-6">
<input type="radio" value='0' id="cajlelong0" name="cajlelong"
{{ $cajlelong == 0 ? 'checked' : '' }}>
<label for="0">0</label>
<input type="radio" value='1' id="cajlelong1" name="cajlelong"
{{ $cajlelong == 1 ? 'checked' : '' }}>
<label for="1">1</label>
<input type="radio" value='2' id="cajlelong2" name="cajlelong"
{{ $cajlelong == 2 ? 'checked' : '' }}>
<label for="2">2</label>
<input type="radio" value='3' id="cajlelong3" name="cajlelong"
{{ $cajlelong == 3 ? 'checked' : '' }}>
<label for="3">3</label>
</div>
</div>
</div>
<div class="col-3">
<div class="form-group row">
<label class="col-6 col-form-label text-left"></label>
<div class="col-6">
<button type="submit" class="btn btn-info">Carian</button>
</div>
</div>
</div>
</form>
<div class="mb-3">
<a href=" {{ route('lelong.reportcajrugilelong', [$lelongid, $cawid, $cajlelong]) }}"
class="btn btn-outline-success">Muat Turun PDF</a>
</div>
</div>
</div>
<div class="col-3">
<div class="form-group row">
<label class="col-6 col-form-label text-left">Caj Lelong (%)</label>
<div class="col-sm-6">
<input type="radio" value='0' id="cajlelong0" name="cajlelong" {{$cajlelong == 0 ? 'checked': '' }}>
<label for="0">0</label>
<input type="radio" value='1' id="cajlelong1" name="cajlelong" {{$cajlelong == 1 ? 'checked': '' }}>
<label for="1">1</label>
<input type="radio" value='2' id="cajlelong2" name="cajlelong" {{$cajlelong == 2 ? 'checked': '' }}>
<label for="2">2</label>
<input type="radio" value='3' id="cajlelong3" name="cajlelong" {{$cajlelong == 3 ? 'checked': '' }}>
<label for="3">3</label>
</div>
</div>
</div>
<div class="col-3">
<div class="form-group row">
<label class="col-6 col-form-label text-left"></label>
<div class="col-6">
<button type="submit" class="btn btn-info">Carian</button>
</div>
</div>
</div>
</form>
<div class="mb-3">
<a href=" {{ route('lelong.reportcajrugilelong',[$lelongid,$cawid,$cajlelong]) }}" class="btn btn-outline-success">Muat Turun PDF</a>
</div>
<label class="col-6 col-form-label text-left"><b>Caj Lelong : {{$cajlelong}}%</b></label>
<form id="editrugilelong" action="{{route('lelong.editcajrugilelong')}}" method="POST">
@csrf
<input type="hidden" name="lelongid" value="{{$lelongid}}">
<input type="hidden" name="cawid" value="{{$cawid}}">
<input type="hidden" name="cajlelong" value="{{$cajlelong}}">
<table class="table text-right table-bordered" style="width:100%" data-toggle="table" data-show-export="true">
<thead class="bg-primary text-white">
<tr>
<th>No</th>
<th>No Rujukan</th>
{{-- <th>Nama Pelanggan</th> --}}
<th>Tempoh</th>
{{-- <th>Berat (gm)</th>
<label class="col-6 col-form-label text-left"><b>Caj Lelong : {{ $cajlelong }}%</b></label>
<form id="editrugilelong" action="{{ route('lelong.editcajrugilelong') }}" method="POST">
@csrf
<input type="hidden" name="lelongid" value="{{ $lelongid }}">
<input type="hidden" name="cawid" value="{{ $cawid }}">
<input type="hidden" name="cajlelong" value="{{ $cajlelong }}">
<table class="table text-right table-bordered" style="width:100%" data-toggle="table"
data-show-export="true">
<thead class="bg-primary text-white">
<tr>
<th>No</th>
<th>No Rujukan</th>
{{-- <th>Nama Pelanggan</th> --}}
<th>Tempoh</th>
{{-- <th>Berat (gm)</th>
<th>Nilai Marhun Asal (RM)</th> --}}
<th>Pembiayaan (RM)</th>
<th>Keuntungan (RM)</th>
<th>Harga Asas (RM)</th>
<th>Harga Jual (RM)</th>
<th style="background-color: crimson">Caj Lelong Asal (RM)</th>
<th style="background-color: crimson">Baki/(Rugi) Asal (RM)</th>
<th style="background-color: rgb(17, 31, 94)">Caj Lelong Ubah (RM)</th>
<th style="background-color: rgb(17, 31, 94)">Baki/(Rugi) Ubah (RM)</th>
<th style="background-color: rgb(20, 220, 20)">Caj Lelong Baru (RM)</th>
<th style="background-color: rgb(20, 220, 20)">Baki/(Rugi) Baru (RM)</th>
{{-- <th>Tindakan</th> --}}
</tr>
</thead>
<tbody>
@php
$rugilelong = 0;
$bakilelong = 0;
@endphp
@foreach ($arraymarhun as $index=> $marhun)
<tr>
<td>{{$loop->iteration}}</td>
<td align = 'left' style="white-space: nowrap;"> <input type="hidden" name="lelongbid_id[]" value="{{ $marhun['lelongbid_id']}}"><input type="hidden" name="norujukan[]" value="{{ $marhun['norujukan']}}">{{ $marhun['norujukan']}}</td>
{{-- <td align = 'left' style="white-space: nowrap;">{{ $marhun['nama']['nama']}}</td> --}}
<td>{{ number_format($marhun['tempoh'], 2, '.', ',') }}</td>
{{-- <td align = 'right'>{{ number_format($marhun['berat'], 2, '.', ',') }}</td>
<th>Pembiayaan (RM)</th>
<th>Keuntungan (RM)</th>
<th>Harga Asas (RM)</th>
<th>Harga Jual (RM)</th>
<th style="background-color: crimson">Caj Lelong Asal (RM)</th>
<th style="background-color: crimson">Baki/(Rugi) Asal (RM)</th>
<th style="background-color: rgb(17, 31, 94)">Caj Lelong Ubah (RM)</th>
<th style="background-color: rgb(17, 31, 94)">Baki/(Rugi) Ubah (RM)</th>
<th style="background-color: rgb(20, 220, 20)">Caj Lelong Baru (RM)</th>
<th style="background-color: rgb(20, 220, 20)">Baki/(Rugi) Baru (RM)</th>
{{-- <th>Tindakan</th> --}}
</tr>
</thead>
<tbody>
@php
$rugilelong = 0;
$bakilelong = 0;
@endphp
@foreach ($arraymarhun as $index => $marhun)
<tr>
<td>{{ $loop->iteration }}</td>
<td align = 'left' style="white-space: nowrap;"> <input type="hidden"
name="lelongbid_id[]" value="{{ $marhun['lelongbid_id'] }}"><input
type="hidden" name="norujukan[]"
value="{{ $marhun['norujukan'] }}">{{ $marhun['norujukan'] }}</td>
{{-- <td align = 'left' style="white-space: nowrap;">{{ $marhun['nama']['nama']}}</td> --}}
<td>{{ number_format($marhun['tempoh'], 2, '.', ',') }}</td>
{{-- <td align = 'right'>{{ number_format($marhun['berat'], 2, '.', ',') }}</td>
<td align = 'right'>{{ number_format($marhun['nilaimarhun'], 2, '.', ',') }}</td> --}}
<td align = 'right'>{{ number_format($marhun['pinjaman'], 2, '.', ',') }}</td>
<td align = 'right'>{{ number_format($marhun['bakiupah'], 2, '.', ',') }}</td>
{{-- <td align = 'right'>{{ number_format($marhun['cajlelong'], 2, '.', ',') }}</td> --}}
<td align = 'right'>{{ number_format($marhun['hargaasas'], 2, '.', ',') }}</td>
<td align = 'right'>{{ number_format($marhun['hargajual'], 2, '.', ',') }}</td>
<td align = 'right'>{{ number_format($marhun['cajlelongasal'], 2, '.', ',') }}</td>
<td align = 'right'>@if($marhun['bakiasal'] > 0)
{{number_format($marhun['bakiasal'], 2, '.', ',')}}
@elseif($marhun['bakiasal'] < 0 )
({{number_format(-($marhun['bakiasal']), 2, '.', ',')}})
@endif</b></td>
@php
$rugi = 0;
$baki = 0;
if(strpos($marhun['baki'], '-') !== false)
{
$baki = -$marhun['baki'];
$bakilelong += $marhun['baki'];
}
else {
$baki = $marhun['baki'];
$bakilelong += $marhun['baki'];
}
@endphp
<td align = 'right'><b>{{ number_format($marhun['cajlelong'], 2, '.', ',') }}</b></td>
<td align = 'right'><b>@if($marhun['baki'] > 0)
{{number_format($marhun['baki'], 2, '.', ',')}}
@elseif($marhun['baki'] < 0 )
({{number_format(-($marhun['baki']), 2, '.', ',')}})
@endif</b>
<td align = 'right'>{{ number_format($marhun['pinjaman'], 2, '.', ',') }}</td>
<td align = 'right'>{{ number_format($marhun['bakiupah'], 2, '.', ',') }}</td>
{{-- <td align = 'right'>{{ number_format($marhun['cajlelong'], 2, '.', ',') }}</td> --}}
</td>
<td align = 'right'>{{ number_format($marhun['hargaasas'], 2, '.', ',') }}
</td>
<td align = 'right'>{{ number_format($marhun['hargajual'], 2, '.', ',') }}
</td>
<td align = 'right'>{{ number_format($marhun['cajlelongasal'], 2, '.', ',') }}
</td>
<td align = 'right'>
@if ($marhun['bakiasal'] > 0)
{{ number_format($marhun['bakiasal'], 2, '.', ',') }}
@elseif($marhun['bakiasal'] < 0)
({{ number_format(-$marhun['bakiasal'], 2, '.', ',') }})
@endif
</b>
</td>
@php
$rugi = 0;
$baki = 0;
if (strpos($marhun['baki'], '-') !== false) {
$baki = -$marhun['baki'];
$bakilelong += $marhun['baki'];
} else {
$baki = $marhun['baki'];
$bakilelong += $marhun['baki'];
}
@endphp
<td align = 'right'>
<b>{{ number_format($marhun['cajlelong'], 2, '.', ',') }}</b>
</td>
<td align = 'right'><b>
@if ($marhun['baki'] > 0)
{{ number_format($marhun['baki'], 2, '.', ',') }}
@elseif($marhun['baki'] < 0)
({{ number_format(-$marhun['baki'], 2, '.', ',') }})
@endif
</b>
<td align = 'right'><b><input type="hidden" name="cajlelongnew[]" value="{{ $marhun['cajlelongnew']}}">{{ number_format($marhun['cajlelongnew'], 2, '.', ',') }}</b></td>
<td align = 'right'><b>@if($marhun['rugilelongnew'] > 0)
<input type="hidden" name="rugilelongnew[]" value="{{ $marhun['rugilelongnew']}}">
{{ number_format($marhun['rugilelongnew'], 2, '.', ',') }}
@else
<input type="hidden" name="rugilelongnew[]" value="{{$marhun['rugilelongnew']}}">
({{number_format(-($marhun['rugilelongnew']), 2, '.', ',')}})
@endif</b></td>
{{-- <td class="text-center">
</td>
<td align = 'right'><b><input type="hidden" name="cajlelongnew[]"
value="{{ $marhun['cajlelongnew'] }}">{{ number_format($marhun['cajlelongnew'], 2, '.', ',') }}</b>
</td>
<td align = 'right'><b>
@if ($marhun['rugilelongnew'] > 0)
<input type="hidden" name="rugilelongnew[]"
value="{{ $marhun['rugilelongnew'] }}">
{{ number_format($marhun['rugilelongnew'], 2, '.', ',') }}
@else
<input type="hidden" name="rugilelongnew[]"
value="{{ $marhun['rugilelongnew'] }}">
({{ number_format(-$marhun['rugilelongnew'], 2, '.', ',') }})
@endif
</b></td>
{{-- <td class="text-center">
<input type="checkbox" aria-label="Checkbox for following text input" id="checkboxdata[]" name="checkboxdata[]" value="{{ $marhun['norujukan'] }}">
</td> --}}
</tr>
@endforeach
</tbody>
<tfoot>
<tr>
<td colspan="3"><b>JUMLAH KESELURUHAN</b></td>
{{-- <td align = 'right'><b><b>{{ number_format($total_berat, 2, '.', ',') }}</b></td>
</tr>
@endforeach
</tbody>
<tfoot>
<tr>
<td colspan="3"><b>JUMLAH KESELURUHAN</b></td>
{{-- <td align = 'right'><b><b>{{ number_format($total_berat, 2, '.', ',') }}</b></td>
<td align = 'right'><b>{{ number_format($total_nilaimarhun, 2, '.', ',') }}</b></td> --}}
<td align = 'right'><b>{{ number_format($total_pinjaman, 2, '.', ',') }}</b></td>
<td align = 'right'><b>{{ number_format($total_bakiupah, 2, '.', ',') }}</b></td>
<td align = 'right'><b>{{ number_format($total_hargaasas, 2, '.', ',') }}</b></td>
<td align = 'right'><b>{{ number_format($total_hargajual, 2, '.', ',') }}</b></td>
<td align = 'right'><b>{{ number_format($total_cajlelongasal, 2, '.', ',') }}</b></td>
<td align = 'right'><b><b>@if($total_bakilelongasal > 0)
{{ number_format($total_bakilelongasal, 2, '.', ',') }}
@else
({{number_format(-($total_bakilelongasal), 2, '.', ',')}})
@endif</b></td>
<td align = 'right'><b>{{ number_format($total_cazlelong, 2, '.', ',') }}</b></td>
<td align = 'right'><b>@if($total_bakilelong > 0)
{{ number_format($total_bakilelong, 2, '.', ',') }}
@else
({{number_format(-($total_bakilelong), 2, '.', ',')}})
@endif</b></td>
<td align = 'right'><b>{{ number_format($total_cajlelnew, 2, '.', ',') }}</b></td>
<td align = 'right'><b>@if($total_rugilelongnew > 0)
{{ number_format($total_rugilelongnew, 2, '.', ',') }}
@else
({{number_format(-($total_rugilelongnew), 2, '.', ',')}})
@endif</b></td>
</tr>
</tfoot>
<td align = 'right'><b>{{ number_format($total_pinjaman, 2, '.', ',') }}</b></td>
<td align = 'right'><b>{{ number_format($total_bakiupah, 2, '.', ',') }}</b></td>
<td align = 'right'><b>{{ number_format($total_hargaasas, 2, '.', ',') }}</b></td>
<td align = 'right'><b>{{ number_format($total_hargajual, 2, '.', ',') }}</b></td>
<td align = 'right'><b>{{ number_format($total_cajlelongasal, 2, '.', ',') }}</b>
</td>
<td align = 'right'><b><b>
@if ($total_bakilelongasal > 0)
{{ number_format($total_bakilelongasal, 2, '.', ',') }}
@else
({{ number_format(-$total_bakilelongasal, 2, '.', ',') }})
@endif
</b></td>
<td align = 'right'><b>{{ number_format($total_cazlelong, 2, '.', ',') }}</b></td>
<td align = 'right'><b>
@if ($total_bakilelong > 0)
{{ number_format($total_bakilelong, 2, '.', ',') }}
@else
({{ number_format(-$total_bakilelong, 2, '.', ',') }})
@endif
</b></td>
<td align = 'right'><b>{{ number_format($total_cajlelnew, 2, '.', ',') }}</b></td>
<td align = 'right'><b>
@if ($total_rugilelongnew > 0)
{{ number_format($total_rugilelongnew, 2, '.', ',') }}
@else
({{ number_format(-$total_rugilelongnew, 2, '.', ',') }})
@endif
</b></td>
</tr>
</tfoot>
</table>
<div class="form-group row">
<label class="col-6 col-form-label text-right"></label>
<div class="col-12" align = "right">
{{-- @foreach($lelong->cawangan as $data) --}}
@if($lelong->export_data_sts == "SUCCESS")
{{-- <td class="text-success">Selesai Export</td> --}}
@else
<button type="submit" class="btn btn-success">Kemaskini</button>
@endif
{{-- @endforeach --}}
</div>
</div>
</form>
{{-- <a href="{{url('lelong/senarailelong')}}" class="btn btn-primary">Kembali</a> --}}
</table>
<div class="form-group row">
<label class="col-6 col-form-label text-right"></label>
<div class="col-12" align="right">
@foreach ($lelong->cawangan as $data)
@if ($lelong->export_data_sts == 'SUCCESS')
<td class="text-success">Selesai Export</td>
@else
<button type="submit" class="btn btn-success">Kemaskini</button>
@endif
@endforeach
</div>
</div>
</form>
{{-- <a href="{{url('lelong/senarailelong')}}" class="btn btn-primary">Kembali</a> --}}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
function confirm() {
$.confirm({
title: 'Ubah % Caj Dan Rugi Lelong',
content: 'Anda pasti?',
type: 'red',
typeAnimated: true,
buttons: {
Hapus: {
btnClass: 'btn-danger',
action: function() {
$("#cariansag").submit();
<script>
function confirm() {
$.confirm({
title: 'Ubah % Caj Dan Rugi Lelong',
content: 'Anda pasti?',
type: 'red',
typeAnimated: true,
buttons: {
Hapus: {
btnClass: 'btn-danger',
action: function() {
$("#cariansag").submit();
}
},
Batal: {
btnClass: 'btn-default',
action: function() {}
}
},
Batal: {
btnClass: 'btn-default',
action: function() {}
}
}
});
}
var tablemarhun = $('#marhun').DataTable({
"info": false,
"lengthChange": true,
"pageLength": 999999,
dom: 'Bfrtip',
buttons: [
'copy', 'csv', 'excel', 'pdf', 'print'
{
className: 'btn btn-outline-secondary pl-4 pr-4 btn-sm export',
titleAttr: 'Eksport kpd CSV',
text: '<i class="fas fa-download"></i>',
action: function(e, dt, node, config) {
$("#exportform").submit();
}
}
]
});
}
var tablemarhun = $('#marhun').DataTable({
"info": false,
"lengthChange": true,
"pageLength": 999999,
dom: 'Bfrtip',
buttons: [
'copy', 'csv', 'excel', 'pdf', 'print'
{
className: 'btn btn-outline-secondary pl-4 pr-4 btn-sm export',
titleAttr: 'Eksport kpd CSV',
text: '<i class="fas fa-download"></i>',
action: function(e, dt, node, config) {
$("#exportform").submit();
}
}
]
});
</script>
@endsection
</script>
@endsection
@@ -185,15 +185,6 @@
@elseif($lelong->tagujrah == '1')
<thead class="bg-success text-center text-white">
@endif
@hasrole('jurulelong')
<tr class="text-center">
<th>No</th>
<th>Cawangan</th>
<th>Bil Surat</th>
<th>Berat (gm)</th>
<th>Harga Asas (RM)</th>
</tr>
@endhasrole
@hasrole('operasi')
<tr class="text-center">
<th>No</th>
@@ -218,17 +209,6 @@
</thead>
<tbody>
@foreach ($arraycaw as $index=>$caw)
@hasrole('jurulelong')
<tr>
<td class="text-center">{{$index+1}}</td>
<td class="text-center" style='white-space:nowrap;'><a href=" {{ route('lelong.senaraimarhun',['lelongid'=>$lelong_id,'cawid'=>$caw['id_cawangan']]) }} " target="blank" style="color:#3490dc">{{ $caw['cawangan'] }}</a></td>
<td class="text-center">{{ $caw['bil_marhun'] }}</td>
<td>{{ number_format($caw['berat'], 2, '.', ',') }}</td>
<td>{{ number_format($caw['hargaasas'], 2, '.', ',') }}</td>
</tr>
@endhasrole
@hasrole('operasi')
<tr>
<td class="text-center">{{$index+1}}</td>
@@ -254,14 +234,6 @@
</tbody>
<tfoot>
@hasrole('jurulelong')
<tr>
<td class="text-center" colspan="2"><b>JUMLAH KESELURUHAN</b></td>
<td class="text-center"><b>{{ $total_marhun }}</b></td>
<td><b>{{ number_format($total_berat, 2, '.', ',') }}</b></td>
<td><b>{{ number_format($total_hargaasas, 2, '.', ',') }}</b></td>
</tr>
@endhasrole
@hasrole('operasi')
<tr>
<td class="text-center" colspan="2"><b>JUMLAH KESELURUHAN</b></td>
+2 -2
View File
@@ -189,9 +189,9 @@
$(".checkbox").each(function() {
$(this).not('#tarafpenilai, #tarafkhazanah, #tarafpengurus-cawangan').prop("disabled", true);
});
} else if (taraf.id == "tarafoperasi" || taraf.id == "tarafjurulelong" || taraf.id == "tarafpengurus-operasi") {
} else if (taraf.id == "tarafoperasi" || taraf.id == "tarafpengurus-operasi") {
$(".checkbox").each(function() {
$(this).not('#tarafoperasi, #tarafjurulelong, #tarafpengurus-operasi').prop("disabled", true);
$(this).not('#tarafoperasi, #tarafpengurus-operasi').prop("disabled", true);
});
}
} else {
-26
View File
@@ -128,14 +128,6 @@
<table width="100%" border="0" id="sim">
<thead>
<tr>
@role('jurulelong')
<th>No</th>
<th>Cawangan</th>
<th>Bil SAG</th>
<th>Berat (gm)</th>
<th>Harga Asas (RM)</th>
@endrole
@unlessrole('jurulelong')
<th>No</th>
<th>Cawangan</th>
<th>Bil SAG</th>
@@ -152,21 +144,12 @@
<th>Caj Lelong (RM)</th>
<th>Baki Lelong (RM)</th>
<th>Rugi Lelong (RM)</th>
@endunlessrole
</tr>
</thead>
<tbody>
@foreach ($arraycaw as $index => $caw)
<tr>
@role('jurulelong')
<td>{{ $index + 1 }}</td>
<td align = 'center' style="white-space: nowrap;">{{ $caw['cawangan'] }}</td>
<td align = 'center'>{{ $caw['bil_marhun'] }}</td>
<td align = 'right'>{{ number_format($caw['berat'], 2, '.', ',') }}</td>
<td align = 'right'>{{ number_format($caw['hargaasas'], 2, '.', ',') }}</td>
@endrole
@unlessrole('jurulelong')
<td>{{ $index + 1 }}</td>
<td align = 'left' style="white-space: nowrap;">{{ $caw['cawangan'] }}</td>
<td align = 'center'>{{ $caw['bil_marhun'] }}</td>
@@ -182,19 +165,11 @@
<td align = 'right'>{{ number_format($caw['cajlelong'], 2, '.', ',') }}</td>
<td align = 'right'>{{ number_format($caw['bakilelong'], 2, '.', ',') }}</td>
<td align = 'right'>({{ number_format($caw['rugilelong'], 2, '.', ',') }})</td>
@endunlessrole
</tr>
@endforeach
</tbody>
<tfoot>
<tr>
@role('jurulelong')
<td colspan="2"><b>JUMLAH KESELURUHAN</b></td>
<td align = 'center'><b>{{ $total_marhun }}</b></td>
<td align = 'right'><b>{{ number_format($total_berat, 2, '.', ',') }}</b></td>
<td align = 'right'><b>{{ number_format($total_hargaasas, 2, '.', ',') }}</b></td>
@endrole
@unlessrole('jurulelong')
<td colspan="2"><b>JUMLAH KESELURUHAN</b></td>
<td align = 'center'><b>{{ $total_marhun }}</b></td>
<td align = 'right'><b>{{ number_format($total_berat, 2, '.', ',') }}</b></td>
@@ -209,7 +184,6 @@
<td align = 'right'><b>{{ number_format($total_cazlelong, 2, '.', ',') }}</b></td>
<td align = 'right'><b>{{ number_format($total_bakilelong, 2, '.', ',') }}</b></td>
<td align = 'right'><b>({{ number_format($total_rugilelong, 2, '.', ',') }})</b></td>
@endunlessrole
</tr>
</tfoot>
@@ -279,17 +279,7 @@
</tr>
</table>
<div class="footer-signature">
<b>Pengesahan Pelelong Berlesen:</b>
<div class="signature-line"></div>
<p>Tarikh: ____________________________</p>
<p>Nama: ____________________________</p>
</div>
{{-- <!-- Footer with Signature -->
<div class="footer-signature">
<div><b>Pengesahan Jurulelong:</b> ____________________________</div>
</div> --}}
{{-- <table cellspacing="0" cellpadding="1" style="float:right;" border="0" width="100%" height="80" align="left" id="sim">
<br><br><br><br><br><br><br><br><br><br>
@@ -124,12 +124,6 @@
<table border="0" id="sim">
<thead>
<tr>
@hasrole('jurulelong')
<th>No</th>
<th>No Rujukan</th>
<th>Berat (gm)</th>
<th>Harga Asas (RM)</th>
@endhasrole
@hasrole('operasi')
<th>No</th>
@@ -156,12 +150,6 @@
@php $bakilelong = 0; @endphp
@foreach ($marhuns as $index => $marhun)
<tr>
@hasrole('jurulelong')
<td align="center">{{ $loop->iteration }}</td>
<td align="center" style="white-space: nowrap;">{{ $marhun['norujukan'] }}</td>
<td align="center">{{ number_format($marhun['berat'], 2, '.', ',') }}</td>
<td align="center">{{ number_format($marhun['hargaasas'], 2, '.', ',') }}</td>
@endhasrole
@hasrole('operasi')
<td>{{ $loop->iteration }}</td>
@@ -198,11 +186,6 @@
<tfoot>
<tr>
@hasrole('jurulelong')
<td colspan="2"><b>JUMLAH KESELURUHAN</b></td>
<td align="center"><b>{{ number_format($total_berat, 2, '.', ',') }}</b></td>
<td align="center"><b>{{ number_format($total_hargaasas, 2, '.', ',') }}</b></td>
@endhasrole
@hasrole('operasi')
<td colspan="3"><b>JUMLAH KESELURUHAN</b></td>
@@ -231,15 +214,4 @@
</tr>
</tfoot>
</table>
@hasrole('jurulelong')
<div class="footer-signature">
<b>Pengesahan Pelelong Berlesen:</b>
<br>
<br>
<br>
<div class="signature-line"></div>
<p>Nama: ____________________________</p>
<p>Tarikh: ____________________________</p>
</div>
@endhasrole
</body>
@@ -248,10 +248,4 @@
</tr>
</table>
<div class="footer-signature">
<b>Pengesahan Pelelong Berlesen:</b>
<div class="signature-line"></div>
<p>Tarikh: ____________________________</p>
<p>Nama: ____________________________</p>
</div>
</tbody>
@@ -171,7 +171,7 @@ input[type="checkbox"] {
<th width="15%" align="right">Harga Bidaan (RM)</th>
<th width="15%" align="right">Tambahan Bidaan (RM)</th>
<th width="12%" align="left">Masa Bidaan</th>
@hasrole('jurulelong')
@hasrole('operasi')
<th width="12%" align="left">Semakan</th>
@endhasrole
</tr>
@@ -129,7 +129,8 @@ tr:nth-child(even) {
<tr>
<th>No</th>
<th>Nama Pelanggan</th>
<th>No.KP</th>
<th>No.KP</th>
<th>No. Telefon</th>
<th>No.Rujukan</th>
<th>Tempoh</th>
<th>Berat(gm)</th>
@@ -148,6 +149,7 @@ tr:nth-child(even) {
<td>{{$loop->iteration}}</td>
<td style='word-wrap' align='left'>{{ $marhun['nama']['nama']}}</td>
<td style='word-wrap'>{{ $marhun['nokp']}}</td>
<td style='word-wrap'>{{ $marhun['nama']['notelefon'] ?? '-' }}</td>
<td style='white-space:nowrap;'>@foreach ($marhun['listsag'] as $item)
{{-- {{$loop->iteration}}.{{ $item['norujukan'] }}<br> --}}
{{ $item['norujukan'] }}<br>
@@ -195,9 +195,9 @@
$(".checkbox").each(function() {
$(this).not('#tarafpenilai, #tarafkhazanah, #tarafpengurus-cawangan').prop("disabled", true);
});
} else if (taraf.id == "tarafoperasi" || taraf.id == "tarafjurulelong" || taraf.id == "tarafpengurus-operasi") {
} else if (taraf.id == "tarafoperasi" || taraf.id == "tarafpengurus-operasi") {
$(".checkbox").each(function() {
$(this).not('#tarafoperasi, #tarafjurulelong, #tarafpengurus-operasi').prop("disabled", true);
$(this).not('#tarafoperasi, #tarafpengurus-operasi').prop("disabled", true);
});
}
} else {
@@ -133,9 +133,9 @@
$(".checkbox").each(function() {
$(this).not('#tarafpenilai, #tarafkhazanah, #tarafpengurus-cawangan').prop("disabled", true);
});
} else if (taraf.id == "tarafoperasi" || taraf.id == "tarafjurulelong" || taraf.id == "tarafpengurus-operasi") {
} else if (taraf.id == "tarafoperasi" || taraf.id == "tarafpengurus-operasi") {
$(".checkbox").each(function() {
$(this).not('#tarafoperasi, #tarafjurulelong, #tarafpengurus-operasi').prop("disabled", true);
$(this).not('#tarafoperasi, #tarafpengurus-operasi').prop("disabled", true);
});
}
} else {
@@ -65,8 +65,9 @@
<td>
@php
$myDateTime = DateTime::createFromFormat('Y-m-d', $mohon['tdet'][0]['t_lelong']);
$datez = $myDateTime->format('d-m-Y');
$auctionDate = data_get($mohon, 'tdet.0.t_lelong');
$myDateTime = $auctionDate ? DateTime::createFromFormat('Y-m-d', $auctionDate) : false;
$datez = $myDateTime ? $myDateTime->format('d-m-Y') : '-';
echo($datez);
@endphp
@@ -142,8 +143,9 @@
@php
$myDateTime = DateTime::createFromFormat('Y-m-d', $lulus['tlh'][0]['tarikh_lelong']);
$datez = $myDateTime->format('d-m-Y');
$auctionDate = data_get($lulus, 'tlh.0.tarikh_lelong');
$myDateTime = $auctionDate ? DateTime::createFromFormat('Y-m-d', $auctionDate) : false;
$datez = $myDateTime ? $myDateTime->format('d-m-Y') : '-';
echo($datez);
@endphp
@@ -205,7 +207,7 @@
@php
$myDateTime = DateTime::createFromFormat('Y-m-d', $lulus['opr'][0]['tarikh_lelong']);
$datez = $myDateTime->format('d-m-Y');
$datez = $myDateTime ? $myDateTime->format('d-m-Y') : '-';
echo($datez);
@endphp
+6 -6
View File
@@ -249,7 +249,7 @@ Route::group(['prefix'=>'lelong'], function () {
Route::post('/kemaskini',['as'=>'lelong.kemaskinihargaasas','uses'=>'LelongController@kemaskini2']);
});
Route::group(['middleware' => ['permission:lelongan']], function () {
Route::group(['middleware' => ['role:operasi', 'permission:lelongan']], function () {
Route::get('/lelongstart/{id}',['as'=>'lelong.start','uses'=>'LelongController@start']);
Route::get('/lelongstop/{id}',['as'=>'lelong.stop','uses'=>'LelongController@stop']);
@@ -258,7 +258,7 @@ Route::group(['prefix'=>'lelong'], function () {
Route::get('/lelongstartall/{id}',['as'=>'lelong.startall','uses'=>'LelongController@startall']);
Route::get('/lelongstopall/{id}',['as'=>'lelong.stopall','uses'=>'LelongController@stopall']);
});
//jurulelong
//operasi
// Route::group(['middleware' => ['permission:janapemenang']], function () {
// Route::get('/janapemenang',['as'=>'lelong.janapemenang','uses'=>'LelongController@janapemenang']);
// Route::get('/listcawangan',['as'=>'lelong.listcawangan','uses'=>'LelongController@listcawangan']);
@@ -267,10 +267,10 @@ Route::group(['prefix'=>'lelong'], function () {
Route::group(['prefix'=>'pemenang'], function () {
Route::group(['middleware' => ['permission:janapemenang']], function () {
Route::get('/janapemenang/{id}',['as'=>'lelong.janapemenang','uses'=>'LelongController@janapemenang']);
Route::get('/listcawangan',['as'=>'lelong.listcawangan','uses'=>'LelongController@listcawangan']);
Route::get('/janapemenangbycaw/{lelong_id}/{cawid}',['as'=>'lelong.janapemenangbycaw','uses'=>'LelongController@janapemenangbycaw']);
Route::get('/janapemenangallcaw/{lelong_id}',['as'=>'lelong.janapemenangallcaw','uses'=>'LelongController@janapemenangallcaw2']);
Route::get('/janapemenang/{id}',['as'=>'lelong.janapemenang','uses'=>'LelongController@janapemenang'])->middleware(['role:operasi', 'permission:janapemenang']);
Route::get('/listcawangan',['as'=>'lelong.listcawangan','uses'=>'LelongController@listcawangan'])->middleware(['role:operasi', 'permission:janapemenang']);
Route::get('/janapemenangbycaw/{lelong_id}/{cawid}',['as'=>'lelong.janapemenangbycaw','uses'=>'LelongController@janapemenangbycaw'])->middleware(['role:operasi', 'permission:janapemenang']);
Route::get('/janapemenangallcaw/{lelong_id}',['as'=>'lelong.janapemenangallcaw','uses'=>'LelongController@janapemenangallcaw2'])->middleware(['role:operasi', 'permission:janapemenang']);
Route::get('/listpemenang',['as'=>'lelong.listpemenang','uses'=>'LelongController@listpemenang']);
Route::get('/senaraipemenang/{lelong_id}/{caw_code}',['as'=>'pemenang.senaraipemenang','uses'=>'LelongController@senaraipemenang']);
+69
View File
@@ -0,0 +1,69 @@
<?php
namespace Tests\Feature;
use App\Models\User;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Route;
use Tests\TestCase;
class InactiveAccountTest extends TestCase
{
protected function setUp(): void
{
parent::setUp();
config(['database.default' => 'sqlite', 'database.connections.sqlite.database' => ':memory:',
'session.driver' => 'array', 'cache.default' => 'array']);
DB::purge('sqlite');
DB::statement('CREATE TABLE users (id INTEGER PRIMARY KEY, username TEXT, password TEXT, status TEXT, remember_token TEXT, created_at TEXT, updated_at TEXT)');
Route::middleware('web')->get('/account-status-test', function () {
return response('allowed');
});
}
private function account($status)
{
return User::create(['username' => 'status-test', 'password' => Hash::make('test-password'), 'status' => $status]);
}
public function test_inactive_and_banned_accounts_cannot_log_in()
{
foreach (['inactive', 'banned'] as $status) {
DB::table('users')->delete();
$this->account($status);
$this->post('/login', ['username' => 'status-test', 'password' => 'test-password'])
->assertSessionHasErrors('username');
$this->assertGuest('web');
}
}
public function test_active_account_can_log_in()
{
$user = $this->account('active');
$this->post('/login', ['username' => 'status-test', 'password' => 'test-password'])
->assertRedirect('/home');
$this->assertAuthenticatedAs($user, 'web');
}
public function test_inactive_session_is_logged_out_and_cleared()
{
$user = $this->account('inactive');
$this->actingAs($user, 'web')->withSession(['private-data' => 'remove'])
->get('/account-status-test')->assertRedirect('/login')->assertSessionMissing('private-data');
$this->assertGuest('web');
}
public function test_inactive_json_session_is_denied()
{
$this->actingAs($this->account('inactive'), 'web')
->getJson('/account-status-test')->assertStatus(403);
$this->assertGuest('web');
}
public function test_active_session_and_guest_can_continue()
{
$this->get('/account-status-test')->assertOk();
$this->actingAs($this->account('active'), 'web')->get('/account-status-test')->assertOk();
}
}