Antes de aceptar un código lo dividimos en partes

Código que se ejecuta al presionar la Tecla F2 en el punto de Venta

 Visual Basic |  copy code |? 
001
Sub Main()                                
002
 
003
    If LCase(Articulo) = "_ini" Then
004
       Script.RunProcess "GREENBOXINI", Me, Ambiente
005
       CancelaProceso = True
006
       Exit Sub
007
    End If
008
 
009
    If LCase(Articulo) = "_setup" Then
010
       Script.RunProcess "GREENBOXALTA", Me, Ambiente
011
       CancelaProceso = True
012
       Exit Sub
013
    End If
014
 
015
    If LCase(Articulo) = "_tellerscatalog" Then
016
       Script.RunProcess "GREENBOXCAJEROS", Me, Ambiente
017
       CancelaProceso = True
018
       Exit Sub
019
    End If
020
 
021
    If LCase(Articulo) = "_ta" Then
022
       Script.RunProcess "GREENBOXTIEMPOAIRE", Me, Ambiente
023
       CancelaProceso = True
024
       Exit Sub
025
    End If     
026
 
027
    If LCase(Articulo) = "_tv" Then
028
       Script.RunProcess "GREENBOXVERIFICAR", Me, Ambiente
029
       CancelaProceso = True
030
       Exit Sub
031
    End If     
032
 
033
    If Articulo = "CONSULTA EXISTENCIA" Then
034
       Script.RunForm "CC05", Me, Ambiente,, True
035
       CancelaProceso = True
036
       Exit Sub
037
    End If
038
 
039
    'Set rstArt = CreaRecordSet( "SELECT peso FROM prods WHERE articulo = '" & Articulo & "'", Ambiente.Connection )
040
 
041
    'If Not rstArt.EOF Then
042
    '   Me.Descuento = rstArt("peso")
043
    'End If
044
 
045
    'Call incrementaProducto()
046
 
047
    ' Articulo es una variable que entrega el dato que se capturo en
048
    ' el punto de venta
049
    If Trim( Ucase(Articulo) ) = "ADMISION" Then 
050
 
051
       If Me.Venta = 0 Then
052
          MyMessage "Es necesario capturar al menos de un producto"
053
          CancelaProceso = True
054
          Exit Sub
055
       End If
056
 
057
       Script.RunForm "MIFORMA", Me, Ambiente,  , True
058
       'PlaySound Ambiente.Path & "\sounds\s03.wav"       
059
       CancelaProceso = True
060
    End If
061
 
062
    Me.usuarioRequerido = 0
063
 
064
    If clAt( "VPZ", Articulo ) = 1 Then
065
       Call recuperaVenta()
066
       CancelaProceso = True
067
    End If                 
068
 
069
    If Ucase(Trim(Articulo)) = "EXR" Then
070
       CancelaProceso = True
071
       Script.RunForm "EXISTENCIAREMOTA", Me, Ambiente,, True
072
    End If                   
073
 
074
    Version2005     
075
 
076
    'Call calculaPrecioDecaja()
077
 
078
End Sub  
079
 
080
Sub calculaPrecioDeCaja()
081
    Dim rstClaveAdd          
082
    Dim rstArticulo
083
 
084
    Set rstClaveAdd = CreaRecordSet( "SELECT articulo, cantidad FROM clavesadd WHERE clave = '" & Me.Articulo & "'", Ambiente.Connection )
085
 
086
    If rstClaveAdd.EOF Then 
087
       Exit Sub 
088
    End If
089
 
090
    If rstClaveAdd("cantidad") = 1 Then
091
       Exit Sub
092
    End If
093
 
094
    Set rstArticulo = CreaRecordSet( "SELECT precio3 FROM prods WHERE articulo = '" & Trim(rstClaveAdd("articulo")) & "'", Ambiente.Connection )
095
 
096
    If Not rstArticulo.EOF Then
097
       Me.PrecioEspecial = rstArticulo("precio3")
098
    End If
099
 
100
End Sub                  
101
 
102
Sub recuperaVenta()
103
    Dim rstVenta, nVenta
104
 
105
    nVenta = Val2( Mid( Articulo, 4 ) ) 
106
 
107
    Set rstVenta = CreaRecordSet( _
108
    "SELECT * FROM ventas WHERE venta = " & nVenta, _
109
    Ambiente.Connection )
