SABERMASJUSTODARACT
SABERMASJUSTODARACT Por una Facultad de provecho a la comunidad

Codigos de Ejemplo

CLS
TYPE Registro
motivo AS STRING * 40
monto AS SINGLE
recibo AS SINGLE
fecha AS STRING * 10
END TYPE
DIM caja AS Registro    'declaracion del tipo de datos
Ultimo% = 0
lastsaldo# = 0
GOSUB menu
SYSTEM
'=============================fin del main ============================
menu:
CLS
COLOR 5
PRINT " ## **** BIENVENIDO AL LIBRO ELECTRONICO DE CAJA DEL TALLER ****  ##"
COLOR 7
INPUT "(4)Listado de elementos; (3):A¥ADIR REGISTRO; (1)VER; (2)IMPRIMIR ;(0)SALIR; "; ge%
COLOR 6
SELECT CASE ge%
CASE 3: GOSUB agrega: GOSUB mostrar: SLEEP 2: GOSUB menu
CASE 1: lastsaldo# = 0: GOSUB mostrar: GOSUB saldo: SLEEP 10: GOSUB menu
CASE 2: lastsaldo# = 0: GOSUB imprime: GOSUB menu
CASE 4: SHELL "editor b:baslista.txt"
SLEEP 3: GOSUB menu
CASE 0: CHAIN "C:BASCUENTAS.BAS"
CASE ELSE: GOSUB errores: GOSUB menu
END SELECT
'------------------------------ fin del menu ------------------------------
agrega:
GOSUB mostrar
SLEEP 2
OPEN "b:basCAJA(T)P.REG" FOR RANDOM AS #1 LEN = LEN(caja)
COLOR 7
PRINT "UD. VA A PROCEDER A LLENAR EL ULTIMO DE LOS REGISTROS MOSTRADOS"
COLOR 8
INPUT "DESCRIPCION RESUMIDA DEL EVENTO:"; caja.motivo
INPUT "MONTO:(Con el signo menos <-> si es Gasto o Sal. de Dinero) "; caja.monto
INPUT "N§ COMPROBANTE: "; caja.recibo
caja.fecha = DATE$
PUT #1, (Ultimo%), caja
CLOSE #1
RETURN

'------------------------------ fin del agrega -------------------------
mostrar:
COLOR 5
CLS
OPEN "b:basCAJA(T)P.REG" FOR RANDOM AS #1 LEN = LEN(caja)
K% = 1
DO
GET #1, K%, caja
PRINT USING "Û ### ³                                      ³ #### º $$####.## º          Û"; K%; caja.motivo; caja.recibo; caja.monto; caja.fecha
PRINT "Û-----³----------------------------------------³------º-----------º------------Û"
lastsaldo# = lastsaldo# + caja.monto
Ultimo% = K%
K% = K% + 1
LOOP WHILE NOT EOF(1)
CLOSE #1
RETURN
'------------------------------fin del mostrar -----------------------------
imprime:
GOSUB mostrar
GOSUB saldo
lastsaldo# = 0
OPEN "b:basCAJA(T)P.REG" FOR RANDOM AS #1 LEN = LEN(caja)
K% = 1
LPRINT " ####### RESUMEN DE CUENTA DE: COMPRAVENTA EL ENANO (JORGE)"; DATE$; " #######"
DO
GET #1, K%, caja
IF caja.monto = 0 THEN
LPRINT "Û_____________________________________________________________________________Û"
ELSE
LPRINT USING "Û ### ³                                      ³ #### º $$####.## º         Û"; K%; caja.motivo; caja.recibo; caja.monto; caja.fecha
LPRINT "Û-----³----------------------------------------³------º-----------º-----------Û"
END IF
lastsaldo# = lastsaldo# + caja.monto
K% = K% + 1
LOOP WHILE NOT EOF(1)
CLOSE #1
LPRINT "Û                                                ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»          Û"
LPRINT "Û EL SALDO DE LAS OPERACIONES REGISTRADAS ES:þþ>"; USING " º    +$$####.##   º          Û"; lastsaldo#
LPRINT "Û                                                ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ          Û"
LPRINT "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
RETURN
'------------------------------fin del mostrar -----------------------------

errores:
CLS
LOCATE 10, 10
PRINT "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»"
LOCATE 11, 10
PRINT "º          EL  VALOR  QUE  HA  SOLICITADO  ES  INCORRECTO        º"
LOCATE 12, 10
PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ"
PLAY "L1N68"
RETURN
'------------------------------------------------------------------------------

saldo:
PRINT "Û                                                 ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»          Û"
PRINT "Û  EL SALDO DE LAS OPERACIONES REGISTRADAS ES:þþ>"; USING " º    +$$####.##   º          Û"; lastsaldo#
COLOR 5
PRINT "Û                                                 ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ          Û"
COLOR 6
RETURN

Es conveniente aclarar, que el editor html, no presenta todos los caracteres, sino que modifica algunos y se morfa directamente otros, así que si les interesa el codigo funcional, envien una nota y se los envio al correo que me indiquen en formato comprimido.
Ademas tendran que corregir los PATHS es decir las rutas desde donde son leídos y donde son grabados los archivos, Si no le ponen ruta, solo el nombre del archivo, lo grabara y leera en la carpeta donde estaba el codigo.
Ej, para:
OPEN "b:basCAJA(T)P.REG" FOR RANDOM AS #1 LEN = LEN(caja)
quedaria:
OPEN "CAJA(T)P.REG" FOR RANDOM AS #1 LEN = LEN(caja)

Ahora otro código mas larguito- - - - - - - - - - - - - - - - - - - - -


DECLARE FUNCTION Longdate$ ()
DECLARE FUNCTION OrdenApe$ (xx AS STRING)
DIM este%, k%, mes$, Reg%, Fecha$

TYPE MiLista
Recibo AS SINGLE
Articulo AS STRING * 30
Fecha AS STRING * 10
Tiempo AS INTEGER
END TYPE
DIM Lista AS MiLista
             

TYPE MiLibro
MOTIVO AS STRING * 40
Monto AS SINGLE
Recibo AS SINGLE
Fecha AS STRING * 10
END TYPE
DIM Caja AS MiLibro    'declaracion del tipo de datos

TYPE Registro
Nombre  AS STRING * 30
Articulo AS STRING * 30
Calle AS STRING * 30
Telef AS STRING * 30
Mas1 AS STRING * 70
Mas2 AS STRING * 70
Presu AS SINGLE
Pago AS SINGLE
dia AS STRING * 10
RDia AS STRING * 10
END TYPE
DIM Agenda AS Registro

'
'

Comienzo:
CLOSE
CLEAR
Fecha$ = MID$(DATE$, 4, 2) + "/" + MID$(DATE$, 1, 2) + "/" + MID$(DATE$, 7)
LFecha$ = Longdate$
ON ERROR GOTO NoHayPRT
KEY 15, CHR$(0) + CHR$(1)
ON KEY(15) GOSUB REINICIO
KEY(15) ON
LPRINT CHR$(0);
SHELL "MODE LPT1 LINES=8"  'Para impresi¢n en peque¤o
GOSUB Inicio:


LOCATE 1, 1
WIDTH 80, 43
SHELL "MODE BW80"
GOSUB Placa
COLOR 0, 7
j% = 1
FOR i% = 25 TO 13 STEP -1
escala$ = "L32N" + STR$(i% + 20) + "N" + STR$(j% + 20)
PLAY escala$
    LOCATE j%, 1
PRINT "                                                                                "
    LOCATE i%, 1
PRINT "                                                                                "
j% = j% + 1
NEXT i%
Salida:
ON ERROR GOTO NoNormalizaPRT
LPRINT CHR$(0);
WIDTH 80, 25
SCREEN 0, 1
ON ERROR GOTO Cierra
COLOR 0, 15
CLS
COLOR 27, 8
LOCATE 3, 1
PRINT "     N O R M A L I Z A N D O      E S P A C I A D O      I M P R E S O R A      "
PLAY "L2N32N27N23"
COLOR 7, 0
PRINT ""
SHELL "ECHO OFF"
SHELL "MODE LPT1 LINES=6"
PRINT ""
LOCATE 3, 1
PRINT "I   M   P   R   E   S   O   R   A      N   O   R   M   A   L   I   Z   A   D   A"
COLOR 27, 8
LOCATE 14, 1
PRINT "    H A C I E N D O     C O P I A     A R C H I V O    B A S E     D A T O S    "
COLOR 15, 8
PRINT " Para NO HACER 2¦ COPIA DE SEGURIDAD, Retire el disco < B: > • abra su compuerta"
PLAY "L2N32N27N23"
COLOR 7, 0
PRINT ""
SHELL "Del c:qbarchtall.txt"      'Poner en el exe final guarda copia B.D.
ON ERROR GOTO Saltando
PRINT "Haciendo Copia de Seguridad en Directorio C:QB";
SHELL "Copy c:qbasicarchtall.txt c:qb"
FILES "b:*.ZZZ"
SHELL "Del B:archtall.txt"
SHELL "Copy c:qbasicarchtall.txt b:"
Finsalto:
CLOSE
RESET
CLEAR
Cierra:
SYSTEM
END       '=====================  Fin del main  ========================

Saltando:
PRINT ""
PRINT "====> NO SE HIZO 2¦ Copia Seguridad en Disco B:"
RESUME Finsalto

Inicio:
ON ERROR GOTO failed
SHELL "MODE CON: LINES=43"
WIDTH 80, 43
SHELL "MODE BW80"


CLS
COLOR 0, 7
doble% = 0
click% = 0
VE% = 11
 
    KEY 16, CHR$(128 ) + CHR$(80)
    KEY 17, CHR$(128 ) + CHR$(72)
    KEY 18, CHR$(128 ) + CHR$(28 )
    KEY 19, CHR$(0) + CHR$(11)
    KEY 20, CHR$(0) + CHR$(2)
    KEY 21, CHR$(0) + CHR$(3)
    KEY 22, CHR$(0) + CHR$(4)
    KEY 23, CHR$(0) + CHR$(5)
    KEY 24, CHR$(0) + CHR$(6)
 
    ON KEY(16) GOSUB SUBE
    ON KEY(17) GOSUB BAJA
    ON KEY(18 ) GOSUB MUESTRA
    ON KEY(19) GOSUB CERO
    ON KEY(20) GOSUB UNO
    ON KEY(21) GOSUB DOS
    ON KEY(22) GOSUB TRES
    ON KEY(23) GOSUB CUATRO
    ON KEY(24) GOSUB Cinco1
CLS
PEN ON
DO
    KEY(16) ON
    KEY(17) ON
    KEY(18 ) ON
    KEY(19) ON
    KEY(20) ON
    KEY(21) ON
    KEY(22) ON
    KEY(23) ON
    KEY(24) ON
    p = PEN(3)
IF p THEN
     IF click% = 1 AND doble% = 0 THEN
     EXIT DO
     END IF
             IF doble% > 0 AND doble% < 5 THEN
             click% = 1
             ELSE
             click% = 0
             END IF
             doble% = doble% + 1
  

    x = PEN(4): y = PEN(5)
   LOCATE y / 8, x / 8
   PRINT ""
   IF y / 8 < 12 THEN
   COLOR 0, 7
    LOCATE 10, 6
    PRINT "MOUSE(Bajar)"
   ELSEIF y / 8 > 16 THEN
    LOCATE 17, 6
    COLOR 0, 7
    PRINT "MOUSE(Subir)"
   ELSE
    LOCATE 12, 63
    COLOR 0, 7
    PRINT "MOUSE ACTIVO"
   END IF
ELSE
doble% = 0
END IF
GOSUB Placa
    IF y > 80 AND y < 136 THEN
   VE% = (y / 8 ): ho% = (x / 8 )
   END IF
   LOCATE VE%, 23  ' + (X / 8 )
   IF VE% < 16 AND VE% > 10 THEN
   COLOR 5, 2
   PRINT "²²";
    COLOR 2, 5
   PRINT "                                 ";
    COLOR 5, 2
   'PRINT "²²"
   ELSE
   COLOR 2, 5
   PRINT "²²                                 ²²"
   END IF
 
TECLA$ = INKEY$
LOOP UNTIL TECLA$ = CHR$(13)
MUESTRA:
OPCION% = VE% - 11
SELECT CASE OPCION%
        CASE 0:
        CASE 1:  GOSUB MANEJAREG
        CASE 2:  GOSUB CONTABLE
        CASE 3:  GOSUB MiPlan: GOSUB Inicio
        CASE 4: GOSUB FACTURAR
        CASE 5: este% = 0: insiste% = 0: GOSUB NOKEY: GOSUB Presupuesto: GOSUB Inicio
        PRINT "PRESIONE EL ESPACIADOR PARA RETORNAR AL MENU PRINCIPAL O VOLVERA EN 30'"
        SLEEP 30
     
        CASE ELSE:
        END SELECT
GOTO Salida     '=====================  Fin del Inicio ==========================


SUBE:
IF VE% < 16 THEN
VE% = VE% + 1
END IF
RETURN

BAJA:
IF VE% > 11 THEN
VE% = VE% - 1
END IF
RETURN

