[linux-programming] Tanya tentang kwitansi
Rekans, Ada dua hal yang akan saya tanya ttg kwitansi, aplikasi dibuat dengan PHP dengan OS CentOS. 1. gimana cara membuat jumlah angka dengan pemisah ribuan, sehingga 10 ribu itu akan tertulis 10.000 2. gimana cara membuat blok tulisan terbilang. Sehingga tulisan jumlah berupa terbilang akan tertulis di atas barisan blok chr(176). Saya sudah coba menggunakan chr(27).chr(60) (move to left) setelah blok chr(176) tapi tulisan terbilang malah tidak muncul. Any clue pls ? PD -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis
Re: [linux-programming] Tanya tentang kwitansi
PD wrote: Rekans, Ada dua hal yang akan saya tanya ttg kwitansi, aplikasi dibuat dengan PHP dengan OS CentOS. 1. gimana cara membuat jumlah angka dengan pemisah ribuan, sehingga 10 ribu itu akan tertulis 10.000 Fungsi buatan saya: http://pastie.org/351577 Contoh penggunaan: ?php $config['thousand_sep'] = '.'; $config['decimal_sep'] = ','; $config['showcurrency'] = TRUE; $config['currency'] = 'Rp'; echo formatCurrency ('1', $config); ? Cara lain: http://id2.php.net/manual/en/function.number-format.php 2. gimana cara membuat blok tulisan terbilang. Sehingga tulisan jumlah berupa terbilang akan tertulis di atas barisan blok chr(176). Saya sudah coba menggunakan chr(27).chr(60) (move to left) setelah blok chr(176) tapi tulisan terbilang malah tidak muncul. Any clue pls ? PD chr(176) itu apa ya? Biasanya kalau aplikasi web, tampilnya kan di elemen html, seperti span atau div. Bisa kasi contoh kodenya? Fungsi terbilang buatan saya ada di: http://pastie.org/351579 -- Donny Kurnia http://hantulab.blogspot.com http://www.plurk.com/user/donnykurnia -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis
Re: [linux-programming] Tanya tentang kwitansi
Ada dua hal yang akan saya tanya ttg kwitansi, aplikasi dibuat dengan PHP dengan OS CentOS. 1. gimana cara membuat jumlah angka dengan pemisah ribuan, sehingga 10 ribu itu akan tertulis 10.000 Fungsi buatan saya: http://pastie.org/351577 Contoh penggunaan: ?php $config['thousand_sep'] = '.'; $config['decimal_sep'] = ','; $config['showcurrency'] = TRUE; $config['currency'] = 'Rp'; echo formatCurrency ('1', $config); ? Cara lain: http://id2.php.net/manual/en/function.number-format.php Thx... kebetulan juga barusan ketemu documentation number_formatnya php. Jadi problem pertama SOLVE. 2. gimana cara membuat blok tulisan terbilang. Sehingga tulisan jumlah berupa terbilang akan tertulis di atas barisan blok chr(176). Saya sudah coba menggunakan chr(27).chr(60) (move to left) setelah blok chr(176) tapi tulisan terbilang malah tidak muncul. chr(176) itu apa ya? Biasanya kalau aplikasi web, tampilnya kan di elemen html, seperti span atau div. Bisa kasi contoh kodenya? Fungsi terbilang buatan saya ada di: http://pastie.org/351579 jadi kasus nya, entry data semua memang via web browser, tapi hardcopy output adalah pure TXT. Contoh hardcopy yang telah dibuat adalah sbb : function kwitansi($codeval) { include printer.php; $KwitNumber = $codeval[0]; $KwitFrom = $codeval[1]; $KwitValue = $codeval[2]; $KwitDesc = $codeval[3]; $Username = $codeval[4]; $Terbilang = Terbilang($KwitValue); $today = date('d-m-Y'); $block = str_repeat(chr(176),65); $jKwitValue = number_format($KwitValue,0,',','.'); $Kwitansi=fopen(kwitansi.prn,w+); fwrite($Kwitansi,$draftmode $print12cpi \n); fwrite($Kwitansi, NAMA LEMBAGA\n); fwrite($Kwitansi, Jl. alamat lengkap\n); fwrite($Kwitansi, -\n); fwrite($Kwitansi, $elongated1 KWITANSI $elongated0\n\n\n); fwrite($Kwitansi, Nomor Kwitansi: $KwitNumber\n\n); fwrite($Kwitansi, Sudah terima dari : $KwitFrom\n\n); fwrite($Kwitansi, T e r b i l a n g : $Terbilang $movetoleft); fwrite($Kwitansi, $block\n\n); fwrite($Kwitansi, Untuk Keperluan : $KwitDesc\n\n); fwrite($Kwitansi, Kota, $today\n); fwrite($Kwitansi, \n); fwrite($Kwitansi, Jumlah Rp $jKwitValue\n); fwrite($Kwitansi, \n); fwrite($Kwitansi, $Username\n\n\n); fclose($Kwitansi); } sementara isi printer.php adalah sbb : ?php // ESC and FS printer control code $draftmode = chr(27).chr(120).chr(0); $lqmode = chr(27).chr(120).chr(1); $print10cpi = chr(27).chr(80); $print12cpi = chr(27).chr(77); $doublestrike0 = chr(27).chr(72); $doublestrike1 = chr(27).chr(71); $doubleheight0 = chr(27).chr(119).chr(0); $doubleheight1 = chr(27).chr(119).chr(1); $elongated0 = chr(27).chr(87).chr(0); $elongated1 = chr(27).chr(87).chr(1); $italic0= chr(27).chr(53); $italic1= chr(27).chr(52); $condensed0 = chr(18); $condensed1 = chr(15); $elongatedline0 = chr(20); $elongatedline1 = chr(14); $movetoleft = chr(27).chr(60); $initialized= chr(27).chr(64); ? -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis
[linux-programming] lp: Unsupported format 'application/octet-stream'
Rekans, Saya menemukan masalah cukup aneh untuk melakukan printing file txt dengan menggunakan 'lp' Kalau file nya benar2 pure txt, maka tidak ada error.. hasilnya ok. Tapi kalo file txt itu mengandung ESC/P code, maka akan keluar error lp: Unsupported format 'application/octet-stream' Padahal, dikantor saya menggunakan FC2 dan menggunakan printer yg sejenis dan tidak ada masalah dengan lp file yang ada ESC/P code. Ada clue ? PD -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis
[linux-programming] Terbilang (was Re: [linux-programming] Tanya tentang kwitansi)
P. Donny, Thx untuk URL yang diberikan. mengenai terbilang, kemarin saya sudah buat tapi terkendala dengan kata seribu dan satu ribu Mungkin ada clue cara merubah kata satu ribu jadi seribu ? Code yg saya buat adalah sbb : function Terbilang($codeval) { if(strlen($codeval)9) { $codeval = str_repeat(0,9-strlen($codeval)).$codeval; } //if(strlen($codeval)==3) { $result = TigaDigit($codeval); } //if(strlen($codeval)==6) { $result = TigaDigit(substr($codeval,0,3)).'Ribu '.TigaDigit(substr($codeval,3,3)); } //if(strlen($codeval)==9) { $result = TigaDigit(substr($codeval,0,3)).'Juta '.TigaDigit(substr($codeval,3,3)).'Ribu '.TigaD igit(substr($codeval,6,3)); } for($i=0;$i9;$i=$i+3) { $nilai=substr($codeval,$i,3); $result .= TigaDigit($nilai); if($i==0) { $result .= 'Juta '; } if($i==3) { $result .= 'Ribu '; } if($i==6) { $result .= 'Rupiah.'; } } return $result; } function TigaDigit($codeval) { if(strlen($codeval)3) { $codeval = str_repeat(0,3-strlen($codeval)).$codeval; } $Angka = array('','Satu ','Dua ','Tiga ','Empat ','Lima ','Enam ','Tujuh ','Delapan ','Sembilan ','Sepuluh ','Sebelas ','Du a Belas ','Tiga Belas ','Empat Belas ','Lima Belas ','Enam Belas ','Tujuh Belas ','Sembilan Belas '); if($codeval0) { $LastTwo = substr($codeval,1,2); if($LastTwo20) { if($LastTwo10) { $LastTwo = substr($LastTwo,1,1); $tLastTwo = $Angka[$LastTwo]; } else { $tLastTwo = $Angka[$LastTwo]; } } else { $DigitOne = substr($LastTwo,0,1); $DigitTwo = substr($LastTwo,1,1); $tLastTwo = $Angka[$DigitOne].'Puluh '.$Angka[$DigitTwo]; } $DigitThree = substr($codeval,0,1); if($DigitThree==1) { $tDigitThree = 'Seratus '; } elseif($DigitThree1) { $tDigitThree = $Angka[$DigitThree].'Ratus '; } el se { $tDigitThree=''; } $Result = $tDigitThree.$tLastTwo; } else { $Result=''; } return $Result; } PD On 1/3/2009, Donny Kurnia donnykur...@gmail.com wrote: Fungsi terbilang buatan saya ada di: http://pastie.org/351579 -- Donny Kurnia http://hantulab.blogspot.com http://www.plurk.com/user/donnykurnia -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis
[linux-programming] Terbilang (was Re: [linux-programming] Tanya tentang kwitansi) SOLVED
Sorry.. menjawab sendiri :) udah ketemu.. dengan pake str_replace. PD On 1/3/2009, PD p...@ranahminang.net wrote: P. Donny, Thx untuk URL yang diberikan. mengenai terbilang, kemarin saya sudah buat tapi terkendala dengan kata seribu dan satu ribu Mungkin ada clue cara merubah kata satu ribu jadi seribu ? Code yg saya buat adalah sbb : function Terbilang($codeval) { if(strlen($codeval)9) { $codeval = str_repeat(0,9-strlen($codeval)).$codeval; } //if(strlen($codeval)==3) { $result = TigaDigit($codeval); } //if(strlen($codeval)==6) { $result = TigaDigit(substr($codeval,0,3)).'Ribu '.TigaDigit(substr($codeval,3,3)); } //if(strlen($codeval)==9) { $result = TigaDigit(substr($codeval,0,3)).'Juta '.TigaDigit(substr($codeval,3,3)).'Ribu '.TigaD igit(substr($codeval,6,3)); } for($i=0;$i9;$i=$i+3) { $nilai=substr($codeval,$i,3); $result .= TigaDigit($nilai); if($i==0) { $result .= 'Juta '; } if($i==3) { $result .= 'Ribu '; } if($i==6) { $result .= 'Rupiah.'; } } return $result; } function TigaDigit($codeval) { if(strlen($codeval)3) { $codeval = str_repeat(0,3-strlen($codeval)).$codeval; } $Angka = array('','Satu ','Dua ','Tiga ','Empat ','Lima ','Enam ','Tujuh ','Delapan ','Sembilan ','Sepuluh ','Sebelas ','Du a Belas ','Tiga Belas ','Empat Belas ','Lima Belas ','Enam Belas ','Tujuh Belas ','Sembilan Belas '); if($codeval0) { $LastTwo = substr($codeval,1,2); if($LastTwo20) { if($LastTwo10) { $LastTwo = substr($LastTwo,1,1); $tLastTwo = $Angka[$LastTwo]; } else { $tLastTwo = $Angka[$LastTwo]; } } else { $DigitOne = substr($LastTwo,0,1); $DigitTwo = substr($LastTwo,1,1); $tLastTwo = $Angka[$DigitOne].'Puluh '.$Angka[$DigitTwo]; } $DigitThree = substr($codeval,0,1); if($DigitThree==1) { $tDigitThree = 'Seratus '; } elseif($DigitThree1) { $tDigitThree = $Angka[$DigitThree].'Ratus '; } el se { $tDigitThree=''; } $Result = $tDigitThree.$tLastTwo; } else { $Result=''; } return $Result; } PD On 1/3/2009, Donny Kurnia donnykur...@gmail.com wrote: Fungsi terbilang buatan saya ada di: http://pastie.org/351579 -- Donny Kurnia http://hantulab.blogspot.com http://www.plurk.com/user/donnykurnia -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis
Re: [linux-programming] Tanya tentang kwitansi
PD wrote: 2. gimana cara membuat blok tulisan terbilang. Sehingga tulisan jumlah berupa terbilang akan tertulis di atas barisan blok chr(176). Saya sudah coba menggunakan chr(27).chr(60) (move to left) setelah blok chr(176) tapi tulisan terbilang malah tidak muncul. chr(176) itu apa ya? Biasanya kalau aplikasi web, tampilnya kan di elemen html, seperti span atau div. Bisa kasi contoh kodenya? Fungsi terbilang buatan saya ada di: http://pastie.org/351579 jadi kasus nya, entry data semua memang via web browser, tapi hardcopy output adalah pure TXT. Contoh hardcopy yang telah dibuat adalah sbb : function kwitansi($codeval) { include printer.php; $KwitNumber = $codeval[0]; $KwitFrom = $codeval[1]; $KwitValue = $codeval[2]; $KwitDesc = $codeval[3]; $Username = $codeval[4]; $Terbilang = Terbilang($KwitValue); $today = date('d-m-Y'); $block = str_repeat(chr(176),65); $jKwitValue = number_format($KwitValue,0,',','.'); $Kwitansi=fopen(kwitansi.prn,w+); fwrite($Kwitansi,$draftmode $print12cpi \n); fwrite($Kwitansi, NAMA LEMBAGA\n); fwrite($Kwitansi, Jl. alamat lengkap\n); fwrite($Kwitansi, -\n); fwrite($Kwitansi, $elongated1 KWITANSI $elongated0\n\n\n); fwrite($Kwitansi, Nomor Kwitansi: $KwitNumber\n\n); fwrite($Kwitansi, Sudah terima dari : $KwitFrom\n\n); fwrite($Kwitansi, T e r b i l a n g : $Terbilang $movetoleft); fwrite($Kwitansi, $block\n\n); fwrite($Kwitansi, Untuk Keperluan : $KwitDesc\n\n); fwrite($Kwitansi, Kota, $today\n); fwrite($Kwitansi, \n); fwrite($Kwitansi, Jumlah Rp $jKwitValue\n); fwrite($Kwitansi, \n); fwrite($Kwitansi, $Username\n\n\n); fclose($Kwitansi); } sementara isi printer.php adalah sbb : ?php // ESC and FS printer control code $draftmode = chr(27).chr(120).chr(0); $lqmode = chr(27).chr(120).chr(1); $print10cpi = chr(27).chr(80); $print12cpi = chr(27).chr(77); $doublestrike0 = chr(27).chr(72); $doublestrike1 = chr(27).chr(71); $doubleheight0 = chr(27).chr(119).chr(0); $doubleheight1 = chr(27).chr(119).chr(1); $elongated0 = chr(27).chr(87).chr(0); $elongated1 = chr(27).chr(87).chr(1); $italic0= chr(27).chr(53); $italic1= chr(27).chr(52); $condensed0 = chr(18); $condensed1 = chr(15); $elongatedline0 = chr(20); $elongatedline1 = chr(14); $movetoleft = chr(27).chr(60); $initialized= chr(27).chr(64); ? Jadi kembali ke pertanyaan saya, chr(176) itu karakter apa? Kalau moveleft itu buat apa? Apakah menggerakkan kursor kembali ke kiri? Kalau begitu, tulisan yang ada akan ke-replace donk dengan chr(176) sebanyak 65 karakter, bukan begitu? Sudah coba lihat fungsi sprintf? Dengan fungsi ini, kita bisa bikin semacam template. Saya juga barusan dapet info ini lewat RSS http://www.phpclasses.org/browse/package/5038.html Coba aja lihat, mungkin sesuai dengan kebutuhan. -- Donny Kurnia http://hantulab.blogspot.com http://www.plurk.com/user/donnykurnia -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis
Re: [linux-programming] Tanya tentang kwitansi
On 1/4/2009, Donny Kurnia donnykur...@gmail.com wrote: Jadi kembali ke pertanyaan saya, chr(176) itu karakter apa? Kalau moveleft itu buat apa? Apakah menggerakkan kursor kembali ke kiri? chr(176) nggak bisa tampil di email ;) bentuknya hampir sama dengan raster abu-abu 25%. tapi bisa dicoba di box dos prompt nya windows... pencet Alt (tahan) dan kemudian berurutan (bukan dipencet ke-tiga2nya) 176. Kemudian lepasin tombol Alt. $moveleft atau chr(27).chr(60) adalah sama dengan return tapi tanpa life feed. Jadi, kembali di awal baris tanpa line feed. Kalau begitu, tulisan yang ada akan ke-replace donk dengan chr(176) sebanyak 65 karakter, bukan begitu? Bukan... tapi baris yg sama akan diprint 2 kali.. pertama tulisan terbilang lalu ditimpa lagi dengan block; atau sebaliknya. kalo di html (table) tag sama dengan td bgcolor=$greyterbilang/td Sudah coba lihat fungsi sprintf? Dengan fungsi ini, kita bisa bikin semacam template. Barusan liat.. tp bukan ini yg dimaksud. Saya juga barusan dapet info ini lewat RSS http://www.phpclasses.org/browse/package/5038.html sama aja... bukan ini yg dimaksud. PD -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis
Re: [linux-programming] Tanya tentang kwitansi
PD wrote: On 1/4/2009, Donny Kurnia donnykur...@gmail.com wrote: Jadi kembali ke pertanyaan saya, chr(176) itu karakter apa? Kalau moveleft itu buat apa? Apakah menggerakkan kursor kembali ke kiri? chr(176) nggak bisa tampil di email ;) bentuknya hampir sama dengan raster abu-abu 25%. tapi bisa dicoba di box dos prompt nya windows... pencet Alt (tahan) dan kemudian berurutan (bukan dipencet ke-tiga2nya) 176. Kemudian lepasin tombol Alt. $moveleft atau chr(27).chr(60) adalah sama dengan return tapi tanpa life feed. Jadi, kembali di awal baris tanpa line feed. Kalau begitu, tulisan yang ada akan ke-replace donk dengan chr(176) sebanyak 65 karakter, bukan begitu? Bukan... tapi baris yg sama akan diprint 2 kali.. pertama tulisan terbilang lalu ditimpa lagi dengan block; atau sebaliknya. kalo di html (table) tag sama dengan td bgcolor=$greyterbilang/td Sudah pernah dicoba untuk menghilangkan dulu moveleft, jadi tulisan terbilang dan chr(176) akan muncul di baris yang berbeda? Saya tidak begitu paham dengan teknik printing seperti ini. Maaf tidak bisa membantu banyak untuk hal ini. Sudah coba lihat fungsi sprintf? Dengan fungsi ini, kita bisa bikin semacam template. Barusan liat.. tp bukan ini yg dimaksud. Saya juga barusan dapet info ini lewat RSS http://www.phpclasses.org/browse/package/5038.html sama aja... bukan ini yg dimaksud. PD -- Donny Kurnia http://hantulab.blogspot.com http://www.plurk.com/user/donnykurnia -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis