Merge branch 'new-super' of https://gitlab.com/online-sistem1/kaunter into new-super

This commit is contained in:
Zakwan Hamdan
2023-02-05 11:01:48 +08:00
16 changed files with 1177 additions and 27 deletions
+2 -1
View File
@@ -13,6 +13,7 @@ class CawanganAR extends Model
'kodcaw',
'syarikat',
'min',
'max'
'max',
'penyelarasan'
];
}
+61
View File
@@ -0,0 +1,61 @@
<?php
namespace App\Console\Commands;
use Exception;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Http;
class DailyAkru extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'akru:daily {--zone=1 : Choose which zone to update zone [1,2,3]}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Generate Daily Akrual For Trial Balance';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$zone = $this->option('zone');
if($zone < 1 || $zone > 3)
{
throw new Exception('The zone is not in the range!');
}
$updateAkruDaily = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/admin/laporan/akrual/generateDaily',[
'zone' => $zone
])->json();
if($updateAkruDaily == 'succesful')
{
return 0;
}else{
return 'failed';
}
}
}
+65
View File
@@ -0,0 +1,65 @@
<?php
namespace App\Console\Commands;
use Exception;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Http;
use App\Services\ImbangdugaServices;
class DailyImbangDuga extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'imbangduga:daily {--zone=1 : Choose which zone to update [1,2,3]}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Save Trial Balance in Database Daily';
/**
* Create a new command instance.
*
* @return void
*/
private $imbangduga;
public function __construct(ImbangdugaServices $imbangduga)
{
$this->imbangduga = $imbangduga;
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$array_cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan')->json();
$zone = $this->option('zone');
if($zone < 1 || $zone > 3)
{
throw new Exception('The zone is not in the range!');
}
foreach($array_cawangan as $caw)
{
if($caw['zone'] == $zone)
{
$response = $this->imbangduga->OperationImbangDuga($caw['kodcaw']);
}
}
return 0;
}
}
+18 -4
View File
@@ -214,11 +214,19 @@ class KakitanganController extends Controller
}
public function deleteKakitangan(Request $request){
// dd($request->all());
$auth_user = Auth::user();
$user = User::find($request->staff_id);
$user->delete();
// dd($user_delete);
return redirect()->route('admin.daftar.kakitangan');
// if($auth_user->roles == 'operasi'){
// // return redirect()->route('daftar.kakitangan');
// return "route('daftar.kakitangan')";
// }else if($auth_user->roles == 'admin'){
// // return redirect()->route('admin.daftar.kakitangan');
// return "route('admin.daftar.kakitangan')";
// }
return response()->json('success');
}
public function editKakitangan(Request $request){
@@ -233,6 +241,7 @@ class KakitanganController extends Controller
public function editStoreKakitangan(Request $request){
// dd($request->all());
$auth_user = Auth::user();
$user = User::find($request->user_id);
$user->name = strtoupper($request->nama);
$user->email = $request->email;
@@ -242,7 +251,12 @@ class KakitanganController extends Controller
$user->password = Hash::make($request->nokp);
$user->save();
return redirect()->route('admin.daftar.kakitangan');
if($auth_user->roles == 'operasi'){
return redirect()->route('daftar.kakitangan');
}else if($auth_user->roles == 'admin'){
return redirect()->route('admin.daftar.kakitangan');
}
}
public function resetCredentials(Request $request){
@@ -2,6 +2,8 @@
namespace App\Http\Controllers;
use App\Services\ImbangdugaServices as ImbanganDuga;
//Events
use App\Events\StatusLiked;
use App\Events\NotifikasiPembayaran;
@@ -4109,4 +4111,60 @@ class KhazanahController extends Controller
return view('print.laporan_serahmarhun', compact('cawangan_detail','api_url','serahmarhun','cawangan_info','datemula','datehingga','tarikh_cetak'));
}
public function ImbangDugaAkru(){
$auth_user = Auth::user();
$api_url = config('api.url');
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();
return view('khazanah.laporan.imbangduga_akru', compact('cawangan_info','api_url'));
}
public function cetakimbangdugaAkru(Request $request){
$auth_user = Auth::user();
$api_url = config('api.url');
$current = Carbon::now();
$current = new Carbon();
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();
$cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$auth_user['cawangan'])->json();
$cawangan_detail=$cawangan[0];
$tarikh_cetak = $current->toDateString();
$tarikh_imbangan= $current->toDateString();
$tarikh_imbangan2= $current->toDateString();
$tarikh_cetak = $current->toDateString();
if($request->datetimepicker2 == null){
$tarikh_cetak = $current->toDateString();
}else{
$split_date = explode('-',$request->datetimepicker2);
$tarikh_imbangan2 = $request->datetimepicker2;
}
if($tarikh_imbangan2 < $current->toDateString()){
$response = (new ImbanganDuga())->GetImbangDugaBackup($auth_user['cawangan'],$request->datetimepicker2);
}else{
$response = (new ImbanganDuga())->ViewImbangDugaAROS($auth_user['cawangan'],$tarikh_imbangan2);
}
if($response->getContent() == 'notfound')
{
return redirect()->route('laporan.imbangdugaakru')->with('error','Tiada Rekod Dijumpai Dalam Imbang Duga Backup!');
}
$array_ig = json_decode($response->getContent());
$hartasemasa = $array_ig->array_harta;
$tanggungansemasa = $array_ig->array_tanggungan;
$totalhartasemasa = $array_ig->sum_harta;
$totaltanggungansemasa = $array_ig->sum_tanggungan;
return view('print.laporan_imbangduga-akru',compact('tarikh_imbangan', 'tarikh_imbangan2','hartasemasa','tanggungansemasa','totalhartasemasa','totaltanggungansemasa','tarikh_cetak','cawangan_info','cawangan','api_url','cawangan_detail'));
}
}
+22
View File
@@ -0,0 +1,22 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class ImbangDuga extends Model
{
protected $table = 'imbangdugadata';
protected $fillable = [
'no',
'descpt',
'glcode',
'api_redirect',
'variable',
'single_var',
'is_array',
'jenis',
'neg_values'
];
}
+302
View File
@@ -0,0 +1,302 @@
<?php
namespace App\Services;
use App\CawanganAR;
use App\ImbangDuga;
use Illuminate\Support\Facades\Http;
use Carbon\Carbon;
class ImbangdugaServices
{
protected float $tunaiditangan = 0;
protected float $pembiayaantawarruq = 0;
protected float $bayaranpendahuluan = 0;
protected float $pinjamankoop = 0;
protected float $emaspalsu = 0;
protected float $serahan = 0;
protected float $pindahkekpkb = 0;
protected float $penghutangkaki = 0;
protected float $phapuskira = 0;
protected float $belian1stop = 0;
protected float $keun_penggadai = 0;
protected float $bds = 0;
protected float $perubatan = 0;
protected float $keraian = 0;
protected float $rugilelong = 0;
protected float $bakilelong = 0;
protected float $wtd = 0;
protected float $untungrugiterkumpul = 0;
protected float $keun_sebenar = 0;
protected float $pendahuluan = 0;
protected float $cajlelong = 0;
protected float $pend_terakru = 0;
protected float $cajperkhidmatan = 0;
protected float $cajlelongxtra = 0;
protected float $upahsimpan = 0;
protected float $bakilelongxtra = 0;
protected float $kerugianlelong = 0;
protected float $utgterkumpulxtra = 0;
protected float $jualan1stop = 0;
protected float $hapuskira = 0;
private function SwitchFuncImbangDuga($value = 0.0,$name_variable = null,$tarikh,$kodcaw) : Float{
$value = floatval($value);
switch ($name_variable) {
case 'tunaiditangan' :
if($tarikh >= '2021-04-22' && $tarikh < '2021-05-05'){
$advansurharini = Http::get(config('api.url').'/api/advansurharini/' . $kodcaw,['tarikh' => $tarikh])->json();
$data = floatval($value) - floatval($advansurharini);
}else $data = $value;
if($kodcaw == '010219')
if($tarikh >= '2022-11-24')
$data = $value - 78379.9;
else $data = $value;
else $data = $value;
break;
case 'penghutangkaki' :
if($kodcaw == '010219')
if($tarikh < '2022-11-24')
$data = $value - 78379.9;
else $data = $value;
else $data = $value;
break;
case 'jualan1stop':
$data = ($kodcaw === '1STOP') ? floatval(129857.00) : 0;
break;
case 'belian1stop':
$data = ($kodcaw === '1STOP') ? floatval(122446.50) : 0;
break;
case 'utgterkumpulxtra':
$data = ($kodcaw === '1STOP') ? floatval(6727.10) : $value;
break;
case 'rugilelongxtra':
$data = ($kodcaw === '1STOP') ? floatval(-10079.30) : -($value);
break;
case 'bakilelongxtra':
$data = ($kodcaw === '1STOP') ? floatval(123.20) : $value;
break;
case 'cajlelongxtra':
$data = ($kodcaw === '1STOP') ? floatval(25.50) : 0;
break;
case 'upahsimpanxtra':
$data = ($kodcaw === '1STOP') ? floatval(4894.40) : $value;
break;
case null:
$data = 0;
break;
default:
$data = $value;
break;
}
return floatval($data);
}
private function InsertImbangDugaBackup($tarikh,$kodcaw,$sum_harta = 0.0,$sum_tanggungan = 0.0,$tagtally = 0) : String{
$insert_imbangduga_backup = Http::get(config('api.url'). '/admin/laporan/akrual/insertImbangDuga',[
'tarikh' => $tarikh,
'kodcaw' => $kodcaw,
'tunaiditangan' => ($this->tunaiditangan) ? $this->tunaiditangan : 0,
'pembiayaantawarruq' => ($this->pembiayaantawarruq) ? $this->pembiayaantawarruq : 0,
'bayaranpendahuluan' => ($this->bayaranpendahuluan) ? $this->bayaranpendahuluan : 0,
'pinjamankoop' => ($this->pinjamankoop) ? $this->pinjamankoop : 0,
'emaspalsu' => ($this->emaspalsu) ? $this->emaspalsu : 0,
'serahan' => ($this->serahan) ? $this->serahan : 0,
'bds' => ($this->bds) ? $this->bds : 0,
'perubatan' => ($this->perubatan) ? $this->perubatan : 0,
'keraian' => ($this->keraian) ? $this->keraian : 0,
'rugilelong' => ($this->rugilelong) ? $this->rugilelong : 0,
'bakilelong' => ($this->bakilelong) ? $this->bakilelong: 0,
'wtd' => ($this->wtd) ? $this->wtd : 0,
'untungrugiterkumpul' => ($this->untungrugiterkumpul) ? $this->untungrugiterkumpul : 0,
'keun_sebenar' => ($this->keun_sebenar) ? $this->keun_sebenar : 0,
'pendahuluan' => ($this->pendahuluan) ? $this->pendahuluan : 0,
'cajlelong' => ($this->cajlelong) ? $this->cajlelong : 0,
'pindahkekpkb' => ($this->pindahkekpkb) ? $this->pindahkekpkb : 0,
'penghutangkaki' => ($this->penghutangkaki) ? $this->penghutangkaki : 0,
'phapuskira' => ($this->phapuskira) ? $this->phapuskira : 0,
'belian1stop' => ($this->belian1stop) ? $this->belian1stop : 0,
'keun_penggadai' => ($this->keun_penggadai) ? $this->keun_penggadai : 0,
'pend_terakru' => ($this->pend_terakru) ? $this->pend_terakru : 0,
'cajperkhidmatan' => ($this->cajperkhidmatan) ? $this->cajperkhidmatan : 0,
'cajlelongxtra' => ($this->cajlelongxtra) ? $this->cajlelongxtra : 0,
'upahsimpanxtra' => ($this->upahsimpan) ? $this->upahsimpan : 0,
'bakilelongxtra' => ($this->bakilelongxtra) ? $this->bakilelongxtra : 0,
'rugilelongxtra' => ($this->kerugianlelong) ? $this->kerugianlelong : 0,
'utgterkumpulxtra' => ($this->utgterkumpulxtra) ? $this->utgterkumpulxtra : 0,
'jualan1stop' => ($this->jualan1stop) ? $this->jualan1stop : 0,
'hapuskira' => ($this->hapuskira) ? $this->hapuskira : 0,
'totalharta' => $sum_harta,
'totaltanggungan' => $sum_tanggungan,
'tagtally' => $tagtally,
])->json();
if($insert_imbangduga_backup == 'success')
return 'successful';
else
return 'error';
}
public function OperationImbangDuga($kodcaw){
$current = Carbon::now();
$current = new Carbon();
$tarikh = $current->toDateString();
$imbangdugadata = ImbangDuga::orderBy('glcode')->get();
$array_harta = [];
$array_tanggungan = [];
$summation_harta = 0;
$summation_tanggungan = 0;
$penyelarasan = CawanganAR::select('penyelarasan')->where('kodcaw',$kodcaw)->get()->toArray();
$penyelarasan = $penyelarasan[0];
foreach($imbangdugadata as $index => $imbangdugaiteration){
if($imbangdugaiteration->api_redirect != null){
if($imbangdugaiteration['variable'] == 'keun_sebenar' || $imbangdugaiteration['variable'] == 'pend_terakru'){
${$imbangdugaiteration['variable']} = Http::get(config('api.url'). $imbangdugaiteration['api_redirect'],['tarikh' => $tarikh,'kodcaw' => $kodcaw])->json();
}else{
${$imbangdugaiteration['variable']} = Http::get(config('api.url'). $imbangdugaiteration['api_redirect'] . $kodcaw,['tarikh' => $tarikh])->json();
}
if(is_object($imbangdugaiteration)) $data = ($imbangdugaiteration->is_array == 1) ? ${$imbangdugaiteration['variable']}[$imbangdugaiteration['single_var']] : ${$imbangdugaiteration['variable']};
$data = ($imbangdugaiteration->neg_values == 1) ? $data = -1 * abs($data) : $data;
$data = ($imbangdugaiteration['variable'] == 'untungrugiterkumpul') ? $data + $penyelarasan['penyelarasan'] : $data;
}else $data = 0;
$data = $this->SwitchFuncImbangDuga($data,$imbangdugaiteration['variable'],$tarikh,$kodcaw);
/* declare for protected above */
if($imbangdugaiteration->is_array == 1){
$nama = $imbangdugaiteration['single_var'];
if($imbangdugaiteration['variable'] == 'bakilelongxtra'){
$nama = $imbangdugaiteration['variable'];
}else if($imbangdugaiteration['variable'] == 'utgterkumpulxtra'){
$nama = $imbangdugaiteration['variable'];
}
$this->$nama = $data;
}else $this->{$imbangdugaiteration['variable']} = $data;
if($imbangdugaiteration->jenis == 'harta'){
$summation_harta += $data;
array_push($array_harta,['variable' => ($imbangdugaiteration->is_array == 1) ? $imbangdugaiteration->single_var : $imbangdugaiteration->variable,'glcode' => $imbangdugaiteration->glcode, 'descpt' => $imbangdugaiteration->descpt,'amaun' => ($data) ? $data : 0]);
}else{
$summation_tanggungan += $data;
array_push($array_tanggungan,['variable' => ($imbangdugaiteration->is_array == 1) ? $imbangdugaiteration->single_var : $imbangdugaiteration->variable,'glcode' => $imbangdugaiteration->glcode, 'descpt' => $imbangdugaiteration->descpt,'amaun' => ($data) ? $data : 0]);
}
}
$tagtally = (number_format($summation_harta,2) == number_format($summation_tanggungan,2)) ? 1 : 0;
$response = $this->InsertImbangDugaBackup($tarikh,$kodcaw,$summation_harta,$summation_tanggungan,$tagtally);
if($response == 'successful'){
return response('succesful');
}else{
return response('error');
}
}
public function ViewImbangDugaAROS($kodcaw,$tarikh){
$current = Carbon::now();
$current = new Carbon();
$tarikh = $current->toDateString();
$imbangdugadata = ImbangDuga::orderBy('glcode')->get();
$array_harta = [];
$array_tanggungan = [];
$summation_harta = 0;
$summation_tanggungan = 0;
$penyelarasan = CawanganAR::select('penyelarasan')->where('kodcaw',$kodcaw)->get()->toArray();
$penyelarasan = $penyelarasan[0];
foreach($imbangdugadata as $index => $imbangdugaiteration){
if($imbangdugaiteration->api_redirect != null){
if($imbangdugaiteration['variable'] == 'keun_sebenar' || $imbangdugaiteration['variable'] == 'pend_terakru'){
${$imbangdugaiteration['variable']} = Http::get(config('api.url'). $imbangdugaiteration['api_redirect'],['tarikh' => $tarikh,'kodcaw' => $kodcaw])->json();
}else{
${$imbangdugaiteration['variable']} = Http::get(config('api.url'). $imbangdugaiteration['api_redirect'] . $kodcaw,['tarikh' => $tarikh])->json();
}
if(is_object($imbangdugaiteration)) $data = ($imbangdugaiteration->is_array == 1) ? ${$imbangdugaiteration['variable']}[$imbangdugaiteration['single_var']] : ${$imbangdugaiteration['variable']};
$data = ($imbangdugaiteration->neg_values == 1) ? $data = -1 * abs($data) : $data;
$data = ($imbangdugaiteration['variable'] == 'untungrugiterkumpul') ? $data + $penyelarasan['penyelarasan'] : $data;
}else $data = 0;
$data = $this->SwitchFuncImbangDuga($data,$imbangdugaiteration['variable'],$tarikh,$kodcaw);
/* declare for protected above */
if($imbangdugaiteration->is_array == 1){
$nama = $imbangdugaiteration['single_var'];
if($imbangdugaiteration['variable'] == 'bakilelongxtra'){
$nama = $imbangdugaiteration['variable'];
}else if($imbangdugaiteration['variable'] == 'utgterkumpulxtra'){
$nama = $imbangdugaiteration['variable'];
}
$this->$nama = $data;
}else $this->{$imbangdugaiteration['variable']} = $data;
if($imbangdugaiteration->jenis == 'harta'){
$summation_harta += $data;
array_push($array_harta,['variable' => ($imbangdugaiteration->is_array == 1) ? $imbangdugaiteration->single_var : $imbangdugaiteration->variable,'glcode' => $imbangdugaiteration->glcode, 'descpt' => $imbangdugaiteration->descpt,'amaun' => ($data) ? $data : 0]);
}else{
$summation_tanggungan += $data;
array_push($array_tanggungan,['variable' => ($imbangdugaiteration->is_array == 1) ? $imbangdugaiteration->single_var : $imbangdugaiteration->variable,'glcode' => $imbangdugaiteration->glcode, 'descpt' => $imbangdugaiteration->descpt,'amaun' => ($data) ? $data : 0]);
}
}
$array_ig = ['array_harta' => $array_harta,'array_tanggungan' => $array_tanggungan,'sum_harta' => $summation_harta,'sum_tanggungan' => $summation_tanggungan];
return response($array_ig);
}
public function GetImbangDugaBackup($kodcaw,$tarikh){
$date = date_create_from_format('j-m-Y', $tarikh);
$new_date = date_format($date, 'Y-m-d');
$response = Http::get(config('api.url'). '/api/Backup/ImbangDuga/' . $kodcaw,['tarikh' => $new_date])->json();
if($response == 'notfound' || $response == null)
{
return response('notfound');
}else{
$array_harta = [];
$array_tanggungan = [];
foreach($response as $variable=>$res)
{
if($variable !== 'recno' && $variable !== 'kodcaw' && $variable !== 'tarikh' && $variable !== 'totalharta' && $variable !== 'totaltanggungan' && $variable !== 'tagtally' && $variable !== 'created_at' && $variable !== 'updated_at'){
$imbangdugadata = ImbangDuga::orderBy('glcode')->where('variable',$variable)->orWhere('single_var',$variable)->first()->toArray();
if($imbangdugadata['jenis'] == 'harta'){
array_push($array_harta,['glcode' => $imbangdugadata['glcode'],'descpt' => $imbangdugadata['descpt'],'amaun' => $res]);
}else{
array_push($array_tanggungan,['glcode' => $imbangdugadata['glcode'],'descpt' => $imbangdugadata['descpt'],'amaun' => $res]);
}
}
}
uasort($array_harta, array($this,'glcode_compare'));
uasort($array_tanggungan, array($this,'glcode_compare'));
$array_all = ['array_harta' => $array_harta,'array_tanggungan' => $array_tanggungan,'sum_harta' => $response['totalharta'],'sum_tanggungan' => $response['totaltanggungan']];
return response($array_all);
}
}
private static function glcode_compare($a, $b) {
return strcmp($a['glcode'], $b['glcode']);
}
}
@@ -11,7 +11,7 @@
<a class="btn btn-info btn-lg" href="#" onclick="pelangganclick()">PELANGGAN</a>
<a class="btn btn-info btn-lg" href="{{ url('/harga_emas') }}">HARGA EMAS</a>
<a class="btn btn-info btn-lg" href="{{ url('/aliran_tunai') }}">ALIRAN TUNAI</a>
<a class="btn btn-info btn-lg" href="#">TETAPAN</a>
{{-- <a class="btn btn-info btn-lg" href="#">TETAPAN</a> --}}
</div>
</div>
</div>
+11 -2
View File
@@ -155,6 +155,7 @@
<th>Margin</th>
<th>Tempoh</th>
<th>Keuntungan</th>
<th>Lelong</th>
</tr>
</thead>
</table>
@@ -170,6 +171,7 @@
<th>Pembiayaan</th>
<th>Margin</th>
<th>Tempoh</th>
<th>Lelong</th>
</tr>
</thead>
</table>
@@ -507,6 +509,11 @@
if(jenistebus == "belum_tebus"){
var urlroute = '{{ route("penebusan.khazanah", ":id") }}';
urlroute = urlroute.replace(':id', gadai_detail["norujukan"]);
if(gadai_detail['taglel'] == 1){
var taglel = 'Akan Dilelong';
}else{
var taglel = '';
}
if(gadai_detail["bakihargajualan"] == null){
xtawarruq.row.add([
'<input type="radio" value='+ gadai_detail["norujukan"] +' name="belum"/>',
@@ -515,7 +522,8 @@
gadai_detail['t_matang'],
'RM '+formatter.format(gadai_detail['pinjaman']),
(((Number(gadai_detail['pinjaman'])/Number(gadai_detail['nilaimarhun']))*100).toFixed(2)).toLocaleString("en-GB") + '%',
gadai_detail['tempoh']
gadai_detail['tempoh'],
taglel
]).draw();
}else{
if(gadai_detail['lelong_tawarruq'] == 0){
@@ -532,7 +540,8 @@
'RM '+formatter.format(gadai_detail['bakipjm']),
(((Number(gadai_detail['pinjaman'])/Number(gadai_detail['nilaimarhun']))*100).toFixed(2)).toLocaleString("en-GB") + '%',
gadai_detail['tempoh'],
'RM '+ upahsemasa
'RM '+ upahsemasa,
taglel
]).draw();
}
}else if(jenistebus == "sudah_tebus"){
@@ -0,0 +1,81 @@
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="card">
<nav aria-label="breadcrumb">
<ol class="breadcrumb pb-3">
<li class="breadcrumb-item"><a href="{{ route('home') }}">Home</a></li>
<li class="breadcrumb-item"><a href="{{ route('laporan') }}">Laporan</a></li>
<li class="breadcrumb-item active" aria-current="page">Imbang Duga Akru</li>
</ol>
</nav>
<div class="card-body text-center">
@if(session()->has('error'))
<div class="alert alert-danger">
{{ session()->get('error') }}
</div>
@endif
<div class="row form-group">
<div class="col-md-2"></div>
<div class="col-md-15"></div>
</div>
<div class="container">
<form method="post" onsubmit="loadingmodal()">
@csrf
<div class="row">
<div class="col-sm-2">Tarikh</div>
<div class="col-sm-4"><input type="text" class="form-control" placeholder="Pilih Tarikh" aria-label="Tarikh" id="datetimepicker2" name="datetimepicker2" autocomplete="off" aria-describedby="basic-addon1"></div>
</div>
<br>
<div class="row">
<div class="col-sm-3"></div>
<div class="col-sm-1"> <input type="submit" class="btn btn-success ml-md-1" id="submit_button" name="submit_button" value="Cetak Laporan " formaction="{{route('imbangdugaakru.cetak')}}"></div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
var api_url = "<?php echo $api_url ?>";
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
$(document).ready( function () {
var dateToday = new Date();
$('#datetimepicker2').datepicker({
format: 'dd-mm-yyyy',
});
$('#datetimepicker2').datepicker('setStartDate', new Date(2022,11,19));
$('#datetimepicker2').datepicker('setEndDate', new Date());
});
function loadingmodal()
{
Swal.fire({
title: 'Memuatkan...',
allowEscapeKey : false,
allowOutsideClick: false,
didOpen: function () {
Swal.showLoading()
}
});
}
</script>
@endsection
@@ -111,6 +111,9 @@
{{-- <div class="row">
<a href="{{ route('laporan.auditcustomer') }}" class="btn btn-dark btn-lg btn-block mb-3">Audit Customer</a>
</div> --}}
<div class="row">
<a href="{{ route('laporan.imbangdugaakru') }}" class="btn btn-dark btn-lg btn-block mb-3">Imbang Duga Akru</a>
</div>
</div>
</div>
</div>
+1 -1
View File
@@ -550,7 +550,7 @@ function ubahwakil(e)
}
let batchno = $('#batch').val();let teller = "{{ Auth::user()->name }}";let bakipjm = $('#pembiayaan').val().replace(/[^0-9.-]+/g,"");let bakiupah = $('#keuntungan').val();
let batchno = $('#batch').val();let teller = "{{ Auth::user()->name }}";let bakipjm = $('#pembiayaan').val().replace(/[^0-9.-]+/g,"");let bakiupah = $('#keuntungan').val().replace(/[^0-9.-]+/g,"");
let cajlain = 0.00; let cajlelong = $('#cajlelong').val();
let jumlah = $('#jumlah').val().replace(/[^0-9.-]+/g,"");let hargajual = $('#hargajual').val().replace(/[^0-9.-]+/g,"");
@@ -128,7 +128,7 @@
@else
@php
$cawangan_staff = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $staff->cawangan)->json();
echo ucwords($cawangan_staff['details_caw']);
echo ($cawangan_staff) ? ucwords($cawangan_staff['details_caw']) : 'test';
@endphp
@endif
</td>
@@ -136,16 +136,18 @@
@if($auth_user->roles == 'operasi')
<a href="{{ route('kakitangan.tukartaraf',['id'=>$staff->id]) }}" class="btn btn-warning" title="Tukar Taraf"><i class="material-icons">edit</i></a>
<a href="{{ route('kakitangan.tukarcawangan',['id'=>$staff->id]) }}" class="btn btn-info" title="Tukar Cawangan"><i class="material-icons">work</i></a>
<a href="{{ route('operasi.kakitangan.edit',['id'=>$staff->id]) }}" class="btn btn-success" title="Edit Maklumat"><i class="material-icons">settings</i></a>
<button type="button" class="btn btn-danger btn-delete" data-roles="{{ $auth_user->roles }}" data-staff-id="{{ $staff->id }}" data-token="{{ csrf_token() }}" title="Delete Kakitangan"><i class="material-icons">delete</i></button>
@elseif($auth_user->roles == 'admin')
<form method="post" action="{{ route('admin.kakitangan.delete') }}">
{{ @csrf_field() }}
{{-- <form method="post" action="{{ route('admin.kakitangan.delete') }}">
{{ @csrf_field() }} --}}
<input type="hidden" name="staff_id" value="{{ $staff->id }}"/>
<a href="{{ route('admin.kakitangan.tukartaraf',['id'=>$staff->id]) }}" class="btn btn-warning" title="Tukar Taraf"><i class="material-icons">edit</i></a>
<a href="{{ route('admin.kakitangan.tukarcawangan',['id'=>$staff->id]) }}" class="btn btn-info" title="Tukar Cawangan"><i class="material-icons">work</i></a>
<a href="{{ route('admin.kakitangan.edit',['id'=>$staff->id]) }}" class="btn btn-success" title="Edit Maklumat"><i class="material-icons">settings</i></a>
<a href="{{ route('admin.kakitangan.resetcredentials',['id'=>$staff->id]) }}" class="btn btn-primary" title="Reset Password"><i class="material-icons">restore</i></a>
<button type="button" class="btn btn-danger btn-delete" data-staff-id="{{ $staff->id }}" data-token="{{ csrf_token() }}" title="Delete Kakitangan"><i class="material-icons">delete</i></button>
</form>
{{-- </form> --}}
@endif
</td>
</tr>
@@ -165,20 +167,57 @@
var tablerekod = $('#rekod_kakitangan').DataTable();
$('.btn-delete').on('click', function(){
var form = $(this).closest('form');
Swal.fire(
{
title: 'Are you sure?',
text: "You won't be able to revert this!",
// var form = $(this).closest('form');
var roles = $(this).data('roles');
var staff_id = $(this).data('staff-id');
var url_redirected = (roles == 'operasi') ? "{{ route('operasi.kakitangan.delete') }}" : "{{ route('admin.kakitangan.delete') }}";
Swal.fire({
title: 'Padam Kakitangan Ini?',
text: "Anda tidak boleh mengembalikan data ini balik selepas dipadamkan!",
type: 'warning',
showCancelButton: true,
confirmButtonClass: 'btn btn-danger',
cancelButtonClass: 'btn btn-warning',
confirmButtonText: 'Yes, delete it!',
confirmButtonText: 'Padam!',
cancelButtonText: 'Batal!',
buttonsStyling: false
}
).then(function() {
form.submit();
}).then(function(result) {
if (result.isConfirmed) {
$.ajax({
method:'post',
url: url_redirected,
data: {
"_token": "{{ csrf_token() }}",
"staff_id" : staff_id
},
success:function(data){
if(data == 'success')
{
if(roles == 'operasi')
window.location.href = "{{ route('daftar.kakitangan') }}";
else
window.location.href = "{{ route('admin.daftar.kakitangan') }}";
Swal.fire({
title: 'Memuatkan...',
allowEscapeKey : false,
allowOutsideClick: false,
didOpen: function () {
Swal.showLoading();
}
});
}
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(xhr.responseText);
}
});
}
}).catch(swal.noop)
});
@@ -9,13 +9,13 @@
<nav aria-label="breadcrumb">
<ol class="breadcrumb pb-3">
<li class="breadcrumb-item"><a href="{{ url('/') }}">Home</a></li>
<li class="breadcrumb-item" aria-current="page"><a href="{{ route('admin.daftar.kakitangan') }}">Kakitangan</a></li>
<li class="breadcrumb-item" aria-current="page"><a href="{{ (Auth::user()->roles == 'admin') ? route('admin.daftar.kakitangan') : route('daftar.kakitangan') }}">Kakitangan</a></li>
<li class="breadcrumb-item active" aria-current="page">Edit Maklumat Kakitangan</li>
</ol>
</nav>
<div class="card-body text-center">
<form action="{{ route('admin.kakitangan.edit.store') }}" method="post">
<form action="{{ (Auth::user()->roles == 'admin') ? route('admin.kakitangan.edit.store') : route('operasi.kakitangan.edit.store') }}" method="post">
@csrf
<input type="hidden" name='user_id' id='user_id' readonly value="{{ $user->id }}" class='form-control'>
<div class='row form-group'>
@@ -0,0 +1,486 @@
<html>
<head>
<script src="{{ asset('js/jquery.min.js') }}"></script>
<style>
#header {
font-family: Arial, Helvetica, sans-serif;
border-collapse: collapse;
width: 100%;
}
#header td, #customers th {
padding:4px;
font-size:12px;
}
#header tr:nth-child(even){background-color: #ffffff;}
#header tr:hover {background-color: #ddd;}
#header th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
padding:4px;
color:black;
}
#loading {
position: fixed;
display: block;
width: 100%;
height: 100%;
top: 0;
left: 0;
text-align: center;
opacity: 0.7;
background-color: #fff;
z-index: 99;
}
#loading-image {
position: absolute;
top: 100px;
left: 240px;
z-index: 100;
}
#scan {
font-family: Arial, Helvetica, sans-serif;
width: 100%;
border: 1px solid #ddd;
}
#scan td, #scan th {
padding: 8px;
font-size:20px;
}
#scan tr:nth-child(even){background-color: #ffffff;}
#scan tr:hover {background-color: #ddd;}
#scan th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
padding:4px;
color:black;
}
#scan {
font-family: Arial, Helvetica, sans-serif;
width: 100%;
}
#scan td, #scan th {
padding: 8px;
font-size:12px;
}
#scan tr:nth-child(even){background-color: #ffffff;}
#scan tr:hover {background-color: #ddd;}
#scan th {
border-collapse: collapse;
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
padding:4px;
color:black;
}
#details {
font-family: Arial, Helvetica, sans-serif;
border-collapse: collapse;
width: 50%;
}
#details td, #details th {
padding: 8px;
font-size:16px;
}
#details tr:nth-child(even){background-color: #ffffff;}
#details tr:hover {background-color: #ffffff;}
#details th {
padding-top: 12px;
font-style:bold;
padding-bottom: 12px;
text-align: left;
padding:4px;
color:black;
}
#sign {
font-family: Arial, Helvetica, sans-serif;
border-collapse: collapse;
width: 100%;
}
#sign td, #sign th {
padding: 8px;
font-size:11px;
text-align: center;
}
#sign tr:nth-child(even){background-color: #ffffff;}
#sign tr:hover {background-color: #ddd;}
#sign th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
padding:4px;
color:black;
}
#title {
font-family: Arial, Helvetica, sans-serif;
border-collapse: collapse;
width: 50%;
}
#title td, #title th {
padding:4px;
font-size:12px;
border: 0px solid #fff;
}
#title tr:nth-child(even){background-color: #ffffff;}
#title tr:hover {background-color: #ddd;}
#title th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
padding:4px;
color:black;
}
#details {
font-family: Arial, Helvetica, sans-serif;
border-collapse: collapse;
width:80%;
}
#details td, #details th {
padding:4px;
font-size:16px;
border: 1px solid #ddd;
}
#details tr:nth-child(even){background-color: #ffffff;}
#details tr:hover {background-color: #ddd;}
#details th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
padding:4px;
color:black;
}
#tarikh_cetak {
font-family: Arial, Helvetica, sans-serif;
border-collapse: collapse;
width: 50%;
}
#tarikh_cetak td, #tarikh_cetak th {
padding:4px;
font-size:10px;
}
#tarikh_cetak tr:nth-child(even){background-color: #ffffff;}
#tarikh_cetak tr:hover {background-color: #ddd;}
#tarikh_cetak th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
padding:4px;
color:black;
}
#data {
font-family: Arial, Helvetica, sans-serif;
border-collapse: collapse;
width: 80%;
}
#data td, #data th {
padding:4px;
font-size:16px;
}
#data tr:nth-child(even){background-color: #ffffff;}
#data tr:hover {background-color: #ddd;}
#data th {
padding-top: 11px;
padding-bottom: 11px;
text-align: left;
padding:4px;
color:black;
font-size:14px;
}
#tarikh_ib {
font-family: Arial, Helvetica, sans-serif;
border-collapse: collapse;
width:45%;
}
#tarikh_ib td, #tarikh_ib th {
padding:4px;
font-size:12px;
}
#tarikh_ib tr:nth-child(even){background-color: #ffffff;}
#tarikh_ib tr:hover {background-color: #ddd;}
#tarikh_ib th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
padding:4px;
color:black;
}
#GL {
font-family: Arial, Helvetica, sans-serif;
border-collapse: collapse;
width:100%;
}
#GL td, #GL th {
padding:4px;
font-size:12px;
border: 1px solid #ddd;
}
#GL tr:nth-child(even){background-color: #ffffff;}
#GL tr:hover {background-color: #ddd;}
#GL th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
padding:4px;
color:black;
}
#GL_dtl {
font-family: Arial, Helvetica, sans-serif;
border-collapse: collapse;
width:100%;
}
#GL_dtl td, #GL_dtl th {
padding:4px;
font-size:12px;
border: 1px solid #ddd;
}
#GL_dtl tr:nth-child(even){background-color: #ffffff;}
#GL_dtl tr:hover {background-color: #ddd;}
#GL_dtl th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
padding:4px;
color:black;
}
#dtl_ib {
font-family: Arial, Helvetica, sans-serif;
border-collapse: collapse;
width:100%;
}
#dtl_ib td, #dtl_ib th {
padding:4px;
font-size:12px;
border: 1px solid #ddd;
}
#dtl_ib tr:nth-child(even){background-color: #ffffff;}
#dtl_ib tr:hover {background-color: #ddd;}
#dtl_ib th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
padding:4px;
color:black;
}
#total_harta {
font-family: Arial, Helvetica, sans-serif;
border-collapse: collapse;
width:100%;
}
#total_harta td, #total_harta th {
padding:4px;
font-size:12px;
border: 1px solid #ddd;
}
#total_harta tr:nth-child(even){background-color: #ffffff;}
#total_harta tr:hover {background-color: #ddd;}
#total_harta th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
padding:4px;
color:black;
}
</style>
</head>
<body>
<table id="header">
<tr>
<th rowspan="4" style="width:50px"><br><img src="{{ asset('img/ARRAHN1.png') }}" style="width:70px"></img></th>
<th colspan="1">KOPERASI PERMODALAN KELANTAN BERHAD</th>
</tr>
<tr>
<td>{{ $cawangan_detail['namacaw'] }}</td>
<td></td>
</tr>
<tr>
<td>{{ $cawangan_detail['alamat1'] }}</td>
<td></td>
</tr>
<tr>
<td>{{ $cawangan_detail['alamat2'].' No Tel : '. $cawangan_detail['notel'].' No Faks : '. $cawangan_detail['nofaks'] }}</td>
<td></td>
</tr>
</table>
<br>
<table id="tarikh_ib">
<tr>
<td cospan="2" > <B><U>LAPORAN IMBANGAN DUGA CAWANGAN</U></B></td>
</tr>
</table>
<table id="tarikh_ib">
<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>
</table>
<br>
<table id="GL_dtl">
<tr>
<th width="20%"> Kod GL </th>
<th colspan="1" width="60%">Keterangan </th>
<th width="20%">Amaun</th>
</tr>
<tr>
<th colspan="3"><b> HARTA SEMASA</b> </th>
</tr>
@foreach($hartasemasa as $index => $assets)
@if($assets->amaun != 0)
<tr>
<td>{{ $assets->glcode }}</td>
<td>{{ $assets->descpt }}</td>
<td>{{ number_format($assets->amaun,2) }}</td>
</tr>
@endif
@endforeach
<tr>
<td><b>JUMLAH </b></td>
<td colspan="1"></td>
<td><b>{{ number_format($totalhartasemasa,2) }}</b></td>
</tr>
</table>
<br>
<table id="GL_dtl">
<tr>
<th colspan="3"><b> TANGGUNGAN SEMASA</b> </th>
</tr>
@foreach($tanggungansemasa as $index => $liabilities)
@if($liabilities->amaun != 0)
<tr>
<td width="20%">{{ $liabilities->glcode }}</td>
<td colspan="1" width="60%">{{ $liabilities->descpt }}</td>
<td width="20%">{{ number_format($liabilities->amaun,2) }}</td>
</tr>
@endif
@endforeach
<tr>
<td ><b>JUMLAH </b></td>
<td colspan="1"></td>
<td><b>{{ number_format($totaltanggungansemasa,2) }}</b></td>
</tr>
</table>
<br>
<br>
<br>
</body>
</html>
+12 -3
View File
@@ -1,7 +1,7 @@
<?php
use Illuminate\Support\Facades\Route;
use App\Services\ImbangdugaServices;
/*
|--------------------------------------------------------------------------
| Web Routes
@@ -15,9 +15,11 @@ use Illuminate\Support\Facades\Route;
Route::get('/',['as'=>'login','uses'=>'HomeController@index']);
Route::get('/testtry',function(){
Route::get('/testtry',function(ImbangdugaServices $imbangduga){
return view('testing');
// return view('testing');
$test = $imbangduga->OperationImbangDuga('KB2');
dd($test->getContent());
});
@@ -322,6 +324,10 @@ Route::post('kakitangan/tukar_taraf/update',['as'=>'kakitangan.tukartaraf.update
Route::get('kakitangan/tukar_cawangan',['as'=>'kakitangan.tukarcawangan','uses'=>'KakitanganController@tukarcawangan'])->middleware('auth','operasi');
Route::post('kakitangan/tukar_cawangan/update',['as'=>'kakitangan.tukarcawangan.update','uses'=>'KakitanganController@tukarcawanganUpdate'])->middleware('auth','operasi');
Route::post('operasi/komoditi/limit',['as'=>'komoditi.limit','uses'=>'KomuditiController@komoditiUpdate'])->middleware('auth','operasi');
Route::post('operasi/kakitangan/delete',['as'=>'operasi.kakitangan.delete','uses'=>'KakitanganController@deleteKakitangan'])->middleware('auth','operasi');
Route::get('operasi/kakitangan/edit',['as'=>'operasi.kakitangan.edit','uses'=>'KakitanganController@editKakitangan'])->middleware('auth','operasi');
Route::post('operasi/kakitangan/edit/store',['as'=>'operasi.kakitangan.edit.store','uses'=>'KakitanganController@editStoreKakitangan'])->middleware('auth','operasi');
Route::get('/operasi/margin',['as'=>'operasi.margin','uses'=>'OperasiController@margin'])->middleware('auth','operasi');
@@ -345,6 +351,9 @@ route::post('/cetaklejer_am',['as'=>'cetak.lejer_am', 'uses'=>'KhazanahControlle
Route::get('laporan/dataimbangduga',['as'=> 'laporan.imbangduga' , 'uses'=>'KhazanahController@laporanImbangduga' ])->middleware('auth','khazanah');
Route::post('/laporan/imbangduga',['as' =>'imbangduga.cetak', 'uses'=>'KhazanahController@cetakImbangDuga'])->middleware('auth', 'khazanah');
Route::get('laporan/imbangduga-akru',['as'=> 'laporan.imbangdugaakru' , 'uses'=>'KhazanahController@ImbangDugaAkru' ])->middleware('auth','khazanah');
Route::post('/laporan/cetak/imbangduga-akru',['as' =>'imbangdugaakru.cetak', 'uses'=>'KhazanahController@cetakimbangdugaAkru'])->middleware('auth', 'khazanah');
Route::get('khazanah/jana_permohonan',['as'=> 'permohonan.jana' , 'uses'=>'KhazanahController@JanaPermohonan' ])->middleware('auth','khazanah');
Route::post('khazanah/jana_permohonan/proses_permohonan',['as'=> 'permohonan.proses' , 'uses'=>'KhazanahController@ProsesPermohonan'])->middleware('auth','khazanah');