CERO:
VE% = 11
RETURN
UNO:
VE% = 12
RETURN
DOS:
VE% = 13
RETURN
TRES:
VE% = 14
RETURN
CUATRO:
VE% = 15
RETURN


Placa:
COLOR 9, 14
LOCATE 1, 1
PRINT "   ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ  "
PRINT USING "   Û°°°°°°°°°°°°°°°°°°°°°                                                  Û  "; " " + LFecha$ + " ° " + TIME$ + " °°°°°°°°°°°°°°"
PRINT "   Û°°°ÛßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßÛ°°°Û  "
PRINT "   Û°°°Û ® BIENVENIDO AL **** MENU PRINCIPAL REGISTROS DEL TALLER **** ¯ Û°°°Û  "
PRINT "   Û°°°ÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛ°°°Û  "
PRINT "   Û°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°°°°°°°°°°°°°°°°°²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°°°°°°°°°°°°°°°°°²²                                 ²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°°°°°°°°°°°°°°°°°²² ====   MENU  DE  OPCIONES  ==== ²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°°°°°°°°°°°°°°°°°²²                                 ²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°          °°°°°°°²² 0) SALIR DEL PROGRAMA           ²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°  ßÛ ÛßÛ  °°°°°°°²² 1) ADMINISTRAR REGISTROS (ABM)  ²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°   Û Û    °°°°°°°²² 2) LIBRO DE CAJA del TALLER     ²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°   Û Û    °°°°°°°²² 3) PLANIFICACION TAREAS         ²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°° ÛÜÛ ÛÜÛ Ü°°°°°°°²² 4) COMPROBANTES                 ²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°        °°°°°°°°²² 5) PRESUPUESTOS                 ²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°°°°°°°°°°°°°°°°°²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²°°°Û  "
PRINT "   Û°°°²²   SELECCIONAR CON EL MOUSE, PRESIONE AMBOS BOTONES Y ARRASTRE ²²°°°Û  "
PRINT "   Û°°°²²   SELECCIONAR CON TECLAS, POR EL NUMERO O CON FLECHAS  y    ²²°°°Û  "
PRINT "   Û°°°²²   *** YA EFECTUADA LA SELECCION Presione Enter ¢ Doble Click  ²²°°°Û  "
PRINT "   Û°°°²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²°°°Û  "
PRINT "   Û°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Û  "
PRINT "   ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß  "
RETURN


Presupuesto:
COLOR 0, 7
CLS
PRINT "ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß"
INPUT "INGRESE EL NUMERO COMPLETO DEL REGISTRO A MODIFICAR: ", xnume$
nume% = VAL(MID$(xnume$, 2))
este% = nume%
  IF nume% = 0 AND insiste% < 2 THEN
    GOSUB NoValor
    insiste% = insiste% + 1
    CLS
    GOSUB Presupuesto
  ELSEIF nume% = 0 AND insiste% >= 2 THEN
    GOSUB Inicio
    END
   
    END IF
CLS
COLOR 1, 7
PRINT "ESTOS SON LOS DATOS QUE HAY EN EL REGISTRO SOLICITADO                           "
PRINT "ÛÛÛßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßÛÛÛ"
OPEN "archtall.txt" FOR RANDOM AS #1 LEN = LEN(Agenda)
k% = 0
DO WHILE NOT EOF(1)
k% = k% + 1
GET #1, k%, Agenda
mes$ = LEFT$(Agenda.dia, 2)

IF k% = nume% THEN
GOSUB PRESENTA


GOSUB PintaB
PRINT "                                                                                "
LOCATE 8, 4
PRINT "                                                                                "
IF Agenda.Presu <= 0 THEN
        GOSUB ModPre
ELSE
            COLOR 7, 2
            LOCATE 11, 3
            PRINT "                                                                            ";
            LOCATE 12, 2
            PRINT "                                                                              ";
            LOCATE 12, 4
            COLOR 7, 4
            PRINT "YA HAY PRESUPUESTO EN ESTE REGISTRO. INDIQUE QUE OPERACION QUIERE EFECTUAR";
            LOCATE 13, 2
            COLOR 7, 2
            PRINT "                                                                              ";
            LOCATE 14, 2
            PRINT " [1] PRESUPUESTO ACEPTADO. Poner en < PLAN DE TAREAS >  .................. 1  ";
            LOCATE 15, 2
            PRINT "                                                                              ";
            LOCATE 16, 2
            PRINT " [2] MODIFICAR EL PRESUPUESTO y Poner en < PLAN DE TAREAS > .............. 2  ";
            LOCATE 17, 2
            PRINT "                                                                              ";
            LOCATE 18, 2
            PRINT " [3] PRESUPUESTO ACEPTADO y REPARADO Sacar de < PLAN DE TAREAS > ......... 3  ";
            LOCATE 19, 2
            PRINT "                                                                              ";
            LOCATE 21, 3
            PRINT "                                                                            ";
            LOCATE 20, 2
            PRINT "                                                                          [°] ";
            LOCATE 20, 2
            INPUT " Escriba la Opci¢n y d‚ < Enter >.   ¢  solo < Enter > para Salir ........[", sele$
            SELECT CASE sele$
            CASE "": CLOSE #1: GOSUB Inicio
            CASE "1": GOSUB MiPlan: CLOSE #1: GOSUB Inicio
            CASE "2": GOSUB PintaB: GOSUB ModPre: GOSUB MiPlan: CLOSE #1: GOSUB Inicio
            CASE "3": GOSUB SMiPlan: CLOSE #1: GOSUB Inicio
            CASE ELSE: GOSUB NoValor
            END SELECT
END IF

CLOSE #1
RETURN
    'ELSEIF EOF(1) THEN
    'GOSUB NoValor
    'CLOSE #1
    'GOSUB Inicio
    'END
    END IF
LOOP
CLOSE #1
RETURN
'===========================================================================
PintaB:
COLOR 5, 6
FOR i% = 10 TO 23
FOR j% = 1 TO 80
LOCATE i%, j%
PRINT "²"
NEXT j%
NEXT i%
RETURN
'===========================================================================
ModPre:
        COLOR 7, 0
        LOCATE 15, 10
        PRINT "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°"
        LOCATE 15, 4
        INPUT "DETALLE: ", Detalle$
        IF LEN(Detalle$) > 0 THEN
        Agenda.Mas2 = Detalle$
        PUT #1, k%, Agenda
        END IF
        COLOR 5, 6
        LOCATE 15, 1
        PRINT "²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²"
        COLOR 7, 0
        LOCATE 15, 28
        PRINT "°°°°"
        LOCATE 15, 4
        INPUT "PRESUPUESTO REPARACION:$", Presup!
        IF Presup! <> 0 THEN
        Agenda.Presu = Presup!
        PUT #1, k%, Agenda
        END IF

RETURN
'============================================================================
MiPlan:
CLOSE
GOSUB NOKEY
SiModi% = 1
GOSUB Buscar
Salto1:
k% = 0
OPEN "LISTAREA.TXT" FOR RANDOM AS #3 LEN = LEN(Lista)
DO
k% = k% + 1
GET #3, k%, Lista
LOOP UNTIL EOF(3)
Lista.Recibo = VAL(LEFT$(Agenda.dia, 2) + STR$(este%))  'mes ingreso y N§ Reg
Lista.Articulo = Agenda.Articulo

LOCATE 10, 2
COLOR 2, 14
LOCATE 10, 2
PRINT "!!!! ATENCION ­­­­ PARA ANULAR LA OPERACION: Dar <Enter> Sin escribir nada    "
LOCATE 11, 2
PRINT "                                                                   °°°°°°     "
LOCATE 11, 2
INPUT "INGRESE: El Tiempo Estimado(en horas) que demandar  la Reparaci¢n. ", Lista.Tiempo
    IF Lista.Tiempo = 0 THEN
    CLOSE #3
    Simode% = 0
    GOSUB Inicio
END IF
LOCATE 11, 2
PRINT "                                                                   °°°°°°     "
LOCATE 11, 2
INPUT "INGRESE LA CANTIDAD DE DIAS QUE SE ESTIMA PARA SU ENTREGA REPARADO: ", dias%
    IF dias% = 0 THEN
    CLOSE #3
    Simode% = 0
    GOSUB Inicio
    END IF

GOSUB SumaFecha
PUT #3, k%, Lista
CLOSE #3
Simode% = 0
GOSUB Inicio
'============================================================================
SumaFecha:
    IF VAL(MID$(DATE$, 4, 2)) + dias% > 30 THEN
        dias$ = "0" + LTRIM$(STR$(VAL(MID$(DATE$, 4, 2)) + dias% - 30))
        meses$ = "0" + LTRIM$(STR$((VAL(LEFT$(DATE$, 2)) + 1)))
    ELSE
        IF LEN(STR$(VAL(MID$(DATE$, 4, 2)) + dias%)) < 3 THEN
            dias$ = "0" + LTRIM$(STR$(VAL(MID$(DATE$, 4, 2)) + dias%))
        ELSE
            dias$ = LTRIM$(STR$(VAL(MID$(DATE$, 4, 2)) + dias%))
        END IF
    meses$ = LEFT$(DATE$, 2)
    END IF
        IF VAL(meses$) > 12 THEN
            meses$ = STR$(12 - VAL(meses$))
            years$ = STR$(VAL(MID$(DATE$, 7)) + 1)
        ELSE
            years$ = MID$(DATE$, 7)
        END IF

Lista.Fecha = meses$ + "-" + dias$ + "-" + years$
RETURN
'============================================================================
SMiPlan:
k% = 0
OPEN "LISTAREA.TXT" FOR RANDOM AS #3 LEN = LEN(Lista)
DO
k% = k% + 1
GET #3, k%, Lista
    IF Lista.Recibo = VAL(LEFT$(Agenda.dia, 2) + STR$(este%)) THEN
        Lista.Fecha = ""
        PUT #3, k%, Lista
    END IF
LOOP UNTIL EOF(3)
CLOSE #3
RETURN
'---------------------------------------------------------------------------
NoValor:
SCREEN 1
COLOR 1, 7
LOCATE 5, 1
PRINT "ÛÛÛ                                  ÛÛÛ";
PRINT "ÛÛÛ  EL VALOR INGRESADO NO ES VALIDO ÛÛÛ";
PRINT "ÛÛÛ                                  ÛÛÛ"
PLAY "L1N60L32N1"
WIDTH 80, 50
SCREEN 0
SHELL "MODE CO80"
WIDTH 80, 25
COLOR 0, 7
RETURN
'--------------------------------------------------------------------------
NOKEY:
    KEY(16) OFF
    KEY(17) OFF
    KEY(18 ) OFF
    KEY(19) OFF
    KEY(20) OFF
    KEY(21) OFF
    KEY(22) OFF
    KEY(23) OFF
    KEY(24) OFF
    KEY(15) ON
RETURN
'---------------------------------------------------------------------------

MANEJAREG:
VE% = 11
    KEY 16, CHR$(128 ) + CHR$(80)
    KEY 17, CHR$(128 ) + CHR$(72)
    KEY 18, CHR$(128 ) + CHR$(28 )
    KEY 19, CHR$(0) + CHR$(11)
    KEY 20, CHR$(0) + CHR$(2)
    KEY 21, CHR$(0) + CHR$(3)
    KEY 22, CHR$(0) + CHR$(4)
    KEY 23, CHR$(0) + CHR$(5)
    'KEY 24, CHR$(0) + CHR$(6)
   
    ON KEY(16) GOSUB Sube1
    ON KEY(17) GOSUB Baja1
    ON KEY(18 ) GOSUB Muestra1
    ON KEY(19) GOSUB cero1
    ON KEY(20) GOSUB Uno1
    ON KEY(21) GOSUB Dos1
    ON KEY(22) GOSUB Tres1
    ON KEY(23) GOSUB Cuatro1
    'ON KEY(24) GOSUB Cinco1


Inicior:
WIDTH 80, 50
SHELL "MODE CON: LINES=43"
SHELL "MODE BW80"
CLS

PEN ON
click% = 0
doble% = 0
DO
    KEY(15) ON
    KEY(16) ON
    KEY(17) ON
    KEY(18 ) ON
    KEY(19) ON
    KEY(20) ON
    KEY(21) ON
    KEY(22) ON
    KEY(23) ON
    KEY(24) OFF
    p = PEN(3)
    IF p THEN
     IF click% = 1 AND doble% = 0 THEN
     EXIT DO
     END IF
             IF doble% > 0 AND doble% < 5 THEN
             click% = 1
             ELSE
             click% = 0
             END IF
             doble% = doble% + 1

    x = PEN(4): y = PEN(5)

  IF y / 8 < 11 THEN
    LOCATE 9, 6
    COLOR 0, 7
    PRINT "MOUSE(Bajar)"
   ELSEIF y / 8 > 16 THEN
    LOCATE 15, 6
    COLOR 0, 7
    PRINT "MOUSE(Subir)"
   ELSE
    LOCATE 12, 6
    PRINT "MOUSE ACTIVO"
   END IF
  ELSE
  doble% = 0
  END IF
