10 ' ============ ::::::::   VM7ARG :::::::: ==============================
   '
   ' :::::::  ANALISIS DE VENTAS                   
   '                                             MESEROS   
   ' SISTEMAS SIERRA SA DE CV                    REPORTE DE PRODUCTIVIDAD
   ' 06-Oct-2003 0940  creaci¢n inicial del programa
   ' ======================================================================
   
    ' $INCLUDE: 'EDITAL.BAS'
      DIM SHARED V1%(2000),V2%(2000),V3%(2000)
      ON ERROR GOTO ErrorHandler
      WIDTH LPRINT 150                                     ' asigna impresor

      GOSUB 9802                                           ' carga parametros
      IF LEN(ANO$)=2 THEN XANO$=ANO$:IF ANO$<"80" THEN ANO$="20"+ANO$ ELSE ANO$="19"+ANO$

     ' $INCLUDE: 'OPNTOT.BAS'
     ' $INCLUDE: 'OPNTEM.BAS'
     ' $INCLUDE: 'OPNXME.BAS'

     ' $INCLUDE: 'FO1ARG.BAS'
       FV$=FX$

      GOSUB 100:GOTO 110
100   GET#5,1
      IVI$=MID$(VP5$,2,1)                                  ' iva incluido
      IIMP$=MID$(VP5$,4,1)                                 ' importe dif 0
      IVA =CVS(IV5$)                                       ' iva
      UP  =CVS(UM5$)                                       ' ultimo mesero
      MPLU=CVI(PI5$)                                       ' max plus a imprimir
      RETURN

110  GOSUB 350                                             ' VENTAS POR DIA
     CLOSE                                                 ' cierra archivos
     END

