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