GOSUB PLACA1
   IF y > 80 AND y < 128 THEN
   VE% = (y / 8 ): ho% = (x / 8 )
   END IF
   LOCATE VE%, 23  ' + (X / 8 )
   IF VE% < 15 AND VE% > 10 THEN
   COLOR 2, 1
   PRINT "²²";
    COLOR 2, 1
   PRINT "                                 ";
    COLOR 2, 1
   'PRINT "²²"
   ELSE
   COLOR 2, 1
   PRINT "²²                                 "
   END IF

TECLA$ = INKEY$
LOOP UNTIL TECLA$ = CHR$(13)
Muestra1:
OPCION% = VE% - 11
SELECT CASE OPCION%
        CASE 0: GOSUB Inicio
        CASE 1: este% = 0: GOSUB NOKEY: Reintento% = 0: GOSUB CARGAR: GOSUB Inicior
        CASE 2: este% = 0: GOSUB VISTA: GOSUB MODIFICAR: GOSUB Inicior
        CASE 3: este% = 0: GOSUB VISTA: GOSUB RETIRO: GOSUB Inicior
        CASE 4: este% = 0: GOSUB Buscar: SiModi% = 0: GOSUB Inicior
        'CASE 5: este% = 0: insiste% = 0: GOSUB NOKEY: GOSUB Presupuesto: GOSUB Inicior
        'PRINT "PRESIONE EL ESPACIADOR PARA RETORNAR AL MENU PRINCIPAL O VOLVERA EN 30'"
        'SLEEP 30
        '
        CASE ELSE: este% = 0
        END SELECT
GOSUB Inicior        'fin del 2§ men£ maestro
 '---------------------------------------------------------------------
Sube1:
IF VE% < 15 THEN
GOSUB PLACA1
VE% = VE% + 1
END IF
RETURN

Baja1:
IF VE% > 11 THEN
GOSUB PLACA1
VE% = VE% - 1
END IF
RETURN

cero1:
GOSUB PLACA1
VE% = 11
vale = 0
RETURN
Uno1:
GOSUB PLACA1
VE% = 12
vale = 1
RETURN
Dos1:
GOSUB PLACA1
VE% = 13
vale = 2
RETURN
Tres1:
GOSUB PLACA1
VE% = 14
vale = 3
RETURN
Cuatro1:
GOSUB PLACA1
VE% = 15
vale = 4
RETURN

Cinco1:
GOSUB PLACA1
VE% = 16
vale = 5
RETURN

PLACA1:
COLOR 12, 14
LOCATE 1, 1
PRINT "   ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ  "
PRINT USING "   Û°°°°°°°°°°°°°°°°°°°°°                                                  Û  "; " " + LFecha$ + " ° " + TIME$ + " °°°°°°°°°°°°°°"
PRINT "   Û°°°ÛßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßÛ°°°Û  "; ""
PRINT "   Û°°°Û * BIENVENIDO AL REGISTRO DE ARTEFACTOS PARA REPARAR EN TALLER * Û°°°Û  "
PRINT "   Û°°°ÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛ°°°Û  "
PRINT "   Û°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°°°°°°°°°°°°°°°°°²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°°°°°°°°°°°°°°°°°²²                                 ²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°°°°°°°°°°°°°°°°°²² ====   MENU  DE  OPCIONES  ==== ²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°°°      °°°°°°°°²²                                 ²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°°° ÛßßÜ °°°°°°°°²² 0) VOLVER AL MENU PRINCIPAL     ²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°°° ÛÜÜß °°°°°°°°²² 1) REGISTRAR NUEVO INGRESO      ²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°°° Û ßÛ °°°°°°°°²² 2) MODIFICAR REGISTRO RECIENTE  ²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°°°      °°°°°°°°²² 3) REGISTRAR RETIRO DEL EQUIPO  ²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°°°°°°°°°°°°°°°°°²² 4) BUSCAR REGISTRO              ²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°°°°°°°°°°°°°°°°°²²                                 ²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°°°°°°°°°°°°°°°°°²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Û  "
PRINT "   Û°°°²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²°°°Û  "
PRINT "   Û°°°²²   SELECCIONAR CON EL MOUSE, PRESIONE AMBOS BOTONES Y ARRASTRE ²²°°°Û  "
PRINT "   Û°°°²²   SELECCIONAR CON TECLAS, POR EL NUMERO O CON FLECHAS  y    ²²°°°Û  "
PRINT "   Û°°°²²   *** YA EFECTUADA LA SELECCION Presione Enter ¢ Doble Click  ²²°°°Û  "
PRINT "   Û°°°²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²°°°Û  "
PRINT "   Û°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Û  "
PRINT "   ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß  "
RETURN
'==========================================================================================

CARGAR: '
Sicargar% = 1
OPEN "archtall.txt" FOR RANDOM AS #1 LEN = LEN(Agenda)
DO WHILE NOT EOF(1)
k% = k% + 1
GET #1, k%, Agenda
LOOP
mes$ = LEFT$(DATE$, 2)
fin% = LOC(1)
      
        Reg% = LOC(1)
    IF este% = 0 THEN
    xfin$ = STR$(fin%)
    ELSE
    xfin$ = STR$(este%)
    END IF
PARACARGAR:
WIDTH 80, 25
CLS
COLOR 7, 0
LOCATE 2, 2
PRINT "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
LOCATE 3, 2
IF este% = 0 THEN
PRINT "  ** UD. ESTA POR A¥ADIR UN NUEVO REGISTRO EN EL ULTIMO LUGAR DE LA LISTA    "
ELSE
PRINT "  ** UD. ESTA POR MODIFICAR LOS DATOS PERSONALES DEL SIGUIENTE REGISTRO      "
END IF
LOCATE 4, 2
PRINT "                                                                             "
LOCATE 5, 2
PRINT USING "           N§ de Registro:                                                 "; RTRIM$(mes$) + LTRIM$(xfin$)
LOCATE 6, 2
PRINT "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
GOSUB CUADRITOS
LOCATE 7, 1
GOSUB PORNAME
PRINT ""
INPUT "DOMICILIO (Calle y N§): ", Agenda.Calle
PRINT ""
INPUT "              TELEFONO: ", Agenda.Telef
PRINT ""
INPUT "              ARTICULO: ", Agenda.Articulo
PRINT ""
INPUT " MOTIVO: ", Agenda.Mas1
PRINT ""
INPUT "DETALLE: ", Agenda.Mas2
Agenda.dia = DATE$
IF este% <> 0 THEN fin% = este%
PUT #1, fin%, Agenda
CLOSE #1
INPUT "IMPRIMIR UN COMPROBANTE COMO RECIBO? S¢lo <Enter>= S¡; N y <Enter>=No Rp: "; Rp$
IF Rp$ = "" THEN
NroRegi$ = LEFT$(DATE$, 2) + STR$(fin%)
GOSUB DESDEINGRESO
END IF
RETURN
'---------------------------------------------------------------------------
CUADRITOS:
COLOR 7, 0
FOR i = 7 TO 18
FOR j = 1 TO 80
LOCATE i, j
PRINT "Û"
NEXT j
NEXT i
COLOR 7, 0
FOR i = 7 TO 13 STEP 2
FOR j = 25 TO 55
LOCATE i, j
PRINT "²"
NEXT j
NEXT i
FOR i = 15 TO 17 STEP 2
FOR j = 10 TO 79
LOCATE i, j
PRINT "²"
NEXT j
NEXT i
LOCATE 8, 60
PRINT " Escriba los Datos "
LOCATE 9, 60
PRINT " En los Cuadros y  "
LOCATE 10, 60
PRINT " Pulse < Enter >   "
COLOR 0, 7
RETURN
'---------------------------------------------------------------------------
VISTA:
SHELL "MODE BW80,50"
WIDTH 80, 50

COLOR 0, 7
CLS
CLOSE
OPEN "archtall.txt" FOR RANDOM AS #1 LEN = LEN(Agenda)
   IF LOF(1) > (LEN(Agenda) * 9) THEN
    k% = (LOF(1) - (LEN(Agenda) * 9)) / LEN(Agenda)'para ver solo los £ltimos 9
    ELSE
    k% = 0
    END IF
DO WHILE NOT EOF(1)
k% = k% + 1
GET #1, k%, Agenda
mes$ = LEFT$(Agenda.dia, 2)
IF NOT EOF(1) THEN
PRINT "ÛÛÛßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßÛÛÛ"
GOSUB PRESENTA
END IF
LOOP
CLOSE #1
RETURN
'---------------------------------------------------------------------------
MODIFICAR:
Sicargar% = 0
GOSUB NOKEY
COLOR 7, 1
PRINT "--------------------------------------------------------------------------------"
PRINT "                                                     °°°°                       "

LOCATE CSRLIN - 1, 1
INPUT "INGRESE EL NUMERO COMPLETO DEL REGISTRO A MODIFICAR: ", xnume$
nume% = VAL(MID$(xnume$, 3))
        IF nume% = 0 THEN GOSUB Inicior 'Filtro del nume%=0 por Modificar

MENUMODI:
SHELL "MODE CO80,25"
COLOR 0, 7
CLS
PRINT "ÛÛÛßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßÛÛÛ"
CLOSE
OPEN "archtall.txt" FOR RANDOM AS #1 LEN = LEN(Agenda)
        IF nume% = 0 THEN nume% = VAL(MID$(xxeste$, 3))' del buscar
k% = 0
DO WHILE NOT EOF(1)
k% = k% + 1
GET #1, k%, Agenda
este% = LOC(1)
mes$ = LEFT$(Agenda.dia, 2)
IF k% = nume% THEN
GOSUB PRESENTA
LOCATE 7, 1
PRINT "--------------------------------------------------------------------------------"
COLOR 7, 1
LOCATE 8, 5
PRINT "                      ";
COLOR 0, 7
PRINT " MENU DE DATOS A MODIFICAR ";
COLOR 7, 1
PRINT "                       "
COLOR 7, 1
LOCATE 9, 4
PRINT " [0]- - - -¯APELLIDO Y NOMBRE, Escriba el Nro y d‚ <Enter>  . . . . . 0   "
LOCATE 10, 4
PRINT " [1]- - - -¯DOMICILIO, Escriba el Nro y d‚ <Enter>  . . . . . . . . . 1   "
LOCATE 11, 4
PRINT " [2]- - - -¯TELEFONO, Escriba el Nro y d‚ <Enter> . . . . . . . . . . 2   "
LOCATE 12, 4
PRINT " [3]- - - -¯ARTICULO DEJADO A REPARAR, Escriba el Nro y d‚ <Enter>  . 3   "
LOCATE 13, 4
PRINT " [4]- - - -¯MOTIVO DEL SERVICIO, Escriba el Nro y d‚ <Enter>. . . . . 4   "
LOCATE 14, 4
PRINT " [5]- - - -¯DETALLES DEL SERVICIO, Escriba el Nro y d‚ <Enter>. . . . 5   "
LOCATE 15, 4
PRINT " [6]- - - -¯PRESUPUESTO, Escriba el Nro y d‚ <Enter>. . . . . . . . . 6   "
LOCATE 16, 4
PRINT " [7]- - - -¯PAGO A CUENTA,  Escriba el Nro y d‚ <Enter> . . . . . . . 7   "
LOCATE 17, 4
PRINT " [8]- - - -¯TODOS LOS DATOS PERSONALES, Escriba el Nro y d‚ <Enter> . 8   "
LOCATE 18, 4
PRINT " [C]-------¯COPIAR DATOS PERSONALES a un Nuevo Registro < C > y <Enter>   "
LOCATE 19, 5
PRINT "  ¯¯--------¯NO HACER NINGUN CAMBIO: Presione <Enter> Sin Escribir      "
COLOR 0, 7
PRINT "--------------------------------------------------------------------------------"
INPUT "INDIQUE QUE DATO SERA MODIFICADO EN EL REGISTRO: ", quedato$
SELECT CASE quedato$
CASE "0":   LOCATE 23, 41
            PRINT "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°"
            LOCATE 23, 17
            GOSUB PORNAME
            PUT #1, este%, Agenda
CASE "1":
            LOCATE 23, 41
            PRINT "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°"
            LOCATE 23, 11
            INPUT " Nueva Direcci¢n (Calle y N§) ", Agenda.Calle
            PUT #1, este%, Agenda
CASE "2":
            LOCATE 23, 41
            PRINT "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°"
            LOCATE 23, 9
            INPUT "Ingrese Nuevo Nro. de Tel‚fono: ", Agenda.Telef
            PUT #1, este%, Agenda
CASE "3":
            LOCATE 23, 41
            PRINT "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°"
            LOCATE 23, 7
            INPUT "Ingrese Nuevo Articulo a Reparar: ", Agenda.Articulo
            PUT #1, este%, Agenda
CASE "4":
            LOCATE 23, 10
            PRINT "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°"
            LOCATE 23, 1
            INPUT "MOTIVO:  ", Agenda.Mas1
            PUT #1, este%, Agenda
CASE "5":
            LOCATE 23, 10
            PRINT "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°"
            LOCATE 23, 1
            INPUT "DETALLE: ", Agenda.Mas2
            PUT #1, este%, Agenda
        
CASE "6":
            LOCATE 23, 28
            PRINT "°°°°"
            LOCATE 23, 4
            INPUT "PRESUPUESTO REPARACION:$", Agenda.Presu
            PUT #1, este%, Agenda
        