110
 
111
    If rstVenta.EOF Then
112
       ' El campo 3 despliega los mensajes en el punto de venta
113
       txtFields(3) = "Venta no encontrada"
114
       Exit Sub
115
    End If    
116
 
117
    If rstVenta("estado") <> "PE" Then
118
       txtFields(3) = "Venta no valida"
119
       Exit Sub
120
    End If
121
 
122
    Set Me.rstVenta = rstVenta
123
    Set Me.rstPartidas = CreaRecordSet( _
124
    "SELECT * FROM partvta WHERE venta = " & nVenta, _
125
    Ambiente.Connection )
126
    Me.Venta = nVenta
127
    Me.Modo = "MODIFICACION"
128
    Me.Reload = True
129
    Me.ReiniciaVenta 
130
    Eventos 
131
    Me.CalculaImportes
132
End Sub          
133
 
134
Sub Version2005       
135
    Dim rstEmpleado   
136
    Dim cEmpleado
137
    Dim Query
138
    Dim nPos
139
    Dim cCodigo
140
    Dim cPeso
141
    Dim rstAsistencia                 
142
    Dim Contenido                      
143
 
144
    ' Articulo es una variable que entrega el punto de venta
145
    ' Esto proceso todos los comandos del punto de venta
146
    Call ValidaComando
147
 
148
    'validaNumeroDePartidas              
149
 
150
    If UCase(Trim(Articulo)) = "CENEFASXMARCA" Then
151
       Script.RunForm "CENEFASXMARCA", Me, Ambiente,, True
152
       CancelaProceso = True
153
    End If
154
 
155
    If UCase(Trim(Articulo)) = "CENEFAS" Then
156
       Script.RunForm "CENEFAS", Me, Ambiente,, True
157
       CancelaProceso = True
158
    End If
159
 
160
    If Ucase(Trim(Articulo)) = "BORDADO" Then
161
       Script.RunForm "BORDADO", Me, Ambiente,, True   
162
    End If
163
 
164
    If Ucase(Trim(Articulo)) = "LONAS" Then
165
       Script.RunForm "LONAS", Me, Ambiente,, True   
166
    End If
167
 
168
    If Ucase(Trim(Articulo)) = "ESTAMPADO01" Then
169
       Script.RunForm "ESTAMPADO", Me, Ambiente,, True   
170
    End If
171
 
172
    If Ucase(Trim(Articulo)) = "ESTAMPADO02" Then
173
       Script.RunForm "ESTAMPADO02", Me, Ambiente,, True   
174
    End If
175
 
176
    If Ucase(Trim(Articulo)) = "ESTAMPADO03" Then
177
       Script.RunForm "ESTAMPADO03", Me, Ambiente,, True   
178
    End If
179
 
180
    'SumaCantidades
181
    ' Articulo es una variable publica que contiene el dato que leyo el lector
182
    ' o que tecleo el usuario hasta el momento de presionar un enter
183
    nPos = clAt( "*", Articulo  )
184
 
185
    ' cantidadDeArticulos es una variable publica que indica la cantidad
186
    ' de productos que va a aceptar el punto de venta
187
    If nPos > 0 Then
188
       cantidadDeArticulos = Val2( Mid( Articulo, 1, nPos - 1 ) )
189
       Articulo = Mid( Articulo, nPos + 1 )
190
    End If
191
 
192
    ' Para articulos con peso
193
    If clAt( "ARTICULOPARAPESO", Articulo ) = 1 Then
194
       cCodigo = Mid( Articulo, 3, 5 )
195
       cPeso   = Mid( Articulo, 8 ) 
196
       Articulo = cCodigo
197
       CantidadDeArticulos = (Val2(cPeso) / 10000)
198
    End if                              
199
 
200
    nPos = clAt( "CLI", Articulo )
201
 
202
    ' La varable cancelaProceso termina el flujo de programa interno de MyBusiness
203
    ' Parecido a Exit Sub 
204
    If nPos = 1 Then
205
       txtFields(0) = Mid( Articulo, 4 )
206
       txtFields(4) = "" 
207
       CancelaProceso = True          
208
       ChecaSaldo txtFields(0)
209
       ColocaFoto txtFields(0)       
210
    End If    
211
 
212
    If clAt( "EMP", Articulo ) = 1 Then
