Co-authored-by: ISMAIL MASSERAN <topaz@Mac.dlinkrouter.local> Co-authored-by: ISMAIL MASSERAN <topaz@ISMAILs-Macbook.local> Co-authored-by: nurafrinaalimi16 <nurafrinaalimi16@gmail.com> Reviewed-on: #15
This commit was merged in pull request #15.
This commit is contained in:
@@ -358,7 +358,7 @@ class CustomersController extends Controller
|
||||
])->json();
|
||||
}
|
||||
|
||||
$customer_info = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/customers/create/' . $auth_user['cawangan'], [
|
||||
$customer_payload = [
|
||||
'kodcaw' => $auth_user['cawangan'],
|
||||
'nopelanggan' => $no_pelanggan,
|
||||
'nokpbaru' => $nokpbaru,
|
||||
@@ -385,7 +385,14 @@ class CustomersController extends Controller
|
||||
'nota_pekerjaan' => $request->nota_pekerjaan,
|
||||
'notaarcc' => $request->notaarcc,
|
||||
'tujuangadai' => $request->tujuan_gadai,
|
||||
]);
|
||||
];
|
||||
|
||||
if ($request->filled('photo_base64')) {
|
||||
$customer_payload['photo_base64'] = $request->input('photo_base64');
|
||||
$customer_payload['photo_mime'] = $request->input('photo_mime') ?: 'image/jpeg';
|
||||
}
|
||||
|
||||
$customer_info = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/customers/create/' . $auth_user['cawangan'], $customer_payload);
|
||||
|
||||
Session::put('customer_info', $customer_info);
|
||||
Session::put('noic', $request->noic);
|
||||
@@ -574,4 +581,113 @@ class CustomersController extends Controller
|
||||
return redirect()->back()->with('error', 'Gagal mengemaskini status anggota. Sila cuba semula.');
|
||||
}
|
||||
}
|
||||
|
||||
public function printMaklumat(Request $request)
|
||||
{
|
||||
$noic = $request->query('noic') ?: Session::get('noic');
|
||||
if (empty($noic)) {
|
||||
return redirect('/pelanggan');
|
||||
}
|
||||
|
||||
$auth_user = Auth::user();
|
||||
$api_url = config('api.url');
|
||||
$verify = ['verify' => config('app.api_verify')];
|
||||
$kodcaw = $auth_user['cawangan'];
|
||||
|
||||
$customer = Http::withOptions($verify)->get($api_url . '/api/customers/' . $noic)->json();
|
||||
if (!is_array($customer) || (empty($customer['nama']) && empty($customer['nopelanggan']) && empty($customer['kpbaru']) && empty($customer['kplama']))) {
|
||||
abort(404, 'Pelanggan tidak dijumpai.');
|
||||
}
|
||||
|
||||
$cawanganResp = Http::withOptions($verify)->get($api_url . '/api/cawangan/detail/' . $kodcaw)->json();
|
||||
$cawangan_detail = (is_array($cawanganResp) && isset($cawanganResp[0]))
|
||||
? $cawanganResp[0]
|
||||
: (is_array($cawanganResp) ? $cawanganResp : []);
|
||||
|
||||
$banks = Http::withOptions($verify)->get($api_url . '/api/bank')->json();
|
||||
$pekerjaanList = Http::withOptions($verify)->get($api_url . '/api/pekerjaan')->json();
|
||||
|
||||
$poskodKod = $customer['poskod'] ?? '';
|
||||
$poskod = [];
|
||||
if ($poskodKod !== '' && $poskodKod !== null) {
|
||||
$poskodResp = Http::withOptions($verify)->get($api_url . '/api/poskod/' . $poskodKod)->json();
|
||||
if (is_array($poskodResp)) {
|
||||
$poskod = $poskodResp;
|
||||
}
|
||||
}
|
||||
|
||||
$daerahNama = 'NIL';
|
||||
$negeriNama = 'NIL';
|
||||
if (!empty($poskod['koddaerah'])) {
|
||||
$daerahResp = Http::withOptions($verify)->get($api_url . '/api/daerah/' . $poskod['koddaerah'])->json();
|
||||
$daerahNama = is_array($daerahResp) ? ($daerahResp['namadaerah'] ?? 'NIL') : 'NIL';
|
||||
}
|
||||
if (!empty($poskod['kodnegeri'])) {
|
||||
$negeriResp = Http::withOptions($verify)->get($api_url . '/api/negeri/' . $poskod['kodnegeri'])->json();
|
||||
$negeriNama = is_array($negeriResp) ? ($negeriResp['negeri'] ?? 'NIL') : 'NIL';
|
||||
}
|
||||
|
||||
$bankNama = $this->lookupListValue($banks, 'abbreviation', $customer['kodbank'] ?? null, 'name');
|
||||
$pekerjaanNama = $this->lookupListValue($pekerjaanList, 'kodkerja', $customer['kodkerja'] ?? null, 'keterangan');
|
||||
if (($customer['kodkerja'] ?? '') == '6' && !empty($customer['nota_pekerjaan'])) {
|
||||
$pekerjaanNama = $customer['nota_pekerjaan'];
|
||||
}
|
||||
|
||||
$photo_svg = '<svg xmlns="http://www.w3.org/2000/svg" width="240" height="320" viewBox="0 0 240 320">'
|
||||
. '<rect fill="#d9dee5" width="240" height="320"/>'
|
||||
. '<circle cx="120" cy="118" r="52" fill="#8b949e"/>'
|
||||
. '<ellipse cx="120" cy="286" rx="90" ry="92" fill="#8b949e"/>'
|
||||
. '</svg>';
|
||||
$photo_src = 'data:image/svg+xml;base64,' . base64_encode($photo_svg);
|
||||
if (!empty($customer['photo_base64'])) {
|
||||
$mime = $customer['photo_mime'] ?? 'image/jpeg';
|
||||
$photo_src = 'data:' . $mime . ';base64,' . $customer['photo_base64'];
|
||||
}
|
||||
|
||||
return view('print.maklumat_pelanggan', [
|
||||
'cawangan' => $cawangan_detail['namacaw'] ?? ($cawangan_detail['details_caw'] ?? $kodcaw),
|
||||
'kodcaw' => $kodcaw,
|
||||
'alamat1' => $cawangan_detail['alamat1'] ?? '',
|
||||
'alamat2' => $cawangan_detail['alamat2'] ?? '',
|
||||
'notel' => $cawangan_detail['notel'] ?? '',
|
||||
'tarikh' => Carbon::now()->format('d/m/Y'),
|
||||
'nama' => $this->printBlank($customer['nama'] ?? null),
|
||||
'nokp' => $this->printBlank(!empty($customer['kpbaru']) ? $customer['kpbaru'] : ($customer['kplama'] ?? $noic)),
|
||||
'nopelanggan' => $this->printBlank($customer['nopelanggan'] ?? null),
|
||||
'status' => (!empty($customer['tag_anggota']) && $customer['tag_anggota'] == 1) ? 'Anggota Koperasi' : 'Pelanggan',
|
||||
'telefon' => $this->printBlank($customer['telefon'] ?? null),
|
||||
'telefon2' => $this->printBlank($customer['telefon2'] ?? null),
|
||||
'alamat' => $this->printBlank($customer['alamat1'] ?? null),
|
||||
'poskod' => $this->printBlank($customer['poskod'] ?? null),
|
||||
'daerah' => $daerahNama,
|
||||
'negeri' => $negeriNama,
|
||||
'bank' => $this->printBlank($bankNama),
|
||||
'noakaun' => $this->printBlank($customer['noakaun'] ?? null),
|
||||
'pekerjaan' => $this->printBlank($pekerjaanNama),
|
||||
'nota' => $this->printBlank($customer['nota'] ?? null),
|
||||
'photo_src' => $photo_src,
|
||||
]);
|
||||
}
|
||||
|
||||
private function printBlank($value)
|
||||
{
|
||||
if ($value === null) {
|
||||
return 'NIL';
|
||||
}
|
||||
$value = is_string($value) ? trim($value) : $value;
|
||||
return $value === '' ? 'NIL' : $value;
|
||||
}
|
||||
|
||||
private function lookupListValue($list, $key, $match, $nameKey)
|
||||
{
|
||||
if (!is_array($list) || $match === null || $match === '' || $match === '-') {
|
||||
return '';
|
||||
}
|
||||
foreach ($list as $item) {
|
||||
if (is_array($item) && ($item[$key] ?? null) == $match) {
|
||||
return $item[$nameKey] ?? '';
|
||||
}
|
||||
}
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user