CASE "7":
            LOCATE 23, 28
            PRINT "°°°°"
            LOCATE 23, 4
            INPUT "ENTREGADO A CUENTA:....$", Agenda.Pago
            PUT #1, este%, Agenda
        
CASE "8":
            CLOSE #1: GOSUB CARGAR: RETURN
CASE "": CLOSE #1
GOSUB Inicior
CASE "C" TO "c":
Nuevo% = (LOF(1) / LEN(Agenda)) + 1
Agenda.dia = DATE$
Agenda.Articulo = ""
Agenda.Mas1 = ""
Agenda.Mas2 = ""
Agenda.Presu = 0
Agenda.Pago = 0
Agenda.RDia = ""
FOR i% = 4 TO 23
COLOR 1, 7
LOCATE i%, 1
PRINT "                                                                                "
NEXT i%
GOSUB CUADRITOS
LOCATE 7, 25
PRINT RTRIM$(Agenda.Nombre)
LOCATE 9, 25
PRINT RTRIM$(Agenda.Calle)
LOCATE 11, 25
PRINT RTRIM$(Agenda.Telef)
LOCATE 13, 1
INPUT "              ARTICULO: ", Agenda.Articulo
PRINT ""
INPUT " MOTIVO: ", Agenda.Mas1
PRINT ""
INPUT "DETALLE: ", Agenda.Mas2
PUT #1, Nuevo%, Agenda
CLOSE #1
CASE ELSE
GOSUB NoValor
CLS
GOSUB MENUMODI
RETURN
END SELECT
CLOSE #1
RETURN
    'ELSEIF EOF(1) THEN
    'GOSUB NOVALOR
    'CLOSE #1
    'GOSUB INICIOR
    'RETURN
    END IF
LOOP
CLOSE #1
RETURN
'---------------------------------------------------------------------------
Buscar:
GOSUB NOKEY
COLOR 7, 0
CLS
        LOCATE 6, 4
        COLOR 7, 1
        PRINT "                          ";
        COLOR 0, 7
        IF SiModi% = 0 THEN
        PRINT " MENU BUSCAR REGISTROS ";
        ELSE
        PRINT " SELECCION DE REGISTROS";
        END IF
        COLOR 7, 1
        PRINT "                          "
        LOCATE 7, 3
        PRINT "                                                                             "
        LOCATE 8, 3
        PRINT "   POR PRIMERAS LETRAS DEL Apellido y Nombre............................ 0   "
        LOCATE 9, 3
        PRINT "                                                                             "
        LOCATE 10, 3
        IF SiModi% = 0 THEN
        PRINT "   POR FECHA DE RETIRO del Equipo....................................... 1   "
        ELSE
        PRINT "   POR NUMERO DE COMPROBANTE............................................ 1   "
        END IF
        LOCATE 11, 3
        PRINT "                                                                             "
        LOCATE 12, 3
        PRINT "   !!! SALIR DEL MENU DE BUSQUEDA EN LOS REGISTROS:Sin Escribir Nada <Enter> "
        LOCATE 13, 3
        PRINT "                                                                             "
        LOCATE 14, 4
        PRINT "                                                                           "
        PRINT ""
        COLOR 7, 0
        FOR i% = 15 TO 20
        LOCATE i%, 1
        PRINT "ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ"
        NEXT i%
        COLOR 0, 7
        LOCATE 17, 4
        PRINT "                                                     °"
        LOCATE 17, 4: INPUT " Ingrese el Nro que Identifica la Operaci¢n Deseada: ", deseo$
        SELECT CASE deseo$
  CASE "0"
        LOCATE 19, 4
        Subcad$ = ""
        INPUT "ESCRIBA LAS LETRAS del Apellido y Nombre por Buscar: ", Subcad$
  SHELL "MODE BW80,50"
  WIDTH 80, 50
       CLS
        mik% = 0
        PRINT "ESTOS SON LOS DATOS QUE HAY EN EL REGISTRO SOLICITADO"
        PRINT "ÛÛÛßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßÛÛÛ"
        OPEN "archtall.txt" FOR RANDOM AS #1 LEN = LEN(Agenda)
        k% = 0
        cant% = 0
        DO WHILE NOT EOF(1)
        k% = k% + 1
        GET #1, k%, Agenda
        mes$ = LEFT$(Agenda.dia, 2)
        xnume% = VAL(mes$ + STR$(k%))
        IF INSTR(Agenda.Nombre, Subcad$) > 0 THEN
        mik% = mik% + 1
  IF mik% / 8 = INT(mik% / 8 ) THEN
  COLOR 7, 5
  PRINT "------ > PRESIONE EL ESPACIADOR PARA SEGUIR VIENDO LOS PROXIMOS REGISTROS   "
  SLEEP
  END IF
        GOSUB PRESENTA
        este% = k%
        elmes$ = LEFT$(Agenda.dia, 2)
        cant% = cant% + 1
        COLOR 7, 0
        PRINT "                                                                                "
        END IF
        LOOP
    IF cant% > 1 THEN    'Si hay mas de un registro caracteres coincidentes
   xxeste$ = "0000"
      
        COLOR 7, 1
        'LOCATE 25, 1
                                                                           
PRINT "                                                                         °°°°°°"
        LOCATE CSRLIN - 1, 1
 INPUT "Seleccione N§ DE REGISTRO y <Enter>;  ¢  (S¢lo <Enter> para Salir);   N§:", xxeste$
    COLOR 0, 7
        IF VAL(xxeste$) = 0 OR VAL(MID$(xxeste$, 3)) > (LOF(1) / LEN(Agenda)) + 1 THEN      'si no hay selecci¢n
            GOSUB NoValor
            CLOSE
            IF SiModi% = 0 THEN GOSUB Inicior
            IF SiModi% = 1 THEN GOSUB Inicio
        ELSE
            COLOR 0, 7
            CLS
            nume% = 0
            IF SiModi% = 0 THEN
            GOSUB MENUMODI
            ELSE
            nume% = VAL(xxeste$)
            END IF
        CLOSE #1
        END IF
   ELSE  'si hay un solo registro coincidente
          
            IF SiModi% = 0 THEN
                nume% = este%
                COLOR 0, 7
                'CLS
                GOSUB MENUMODI
            ELSE
                COLOR 0, 7
                CLS
                nume% = VAL(elmes$ + LTRIM$(STR$(este%)))
                CLOSE #1
            END IF
            END IF

   CASE "1"
 IF SiModi% = 0 THEN
   PRINT ""
   LOCATE 20, 61
   PRINT "°°°°°°°°°°"
   LOCATE 20, 4
   INPUT "INGRESE FECHA Formato: mm-dd-yyyy En la que v  a Buscar: ", xFecha$
  
        COLOR 0, 7
        CLS
        CLOSE
        OPEN "archtall.txt" FOR RANDOM AS #1 LEN = LEN(Agenda)
        k% = 0
        cant% = 0
        DO WHILE NOT EOF(1)
        k% = k% + 1
        GET #1, k%, Agenda
        mes$ = LEFT$(Agenda.dia, 2)
        xnume% = VAL(mes$ + STR$(k%))
        IF INSTR(Agenda.dia, xFecha$) <> 0 OR INSTR(Agenda.RDia, xFecha$) <> 0 THEN
        GOSUB PRESENTA
        este% = LOC(1)
        cant% = cant% + 1
        COLOR 7, 0
        PRINT "                                                                                "
    
        END IF
        LOOP
        IF este% = 0 THEN
            PRINT "             ****  NO SE ENCONTRO REGISTRO CON ESTA FECHA  ****          "
            PLAY "l2n45l2n45"
            CLOSE #1
            COLOR 0, 7
            CLS
            GOSUB Inicior
        END IF
        IF cant% > 1 AND este% > 0 THEN
        COLOR 7, 1
        LOCATE 25, 1
        PRINT "                                                                        °°°°°°"
        LOCATE CSRLIN - 1, 1
        INPUT "Seleccione N§ de Registro y <Enter>;  ¢  Solo <Enter> Para Salir;   N§: ", xxeste$
        COLOR 7, 0
        xxeste$ = MID$(xxeste$, 3)
        este% = VAL(xxeste$)
        IF este% = 0 THEN
        CLOSE #1
        COLOR 0, 7
        CLS
        GOSUB Inicior
        END IF
        GET #1, este%, Agenda
            k% = este%
            mes$ = LEFT$(Agenda.dia, 2)
        COLOR 0, 7
        CLS
        GOSUB MENUMODI
        END IF
ELSE
   PRINT ""
   LOCATE 20, 61
   PRINT "°°°°°°°°°°"
   LOCATE 20, 4
   INPUT "INGRESE el N—mero Completo del COMPROBANTE del Aparato : ", MiNume$
 
        COLOR 0, 7
        CLS
        este% = 0
        cant% = 0
        CLOSE
        OPEN "archtall.txt" FOR RANDOM AS #1 LEN = LEN(Agenda)
        k% = 0
        cant% = 0
        DO WHILE NOT EOF(1)
        k% = k% + 1
        GET #1, k%, Agenda
        mes$ = LEFT$(Agenda.dia, 2)
            IF (mes$ + LTRIM$(STR$(k%))) = MiNume$ THEN
                GOSUB PRESENTA
                este% = LOC(1)
                cant% = cant% + 1
                COLOR 7, 0
                PRINT "                                                                                "
                COLOR 0, 7
            END IF
        LOOP
        IF este% = 0 THEN
            PRINT "             ****  NO SE ENCONTRO REGISTRO  ESTE NUMERO  ****          "
            PLAY "l2n45l2n45"
            CLOSE #1
            COLOR 0, 7
            CLS
            GOSUB Inicio
        END IF
    IF cant% > 1 AND este% > 0 THEN
            COLOR 7, 1
            LOCATE 25, 1
            PRINT "                                                                        °°°°°°"
            LOCATE CSRLIN - 1, 1
            INPUT "Seleccione N§ de Registro y <Enter>;  ¢  Solo <Enter> Para Salir;   N§: ", xxeste$
            COLOR 7, 0
            xxeste$ = MID$(xxeste$, 3)
            este% = VAL(xxeste$)
                IF este% = 0 THEN
                    CLOSE #1
                    COLOR 0, 7
                    CLS
                    GOSUB Inicio
                END IF
        GET #1, este%, Agenda
            k% = este%
            mes$ = LEFT$(Agenda.dia, 2)
        COLOR 0, 7
        CLS
        'GOSUB MENUMODI
    ELSE
        GET #1, este%, Agenda
        k% = este%
        mes$ = LEFT$(Agenda.dia, 2)
        COLOR 0, 7

    END IF
   SiModi% = 0
   RETURN
 END IF
CASE ""
    IF SiModi% = 0 THEN
        CLOSE
        GOSUB Inicior
    ELSE
        CLOSE
        GOSUB Inicio
    END IF
            CASE ELSE      'error de seleccion de deseo
            GOSUB NoValor
            IF SiModi% = 0 THEN GOSUB Inicior 'XRETIRO
            IF SiModi% <> 0 THEN GOSUB MiPlan
END SELECT

CLS
CLOSE #1
PRINT "ESTOS SON LOS DATOS QUE HAY EN EL REGISTRO SOLICITADO"
PRINT "ÛÛÛßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßÛÛÛ"
OPEN "archtall.txt" FOR RANDOM AS #1 LEN = LEN(Agenda)
k% = 0
DO WHILE NOT EOF(1)
k% = k% + 1
GET #1, k%, Agenda
este% = LOC(1)
mes$ = LEFT$(Agenda.dia, 2)
xnume% = VAL(mes$ + STR$(k%))
IF xnume% = nume% THEN
GOSUB PRESENTA
COLOR 7, 0
PRINT "                                                                                "
SLEEP 1
IF SiModi% = 1 THEN GOTO Salto1
    ELSEIF EOF(1) THEN
         'GOSUB NOVALOR
         CLOSE #1
         COLOR 0, 7
         GOSUB Inicior
    END IF 'Por coicidencia entre el registro pedido y los registros de la BD.
LOOP
CLOSE #1
RETURN '-------------------------------------------------------------------------
RETURN

