[linux-programming] Tanya tentang kwitansi

2009-01-03 Terurut Topik PD
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

2009-01-03 Terurut Topik Donny Kurnia
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

2009-01-03 Terurut Topik PD
 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'

2009-01-03 Terurut Topik PD
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)

2009-01-03 Terurut Topik PD
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

2009-01-03 Terurut Topik PD
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

2009-01-03 Terurut Topik Donny Kurnia
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

2009-01-03 Terurut Topik PD
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

2009-01-03 Terurut Topik Donny Kurnia
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