213
       cEmpleado = UCase(Mid( Articulo, 4 ))
214
       Set rstEmpleado = CreaRecordSet( "SELECT * FROM empleados WHERE empleado = '" & cEmpleado & "'", Ambiente.Connection )
215
 
216
       If rstEmpleado.EOF Then
217
          txtFields(3) = "Empleado no existe"
218
          cancelaProceso = True
219
          txtFields(4) = ""
220
          PlaySound Ambiente.Path & "\sounds\error.wav"
221
          Exit Sub
222
       End If                           
223
 
224
       'Set rstEmpFecha = CreaRecordSet( "SELECT * FROM asistencia WHERE empleado = '" & cEmpleado & "' AND fecha = " & fechaSQL( Date, Ambiente.Connection ), Ambiente.Connection )
225
 
226
       'If Not rstEmpFecha.EOF Then             
227
       '   txtFields(3) = "Usted ya fue registrado"
228
       '   cancelaProceso = True
229
       '   txtFields(4) = ""
230
       '   PlaySound Ambiente.Path & "\sounds\error.wav"
231
       '   Exit Sub
232
       'End If
233
 
234
       'PlaySound Ambiente.Path & "\sounds\ready.wav"
235
 
236
       Set Query = NewQuery()
237
       Set Query.Connection = Ambiente.Connection
238
 
239
       Query.strState = "INSERT"
240
 
241
       Query.AddField "asistencia", "id", TraeSiguiente( "asistencia", Ambiente.Connection )
242
       Query.AddField "asistencia", "fechahora", Formato( Date, "dd-MM-yyyy" ) & ":" & Formato( Time, "hh:mm:ss" )
243
       Query.AddField "asistencia", "retardo", Retardo( rstEmpleado("horaentrada") )       
244
       Query.AddField "asistencia", "empleado", cEmpleado
245
       Query.AddField "asistencia", "fecha", Date
246
       Query.CreateQuery
247
       Query.Execute       
248
 
249
       txtFields(3) = rstEmpleado("nombre") & " " & Formato( Date, "dd-MM-yyyy" ) & ":" & Formato( Time, "hh:mm:ss" )
250
       CancelaProceso = True
251
       txtFields(4) = ""
252
 
253
       If Not clEmpty( rstEmpleado("imagen") ) Then
254
          CreaHTML "", "<img src='" & Trim(rstEmpleado("imagen")) & "'>"
255
       End If
256
 
257
    End If
258
 
259
    If Ucase(Trim(Articulo)) = "ARTICULOS PROMOCIONALES" Then
260
       Script.RunProcess "GALAXIA", Me.Parent, Ambiente
261
       CancelaProceso = True
262
       txtFields(4) = ""
263
    End If            
264
 
265
    If Mid(UCase(Trim(Articulo)),1,6) = "MONEDA" Then
266
       cambiaMonedaDeLaVenta Trim(Mid( Articulo, 7 ))
267
       cancelaProceso = True
268
    End If                                         
269
    'Call ValidaExistencia()
270
End Sub                    
271
 
272
Sub ValidaExistencia()
273
    Dim rstProd
274
    Set rstProd = CreaRecordSet( "SELECT alm" & Ambiente.Almacen & " FROM prods WHERE articulo = '" & articulo & "'", _
275
    Ambiente.Connection )
276
 
277
    If Not rstProd.EOF Then
278
       If rstProd(0) <= 0 Then
279
          Me.OperacionBloqueada = True
280
          txtFields(3) = "Existencia insuficiente, operación bloqueada" 
281
          CancelaProceso = True                   
282
          PlaySound Ambiente.Path & "\sounds\Existencia.wav"
283
       End If 
284
    End If
285
 
286
End Sub
287
 
288
Sub cambiaMonedaDeLaVenta( cMoneda )
289
    Dim rstVenta, rstMoneda, Query, rstMonedaOriginal
290
 
291
    Set rstVenta = CreaRecordSet( _
292
    "SELECT * FROM ventas WHERE venta = " & Me.Venta, Ambiente.Connection )
293
 
294
    Set rstMoneda = CreaRecordSet( _
295
    "SELECT * FROM monedas WHERE moneda = '" & cMoneda & "'", Ambiente.Connection )
296
 
297
    If Not rstMoneda.EOF Then