RETIRO:
GOSUB NOKEY
COLOR 7, 1
PRINT "                                                                                "
PRINT "                                                                                "
LOCATE CSRLIN - 1, 1
INPUT "INGRESE EL NUMERO COMPLETO DEL REGISTRO DEL APARATO : ", nume%
COLOR 0, 7
XRETIRO:
CLS
PRINT "ESTOS SON LOS DATOS QUE HAY EN EL REGISTRO SOLICITADO"
PRINT "ÛÛÛßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßÛÛÛ"
OPEN "archtall.txt" FOR RANDOM AS #1 LEN = LEN(Agenda)
k% = 0
DO WHILE NOT EOF(1)
k% = k% + 1
GET #1, k%, Agenda
este% = LOC(1)
mes$ = LEFT$(Agenda.dia, 2)
xnume% = VAL(mes$ + STR$(k%))
IF xnume% = nume% THEN
MENUSALE:
GOSUB PRESENTA
COLOR 7, 0
PRINT "                                                                                "
LOCATE 9, 4
PRINT "                                                                                "
 IF Agenda.Pago = 0 THEN
        LOCATE 10, 1
        COLOR 7, 1
        PRINT "ÛÛÛ                       ";
        COLOR 0, 7
        PRINT " MENU DE EQUIPOS RETIRADOS ";
        COLOR 7, 1
        PRINT "                         ÛÛ"
        LOCATE 11, 3
        PRINT "                                                                             "
        LOCATE 12, 3
        PRINT "   PRESUPUESTO NO ACEPTADO ............................................. 0   "
        LOCATE 13, 3
        PRINT "                                                                             "
        LOCATE 14, 3
        PRINT "   RETIRO EQUIPO REPARADO Y PAGO (en ese misma Operaci¢n)............... 1   "
        LOCATE 15, 3
        PRINT "                                                                             "
        LOCATE 16, 3
        PRINT "   !!! NO HAY RETIRO DE EQUIPOS Presionar <Enter> sin ning£n valor           "
        LOCATE 17, 3
        PRINT "                                                                             "
        LOCATE 18, 4
        PRINT "                                                                           "
        PRINT ""
        COLOR 0, 7
        LOCATE 20, 4
        PRINT "                                                     °"
        LOCATE 20, 4
        INPUT " Ingrese el Nro que Identifica la Operaci•n Deseada: ", deseo$
        SELECT CASE deseo$
        CASE "0"
        Agenda.RDia = DATE$
        Agenda.Mas1 = "DEVUELTO SIN REPARAR!!!" + Agenda.Mas1
        PUT #1, este%, Agenda
        CLOSE #1
        GOSUB SMiPlan
        GOSUB Inicior
        CASE "1"
        Agenda.RDia = DATE$
        PUT #1, este%, Agenda
        GOSUB MENUPAGO
        CLOSE #1
        GOSUB Inicior
        CASE ""
        CLOSE #1
        GOSUB Inicior
            CASE ELSE      'error de seleccion de deseo
            GOSUB NoValor
            GOSUB XRETIRO:
        END SELECT
  ELSEIF Agenda.Pago <> 0 AND Agenda.Presu <> Agenda.Pago THEN
  'Si hubo adelanto Supone Aceptaci¢n del Presupuesto, y No Pago Total Anticipado
  Agenda.RDia = DATE$
  GOSUB MENUPAGO:
  ELSE
  COLOR 7, 0
  LOCATE 14, 4
  PRINT "                                                                   "
  LOCATE 16, 4
  PRINT "                                                                   "
  LOCATE 15, 4
  PRINT "  EL REGISTRO INDICA PAGO ANTICIPADO. SE REGISTRA FECHA DE RETIRO  "
  Agenda.RDia = DATE$
  PUT #1, este%, Agenda
  SLEEP 1
  CLOSE #1
  GOSUB Inicior
  END IF
    ELSEIF EOF(1) THEN
         GOSUB NoValor
         CLOSE #1
         GOSUB Inicior
    END IF 'Por coicidencia entre el registro pedido y los registros de la BD.
LOOP
CLOSE #1
RETURN '-------------------------------------------------------------------------

MENUPAGO:
    FOR i% = 10 TO 18  'Borrado del Men— Retiro si lo hay
    IF i% <> 14 THEN
    LOCATE i%, 5
    PRINT "                                                                         "
    END IF
    NEXT i%
COLOR 0, 7
LOCATE 20, 4
PRINT "    SE HA REGISTRADO FECHA DE RETIRO... SELECCIONE AHORA FORMA DE PAGO    "
COLOR 7!
LOCATE 22, 4
PRINT "                                                                                "
LOCATE 23, 1
COLOR 7, 1
PRINT "ÛÛÛ                     ";
COLOR 0, 7
PRINT " MENU DE PAGO DE LA REPARACION ";
COLOR 7, 1
PRINT "                       ÛÛ"
LOCATE 24, 3
PRINT "                                                                             "
LOCATE 25, 3
PRINT "   PAGO TOTAL DE LA REPARACION SEGUN EL PRESUPUESTO .................... 0   "
LOCATE 26, 3
PRINT "                                                                             "
LOCATE 27, 3
PRINT "   PAGO PARCIAL DE LA REPARACION SEGUN EL PRESUPUESTO................... 1   "
LOCATE 28, 3
PRINT "                                                                             "
LOCATE 29, 3
PRINT "   !!!  NO SE REGISTRARA NINGUN PAGO: Presione <Enter> Sin Escribir Nada     "
LOCATE 30, 3
PRINT "                                                                             "
LOCATE 31, 4
PRINT "                                                                           "
PRINT ""
COLOR 0, 7
LOCATE 33, 4
PRINT "                                                     °"
LOCATE 33, 4
INPUT " Ingrese el Nro que Identifica la Operaci•n Deseada: ", sipaga$
SELECT CASE sipaga$
CASE "0"
        Agenda.Pago = Agenda.Presu
        PUT #1, este%, Agenda
        CLOSE #1
        Plata# = Agenda.Presu
        GOSUB RetiCaja
        GOSUB SMiPlan
        GOSUB Inicior

CASE "1"
        LOCATE 35, 4
        PRINT "                                               °°°°"
        LOCATE 35, 4
        INPUT "Escriba IMPORTE PARCIAL PAGADO POR EL CLIENTE: ", Agenda.Pago
        PUT #1, este%, Agenda
        CLOSE #1
        Plata# = Agenda.Pago
        GOSUB RetiCaja
        GOSUB SMiPlan
        GOSUB Inicior
CASE ""
        CLOSE #1
        GOSUB Inicior
CASE ELSE
        GOSUB NoValor
        GOSUB XRETIRO
END SELECT
RETURN
'============================================================================
RetiCaja:
OPEN "CAJAREG1.REG" FOR RANDOM AS #2 LEN = LEN(Caja)
k% = 0
DO
k% = k% + 1
GET #2, k%, Caja
LOOP UNTIL EOF(2)
Caja.MOTIVO = Agenda.Mas2
Caja.Monto = Plata#
Caja.Recibo = xnume%
Caja.Fecha = DATE$
PUT #2, k%, Caja
CLOSE #2
RETURN
'============================================================================
FACTURAR:
GOSUB NOKEY
LPRINT CHR$(8 ) ;  'para detectar errores y descargar cola de impresi¢n
conregis% = 0
DIM SI$
'======================================================================================
INICIOF:
SHELL "MODE CO80"
WIDTH 80, 25
COLOR 7, 1
CLS
COLOR 0, 7
LOCATE 8, 3
PRINT "                                                                            "
LOCATE 9, 2
PRINT "                                                                              "
COLOR 7, 0
LOCATE 8, 25
PRINT " MENU DE SELECCION DE COMPROBANTES ";
COLOR 0, 7
LOCATE 10, 2
PRINT "                                                                              "
LOCATE 11, 2
PRINT " [0]  VOLVER AL MENU PRINCIPAL: Presione < Enter > sin escribir nada ..... 0  "
LOCATE 12, 2
PRINT "                                                                              "
LOCATE 13, 2
PRINT " [1]  COMPROBANTE SIMPLE: Escriba el N§ < 1 > y Presione: < Enter > ...... 1  "
LOCATE 14, 2
PRINT "                                                                              "
LOCATE 15, 2
PRINT " [2]  COMPROBANTE DETALLADO: Escriba el N§ < 2 > y Presione: < Enter >.... 2  "
LOCATE 16, 2
PRINT "                                                                              "
LOCATE 17, 2
PRINT " [3]  LISTADO DE TAREAS PARA LA SEMANA  N§ < 3 > y Presione: < Enter >.... 3  "
LOCATE 18, 2
PRINT "                                                                              "

LOCATE 19, 2
PRINT "                                       °[°]                                   "
LOCATE 20, 3
PRINT "                                                                            "
LOCATE 19, 3
INPUT "  ESCRIBA SU OPCION Y PRESIONE <Enter>:[", volver%

IF volver% = 2 THEN
    GOSUB FACTURA
ELSEIF volver% = 1 THEN
    GOSUB COMPROBANTE:
    GOSUB Inicio
ELSEIF volver% = 3 THEN
    GOSUB Listado
    COLOR 14, 0
    PRINT " ---->>> Para IMPRIMIR este Listado Escriba la letra:  ";
    COLOR 15, 1
    PRINT " i ";
    COLOR 14, 0
    PRINT "   y d‚ <Enter>       "
    INPUT " ---->>> ¢  S¢lo <Enter> para: <<<  NO IMPRIMIR  >>>.       Su Desici¢n = ", impri$
    IF impri$ = "i" THEN
        GOSUB ImpriLista
        GOSUB Inicio
    ELSE
        GOSUB Inicio
    END IF
    ELSE
SHELL "MODE CON: LINES=25 COLS=80"
WIDTH 80, 25
    GOSUB Inicio
END IF
RETURN
'===============================================================================
Listado:
SHELL "MODE CO80,50"
GOSUB Ordenado:
CLS
k% = 0
OPEN "LISTAREA.TXT" FOR RANDOM AS #3 LEN = LEN(Lista)
DO
k% = k% + 1
GET #3, k%, Lista
PRINT MID$(Lista.Fecha, 4, 2); "-"; LEFT$(Lista.Fecha, 2); "-"; MID$(Lista.Fecha, 7); "; ", Lista.Articulo; "; Rec.N§: "; Lista.Recibo; "; Hs.Trab: "; Lista.Tiempo
PRINT "------------------------------------------------------------------------------"
LOOP UNTIL EOF(3)
CLOSE #3
RETURN
'===============================================================================
ImpriLista:
CLS
LPRINT "TAREAS PROGRAMADAS PARA LOS PROXIMOS DIAS SEGUN PLANEAMIENTO. FECHA:"; Fecha$
LPRINT "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ"
k% = 0
OPEN "LISTAREA.TXT" FOR RANDOM AS #3 LEN = LEN(Lista)
DO
k% = k% + 1
GET #3, k%, Lista
IF Lista.Recibo <> 0 THEN
LPRINT Lista.Fecha; "; Art: "; Lista.Articulo; "; Rec.N§: "; Lista.Recibo; "; Hs.Trab: "; Lista.Tiempo
LPRINT "------------------------------------------------------------------------------"
END IF
LOOP UNTIL EOF(3)
CLOSE #3
RETURN
'===============================================================================

Ordenado:
Ante1% = 0

Minimo% = 9999
OPEN "LISTAREA.TXT" FOR RANDOM AS #3 LEN = LEN(Lista)
OPEN "AUXILIAR.TXT" FOR RANDOM AS #4 LEN = LEN(Lista)
CLOSE #4
FOR cant% = 1 TO LOF(3) / LEN(Lista)
k% = 0
    DO '2
        k% = k% + 1
        GET #3, k%, Lista
        rayi% = INSTR(Lista.Fecha, "-")
        IF rayi% > 1 THEN
        xFecha% = VAL(LEFT$(Lista.Fecha, 2) + MID$(Lista.Fecha, rayi% + 1, 2))
          IF xFecha% < Minimo% AND xFecha% <> 0 THEN
            Minimo% = xFecha%
            este% = k%
          END IF
        ELSE
          'EXIT DO
        END IF 'si rayi% >1
    LOOP UNTIL EOF(3)
    GET #3, este%, Lista
    IF Minimo% <> 0 AND Minimo% <> 9999 AND Lista.Recibo <> Ante1% THEN
    Ante1% = Lista.Recibo
OPEN "AUXILIAR.TXT" FOR RANDOM AS #4 LEN = LEN(Lista)
        GET #3, este%, Lista
        PUT #4, (LOF(4) / LEN(Lista)) + 1, Lista
        Lista.Fecha = "99-99-0000"
        'IF este% = 0 THEN EXIT FOR
        PUT #3, este%, Lista
        Minimo% = 9999
CLOSE #4
    END IF
NEXT cant%
CLOSE #3
KILL "LISTAREA.TXT"
SHELL "COPY AUXILIAR.TXT LISTAREA.TXT"
KILL "AUXILIAR.TXT"
RETURN
'===============================================================================

FACTURA:
CLS
LOCATE 4, 1
PRINT "ÛÛÛÛÛÛÛÛÛÛ>  *****  CONFECCION DE FACTURA DE SERVICIO SIMPLE *****  <ÛÛÛÛÛÛÛÛÛÛ"
conregis% = 1
GOSUB PRTVALE
AUTO:
Stot1! = 0: Stot2! = 0: Stot3! = 0: Stot4! = 0: Stot5! = 0: Stot6! = 0: Tot! = 0:
COLOR 7, 1
LOCATE 10, 10
PRINT "         PRIMER ITEM DE LA FACTURA      "
COLOR 7, 0
INPUT ; "CANTIDAD: ", C1!
INPUT ; ";    DETALLE: ", Det1$
INPUT ";     PRECIO: $ ", Prec1!
Stot1! = C1! * Prec1!
Tot! = Stot1! + Stot2! + Stot3! + Stot4! + Stot5! + Stot6!
COLOR 7, 1

