Author Topic: Fungsi Konversi Satuan Kecil-PCS Ke Satuan Besar-KTN  (Read 71 times)

0 Members and 1 Guest are viewing this topic.

Offline xWongso

  • Newbie
  • *
  • Posts: 25
Fungsi Konversi Satuan Kecil-PCS Ke Satuan Besar-KTN
« on: November 08, 2018, 12:07:51 PM »
Dibawah ini ada fungsi untuk konversi dari quantity satuan kecil ke quantity satuan besar…semoga bermanfaat bagi kawan-kawan …
:happy3::angel:

Code: [Select]

?'Produk A :'+QtyGabungan(1728,12,6,24,'4',)
?'Produk A :'+QtyGabungan(1728,12,6,24)
?'Produk A :'+QtyGabungan(-14,12,6,24)
?'Produk B :'+QtyGabungan(144,12,12,,'3',)
?'Produk B :'+QtyGabungan(144,12,12)
?'Produk B :'+QtyGabungan(256,12,12)
?'Produk C :'+QtyGabungan(12,12,,,'2',)
?'Produk C :'+QtyGabungan(12,12)
?'Produk C :'+QtyGabungan(89,12)
?'Produk D :'+QtyGabungan(1,,,,'1','N')
?'Produk D :'+QtyGabungan(1)
?'Produk D :'+QtyGabungan(1,,,,'1','Y')


*---------------------------
Function QTYGABUNGAN
*---------------------------
Parameters TQTY,ECERAN_KTN,ECERAN_KT1,ECERAN_KT2,STNJUAL,JNSPRODUKCURAH

* TQTY = Quantity Terkecil, Bisa Di Isi Minus
* EECERAN_KTN = Quantity Eceran Satuan 1
* EECERAN_KT1 = Quantity Eceran Satuan 2
* EECERAN_KT2 = Quantity Eceran Satuan 3
* STNJUAL   = Satuan Produk, Maksimal 4 Satuan
* JNSPRODUKCURAH = Apakah Produknya Di Jual Berdasarkan Berat(Kg/Ltr), Misalkan Produk Buah2an, Minyak Sayur Curah, dll
* Usage :
* --> Produk A : 1 KTN=12 BND, 1 BND= 6 HGR, 1 HGR= 24 PCS <==> 1 KTN = 1728 PCS
* Satuan Jual Produk A = 4 (KTN,BND,HGR,PCS)
* QtyGabungan(1728,12,6,24)
* --> Produk B : 1 KTN=12 BOX, 1 BOX= 12 PCS <==> 1 KTN = 144 PCS
* Satuan Jual Produk B = 3 (KTN,BOX,PCS)
* QtyGabungan(144,12,12)
* --> Produk C : 1 KTN=12 PCS
* Satuan Jual Produk C = 2 (KTN,PCS)
* QtyGabungan(12,12)
* --> Produk D1 : 1 PCS
* Satuan Jual Produk D1 = 1 (PCS)
* QtyGabungan(1)
* --> Produk D2 : 1 KG
* Satuan Jual Produk D2 = 1 (KG), TAPI Curah = JNSPRODUKCURAH = 'Y'
* QtyGabungan(1,,,,'1','Y')

Private _KTN_,_PCS_,_PCS1_,_PCS2_,GABUNG
If Pcount() = 1
ECERAN_KTN=0
ECERAN_KT1=0
ECERAN_KT2=0
STNJUAL = '1'
JNSPRODUKCURAH='N'
Else
If Pcount() = 2
ECERAN_KT1=0
ECERAN_KT2=0
STNJUAL = '2'
JNSPRODUKCURAH='N'
Else
If Pcount() = 3
ECERAN_KT2=0
STNJUAL = '3'
JNSPRODUKCURAH='N'
Else
If Pcount() = 4
STNJUAL = '4'
JNSPRODUKCURAH='N'
Endif
Endif
Endif
Endif
StockMinus = 'N'
If TQTY < 0  &&MINUS
StockMinus = 'Y'
TQTY = Abs(TQTY)
Endif
If STNJUAL = '1'
If JNSPRODUKCURAH = 'Y'
GABUNG   = Transform(TQTY,'99,999.999')
Else
GABUNG   = Transform(TQTY,'99,999,999')
Endif
Else
If STNJUAL = '2'
_PCS_ = Mod(TQTY,ECERAN_KTN)
_KTN_ =(TQTY-_PCS_)/ECERAN_KTN
GABUNG   = Transform(_KTN_,'99999')+':'+Transform(_PCS_,'999')
Else
If STNJUAL = '3'
_PCS1_ = Mod(TQTY,ECERAN_KT1)
_PCS_  = (Mod(TQTY,(ECERAN_KTN*ECERAN_KT1))-_PCS1_)/ECERAN_KT1
_KTN_  =(TQTY-(_PCS_*ECERAN_KT1)-_PCS1_)/(ECERAN_KTN*ECERAN_KT1)
GABUNG   = Transform(_KTN_,'99999')+':'+Transform(_PCS_,'999')+':'+Transform(_PCS1_,'999')
Else
_PCS2_ = Mod(TQTY,ECERAN_KT2)
_PCS1_ = (Mod(TQTY,(ECERAN_KT1*ECERAN_KT2))-_PCS2_)/ECERAN_KT2
_PCS_  = (Mod(TQTY,(ECERAN_KTN*ECERAN_KT1*ECERAN_KT2))-(_PCS1_*ECERAN_KT2)-_PCS2_)/(ECERAN_KT1*ECERAN_KT2)
_KTN_  = (TQTY-(_PCS_*ECERAN_KT1*ECERAN_KT2)-(_PCS1_*ECERAN_KT2)-_PCS2_)/(ECERAN_KTN*ECERAN_KT1*ECERAN_KT2)
GABUNG   = Transform(_KTN_,'99999')+':'+Transform(_PCS_,'999')+':'+Transform(_PCS1_,'999')+':'+Transform(_PCS2_,'999')
Endif
Endif
Endif
Return Iif(StockMinus='N',GABUNG,'-('+GABUNG+')')
Endfunc

Rgds
XWongso
« Last Edit: November 08, 2018, 12:10:11 PM by xWongso »