$val) { if (is_array($val)) { self::createPayload($val); continue; } $string .= $key . "=" . $val . "&"; } return $string; } static function req_post($url, $headers, $payload) { $ch = curl_init(); $options = [ CURLOPT_URL => $url, CURLOPT_HEADER => false, CURLOPT_HTTPHEADER => $headers, CURLOPT_POST => 1, CURLOPT_POSTFIELDS => $payload, CURLOPT_FOLLOWLOCATION => true, CURLOPT_RETURNTRANSFER => true, // CURLOPT_FAILONERROR => true, ]; curl_setopt_array($ch, $options); $resp = curl_exec($ch); if (curl_errno($ch)) { $result = [ "type" => "error", "message" => curl_error($ch), ]; return $result; } else { $result = ["type" => "success"]; try { $data = json_decode($resp); if (json_last_error() == JSON_ERROR_NONE) { $result["data"] = $data; } else { $result["data"] = $resp; } return $result; } catch (\Exception $e) { $result["data"] = $resp; return $result; } } } static function req_get($url, $headers) { $ch = curl_init(); $options = [ CURLOPT_URL => $url, CURLOPT_HTTPHEADER => $headers, CURLOPT_FOLLOWLOCATION => true, CURLOPT_RETURNTRANSFER => true, // CURLOPT_FAILONERROR => true, ]; curl_setopt_array($ch, $options); $resp = curl_exec($ch); if (curl_errno($ch)) { $result = [ "type" => "error", "message" => curl_error($ch), ]; return $result; } else { $result = ["type" => "success"]; try { $data = json_decode($resp); if (json_last_error() == JSON_ERROR_NONE) { $result["data"] = $data; } else { $result["data"] = $resp; } return $result; } catch (\Exception $e) { $result["data"] = $resp; return $result; } } } public static function listBloods() { return [ [ "id" => "A", "name" => "A", ], [ "id" => "A+", "name" => "A+", ], [ "id" => "B", "name" => "B", ], [ "id" => "B+", "name" => "B+", ], [ "id" => "O", "name" => "O", ], [ "id" => "O+", "name" => "O+", ], [ "id" => "AB", "name" => "AB", ], [ "id" => "AB+", "name" => "AB+", ], ]; } public static function countAge($date_ymd) { $then = date("Ymd", strtotime($date_ymd)); $diff = date("Ymd") - $then; return (int) substr($diff, 0, -4); } public static function terbilang($nilai) { function penyebut($nilai) { $nilai = abs($nilai); $huruf = [ "", "satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan", "sepuluh", "sebelas", ]; $temp = ""; if ($nilai < 12) { $temp = " " . $huruf[$nilai]; } elseif ($nilai < 20) { $temp = penyebut($nilai - 10) . " belas"; } elseif ($nilai < 100) { $temp = penyebut($nilai / 10) . " puluh" . penyebut($nilai % 10); } elseif ($nilai < 200) { $temp = " seratus" . penyebut($nilai - 100); } elseif ($nilai < 1000) { $temp = penyebut($nilai / 100) . " ratus" . penyebut($nilai % 100); } elseif ($nilai < 2000) { $temp = " seribu" . penyebut($nilai - 1000); } elseif ($nilai < 1000000) { $temp = penyebut($nilai / 1000) . " ribu" . penyebut($nilai % 1000); } elseif ($nilai < 1000000000) { $temp = penyebut($nilai / 1000000) . " juta" . penyebut($nilai % 1000000); } elseif ($nilai < 1000000000000) { $temp = penyebut($nilai / 1000000000) . " milyar" . penyebut(fmod($nilai, 1000000000)); } elseif ($nilai < 1000000000000000) { $temp = penyebut($nilai / 1000000000000) . " trilyun" . penyebut(fmod($nilai, 1000000000000)); } return $temp; } if ($nilai < 0) { $hasil = "minus " . trim(penyebut($nilai)); } else { $hasil = trim(penyebut($nilai)); } return $hasil; } public static function lastDigitYear() { // 2023 => 3 return substr(date("Y"), -1); } public static function weekNumOfYear() { // 27 jul 2022 => 30 return date("W"); } public static function dayOfWeek() { // monday => 01, sunday => 07 return date("N"); } public static function gnrtOrdCode($type) { $ord_code = ""; $ord_code .= $type; $ord_code .= Helper::lastDigitYear() . Helper::weekNumOfYear() . Helper::dayOfWeek(); // above before running number $likeCode = \App\Models\Orders::getOrderLikeCode($ord_code); // below after running number if (count($likeCode) < 1 || $likeCode === false) { $ord_code .= "001"; } else { if ($likeCode[0]->total < 1) { $ord_code .= "001"; } else { $ord_code .= str_pad($likeCode[0]->total + 1, 3, "0", STR_PAD_LEFT); } } return $ord_code; } public static function gnrtInvcCode($ord_code) { $invc_code = ""; $type = substr($ord_code, 0, 1); $invc_code .= Helper::lastDigitYear() . Helper::weekNumOfYear() . $type; $first_invc_code = $invc_code; // above before running number $likeCode = \App\Models\OrdersInvoices::getLikeCode($invc_code); // below after running number if (count($likeCode) < 1 || $likeCode === false) { $invc_code .= "001"; } else { if ($likeCode[0]->total < 1) { $invc_code .= "001"; } else { $invc_code .= str_pad($likeCode[0]->total + 1, 3, "0", STR_PAD_LEFT); $checkCode = OrdersInvoices::getByCode($invc_code); if (count($checkCode) > 0) { $invc_code = $first_invc_code; $lastRN = OrdersInvoices::getLikeCodeLastRunningNumber($invc_code); $newRN = (int) substr($lastRN[0]->code, -3); $invc_code .= str_pad($newRN + 1, 3, "0", STR_PAD_LEFT); } } } return $invc_code; } public static function viewBillFncIsEnableBtn($prev_termin, $curr_termin) { if ($curr_termin->termin_ddln_type === \App\Models\OrdersTermins::DDLN_TERMIN_TYPE_ORD_FINISH) { if ($curr_termin->drop_chk_at === 0) { // Menunggu Pengantaran Selesai // return 0; if ($prev_termin->termin_is_paid === \App\Models\OrdersTermins::IS_PAID_YES) { // Termin sebelumnya selesai dan show btn invoice return 1; } else { // Menunggu Pengantaran Selesai return 0; } } else { if ($curr_termin->termin_is_paid === \App\Models\OrdersTermins::IS_PAID_YES) { // invoice close return 4; } else { if ( $prev_termin !== 0 && $prev_termin->termin_is_paid === \App\Models\OrdersTermins::IS_PAID_NO ) { // Termin sebelumnya belum terkonfirmasi selesai return 3; } // Pengantaran Selesai pada and show btn invoice return 2; } } } else { if ($curr_termin->termin_is_paid === \App\Models\OrdersTermins::IS_PAID_YES) { // invoice close return 4; } else { if ( $prev_termin !== 0 && $prev_termin->termin_is_paid === \App\Models\OrdersTermins::IS_PAID_NO ) { // Termin sebelumnya belum terkonfirmasi selesai return 3; } // show btn invoice return 1; } } } public static function changeIpToDomain($fullurl) { $replace = $fullurl; if (!strpos($fullurl, env("ORI_IP")) === false) { $replace = str_replace(env("ORI_IP"), env("ORI_DOMAIN"), $replace); } return $replace; } }