PRINT "ÛÛÛÛÛÛÛÛÛ         SEGUNDO ITEM DE LA FACTURA     ";
COLOR 0, 7
PRINT "SubTotal Acumulado = "; Tot!
COLOR 7, 0
INPUT ; "CANTIDAD: ", C2!
INPUT ; ";    DETALLE: ", Det2$
INPUT ";     PRECIO: $ ", Prec2!
Stot2! = C2! * Prec2!
Tot! = Stot1! + Stot2! + Stot3! + Stot4! + Stot5! + Stot6!
COLOR 7, 1
PRINT "ÛÛÛÛÛÛÛÛÛ          TERCER ITEM DE LA FACTURA     ";
COLOR 0, 7
PRINT "SubTotal Acumulado = "; Tot!
COLOR 7, 0
INPUT ; "CANTIDAD: ", C3!
INPUT ; ";    DETALLE: ", Det3$
INPUT ";     PRECIO: $ ", Prec3!
Stot3! = C3! * Prec3!
Tot! = Stot1! + Stot2! + Stot3! + Stot4! + Stot5! + Stot6!
COLOR 7, 1
PRINT "ÛÛÛÛÛÛÛÛÛ           CUARTO ITEM DE LA FACTURA    ";
COLOR 0, 7
PRINT "SubTotal Acumulado = "; Tot!
COLOR 7, 0
INPUT ; "CANTIDAD: ", C4!
INPUT ; ";    DETALLE: ", Det4$
INPUT ";     PRECIO: $ ", Prec4!
Stot4! = C4! * Prec4!
Tot! = Stot1! + Stot2! + Stot3! + Stot4! + Stot5! + Stot6!
COLOR 7, 1
PRINT "ÛÛÛÛÛÛÛÛÛ           QUINTO ITEM DE LA FACTURA    ";
COLOR 0, 7
PRINT "SubTotal Acumulado = "; Tot!
COLOR 7, 0
INPUT ; "CANTIDAD: ", C5!
INPUT ; ";    DETALLE: ", Det5$
INPUT ";     PRECIO: $ ", Prec5!
Stot5! = C5! * Prec5!
Tot! = Stot1! + Stot2! + Stot3! + Stot4! + Stot5! + Stot6!
COLOR 7, 1
PRINT "ÛÛÛÛÛÛÛÛÛ            SEXTO ITEM DE LA FACTURA    ";
COLOR 0, 7
PRINT "SubTotal Acumulado = "; Tot!
COLOR 7, 0
INPUT ; "CANTIDAD: ", C6!
INPUT ; ";    DETALLE: ", Det6$
INPUT ";     PRECIO: $ ", Prec6!
Stot6! = C6! * Prec6!
Tot! = Stot1! + Stot2! + Stot3! + Stot4! + Stot5! + Stot6!
PRINT "                                         SubTotal Acumulado = "; Tot!
LOCATE 7, 1
COLOR 7, 0
PRINT "                                                                                  ";
PRINT "                                                                                  ";
LOCATE 7, 4
PRINT "            *** LA CARGA DE DATOS PARA LA FACTURA ESTA COMPLETA ****          "
LOCATE 8, 4
PRINT "            -->PRESIONE EL ESPACIADOR PARA TERMINAR LA FACTURA                    "
DO
  LOOP UNTIL INKEY$ = CHR$(32)
'=======================================================================================
COPIA:
COLOR 7, 0
LOCATE 7, 1
INPUT "RESPONDA: < S > = (S¡!)  ¢:  < Enter> = No!; SOLO VER.     --->¨V  a IMPRIMIR"; SI$
IF SI$ = "S" OR SI$ = "s" THEN
GOSUB ver: GOSUB imprime
ELSE
GOSUB ver
END IF
'=======================================================================================
ver:
SHELL "MODE BW80,50"
WIDTH 80, 50
COLOR 7, 0
CLS
GOSUB VERHEAD
PRINT "º Cant.³        Detalle del Art¡culo      ³ Precio ³ Subtotal º"
      PRINT "º______³__________________________________³________³__________º"
PRINT USING "º  ### ³                                ³ ###.## ³ #####.## º"; C1!; Det1$; Prec1!; Stot1!
      PRINT "º------³----------------------------------³--------³----------º"
PRINT USING "º  ### ³                                ³ ###.## ³ #####.## º"; C2!; Det2$; Prec2!; Stot2!
      PRINT "º------³----------------------------------³--------³----------º"
PRINT USING "º  ### ³                                ³ ###.## ³ #####.## º"; C3!; Det3$; Prec3!; Stot3!
      PRINT "º------³----------------------------------³--------³----------º"
PRINT USING "º  ### ³                                ³ ###.## ³ #####.## º"; C4!; Det4$; Prec4!; Stot4!
      PRINT "º------³----------------------------------³--------³----------º"
PRINT USING "º  ### ³                                ³ ###.## ³ #####.## º"; C5!; Det5$; Prec5!; Stot5!
      PRINT "º------³----------------------------------³--------³----------º"
PRINT USING "º  ### ³                                ³ ###.## ³ #####.## º"; C6!; Det6$; Prec6!; Stot6!
      PRINT "º------³----------------------------------³--------³----------º"
      PRINT "º                                          ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»º"
      PRINT "º                               TOTAL :þþ>"; USING " º        #####.## ºº"; Stot1! + Stot2! + Stot3! + Stot4! + Stot5! + Stot6!
      PRINT "º                                          ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼº"
    GOSUB PRINTPIE
    escala$ = "CDEFGAB"
    PLAY "L32"
    FOR i% = 6 TO 0 STEP -1
        PLAY "O" + STR$(i%)
        PLAY "X" + VARPTR$(escala$)
    NEXT i%
COLOR 0, 7
IF SI$ = "S" OR SI$ = "s" THEN
GOSUB imprime
ELSE
INPUT "Responda:  (S)=S¡!;  ¢   Enter=NOO!!!    ==> ¨VA A IMPRIMIR ESTA FACTURA"; imp$
IF imp$ <> "S" OR imp$ <> "s" THEN
CLOSE #1
GOSUB INICIOF
ELSE
GOSUB imprime
END IF
END IF
RETURN
'------------------------------fin de copia y ver --------------------------
PRTVALE:
GOSUB mostrar
COLOR 7, 0
LOCATE 25, 1
PRINT "ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ²²²²²²ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ"
LOCATE 25, 1
INPUT "¨ QUE ORDEN DE ARCHIVO DESEA FACTURAR: "; ORDEN$
ORDEN$ = MID$(ORDEN$, 3)
COLOR 0, 7
CLS
OPEN "archtall.txt" FOR RANDOM AS #1 LEN = LEN(Agenda)
    IF VAL(ORDEN$) <= 0 OR VAL(ORDEN$) > (LOF(1) / LEN(Agenda) + 1) THEN
    CLOSE #1
    GOSUB NoValor
    GOSUB INICIOF
    END IF
k% = VAL(ORDEN$)
GET #1, k%, Agenda
mes$ = LEFT$(Agenda.dia, 2)
COLOR 7, 0
PRINT mes$ + ORDEN$; " ";
COLOR 0, 7
PRINT Agenda.Nombre, "Domic:"; Agenda.Calle, "   ARTICULO :"; Agenda.Articulo; "Tel: "; Agenda.Telef
PRINT "MOTIVO DE SERVICIO: "; Agenda.Mas1, "NOTAS/PRESUPUESTO: "; Agenda.Mas2
PRINT "-----------------------------------------------------------------------------"
COLOR 7, 0
PRINT "                                                                                "
INPUT "ESCRIBA: < N >= NO! Para Reintentar y d‚ <Enter>. ¢ S¢lo <Enter> para Seguir ", Yes$
IF Yes$ = "s" OR Yes$ = "S" OR Yes$ = "" THEN
n! = VAL(MID$(DATE$, 1, 2) + ORDEN$)
GOSUB AUTO
ELSE
CLS
PRINT "  ****  INTENTE BUSCAR NUEVAMENTE EL REGISTRO DESEADO  ****"
PLAY "l4n34n38n41"
CLOSE #1
GOSUB PRTVALE
END IF
RETURN
'---------------------------------------------------------------------------
imprime:
GOSUB PRINTHEAD
LPRINT "º Cant.³        Detalle del Art¡culo      ³ Precio ³ Subtotal º"
      LPRINT "º______³__________________________________³________³__________º"
LPRINT USING "º  ### ³                                ³ ###.## ³ #####.## º"; C1!; Det1$; Prec1!; Stot1!
      LPRINT "º------³----------------------------------³--------³----------º"
LPRINT USING "º  ### ³                                ³ ###.## ³ #####.## º"; C2!; Det2$; Prec2!; Stot2!
      LPRINT "º------³----------------------------------³--------³----------º"
LPRINT USING "º  ### ³                                ³ ###.## ³ #####.## º"; C3!; Det3$; Prec3!; Stot3!
      LPRINT "º------³----------------------------------³--------³----------º"
LPRINT USING "º  ### ³                                ³ ###.## ³ #####.## º"; C4!; Det4$; Prec4!; Stot4!
      LPRINT "º------³----------------------------------³--------³----------º"
LPRINT USING "º  ### ³                                ³ ###.## ³ #####.## º"; C5!; Det5$; Prec5!; Stot5!
      LPRINT "º------³----------------------------------³--------³----------º"
LPRINT USING "º  ### ³                                ³ ###.## ³ #####.## º"; C6!; Det6$; Prec6!; Stot6!
      LPRINT "º------³----------------------------------³--------³----------º"
      LPRINT "º                                          ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»º"
      LPRINT "º                               TOTAL :þþ>"; USING " º        #####.## ºº"; Stot1! + Stot2! + Stot3! + Stot4! + Stot5! + Stot6!
      LPRINT "º                                          ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼº"
      LPRINT "ºcuit:20-11782071-9     Ingr.Bru:                             º"
      LPRINT "ºConfeccionada por computadora; sin valor fiscal              º"
      LPRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ"
LPRINT ""
LPRINT CHR$(12)
    escala$ = "CDEFGAB"
    PLAY "L4N34N45"
INPUT " (S)=S!; S¢lo <Enter>=N¢! ==> VA A IMPRIMIR COPIA de ESTA FACTURA"; imp$
IF imp$ <> "S" OR imp$ <> "s" THEN
CLOSE #1
LPRINT CHR$(12)
GOSUB INICIOF
ELSE
GOSUB imprime
END IF
RETURN
'------------------------------fin del IMPRIME -----------------------------
mostrar:
CLS
OPEN "archtall.txt" FOR RANDOM AS #1 LEN = LEN(Agenda)
   IF LOF(1) > (LEN(Agenda) * 4) THEN
    k% = (LOF(1) - (LEN(Agenda) * 4)) / LEN(Agenda)
    ELSE
    k% = 0
    END IF
DO WHILE NOT EOF(1)
k% = k% + 1
GET #1, k%, Agenda
mes$ = LEFT$(Agenda.dia, 2)
IF NOT EOF(1) THEN
PRINT "ÛÛÛßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßÛÛÛ"
GOSUB PRESENTA
END IF
LOOP
CLOSE #1
RETURN
'===============================================================================
PRINTHEAD:
LPRINT "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»"
LPRINT "º   S E R V I C I O      T E C N I C O   º FACTURA N§"; USING " ######  º"; n!;
LPRINT "º   E L E C T R O N I C O    T O T A L   º                    º"
LPRINT "º   de   D.   M E N O Y O    &    C i a. º FECHA: "; Fecha$; "  º";
LPRINT "º  USPALLATA 1271 B§ S.Mart¡n - C¢rdoba  º                    º"
LPRINT "ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹"
IF conregis% = 1 THEN
LPRINT "º Nombre del propietario:    ³ Domicilio del propietario:     º"
LPRINT "º                                                             º"
LPRINT "º"; USING "                          ³                              º"; Agenda.Nombre; Agenda.Calle
LPRINT "º-------------------------------------------------------------º"
LPRINT "º Telefono del propietario:  ³ Art¡culo dejado para reparar   º"
LPRINT "º                                                             º"
LPRINT "º"; USING "                          ³                              º"; Agenda.Telef; Agenda.Articulo
LPRINT "º-------------------------------------------------------------º"
IF INSTR(LEFT$(Agenda.Mas1, 50), "  ") = 0 THEN 'habilita 2§ rengl¢n para Motivo:
corte% = INSTR(MID$(Agenda.Mas1, 40, 10), " ")
LPRINT "º"; USING " Motivo:                                                   º"; LEFT$(Agenda.Mas1, corte% + 39)
LPRINT "º"; USING "                                                           º"; MID$(Agenda.Mas1, corte% + 40)
ELSE
LPRINT "º"; USING " Motivo:                                                   º"; Agenda.Mas1
END IF

