'----****
'----**** 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
Autor: jose felix
Desarrollador de módulos para el software MyBusiness POS
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
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
TORR5220 Torreta 5220
'----****
'----**** MyBusiness POS V20
'----**** Version del script: 1.0
'----**** 19/02/2020
'----****
Public Sub Main()
if Not Torreta.PortOpen Then
Select Case Trim(Ambiente.rstEstacion("ptorreta"))
Case "COM1"
Torreta.CommPort = 1
Case "COM2"
Torreta.CommPort = 2
Case "COM3"
Torreta.CommPort = 3
Case "COM4"
Torreta.CommPort = 4
Case "COM5"
Torreta.CommPort = 5
Case else
Torreta.CommPort = 1
End Select
Torreta.Settings = "9600,N,8,1"
Torreta.RTSEnable = True
Torreta.PortOpen = True
End if
End Sub
SUCURSALVAR004 Acepta la distribución por sucursal
'----****
'----**** MyBusiness POS V20
'----**** Version del script: 1.0
'----**** 19/02/2020
'----****
Public Sub Main()
Dim nCapturado
nCapturado = 0
For n = 1 to fg.Rows - 1
nCapturado = nCapturado + Val2( fg.TextMatrix( n, 3 ) )
Next
Ambiente.Connection.Execute "DELETE FROM compra2sucdis WHERE id_partida = " & nId
For n = 1 to fg.Rows - 1
AfectaSucDis Val2( fg.TextMatrix( n, 3 ) ), fg.TextMatrix( n, 1 )
Next
End Sub
Public Sub AfectaSucDis( nCantidad, cClave )
Dim rstPartida
Dim rstCompra
Dim MovInv
Dim Query
Dim n
Set rstCompra = CreaRecordSet( "SELECT * FROM compra2 WHERE id = " & Compra, Ambiente.Connection )
Set rstPartida = CreaRecordSet( "SELECT * FROM compra2part WHERE id = " & nId, Ambiente.Connection )
if rstCompra.EOF Then
Exit Sub
end if
if rstPartida.EOF Then
Exit Sub
end if
Set Query = NewQuery()
Set Query.Connection = Ambiente.Connection
Query.strState = "INSERT"
Query.AddField "compra2sucdis","id", TraeSiguiente( "compra2sucdis", Ambiente.Connection )
Query.AddField "compra2sucdis","sucursal", Sucursal
Query.AddField "compra2sucdis","variacion", cClave
Query.AddField "compra2sucdis","id_partida", nId
Query.AddField "compra2sucdis","cantidad", nCantidad
Query.CreateQuery
Query.Execute
End Sub