298
       Me.Moneda = cMoneda
299
       Me.tipoDeCambio = rstMoneda("tc")        
300
    Else
301
       Exit Sub
302
    End If
303
 
304
    If rstVenta.EOF Then
305
       Exit Sub
306
    End If                        
307
 
308
    If Ucase(Trim(rstVenta("moneda"))) = UCase(Trim(cMoneda)) Then
309
       Exit Sub
310
    End If     
311
 
312
    Ambiente.Connection.Execute _
313
    "UPDATE partvta SET precio = precio * " & FormatoDecimal( rstVenta("tipo_cam") ) & ", " & _
314
    "preciobase = preciobase * " & FormatoDecimal( rstVenta("tipo_cam") ) & ", " & _
315
    "donativo = donativo * " & FormatoDecimal( rstVenta("tipo_cam") ) & " " & _
316
    "WHERE venta = " & Me.Venta
317
 
318
    Ambiente.Connection.Execute _
319
    "UPDATE partvta SET precio = precio / " & FormatoDecimal( Me.tipoDeCambio ) & ", " & _
320
    "preciobase = preciobase / " & FormatoDecimal( Me.tipoDeCambio ) & ", " & _ 
321
    "donativo = donativo / " & FormatoDecimal( Me.tipoDeCambio ) & " " & _
322
    "WHERE venta = " & Me.Venta
323
 
324
    Set Query = NewQuery()
325
    Set Query.Connection = Ambiente.Connection          
326
 
327
    Query.Reset
328
    Query.strState = "UPDATE"
329
    Query.Condition = "venta = " & Me.Venta
330
    Query.AddField "ventas", "moneda", Me.Moneda
331
    Query.AddField "ventas", "tipo_cam", Me.tipoDeCambio
332
    Query.CreateQuery
333
    Query.Execute
334
 
335
    Parent.ReLoad = True
336
    ReiniciaVenta 
337
    CalculaImportes       
338
 
339
End Sub
340
 
341
Sub ChecaSaldo( Cliente ) 
342
    Dim rstSaldo, rstCobranza, Html
343
 
344
    Set rstSaldo = CreaRecordSet( "SELECT * FROM clients WHERE cliente = '" & Cliente & "'", _
345
        Ambiente.Connection )
346
 
347
    If rstSaldo.EOF Then
348
       Exit Sub
349
    End If
350
 
351
    CreaHTML "",""
352
 
353
    If rstSaldo("Saldo") <= 0 Then
354
       Exit Sub
355
    End If    
356
 
357
    PlaySound "c:\saldo.wav"
358
 
359
    Set rstCobranza = CreaRecordSet( _
360
    "SELECT * FROM cobranza WHERE cliente = '" & cliente & "' AND saldo > 0", _
361
    Ambiente.Connection )
362
 
363
    html = ""   
364
 
365
    While Not rstCobranza.EOF
366
          html = html & "<p>"
367
          html = html & "Documento " & rstCobranza("tipo_doc") & _
368
          rstCobranza("no_referen") & " " & rstCobranza("Saldo")
369
          html = html & "</p>"
370
          rstCobranza.MoveNext
371
    Wend          
372
 
373
    CreaHTML "",(Html)
374
 
375
End Sub
376
 
377
Function Retardo( strHora )
378
    Dim intMinutos 
379
    Dim intMinutosActual 
380
    Dim nPos
381
    Dim strHoraActual 
382
    Dim tolerancia
383
 
384
    tolerancia = 10
385
 
386
    nPos = clAt( ":", strHora )    
387
    intMinutos = Val2(  Mid( strHora, 1, nPos - 1)  ) * 60
388
    intMinutos = intMinutos + Val2( Mid( strHora, nPos + 1 ) )
389
 
390
    strHoraActual = Formato( Time(), "hh:mm" )
391
    nPos = clAt( ":", strHoraActual )    
392
    intMinutosActual = Val2(  Mid( strHoraActual, 1, nPos - 1)  ) * 60
393
    intMinutosActual = intMinutosActual + Val2( Mid( strHoraActual, nPos + 1 ) )
394
 
395
    If intMinutosActual > (intMinutos + tolerancia) Then       
396
       Retardo = intMinutosActual - intMinutos
397
    Else
398
       Retardo = 0
399
    End If
400
 
401
End Function
402
 