IF INSTR(LEFT$(Agenda.Mas2, 50), "  ") = 0 THEN 'segundo rengl¢n para Detalle
corte% = INSTR(MID$(Agenda.Mas2, 40, 10), " ")
LPRINT "º"; USING " Detalle:                                                  º"; LEFT$(Agenda.Mas2, corte% + 40)
LPRINT "º"; USING "                                                           º"; MID$(Agenda.Mas2, corte% + 40)
ELSE
LPRINT "º"; USING " Detalle:                                                  º"; Agenda.Mas2
END IF
LPRINT "ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹"
END IF
RETURN
'===============================================================================
VERHEAD:
PRINT "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»"
PRINT "º   S E R V I C I O      T E C N I C O   º FACTURA N§"; USING " ######  º"; n!;
PRINT "º   E L E C T R O N I C O    T O T A L   º                    º"
PRINT "º   de   D.   M E N O Y O    &    C i a. º FECHA: "; Fecha$; "  º";
PRINT "º  USPALLATA 1271 B§ S.Mart¡n - C¢rdoba  º                    º"
PRINT "ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹"
IF conregis% = 1 THEN
PRINT "º Nombre del propietario:    ³ Domicilio del propietario:     º"
PRINT "º"; USING "                          ³                              º"; Agenda.Nombre; Agenda.Calle
PRINT "º-------------------------------------------------------------º"
PRINT "º Telefono del propietario:  ³ Art¡culo dejado para reparar   º"
PRINT "º"; USING "                          ³                              º"; Agenda.Telef; Agenda.Articulo
PRINT "º-------------------------------------------------------------º"
IF INSTR(LEFT$(Agenda.Mas1, 50), "  ") = 0 THEN 'habilita 2§ rengl¢n para Motivo:
corte% = INSTR(MID$(Agenda.Mas1, 40, 10), " ")
PRINT "º"; USING " Motivo:                                                   º"; LEFT$(Agenda.Mas1, corte% + 39)
PRINT "º"; USING "                                                           º"; MID$(Agenda.Mas1, corte% + 40)
ELSE
PRINT "º"; USING " Motivo:                                                   º"; Agenda.Mas1
END IF

IF INSTR(LEFT$(Agenda.Mas2, 50), "  ") = 0 THEN 'segundo rengl¢n para Detalle
corte% = INSTR(MID$(Agenda.Mas2, 40, 10), " ")
PRINT "º"; USING " Detalle:                                                  º"; LEFT$(Agenda.Mas2, corte% + 40)
PRINT "º"; USING "                                                           º"; MID$(Agenda.Mas2, corte% + 40)
ELSE
PRINT "º"; USING " Detalle:                                                  º"; Agenda.Mas2
END IF
PRINT "ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹"
END IF
RETURN
'===============================================================================
COMPROBANTE:
CLS
GOSUB mostrar
COLOR 7, 0
LOCATE 1, 48
PRINT "°°°°"
LOCATE 1, 5
INPUT " INGRESE EL NUMERO COMPLETO DEL REGISTRO : ", NroRegi$
IF VAL(NroRegi$) > 0 THEN
DESDEINGRESO:
conregis% = 1
k% = VAL(MID$(NroRegi$, 3))
PRINT k%
COLOR 0, 7
CLS
n! = VAL(NroRegi$)
OPEN "archtall.txt" FOR RANDOM AS #1 LEN = LEN(Agenda)
IF k% > 0 AND k% < (LOF(1) / LEN(Agenda)) + 1 THEN
GET #1, k%, Agenda
mes$ = LEFT$(Agenda.dia, 2)
ELSE
GOSUB NoValor
CLOSE #1
GOSUB INICIOF
END IF
CLOSE #1
GOSUB VCOPIA
COLOR 0, 7
LOCATE 21, 1
PRINT " ÜÛÛÛÛÛÛÛÛÛÛÛ Sub-Men£ de Comprobante ÛÛÛÛÛÛÛÛÛÜ"
COLOR 7, 0
LOCATE 22, 1
PRINT "Û VA A IMPRIMIR ESTE COMPROBANTE ?              "
PRINT "Û [1] SI:  Escriba el N§ < 1 > y d‚: < Enter >  "
INPUT "Û [0] No!! Presione < Enter > Sin Escribir      ", sii%
IF sii% = 1 THEN
GOSUB PCOPIA
ELSE
conregis% = 0
END IF
END IF
RETURN
'===============================================================================
PRINTPIE:
      PRINT "ºcuit:20-11782071-9     Ingr.Bru:                             º"
      PRINT "ºConfeccionada por computadora; sin valor fiscal              º"
      PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ"
PRINT ""
PRINT ""
RETURN
'===============================================================================
PCOPIA:
LPRINT "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»"
LPRINT "º  SERVICIO  TECNICO º ARCHIVO N§"; USING " ######  º"; n!
LPRINT "º  ELECTRONICO TOTAL º [ ]P/Presupuesto   º"
LPRINT "º  de D. MENOYO & Cia. º FECHA: "; Fecha$; "  º";
LPRINT "º  USPALLATA 1271 B§ S. Mart¡n - C¢rdoba º                    º"
LPRINT "ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹"
LPRINT "º Nombre del propietario:     ³  Domicilio del propietario:   º"
LPRINT "º"; USING "                           ³                             º"; Agenda.Nombre; Agenda.Calle
LPRINT "º-------------------------------------------------------------º"
LPRINT "º Telefono del propietario:   ³Art¡culo dejado para reparar   º"
LPRINT "º"; USING "                           ³                             º"; Agenda.Telef; Agenda.Articulo
LPRINT "º-------------------------------------------------------------º"
IF INSTR(LEFT$(Agenda.Mas1, 50), "  ") = 0 THEN 'habilita 2§ rengl¢n para Motivo:
corte% = INSTR(MID$(Agenda.Mas1, 40, 10), " ")
LPRINT "º"; USING " Motivo:                                                   º"; LEFT$(Agenda.Mas1, corte% + 39)
LPRINT "º"; USING "                                                           º"; MID$(Agenda.Mas1, corte% + 40)
ELSE
LPRINT "º"; USING " Motivo:                                                   º"; Agenda.Mas1
END IF

IF INSTR(LEFT$(Agenda.Mas2, 50), "  ") = 0 THEN 'segundo rengl¢n para Detalle
corte% = INSTR(MID$(Agenda.Mas2, 40, 10), " ")
LPRINT "º"; USING " Detalle:                                                  º"; LEFT$(Agenda.Mas2, corte% + 40)
LPRINT "º"; USING "                                                           º"; MID$(Agenda.Mas2, corte% + 40)
ELSE
LPRINT "º"; USING " Detalle:                                                  º"; Agenda.Mas2
END IF
LPRINT "º Presup.:$ "; USING "####        A Cta.:$ ####        Saldo:$ ####     º"; Agenda.Presu; Agenda.Pago; Agenda.Presu - Agenda.Pago
LPRINT "ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹"
LPRINT "ºcuit:20-11782071-9     Ingr.Bru:                             º"
LPRINT "ºConfeccionada por computadora; sin valor fiscal              º"
LPRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ"
LPRINT ""
LPRINT ""
ON ERROR GOTO xPRT
INPUT "==>VA A IMPRIMIR otro COMPROBANTE adjunto?? Rp: <Enter>=No! <S y Enter>=S¡ :"; imp$
IF imp$ <> "S" AND imp$ <> "s" THEN
LPRINT CHR$(12)
END IF
RETURN
'---------------------------------------------------------------------------
VCOPIA:
COLOR 0, 7
PRINT "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»"
PRINT "º   S E R V I C I O     T E C N I C O    º ARCHIVO N§"; USING " ######  º"; n!
PRINT "º   E L E C T R O N I C O   T O T A L    º [ ]P/Presupuesto   º"
PRINT "º   de  D. M E N O Y O    &    C i a.    º FECHA: "; Fecha$; "  º";
PRINT "º  USPALLATA 1271 B§ S. Mart¡n - C¢rdoba º                    º"
PRINT "ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹"
PRINT "º Nombre del propietario:     ³ Domicilio del propietario:    º"
PRINT "º"; USING "                           ³                             º"; Agenda.Nombre; Agenda.Calle
PRINT "º-------------------------------------------------------------º"
PRINT "º Telefono del propietario:   ³ Art¡culo dejado para reparar  º"
PRINT "º"; USING "                           ³                             º"; Agenda.Telef; Agenda.Articulo
PRINT "º-------------------------------------------------------------º"

IF INSTR(LEFT$(Agenda.Mas1, 50), "  ") = 0 THEN 'habilita 2§ rengl¢n para Motivo:
corte% = INSTR(MID$(Agenda.Mas1, 40, 10), " ")
PRINT "º"; USING " Motivo:                                                   º"; LEFT$(Agenda.Mas1, corte% + 39)
PRINT "º"; USING "                                                           º"; MID$(Agenda.Mas1, corte% + 40)
ELSE
PRINT "º"; USING " Motivo:                                                   º"; Agenda.Mas1
END IF

IF INSTR(LEFT$(Agenda.Mas2, 50), "  ") = 0 THEN 'segundo rengl¢n para Detalle
corte% = INSTR(MID$(Agenda.Mas2, 40, 10), " ")
PRINT "º"; USING " Detalle:                                                  º"; LEFT$(Agenda.Mas2, corte% + 40)
PRINT "º"; USING "                                                           º"; MID$(Agenda.Mas2, corte% + 40)
ELSE
PRINT "º"; USING " Detalle:                                                  º"; Agenda.Mas2
END IF
PRINT "º Presup.:$ "; USING "####        A Cta.:$ ####        Saldo:$ ####     º"; Agenda.Presu; Agenda.Pago; Agenda.Presu - Agenda.Pago
PRINT "ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹"
PRINT "ºcuit:20-11782071-9     Ingr.Bru:                             º"
PRINT "ºConfeccionada por computadora; sin valor fiscal              º"
PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ"
PRINT ""
PRINT ""
RETURN
'---------------------------------------------------------------------------
CONTABLE:
CLS
Ultimo% = 0
lastsaldo# = 0
GOSUB NOKEY
GOSUB Menu
ON ERROR GOTO failed
'======================================================================
Menu:
COLOR 0, 5
CLS
COLOR 7, 0
LOCATE 1, 8
PRINT " ## **** BIENVENIDO AL LIBRO ELECTRONICO DE CAJA DEL TALLER ****  ##"
LOCATE 3, 3
COLOR 1, 7
PRINT "                         ";
COLOR 7, 0
PRINT " MENU DE OPCIONES DE INGRESO ";
COLOR 1, 7
PRINT "                     "
LOCATE 4, 2
PRINT "                                                                              "
LOCATE 5, 2
PRINT "  [0] SALIR DEL LIBRO DE CAJA.....Escriba<0> ¢ d‚ <Enter Sin Escribir Nada    "
LOCATE 6, 2
PRINT "                                                                              "
LOCATE 7, 2
PRINT "  [1] Ver Ultimos Registros y Saldo.....Escriba: <1> y d‚ <Enter>             "
LOCATE 8, 2
PRINT "                                                                              "
LOCATE 9, 2
PRINT "  [2] Imprimir Registros y Saldo........Escriba: <2> y d‚ <Enter>             "
LOCATE 10, 2
PRINT "                                                                              "
LOCATE 11, 2
PRINT "  [3] AGREGAR un Nuevo Registro.........Escriba: <3> y d‚ <Enter>             "
LOCATE 12, 2
PRINT "                                                                              "
LOCATE 13, 2
PRINT "  [4] RESUMEN OPERACIONES por N§ Comprobante Escriba:<4> y d‚ <Enter>         "
LOCATE 14, 3
PRINT "                                                                           "

LOCATE 3, 3
INPUT "", ge%
COLOR 0, 7
SELECT CASE ge%
CASE 3: GOSUB agrega: GOSUB MostrarC: SLEEP 2: GOSUB Menu
CASE 1: lastsaldo# = 0
      SHELL "MODE CON: LINES=43"
      SHELL "MODE BW80,50"
      GOSUB MostrarC
      GOSUB Saldo
      SLEEP 10
      SHELL "MODE BW80,25"
      GOSUB Menu


