|
Server IP : 127.0.0.1 / Your IP : 127.0.0.1 Web Server : Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.6.3 System : Windows NT WIN-R7LTCC7BPLI 6.3 build 9200 (Windows Server 2012 R2 Datacenter Edition) i586 User : GerbangSIPAD ( 0) PHP Version : 5.6.3 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF Directory (0777) : C:/xampp5/htdocs/bhumie/protected/components/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
<?php
class BhumieUtils extends CApplicationComponent{
public $tahunPajakSppt;
public $tahunPajakStts;
public $namaKanwil;
public $namaKantor;
public $kotaTerbit;
public $namaKepalaKantor;
public $barcodeStts;
public $jnsBarcodeStts;
public $teksKanwil;
public $teksKantor;
public $teksSppt;
public $teksStts;
public $kakap;
public function terbilang($angka){
// pastikan kita hanya berususan dengan tipe data numeric
$angka = (float)$angka;
// array bilangan
// sepuluh dan sebelas merupakan special karena awalan 'se'
$bilangan = array(
'',
'satu',
'dua',
'tiga',
'empat',
'lima',
'enam',
'tujuh',
'delapan',
'sembilan',
'sepuluh',
'sebelas'
);
// pencocokan dimulai dari satuan angka terkecil
if ($angka < 12) {
// mapping angka ke index array $bilangan
return ucwords(strtolower($bilangan[$angka]));
} else if ($angka < 20) {
// bilangan 'belasan'
// misal 18 maka 18 - 10 = 8
return ucwords(strtolower($bilangan[$angka - 10] . ' belas'));
} else if ($angka < 100) {
// bilangan 'puluhan'
// misal 27 maka 27 / 10 = 2.7 (integer => 2) 'dua'
// untuk mendapatkan sisa bagi gunakan modulus
// 27 mod 10 = 7 'tujuh'
$hasil_bagi = (int)($angka / 10);
$hasil_mod = $angka % 10;
return ucwords(strtolower(trim(sprintf('%s puluh %s', $bilangan[$hasil_bagi], $bilangan[$hasil_mod]))));
} else if ($angka < 200) {
// bilangan 'seratusan' (itulah indonesia knp tidak satu ratus saja? :))
// misal 151 maka 151 = 100 = 51 (hasil berupa 'puluhan')
// daripada menulis ulang rutin kode puluhan maka gunakan
// saja fungsi rekursif dengan memanggil fungsi terbilang(51)
return ucwords(strtolower(sprintf('seratus %s', $this->terbilang($angka - 100))));
} else if ($angka < 1000) {
// bilangan 'ratusan'
// misal 467 maka 467 / 100 = 4,67 (integer => 4) 'empat'
// sisanya 467 mod 100 = 67 (berupa puluhan jadi gunakan rekursif terbilang(67))
$hasil_bagi = (int)($angka / 100);
$hasil_mod = $angka % 100;
return ucwords(strtolower(trim(sprintf('%s ratus %s', $bilangan[$hasil_bagi], $this->terbilang($hasil_mod)))));
} else if ($angka < 2000) {
// bilangan 'seribuan'
// misal 1250 maka 1250 - 1000 = 250 (ratusan)
// gunakan rekursif terbilang(250)
return ucwords(strtolower(trim(sprintf('seribu %s', $this->terbilang($angka - 1000)))));
} else if ($angka < 1000000) {
// bilangan 'ribuan' (sampai ratusan ribu
$hasil_bagi = (int)($angka / 1000); // karena hasilnya bisa ratusan jadi langsung digunakan rekursif
$hasil_mod = $angka % 1000;
return ucwords(strtolower(sprintf('%s ribu %s', $this->terbilang($hasil_bagi), $this->terbilang($hasil_mod))));
} else if ($angka < 1000000000) {
// bilangan 'jutaan' (sampai ratusan juta)
// 'satu puluh' => SALAH
// 'satu ratus' => SALAH
// 'satu juta' => BENAR
// @#$%^ WT*
// hasil bagi bisa satuan, belasan, ratusan jadi langsung kita gunakan rekursif
$hasil_bagi = (int)($angka / 1000000);
$hasil_mod = $angka % 1000000;
return ucwords(strtolower(trim(sprintf('%s juta %s', $this->terbilang($hasil_bagi), $this->terbilang($hasil_mod)))));
} else if ($angka < 1000000000000) {
// bilangan 'milyaran'
$hasil_bagi = (int)($angka / 1000000000);
// karena batas maksimum integer untuk 32bit sistem adalah 2147483647
// maka kita gunakan fmod agar dapat menghandle angka yang lebih besar
$hasil_mod = fmod($angka, 1000000000);
return ucwords(strtolower(trim(sprintf('%s milyar %s', $this->terbilang($hasil_bagi), $this->terbilang($hasil_mod)))));
} else if ($angka < 1000000000000000) {
// bilangan 'triliun'
$hasil_bagi = $angka / 1000000000000;
$hasil_mod = fmod($angka, 1000000000000);
return ucwords(strtolower(trim(sprintf('%s triliun %s', $this->terbilang($hasil_bagi), $this->terbilang($hasil_mod)))));
} else {
return 'Wow...';
}
}
public function format_rupiah($angka){
return "Rp".number_format($angka,0,',','.');
}
public function thousand_format($angka){
return number_format($angka,0,',','.');
}
public function ConvertStandardDate($date){
$returnDate = substr($date, 6,4)."-".substr($date, 3,2)."-".substr($date, 0,2);
if(empty($date)){
return "";
}
else{
return $returnDate;
}
}
public function ConvertStandardDate2($date){
$returnDate = substr($date, 8,2)."-".substr($date, 5,2)."-".substr($date, 0,4);
if(empty($date)){
return "";
}
else{
return $returnDate;
}
}
public function GetTahunBuku($buku){
if($buku=='1'){
$p_awal = '0';
$p_akhir = '100000';
$buku = '1';
}
else if($buku=='2'){
$p_awal = '0';
$p_akhir = '500000';
$buku = '1,2';
}
else if($buku=='3'){
$p_awal = '0';
$p_akhir = '2000000';
$buku = '1,2,3';
}
else if($buku=='4'){
$p_awal = '0';
$p_akhir = '5000000';
$buku = '1,2,3,4';
}
else if($buku=='5'){
$p_awal = '0';
$p_akhir = '999999999998';
$buku = '1,2,3,4,5';
}
else if($buku=='6'){
$p_awal = '100001';
$p_akhir = '500000';
$buku = '2';
}
else if($buku=='7'){
$p_awal = '100001';
$p_akhir = '2000000';
$buku = '2,3';
}
else if($buku=='8'){
$p_awal = '100001';
$p_akhir = '5000000';
$buku = '2,3,4';
}
else if($buku=='9'){
$p_awal = '100001';
$p_akhir = '999999999998';
$buku = '2,3,4,5';
}
else if($buku=='10'){
$p_awal = '500001';
$p_akhir = '2000000';
$buku = '3';
}
else if($buku=='11'){
$p_awal = '500001';
$p_akhir = '5000000';
$buku = '3,4';
}
else if($buku=='12'){
$p_awal = '500001';
$p_akhir = '999999999998';
$buku = '3,4,5';
}
else if($buku=='13'){
$p_awal = '2000001';
$p_akhir = '5000000';
$buku = '4';
}
else if($buku=='14'){
$p_awal = '2000001';
$p_akhir = '999999999998';
$buku = '4,5';
}
else if($buku=='15'){
$p_awal = '5000001';
$p_akhir = '999999999998';
$buku = '5';
}
else{
$p_awal = '0';
$p_akhir = '0';
$buku = '';
}
return array('p_awal'=>$p_awal, 'p_akhir'=>$p_akhir, 'buku'=>$buku);
}
public function GetKodePrinter($kodePrinter){
if($kodePrinter=='4'){ // Kode Barcode Untuk Printer Printer Printonix
$v_start1 = chr(27)."|};CC;0;0005;0000;011;";
$v_start2 = chr(27)."|};CC;0;0043;0000;011;";
$v_start3 = chr(27)."|};CC;0;0089;0000;011;";
$v_stop = ";H03;PN";
}
else if($kodePrinter=='0'){ // Kode Barcode Untuk Printer Printer Epson
$v_start1 = NULL;
$v_start2 = NULL;
$v_start3 = NULL;
$v_stop = NULL;
}
else if($kodePrinter=='1'){ // Kode Barcode Untuk Printer Printer Data Product
$v_start1 = chr(27)."*z0v92c0q3h<";
$v_start2 = chr(27)."*z0v70c0q3h<";
$v_start3 = NULL;
$v_stop = ">Z";
}
else if($kodePrinter=='2'){ // Kode Barcode Untuk Printer Printer Genicom
$v_start1 = chr(27)."[0t";
$v_start2 = chr(27)."[;4;0;;;;;;;}".chr(27)."[3t";
$v_start3 = NULL;
$v_stop = chr(27)."[0t";
}
else if($kodePrinter=='3'){ // Kode Barcode Untuk Printer Manesmann Tally
$v_start1 = chr(27)."[<4h"."^B1;33;1;1"."^T010";
$v_start2 = chr(27)."[<4h"."^B1;33;1;1"."^T470";
$v_start3 = chr(27)."[<4h"."^B1;33;1;1"."^T930";
$v_stop = chr(27)."[<4l";
}
else{
$v_start1 = NULL;
$v_start2 = NULL;
$v_start3 = NULL;
$v_stop = NULL;
}
return array("v_start1"=>$v_start1, "v_start2"=>$v_start2, "v_start3"=>$v_start3, "v_stop"=>$v_stop);
}
public function GetParameterPencetakan(){
$parameters = ParameterSpptSttsDhkp::model()->findAll();
foreach($parameters as $parameter){
$this->tahunPajakSppt = $parameter->tahun_pajak_sppt;
$this->tahunPajakStts = $parameter->tahun_pajak_stts;
$this->namaKanwil = $parameter->nama_kanwil;
$this->namaKantor = $parameter->nama_kantor;
$this->kotaTerbit = $parameter->kota_terbit;
$this->namaKepalaKantor = $parameter->nama_kepala_kantor;
$this->barcodeStts = $parameter->barcode_stts;
$this->jnsBarcodeStts = $parameter->jns_barcode_stts;
$this->teksKanwil = $parameter->teks_kanwil;
$this->teksKantor = $parameter->teks_kantor;
$this->teksSppt = $parameter->teks_sppt;
$this->teksStts = $parameter->teks_stts;
$this->kakap = $parameter->kakap;
}
return array("tahunPajakSppt"=>$this->tahunPajakSppt, "tahunPajakStts"=>$this->tahunPajakStts, "namaKanwil"=>$this->namaKanwil, "namaKantor"=>$this->namaKantor, "kotaTerbit"=>$this->kotaTerbit,
"namaKepalaKantor"=>$this->namaKepalaKantor, "barcodeStts"=>$this->barcodeStts, "jnsBarcodeStts"=>$this->jnsBarcodeStts, "teksKanwil"=>$this->teksKanwil, "teksKantor"=>$this->teksKantor, "teksSppt"=>$this->teksSppt, "teksStts"=>$this->teksStts);
}
/*
public function GetKodeBarcode(){
$kodePrinters = $this->GetKodePrinter($this->jnsBarcodeStts);
return array("v_start1"=>$kodePrinters["v_start1"], "v_start2"=>$kodePrinters["v_start2"], "v_start3"=>$kodePrinters["v_start3"], "v_stop"=>$kodePrinters["v_stop"]);
}
*/
}
?>