403
Sub ColocaFoto( cCliente )
404
    Dim cHtml               
405
 
406
    cHtml = "<img src=c:\fotos\" & Trim( cCliente ) & ".jpg width=100%>"
407
    CreaHTML "", (cHtml)
408
 
409
End Sub
410
 
411
Sub SumaCantidades()
412
 
413
    ' Buscamos si el artículo ya esta en el GRID 
414
    For n = 1 to fg2.Rows - 1 
415
        If clEmpty( fg2.TextMatrix( n, 0 ) ) Then 
416
           Exit For 
417
        End If 
418
 
419
		Set rstArtAux = Rst("SELECT tiempoaire FROM prods WHERE articulo = '" & Trim(Articulo) & "'", Ambiente.Connection)     
420
 
421
        If Trim(fg2.TextMatrix( n, 0 )) = Trim(Articulo) AND Val2(rstArtAux("tiempoaire")) <> 0 Then 
422
           Ambiente.Connection.Execute "UPDATE partvta SET cantidad = cantidad + 1 WHERE id_salida = " & fg2.TextMatrix( n, 7 ) 
423
           fg2.TextMatrix( n, 1 ) = Val2( fg2.TextMatrix( n, 1 ) ) + 1 
424
           txtFields(4) = "" 
425
           CancelaProceso = True
426
           Exit Sub
427
        End If 
428
    Next
429
 
430
End Sub
431
 
432
Sub validaNumeroDePartidas
433
    Dim rstPartidas
434
 
435
    Set rstPartidas = CreaRecordSet( _
436
        "SELECT COUNT( * ) FROM partvta WHERE venta = " & Me.Venta, _
437
        Ambiente.Connection )
438
 
439
    If Val2( rstPartidas(0) ) >= 4 Then
440
       MyMessage "No es posible capturar mas de 4 partidas"
441
       CancelaProceso = True
442
    End If    
443
 
444
End Sub
445
 
446
Sub ValidaComando()
447
 
448
    If clAt( "/", Articulo ) > 0 And clAt( "//", Articulo ) = 0 Then
449
       Call cantidaporPrecio()
450
       Exit Sub
451
    End If
452
 
453
    If Trim(UCase(Articulo)) = "COMPRAS" Then
454
       Set Compras = CreateObject( "MyBCompras.Compras" )
455
       Set Compras.Ambiente = Ambiente
456
       Compras.NuevaCompra True
457
    End If
458
 
459
    If Len( Trim( Articulo ) ) <> 4 Then
460
       Exit Sub
461
    End If
462
 
463
    If clAt( "Z", UCase(Articulo) ) <> 1 Then
464
       Exit Sub
465
    End If
466
 
467
    Select Case UCase(Articulo)
468
           Case "Z001"
469
                Script.RunForm "ALTACLIENTE", Me, Ambiente,, True 
470
           Case "Z002"
471
                Me.OperacionBloqueada = False
472
                txtFields(3) = "Operación Reactivada"
473
           Case "Z003"
474
                Me.FinalizaOperacion
475
           Case "Z004"
476
                Script.RunForm "ALTARAPIDA", Me, Ambiente,, True
477
           Case "Z005"
478
 
479
                If Question(Mensaje(642, Ambiente)) Then
480
                   Me.BorraVenta = True
481
                   Me.FinalizaOperacion
482
                End If
483
 
484
          Case "Z006"
485
 
486
               Me.RecuperaVentaDeCliente
487
 
488
          Case "Z007"
489
 
490
               If txtFields(0).Enabled Then
491
                  txtFields(0).SetFocus
492
               End If
493
 
494
          Case "Z008"
495
 
496
               AplicaDescuento 
497
 
498
          Case "Z009"
499
 
500
               Script.RunProcess "CORTEX", Me, Ambiente
501
 
502
          Case "Z010"
503
 
504
               Script.RunProcess "CORTEZ", Me, Ambiente
505
 
506
          Case "Z011"
507
 
508
               Script.RunForm "PAGOEFECTIVO", Me, Ambiente,, True
509
 
510
          Case "Z012"
511
 
512
               Script.RunForm "COBROENEFECTIVO", Me, Ambiente,, True
513
 
514
          Case "Z013"
515
 
516
               Set rstUsuventas = CreaRecordSet( "SELECT * FROM usuventas WHERE usuario = '" & Ambiente.Uid & "'", Ambiente.Connection )
