new commit
This commit is contained in:
@@ -25,7 +25,7 @@ LOG_DEPRECATIONS_CHANNEL=null
|
|||||||
LOG_LEVEL=debug
|
LOG_LEVEL=debug
|
||||||
|
|
||||||
DB_CONNECTION=mysql
|
DB_CONNECTION=mysql
|
||||||
DB_HOST=db.upsense.co.id
|
DB_HOST=mysql.upsense.co.id
|
||||||
DB_PORT=3306
|
DB_PORT=3306
|
||||||
DB_DATABASE=xpendify
|
DB_DATABASE=xpendify
|
||||||
DB_USERNAME=root
|
DB_USERNAME=root
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ use App\Models\Cabang;
|
|||||||
use App\Models\Region;
|
use App\Models\Region;
|
||||||
use App\Helpers\FormHelper;
|
use App\Helpers\FormHelper;
|
||||||
use App\Helpers\BudgetHelper;
|
use App\Helpers\BudgetHelper;
|
||||||
|
use App\Models\Admin;
|
||||||
use Illuminate\Support\Carbon;
|
use Illuminate\Support\Carbon;
|
||||||
use Illuminate\Support\Facades\Schema;
|
use Illuminate\Support\Facades\Schema;
|
||||||
use App\Models\Kategori;
|
use App\Models\Kategori;
|
||||||
@@ -591,10 +592,51 @@ class ReportController extends Controller
|
|||||||
|
|
||||||
// Get the forms after all filters have been applied
|
// Get the forms after all filters have been applied
|
||||||
// Sort by 'tanggal' if it exists, otherwise by 'created_at'
|
// Sort by 'tanggal' if it exists, otherwise by 'created_at'
|
||||||
$forms = $formsQuery->orderBy(
|
|
||||||
Schema::hasColumn('form_others', 'tanggal') ? 'tanggal' : 'created_at',
|
$tables = [
|
||||||
'desc'
|
'form_others',
|
||||||
)->get();
|
'form_up_country',
|
||||||
|
'form_vehicle_running_cost',
|
||||||
|
'form_meeting_seminar',
|
||||||
|
'form_entertainment_presentation'
|
||||||
|
];
|
||||||
|
|
||||||
|
$formsQuery = null;
|
||||||
|
|
||||||
|
foreach ($tables as $table) {
|
||||||
|
$query = DB::table($table)
|
||||||
|
->selectRaw("
|
||||||
|
expense_number,
|
||||||
|
'$table' as type,
|
||||||
|
user_id,
|
||||||
|
total,
|
||||||
|
approved_total,
|
||||||
|
account_number,
|
||||||
|
status,
|
||||||
|
created_at
|
||||||
|
");
|
||||||
|
|
||||||
|
$formsQuery = $formsQuery
|
||||||
|
? $formsQuery->unionAll($query)
|
||||||
|
: $query;
|
||||||
|
}
|
||||||
|
|
||||||
|
$forms = DB::query()
|
||||||
|
->fromSub($formsQuery, 'forms')
|
||||||
|
->join('admins', 'admins.id', '=', 'forms.user_id')
|
||||||
|
->select('forms.*', 'admins.id as admin_id')
|
||||||
|
->orderBy('forms.created_at', 'desc')
|
||||||
|
->paginate(100);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// inject relasi Admin model ke setiap item
|
||||||
|
$forms->getCollection()->transform(function ($item) {
|
||||||
|
$item->user = \App\Models\Admin::with(['region', 'rayon.region'])->find($item->admin_id);
|
||||||
|
$item->type = ucwords(str_replace('_', ' ', str_replace('form_', '', $item->type)));
|
||||||
|
|
||||||
|
return $item;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
return view('backend.pages.report.all', [
|
return view('backend.pages.report.all', [
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ use App\Helpers\NotificationHelper;
|
|||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
use App\Services\BrevoService;
|
use App\Services\BrevoService;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
|
use Illuminate\Container\Attributes\Auth;
|
||||||
|
|
||||||
class FormUpCountryController extends Controller
|
class FormUpCountryController extends Controller
|
||||||
{
|
{
|
||||||
@@ -372,6 +373,18 @@ class FormUpCountryController extends Controller
|
|||||||
$role = auth()->user()->getRoleNames()[0];
|
$role = auth()->user()->getRoleNames()[0];
|
||||||
|
|
||||||
$cabang = UserHasCabang::with('cabang')->where('user_id', auth()->user()->id)->first()->cabang;
|
$cabang = UserHasCabang::with('cabang')->where('user_id', auth()->user()->id)->first()->cabang;
|
||||||
|
$regionId = Cabang::where('id', 1)->value('region_id');
|
||||||
|
$rayonData = Rayon::where('cabang_id', $cabang->id)->get();
|
||||||
|
|
||||||
|
if ($role = "Admin Region" || "Marketing Information System" || "Superadmin") {
|
||||||
|
$rayonData = DB::table('rayon')
|
||||||
|
->join('cabang', 'rayon.cabang_id', '=', 'cabang.id')
|
||||||
|
->join('region', 'cabang.region_id', '=', 'region.id')
|
||||||
|
->where('region.id', $regionId)
|
||||||
|
->select('rayon.*')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
$form = FormUpCountry::with('rayon')->findOrfail($id);
|
$form = FormUpCountry::with('rayon')->findOrfail($id);
|
||||||
if (($form->status != 'On Progress' && $form->status != 'Rejected') && $role == 'Medical Representatif') {
|
if (($form->status != 'On Progress' && $form->status != 'Rejected') && $role == 'Medical Representatif') {
|
||||||
@@ -380,7 +393,7 @@ class FormUpCountryController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
return view('backend.pages.forms.upcountry.edit', [
|
return view('backend.pages.forms.upcountry.edit', [
|
||||||
'rayons' => Rayon::where('cabang_id', $cabang->id)->get(),
|
'rayons' => $rayonData,
|
||||||
'form' => $form
|
'form' => $form
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -168,6 +168,11 @@ class Admin extends Authenticatable
|
|||||||
return $this->belongsTo(Rayon::class, 'rayon_id');
|
return $this->belongsTo(Rayon::class, 'rayon_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function rayon()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Rayon::class, 'rayon_id');
|
||||||
|
}
|
||||||
|
|
||||||
public function getRegion()
|
public function getRegion()
|
||||||
{
|
{
|
||||||
return $this->belongsTo(Region::class, 'region_id');
|
return $this->belongsTo(Region::class, 'region_id');
|
||||||
|
|||||||
@@ -16,4 +16,9 @@ class Rayon extends Model
|
|||||||
{
|
{
|
||||||
return $this->belongsTo('App\Models\Cabang');
|
return $this->belongsTo('App\Models\Cabang');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function region()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(\App\Models\Region::class, 'region_id', 'id');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,6 @@
|
|||||||
"yajra/laravel-datatables-oracle": "11.0"
|
"yajra/laravel-datatables-oracle": "11.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"barryvdh/laravel-debugbar": "^3.14",
|
|
||||||
"fakerphp/faker": "^1.23",
|
"fakerphp/faker": "^1.23",
|
||||||
"laravel/pail": "^1.1",
|
"laravel/pail": "^1.1",
|
||||||
"laravel/pint": "^1.13",
|
"laravel/pint": "^1.13",
|
||||||
|
|||||||
Generated
+1
-153
@@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "2576aa0bcffcd93e0f78de10eefa63c1",
|
"content-hash": "1ad355916564d86a9848db17b8afa298",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "barryvdh/laravel-dompdf",
|
"name": "barryvdh/laravel-dompdf",
|
||||||
@@ -8305,90 +8305,6 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"packages-dev": [
|
"packages-dev": [
|
||||||
{
|
|
||||||
"name": "barryvdh/laravel-debugbar",
|
|
||||||
"version": "v3.14.10",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/barryvdh/laravel-debugbar.git",
|
|
||||||
"reference": "56b9bd235e3fe62e250124804009ce5bab97cc63"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/56b9bd235e3fe62e250124804009ce5bab97cc63",
|
|
||||||
"reference": "56b9bd235e3fe62e250124804009ce5bab97cc63",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"illuminate/routing": "^9|^10|^11",
|
|
||||||
"illuminate/session": "^9|^10|^11",
|
|
||||||
"illuminate/support": "^9|^10|^11",
|
|
||||||
"maximebf/debugbar": "~1.23.0",
|
|
||||||
"php": "^8.0",
|
|
||||||
"symfony/finder": "^6|^7"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"mockery/mockery": "^1.3.3",
|
|
||||||
"orchestra/testbench-dusk": "^5|^6|^7|^8|^9",
|
|
||||||
"phpunit/phpunit": "^9.6|^10.5",
|
|
||||||
"squizlabs/php_codesniffer": "^3.5"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"laravel": {
|
|
||||||
"aliases": {
|
|
||||||
"Debugbar": "Barryvdh\\Debugbar\\Facades\\Debugbar"
|
|
||||||
},
|
|
||||||
"providers": [
|
|
||||||
"Barryvdh\\Debugbar\\ServiceProvider"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "3.14-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"files": [
|
|
||||||
"src/helpers.php"
|
|
||||||
],
|
|
||||||
"psr-4": {
|
|
||||||
"Barryvdh\\Debugbar\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Barry vd. Heuvel",
|
|
||||||
"email": "barryvdh@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "PHP Debugbar integration for Laravel",
|
|
||||||
"keywords": [
|
|
||||||
"debug",
|
|
||||||
"debugbar",
|
|
||||||
"laravel",
|
|
||||||
"profiler",
|
|
||||||
"webprofiler"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/barryvdh/laravel-debugbar/issues",
|
|
||||||
"source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.14.10"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://fruitcake.nl",
|
|
||||||
"type": "custom"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://github.com/barryvdh",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2024-12-23T10:10:42+00:00"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "fakerphp/faker",
|
"name": "fakerphp/faker",
|
||||||
"version": "v1.24.1",
|
"version": "v1.24.1",
|
||||||
@@ -8781,74 +8697,6 @@
|
|||||||
},
|
},
|
||||||
"time": "2024-11-27T15:42:28+00:00"
|
"time": "2024-11-27T15:42:28+00:00"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "maximebf/debugbar",
|
|
||||||
"version": "v1.23.5",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/php-debugbar/php-debugbar.git",
|
|
||||||
"reference": "eeabd61a1f19ba5dcd5ac4585a477130ee03ce25"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/eeabd61a1f19ba5dcd5ac4585a477130ee03ce25",
|
|
||||||
"reference": "eeabd61a1f19ba5dcd5ac4585a477130ee03ce25",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": "^7.2|^8",
|
|
||||||
"psr/log": "^1|^2|^3",
|
|
||||||
"symfony/var-dumper": "^4|^5|^6|^7"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"dbrekelmans/bdi": "^1",
|
|
||||||
"phpunit/phpunit": "^8|^9",
|
|
||||||
"symfony/panther": "^1|^2.1",
|
|
||||||
"twig/twig": "^1.38|^2.7|^3.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"kriswallsmith/assetic": "The best way to manage assets",
|
|
||||||
"monolog/monolog": "Log using Monolog",
|
|
||||||
"predis/predis": "Redis storage"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.23-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"DebugBar\\": "src/DebugBar/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Maxime Bouroumeau-Fuseau",
|
|
||||||
"email": "maxime.bouroumeau@gmail.com",
|
|
||||||
"homepage": "http://maximebf.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Barry vd. Heuvel",
|
|
||||||
"email": "barryvdh@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Debug bar in the browser for php application",
|
|
||||||
"homepage": "https://github.com/maximebf/php-debugbar",
|
|
||||||
"keywords": [
|
|
||||||
"debug",
|
|
||||||
"debugbar"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/php-debugbar/php-debugbar/issues",
|
|
||||||
"source": "https://github.com/php-debugbar/php-debugbar/tree/v1.23.5"
|
|
||||||
},
|
|
||||||
"time": "2024-12-15T19:20:42+00:00"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "mockery/mockery",
|
"name": "mockery/mockery",
|
||||||
"version": "1.6.12",
|
"version": "1.6.12",
|
||||||
|
|||||||
@@ -0,0 +1,224 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Laravel\Octane\Contracts\OperationTerminated;
|
||||||
|
use Laravel\Octane\Events\RequestHandled;
|
||||||
|
use Laravel\Octane\Events\RequestReceived;
|
||||||
|
use Laravel\Octane\Events\RequestTerminated;
|
||||||
|
use Laravel\Octane\Events\TaskReceived;
|
||||||
|
use Laravel\Octane\Events\TaskTerminated;
|
||||||
|
use Laravel\Octane\Events\TickReceived;
|
||||||
|
use Laravel\Octane\Events\TickTerminated;
|
||||||
|
use Laravel\Octane\Events\WorkerErrorOccurred;
|
||||||
|
use Laravel\Octane\Events\WorkerStarting;
|
||||||
|
use Laravel\Octane\Events\WorkerStopping;
|
||||||
|
use Laravel\Octane\Listeners\CloseMonologHandlers;
|
||||||
|
use Laravel\Octane\Listeners\CollectGarbage;
|
||||||
|
use Laravel\Octane\Listeners\DisconnectFromDatabases;
|
||||||
|
use Laravel\Octane\Listeners\EnsureUploadedFilesAreValid;
|
||||||
|
use Laravel\Octane\Listeners\EnsureUploadedFilesCanBeMoved;
|
||||||
|
use Laravel\Octane\Listeners\FlushOnce;
|
||||||
|
use Laravel\Octane\Listeners\FlushTemporaryContainerInstances;
|
||||||
|
use Laravel\Octane\Listeners\FlushUploadedFiles;
|
||||||
|
use Laravel\Octane\Listeners\ReportException;
|
||||||
|
use Laravel\Octane\Listeners\StopWorkerIfNecessary;
|
||||||
|
use Laravel\Octane\Octane;
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Octane Server
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This value determines the default "server" that will be used by Octane
|
||||||
|
| when starting, restarting, or stopping your server via the CLI. You
|
||||||
|
| are free to change this to the supported server of your choosing.
|
||||||
|
|
|
||||||
|
| Supported: "roadrunner", "swoole", "frankenphp"
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'server' => env('OCTANE_SERVER', 'roadrunner'),
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Force HTTPS
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| When this configuration value is set to "true", Octane will inform the
|
||||||
|
| framework that all absolute links must be generated using the HTTPS
|
||||||
|
| protocol. Otherwise your links may be generated using plain HTTP.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'https' => env('OCTANE_HTTPS', false),
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Octane Listeners
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| All of the event listeners for Octane's events are defined below. These
|
||||||
|
| listeners are responsible for resetting your application's state for
|
||||||
|
| the next request. You may even add your own listeners to the list.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'listeners' => [
|
||||||
|
WorkerStarting::class => [
|
||||||
|
EnsureUploadedFilesAreValid::class,
|
||||||
|
EnsureUploadedFilesCanBeMoved::class,
|
||||||
|
],
|
||||||
|
|
||||||
|
RequestReceived::class => [
|
||||||
|
...Octane::prepareApplicationForNextOperation(),
|
||||||
|
...Octane::prepareApplicationForNextRequest(),
|
||||||
|
//
|
||||||
|
],
|
||||||
|
|
||||||
|
RequestHandled::class => [
|
||||||
|
//
|
||||||
|
],
|
||||||
|
|
||||||
|
RequestTerminated::class => [
|
||||||
|
// FlushUploadedFiles::class,
|
||||||
|
],
|
||||||
|
|
||||||
|
TaskReceived::class => [
|
||||||
|
...Octane::prepareApplicationForNextOperation(),
|
||||||
|
//
|
||||||
|
],
|
||||||
|
|
||||||
|
TaskTerminated::class => [
|
||||||
|
//
|
||||||
|
],
|
||||||
|
|
||||||
|
TickReceived::class => [
|
||||||
|
...Octane::prepareApplicationForNextOperation(),
|
||||||
|
//
|
||||||
|
],
|
||||||
|
|
||||||
|
TickTerminated::class => [
|
||||||
|
//
|
||||||
|
],
|
||||||
|
|
||||||
|
OperationTerminated::class => [
|
||||||
|
FlushOnce::class,
|
||||||
|
FlushTemporaryContainerInstances::class,
|
||||||
|
// DisconnectFromDatabases::class,
|
||||||
|
// CollectGarbage::class,
|
||||||
|
],
|
||||||
|
|
||||||
|
WorkerErrorOccurred::class => [
|
||||||
|
ReportException::class,
|
||||||
|
StopWorkerIfNecessary::class,
|
||||||
|
],
|
||||||
|
|
||||||
|
WorkerStopping::class => [
|
||||||
|
CloseMonologHandlers::class,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Warm / Flush Bindings
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The bindings listed below will either be pre-warmed when a worker boots
|
||||||
|
| or they will be flushed before every new request. Flushing a binding
|
||||||
|
| will force the container to resolve that binding again when asked.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'warm' => [
|
||||||
|
...Octane::defaultServicesToWarm(),
|
||||||
|
],
|
||||||
|
|
||||||
|
'flush' => [
|
||||||
|
//
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Octane Swoole Tables
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| While using Swoole, you may define additional tables as required by the
|
||||||
|
| application. These tables can be used to store data that needs to be
|
||||||
|
| quickly accessed by other workers on the particular Swoole server.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'tables' => [
|
||||||
|
'example:1000' => [
|
||||||
|
'name' => 'string:1000',
|
||||||
|
'votes' => 'int',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Octane Swoole Cache Table
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| While using Swoole, you may leverage the Octane cache, which is powered
|
||||||
|
| by a Swoole table. You may set the maximum number of rows as well as
|
||||||
|
| the number of bytes per row using the configuration options below.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'cache' => [
|
||||||
|
'rows' => 1000,
|
||||||
|
'bytes' => 10000,
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| File Watching
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The following list of files and directories will be watched when using
|
||||||
|
| the --watch option offered by Octane. If any of the directories and
|
||||||
|
| files are changed, Octane will automatically reload your workers.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'watch' => [
|
||||||
|
'app',
|
||||||
|
'bootstrap',
|
||||||
|
'config/**/*.php',
|
||||||
|
'database/**/*.php',
|
||||||
|
'public/**/*.php',
|
||||||
|
'resources/**/*.php',
|
||||||
|
'routes',
|
||||||
|
'composer.lock',
|
||||||
|
'.env',
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Garbage Collection Threshold
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| When executing long-lived PHP scripts such as Octane, memory can build
|
||||||
|
| up before being cleared by PHP. You can force Octane to run garbage
|
||||||
|
| collection if your application consumes this amount of megabytes.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'garbage' => 50,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Maximum Execution Time
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The following setting configures the maximum execution time for requests
|
||||||
|
| being handled by Octane. You may set this value to 0 to indicate that
|
||||||
|
| there isn't a specific time limit on Octane request execution time.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'max_execution_time' => 30,
|
||||||
|
|
||||||
|
];
|
||||||
BIN
Binary file not shown.
@@ -0,0 +1,4 @@
|
|||||||
|
upload_max_filesize = 1024M
|
||||||
|
post_max_size = 1024M
|
||||||
|
memory_limit = 512M
|
||||||
|
max_execution_time = 300
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Set a default for the application base path and public path if they are missing...
|
||||||
|
$_SERVER['APP_BASE_PATH'] = $_ENV['APP_BASE_PATH'] ?? $_SERVER['APP_BASE_PATH'] ?? __DIR__.'/..';
|
||||||
|
$_SERVER['APP_PUBLIC_PATH'] = $_ENV['APP_PUBLIC_PATH'] ?? $_SERVER['APP_BASE_PATH'] ?? __DIR__;
|
||||||
|
|
||||||
|
require __DIR__.'/../vendor/laravel/octane/bin/frankenphp-worker.php';
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
phpinfo();
|
||||||
|
?>
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 1.5 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 44 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
@@ -47,6 +47,7 @@
|
|||||||
<th width="5%">{{ __('Sl') }}</th>
|
<th width="5%">{{ __('Sl') }}</th>
|
||||||
<th width="10%">{{ __('Name') }}</th>
|
<th width="10%">{{ __('Name') }}</th>
|
||||||
<th width="10%">{{ __('Email') }}</th>
|
<th width="10%">{{ __('Email') }}</th>
|
||||||
|
<th width="10%">{{ __('Phone') }}</th>
|
||||||
<th width="20%">{{ __('Roles') }}</th>
|
<th width="20%">{{ __('Roles') }}</th>
|
||||||
<th width="5%">Region</th>
|
<th width="5%">Region</th>
|
||||||
<th width="5%">Cabang</th>
|
<th width="5%">Cabang</th>
|
||||||
@@ -60,6 +61,7 @@
|
|||||||
<td>{{ $loop->index + 1 }}</td>
|
<td>{{ $loop->index + 1 }}</td>
|
||||||
<td>{{ $admin->name }}</td>
|
<td>{{ $admin->name }}</td>
|
||||||
<td>{{ $admin->email }}</td>
|
<td>{{ $admin->email }}</td>
|
||||||
|
<td>{{ $admin->phone }}</td>
|
||||||
<td>
|
<td>
|
||||||
@foreach ($admin->roles as $role)
|
@foreach ($admin->roles as $role)
|
||||||
<span class="badge badge-info mr-1">
|
<span class="badge badge-info mr-1">
|
||||||
|
|||||||
@@ -65,13 +65,35 @@
|
|||||||
<label class="form-label">Tanggal <span class="font-italic font-weight-normal">(required)</span></label>
|
<label class="form-label">Tanggal <span class="font-italic font-weight-normal">(required)</span></label>
|
||||||
<input type="date" class="form-control" name="tanggal" id="tanggal" required value="{{ old('tanggal') }}">
|
<input type="date" class="form-control" name="tanggal" id="tanggal" required value="{{ old('tanggal') }}">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Add field -->
|
||||||
|
|
||||||
|
<!-- <div class="mb-3">
|
||||||
|
<label class="form-label">Nama Penerima <span class="font-italic font-weight-normal">(required)</span></label>
|
||||||
|
<input type="text" class="form-control" name="name" required value="{{ old('name') }}">
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<label class="form-label">NPWP / NIK <span class="font-italic font-weight-normal">(required)</span></label>
|
||||||
|
<input type="text" class="form-control" name="nik_or_npwp" id="nik_or_npwp" required value="{{ old('nik_or_npwp') }}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="mb-3">
|
||||||
|
<label class="form-label">Alamat <span class="font-italic font-weight-normal">(required)</span></label>
|
||||||
|
<input type="text" class="form-control" name="alamat" id="alamat" required value="{{ old('alamat') }}">
|
||||||
|
</div> -->
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">Total <span class="font-italic font-weight-normal">(required)</span></label>
|
<label class="form-label">Total <span class="font-italic font-weight-normal">(required)</span></label>
|
||||||
<input type="string" class="form-control" name="total" id="total" required value="{{ old('total') }}">
|
<input type="string" class="form-control" name="total" id="total" required value="{{ old('total') }}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-lg-6">
|
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">Bukti Total <span class="font-italic font-weight-normal">(required)</span></label>
|
<label class="form-label">Bukti Total <span class="font-italic font-weight-normal">(required)</span></label>
|
||||||
<input type="file" class="form-control" name="bukti_total" value="{{ old('bukti_total') }}" required>
|
<input type="file" class="form-control" name="bukti_total" value="{{ old('bukti_total') }}" required>
|
||||||
@@ -81,9 +103,10 @@
|
|||||||
<textarea class="form-control" name="keterangan" id="keterangan" required>{{ old('keterangan') }}</textarea>
|
<textarea class="form-control" name="keterangan" id="keterangan" required>{{ old('keterangan') }}</textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- </div> -->
|
||||||
<button type="submit" class="btn btn-primary ml-2">Submit</button>
|
<button type="submit" class="btn btn-primary ml-2">Submit</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<div id="loading-spinner-overlay" class="d-none">
|
<div id="loading-spinner-overlay" class="d-none">
|
||||||
@@ -112,5 +135,7 @@
|
|||||||
spinnerOverlay.classList.remove('d-none'); // Show overlay
|
spinnerOverlay.classList.remove('d-none'); // Show overlay
|
||||||
spinnerOverlay.classList.add('d-flex'); // Use flexbox for centering
|
spinnerOverlay.classList.add('d-flex'); // Use flexbox for centering
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
@endsection
|
@endsection
|
||||||
|
|||||||
@@ -475,13 +475,16 @@
|
|||||||
@section('scripts')
|
@section('scripts')
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
|
|
||||||
// Uncheck all checkboxes on page refresh
|
// Uncheck all checkboxes on page refresh
|
||||||
$('.custom-control-input').prop('checked', false);
|
$('.custom-control-input').prop('checked', false);
|
||||||
|
|
||||||
if ($('#dataTable').length) {
|
if ($('#dataTable').length) {
|
||||||
$('#dataTable').DataTable({
|
$('#dataTable').DataTable({
|
||||||
responsive: false,
|
responsive: true,
|
||||||
|
|
||||||
dom: 'Blfrtip',
|
dom: 'Blfrtip',
|
||||||
|
|
||||||
lengthMenu: [ [10, 50, 100, -1], [10, 50, 100, "All"] ], // Control the entries dropdown
|
lengthMenu: [ [10, 50, 100, -1], [10, 50, 100, "All"] ], // Control the entries dropdown
|
||||||
buttons: [
|
buttons: [
|
||||||
{
|
{
|
||||||
@@ -507,9 +510,27 @@
|
|||||||
},
|
},
|
||||||
'colvis'
|
'colvis'
|
||||||
]
|
]
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// <script>
|
||||||
|
//$(document).ready(function () {
|
||||||
|
|
||||||
|
// Uncheck all checkboxes on page refresh
|
||||||
|
//$('.custom-control-input').prop('checked', false);
|
||||||
|
// new DataTable('#dataTable', {
|
||||||
|
// responsive: false,
|
||||||
|
|
||||||
|
|
||||||
|
// columnControl: [
|
||||||
|
// { extend: 'order' },
|
||||||
|
// [ { extend: 'colVis' },{ extend: 'search' }]
|
||||||
|
// ],
|
||||||
|
|
||||||
|
//});
|
||||||
|
|
||||||
// Handle Approve Button Click
|
// Handle Approve Button Click
|
||||||
$(document).on('click', '.open-approve-modal', function() {
|
$(document).on('click', '.open-approve-modal', function() {
|
||||||
const approveUrl = $(this).data('id');
|
const approveUrl = $(this).data('id');
|
||||||
|
|||||||
@@ -235,6 +235,7 @@
|
|||||||
if ($('#dataTable-table').length) {
|
if ($('#dataTable-table').length) {
|
||||||
$('#dataTable-table').DataTable({
|
$('#dataTable-table').DataTable({
|
||||||
responsive: false,
|
responsive: false,
|
||||||
|
pagging: true,
|
||||||
dom: 'Blfrtip',
|
dom: 'Blfrtip',
|
||||||
lengthMenu: [ [10, 25, 50, -1], [10, 25, 50, "All"] ], // Control the entries dropdown
|
lengthMenu: [ [10, 25, 50, -1], [10, 25, 50, "All"] ], // Control the entries dropdown
|
||||||
buttons: [
|
buttons: [
|
||||||
|
|||||||
@@ -70,6 +70,8 @@
|
|||||||
$drFormatted = $drValue == 0 ? '' : number_format($drValue, 0, ',', ',');
|
$drFormatted = $drValue == 0 ? '' : number_format($drValue, 0, ',', ',');
|
||||||
$totalDr += $drValue;
|
$totalDr += $drValue;
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ $loop->iteration }}</td>
|
<td>{{ $loop->iteration }}</td>
|
||||||
<td>{{ $item->name }}</td>
|
<td>{{ $item->name }}</td>
|
||||||
@@ -77,9 +79,28 @@
|
|||||||
<td>{{ $drFormatted }}</td>
|
<td>{{ $drFormatted }}</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
@endforeach
|
@endforeach
|
||||||
|
|
||||||
|
|
||||||
|
<!-- cash in advance -->
|
||||||
|
<tr>
|
||||||
|
<td>{{ $kategori->count() + 1 }}</td>
|
||||||
|
<td>Cash in Balance</td>
|
||||||
|
<td>170 600 00</td>
|
||||||
|
<td>@php
|
||||||
|
$crValue = $budget && $budget->amount != 0 ? $budget->amount : 0;
|
||||||
|
$crValue -= $totalDr ;
|
||||||
|
echo $crValue == 0 ? '' : number_format($crValue, 0, ',', ',');
|
||||||
|
@endphp</td>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- petty cash -->
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ $kategori->count() + 1 }}</td>
|
<td>{{ $kategori->count() + 1 }}</td>
|
||||||
<td>Petty Cash</td>
|
<td>Petty Cash</td>
|
||||||
|
|||||||
@@ -21,6 +21,14 @@
|
|||||||
<script src="https://cdn.jsdelivr.net/gh/fiqhpratama/upsense-cdn@main/adminlte-blue/plugins/waitme/waitMe.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/gh/fiqhpratama/upsense-cdn@main/adminlte-blue/plugins/waitme/waitMe.min.js"></script>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/autonumeric@4.6.0/dist/autoNumeric.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/autonumeric@4.6.0/dist/autoNumeric.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- New Datatables --}}
|
||||||
|
<!-- <script src="https://cdn.datatables.net/2.3.2/css/dataTables.dataTables.min.css"></script>
|
||||||
|
<script src="https://cdn.datatables.net/2.3.2/js/dataTables.min.js"></script>
|
||||||
|
|
||||||
|
<script src="https://cdn.datatables.net/columncontrol/1.0.6/js/dataTables.columnControl.min.js"></script> -->
|
||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
// Initialize Ladda button on click event
|
// Initialize Ladda button on click event
|
||||||
|
|||||||
@@ -11,6 +11,9 @@
|
|||||||
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.6/css/jquery.dataTables.min.css">
|
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.6/css/jquery.dataTables.min.css">
|
||||||
<link rel="stylesheet" href="https://cdn.datatables.net/buttons/1.7.1/css/buttons.dataTables.min.css">
|
<link rel="stylesheet" href="https://cdn.datatables.net/buttons/1.7.1/css/buttons.dataTables.min.css">
|
||||||
|
|
||||||
|
<!-- <link rel="stylesheet" href="https://cdn.datatables.net/2.3.2/css/dataTables.dataTables.css" />
|
||||||
|
<link href="https://cdn.datatables.net/columncontrol/1.0.6/css/columnControl.dataTables.min.css" rel="stylesheet"> -->
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fiqhpratama/upsense-cdn@main/adminlte-blue/plugins/materialdesignicon/css/materialdesignicons.min.css">
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fiqhpratama/upsense-cdn@main/adminlte-blue/plugins/materialdesignicon/css/materialdesignicons.min.css">
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fiqhpratama/upsense-cdn@main/adminlte-blue/plugins/sweetalert2/sweetalert2.min.css">
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fiqhpratama/upsense-cdn@main/adminlte-blue/plugins/sweetalert2/sweetalert2.min.css">
|
||||||
|
|||||||
Reference in New Issue
Block a user