Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 026e31d037 |
@@ -0,0 +1,16 @@
|
||||
.git
|
||||
.gitea
|
||||
node_modules
|
||||
vendor
|
||||
.env
|
||||
.env.*
|
||||
!.env.example
|
||||
storage/logs
|
||||
storage/framework/cache
|
||||
storage/framework/sessions
|
||||
storage/framework/views
|
||||
storage/debugbar
|
||||
npm-debug.log
|
||||
Dockerfile
|
||||
docker-compose.yml
|
||||
docker-compose.staging.yml
|
||||
+14
-11
@@ -2,10 +2,11 @@ APP_NAME=Laravel
|
||||
APP_ENV=local
|
||||
APP_KEY=base64:I+gVCBqCeGsUQ3vwwW23D5wVgdgMqwM2ozBkqDFY9o0=
|
||||
APP_DEBUG=true
|
||||
APP_URL=http://adminv3.localhost
|
||||
API_URL=http://apiv3.localhost
|
||||
API_URL_KOOP=http://apiv3.localhost
|
||||
API_URL_PKB=http://apiv2.localhost
|
||||
APP_URL=http://localhost:8082
|
||||
API_BROWSER_URL=http://localhost:8080
|
||||
API_URL=http://api_arrahn-app-1:8000
|
||||
API_URL_KOOP=http://api_arrahn-app-1:8000
|
||||
API_URL_PKB=http://api_arrahn-app-1:8000
|
||||
API_ARRAHN_PORTAL_URL=http://pay.arrahn.com.my
|
||||
ADMIN_VERSION=V3
|
||||
|
||||
@@ -14,11 +15,13 @@ LOG_DEPRECATIONS_CHANNEL=null
|
||||
LOG_LEVEL=debug
|
||||
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=database_arosv3
|
||||
DB_HOST=host.docker.internal
|
||||
DB_PORT=3306
|
||||
DB_DATABASE=kaunterpkb
|
||||
DB_DATABASE=kaunter_erahn
|
||||
DB_USERNAME=root
|
||||
DB_PASSWORD=secret
|
||||
DB_PASSWORD=root
|
||||
# Windows host IP from WSL: ip route | awk '/default/{print $3}'
|
||||
LARAGON_HOST=172.28.0.1
|
||||
|
||||
BROADCAST_DRIVER=pusher
|
||||
CACHE_DRIVER=file
|
||||
@@ -56,7 +59,7 @@ MIX_USE_DOCKER=true
|
||||
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
|
||||
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
||||
# MIX_API_URL=http://api.arrahn
|
||||
MIX_API_URL=http://apiv3.localhost
|
||||
MIX_API_URL_ZONE1=http://apiv3.localhost
|
||||
MIX_API_URL_ZONE2=http://apiv3.localhost
|
||||
MIX_API_URL_ZONE3=http://apiv3.localhost
|
||||
MIX_API_URL=http://localhost:8080
|
||||
MIX_API_URL_ZONE1=http://localhost:8080
|
||||
MIX_API_URL_ZONE2=http://localhost:8080
|
||||
MIX_API_URL_ZONE3=http://localhost:8080
|
||||
|
||||
@@ -43,24 +43,23 @@ class AkaunController extends Controller
|
||||
$current = Carbon::now();
|
||||
$current = new Carbon();
|
||||
$tarikh_cetak = $current->toDateString();
|
||||
$tarikh_mula = $tarikh_cetak;
|
||||
$tarikh_akhir = $tarikh_cetak;
|
||||
|
||||
if($request->datemula == null){
|
||||
$tarikh_cetak = $current->toDateString();
|
||||
}else {
|
||||
$split_date = explode('-',$request->datemula);
|
||||
// $tarikh_mula = $split_date[2] . '-' . $split_date[1] . '-' . $split_date[0];
|
||||
if($request->datemula != null){
|
||||
$tarikh_mula = $request->datemula;
|
||||
}
|
||||
|
||||
if($request->datehingga == null){
|
||||
$tarikh_cetak = $current->toDateString();
|
||||
}
|
||||
else{
|
||||
$split_date = explode('-',$request->datehingga);
|
||||
// $tarikh_akhir = $split_date[2] . '-' . $split_date[1] . '-' . $split_date[0];
|
||||
if($request->datehingga != null){
|
||||
$tarikh_akhir = $request->datehingga;
|
||||
}
|
||||
|
||||
$had_response = Http::get($request->hostname . '/api/ModalOnlineLejer/' . $request->kodcaw, [
|
||||
'mula' => $tarikh_mula,
|
||||
'hingga' => $tarikh_akhir,
|
||||
])->json();
|
||||
$had_modal_online = $had_response['had'] ?? 0;
|
||||
|
||||
$lejeramdata = Lejeram::orderBy('glcode')->get();
|
||||
$lejeram = array();
|
||||
$len = count($lejeramdata);
|
||||
@@ -100,6 +99,11 @@ class AkaunController extends Controller
|
||||
$kredit = ${$lejer['variable']}[$lejer->namakredit];
|
||||
}
|
||||
|
||||
if($lejer->glcode == '7000/102')
|
||||
{
|
||||
$kredit = floatval($kredit) + $had_modal_online;
|
||||
}
|
||||
|
||||
$totalkredit += floatval($kredit);
|
||||
}
|
||||
|
||||
@@ -192,6 +196,13 @@ class AkaunController extends Controller
|
||||
$hapuskira = Http::get($request->hostname.'/api/CalculationHapusKira/' . $request->kodcaw,['tarikh' => $tarikh_imbangan2])->json();
|
||||
$xtra = Http::get($request->hostname.'/api/Xtra/' . $request->kodcaw,['tarikh' => $tarikh_imbangan2])->json();
|
||||
|
||||
$rebetAnnur = !empty(($cawangan_info['features'] ?? [])['rebet_annur']);
|
||||
$rebetpromo = 0;
|
||||
$pelarasanrebate = 0;
|
||||
if ($rebetAnnur) {
|
||||
$rebetpromo = Http::get($request->hostname.'/api/RebetPromoCalculation/' . $request->kodcaw,['tarikh' => $tarikh_imbangan2])->json();
|
||||
$pelarasanrebate = Http::get($request->hostname.'/api/PelarasanRebate/' . $request->kodcaw,['tarikh' => $tarikh_imbangan2])->json();
|
||||
}
|
||||
|
||||
//TunaiDitangan Sementara Upah
|
||||
if($tarikh_imbangan2 >= '2021-04-22' && $tarikh_imbangan2 < '2021-05-05')
|
||||
@@ -229,24 +240,10 @@ class AkaunController extends Controller
|
||||
$untungrugiterkumpul = Http::get($request->hostname. '/api/UntungRugiTerkumpul/'. $request->kodcaw,['tarikh' => $tarikh_imbangan2])->json();
|
||||
|
||||
$hartasemasa = [];
|
||||
|
||||
if($request->kodcaw == '010219')
|
||||
{
|
||||
if($tarikh_imbangan2 >= '2023-02-16')
|
||||
{
|
||||
$hutang = Http::withOptions(['verify' => config('app.api_verify')])->get($request->hostname.'/admin/ig/penghutang' ,['kodcaw' => $request->kodcaw, 'tarikh' => $tarikh_imbangan2])->json();
|
||||
$bayaran_hutang = Http::withOptions(['verify' => config('app.api_verify')])->get($request->hostname.'/admin/ig/bayaran_penghutang' ,['kodcaw' => $request->kodcaw, 'tarikh' => $tarikh_imbangan2])->json();
|
||||
//if($bayaran_hutang > 0) array_push($hartasemasa,['glcode' => '8000/501','descpt' => 'Bayaran Penghutang', 'amaun' => $bayaran_hutang]);
|
||||
$totaltunaiditangan = $totaltunaiditangan;
|
||||
$penghutangkaki = $hutang['bakihutang'] - $bayaran_hutang;
|
||||
}else{
|
||||
$penghutangkaki = $penghutangkaki;
|
||||
}
|
||||
}
|
||||
// $hartasemasa = ['serahan' => $imbangduga['serahan'],'pinjamankoop' => $pinjamandiberi['pinjamankoop'],'emaspalsu' => $pinjamandiberi['emaspalsu'],'tunaiditangan' => $tunaiditangan['bakiakhir']];
|
||||
|
||||
if($totaltunaiditangan > 0) array_push($hartasemasa,['glcode' => '1000/011','descpt' => 'Tunai Di Tangan', 'amaun' => $totaltunaiditangan]);
|
||||
if($pembiayaantawarruq > 0) array_push($hartasemasa,['glcode' => '1000/021','descpt' => 'Pembiayaan Di Bawah Tawarruq', 'amaun' => $pembiayaantawarruq]);
|
||||
if($totaltunaiditangan > 0) array_push($hartasemasa,['glcode' => '1000/010','descpt' => 'Tunai Di Tangan', 'amaun' => $totaltunaiditangan]);
|
||||
if($pembiayaantawarruq > 0) array_push($hartasemasa,['glcode' => '1000/010','descpt' => 'Pembiayaan Di Bawah Tawarruq', 'amaun' => $pembiayaantawarruq]);
|
||||
if($penghutangkaki > 0) array_push($hartasemasa,['glcode' => '1000/011','descpt' => 'Penghutang Kakitangan', 'amaun' => $penghutangkaki]);
|
||||
//array_push($hartasemasa,['glcode' => '1000/045','descpt' => 'Serahan Bayaran Online', 'amaun' => 0.00]);
|
||||
if($keuntungan > 0) array_push($hartasemasa,['glcode' => '1000/211','descpt' => 'Keuntungan Tertangguh', 'amaun' => $keuntungan]);
|
||||
@@ -258,6 +255,7 @@ class AkaunController extends Controller
|
||||
if($imbangduga['pindahkekpkb'] > 0) array_push($hartasemasa,['glcode' => '1000/090','descpt' => 'Pindah Ke KPKB(IP)', 'amaun' => $imbangduga['pindahkekpkb']]);
|
||||
if($peruntukanhapuskira > 0) array_push($hartasemasa,['glcode' => '1000/015','descpt' => 'Peruntukan Hapus Kira', 'amaun' => $peruntukanhapuskira]);
|
||||
if($belian1stop > 0) array_push($hartasemasa,['glcode' => '8000/501','descpt' => 'Belian 1 Stop', 'amaun' => $belian1stop]);
|
||||
if($rebetpromo > 0) array_push($hartasemasa,['glcode' => '5000/242','descpt' => 'Diskaun Promosi', 'amaun' => ($rebetpromo * -1)]);
|
||||
|
||||
$totalhartasemasa = 0;
|
||||
foreach($hartasemasa as $index => $hs)
|
||||
@@ -278,7 +276,7 @@ class AkaunController extends Controller
|
||||
if($panjar['keraian'] > 0) array_push($tanggungansemasa,['glcode' => '3000/019','descpt' => 'Panjar - Keraian Dan Promosi','amaun' => -$panjar['keraian']]);
|
||||
if($bakilelong['bakilelong'] != 0) array_push($tanggungansemasa,['glcode' => '7000/090','descpt' => 'Baki Lelong','amaun' => $bakilelong['bakilelong']]);
|
||||
if($bakilelong['rugilelong'] != 0) array_push($tanggungansemasa,['glcode' => '3000/020','descpt' => 'Kerugian Lelong','amaun' => $bakilelong['rugilelong']]);
|
||||
if($wtd > 0) array_push($tanggungansemasa,['glcode' => '3000/021','descpt' => 'Wang Tak Dituntut','amaun' => $wtd]);
|
||||
if($wtd > 0) array_push($tanggungansemasa,['glcode' => '3000/021','descpt' => 'SERAHAN WANG TAK DITUNTUT','amaun' => $wtd]);
|
||||
if($cajlelong > 0) array_push($tanggungansemasa,['glcode' => '5000/213','descpt' => 'Pendapatan Caj Lelong','amaun' => $cajlelong]);
|
||||
if($untungrugiterkumpul != 0) array_push($tanggungansemasa,['glcode' => '7000/101','descpt' => 'Untung/Rugi Terkumpul','amaun' => $untungrugiterkumpul]);
|
||||
if($cajperkhidmatan > 0) array_push($tanggungansemasa,['glcode' => '5000/213','descpt' => 'Caj Perkhidmatan Terkumpul','amaun' => $cajperkhidmatan]);
|
||||
@@ -289,6 +287,8 @@ class AkaunController extends Controller
|
||||
if($utgterkumpulxtra > 0) array_push($tanggungansemasa,['glcode' => '7000/201','descpt' => 'Untung/Rugi Terkumpul Xtra','amaun' => $utgterkumpulxtra]);
|
||||
if($jualan1stop > 0) array_push($tanggungansemasa,['glcode' => '9000/501','descpt' => 'Jualan 1 Stop','amaun' => $jualan1stop]);
|
||||
if($hapuskira > 0) array_push($tanggungansemasa,['glcode' => '3000/011','descpt' => 'Hapus Kira','amaun' => -$hapuskira]);
|
||||
if($rebetpromo > 0) array_push($tanggungansemasa,['glcode' => '5000/242','descpt' => 'Diskaun Promosi', 'amaun' => ($rebetpromo * -1)]);
|
||||
if($pelarasanrebate > 0) array_push($tanggungansemasa,['glcode' => '5000/243','descpt' => 'Pelarasan Rebate', 'amaun' => ($pelarasanrebate * -1)]);
|
||||
|
||||
$totaltanggungansemasa = 0;
|
||||
foreach($tanggungansemasa as $index => $ts)
|
||||
@@ -303,18 +303,15 @@ class AkaunController extends Controller
|
||||
$totaluntungrugi = 0;
|
||||
$totaluntungrugi = $totaltanggungansemasa + $untungrugi;
|
||||
|
||||
if(isset($request->jenis))
|
||||
$viewData = compact('tarikh_imbangan', 'tarikh_imbangan2','hartasemasa','untungrugifield','tanggungansemasa','totalhartasemasa','totaluntungrugi','totaltanggungansemasa','tarikh_cetak','cawangan_info','cawangan','api_url','cawangan_detail');
|
||||
|
||||
if($request->jenis == 'pdf')
|
||||
{
|
||||
if($request->jenis == 'pdf')
|
||||
{
|
||||
$pdf = PDF::loadView('akaun.laporan_imbanduga',compact('tarikh_imbangan', 'tarikh_imbangan2','hartasemasa','untungrugifield','tanggungansemasa','totalhartasemasa','totaluntungrugi','totaltanggungansemasa','tarikh_cetak','cawangan_info','cawangan','api_url','cawangan_detail'))->setPaper('a4', 'potrait');
|
||||
return $pdf->download('laporan_imbangduga_' . $request->kodcaw .'_'. $tarikh_imbangan2 . '.pdf');
|
||||
}else{
|
||||
return view('akaun.laporan_imbanduga',compact('tarikh_imbangan', 'tarikh_imbangan2','hartasemasa','untungrugifield','tanggungansemasa','totalhartasemasa','totaluntungrugi','totaltanggungansemasa','tarikh_cetak','cawangan_info','cawangan','api_url','cawangan_detail'));
|
||||
}
|
||||
$pdf = PDF::loadView('akaun.laporan_imbanduga', $viewData)->setPaper('a4', 'potrait');
|
||||
return $pdf->download('laporan_imbangduga_' . $request->kodcaw .'_'. $tarikh_imbangan2 . '.pdf');
|
||||
}
|
||||
|
||||
// return view('akaun.laporan_imbanduga',compact('tarikh_imbangan', 'tarikh_imbangan2','hartasemasa','untungrugifield','tanggungansemasa','totalhartasemasa','totaluntungrugi','totaltanggungansemasa','tarikh_cetak','cawangan_info','cawangan','api_url','cawangan_detail'));
|
||||
return view('akaun.laporan_imbanduga', $viewData);
|
||||
}
|
||||
////ainizazi
|
||||
public function cetakLaporanGadai(Request $request){
|
||||
|
||||
@@ -30,6 +30,7 @@ class Kernel extends HttpKernel
|
||||
*/
|
||||
protected $middlewareGroups = [
|
||||
'web' => [
|
||||
\App\Http\Middleware\RewriteApiHostname::class,
|
||||
\App\Http\Middleware\EncryptCookies::class,
|
||||
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
|
||||
\Illuminate\Session\Middleware\StartSession::class,
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class RewriteApiHostname
|
||||
{
|
||||
/**
|
||||
* Vue posts the browser API URL as "hostname". PHP must call the
|
||||
* Docker-reachable API_URL instead of localhost.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle(Request $request, Closure $next)
|
||||
{
|
||||
if ($request->has('hostname')) {
|
||||
$request->merge([
|
||||
'hostname' => api_url_for_server($request->input('hostname')),
|
||||
]);
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
if (!function_exists('api_url_for_browser')) {
|
||||
/**
|
||||
* Base URL for JavaScript in the browser.
|
||||
* API_URL may be a Docker-only hostname (api_arrahn-app-1). Browsers use API_BROWSER_URL.
|
||||
* Docker dev often uses host.docker.internal for PHP→host; browsers may not resolve it.
|
||||
* Production URLs are unchanged when API_BROWSER_URL is empty.
|
||||
*/
|
||||
function api_url_for_browser(): string
|
||||
{
|
||||
$browser = rtrim((string) config('api.browser_url'), '/');
|
||||
if ($browser !== '') {
|
||||
return $browser;
|
||||
}
|
||||
|
||||
$url = rtrim((string) config('api.url'), '/');
|
||||
|
||||
return str_ireplace('host.docker.internal', '127.0.0.1', $url);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('api_url_for_server')) {
|
||||
/**
|
||||
* Base URL for PHP Http::get/put from this container.
|
||||
* Vue posts MIX_API_URL (localhost:8080) as "hostname"; that is for the browser.
|
||||
* Inside Docker, localhost is this container — map it to API_URL.
|
||||
*/
|
||||
function api_url_for_server(?string $url = null): string
|
||||
{
|
||||
$internal = rtrim((string) config('api.url'), '/');
|
||||
|
||||
if ($url === null || $url === '') {
|
||||
return $internal;
|
||||
}
|
||||
|
||||
$url = rtrim($url, '/');
|
||||
$browser = rtrim((string) config('api.browser_url'), '/');
|
||||
|
||||
if ($internal === '') {
|
||||
return $url;
|
||||
}
|
||||
|
||||
if ($browser !== '' && strcasecmp($url, $browser) === 0) {
|
||||
return $internal;
|
||||
}
|
||||
|
||||
$host = parse_url($url, PHP_URL_HOST);
|
||||
if (in_array($host, ['localhost', '127.0.0.1', 'host.docker.internal'], true)) {
|
||||
return $internal;
|
||||
}
|
||||
|
||||
return $url;
|
||||
}
|
||||
}
|
||||
+4
-1
@@ -32,7 +32,10 @@
|
||||
"App\\": "app/",
|
||||
"Database\\Factories\\": "database/factories/",
|
||||
"Database\\Seeders\\": "database/seeders/"
|
||||
}
|
||||
},
|
||||
"files": [
|
||||
"app/helpers.php"
|
||||
]
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
return [
|
||||
'url' => env('API_URL'),
|
||||
'browser_url' => env('API_BROWSER_URL'),
|
||||
'url_koop' => env('API_URL_KOOP'),
|
||||
'url_pkb' => env('API_URL_PKB'),
|
||||
'url_arrahn_portal' => env('API_ARRAHN_PORTAL_URL'),
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
name: admin_erahn_staging
|
||||
|
||||
services:
|
||||
app:
|
||||
image: ${APP_IMAGE:-git.koppkb.com/kopkb/admin-erahn}:${IMAGE_TAG:-staging}
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker/php/Dockerfile
|
||||
target: staging
|
||||
container_name: admin_erahn_staging_app
|
||||
working_dir: /var/www/html
|
||||
volumes:
|
||||
- storage_staging:/var/www/html/storage
|
||||
- ./.env.staging:/var/www/html/.env.staging:ro
|
||||
env_file:
|
||||
- .env.staging
|
||||
environment:
|
||||
APP_ENV: staging
|
||||
USE_STAGING_ENV: "true"
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
depends_on:
|
||||
mysql:
|
||||
condition: service_healthy
|
||||
restart: unless-stopped
|
||||
|
||||
web:
|
||||
image: nginx:1.25-alpine
|
||||
container_name: admin_erahn_staging_web
|
||||
ports:
|
||||
- "${HTTP_PORT:-8092}:80"
|
||||
volumes:
|
||||
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
|
||||
- ./public:/var/www/html/public:ro
|
||||
depends_on:
|
||||
- app
|
||||
restart: unless-stopped
|
||||
|
||||
mysql:
|
||||
image: mysql:8.0
|
||||
container_name: admin_erahn_staging_mysql
|
||||
command: --default-authentication-plugin=mysql_native_password
|
||||
ports:
|
||||
- "127.0.0.1:${MYSQL_PUBLISH_PORT:-3310}:3306"
|
||||
environment:
|
||||
MYSQL_DATABASE: admin_erahn
|
||||
MYSQL_USER: adminuser
|
||||
MYSQL_PASSWORD: password
|
||||
MYSQL_ROOT_PASSWORD: root
|
||||
volumes:
|
||||
- mysql_staging_data:/var/lib/mysql
|
||||
healthcheck:
|
||||
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-uroot", "-proot"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 30
|
||||
start_period: 20s
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
mysql_staging_data:
|
||||
storage_staging:
|
||||
@@ -0,0 +1,39 @@
|
||||
server {
|
||||
listen 80;
|
||||
server_name _;
|
||||
|
||||
root /var/www/html/public;
|
||||
index index.php index.html;
|
||||
|
||||
charset utf-8;
|
||||
client_max_body_size 50M;
|
||||
|
||||
location / {
|
||||
# Production Apache public/.htaccess 301-strips trailing slashes.
|
||||
# Nginx ignores .htaccess, so without this /path/ 404s while /path works.
|
||||
rewrite ^/(.*)/$ /$1 last;
|
||||
try_files $uri @php;
|
||||
}
|
||||
|
||||
location @php {
|
||||
include fastcgi_params;
|
||||
fastcgi_param SCRIPT_FILENAME /var/www/html/public/index.php;
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
fastcgi_pass app:9000;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_read_timeout 120s;
|
||||
}
|
||||
|
||||
location ~ \.php$ {
|
||||
include fastcgi_params;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
fastcgi_pass app:9000;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_read_timeout 120s;
|
||||
}
|
||||
|
||||
location ~ /\.(?!well-known).* {
|
||||
deny all;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
FROM php:7.4-fpm AS base
|
||||
|
||||
WORKDIR /var/www/html
|
||||
|
||||
# PHP 7.4 uses Debian Bullseye; use its archived package repositories.
|
||||
# Archived security metadata expires, but package signatures remain verified.
|
||||
RUN printf '%s\n' \
|
||||
'deb https://archive.debian.org/debian bullseye main' \
|
||||
'deb [check-valid-until=no] https://archive.debian.org/debian-security bullseye-security main' \
|
||||
> /etc/apt/sources.list \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& apt-get -o Acquire::Retries=3 update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
git \
|
||||
pkg-config \
|
||||
unzip \
|
||||
libonig-dev \
|
||||
libzip-dev \
|
||||
libpng-dev \
|
||||
libjpeg62-turbo-dev \
|
||||
libfreetype6-dev \
|
||||
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
|
||||
&& docker-php-ext-install -j"$(nproc)" \
|
||||
pdo_mysql \
|
||||
mbstring \
|
||||
bcmath \
|
||||
zip \
|
||||
exif \
|
||||
gd \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer
|
||||
|
||||
COPY docker/php/php.ini /usr/local/etc/php/conf.d/app.ini
|
||||
COPY docker/php/zz-clear-env.conf /usr/local/etc/php-fpm.d/zz-clear-env.conf
|
||||
COPY docker/php/entrypoint.sh /usr/local/bin/app-entrypoint.sh
|
||||
|
||||
# Normalize Windows checkout line endings before executing the script.
|
||||
RUN sed -i 's/\r$//' /usr/local/bin/app-entrypoint.sh \
|
||||
&& chmod +x /usr/local/bin/app-entrypoint.sh \
|
||||
&& usermod -u 1000 www-data && groupmod -g 1000 www-data
|
||||
|
||||
ENTRYPOINT ["app-entrypoint.sh"]
|
||||
CMD ["php-fpm"]
|
||||
|
||||
FROM base AS staging
|
||||
|
||||
COPY --chown=www-data:www-data . /var/www/html
|
||||
|
||||
RUN composer install --no-interaction --prefer-dist --no-dev --optimize-autoloader --no-scripts \
|
||||
&& mkdir -p \
|
||||
storage/logs \
|
||||
storage/framework/cache/data \
|
||||
storage/framework/views \
|
||||
storage/framework/sessions \
|
||||
storage/app/public \
|
||||
bootstrap/cache \
|
||||
&& chown -R www-data:www-data storage bootstrap/cache vendor
|
||||
|
||||
FROM base AS development
|
||||
@@ -0,0 +1,35 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
cd /var/www/html
|
||||
|
||||
if [ "${USE_STAGING_ENV:-false}" = "true" ] && [ -f .env.staging ]; then
|
||||
cp .env.staging .env
|
||||
fi
|
||||
|
||||
if [ -f composer.json ]; then
|
||||
if [ -f vendor/autoload.php ] && [ "${USE_STAGING_ENV:-false}" = "true" ]; then
|
||||
: # vendor is baked into the staging image
|
||||
elif [ "${USE_STAGING_ENV:-false}" = "true" ]; then
|
||||
composer install --no-interaction --prefer-dist --no-dev --optimize-autoloader --no-scripts
|
||||
else
|
||||
composer install --no-interaction --prefer-dist
|
||||
fi
|
||||
fi
|
||||
|
||||
mkdir -p \
|
||||
storage/logs \
|
||||
storage/framework/cache/data \
|
||||
storage/framework/views \
|
||||
storage/framework/sessions \
|
||||
storage/app/public \
|
||||
bootstrap/cache
|
||||
|
||||
if [ -f artisan ]; then
|
||||
php artisan package:discover --ansi
|
||||
php artisan storage:link --force >/dev/null 2>&1 || true
|
||||
fi
|
||||
|
||||
chown -R www-data:www-data storage bootstrap/cache
|
||||
|
||||
exec docker-php-entrypoint "$@"
|
||||
@@ -0,0 +1,4 @@
|
||||
memory_limit=512M
|
||||
upload_max_filesize=50M
|
||||
post_max_size=50M
|
||||
max_execution_time=120
|
||||
@@ -0,0 +1,3 @@
|
||||
[www]
|
||||
; Pass container env vars (from compose env_file) through to PHP workers.
|
||||
clear_env = no
|
||||
@@ -55,15 +55,13 @@
|
||||
<i class="animate-spin fas fa-circle-notch fixed fa-4x m-auto text-yellow-500" style="left:48% !important;top:45% !important;"></i>
|
||||
</div>
|
||||
|
||||
<vue-friendly-iframe v-show="showLoader == false" :style="{visibility: showLoader ? 'hidden' : 'visible'}" class="h-full w-full"
|
||||
:src="''"
|
||||
frame-id="myIframe"
|
||||
@load="onLoad"
|
||||
@iframe-load="LoadedReady"
|
||||
name="iframe_laporan"
|
||||
ref="friendlyIframe"></vue-friendly-iframe>
|
||||
|
||||
<!-- <iframe :style="{visibility: showLoader ? 'hidden' : 'visible'}" name="iframe_laporan" scrolling="true" :load="onLoad()"></iframe> -->
|
||||
<iframe
|
||||
v-show="showLoader == false"
|
||||
class="h-full w-full"
|
||||
name="iframe_laporan"
|
||||
ref="reportFrame"
|
||||
@load="onReportLoad"
|
||||
></iframe>
|
||||
</div>
|
||||
<!--footer-->
|
||||
<div class="flex items-center justify-end p-6 border-t border-solid border-blueGray-200 rounded-b">
|
||||
@@ -84,7 +82,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<style>
|
||||
.vue-friendly-iframe iframe {
|
||||
iframe[name="iframe_laporan"] {
|
||||
height:100% !important;
|
||||
width:100% !important;
|
||||
}
|
||||
@@ -127,32 +125,22 @@ export default {
|
||||
},
|
||||
async generateview(){
|
||||
await this.setJenis('view');
|
||||
|
||||
// Vue.swal({
|
||||
// title: 'Memuatkan...',
|
||||
// allowEscapeKey : false,
|
||||
// allowOutsideClick: false,
|
||||
// showCancelButton: false,
|
||||
// showConfirmButton: false
|
||||
|
||||
// });
|
||||
this.showLoader = true;
|
||||
this.pendingStatus = 'loading';
|
||||
this.showModal = true;
|
||||
|
||||
|
||||
await this.$nextTick();
|
||||
this.$refs.formimbangduga.submit();
|
||||
},
|
||||
toggleModal: function(){
|
||||
this.showLoader = true
|
||||
this.pendingStatus = 'none'
|
||||
this.showModal = !this.showModal;
|
||||
},
|
||||
async onLoad() {
|
||||
await this.$refs.formimbangduga.submit()
|
||||
},
|
||||
async LoadedReady(){
|
||||
await setTimeout(() => {
|
||||
this.showLoader = false
|
||||
this.pendingStatus = 'ok'
|
||||
}, 10000);
|
||||
onReportLoad() {
|
||||
if (this.pendingStatus === 'loading') {
|
||||
this.showLoader = false;
|
||||
this.pendingStatus = 'ok';
|
||||
}
|
||||
},
|
||||
Urlredirect: function() {
|
||||
return window.route('cetak.imbangduga')
|
||||
|
||||
@@ -409,28 +409,16 @@
|
||||
|
||||
<table id="tarikh_ib">
|
||||
<tr>
|
||||
@php
|
||||
$api_url = request()->hostname;
|
||||
@endphp
|
||||
<td cospan="2" > <B><U>LAPORAN IMBANGAN DUGA CAWANGAN</U></B></td>
|
||||
|
||||
|
||||
@if(Str::contains($api_url, 'apiv3.arrahn'))
|
||||
<th colspan="5"><b>LAPORAN IMBANGAN DUGA CAWANGAN (arOSv3)</b></th>
|
||||
@else
|
||||
<th> </th>
|
||||
<td cospan="2" > <B><U>LAPORAN IMBANGAN DUGA CAWANGAN</U></B></td>
|
||||
@endif
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table id="tarikh_ib">
|
||||
|
||||
|
||||
<tr>
|
||||
<td style="width:20%; white-space: nowrap;"><b>Tarikh Laporan</b></td >
|
||||
<td style="width:20%; white-space: nowrap;"> {{ ($tarikh_imbangan2) ? $tarikh_imbangan2 : ''}} </td>
|
||||
<td style="width:150%; white-space: nowrap;"><b>Tarikh Cetak</b></td>
|
||||
<td style="width:20%; white-space: nowrap;"> {{$tarikh_cetak}} </td>
|
||||
</tr>
|
||||
<tr><td style="width:10px" ><b>Tarikh Laporan</b></td ><td style="width:20px"> {{ ($tarikh_imbangan2) ? $tarikh_imbangan2 : ''}} </td><td style="width:18px" ><b>Tarikh Cetak</b></td><td style="width:25px" > {{$tarikh_cetak}} </td> </tr>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -323,15 +323,7 @@
|
||||
<br>
|
||||
|
||||
<table id="title">
|
||||
@php
|
||||
$api_url = request()->hostname;
|
||||
@endphp
|
||||
|
||||
@if(Str::contains($api_url, 'apiv3.arrahn'))
|
||||
<td> <b><u>LEJER AM (arOSv3)</u></b></td>
|
||||
@else
|
||||
<td> <b><u>LEJER AM</u></b></td>
|
||||
@endif
|
||||
<td> <b><u>LEJER AM</u></b></td>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
@@ -339,19 +331,19 @@
|
||||
<div class="tarikhcetak">
|
||||
<span style="font-weight: bold;">[ TARIKH DARI : </span>
|
||||
<span>@php
|
||||
// $myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_mula);
|
||||
// $tarikhmula = $myDateTime->format('d-m-Y');
|
||||
echo($tarikh_mula)
|
||||
$myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_mula);
|
||||
$tarikhmula = $myDateTime->format('d-m-Y');
|
||||
echo($tarikhmula)
|
||||
@endphp</span>
|
||||
<span style="font-weight: bold;"> ..... </span>
|
||||
<span style="font-weight: bold;">HINGGA : </span><span>@php
|
||||
// $myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_akhir);
|
||||
// $tarikhakhir = $myDateTime->format('d-m-Y');
|
||||
echo($tarikh_akhir)
|
||||
$myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_akhir);
|
||||
$tarikhakhir = $myDateTime->format('d-m-Y');
|
||||
echo($tarikhakhir)
|
||||
@endphp<span style="font-weight:bold"> ]</span></span>
|
||||
<span style="margin-left:50px;font-weight: bold;">TARIKH CETAK : </span><span>@php
|
||||
// $myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak);
|
||||
// $tarikh_cetak = $myDateTime->format('d-m-Y');
|
||||
$myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak);
|
||||
$tarikh_cetak = $myDateTime->format('d-m-Y');
|
||||
echo($tarikh_cetak)
|
||||
@endphp</span>
|
||||
</div>
|
||||
@@ -431,7 +423,7 @@
|
||||
|
||||
</table> --}}
|
||||
|
||||
{{-- <div style="margin-left:70px;">
|
||||
<div style="margin-left:70px;">
|
||||
<span class ="signature"><span style="margin-top:20px;">Disemak Oleh</span></span>
|
||||
<span class ="signature">Disahkan Oleh</span>
|
||||
</div> --}}
|
||||
</div>
|
||||
|
||||
@@ -301,16 +301,7 @@
|
||||
|
||||
|
||||
<table id="title">
|
||||
@php
|
||||
$api_url = request()->hostname;
|
||||
@endphp
|
||||
|
||||
@if(Str::contains($api_url, 'apiv3.arrahn'))
|
||||
<td> <b><u>LEJER AM (arOSv3) - {{ $cawangan_detail['namacaw'] }}</u></b></td>
|
||||
@else
|
||||
<td> <b><u>LEJER AM - {{ $cawangan_detail['namacaw'] }}</u></b></td>
|
||||
@endif
|
||||
|
||||
<td> <b><u>LEJER AM</u></b></td>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
@@ -318,19 +309,19 @@
|
||||
<div class="tarikhcetak">
|
||||
<span style="font-weight: bold;">[ TARIKH DARI : </span>
|
||||
<span>@php
|
||||
// $myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_mula);
|
||||
// $tarikhmula = $myDateTime->format('d-m-Y');
|
||||
echo($tarikh_mula)
|
||||
$myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_mula);
|
||||
$tarikhmula = $myDateTime->format('d-m-Y');
|
||||
echo($tarikhmula)
|
||||
@endphp</span>
|
||||
<span style="font-weight: bold;"> ..... </span>
|
||||
<span style="font-weight: bold;">HINGGA : </span><span>@php
|
||||
// $myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_akhir);
|
||||
// $tarikhakhir = $myDateTime->format('d-m-Y');
|
||||
echo($tarikh_akhir)
|
||||
$myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_akhir);
|
||||
$tarikhakhir = $myDateTime->format('d-m-Y');
|
||||
echo($tarikhakhir)
|
||||
@endphp<span style="font-weight:bold"> ]</span></span>
|
||||
<span style="margin-left:50px;font-weight: bold;">TARIKH CETAK : </span><span>@php
|
||||
// $myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak);
|
||||
// $tarikh_cetak = $myDateTime->format('d-m-Y');
|
||||
$myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak);
|
||||
$tarikh_cetak = $myDateTime->format('d-m-Y');
|
||||
echo($tarikh_cetak)
|
||||
@endphp</span>
|
||||
</div>
|
||||
|
||||
@@ -164,7 +164,7 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
// =====================
|
||||
// Fetch Cawangan API
|
||||
// =====================
|
||||
fetch("{{ config('api.url') }}/api/cawangan")
|
||||
fetch("{{ api_url_for_browser() }}/api/cawangan")
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
container.innerHTML = '';
|
||||
|
||||
Reference in New Issue
Block a user