517
 
518
               If rstUsuventas.EOF Then
519
                  Script.RunForm "DEVOLUCIONES", Me, Ambiente, True
520
                  'Exit Sub
521
               End If
522
 
523
               If Val2( rstUsuventas("devpunto") ) <> 0 Then
524
                  Script.RunForm "DEVOLUCIONES", Me, Ambiente, True
525
                  'Exit Sub              
526
               Else
527
                  MyMessage "No tiene derecho a hacer devoluciones, solicite el permiso con su supervisor" 
528
                  'Exit Sub
529
               End If  
530
 
531
          Case "Z014"
532
 
533
               Script.RunForm "TICKETAFACTURA", Me, Ambiente,, True
534
 
535
          'Case "Z016"
536
          '                                                      
537
          '     Me.ActivaCobranza
538
 
539
          Case "Z015"
540
 
541
               Script.RunProcess "PUNTOV063", Me, Me.Ambiente
542
 
543
          Case "Z016"
544
 
545
               Script.RunForm "RETICKET", Me, Ambiente,, True
546
 
547
          'Case "Z019"
548
          '
549
          '     MyMessage "CONTROL + F12 Editar datos cliente" & vbCrLf & "CONTROL + F7 Editar guión" & vbCrLf & "SHIFT + F3 Colocar cursor en campo repartidor" & vbCrLf & "SHIFT + F4 Alta de repartidor"
550
 
551
          Case "Z017"
552
 
553
               Script.RunForm "FCAJA", Me, Ambiente,, True
554
 
555
          Case "Z018"
556
 
557
               Script.RunForm "CAMBIOUSUARIO", Me, Ambiente,, True 
558
 
559
          'Case "Z022" 
560
          '             
561
          '     Script.RunProcess "VENTASCOLECTOR", Me, Me.Ambiente               
562
 
563
          Case "Z019" 
564
 
565
               Calculadora Ambiente
566
 
567
          Case "Z020"
568
 
569
               Script.RunProcess "ABRECAJON", Me, Me.Ambiente                    
570
 
571
          Case "Z021"
572
 
573
               Script.RunForm "AUXCLIENTS", Parent, Ambiente,, True
574
 
575
          Case "Z022"
576
 
577
               Script.RunProcess "ELIMINAVENTA", Me, Me.Ambiente                    
578
 
579
          Case "Z023"
580
 
581
               Script.RunForm "VENTASOBSERV", Me, Ambiente,, True
582
 
583
          Case "Z024"
584
 
585
               Script.RunForm "VENTASDESC", Me, Ambiente,, True
586
 
587
          Case "Z025"
588
 
589
               Script.RunForm "CAMBIOVALEEFECTIVO", Me, Me.Ambiente,, True
590
 
591
          Case "Z026"
592
 
593
             Script.Runform "FACTURADECIERRE", Me, Ambiente,, False
594
 
595
          Case "Z027"
596
 
597
             Script.RunHuellaForm "REGISTROACCESO", Me, Ambiente,, True
598
 
599
          'Case "Z028"
600
 
601
             'Script.Runform "LISTADEPEDIDOS", Me, Ambiente,, True
602
 
603
    End Select                    
604
 
605
    CancelaProceso = True
606
    txtFields(4) = ""
607
 
608
End Sub
609
 
610
Sub llenaPuntoDeVenta
611
    Dim cLinea, dondeEstaLaComa, articulo
612
 
613
    ' CloseFile cierra un manejador de archivo
614
    CloseFile 1                               
615
    ' OpenFile Abre un archivo de texto para lectura
616
    OpenFile "c:\articulos.txt", 1
617
 
618
    ' FileEOF regresa true en caso de que el archivo
619
    ' de texto llegue a su final
620
    While Not FileEOF( 1 )      
621
          ' ReadLine lee una cadena de texto
622
          ' hasta que encuentra un retorno de carro
623
          cLinea = ReadLine( 1 )
624
          dondeEstaLaComa = clAt( ",",  (cLinea) )
625
          articulo = Mid(cLinea, 1, dondeEstaLaComa -1 )
626
 
627
          ' cantidadDeArticulos es una variable que
628
          ' entrega el punto de venta e indica la 
629
          ' cantidad de productos que se va a ingresar
630
          ' en el punto de venta
631
          cantidadDeArticulos = _
632
          Mid( cLinea, dondeEstaLaComa + 1 ) 
633
 
634
          ' llenaPartidad Es un metodo que ingresa
635
          ' producto en el punto de venta
636
          llenaPartida (articulo)
637
    Wend
638
 
639
    CloseFile 1
640
 
641
End Sub
642
 
643
Sub calculaPeso()
644
    Dim rstArticulo, cArticulo, nPesos
645
 
646
    nPos = clAt( "--", Articulo )
647
    cArticulo = Mid( Articulo, nPos + 2 )
648
    nPesos = Val2(Mid( Articulo, 1, nPos - 1 ))
649
 
650
    Set rstArticulo = CreaRecordSet( _
651
    "SELECT * FROM prods WHERE articulo = '" & cArticulo & "'", _
652
    Ambiente.Connection )
653
 
654
    If Not rstArticulo.EOF Then
655
       Articulo = cArticulo
656
       cantidadDeArticulos =  nPesos /  rstArticulo("precio1")
657
    End If
658
 
659
End Sub
660
 
661
Function Permisos( permisoSolicitado )
662
 
663
    Set rstUsuario = CreaRecordSet( _ 
664
    "SELECT * FROM usuarios WHERE usuario = '" & Ambiente.uid & "'", Ambiente.connection )
665
 
666
    If rstUsuario("supervisor") Then       
667
	   cmdZ001.Caption = "Z001 Cambia o da de alta un cliente"
668
	   cmdZ002.Caption = "Z002 Quita bloqueo por error código de producto"
669
	   cmdZ003.Caption = "Z003 Confirma la venta o muestra ventana de cobro"
670
	   cmdZ004.Caption = "Z004 Da de alta o modifica un artículo"
671
	   cmdZ005.Caption = "Z005 Deja como pendiente la venta actual"
672
	   cmdZ006.Caption = "Z006 Muestra lista de ventas pendientes"
673
	   cmdZ007.Caption = "Z007 Posicionar el cursor en el campo de cliente"
674
	   cmdZ008.Caption = "Z008 Pantalla de descuentos"
675
	   cmdZ009.Caption = "Z009 Corte parcial X"
676
	   cmdZ010.Caption = "Z010 Corte total Z"
677
	   cmdZ011.Caption = "Z011 Permite capturar un ingreso de dinero a caja"
678
	   cmdZ012.Caption = "Z012 Permite capturar una salida de dinero a caja"
679
	   cmdZ013.Caption = "Z013 <ticket> <estación> Realiza una devolución de mercancia en caja"
680
	   cmdZ014.Caption = "Z014 <ticket> <estacion> Convierte un ticket en factura"
681
	   cmdZ015.Caption = "Z015 <devolución> Realiza el pago de la devolucion"
682
	   cmdZ016.Caption = "Z016 Cobranza a clientes"
683
	   cmdZ017.Caption = "Z017 Muestra información del próducto"
684
	   cmdZ018.Caption = "Z018 Re imprimir ticket"
685
	   cmdZ019.Caption = "Z019 Functiones ventas por teléfono (Informativo)"
686
	   cmdZ020.Caption = "Z020 Arqueo de efectivo"
687
	   cmdZ021.Caption = "Z021 Cambio de usuario"
688
	   cmdZ022.Caption = "Z022 Recupera ventas del colector"
689
	   cmdZ023.Caption = "Z023 Muestra la calculadora"
690
	   cmdZ024.Caption = "Z024 Abre el cajón de dinero"
691
	   cmdZ025.Caption = "Z025 Datos auxiliares del cliente"
692
	   cmdZ026.Caption = "Z026 Elimina la ultima venta"     
693
       cmdZ027.Caption = "Z027 Observaciones a la venta"
694
       cmdZ028.Caption = "Z028 Descuento por importe"
695
    Else  
696
	   cmdZ001.Caption = "Z001 Cambia o da de alta un cliente"
697
	   cmdZ002.Caption = "Z002 Quita bloqueo por error código de producto"
698
	   cmdZ003.Caption = "Z003 Confirma la venta o muestra ventana de cobro"
699
	   cmdZ004.Caption = "Z005 Deja como pendiente la venta actual"
700
	   cmdZ005.Caption = "Z006 Muestra lista de ventas pendientes"
701
	   cmdZ006.Caption = "Z007 Posicionar el cursor en el campo de cliente"
702
	   cmdZ007.Caption = "Z011 Permite capturar un ingreso de dinero a caja"
703
	   cmdZ008.Caption = "Z012 Permite capturar una salida de dinero a caja"
704
	   cmdZ009.Caption = "Z015 <devolución> Realiza el pago de la devolucion"
705
	   cmdZ010.Caption = "Z020 Arqueo de efectivo"
706
	   cmdZ011.Caption = "Z021 Cambio de usuario"
707
	   cmdZ012.Caption = "Z024 Abre el cajón de dinero"
708
	   cmdZ013.Caption = "Z025 Muestra la calculadora"
709
	   cmdZ014.Caption = "Z026 Elimina la ultima venta"
710
       cmdZ015.Caption = "Z027 Observaciones a la venta"
711
       cmdZ016.Caption = "Z028 Descuento por importe"
712
    End If
713
End Function
714
 
715
Sub cantidaporPrecio()
716
    Dim nPos, cCantidad, cArticulo, rstProd
717
    Dim nPrecio
718
 
719
    nPos = clAt( "/", Articulo )
720
    cCantidad = Mid( Articulo,1, nPos - 1 )
721
    cArticulo = Trim( Mid( Articulo, nPos + 1 )  )
722
 
723
    Set rstProd = CreaRecordSet( "SELECT * FROM prods WHERE articulo = '" & cArticulo & "'", Ambiente.Connection )
724
 
725
    If rstProd.EOF Then
726
       Exit Sub
727
    End If   
728
 
729
    nCantidad = Round( Val2( cCantidad ) / rstProd("precio1"), 4 )
730
 
731
    If Not rstProd.EOF Then            
732
       cantidadDeArticulos = nCantidad
733
       llenaPartida rstProd("Articulo") 
734
    End If
735
 
736
    CancelaProceso = True
737
End Sub                      
738
 
739
Sub incrementaProducto()
740
    Dim rstArticulo, Query 
741
 
742
    Set rstArticulo = CreaRecordSet( _
743
    "SELECT articulo FROM prods WHERE articulo = '" & Me.Articulo & "' AND granel = 0 AND speso = 0", _
744
    Ambiente.Connection ) 
745
 
746
    Set Query = NewQuery()
747
    Set Query.Connection = Ambiente.Connection
748
 
749
    If rstArticulo.EOF Then
750
       Exit Sub
751
    End If     
752
 
753
    For n = 0 To fg2.Rows - 1
754
 
755
        If clEmpty( fg2.TextMatrix( n, 0 ) ) Then
756
           Exit For
757
        End If
758
 
759
        If Ucase(  Trim( fg2.TextMatrix(n,0) )  ) = _
760
           UCase( Trim(Me.Articulo) ) Then
761
 
762
           Query.SQL = _
763
        "UPDATE partvta SET cantidad = cantidad + 1 WHERE id_salida = " & _
764
           fg2.TextMatrix(n,7)
765
           Query.Exec
766
 
767
           fg2.TextMatrix(n,1) = Val2(fg2.TextMatrix(n,1)) + 1 
768
           CancelaProceso = True
769
           Me.CalculaImportes
770
           Exit For
771
        End If  
772
 
773
    Next
774
 
775
End Sub
776

3 comments for “Antes de aceptar un código lo dividimos en partes

  1. Ivan Gomez
    enero 27, 2015 at 1:58 pm

    hola quisiera saber si es posible modificar la funcion CalculaImportes o en donde esta la ubicacion de esa funcion para poder cambiarla

    • José Félix
      enero 28, 2015 at 12:01 am

      Buenas noches Iván

      Puedes modificarla en Configuración–Personalización–Procedimientos y rutinas de usuario–CALCULAIMPORTES

      Saludos
      José Félix

      • Ivan Gomez Guerrero
        enero 28, 2015 at 5:13 pm

        Hola muchas gracias, ya vi el procedimiento que mencionas lo raro es que lo modifico y no pasa nada ya probe hasta borrandolo y aun asi la funcion calcula importes no me causa ningun efecto a la hora de hacer la modificacion que yo quiero hacer.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *


Time limit is exhausted. Please reload CAPTCHA.