CASE 2: lastsaldo# = 0: GOSUB impricaja: GOSUB Menu
CASE 0: SHELL "Mode Con: LINES=25": GOSUB Inicio
CASE 4: lastsaldo# = 0: GOSUB porCta: GOSUB Saldo: SLEEP 10: GOSUB Menu 'se sac• gosub prtpan
CASE ELSE: GOSUB NoValor: GOSUB Menu                                    'para que no se clave
END SELECT
'------------------------------ fin del menu ------------------------------
agrega:
GOSUB MostrarC
SLEEP 2
OPEN "CAJAREG1.REG" FOR RANDOM AS #1 LEN = LEN(Caja)
COLOR 7
PRINT "UD. VA A PROCEDER A LLENAR EL ULTIMO DE LOS REGISTROS MOSTRADOS"
COLOR 5
INPUT "DESCRIPCION RESUMIDA DEL EVENTO:"; Caja.MOTIVO
INPUT "MONTO:(Con el signo menos <-> si es Gasto o Sal. de Dinero) "; Caja.Monto
INPUT "N§ COMPROBANTE: "; Caja.Recibo
Caja.Fecha = DATE$
PUT #1, (Ultimo%), Caja
CLOSE #1
RETURN
'------------------------------ fin del agrega -------------------------
MostrarC:
CLS
OPEN "CAJAREG1.REG" FOR RANDOM AS #1 LEN = LEN(Caja)
k% = 1
DO
GET #1, k%, Caja
PRINT USING "Û ### ³                                      ³ #### º ######.## º          Û"; k%; Caja.MOTIVO; Caja.Recibo; Caja.Monto; Caja.Fecha
PRINT "Û-----³----------------------------------------³------º-----------º------------Û"
lastsaldo# = lastsaldo# + Caja.Monto
Ultimo% = k%
k% = k% + 1
LOOP WHILE NOT EOF(1)
CLOSE #1
RETURN
'------------------------------fin del mostrarc -----------------------------
impricaja:
GOSUB MostrarC
GOSUB Saldo
lastsaldo# = 0
OPEN "CAJAREG1.REG" FOR RANDOM AS #1 LEN = LEN(Caja)
k% = 1
LPRINT " ####### COPIA DEL RESUMEN DE ACTIVIDADES LIBRO CAJA HASTA "; Fecha$; " #######"
DO
GET #1, k%, Caja
IF Caja.Monto = 0 THEN
LPRINT "Û_____________________________________________________________________________Û"
ELSE
LPRINT USING "Û ### ³                                      ³ #### º ######.## º         Û"; k%; Caja.MOTIVO; Caja.Recibo; Caja.Monto; Caja.Fecha
LPRINT "Û-----³----------------------------------------³------º-----------º-----------Û"
END IF
lastsaldo# = lastsaldo# + Caja.Monto
k% = k% + 1
LOOP WHILE NOT EOF(1)
CLOSE #1
LPRINT "Û                                                ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»          Û"
LPRINT "Û EL SALDO DE LAS OPERACIONES REGISTRADAS ES:þþ>"; USING " º    +######.##   º          Û"; lastsaldo#
LPRINT "Û                                                ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ          Û"
LPRINT "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
RETURN
'------------------------------fin del mostrarc -----------------------------
Saldo:
PRINT "Û                                                 ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»          Û"
PRINT "Û  EL SALDO DE LAS OPERACIONES REGISTRADAS ES:þþ>"; USING " º    +######.##   º          Û"; lastsaldo#
COLOR 0, 7
PRINT "Û                                                 ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ          Û"
COLOR 7, 1
RETURN
'------------------------------fin del SALDO    -----------------------------
porCta:
CLS
INPUT "INGRESE EL NUMERO DE CTA DEL QUE QUIERE REGISTROS: ", lacta%
CLS
PRINT "********REGISTROS DE CAJA GENERAL DE LA CTA N§: "; lacta%; "; A Fecha:  "; Fecha$; "******"
OPEN "CAJAREG1.REG" FOR RANDOM AS #1 LEN = LEN(Caja)
k% = 1
DO
GET #1, k%, Caja
IF Caja.Recibo = lacta% THEN
PRINT USING "Û ### ³                                      ³ #### º ######.## º          Û"; k%; Caja.MOTIVO; Caja.Recibo; Caja.Monto; Caja.Fecha
PRINT "Û-----³----------------------------------------³------º-----------º------------Û"
lastsaldo# = lastsaldo# + Caja.Monto
END IF
Ultimo% = k%
k% = k% + 1
LOOP WHILE NOT EOF(1)
CLOSE #1
RETURN
END
'------------------------------fin del PORCTA   -----------------------------
Pcase:
DIM be$, ce$
be$ = LEFT$(Palabra$, 1)
ce$ = MID$(Palabra$, 2)
be$ = UCASE$(be$)
ce$ = LCASE$(ce$)
PriMay$ = be$ + ce$
RETURN
'------------------------------fin del Pcase    -----------------------------
BESTIUN:
CLS
COLOR 7, 0
LOCATE 10, 1
PRINT "                                                                               "
PRINT "Faltan Espacios en: Nombres Apellido. ¢  Use<;> Si Ingresa: Apellido; Nombres.."
PRINT "                                                                               "
PLAY "L2N45N65N0"
IF Sicargar% = 1 THEN
Reintento% = Reintento% + 1
IF Reintento% < 3 THEN
    RESUME PARACARGAR
    ON ERROR GOTO failed
    ELSE
    GOTO failed
    END IF
ELSE
COLOR 0, 7
RESUME MENUMODI
ON ERROR GOTO failed
END IF
RETURN
'------------------------------fin del bestiun  -----------------------------
PORNAME:
INPUT "     Nombres y Apellido:", ApeyNomb$
            Agenda.Nombre = OrdenApe(ApeyNomb$)
RETURN
'------------------------------fin del PORNAME  -----------------------------
failed:
BEEP
WIDTH 80, 25
CLS
LOCATE 10, 10
IF ERR = 25 THEN
PRINT "SE HA DETECTADO FALLA DE DISPOSITIVO DE IMPRESION"
ELSEIF ERR = 5 THEN
PRINT "SE HA INTENTADO VIOLAR LA SEGURIDAD DE LA BASE DE DATOS"
ELSEIF ERR = 27 THEN
PRINT "SE HA DETECTADO FALTA DE PAPEL EN LA IMPRESORA   "
ELSEIF ERR = 55 THEN
PRINT "SE HA INTENTADO ABRIR UN ARCHIVO YA ABIERTO      "
ELSE
PRINT "EL PROGRAMA NO PUEDE CORREGIR ESTE ERROR "; ERR
END IF
LOCATE 12, 5
PRINT "PRESIONE LA TECLA:   <ESPACIADORA>   Para SEGUIR con el PROGRAMA"
LOCATE 14, 5
PRINT " ¢:  PRESIONE LA TECLA:    < Enter >   Para  SALIR  del  PROGRAMA"

SLEEP
RESET
RESUME Inicio
RETURN
'===============================================================================
PRESENTA:
        COLOR 7, 0
        PRINT mes$; LTRIM$(STR$(k%));
        COLOR 0, 7
        PRINT " "; Agenda.Nombre, "Domic:"; Agenda.Calle, "ARTICULO :"; Agenda.Articulo, "Tel: "; Agenda.Telef
        PRINT "MOTIVO: "; Agenda.Mas1, "DETALLE: "; Agenda.Mas2
        PRINT "PRESUPUESTO: $ "; Agenda.Presu, "A CUENTA: $ "; Agenda.Pago, "Saldo: $"; Agenda.Presu - Agenda.Pago
RETURN
'===============================================================================
REINICIO:
BEEP: BEEP: BEEP: BEEP
WIDTH 80, 25
COLOR 7, 0
CLS
LOCATE 10, 10
PRINT "SE HA PRESIONADO LA TECLA: < Esc >    Abortando la Operaci¢n"
LOCATE 12, 10
PRINT "PRESIONE LA TECLA:  < ESPACIADOR >  Para  REINICIAR El Programa"
LOCATE 14, 10
PRINT "PRESIONE LA TECLA:    < Enter >   Para  SALIR  Del  Programa"
SLEEP
WIDTH 80, 50

GOTO Comienzo
RETURN

'================================================================================
NoHayPRT:
GOSUB xPRT
RESUME Comienzo

NoNormalizaPRT:
GOSUB xPRT
RESUME Salida

xPRT:
WIDTH 80, 25
COLOR 0, 7
CLS
LOCATE 10, 10
PRINT "EL PROGRAMA HA DETECTADO UNA FALLA EN LA CONEXION DE IMPRESORA"
LOCATE 12, 10
PRINT "VERIFIQUE Y CORRIJA EL PROBLEMA Y VUELVA A INICIAR LA EJECUCION"
LOCATE 14, 5
PRINT "UNA VEZ CORREGIDO EL PROBLEMA: Presione el <Espaciador> para continuar"
BEEP
BEEP
SLEEP
RETURN

FUNCTION Longdate$
'Referencia S bado 1 de enero del 2000 a¤o bisiesto(febrero con 29 d¡as)

Difa% = VAL(RIGHT$(DATE$, 4)) - 2000
Difm% = VAL(LEFT$(DATE$, 2)) - 1

    FOR i% = 1 TO Difa%
        IF i% MOD 4 = 0 THEN
        Bisi% = (1 * INT(Difa% / 4))
        ELSEIF i% = 1 THEN
        Bisi% = 1 'Porque iniciamos en a¤o bisiesto
        ELSE
            Bisi% = 0
        END IF
        IF i% = Difa% THEN

        SELECT CASE Difm%   'cuenta d¡as del a¤o actual
            CASE 0: di% = 0
                    mes$ = "Enero"
            CASE 1: di% = 31
                    mes$ = "Febrero"
            CASE 2: di% = 31 + 28 + Bisi%
                    mes$ = "Marzo"
            CASE 3: di% = 31 + 28 + Bisi% + 31
                    mes$ = "Abril"
            CASE 4: di% = 31 + 28 + Bisi% + 31 + 30
                    mes$ = "Mayo"
            CASE 5: di% = 31 + 28 + Bisi% + 31 + 30 + 31
                    mes$ = "Junio"
            CASE 6: di% = 31 + 28 + Bisi% + 31 + 30 + 31 + 30
                    mes$ = "Julio"
            CASE 7: di% = 31 + 28 + Bisi% + 31 + 30 + 31 + 30 + 31
                    mes$ = "Agosto"
            CASE 8: di% = 31 + 28 + Bisi% + 31 + 30 + 31 + 30 + 31 + 31
                    mes$ = "Septiembre"
            CASE 9: di% = 31 + 28 + Bisi% + 31 + 30 + 31 + 30 + 31 + 31 + 30
                    mes$ = "Octubre"
            CASE 10: di% = 31 + 28 + Bisi% + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31
                    mes$ = "Noviembre"
            CASE 11: di% = 31 + 28 + Bisi% + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30
                    mes$ = "Diciembre"
            'Mes por dias: Ene  Feb         Ma    Abr  May  Jun  Jul  Ago  Set  Oct  Nov
        END SELECT
        Totdi% = Totdi% + di%
        ELSE
        Totdi% = Totdi% + 365 + Bisi%
        END IF
    NEXT i%

Difd% = VAL(MID$(DATE$, 4, 2)) - 1
difdd% = Difd% + Totdi%

IF difdd% MOD 7 = 0 THEN dia$ = "Domingo"
IF (difdd% - 1) MOD 7 = 0 THEN dia$ = "Lunes"
IF (difdd% - 2) MOD 7 = 0 THEN dia$ = "Martes"
IF (difdd% - 3) MOD 7 = 0 THEN dia$ = "Miercoles"
IF (difdd% - 4) MOD 7 = 0 THEN dia$ = "Jueves"
IF (difdd% - 5) MOD 7 = 0 THEN dia$ = "Viernes"
IF (difdd% - 6) MOD 7 = 0 THEN dia$ = "S bado"
Longdate$ = dia$ + ", " + MID$(DATE$, 4, 2) + " de " + mes$ + " del " + RIGHT$(DATE$, 4)
END FUNCTION

FUNCTION OrdenApe$ (xx AS STRING)
ON ERROR GOTO BESTIUN
DIM be$, ce$, c%, d%, cad$, mencad$, e$, g$, h$, i$, j$, k$, a$
a$ = xx
IF LEN(a$) < 5 THEN a$ = "BESTIUN"
IF LEN(a$) > 5 THEN
IF INSTR(a$, ";") <> 0 THEN
c% = INSTR(a$, ";")
mencad$ = LTRIM$(MID$(a$, c% + 1))
d% = INSTR(mencad$, " ")
IF d% > 1 THEN
g$ = LTRIM$(MID$(mencad$, d% + 1))
h$ = LTRIM$(MID$(a$, c% + 1, d% + 1))
Palabra$ = g$
be$ = LEFT$(Palabra$, 1)
ce$ = MID$(Palabra$, 2)
be$ = UCASE$(be$)
ce$ = LCASE$(ce$)
PriMay$ = be$ + ce$
j$ = PriMay$
ELSE
h$ = mencad$
END IF
Palabra$ = h$
be$ = LEFT$(Palabra$, 1)
ce$ = MID$(Palabra$, 2)
be$ = UCASE$(be$)
ce$ = LCASE$(ce$)
PriMay$ = be$ + ce$
i$ = PriMay$
k$ = UCASE$(LEFT$(a$, c% - 1))
cad$ = k$ + "; " + i$ + j$
ELSE
c% = INSTR(a$, " ")
e$ = LTRIM$(MID$(a$, c%))
d% = INSTR(e$, " ")
IF d% > 1 THEN
g$ = UCASE$(MID$(e$, d%))
ELSE
g$ = UCASE$(e$)
END IF
Palabra$ = (LEFT$(a$, c%))
be$ = LEFT$(Palabra$, 1)
ce$ = MID$(Palabra$, 2)
be$ = UCASE$(be$)
ce$ = LCASE$(ce$)
PriMay$ = be$ + ce$
h$ = PriMay$
IF d% > 1 THEN
i$ = LTRIM$(LEFT$(e$, d%))
Palabra$ = i$
be$ = LEFT$(Palabra$, 1)
ce$ = MID$(Palabra$, 2)
be$ = UCASE$(be$)
ce$ = LCASE$(ce$)
PriMay$ = be$ + ce$
k$ = PriMay$
END IF
cad$ = g$ + "; " + h$ + " " + k$
END IF
ELSE
END IF
PRINT "A Guardar Ordenado Como:"; cad$;
OrdenApe$ = cad$
END FUNCTION

Seguir-->

Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis