miércoles, 26 de julio de 2023

Número a letras 2


PROCEDURE entero_a_letras(numero)
nEntero is int
nTemporal is int
sLetras is string
nEntero = numero
SWITCH nEntero
    CASE 0 : sLetras = "CERO"
    CASE 1 : sLetras = "UN"
    CASE 2 : sLetras = "DOS"
    CASE 3 : sLetras = "TRES"
    CASE 4 : sLetras = "CUATRO"
    CASE 5 : sLetras = "CINCO"
    CASE 6 : sLetras = "SEIS"
    CASE 7 : sLetras = "SIETE"
    CASE 8 : sLetras = "OCHO"
    CASE 9 : sLetras = "NUEVE"
    CASE 10 : sLetras = "DIEZ"
    CASE 11 : sLetras = "ONCE"
    CASE 12 : sLetras = "DOCE"
    CASE 13 : sLetras = "TRECE"
    CASE 14 : sLetras = "CATORCE"
    CASE 15 : sLetras = "QUINCE"
    CASE < 20 : sLetras = "DIECI" + entero_a_letras(nEntero - 10)
    CASE 20 : sLetras = "VEINTE"
    CASE < 30 : sLetras = "VEINTI" + entero_a_letras(nEntero - 20)
    CASE 30 : sLetras = "TREINTA"
    CASE 40 : sLetras = "CUARENTA"
    CASE 50 : sLetras = "CINCUENTA"
    CASE 60 : sLetras = "SESENTA"
    CASE 70 : sLetras = "SETENTA"
    CASE 80 : sLetras = "OCHENTA"
    CASE 90 : sLetras = "NOVENTA"
    CASE < 100 :
        nTemporal = nEntero / 10
        nTemporal = nTemporal * 10
        sLetras = entero_a_letras(nTemporal) + "  Y  " + entero_a_letras(nEntero-nTemporal)
    CASE 100 : sLetras = "CIEN"
    CASE < 200 : sLetras = "CIENTO " + entero_a_letras(nEntero - 100)
    CASE 200, 300, 400, 600, 800 : sLetras = entero_a_letras(nEntero/100) + "CIENTOS"
    CASE 500 : sLetras = "QUINIENTOS"
    CASE 700 : sLetras = "SETECIENTOS"
    CASE 900 : sLetras = "NOVECIENTOS"
    CASE < 1000 :
        nTemporal = nEntero / 100
        nTemporal = nTemporal * 100
        sLetras = entero_a_letras(nTemporal) + " " + entero_a_letras(nEntero-nTemporal)
    CASE 1000 : sLetras = "MIL"
    CASE < 2000 : sLetras = "MIL " + entero_a_letras(nEntero-1000)
    CASE < 1000000 :
        sLetras = entero_a_letras(nEntero/1000) + " MIL"
        nTemporal = nEntero / 1000
        nTemporal = nTemporal * 1000
        nTemporal = nEntero - nTemporal
        IF nTemporal < 1000 AND nTemporal > 0 THEN
            sLetras = sLetras + "  " + entero_a_letras(nTemporal)
        END
    CASE 1000000 : sLetras = "UN MILLON"
    CASE < 2000000 : sLetras = "UN MILLON " + entero_a_letras(nEntero - 1000000)
    CASE < 1000000000000 :
        sLetras = entero_a_letras(nEntero/1000000) + " MILLONES"
        nTemporal = nEntero / 1000000
        nTemporal = nTemporal * 1000000
        nTemporal = nEntero - nTemporal
        IF nTemporal < 1000000 AND nTemporal > 0 THEN
            sLetras = sLetras + "  " + entero_a_letras(nTemporal)          
        END
END
RESULT sLetras

PROCEDURE centavos_a_letras(numero)
sCentavos is string
xDecimales is numeric
 
 
xDecimales = DecimalPart(numero)
xDecimales = xDecimales * 100
 
 
IF xDecimales = 0 THEN
    sCentavos = " PESOS 00/100 M.N."
ELSE
    IF xDecimales < 10 THEN
        sCentavos = " PESOS 0" + xDecimales + "/100 M.N."
    ELSE
        sCentavos = " PESOS " + xDecimales + "/100 M.N."
    END
END
RESULT sCentavos

Conexión BD MySQL

Instalar

wd240msql64.DLL
libmysql.dll
en
C:\PC SOFT\WINDEV 24\Programs\Framework\Win64x86
y también en el ejecutable


 IF InTestMode() = True THEN
////*******************************************************************
MiConTest is Connection   //conexión de pruebas
MiConTest..User = "supervisor"
MiConTest..Password = "supervisor"
MiConTest..Server = "localhost"
MiConTest..Database = "FarmaWD"
MiConTest..Provider = hNativeAccessMySQL
MiConTest..Access = hOReadWrite
MiConTest..ExtendedInfo = "Extended information"
MiConTest..CursorOptions = hClientCursor
MiConTest..Caption               = "AMBIENTE DE PRUEBAS"
HOpenConnection(MiConTest)   // Open the connection
HChangeConnection("*", MiConTest) // Assign the connection to all data files
ELSE
MiConFarma is Connection   //conexión de produccion
MiConFarma..User = "supervisor"
MiConFarma..Password = "supervisor"
MiConFarma..Server = "localhost"
MiConFarma..Database = "FarmaWD"
MiConFarma..Provider = hNativeAccessMySQL
MiConFarma..Access = hOReadWrite
MiConFarma..ExtendedInfo = "Extended information"
MiConFarma..CursorOptions = hClientCursor
MiConFarma..Caption        = "AMBIENTE DE PRODUCCION"
HOpenConnection(MiConFarma)   // Open the connection
HChangeConnection("*", MiConFarma) // Assign the connection to all data files
END

Try catch end

 // -------------------------------------------------- // Procedure principal que executa uma query com tratamento de exceção // -----------...