Import initial din SVN ROAAUTO/Trunk @HEAD
This commit is contained in:
267
COMUN/programe/suma_in_vorbe.prg
Normal file
267
COMUN/programe/suma_in_vorbe.prg
Normal file
@@ -0,0 +1,267 @@
|
||||
*!* 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
|
||||
|
||||
Reference in New Issue
Block a user