350                                                        ' VENTAS ANUALES
     MENU$="Productividad"
     PG=1
     NOM$="Maammdd":REP$="        POR PRODUCTIVIDAD"
     S$=FV$

        FV$=S$:FX$=FV$
        GOSUB 7900
        GOSUB 7850
        DV$=DX$:MV$=MX$:AV$=AX$
        IF LEN(AV$)=2 THEN XAV$=AV$:IF AV$<"80" THEN AV$="20"+AV$ ELSE AV$="19"+AV$
        MID$(NOM$,2,6)=FV$
        MV=VAL(MID$(FV$,3,2))                              ' mes venta
        DV=VAL(MID$(FV$,5,2))                              ' dia venta

        XNOM$=MID$(NOM$,1,LEN(NOM$))+".CSV"

     OPEN "O",#26,XNOM$                                    ' abre archivo CSV
     CLOSE#26                                              ' cierra arch CSV
     KILL XNOM$                                            ' borra arch CSV
     OPEN "O",#26,XNOM$                                    ' abre arch CSV
     PERIODO$="FECHA: "+DIA$+"-"+MES$+"-"+ANO$
     WRITE#26,PERIODO$                                     ' fecha
     WRITE#26,"ANALISIS ANUAL"                             ' titulo reporte
     WRITE#26,TIT$                                         ' empresa
     WRITE#26,"Ventas del ",DV$+"-"+MV$+"-"+AV$
     WRITE#26,REP$                                         ' ventas por mesero
     WRITE#26,"POS","NUME","C","NOMBRE DEL MESERO","$ VTA/DIA","NUME","C","NOMBRE DEL MESERO","$ VTA/MES","DT","NUME", _
              "C","NOMBRE DEL MESERO","$ VTA/A¥O","DT"

                                                           ' CREA INDICE DIA
     GOSUB 1350                                            '    abre archivo indice
     CLOSE#22                                              '    cierra arch indice
     KILL IND$                                             '    borra arch indice
     GOSUB 1350                                            '    abre arch indice
                                                           ' CREA INDICE MENSUAL
     GOSUB 1352                                            '    abre archivo indice
     CLOSE#23                                              '    cierra arch indice
     KILL IND$                                             '    borra arch indice
     GOSUB 1352                                            '    abre arch indice
                                                           ' CREA INDICE ANUAL
     GOSUB 1354                                            '    abre archivo indice
     CLOSE#24                                              '    cierra arch indice
     KILL IND$                                             '    borra arch indice
     GOSUB 1354                                            '    abre arch indice

     KD=0                                                  ' dias
     KM=0                                                  ' dias
     KA=0                                                  ' dias
     FOR NUME=1 TO UP                                      ' PLUs
         GET#2,NUME                                        ' accesa plus
         IF ASC(F2$)=0 THEN                                ' existe plu

                                                           ' DIA
            VID$=VD2$                                      ' venta importe
            VUD$=VU2$                                      ' venta unidades
            ULTDIA=124*(MV-1)+4*(DV-1)+1                   ' ultimo dia en vector de 372 dias
            VIDIA#=CVS(MID$(VID$,ULTDIA,4))                ' venta del dia importe
            VUDIA#=CVS(MID$(VUD$,ULTDIA,4))                ' venta del dia unidades
            IF VIDIA#=0 THEN 1020                          ' importe = cero
               LSET NUM22$=NU2$                            ' numero
               LSET NC22$=SN2$                             ' nombre corto
               LSET NL22$=NL2$                             ' nombre 
               LSET CC22$=CL2$                             ' clasificacion
               LSET CAN22$=MKS$(VUDIA#)                    ' cantidad
               LSET VTA22$=MKD$(VIDIA#)                    ' importe
               LSET DIA22$=MKI$(1)                         ' dias de venta
               LSET CS22$=MKI$(1)                          ' ind de sort
               KD=KD+1                                     ' registro dia
               PUT#22,KD

1020                                                       ' MES
            VIM$=VD2$                                      ' venta importe
            VUM$=VU2$                                      ' venta unidades
            DVM=0                                          ' dias venta mensual
            VIM#=0                                         ' venta mensual
            VUM#=0                                         ' unidades mensual
            FOR XMES=1 TO DV                               ' dias del mes
                MESDIA=124*(MV-1)+4*(XMES-1)+1             ' posicion
                VIMES#=CVS(MID$(VIM$,MESDIA,4))            ' venta del dia importe
                VUMES#=CVS(MID$(VUM$,MESDIA,4))            ' venta del dia unidades
                IF VUMES#=0 THEN 1022                      ' importe = cero
                   VIM#=VIM#+VIMES#                        ' acumula venta mes
                   VUM#=VUM#+VUMES#                        ' acumula unidades mes
                   DVM=DVM+1                               ' dias de venta en el mes
1022        NEXT XMES
            IF VIM#=0 THEN 1030                            ' importe = cero
               LSET NUM23$=NU2$                            ' numero
               LSET NC23$=SN2$                             ' nombre corto
               LSET NL23$=NL2$                             ' nombre del plu
               LSET CC23$=CL2$                             ' clasificacion
               LSET CAN23$=MKS$(VUM#)                      ' cantidad
               LSET VTA23$=MKD$(VIM#)                      ' importe
               LSET DIA23$=MKI$(DVM)                       ' dias de venta
               LSET CS23$=MKI$(1)                          ' ind de sort
               KM=KM+1                                     ' registro mes
               PUT#23,KM

1030                                                       ' ANUAL
            VD$=VD2$                                       ' venta importe
            VU$=VU2$                                       ' venta unidades
            DVA=0                                          ' dias venta mensual
            VIA#=0                                         ' venta mensual
            VUA#=0                                         ' unidades mensual
            UD=31*(MV-1)+DV
            FOR XDIA=1 TO UD                               ' dia
                MESDIA=4*(XDIA-1)+1                        ' posicion
                VIANO#=CVS(MID$(VD$,MESDIA,4))             ' venta del dia importe
                VUANO#=CVS(MID$(VU$,MESDIA,4))             ' venta del dia unidades
                IF VIANO#=0 THEN 1032                      ' importe = cero
                   VIA#=VIA#+VIANO#                        ' acumula venta anual
                   VUA#=VUA#+VUANO#                        ' acumula unidades mes
                   DVA=DVA+1                               ' dias de venta en el a¤o

1032        NEXT XDIA
            IF VIA#=0 THEN 1040                            ' importe = cero
               LSET NUM24$=NU2$                            ' plu
               LSET NC24$=SN2$                             ' nombre corto
               LSET NL24$=NL2$                             ' nombre del plu
               LSET CC24$=CL2$                             ' clasificacion
               LSET CAN24$=MKS$(VUA#)                      ' cantidad
               LSET VTA24$=MKD$(VIA#)                      ' importe
               LSET DIA24$=MKI$(DVA)                       ' dias de venta
               LSET CS24$=MKI$(1)                          ' ind de sort
               KA=KA+1                                     ' registro mes
               PUT#24,KA

         ENDIF
1040 NEXT NUME
     OPC=1:GOSUB 6000                                      ' ve a ordenar
     OPC=2:GOSUB 6000                                      ' ve a ordenar
     OPC=3:GOSUB 6000                                      ' ve a ordenar

                                                           ' CREA INDICE DIA-MES-A¥O
     GOSUB 1356                                            '    abre archivo indice
     CLOSE#25                                              '    cierra arch indice
     KILL IND$                                             '    borra arch indice
     GOSUB 1356                                            '    abre arch indice
     TCAD#=0:TCAM#=0:TCAA#=0                               ' cantidad
     TVTD#=0:TVTM#=0:TVTA#=0                               ' importe
     FOR I=1 TO KA
         GET#24,I                                          ' accesa a¤o
         NUMA$=NUM24$                                      ' numero
         IF NL24$=SPACE$(24) THEN
            NL$=NC24$+SPACE$(16)
         ELSE
            NL$=NL24$
         ENDIF
         NLA$=NL$                                          ' nombre largo
         NCA$=NC24$                                        ' nombre corto
         CCA$=CC24$                                        ' clasificacion
         CAA#=CVS(CAN24$)                                  ' cantidad
         VTA#=CVD(VTA24$)                                  ' venta
         DAA=CVI(DIA24$)                                   ' dias
         TCAA#=TCAA#+CAA#
         TVTA#=TVTA#+VTA#
         IF I<=KM THEN
            GET#23,I                                       ' accesa mes
            NUMM$=NUM23$                                   ' numero
            IF NL23$=SPACE$(24) THEN
               NL$=NC23$+SPACE$(16)
            ELSE
               NL$=NL23$
            ENDIF
            NLM$=NL$                                       ' nombre largo
            NCM$=NC23$                                     ' nombre corto
            CCM$=CC23$                                     ' clasificacion
            CAM#=CVS(CAN23$)                               ' cantidad
            VTM#=CVD(VTA23$)                               ' venta
            DAM=CVI(DIA23$)                                ' dias
            TCAM#=TCAM#+CAM#
            TVTM#=TVTM#+VTM#
         ENDIF
         IF I<=KD THEN
            GET#22,I                                       ' accesa dia
            NUMD$=NUM22$                                   ' plu
            IF NL22$=SPACE$(24) THEN
               NL$=NC22$+SPACE$(16)
            ELSE
               NL$=NL22$
            ENDIF
            NLD$=NL$                                       ' nombre largo
            NCD$=NC22$                                     ' nombre corto
            CCD$=CC22$                                     ' clasificacion
            CAD#=CVS(CAN22$)                               ' cantidad
            VTD#=CVD(VTA22$)                               ' venta
            DAD=CVI(DIA22$)                                ' dias
            TCAD#=TCAD#+CAD#
            TVTD#=TVTD#+VTD#
         ENDIF
         LSET PO25$=MKI$(I)                                ' posicion
                                                           ' DIA
         IF I<=KD THEN 
            LSET NUD25$=NUMD$                              ' numero
            LSET NCD25$=NCD$                               ' nombre corto
            LSET NLD25$=NLD$                               ' nombre largo
            LSET CCD25$=CCD$                               ' clasificacion
            LSET CAD25$=MKS$(CAD#)                         ' cantidad
            LSET VTD25$=MKD$(VTD#)                         ' venta
            LSET DAD25$=MKI$(1)                            ' dias
         ELSE
            LSET NUD25$=SPACE$(5)                          ' plu
            LSET NCD25$=SPACE$(8)                          ' nombre corto
            LSET NLD25$=SPACE$(24)                         ' nombre largo
            LSET CCD25$=SPACE$(1)                          ' clasificacion
            LSET CAD25$=MKS$(0)                            ' cantidad
            LSET VTD25$=MKD$(0)                            ' venta
            LSET DAD25$=MKI$(0)                            ' dias
         ENDIF
                                                           ' MES
         IF I<=KM THEN
            LSET NUM25$=NUMM$                              ' plu
            LSET NCM25$=NCM$                               ' nombre corto
            LSET NLM25$=NLM$                               ' nombre largo
            LSET CCM25$=CCM$                               ' clasificacion
            LSET CAM25$=MKS$(CAM#)                         ' cantidad
            LSET VTM25$=MKD$(VTM#)                         ' venta
            LSET DAM25$=MKI$(DAM)                          ' dias
         ELSE
            LSET NUM25$=SPACE$(5)                          ' plu
            LSET NCM25$=SPACE$(8)                          ' nombre corto
            LSET NLM25$=SPACE$(24)                         ' nombre largo
            LSET CCM25$=SPACE$(1)                          ' clasificacion
            LSET CAM25$=MKS$(0)                            ' cantidad
            LSET VTM25$=MKD$(0)                            ' venta
            LSET DAM25$=MKI$(DAM)                          ' dias
         ENDIF

                                                           ' A¥O
         IF I<=KA THEN 
            LSET NUA25$=NUMA$                              ' numero
            LSET NCA25$=NCA$                               ' nombre corto
            LSET NLA25$=NLA$                               ' nombre largo
            LSET CCA25$=CCA$                               ' clasificacion
            LSET CAA25$=MKS$(CAA#)                         ' cantidad
            LSET VTA25$=MKD$(VTA#)                         ' venta
            LSET DAA25$=MKI$(DAA)                          ' dias
         ELSE
            LSET NUA25$=SPACE$(5)                          ' plu
            LSET NCA25$=SPACE$(8)                          ' nombre corto
            LSET NLA25$=SPACE$(24)                         ' nombre largo
            LSET CCA25$=SPACE$(1)                          ' clasificacion
            LSET CAA25$=MKS$(0)                            ' cantidad
            LSET VTA25$=MKD$(0)                            ' venta
            LSET DAA25$=MKI$(0)                            ' dias
         ENDIF

         PUT#25,I

         IF I<=KD THEN
            WRITE#26,I,NUMD$,CCD$,NLD$,VTD#,NUMM$,CCM$,NLM$,VTM#,DAM,NUMA$,CCA$,NLA$,VTA#,DAA
         ELSE
            IF I<=KM THEN
               WRITE#26,I," "," "," "," ",NUMM$,CCM$,NLM$,VTM#,DAM,NUMA$,CCA$,NLA$,VTA#,DAA
            ELSE
               WRITE#26,I," "," "," "," "," "," "," "," "," ",NUMA$,CCA$,NLA$,VTA#,DAA
            ENDIF
         ENDIF
     NEXT I

     WRITE#26,"ANUAL","","","","","","","","","","","",""
     WRITE#26, I,NUMD$,CCD$,NLD$,VTD#,NUMM$,CCM$,NLM$,VTM#,DAM,NUMA$,CCA$,NLA$,VTA#,DAA
     WRITE#26," "," ",KD,TCAD#,TVTD#," ",KM,TCAM#,TVTM#," "," ",KA,TCAA#,TVTA#," "

     RECCNT=KA
     GOSUB 2010
     RETURN

1350 IND$="C:"+"D09IND.ARG"
     ' $INCLUDE: 'O12ARG.BAS'
     RETURN

1352 IND$="C:"+"M09IND.ARG"
     ' $INCLUDE: 'O13ARG.BAS'
     RETURN

1354 IND$="C:"+"A09IND.ARG"
     ' $INCLUDE: 'O14ARG.BAS'
     RETURN

1356 IND$="C:"+"PROIND.ARG"
     ' $INCLUDE: 'O15ARG.BAS'
     RETURN

2000 LT$=TIT$:LG=77:GOSUB 8700                         ' posicion titulo
     LPRINT CHR$(27);CHR$(33);CHR$(8);                 ' normal
     LPRINT STRING$(77,205);:LPRINT CHR$(27);CHR$(33);CHR$(0); ' linea
     LPRINT TAB(02);"FECHA: ";DIA$;"-";MES$;"-";ANO$;  ' fecha
     LPRINT TAB(69);:LPRINT USING "HOJA: ###";PG       ' hoja
     LPRINT CHR$(27);CHR$(33);CHR$(40);:LPRINT TAB(13);"VENTAS POR MESERO" ' reporte
     LPRINT CHR$(27);CHR$(33);CHR$(0);:LPRINT TAB(IT);TIT$
     LPRINT TAB(02);"SISTEMA ARGUS";
     LPRINT TAB(27);"Ventas del ";DV$;"-";MV$;"-";AV$;
     LPRINT TAB(52);REP$;
     LPRINT CHR$(27);CHR$(33);CHR$(4);" "
     '                1         2         3         4         5         6         7         8         9        10        11        12        13
     '       123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012
     LPRINT "ÕÍÍÍÑÍÍÍÍÑÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÑÍÍÍÍÑÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÑÍÍÑÍÍÍÍÑÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÑÍÍÍ¸"
     LPRINT "³POS³NUME³C³    NOMBRE     ³ CANT ³$ VTA/DIA³NUME³C³    NOMBRE     ³ CANT ³$ VTA/MES³DT³NUME³C³    NOMBRE     ³ CANT ³$ VTA/A¥O³ DT³"
     LPRINT "ÀÄÄÄÅÄÄÄÄÁÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÅÄÄÄÄÁÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÁÄÄÅÄÄÄÄÁÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÁÄÄÄÙ"
     '        999 9999 9 xxxxxxxxxxxxxxx 999999 9,999,999 9999 9 xxxxxxxxxxxxxxx 999999 9,999,999 99 9999 9 xxxxxxxxxxxxxxx 999999 9,999,999 999
     RETURN

2010 TT=0                                              
     IND=0                                             
     TOTD#=0:TOTM#=0:TOTA#=0
     TOTUD#=0:TOTUM#=0:TOTUA#=0
     POSI=0:VZA=0:VZM=0:VZD=0
     IF MPLU=0 THEN MPLU=KA
     FOR I=1 TO MPLU
         GET#25,I
         IND=1
         GOSUB 2400                                        ' verifica linea
         LPRINT CHR$(27);CHR$(33);CHR$(4);
         LPRINT TAB(003) USING "###";I;                    ' posicion

                                                           ' DIA
         IF I<=KD THEN
            LPRINT TAB(007);NUD25$;                        ' numero
            LPRINT TAB(012);CCD25$;                        ' clasificacion
            LPRINT TAB(014);MID$(NLD25$,1,15);             ' nombre
            LPRINT TAB(029) USING "#######";CVS(CAD25$);   ' cantidad
            IF CVD(VTD25$)>9999999 THEN
               LPRINT TAB(036) USING "##########";CVD(VTD25$); ' importe
            ELSE
               LPRINT TAB(036) USING "##,###,###";CVD(VTD25$); ' importe
            ENDIF
         ELSE
            LPRINT TAB(007);SPACE$(40);
         ENDIF
                                                           ' MES
         IF I<=KM THEN
            LPRINT TAB(047);NUM25$;                        ' numero
            LPRINT TAB(052);CCM25$;                        ' clasificacion
            LPRINT TAB(054);MID$(NLM25$,1,15);             ' nombre
            LPRINT TAB(069) USING "#######";CVS(CAM25$);   ' cantidad
            IF CVD(VTM25$)>9999999 THEN
               LPRINT TAB(076) USING "##########";CVD(VTM25$); ' importe
            ELSE
               LPRINT TAB(076) USING "##,###,###";CVD(VTM25$); ' importe
            ENDIF
            LPRINT TAB(087) USING "##";CVI(DAM25$);        ' dias de venta
         ELSE
            LPRINT TAB(047);SPACE$(42);
         ENDIF
                                                           ' ANUAL
         LPRINT TAB(090);NUA25$;                           ' numero
         LPRINT TAB(095);CCA25$;                           ' clasificacion
         LPRINT TAB(097);MID$(NLA25$,1,15);                ' nombre
         LPRINT TAB(112) USING "#######";CVS(CAA25$);      ' cantidad
         IF CVD(VTA25$)>9999999 THEN
            LPRINT TAB(119) USING "##########";CVD(VTA25$); ' importe
         ELSE
            LPRINT TAB(119) USING "##,###,###";CVD(VTA25$); ' importe
         ENDIF
         LPRINT TAB(130) USING "###";CVI(DAA25$)           ' dias venta anual

     NEXT I
     IF IND=0 THEN RETURN                                  ' no enc registros
        LPRINT CHR$(27);CHR$(33);CHR$(20);
        LPRINT TAB(13);"TOTALES:";
        LPRINT TAB(025) USING "### #######";KD;TCAD#;       ' DIA
        IF TVTD#>9999999 THEN
           LPRINT TAB(036) USING "##########";TVTD#;
        ELSE
           LPRINT TAB(036) USING "##,###,###";TVTD#;
        ENDIF

        LPRINT TAB(064) USING "### ########";KM;TCAM#;     ' MES
        IF TOTM#>9999999 THEN
           LPRINT TAB(076) USING "##########";TVTM#;
        ELSE
           LPRINT TAB(076) USING "##,###,###";TVTM#;
        ENDIF

        LPRINT TAB(106) USING "### #########";KA;TCAA#;    ' ANUAL
        IF TOTA#>9999999 THEN
           LPRINT TAB(119) USING "##########";TVTA#
        ELSE
           LPRINT TAB(119) USING "##,###,###";TVTA#
        ENDIF

        LPRINT CHR$(27);CHR$(33);CHR$(4);" "
        JJ=JJ+2

        GOSUB 2012
        GOTO 2014
2012       KONTDIA=0
           PRIMERD=0
           FOR XDIA=1 TO 31*(MV-1)+DV                      ' dias
               GET#1,XDIA                                  ' accesa
               VD$=VD1$                                    ' ventas del dia
               VD#=0
               FOR L=1 TO 9                                ' localizacion
                   FOR C=1 TO 8                            ' categoria
                       VD#=VD#+CVD(MID$(VD$,64*(L-1)+8*(C-1)+1,8)) ' acumula
                   NEXT C
               NEXT L
               IF VD#<>0 THEN
                  KONTDIA=KONTDIA+1                        ' dias de venta
                  IF PRIMERD=0 THEN
                     PRIMERD=XDIA
                  ENDIF
               ENDIF
           NEXT XDIA
           RETURN

2014    MESINI=INT((PRIMERD+30)/31)                        ' mes inicial
        DIAINI=PRIMERD-(31*(MESINI-1))
        DIAINI$=STR$(DIAINI)                               ' dia inicial
        POSI=MESINI
        IF POSI<>0 THEN
           GOSUB 7851                                      ' calcula mes
           MESINI$=MX$
        ELSE
           MESINI$="   "
        ENDIF
        LPRINT TAB(13);"Informaci¢n desde el ";DIAINI$;"-";MESINI$;"-";ANO$;".  ";:LPRINT USING "### Dias de venta registrados.";KONTDIA
        JJ=JJ+1

     IF TPG=1 THEN CC=66-8-JJ ELSE CC=65-8-JJ
     FOR I=1 TO CC:LPRINT:NEXT I
     RETURN

2400 IF BH=0 THEN BH=1:GOTO 2404
     IF JJ<50 THEN JJ=JJ+1:RETURN                          ' imprime reg
     LPRINT CHR$(12)                                       ' brinca hoja
2404 PG=PG+1:TPG=TPG+1                                     ' increm hoja
     GOSUB 2000                                            ' impr encabezado
     JJ=1                                                  ' regresa cont a 1
     RETURN

5000 AP%=VARPTR(V1%(1)):CALL SAVESCRN(1, AP%):RETURN
5002 AP%=VARPTR(V1%(1)):CALL RESTSCRN(1, AP%):RETURN


6000                                                       ' ORDENAR (SORT)
     IF OPC=1 THEN
        PLC$="C:"+"D09IND.ARG"                             ' indice
     ELSE
        IF OPC=2 THEN
           PLC$="C:"+"M09IND.ARG"                          ' indice
        ELSE
           PLC$="C:"+"A09IND.ARG"                          ' indice
        ENDIF
     ENDIF
     CMND$="2\1\0\0\"+PLC$+"\"+PLC$+"\0\53\N\N\0\42\8\D\D\38\4\D\S\0\Y\D\52\2\I\E\0\0"
     IF OPC=1 THEN
        CLOSE#22
     ELSE
        IF OPC=2 THEN
           CLOSE#23
        ELSE
           CLOSE#24
        ENDIF
     ENDIF
     SLVN$="1"
     CALL SORTMC(CMND$,SORTERR%,RECCNT%)
     RECCNT=RECCNT%
     IF RECCNT<0 THEN
        RECCNT=RECCNT+65536
     ENDIF
     IF SORTERR%=0 THEN
        IF OPC=1 THEN
           GOSUB 1350
        ELSE
           IF OPC=2 THEN
              GOSUB 1352
           ELSE
              GOSUB 1354
           ENDIF
        ENDIF
        RETURN
     ENDIF
     PRINT
     PRINT "*** ERROR AL ORDENAR ARCHIVO INDICE ...VERFIFIQUE QUE HAYA ESPACIO SUFICIENTE";SORTERR%
     CLOSE:END

6999 ' $INCLUDE: 'R40GRL.BAS'
     ' $INCLUDE: 'LEFARG.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
