267 lines
6.6 KiB
Plaintext
267 lines
6.6 KiB
Plaintext
*!* 30.06.2017
|
|
*!* marius.mutu
|
|
*!* adaugat parametru tcValuta
|
|
|
|
*!* MESSAGEBOX(suma_in_vorbe(1))
|
|
*!* MESSAGEBOX(suma_in_vorbe(10))
|
|
*!* MESSAGEBOX(suma_in_vorbe(100))
|
|
*!* MESSAGEBOX(suma_in_vorbe(1000))
|
|
*!* MESSAGEBOX(suma_in_vorbe(10000))
|
|
*!* MESSAGEBOX(suma_in_vorbe(100000))
|
|
*!* MESSAGEBOX(suma_in_vorbe(1000000))
|
|
*!* MESSAGEBOX(suma_in_vorbe(10000000))
|
|
*!* MESSAGEBOX(suma_in_vorbe(100000000))
|
|
*!* MESSAGEBOX(suma_in_vorbe(1000000000))
|
|
*!* MESSAGEBOX(suma_in_vorbe(10000000000))
|
|
*!* MESSAGEBOX(suma_in_vorbe(11000000000))
|
|
*!* MESSAGEBOX(suma_in_vorbe(11100000000))
|
|
*!* MESSAGEBOX(suma_in_vorbe(11110000000))
|
|
*!* MESSAGEBOX(suma_in_vorbe(11111000000))
|
|
*!* MESSAGEBOX(suma_in_vorbe(11111100000))
|
|
*!* MESSAGEBOX(suma_in_vorbe(11111110000))
|
|
*!* MESSAGEBOX(suma_in_vorbe(11111111000))
|
|
*!* MESSAGEBOX(suma_in_vorbe(11111111100))
|
|
*!* MESSAGEBOX(suma_in_vorbe(11111111110))
|
|
*!* MESSAGEBOX(suma_in_vorbe(11111111111))
|
|
|
|
*!* Function SUMA_IN_VORBE
|
|
Parameter tnSuma, tcValuta
|
|
|
|
LOCAL lcValuta, lcLei, lcLeu, lcBani, lcBan
|
|
|
|
lcValuta = IIF(EMPTY(m.tcValuta), 'RON', ALLTRIM(UPPER(tcValuta)))
|
|
lcLei = IIF(INLIST(m.lcValuta,'LEI','RON'), 'lei', IIF('EUR'$m.lcValuta, 'euro', IIF(m.lcValuta = 'USD', 'dolari', IIF(m.lcValuta = 'GBP', 'lire', 'lei'))))
|
|
lcLeu = IIF(INLIST(m.lcValuta,'LEI','RON'), 'un leu', IIF('EUR'$m.lcValuta, 'un euro', IIF(m.lcValuta = 'USD', 'un dolar', IIF(m.lcValuta = 'GBP', 'o lira', 'un leu'))))
|
|
lcBani = IIF(INLIST(m.lcValuta,'LEI','RON'), 'bani', IIF('EUR'$m.lcValuta, 'centi', IIF(m.lcValuta = 'USD', 'centi', IIF(m.lcValuta = 'GBP', 'pence', 'bani'))))
|
|
lcBan = IIF(INLIST(m.lcValuta,'LEI','RON'), 'un ban', IIF('EUR'$m.lcValuta, 'un cent', IIF(m.lcValuta = 'USD', 'un cent', IIF(m.lcValuta = 'GBP', 'un peny', 'un ban'))))
|
|
|
|
Local i,j, putere, lit,numar1,numar2
|
|
Local lnSuma, lnSuma2
|
|
Local A[1], B[1]
|
|
|
|
Store 0 To i,j,lnSuma,lnSuma2
|
|
Store 1 To putere
|
|
Store '' To lit,numar1,numar2
|
|
|
|
lnSuma=Round(tnSuma,2)
|
|
lnSuma2=(lnSuma-Int(lnSuma))*100
|
|
lnSuma=Int(lnSuma)
|
|
|
|
*!* lnSuma=ROUND(lnSuma,gnPa)
|
|
*!* FOR j=1 TO gnPa
|
|
*!* putere=10*putere
|
|
*!* ENDFOR
|
|
*!* lnSuma2=(lnSuma-Int(lnSuma))*putere
|
|
|
|
numar1=Space(12)
|
|
*!* numar2=Space(gnPa)
|
|
numar2=Space(2)
|
|
|
|
numar1=Str(lnSuma,12)
|
|
*!* numar2=Str(lnSuma2,gnPa)
|
|
numar2=Str(lnSuma2,2)
|
|
|
|
Dimension A(12)
|
|
A(1)=Subs(numar1,12,1)
|
|
A(2)=Subs(numar1,11,1)
|
|
A(3)=Subs(numar1,10,1)
|
|
A(4)=Subs(numar1,9,1)
|
|
A(5)=Subs(numar1,8,1)
|
|
A(6)=Subs(numar1,7,1)
|
|
A(7)=Subs(numar1,6,1)
|
|
A(8)=Subs(numar1,5,1)
|
|
A(9)=Subs(numar1,4,1)
|
|
A(10)=Subs(numar1,3,1)
|
|
A(11)=Subs(numar1,2,1)
|
|
A(12)=Subs(numar1,1,1)
|
|
Sele mila1
|
|
*********************
|
|
Loca For NR=Val(A(12))
|
|
lit=lit+Alltri(cr1)
|
|
|
|
If Val(A(11))=1
|
|
If Val(A(10))=0
|
|
Loca For NR=Val(A(11))
|
|
lit=lit+Alltri(cr5)
|
|
Else
|
|
Loca For NR=Val(A(10))
|
|
*!* modificare ROAAUTO v 2.0.5
|
|
*!* lit=lit+Alltri(cr4)
|
|
lit=lit+Alltri(Strtran(cr4,[doi],[doua]))
|
|
*!* modificare ROAAUTO v 2.0.5 ^
|
|
Endif
|
|
Else
|
|
If Val(A(10))=0
|
|
Loca For NR=Val(A(11))
|
|
lit=lit+Alltrim(cr5)
|
|
Else
|
|
Loca For NR=Val(A(11))
|
|
lit=lit+Alltrim(cr2)
|
|
Loca For NR=Val(A(10))
|
|
*!* modificare ROAAUTO v 2.0.5
|
|
*!* lit=lit+Alltri(cr3)
|
|
*!* modificare ROAAUTO v 2.1.12
|
|
lit=lit+Alltri(Strtran(Strtran(cr3,[unu],[un]),[doi],[doua]))
|
|
*!* modificare ROAAUTO v 2.0.5 ^
|
|
Endif
|
|
Endif
|
|
Do Case
|
|
CASE Val(A(10)) = 1 AND VAL(a(11)) = 0 AND VAL(a(12)) = 0 && modificare ROAAUTO v 2.1.12
|
|
lit=lit+' miliard'
|
|
Case Val(A(12)) # 0
|
|
lit=lit+' miliarde'
|
|
Case Val(A(11)) # 0
|
|
lit=lit+' miliarde'
|
|
Case Val(A(10)) # 0
|
|
lit=lit+' miliarde'
|
|
Endcase
|
|
***********************
|
|
Loca For NR=Val(A(9))
|
|
lit=lit+Alltri(cr1)
|
|
|
|
If Val(A(8))=1
|
|
If Val(A(7))=0
|
|
Loca For NR=Val(A(8))
|
|
lit=lit+Alltri(cr5)
|
|
Else
|
|
Loca For NR=Val(A(7))
|
|
*!* modificare ROAAUTO v 2.0.5
|
|
*!* lit=lit+Alltri(cr4)
|
|
lit=lit+Alltri(Strtran(cr4,[doi],[doua]))
|
|
*!* modificare ROAAUTO v 2.0.5 ^
|
|
Endif
|
|
Else
|
|
If Val(A(7))=0
|
|
Loca For NR=Val(A(8))
|
|
lit=lit+Alltrim(cr5)
|
|
Else
|
|
Loca For NR=Val(A(8))
|
|
lit=lit+Alltrim(cr2)
|
|
Loca For NR=Val(A(7))
|
|
*!* modificare ROAAUTO v 2.0.5
|
|
*!* lit=lit+Alltri(cr3)
|
|
*!* modificare ROAAUTO v 2.1.12
|
|
lit=lit+Alltri(Strtran(Strtran(cr3,[unu],[un]),[doi],[doua]))
|
|
*!* modificare ROAAUTO v 2.0.5 ^
|
|
Endif
|
|
Endif
|
|
Do Case
|
|
CASE Val(A(7)) = 1 AND VAL(a(8)) = 0 AND VAL(a(9)) = 0 && modificare ROAAUTO v 2.1.12
|
|
lit=lit+' milion'
|
|
Case Val(A(9)) # 0
|
|
lit=lit+' milioane'
|
|
Case Val(A(8)) # 0
|
|
lit=lit+' milioane'
|
|
Case Val(A(7)) # 0
|
|
lit=lit+' milioane'
|
|
Endcase
|
|
***********************
|
|
Loca For NR=Val(A(6))
|
|
lit=lit+Alltri(cr1)
|
|
|
|
If Val(A(5))=1
|
|
If Val(A(4))=0
|
|
Loca For NR=Val(A(5))
|
|
lit=lit+Alltri(cr5)
|
|
Else
|
|
Loca For NR=Val(A(4))
|
|
*!* modificare ROAAUTO v 2.0.5
|
|
*!* lit=lit+Alltri(cr4)
|
|
lit=lit+Alltri(Strtran(cr4,[doi],[doua]))
|
|
*!* modificare ROAAUTO v 2.0.5 ^
|
|
Endif
|
|
Else
|
|
If Val(A(4))=0
|
|
Loca For NR=Val(A(5))
|
|
lit=lit+Alltrim(cr5)
|
|
Else
|
|
Loca For NR=Val(A(5))
|
|
lit=lit+Alltrim(cr2)
|
|
Loca For NR=Val(A(4))
|
|
*!* modificare ROAAUTO v 2.0.5
|
|
*!* lit=lit+Alltri(cr3)
|
|
*!* modificare ROAAUTO v 2.1.12
|
|
lit=lit+Alltri(STRTRAN(Strtran(cr3,[unu],[una]),[doi],[doua]))
|
|
*!* modificare ROAAUTO v 2.0.5 ^
|
|
Endif
|
|
Endif
|
|
Do Case
|
|
CASE Val(A(4)) = 1 AND VAL(a(5)) = 0 AND VAL(a(6)) = 0 && modificare ROAAUTO v 2.1.12
|
|
lit=lit+' mie'
|
|
Case Val(A(6)) # 0
|
|
lit=lit+' mii'
|
|
Case Val(A(5)) # 0
|
|
lit=lit+' mii'
|
|
Case Val(A(4)) # 0
|
|
lit=lit+' mii'
|
|
Endcase
|
|
|
|
*********************
|
|
Loca For NR=Val(A(3))
|
|
lit=lit+Alltri(cr1)
|
|
|
|
If Val(A(2))=1
|
|
If Val(A(1))=0
|
|
Loca For NR=Val(A(2))
|
|
lit=lit+Alltri(cr5)
|
|
Else
|
|
Loca For NR=Val(A(1))
|
|
lit=lit+Alltri(cr4)
|
|
Endif
|
|
Else
|
|
If Val(A(1))=0
|
|
Loca For NR=Val(A(2))
|
|
lit=lit+Alltrim(cr5)
|
|
Else
|
|
Loca For NR=Val(A(2))
|
|
lit=lit+Alltrim(cr2)
|
|
Loca For NR=Val(A(1))
|
|
lit=lit+Alltrim(cr3)
|
|
Endif
|
|
Endif
|
|
*!* modificare ROAAUTO v 2.1.12
|
|
*!* lit=lit+' lei'
|
|
IF lnSuma # 0
|
|
IF lnSuma = 1
|
|
lit = m.lcLeu && 'un leu'
|
|
Else
|
|
lit=lit+' ' + m.lcLei && 'lei'
|
|
Endif
|
|
Endif
|
|
*!* modificare ROAAUTO v 2.1.12 ^
|
|
*********************
|
|
Do Case
|
|
Case lnSuma2>1
|
|
lit=lit+' si'
|
|
Dimension B(2)
|
|
B(1)=Subs(numar2,2,1)
|
|
B(2)=Subs(numar2,1,1)
|
|
|
|
Do Case
|
|
Case Val(B(2))=1 And Val(B(1))!=0
|
|
Loca For NR=Val(B(1))
|
|
lit=lit+Alltri(cr4)
|
|
Case Val(B(2))=0
|
|
Loca For NR=Val(B(1))
|
|
lit=lit+Alltrim(cr3)
|
|
Case Val(B(1))=0
|
|
Loca For NR=Val(B(2))
|
|
lit=lit+Alltrim(cr5)
|
|
Otherwise
|
|
Loca For NR=Val(B(2))
|
|
lit=lit+Alltrim(cr2)
|
|
Loca For NR=Val(B(1))
|
|
lit=lit+Alltrim(cr3)
|
|
Endcase
|
|
lit=lit+' ' + m.lcBani &&& 'bani'
|
|
Case lnSuma2=1
|
|
lit=lit+'si ' + m.lcBan && 'un ban'
|
|
Endcase
|
|
|
|
Sele mila1
|
|
*!* use
|
|
|
|
lit=Strtran(lit,' ','')
|
|
|
|
Return lit
|
|
|