10 ' ============ ::::::::   GENARG   :::::::: ===========================
   '
   ' :::::::  ANALISIS DE VENTAS
   '
   ' SISTEMAS SIERRA SA DE CV               GENERACION DE ARCHIVOS
   ' 09-JUN-2003  0750  creaci¢n inicial del programa
   ' ======================================================================

    ' $INCLUDE: 'EDITAL.BAS'
      DIM SHARED V1%(2000),V2%(2000),V3%(2000)
      ON ERROR GOTO ErrorHandler

     MM  =750                                              ' maximo de meseros
     MPLU=3000                                             ' maximo de plus

     GOSUB 350                                             ' GENERA ARCHIVOS
340  CLOSE:END

350                                                        ' ALTA DE INSUMOS
       COLOR 7,0
       CLS

       OPEN "GENERA.ARG" FOR RANDOM ACCESS READ WRITE SHARED AS #1 LEN=1 ' STATUS GENERA ARCHIVOS
       FIELD#1,1AS S1$
       GET#1,1
       STA$=S1$
       IF STA$="1" THEN                                    ' ya fue generada
          BEEP
       PR=07:PC=28:NR=05:NC=23:GOSUB 9981
          COLOR 15,7:LOCATE PR+1,PC+2:PRINT "CUIDADO: La base de"
                     LOCATE PR+2,PC+2:PRINT "datos ya fu‚ creada"
                     LOCATE PR+4,PC+9:PRINT "C=crear"
          COLOR  0,7:LOCATE PR+1,PC+2:PRINT "CUIDADO:"
          COLOR 16,15:LOCATE PR+4,PC+9:PRINT "C";:W$=INPUT$(1)
          IF W$<>"C" AND W$<>"c" THEN                      ' crear
             COLOR 4,7:LOCATE PR+5,PC+2:PRINT "PROCESO CANCELADO..."
             RETURN
          ENDIF
       ENDIF
       LSET S1$="1"                                        ' generados
       PUT#1,1
       CLOSE#1

       PR=07:PC=28:NR=05:NC=23:GOSUB 9981
       COLOR 0,7
          LOCATE PR+1,PC+2:PRINT "ESTADISTICA DE VENTAS"
       COLOR 15,7
          LOCATE PR+2,PC+2:PRINT "Genera base de datos"
       COLOR 0,7
          LOCATE PR+4,PC+3:PRINT "Archivo"
          LOCATE PR+5,PC+3:PRINT "Avance"

       V1488$=SPACE$(1488)
       FOR I=1 TO 372
           MID$(V1488$,4*(I-1)+1,4)=MKS$(0)
       NEXT I
       V744$=SPACE$(744)
       FOR I=1 TO 372
           MID$(V744$,2*(I-1)+1,2)=MKI$(0)
       NEXT I
       V576$=SPACE$(576)
       FOR I=1 TO 72
           MID$(V576$,8*(I-1)+1,8)=MKD$(0)
       NEXT I
       V288$=SPACE$(288)
       FOR I=1 TO 72
           MID$(V288$,4*(I-1)+1,4)=MKS$(0)
       NEXT I
       V72$=SPACE$(72)
       FOR I=1 TO 9
           MID$(V72$,8*(I-1)+1,8)=MKD$(0)
       NEXT I
       V36$=SPACE$(36)
       FOR I=1 TO 9
           MID$(V36$,4*(I-1)+1,4)=MKS$(0)
       NEXT I
       V32$=SPACE$(32)
       FOR I=1 TO 8
           MID$(V32$,4*(I-1)+1,4)=MKS$(0)
       NEXT I
       V18$=SPACE$(18)
       FOR I=1 TO 9
           MID$(V18$,2*(I-1)+1,2)=MKI$(0)
       NEXT I
       V16$=SPACE$(16)
       FOR I=1 TO 8
           MID$(V16$,2*(I-1)+1,2)=MKI$(0)
       NEXT I

     ' $INCLUDE: 'OPNTOT.BAS'
       COLOR 15,7:LOCATE PR+4,PC+11:PRINT "VTATOT.ARG"
       FOR I=1 TO 372
           COLOR 15,7:LOCATE PR+5,PC+15:PRINT USING "###.#%";(I/372)*100
           LSET  F1$=CHR$(255)                             ' status alta/baja
           LSET VD1$=V576$                                 ' vector de ventas en importe
           LSET VU1$=V288$                                 ' vector de ventas en unidades
           LSET AD1$=V72$                                  ' vector de ajustes en importe
           LSET IV1$=V72$                                  ' vector de ivas en importe
           LSET CI1$=V576$                                 ' vector de cancel en importe
           LSET CU1$=V288$                                 ' vector de cancel en unidades
           LSET NC1$=V18$                                  ' vector de cuentas
           LSET NT1$=V18$                                  ' vector de notas
           LSET NP1$=V18$                                  ' vector de personas
           LSET DI1$=SPACE$(121)                           ' disponible
           PUT#1,I
       NEXT I
       CLOSE#1

     ' $INCLUDE: 'OPNXME.BAS'
       COLOR 15,7:LOCATE PR+4,PC+11:PRINT "VTAXME.ARG"
       FOR I=1 TO MM
           COLOR 15,7:LOCATE PR+5,PC+15:PRINT USING "###.#%";(I/MM)*100
           LSET  F2$=CHR$(255)                             ' status alta/baja
           LSET NU2$=SPACE$(4)                             ' numero de mesero
           LSET NL2$=SPACE$(24)                            ' nombre largo
           LSET SN2$=SPACE$(8)                             ' nombre corto
           LSET CL2$=SPACE$(1)                             ' clasificacion
           LSET VD2$=V1488$                                ' vector ventas del dia
           LSET VU2$=V1488$                                ' vector venta en unidades
           LSET NP2$=V744$                                 ' vector clientes atendidos
           LSET NC2$=V744$                                 ' vector cuentas atendidas
           LSET GP2$=MKI$(0)                               ' grupo al que pertenece
           LSET CI2$=V1488$                                ' vector cancel del dia
           LSET CU2$=V1488$                                ' vector cancel en unidades
           LSET DI2$=SPACE$(72)                           ' disponible
           PUT#2,I
       NEXT I
       CLOSE#2

     ' $INCLUDE: 'OPNPLU.BAS'
       COLOR 15,7:LOCATE PR+4,PC+11:PRINT "VTAPLU.ARG"
       FOR I=1 TO MPLU
           COLOR 15,7:LOCATE PR+5,PC+15:PRINT USING "###.#%";(I/MPLU)*100
           LSET  F3$=CHR$(255)                             ' status alta/baja
           LSET PL3$=SPACE$(5)                             ' plu 
           LSET NL3$=SPACE$(24)                            ' nombre largo
           LSET NC3$=SPACE$(8)                             ' nombre corto
           LSET VI3$=V1488$                                ' ventas del dia
           LSET VU3$=V1488$                                ' venta en unidades
           LSET GP3$=MKI$(0)                               ' grupo
           LSET CI3$=V1488$                                ' cancelaciones
           LSET CU3$=V1488$                                ' cancelaciones en unidades
           LSET DI3$=SPACE$(24)                            ' disponible
           PUT#3,I
       NEXT I
       CLOSE#3

     ' $INCLUDE: 'OPNHOR.BAS'
       COLOR 15,7:LOCATE PR+4,PC+11:PRINT "VTAHOR.ARG"
       FOR I=1 TO 24
           COLOR 15,7:LOCATE PR+5,PC+15:PRINT USING "###.#%";(I/24)*100
           LSET  F4$=CHR$(255)                             ' status alta/baja
           LSET VD4$=V1488$                                ' vector de ventas en importe
           LSET VU4$=V1488$                                ' vector de ventas en unidades
           LSET CI4$=V1488$                                ' vector de cancel en importe
           LSET NP4$=V744$                                 ' vector de personas
           LSET NC4$=V744$                                 ' vector de cuentas
           LSET NT4$=V744$                                 ' vector de notas
           LSET DI4$=SPACE$(7)                             ' disponible
           PUT#4,I
       NEXT I
       CLOSE#4

     ' $INCLUDE: 'OPNHO2.BAS'
       COLOR 15,7:LOCATE PR+4,PC+11:PRINT "VTAHO2.ARG"
       FOR I=1 TO 24*372
           COLOR 15,7:LOCATE PR+5,PC+15:PRINT USING "###.#%";(I/(24*372))*100
           LSET VDL6$=V36$                                 ' vector de ventas en importe por localizacion
           LSET VUL6$=V18$                                 ' vector de ventas en unidades por localizacion
           LSET VDC6$=V32$                                 ' vector de ventas en importe por categoria  
           LSET VUC6$=V16$                                 ' vector de ventas en unidades por categoria
           LSET DI6$=SPACE$(26)                            ' disponible
           PUT#6,I
       NEXT I
       CLOSE#6

       OPEN "EMPRESA.ARG" FOR RANDOM ACCESS READ WRITE SHARED AS #10 LEN=49
       FIELD#10,4AS NUM10$,5AS CVE10$,40AS TIT10$
       GET#10,1
       NUM=VAL(NUM10$)                                     ' licencia
       CVE$=CVE10$                                         ' clave
       TIT$=TIT10$                                         ' empresa
       CLOSE#10

       OPEN "LICARG.ARG" FOR RANDOM ACCESS READ WRITE SHARED AS #29 LEN=2
       FIELD#29,2AS LIC29$
       LSET LIC29$=MKI$(NUM)                               ' licencia
       PUT#29,1                                            ' graba  
       CLOSE#29

       ' SHELL "CD\POS"
       OPEN "CARADC.ARG" FOR RANDOM ACCESS READ WRITE SHARED AS #20 LEN=1
       FIELD#20,1AS CAR20$
       GET#20,1
       CAR$=CAR20$
       CLOSE#20

       VP$=STRING$(20,"0")
       IF CAR$<"C" OR CAR$>"N" THEN
          MID$(VP$,3,1)="C"
       ELSE
          MID$(VP$,3,1)=CAR$
       ENDIF
       MID$(VP$,1,2)="11"

     ' $INCLUDE: 'OPNTEM.BAS'
       COLOR 15,7:LOCATE PR+4,PC+11:PRINT "TEMPLU.ARG"
           LSET VR5$=STRING$(100,"0")                      ' vector de reportes
           '          12345678901234567890
           LSET VP5$=VP$                                   ' vector
           LSET IV5$=MKS$(10)                              ' porcentaje de iva
           LSET AB5$="BBBAABBB"                            ' a y b
           LSET PI5$=MKI$(45)                              ' maximo de plus a imprimir
           LSET EM5$=TIT$                                  ' nombre de la empresa
           LSET PW5$=CVE$                                  ' clave de acceso
           LSET UF5$="0306011200"                          ' ultimo cierre aammddhhmm
           LSET MM5$=MKS$(MM)                              ' maximo de mesero
           LSET UM5$=MKS$(0)                               ' ultimo mesero
           LSET MP5$=MKS$(MPLU)                            ' maximo de plus
           LSET UP5$=MKS$(0)                               ' ultimo plu
           LSET CV5$="SIERR"                               ' clave gerencial
           LSET DI5$=SPACE$(302)                           ' disponible
           PUT#5,1
       CLOSE#5

       OPEN "PLUPRU" FOR RANDOM ACCESS READ WRITE SHARED AS #11 LEN=5
       FIELD#11,5AS X11$
       LSET X11$="POS-B"
       PUT#11,1
       CLOSE#11

       RETURN

6999 ' $INCLUDE: 'R40GRL.BAS'
     ' $INCLUDE: 'VERSFT.BAS'

ErrorHandler:
      IF ERR=70 THEN LOCATE 24,01:COLOR 16,15:PRINT "pd...";:LOCATE 23,2:PRINT "":RESUME
      IF ERR=24 OR ERR=25 OR ERR=27 THEN GOSUB 7510:RESUME
      COLOR 16,15:LOCATE 24,01:PRINT "Error en los datos ";ERR;" Linea ";ERL;". Llame a SIERRA.";:LOCATE 23,2:PRINT "":W$=INPUT$(1):CLOSE:END
