Publicado el Dejar un comentario

PUNTOV036 Al realizar un ingreso al flujo de caja

'----**** 
'----**** MyBusiness POS V20
'----**** Version del script: 1.0
'----**** 19/02/2020
'----**** 
Sub Main()

    Script.RunForm "PAGOEFECTIVO", Parent, Ambiente 

End Sub
Publicado el Dejar un comentario

IMPTEXTO Importa texto

'----**** 
'----**** MyBusiness POS V20
'----**** Version del script: 1.0
'----**** 19/02/2020
'----**** 
Sub Main()
    Dim cCodigo
    Dim cLinea
    Dim cDescrip
    Dim nPrecio
    Dim Query    

    CloseFile 1
    OpenFile "c:\daniel\codigo.txt", 1

    Set Query = NewQuery
    Set Query.Connection = Ambiente.Connection
    Query.ErrorOculto = True

    While Not FileEOF( 1 )

          On error resume next
 
          cLinea = ReadLine( 1 )

          nPos = clAt( Chr(9), cLinea )
          cCodigo = Replace( Mid( cLinea, 1, nPos - 1 ), "#", "" )
          cCodigo = Replace( cCodigo, "$", "" )
          cLinea = Mid( cLinea, nPos + 1 )

        
          nPos = clAt( Chr(9), cLinea )
          cCodigo2 = Replace( Mid( cLinea, 1, nPos - 1 ), "#", "" )
          cCodigo2 = Replace( cCodigo2, "$", "" )
          cLinea = Mid( cLinea, nPos + 1 )
 
          nPos = clAt( Chr(9), cLinea )
          cDescrip = Mid( cLinea, 1, nPos - 1 ) 
          cDescrip = Mid( Trim( cDescrip ), 2 )         
          cDescrip = Mid( cDescrip, 1, Len( cDescrip ) - 1 )         
          cPrecio = Mid( cLinea, nPos + 2 )
          cPrecio = Replace( cPrecio, Chr(34), "" )
          cPrecio = Replace( cPrecio, "$", "" )
          nPrecio = Val2( cPrecio )
 
          Set rstProd = CreaRecordSet( "SELECT articulo FROM prods WHERE articulo = '" & cCodigo & "'", Ambiente.Connection )

          Query.Reset
          
          if rstProd.EOF Then
             Query.strState = "INSERT"
          else
             Query.strState = "UPDATE"
             Query.Condition = "articulo = '" & cCodigo & "'"
          end if

          Query.Reset           
          Query.AddField "PRODS", "articulo", cCodigo
          Query.AddField "PRODS", "descrip", cDescrip
          Query.AddField "PRODS", "linea", "SYS"
          Query.AddField "PRODS", "costo", 0
          Query.AddField "PRODS", "minimo", 0
          Query.AddField "PRODS", "maximo", 0
          Query.AddField "PRODS", "precio1", nPrecio
          Query.AddField "PRODS", "precio2", 0
          Query.AddField "PRODS", "marca", "SYS"
          Query.AddField "PRODS", "ubicacion", "SYS"
          Query.AddField "PRODS", "impuesto", "SYS"
          Query.AddField "PRODS", "paraventa", 1
          Query.AddField "PRODS", "invent", 1
          Query.CreateQuery
          Query.Execute


          if clEmpty( (cCodigo2) ) Then          
             Query.Reset  

             Set rstClaveAdd = CreaRecordSet( "SELECT clave FROM clavesadd WHERE clave = '" & cCodigo2 & "'", Ambiente.Connection )
         
             if rstClaveAdd.EOF Then 
                Query.strState = "INSERT"
             else
                Query.strState = "UPDATE"
                Query.Condition = "clave = '" & cCodigo2 & "'"
             end if

             Query.AddField "CLAVESADD", "clave", cCodigo2
             Query.AddField "CLAVESADD", "dato1", ""          
             Query.AddField "CLAVESADD", "usuario", ""          
             Query.AddField "CLAVESADD", "usufecha", ""          
             Query.AddField "CLAVESADD", "dato2", ""          
             Query.AddField "CLAVESADD", "articulo", cCodigo
             Query.AddField "CLAVESADD", "cantidad", 1
             Query.AddField "CLAVESADD", "unidad", ""
             Query.CreateQuery
             Query.Execute
          end if                          
  
    Wend

    CloseFile 1

End Sub
Publicado el Dejar un comentario

OPTINV002 Optimización del inventario

'----**** 
'----**** MyBusiness POS V20
'----**** Version del script: 1.0
'----**** 19/02/2020
'----**** 
Public Sub Main()

    nPeriodos = 0

    Select Case Parent.Combo1
           Case "Mensual"
                nPeriodos = DateDiff( "m", Parent.DTPicker1(1).Value, Parent.DTPicker1(0).Value )
           Case "Semanal"
                nPeriodos = DateDiff( "ww", Parent.DTPicker1(1).Value, Parent.DTPicker1(0).Value )
           Case "Diario"
                nPeriodos = DateDiff( "d", Parent.DTPicker1(1).Value, Parent.DTPicker1(0).Value )
    End Select

    nPeriodos = Abs( nPeriodos )

    Ambiente.Connection.Execute "DELETE FROM prodszigma"
    Ambiente.Connection.Execute "UPDATE prods SET clasificacion = 'Nuevo'"

    strSQL = ""
    strSQL = strSQL & "SELECT COUNT(*)  "
    strSQL = strSQL & "FROM (partvta INNER JOIN ventas USING(venta)) INNER JOIN prods ON partvta.articulo = prods.articulo "
    strSQL = strSQL & "WHERE ventas.f_emision >= " & FechaSQL( Parent.DTPicker1(0).Value ) & " AND ventas.f_emision <= " & FechaSQL( Parent.DTPicker1(1).Value ) & " "

    Set rstPartvta = CreaRecordSet( (strSQL), Ambiente.Connection )
    nCuantos = Val2(rstPartvta(0))
    
    strSQL = ""
    strSQL = strSQL & "SELECT partvta.articulo, prods.descrip, partvta.cantidad, partvta.precio, partvta.descuento, ventas.tipo_cam, ventas.f_emision, partvta.costo, ventas.tipo_doc, ventas.no_referen, partvta.venta "
    strSQL = strSQL & "FROM (partvta INNER JOIN ventas USING(venta)) INNER JOIN prods ON partvta.articulo = prods.articulo "
    strSQL = strSQL & "WHERE ventas.f_emision >= " & FechaSQL( Parent.DTPicker1(0).Value ) & " AND ventas.f_emision <= " & FechaSQL( Parent.DTPicker1(1).Value ) & " "
    strSQL = strSQL & "ORDER BY partvta.articulo, ventas.f_emision "

    Set rstPartvta = CreaRecordSet( (strSQL), Ambiente.Connection ) 

    Set Query = NewQuery()
    Set Query.Connection = Ambiente.Connection

    if nCuantos > 0 Then
       ProgressBar1.Max = nCuantos
    end if

    n = 0
    Parent.Command1.Enabled = False

    While Not rstPartvta.EOF 

          Parent.Label1.Caption = "Resumiendo información estadistica del producto: " & rstPartvta("articulo") & " " & Trim( rstPartvta("descrip") ) &" " & rstPartvta("tipo_doc") & " " & rstPartvta("no_referen")

          Eventos
          n = n + 1
          ProgressBar1.Value = n

          Set rstArticulo = CreaRecordSet( "SELECT * FROM prodszigma WHERE articulo = '" & rstPartvta("articulo") & "'", Ambiente.Connection )
          Query.Reset

          if rstArticulo.EOF Then
             Query.strState = "INSERT"         
          else
             Query.strState = "UPDATE"
             Query.Condition = "articulo = '" & rstPartvta("articulo") & "'"
          end if 

          query.AddField "prodszigma", "articulo", rstPartvta("articulo")

          if rstArticulo.EOF Then
             query.AddField "prodszigma", "incidencias", 1
             query.AddField "prodszigma", "periodos", nPeriodos
             query.AddField "prodszigma", "ventatotal", ( rstPartvta("cantidad") * rstPartvta("precio") * rstPartvta("tipo_cam") ) * ( 1 - ( rstPartvta("descuento") / 100 ))
             query.AddField "prodszigma", "tipoperiodo", Parent.Combo1
             query.AddField "prodszigma", "costo", rstPartvta("cantidad") * rstPartvta("costo")
             query.AddField "prodszigma", "unidades", rstPartvta("cantidad")
             query.AddField "prodszigma", "unidades2", rstPartvta("cantidad") * rstPartvta("cantidad")
             query.AddField "prodszigma", "fecha", rstPartvta("f_emision")

             Select Case Parent.Combo1
                    Case "Mensual"  

                         dFechaAnterior = DateAdd( "m", -12, Parent.DTPicker1(1).Value )
                         If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                            query.AddField "prodszigma", "periodo1", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "m", -11, Parent.DTPicker1(1).Value )
                         If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                            query.AddField "prodszigma", "periodo2", rstPartvta("cantidad")
                         end if                                

                         dFechaAnterior = DateAdd( "m", -10, Parent.DTPicker1(1).Value )
                         If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                            query.AddField "prodszigma", "periodo3", rstPartvta("cantidad")
                         end if                                

                         dFechaAnterior = DateAdd( "m", -9, Parent.DTPicker1(1).Value )
                         If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                            query.AddField "prodszigma", "periodo4", rstPartvta("cantidad")
                         end if                                

                         dFechaAnterior = DateAdd( "m", -8, Parent.DTPicker1(1).Value )
                         If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                            query.AddField "prodszigma", "periodo5", rstPartvta("cantidad")
                         end if                                

                         dFechaAnterior = DateAdd( "m", -7, Parent.DTPicker1(1).Value )
                         If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                            query.AddField "prodszigma", "periodo6", rstPartvta("cantidad")
                         end if

                         dFechaAnterior = DateAdd( "m", -6, Parent.DTPicker1(1).Value )
                         If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                            query.AddField "prodszigma", "periodo7", rstPartvta("cantidad")
                         end if

                         dFechaAnterior = DateAdd( "m", -5, Parent.DTPicker1(1).Value )
                         If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                            query.AddField "prodszigma", "periodo8", rstPartvta("cantidad")
                         end if

                         dFechaAnterior = DateAdd( "m", -4, Parent.DTPicker1(1).Value )
                         If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                            query.AddField "prodszigma", "periodo9", rstPartvta("cantidad")
                         end if

                         dFechaAnterior = DateAdd( "m", -3, Parent.DTPicker1(1).Value )
                         If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                            query.AddField "prodszigma", "periodo10", rstPartvta("cantidad")
                         end if

                         dFechaAnterior = DateAdd( "m", -2, Parent.DTPicker1(1).Value )
                         If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                            query.AddField "prodszigma", "periodo11", rstPartvta("cantidad")
                         End if
  
                         dFechaAnterior = DateAdd( "m", -1, Parent.DTPicker1(1).Value )
                         If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                            query.AddField "prodszigma", "periodo12", rstPartvta("cantidad")
                            query.AddField "prodszigma", "periodo13", rstPartvta("cantidad")
                         end if

                    Case "Semanal"
                         dFechaAnterior = DateAdd( "ww", -12, Parent.DTPicker1(1).Value )
                         If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo1", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "ww", -11, Parent.DTPicker1(1).Value )
                         If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo2", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "ww", -10, Parent.DTPicker1(1).Value )
                         If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo3", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "ww", -9, Parent.DTPicker1(1).Value )
                         If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo4", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "ww", -8, Parent.DTPicker1(1).Value )
                         If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo5", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "ww", -7, Parent.DTPicker1(1).Value )
                         If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo6", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "ww", -6, Parent.DTPicker1(1).Value )                          
                         If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo7", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "ww", -5, Parent.DTPicker1(1).Value )
                         If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo8", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "ww", -4, Parent.DTPicker1(1).Value )
                         If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo9", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "ww", -3, Parent.DTPicker1(1).Value )
                         If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo10", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "ww", -2, Parent.DTPicker1(1).Value )
                         If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo11", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "ww", -1, Parent.DTPicker1(1).Value )
                         If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo12", rstPartvta("cantidad")
                            query.AddField "prodszigma", "periodo13", rstPartvta("cantidad")
                         end if   

                    Case "Diario"

                         dFechaAnterior = DateAdd( "d", -12, Parent.DTPicker1(1).Value )
                         If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo1", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "d", -11, Parent.DTPicker1(1).Value )
                         If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo2", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "d", -10, Parent.DTPicker1(1).Value )
                         If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo3", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "ww", -9, Parent.DTPicker1(1).Value )
                         If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo4", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "d", -8, Parent.DTPicker1(1).Value )
                         If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo5", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "d", -7, Parent.DTPicker1(1).Value )
                         If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo6", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "d", -6, Parent.DTPicker1(1).Value )
                         If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo7", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "d", -5, Parent.DTPicker1(1).Value )
                         If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo8", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "d", -4, Parent.DTPicker1(1).Value )
                         If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo9", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "d", -3, Parent.DTPicker1(1).Value )
                         If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo10", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "d", -2, Parent.DTPicker1(1).Value )
                         If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo11", rstPartvta("cantidad")
                         end if   

                         dFechaAnterior = DateAdd( "d", -1, Parent.DTPicker1(1).Value )
                         If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                            query.AddField "prodszigma", "periodo12", rstPartvta("cantidad")
                            query.AddField "prodszigma", "periodo13", rstPartvta("cantidad")
                         end if

             End Select

             Set rstEntrada = CreaRecordSet( "SELECT f_movim FROM kardex WHERE articulo = '" & rstPartvta("articulo") & "' AND ent_sal = 'E' ORDER BY f_movim",Ambiente.Connection ) 

             if rstEntrada.EOF Then
                Set rstEntrada = CreaRecordSet( "SELECT f_movim FROM movsinv WHERE articulo = '" & rstPartvta("articulo") & "' AND ent_sal = 'E' ORDER BY f_movim",Ambiente.Connection ) 
             end if
             
             if Not rstEntrada.EOF Then
                query.AddField "prodszigma", "fechaentrada", rstEntrada("f_movim")
                Select Case Parent.Combo1
                       Case "Mensual"
                            query.AddField "prodszigma", "periodosactivos", Abs(DateDiff( "m",  Parent.DTPicker1(1).Value, rstEntrada("f_movim") ))
                            
                       Case "Semanal"

                            query.AddField "prodszigma", "periodosactivos", Abs(DateDiff( "ww", Parent.DTPicker1(1).Value, rstEntrada("f_movim") ))

                       Case "Diario"

                            query.AddField "prodszigma", "periodosactivos", Abs(DateDiff( "d", Parent.DTPicker1(1).Value, rstEntrada("f_movim") ))
                End Select
             else
                query.AddField "prodszigma", "fechaentrada", Date
                query.AddField "prodszigma", "periodosactivos", 0
             end if 
          else
             query.AddField "prodszigma", "ventatotal", rstArticulo("ventatotal") + ( ( rstPartvta("cantidad") * rstPartvta("precio") * rstPartvta("tipo_cam") ) * ( 1 - ( rstPartvta("descuento") / 100 )) )
             query.AddField "prodszigma", "tipoperiodo", Parent.Combo1
             query.AddField "prodszigma", "costo", rstArticulo("costo") + ( rstPartvta("cantidad") * rstPartvta("costo") )
             query.AddField "prodszigma", "unidades", rstArticulo("unidades") + rstPartvta("cantidad")
             query.AddField "prodszigma", "unidades2", rstArticulo("unidades2") + ( rstPartvta("cantidad") * rstPartvta("cantidad") )
             query.AddField "prodszigma", "fecha", rstPartvta("f_emision")
             query.AddField "prodszigma", "venta", rstPartvta("venta")

             nMes = Formato( rstPartvta("f_emision"), "yyyyMM" )   
             nSemana = DateDiff( "ww", Parent.DTPicker1(1).Value, Parent.DTPicker1(0).Value )             
             nDia = rstPartvta("f_emision")
             nVenta = rstPartvta("venta")

             Select Case Parent.Combo1
                     Case "Mensual"
                          dFechaAnterior = DateAdd( "m", -12, Parent.DTPicker1(1).Value )
                          If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                             query.AddField "prodszigma", "periodo1", rstArticulo("periodo1") + rstPartvta("cantidad")
                          end if   

                          dFechaAnterior = DateAdd( "m", -11, Parent.DTPicker1(1).Value )
                          If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                             query.AddField "prodszigma", "periodo2", rstArticulo("periodo2") + rstPartvta("cantidad")
                          end if                                

                          dFechaAnterior = DateAdd( "m", -10, Parent.DTPicker1(1).Value )
                          If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                             query.AddField "prodszigma", "periodo3", rstArticulo("periodo3") + rstPartvta("cantidad")
                          end if                                

                          dFechaAnterior = DateAdd( "m", -9, Parent.DTPicker1(1).Value )
                          If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                             query.AddField "prodszigma", "periodo4", rstArticulo("periodo4") + rstPartvta("cantidad")
                          end if                                

                          dFechaAnterior = DateAdd( "m", -8, Parent.DTPicker1(1).Value )
                          If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                             query.AddField "prodszigma", "periodo5", rstArticulo("periodo5") + rstPartvta("cantidad")
                          end if                                

                          dFechaAnterior = DateAdd( "m", -7, Parent.DTPicker1(1).Value )
                          If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                             query.AddField "prodszigma", "periodo6", rstArticulo("periodo6") + rstPartvta("cantidad")
                          end if

                          dFechaAnterior = DateAdd( "m", -6, Parent.DTPicker1(1).Value )
                          If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                             query.AddField "prodszigma", "periodo7", rstArticulo("periodo7") + rstPartvta("cantidad")
                          end if

                          dFechaAnterior = DateAdd( "m", -5, Parent.DTPicker1(1).Value )
                          If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                             query.AddField "prodszigma", "periodo8", rstArticulo("periodo8") + rstPartvta("cantidad")
                          end if

                          dFechaAnterior = DateAdd( "m", -4, Parent.DTPicker1(1).Value )
                          If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                             query.AddField "prodszigma", "periodo9", rstArticulo("periodo9") + rstPartvta("cantidad")
                          end if

                          dFechaAnterior = DateAdd( "m", -3, Parent.DTPicker1(1).Value )
                          If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                             query.AddField "prodszigma", "periodo10", rstArticulo("periodo10") + rstPartvta("cantidad")
                          end if

                          dFechaAnterior = DateAdd( "m", -2, Parent.DTPicker1(1).Value )
                          If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                             query.AddField "prodszigma", "periodo11", rstArticulo("periodo11") + rstPartvta("cantidad")
                          end if
  
                          dFechaAnterior = DateAdd( "m", -1, Parent.DTPicker1(1).Value )
                          If Formato( rstPartvta("f_emision"),"MMyyyy" ) = Formato( dFechaAnterior,"MMyyyy" ) Then
                             query.AddField "prodszigma", "periodo12", rstArticulo("periodo12") + rstPartvta("cantidad")
                             query.AddField "prodszigma", "periodo13", rstArticulo("periodo13") + rstPartvta("cantidad")
                          end if

                     Case "Semanal"
                          dFechaAnterior = DateAdd( "ww", -12, Parent.DTPicker1(1).Value )
                          If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                             query.AddField "prodszigma", "periodo1", rstArticulo("periodo1") + rstPartvta("cantidad")
                          end if   

                          dFechaAnterior = DateAdd( "ww", -11, Parent.DTPicker1(1).Value )
                          If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                             query.AddField "prodszigma", "periodo2", rstArticulo("periodo2") + rstPartvta("cantidad")
                          end if   

                          dFechaAnterior = DateAdd( "ww", -10, Parent.DTPicker1(1).Value )
                          If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                             query.AddField "prodszigma", "periodo3", rstArticulo("periodo3") + rstPartvta("cantidad")
                          end if   

                          dFechaAnterior = DateAdd( "ww", -9, Parent.DTPicker1(1).Value )
                          If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                             query.AddField "prodszigma", "periodo4", rstArticulo("periodo4") + rstPartvta("cantidad")
                          end if   

                          dFechaAnterior = DateAdd( "ww", -8, Parent.DTPicker1(1).Value )
                          If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                             query.AddField "prodszigma", "periodo5", rstArticulo("periodo5") + rstPartvta("cantidad")
                          end if   

                          dFechaAnterior = DateAdd( "ww", -7, Parent.DTPicker1(1).Value )
                          If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                             query.AddField "prodszigma", "periodo6", rstArticulo("periodo6") + rstPartvta("cantidad")
                          end if   

                          dFechaAnterior = DateAdd( "ww", -6, Parent.DTPicker1(1).Value )
                          If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                             query.AddField "prodszigma", "periodo7", rstArticulo("periodo7") + rstPartvta("cantidad")
                          end if   

                          dFechaAnterior = DateAdd( "ww", -5, Parent.DTPicker1(1).Value )
                          If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                             query.AddField "prodszigma", "periodo8", rstArticulo("periodo8") + rstPartvta("cantidad")
                          end if   

                          dFechaAnterior = DateAdd( "ww", -4, Parent.DTPicker1(1).Value )
                          If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                             query.AddField "prodszigma", "periodo9", rstArticulo("periodo9") + rstPartvta("cantidad")
                          end if   

                          dFechaAnterior = DateAdd( "ww", -3, Parent.DTPicker1(1).Value )
                          If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then                             
                             query.AddField "prodszigma", "periodo10", rstArticulo("periodo10") + rstPartvta("cantidad")
                          end if   

                          dFechaAnterior = DateAdd( "ww", -2, Parent.DTPicker1(1).Value )
                          If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                             query.AddField "prodszigma", "periodo11", rstArticulo("periodo11") + rstPartvta("cantidad")
                          end if   

                          dFechaAnterior = DateAdd( "ww", -1, Parent.DTPicker1(1).Value )
                          If DateDiff( "ww", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "ww", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                             query.AddField "prodszigma", "periodo12", rstArticulo("periodo12") + rstPartvta("cantidad")
                             query.AddField "prodszigma", "periodo13", rstArticulo("periodo13") + rstPartvta("cantidad")
                          end if   

                     Case "Diario"

                            dFechaAnterior = DateAdd( "d", -12, Parent.DTPicker1(1).Value )
                            If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                               query.AddField "prodszigma", "periodo1", rstArticulo("periodo1") + rstPartvta("cantidad")
                            end if   

                            dFechaAnterior = DateAdd( "d", -11, Parent.DTPicker1(1).Value )
                            If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                               query.AddField "prodszigma", "periodo2", rstArticulo("periodo2") + rstPartvta("cantidad")
                            end if   

                            dFechaAnterior = DateAdd( "d", -10, Parent.DTPicker1(1).Value )
                            If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                               query.AddField "prodszigma", "periodo3", rstArticulo("periodo3") + rstPartvta("cantidad")
                            end if   

                            dFechaAnterior = DateAdd( "ww", -9, Parent.DTPicker1(1).Value )
                            If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                               query.AddField "prodszigma", "periodo4", rstArticulo("periodo4") + rstPartvta("cantidad")
                            end if   

                            dFechaAnterior = DateAdd( "d", -8, Parent.DTPicker1(1).Value )
                            If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                               query.AddField "prodszigma", "periodo5", rstArticulo("periodo5") + rstPartvta("cantidad")
                            end if   

                            dFechaAnterior = DateAdd( "d", -7, Parent.DTPicker1(1).Value )
                            If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                               query.AddField "prodszigma", "periodo6", rstArticulo("periodo6") + rstPartvta("cantidad")
                            end if   

                            dFechaAnterior = DateAdd( "d", -6, Parent.DTPicker1(1).Value )
                            If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then                               
                               query.AddField "prodszigma", "periodo7", rstArticulo("periodo7") + rstPartvta("cantidad")
                            end if   

                            dFechaAnterior = DateAdd( "d", -5, Parent.DTPicker1(1).Value )
                            If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                               query.AddField "prodszigma", "periodo8", rstArticulo("periodo8") + rstPartvta("cantidad")
                            end if   

                            dFechaAnterior = DateAdd( "d", -4, Parent.DTPicker1(1).Value )
                            If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                               query.AddField "prodszigma", "periodo9", rstArticulo("periodo9") + rstPartvta("cantidad")
                            end if   

                            dFechaAnterior = DateAdd( "d", -3, Parent.DTPicker1(1).Value )
                            If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                               query.AddField "prodszigma", "periodo10", rstArticulo("periodo10") + rstPartvta("cantidad")
                            end if   

                            dFechaAnterior = DateAdd( "d", -2, Parent.DTPicker1(1).Value )
                            If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                               query.AddField "prodszigma", "periodo11", rstArticulo("periodo11") + rstPartvta("cantidad")
                            end if   

                            dFechaAnterior = DateAdd( "d", -1, Parent.DTPicker1(1).Value )
                            If DateDiff( "d", rstPartvta("f_emision"), Parent.DTPicker1(1).value ) = DateDiff( "d", dFechaAnterior, Parent.DTPicker1(1).value ) Then
                               query.AddField "prodszigma", "periodo12", rstArticulo("periodo12") + rstPartvta("cantidad")
                               query.AddField "prodszigma", "periodo13", rstArticulo("periodo13") + rstPartvta("cantidad")
                            end if   

                           
             end select 

             if nVenta <> rstArticulo("venta") Then
                Select Case Parent.Combo1
                       Case "Mensual"
                            if Formato( rstArticulo("fecha"), "yyyyMM" ) <> nMes Then
                               query.AddField "prodszigma", "incidencias", rstArticulo("incidencias") + 1                               
                            end if  

                       Case "Semanal"
                            if nSemana <> DateDiff( "ww", Parent.DTPicker1(1).Value, rstArticulo("fecha") ) Then
                               query.AddField "prodszigma", "incidencias", rstArticulo("incidencias") + 1
                            end if
                       Case "Diario"
                            if nDia <> rstArticulo("fecha") Then  
                               query.AddField "prodszigma", "incidencias", rstArticulo("incidencias") + 1
                            end if
                 End Select
             end if

          end if 

          query.CreateQuery
          query.SaveQuery
          query.Execute
          
          rstPartvta.MoveNext
    Wend 

    ProgressBar1.Value = 0
    Parent.Label1.Caption = "Iniciando proceso de calculo de la desviación estandar"    

    Set rstZigma = CreaRecordSet( "SELECT COUNT(*) FROM prodszigma", Ambiente.Connection )
    nCuantos = Val2(rstZigma(0))
    Set rstZigma = CreaRecordSet( "SELECT prodszigma.*, prods.granel, prods.clasificacion FROM prodszigma INNER JOIN prods USING(articulo) ", Ambiente.Connection )

    if nCuantos > 0 Then
       ProgressBar1.Max = nCuantos
    end if

    ' Colocamos los mínimos y máximos de articulos en cero
    Ambiente.Connection.Execute "UPDATE prods SET maximo = 0, minimo = 0"

    n = 0

    Set rstEconfig = CreaRecordSet( "SELECT * FROM econfig", Ambiente.Connection )    

    While Not rstZigma.EOF
          Eventos
          n = n + 1
          ProgressBar1.Value = n                              

          nDato1 = rstZigma("periodo1")
          nDato2 = rstZigma("periodo2")
          nDato3 = rstZigma("periodo3")
          nDato4 = rstZigma("periodo4")
          nDato5 = rstZigma("periodo5")
          nDato6 = rstZigma("periodo6")
          nDato7 = rstZigma("periodo7")
          nDato8 = rstZigma("periodo8")
          nDato9 = rstZigma("periodo9")
          nDato10 = rstZigma("periodo10")
          nDato11 = rstZigma("periodo11")
          nDato12 = rstZigma("periodo12")          
 
          nPromedio = ( nDato1 + nDato2 + nDato3 + nDato4 + nDato5 + nDato6 + nDato7 + nDato8 + nDato9 + nDato10 + nDato11 + nDato12 ) / 12

          nDato1 = ( nDato1 - nPromedio ) * ( nDato1 - nPromedio )
          nDato2 = ( nDato2 - nPromedio ) * ( nDato2 - nPromedio )
          nDato3 = ( nDato3 - nPromedio ) * ( nDato3 - nPromedio )
          nDato4 = ( nDato4 - nPromedio ) * ( nDato4 - nPromedio )
          nDato5 = ( nDato5 - nPromedio ) * ( nDato5 - nPromedio )
          nDato6 = ( nDato6 - nPromedio ) * ( nDato6 - nPromedio )
          nDato7 = ( nDato7 - nPromedio ) * ( nDato7 - nPromedio )
          nDato8 = ( nDato8 - nPromedio ) * ( nDato8 - nPromedio )
          nDato9 = ( nDato9 - nPromedio ) * ( nDato9 - nPromedio )
          nDato10 = ( nDato10 - nPromedio ) * ( nDato10 - nPromedio )
          nDato11 = ( nDato11 - nPromedio ) * ( nDato11 - nPromedio )
          nDato12 = ( nDato12 - nPromedio ) * ( nDato12 - nPromedio )

          nDesviacion = ( nDato1 + nDato2 + nDato3 + nDato4 + nDato5 + nDato6 + nDato7 + nDato8 + nDato9 + nDato10 + nDato11 + nDato12 )
          nDesviacion = nDesviacion * ( 1 / 11 )
          nDesviacion = SQR( nDesviacion )

          cClasificacion = "Nuevo"
          nFactorDeServicio = 0

          if rstZigma("periodosactivos") > Val2(Parent.txtFields(8)) Then
             if ( rstZigma("incidencias") / rstZigma("periodos") * 100 ) >= Val2( Parent.txtFields(0) ) Then
                cClasificacion = "Alto"
                 nFactorDeServicio = Val2(Parent.txtFields(4)) / 100
             else
                if ( rstZigma("incidencias") / rstZigma("periodos") * 100 ) >= Val2( Parent.txtFields(1) ) Then
                   cClasificacion = "Medio"
                   nFactorDeServicio = Val2(Parent.txtFields(5)) / 100
                else
                   if ( rstZigma("incidencias") / rstZigma("periodos") * 100 ) >= Val2( Parent.txtFields(2) ) Then
                      cClasificacion = "Bajo"
                      nFactorDeServicio = Val2(Parent.txtFields(6)) / 100 
                   else                       
                      if ( rstZigma("incidencias") / rstZigma("periodos") * 100 ) >= Val2( Parent.txtFields(3) ) Then
                          cClasificacion = "Lento"
                          nFactorDeServicio = Val2(Parent.txtFields(7)) / 100 
                      else
                          cClasificacion = ""
                          nFactorDeServicio = 0
                      end if 
                   end if                
                end if
             end if 
          else

             cClasificacion = "Nuevo"
             nFactorDeServicio = 1  

          end if

          Query.Reset
          Query.strState = "UPDATE" 
          Query.Condition = "articulo = '" & rstZigma("articulo") & "'"
          query.AddField "prodszigma", "zigma", nDesviacion
          query.AddField "prodszigma", "clasificacion", cClasificacion
          query.CreateQuery
          query.SaveQuery
          query.Execute

          Query.Reset
          Query.strState = "UPDATE" 
          Query.Condition = "articulo = '" & rstZigma("articulo") & "'"
          
          if rstZigma("periodos") > 0 Then 
             nPromedio = rstZigma("unidades") / rstZigma("periodos")
          else
             nPromedio = 0
          end if

          nFac = 0

          Select Case Combo2
                 Case "100"
                      nFac = 3.48
                 Case "95"
                      nFac = 1.60
                 Case "90"
                      nFac = 1.29
                 Case "85"
                      nFac = 1.04
                 Case "80"
                      nFac = 0.805
                 Case "75"
                      nFac = 0.608
                 Case "70"
                      nFac = 0.503
          End Select

          query.AddField "prods", "clasifant", rstZigma("clasificacion")
          query.AddField "prods", "clasificacion", cClasificacion

          query.CreateQuery
          query.SaveQuery
          query.Execute

          rstZigma.MoveNext
    Wend

    Parent.Label1.Caption = "Calculando punto de reorden para artículos de alto y medio movimiento"      

    Set rstProdszigma = CreaRecordSet( "SELECT COUNT(*) FROM prodszigma WHERE clasificacion = 'Alto' Or clasificacion = 'Medio'", Ambiente.Connection )
    nCuantos = Val2(rstProdszigma(0))
    Set rstProdszigma = CreaRecordSet( "SELECT * FROM prodszigma WHERE clasificacion = 'Alto' Or clasificacion = 'Medio'", Ambiente.Connection )

    if nCuantos > 0 Then
       ProgressBar1.Max = nCuantos
    end if

    n = 0

    While Not rstProdszigma.EOF          

          Parent.Label1.Caption = "Calculando punto de reorden para artículo: " & rstProdszigma("articulo")

          Eventos
          n = n + 1
          ProgressBar1.Value = n                    

          nDato1 = rstProdszigma("periodo1")
          nDato2 = rstProdszigma("periodo2")
          nDato3 = rstProdszigma("periodo3")
          nDato4 = rstProdszigma("periodo4")
          nDato5 = rstProdszigma("periodo5")
          nDato6 = rstProdszigma("periodo6")
          nDato7 = rstProdszigma("periodo7") * 2
          nDato8 = rstProdszigma("periodo8") * 2
          nDato9 = rstProdszigma("periodo9") * 2
          nDato10 = rstProdszigma("periodo10") * 4
          nDato11 = rstProdszigma("periodo11") * 4
          nDato12 = rstProdszigma("periodo12") * 4
          nDato13 = rstProdszigma("periodo13") * 8

          nTotal = nDato1 + nDato2 + nDato3 + nDato4 + nDato5 + nDato6 + nDato7 + nDato8 + nDato9 + nDato10 + nDato11 + nDato12 + nDato13 
          nTotal = nTotal / 32

          nRetrazo = 0          

          Set rstProvprod = CreaRecordSet( "SELECT retrazo FROM provprod WHERE articulo = '" & rstProdszigma("articulo") & "' AND principal <> 0", Ambiente.Connection )

          if Not rstProvprod.EOF Then
             Select Case Combo1
                    Case "Mensual"
                         nRetrazo = Val2(rstProvprod("retrazo")) / 30
                    Case "Semanal"
                         nRetrazo = Val2(rstProvprod("retrazo")) / 7
                    Case "Diario"
                         nRetrazo = Val2(rstProvprod("retrazo"))
             End Select 
          end if

          if nRetrazo = 0 Then
             nRetrazo = 1
          end if
          
          if rstProdszigma("zigma") > (rstProdszigma("unidades") / rstProdszigma("periodos"))  Then
             nMedia = (rstProdszigma("unidades") / rstProdszigma("periodos"))
          else
             nMedia = rstProdszigma("zigma")
          end if

          nFac = 0 

          Select Case Combo2
                 Case "100"
                      nFac = 3.48
                 Case "95"
                      nFac = 1.60
                 Case "90"
                      nFac = 1.29
                 Case "85"
                      nFac = 1.04
                 Case "80"
                      nFac = 0.805
                 Case "75"
                      nFac = 0.608
                 Case "70"
                      nFac = 0.503
          End Select

          ROP = ( nTotal * nRetrazo ) + ( nMedia * nFac )
          H = Val2(rstEconfig("h"))
          S = Val2(rstEconfig("S"))

          Query.Reset
          Query.strState = "UPDATE"
          Query.Condition = "articulo = '" & rstProdszigma("articulo") & "'"
          query.AddField "prods", "ROP", ROP          

          if H > 0 Then
             if (2 * nTotal * S) / H > 0 Then
                query.AddField "prods", "eoq", Round( SQR( (2 * nTotal * S) / H ), 0 )
             end if
          end if  

          query.CreateQuery
          query.SaveQuery
          query.Execute

          Query.Reset
          Query.strState = "UPDATE"
          Query.Condition = "articulo = '" & rstProdszigma("articulo") & "'"
          query.AddField "prodszigma", "dp", nTotal
          query.CreateQuery
          query.SaveQuery
          query.Execute

          rstProdszigma.MoveNext 
    Wend  

    Parent.Label1.Caption = "Calculando punto de reorden para artículos de lento y bajo movimiento"      

    Set rstProdszigma = CreaRecordSet( "SELECT COUNT(*) FROM prodszigma WHERE clasificacion = 'Lento' Or clasificacion = 'Bajo'", Ambiente.Connection )
    nCuantos = Val2(rstProdszigma(0))
    Set rstProdszigma = CreaRecordSet( "SELECT * FROM prodszigma WHERE clasificacion = 'Lento' Or clasificacion = 'Bajo'", Ambiente.Connection )

    if nCuantos > 0 Then
       ProgressBar1.Max = nCuantos
    end if

    n = 0

    While Not rstProdszigma.EOF          

          Parent.Label1.Caption = "Calculando punto de reorden para artículo: " & rstProdszigma("articulo")

          Eventos
          n = n + 1
          ProgressBar1.Value = n                    

          nFrecuencia = 0
          nDemanda = 0
          nTotal = 0

          For i = 1 to 12
              if rstProdszigma("periodo" & i) > 0 Then                 
                 nFrecuencia = nFrecuencia + 1
                 nDemanda = nDemanda + rstProdszigma("periodo" & i)      
              end if 
          Next


          if nFrecuencia > 0 Then

             nTotal = nDemanda / nFrecuencia
             For i = 1 to 12
                 if rstProdszigma("periodo" & i) > 0 Then                 
                    if (rstProdszigma("periodo" & i) / nTotal) <= 3  Then
                       nFrecuencia = nFrecuencia + 1
                       nDemanda = nDemanda + rstProdszigma("periodo" & i)      
                    end if
                 end if 
              Next

              nTotal = nDemanda / nFrecuencia

          end if

          nRetrazo = 0          

          Select Case Combo2
                 Case "100"
                      nFac = 3.48
                 Case "95"
                      nFac = 1.60
                 Case "90"
                      nFac = 1.29
                 Case "85"
                      nFac = 1.04
                 Case "80"
                      nFac = 0.805
                 Case "75"
                      nFac = 0.608
                 Case "70"
                      nFac = 0.503
          End Select

          H = Val2(rstEconfig("h"))
          S = Val2(rstEconfig("S"))

          Query.Reset
          Query.strState = "UPDATE"
          Query.Condition = "articulo = '" & rstProdszigma("articulo") & "'"
          query.AddField "prodszigma", "dp", nTotal
          query.CreateQuery
          query.SaveQuery
          query.Execute

          Query.Reset 

          if H > 0 Then
             query.AddField "prods", "eoq", Round( SQR( (2 * nTotal * S) / H ), 0 )
          end if

          query.AddField "prods", "maximo", nTotal + (nTotal * 0.5)
          query.AddField "prods", "minimo", nTotal - (nTotal * 0.5)
          Query.Condition = "articulo = '" & rstProdszigma("articulo") & "'"
          query.CreateQuery
          query.SaveQuery
          query.Execute

          rstProdszigma.MoveNext 
    Wend  

    ' Borramos las ordenes automaticas para que tomen los nuevos parametros
    Ambiente.Connection.Execute "DELETE FROM ordauto"

    Parent.Label1.Caption = "Proceso terminado"      
    Parent.Command1.Enabled = True
    ProgressBar1.Value = 0

End Sub
Publicado el Dejar un comentario

MAGELLAN384L Lector serial de bascula magellan

'----**** 
'----**** MyBusiness POS V20
'----**** Version del script: 1.0
'----**** 19/02/2020
'----**** 
Public Sub Main()

    ' Si la mauiquina pide configurar el puerto
    if Ambiente.Tag = "CONFIGURANDO" Then
       Configuracion
    else
       ProcesaCodigo
    end if

End Sub


Public Sub Configuracion()

       if Ambiente.Lector.PortOpen Then
          Ambiente.Lector.PortOpen = False       
       end if 

       Select Case Trim(Ambiente.rstEstacion("pbascula"))
              Case "COM1"
                   Ambiente.Lector.CommPort = 1
               Case "COM2"  
                   Ambiente.Lector.CommPort = 2
               Case "COM3"  
                   Ambiente.Lector.CommPort = 3
               Case "COM4"  
                   Ambiente.Lector.CommPort = 4
               Case "COM5"  
                   Ambiente.Lector.CommPort = 5            
               Case else
                   Ambiente.Lector.CommPort = 1            
        End Select

        if Ambiente.Lector.PortOpen Then
           Exit Sub
        end if 

        Ambiente.Tag = ""

        Ambiente.Lector.Settings = "9600,O,7,1"
        Ambiente.Lector.RTSEnable = True    
        Ambiente.Lector.PortOpen = True
 
        TimerLector.Enabled = True

        Exit Sub

End Sub


Public Sub ProcesaCodigo

    ' Si el puerto no esta abierto salimos del procedimiento
    if Ambiente.Lector.PortOpen = False Then
      Exit Sub
    end if 

    flujo = flujo & Ambiente.Lector.Input
    
    if clAt("S11", flujo ) Then
       flujo = ""
    end if

    if Len(flujo) >= 16 Then
      
       if Mid( flujo, 1, 3) = "S08" Then
          Select Case Mid( flujo, 1, 4)
                 Case "S085"
                      Teclado.SendKeys ( Mid( flujo,5 ) )                        
                      flujo = ""
                 Case "S08A"
                      Teclado.SendKeys ( Mid( flujo,5 ) )
                      flujo = "" 
                 Case "S08F"
                      if Mid( a,5,1 ) = "F" Then
                         Teclado.SendKeys ( Mid( flujo,6 ) )
                         flujo = ""
                      else 


                         Teclado.SendKeys ( Mid( flujo,5 ) )
                         flujo = "" 
                      end if             
          End Select 
       end if

    End If

End Sub
Publicado el Dejar un comentario

VENTAS014 Rutina despues de insertar una Partida

'----**** 
'----**** MyBusiness POS V20
'----**** Version del script: 1.0
'----**** 19/02/2020
'----**** 
Public sub Main()

   Dim MaxPartidas

   'Aqui Cambiar el Numero Maximo de Partidas

   MaxPartidas = 30

   if fg2.Row >= MaxPartidas then
      msgbox "El Número Máximo de Partidas(" & MaxPartidas & ") ha sido alcanzado"
   End If
   

End Sub