Publicado el

DESCONECTA001 Actualiza los catálogos para la venta desconectada

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

    ' Importamos precios especiales
    ImportaArticlien    

    ' Importamos clientes
    ImportaClientes

    ' Importa conceptos de cuentas por cobrar
    ImportaConcxc

    ' Importando definición de formatos de impresión
    ImportaDefform

    ' Borramos el flujo que tenga la caja en este momento
    BorraFlujo

    ' Importamos los impuestos
    ImportaImpuestos

    ' Importamos los articulos
    ImportaBitacoras

    ' Importando las estaciones de trabajo
    ImportaEstaciones
    

End Sub


Public Sub ImportaArticlien()

    Set Query = NewQuery
    Set Query.Connection = Ambiente.ConfigConnection 

    Set r = CreaRecordSetEnCliente( "SELECT * FROM articlien", Ambiente.Connection )
    Ambiente.ConfigConnection.Execute "DELETE FROM articlien"

    Set Progress = NewProgress()    

    if r.RecordCount > 0 Then
       Progress.Anim r.RecordCount, "Importando precios especiales", Ambiente.Path & "\Images\Gears.Avi"    
    end if 
    
    n = 0

    While Not r.EOF
      
          n = n + 1
          Progress.Valor n, "Procesando: " & r("articulo")          

          Query.Reset
          Query.strState = "INSERT"
          Query.AddField "articlien","Cliente" , r("cliente")
          Query.AddField "articlien","Articulo", r("articulo")
          Query.AddField "articlien","Precio"  , r("precio")
          Query.AddField "articlien","usuFecha", r("usufecha")
          Query.AddField "articlien","usuHora" , r("usuhora")
          Query.AddField "articlien","usuario" , r("usuario")
          Query.CreateQuery
          Query.Execute
          r.MoveNext
    Wend    

    if n > 0 Then
       Progress.Destroy
    end if

End Sub



Public Sub ImportaClavesAdd( cArticulo )

    Set Query = NewQuery
    Set Query.Connection = Ambiente.ConfigConnection 

    Set r = CreaRecordSetEnCliente( "SELECT * FROM clavesadd WHERE articulo = '" & cArticulo & "'", Ambiente.Connection )
    Ambiente.ConfigConnection.Execute "DELETE FROM clavesadd WHERE articulo = '" & cArticulo & "'"

    While Not r.EOF
      
          Query.Reset
          Query.strState = "INSERT"
          Query.AddField "clavesadd","Clave"     , r("clave")
          Query.AddField "clavesadd","Dato1"     , r("dato1")
          Query.AddField "clavesadd","Usuario"   , r("usuario")
          Query.AddField "clavesadd","usuFecha"  , r("usufecha")
          Query.AddField "clavesadd","usuHora"   , r("usuhora")
          Query.AddField "clavesadd","Dato2"     , r("dato2")
          Query.AddField "clavesadd","Articulo"  , r("articulo")
          Query.AddField "clavesadd","Cantidad"  , r("cantidad")
          Query.AddField "clavesadd","Unidad"    , r("unidad")
          Query.AddField "clavesadd","Existencia", r("existencia")
          Query.AddField "clavesadd","Libre"     , r("libre")
          Query.AddField "clavesadd","Exportado" , r("exportado")
          Query.AddField "clavesadd","Precio"    , r("precio")
          Query.AddField "clavesadd","ALM1"      , r("alm1")
          Query.AddField "clavesadd","ALM2"      , r("alm2")
          Query.AddField "clavesadd","ALM3"      , r("alm3")
          Query.AddField "clavesadd","ALM4"      , r("alm4")
          Query.AddField "clavesadd","ALM5"      , r("alm5")
          Query.AddField "clavesadd","ALM6"      , r("alm6")
          Query.AddField "clavesadd","ALM7"      , r("alm7")
          Query.AddField "clavesadd","ALM8"      , r("alm8")
          Query.AddField "clavesadd","ALM9"      , r("alm9")
          Query.AddField "clavesadd","ALM10"     , r("alm10")
          Query.CreateQuery
          Query.Execute
          r.MoveNext
    Wend    

End Sub


Public Sub ImportaClientes()

    Set Query = NewQuery
    Set Query.Connection = Ambiente.ConfigConnection 

    Set r = CreaRecordSet( "SELECT COUNT(*) FROM clients", Ambiente.Connection )
    nCuantos = Val2( r(0) )
    Set r = CreaRecordSet( "SELECT * FROM clients", Ambiente.Connection )
    Ambiente.ConfigConnection.Execute "DELETE FROM clients"

    Set Progress = NewProgress()    

    if nCuantos > 0 Then
       Progress.Anim nCuantos, "Importando clientes", Ambiente.Path & "\Images\Gears.Avi"    
    end if 
    
    n = 0

    While Not r.EOF
      
          n = n + 1
          Progress.Valor n, "Procesando: " & r("cliente") & " " & r("nombre")

          Query.Reset
          Query.strState = "INSERT"
          Query.AddField "clients","CLIENTE", r("cliente")
          Query.AddField "clients","NOMBRE", r("nombre")
          Query.AddField "clients","CALLE", r("calle")
          Query.AddField "clients","COLONIA", r("colonia")
          Query.AddField "clients","POBLA", r("pobla")
          Query.AddField "clients","ESTADO", r("estado")
          Query.AddField "clients","PAIS", r("pais")
          Query.AddField "clients","TELEFONO", r("telefono")
          Query.AddField "clients","DIAS", r("dias")
          Query.AddField "clients","CREDITO", r("credito")
          Query.AddField "clients","DESC1", r("desc1")
          Query.AddField "clients","DESC2", r("desc2")
          Query.AddField "clients","DESC3", r("desc3")
          Query.AddField "clients","DESC4", r("desc4")
          Query.AddField "clients","DESC5", r("desc5")
          Query.AddField "clients","RFC", r("rfc")
          Query.AddField "clients","TIPO", r("tipo")
          Query.AddField "clients","CONTACTO", r("contacto")
          Query.AddField "clients","COBRADOR", r("cobrador")
          Query.AddField "clients","VEND", r("vend")
          Query.AddField "clients","PRECIO", r("precio")
          Query.AddField "clients","CP", r("cp")
          Query.AddField "clients","PROSPECT", r("prospect")
          Query.AddField "clients","REVISION", r("revision")
          Query.AddField "clients","OBSERV", r("observ")
          Query.AddField "clients","ZONA", r("zona")
          Query.AddField "clients","CORREO", r("correo")
          Query.AddField "clients","URL", r("url")
          Query.AddField "clients","SALDO", r("saldo")
          Query.AddField "clients","USUARIO", r("usuario")
          Query.AddField "clients","USUHORA", r("usuhora")
          Query.AddField "clients","USUFECHA", r("usufecha")
          Query.AddField "clients","PROVEEDOR", r("proveedor")
          Query.AddField "clients","CURB", r("curb")
          Query.AddField "clients","CORTE", r("corte")
          Query.AddField "clients","COBRO", r("cobro")
          Query.AddField "clients","CONCEPTO", r("concepto")
          Query.AddField "clients","INGRESO", r("ingreso")
          Query.AddField "clients","bloqueado",  r("bloqueado")
          Query.CreateQuery
          Query.Execute
          r.MoveNext
    Wend    

    if n > 0 Then
       Progress.Destroy
    end if

End Sub



Public Sub ImportaConcxc()

    Set Query = NewQuery
    Set Query.Connection = Ambiente.ConfigConnection 

    Set r = CreaRecordSetEnCliente( "SELECT * FROM concxc", Ambiente.Connection )
    Ambiente.ConfigConnection.Execute "DELETE FROM concxc"

    Set Progress = NewProgress()    

    if r.RecordCount > 0 Then
       Progress.Anim r.RecordCount, "Importando conceptos de cuentas por cobrar", Ambiente.Path & "\Images\Gears.Avi"    
    end if 
    
    n = 0

    While Not r.EOF
      
          n = n + 1
          Progress.Valor n, "Procesando: " & r("clave_con") & " " & r("descrip")

          Query.Reset
          Query.strState = "INSERT"
          Query.AddField "concxc","CLAVE_CON", r("clave_con")
          Query.AddField "concxc","DESCRIP", r("descrip")
          Query.AddField "concxc","TIPO_CXC", r("tipo_cxc")
          Query.AddField "concxc","FIJO", r("fijo")
          Query.AddField "concxc","INGRESO", r("ingreso")
          Query.AddField "concxc","FORMATO", r("formato")
          Query.AddField "concxc","USUARIO", r("usuario")
          Query.AddField "concxc","USUFECHA", r("usufecha")
          Query.AddField "concxc","USUHORA", r("usuhora")
          Query.AddField "concxc","COMISION", r("comision")
          Query.CreateQuery
          Query.Execute
          r.MoveNext
    Wend    

    if n > 0 Then
       Progress.Destroy
    end if

End Sub



Public Sub ImportaDefform()

    Set Query = NewQuery
    Set Query.Connection = Ambiente.ConfigConnection 

    Set r = CreaRecordSetEnCliente( "SELECT * FROM defform", Ambiente.Connection )
    Ambiente.ConfigConnection.Execute "DELETE FROM defform"

    Set Progress = NewProgress()    

    if r.RecordCount > 0 Then
       Progress.Anim r.RecordCount, "Importando definición de formatos de impresión", Ambiente.Path & "\Images\Gears.Avi"    
    end if 
    
    n = 0

    While Not r.EOF
      
          n = n + 1
          Progress.Valor n, "Procesando: " & n

          Query.Reset
          Query.strState = "INSERT"
          Query.AddField "defform","FACTURAS", r("facturas") 
          Query.AddField "defform","REMISIONES", r("remisiones")
          Query.AddField "defform","VENTAS", r("ventas")
          Query.AddField "defform","DEVOLUC", r("devoluc")
          Query.AddField "defform","COMPRAS", r("compras")
          Query.AddField "defform","DEVCOMP", r("devcomp")
          Query.AddField "defform","SALIDAS", r("salidas")
          Query.AddField "defform","ENTRADAS", r("entradas")
          Query.AddField "defform","PEDIDOS", r("pedidos")
          Query.AddField "defform","COTIZA", r("cotiza")
          Query.AddField "defform","ORDEN", r("orden")
          Query.AddField "defform","TICKET", r("ticket")
          Query.CreateQuery
          Query.Execute
          r.MoveNext
    Wend    

    if n > 0 Then
       Progress.Destroy
    end if

End Sub



Public Sub BorraFlujo()
    
    Ambiente.Connection.Execute "DELETE FROM flujo"   

End Sub



Public Sub ImportaImpuestos()

    Set Query = NewQuery
    Set Query.Connection = Ambiente.ConfigConnection 

    Set r = CreaRecordSetEnCliente( "SELECT * FROM impuestos", Ambiente.Connection )
    Ambiente.ConfigConnection.Execute "DELETE FROM impuestos"

    Set Progress = NewProgress()    

    if r.RecordCount > 0 Then
       Progress.Anim r.RecordCount, "Importando impuestos", Ambiente.Path & "\Images\Gears.Avi"    
    end if 
    
    n = 0

    While Not r.EOF
      
          n = n + 1
          Progress.Valor n, "Procesando: " & n

          Query.Reset
          Query.strState = "INSERT"
          Query.AddField "impuestos","Impuesto", r("impuesto")
          Query.AddField "impuestos","Descrip", r("Descrip")
          Query.AddField "impuestos","Valor", r("Valor")
          Query.AddField "impuestos","Usuario", r("usuario")
          Query.AddField "impuestos","usuFecha", r("usufecha")
          Query.AddField "impuestos","usuHora", r("usuhora")
          Query.CreateQuery
          Query.Execute
          r.MoveNext
    Wend    

    if n > 0 Then
       Progress.Destroy
    end if

End Sub


Public Sub ImportaProds( nBitacora )

    Set Query = NewQuery
    Set Query.Connection = Ambiente.ConfigConnection 

    Set r = CreaRecordSet( "SELECT COUNT(*) FROM histcamb WHERE bitacora = " & nBitacora & " ORDER BY sucursal", Ambiente.Connection )
    nCuantos = Val2(r(0))
    Set r = CreaRecordSet( "SELECT histcamb.*, prods.descrip, prods.granel, prods.impuesto, prods.bajocosto, prods.bloqueado FROM histcamb INNER JOIN prods USING( articulo ) WHERE histcamb.bitacora = " & nBitacora, Ambiente.Connection )

    Set Progress = NewProgress()    

    if nCuantos > 0 Then
       Progress.Anim nCuantos, "Importando bitacora " & nBitacora, Ambiente.Path & "\Images\Gears.Avi"    
    end if 
    
    n = 0

    While Not r.EOF
      
          n = n + 1
          Progress.Valor n, "Procesando: " & r("articulo") & " " & r("descrip")

          Query.Reset

          Set rstProd = CreaRecordSet( "SELECT articulo FROM prods WHERE articulo = '" & r( "articulo" ) & "'", Ambiente.ConfigConnection )

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

          Query.AddField "prods","ARTICULO", r("articulo")
          Query.AddField "prods","DESCRIP", r("descrip")
          Query.AddField "prods","LINEA", "SYS"
          Query.AddField "prods","MARCA", "SYS"
          Query.AddField "prods","PRECIO1", r("precio1")
          Query.AddField "prods","PRECIO2", r("precio2")
          Query.AddField "prods","PRECIO3", r("precio3")
          Query.AddField "prods","PRECIO4", r("precio4")
          Query.AddField "prods","PRECIO5", r("precio5")
          Query.AddField "prods","PRECIO6", r("precio6")
          Query.AddField "prods","PRECIO7", r("precio7")
          Query.AddField "prods","PRECIO8", r("precio8")
          Query.AddField "prods","PRECIO9", r("precio9")
          Query.AddField "prods","PRECIO10", r("precio10")
          Query.AddField "prods","EXISTENCIA", 0
          Query.AddField "prods","COSTO_U", 0
          Query.AddField "prods","COSTO", 0
          Query.AddField "prods","UNIDAD", "SYS"
          Query.AddField "prods","POR_RECIB", 0
          Query.AddField "prods","POR_SURT", 0
          Query.AddField "prods","IMPUESTO", r("impuesto")
          Query.AddField "prods","MINIMO", 0
          Query.AddField "prods","MAXIMO", 0
          Query.AddField "prods","OBSERV", ""
          Query.AddField "prods","COSTO_STD", 0
          Query.AddField "prods","KIT", 0
          Query.AddField "prods","SERIE", 0
          Query.AddField "prods","LOTE", 0
          Query.AddField "prods","INVENT", 0
          Query.AddField "prods","ALM1", 0
          Query.AddField "prods","ALM2", 0
          Query.AddField "prods","ALM3", 0
          Query.AddField "prods","ALM4", 0
          Query.AddField "prods","ALM5", 0
          Query.AddField "prods","ALM6", 0
          Query.AddField "prods","ALM7", 0
          Query.AddField "prods","ALM8", 0
          Query.AddField "prods","ALM9", 0
          Query.AddField "prods","ALM10", 0
          Query.AddField "prods","IMAGEN", ""
          Query.AddField "prods","PARAVENTA", 1
          Query.AddField "prods","URL", ""
          Query.AddField "prods","Curso", 0
          Query.AddField "prods","USUARIO", ""
          Query.AddField "prods","USUHORA", ""
          Query.AddField "prods","USUFECHA", Date
          Query.AddField "prods","Exportado", 0
          Query.AddField "prods","EN_VENTA", 0
          Query.AddField "prods","Recalcular", 0
          Query.AddField "prods","Granel", r("granel")
          Query.AddField "prods","Peso", 0
          Query.AddField "prods","BajoCosto", r("bajocosto")
          Query.AddField "prods","Bloqueado", r("bloqueado")
          Query.AddField "prods","U1", 0
          Query.AddField "prods","U2", 0
          Query.AddField "prods","U3", 0
          Query.AddField "prods","U4", 0
          Query.AddField "prods","U5", 0
          Query.AddField "prods","U6", 0
          Query.AddField "prods","U7", 0
          Query.AddField "prods","U8", 0
          Query.AddField "prods","U9", 0
          Query.AddField "prods","U10", 0
          Query.AddField "prods","Acaja", 0
          Query.AddField "prods","MODIFICAPRECIO", 0
          Query.AddField "prods","Fraccionario", 0
          Query.AddField "prods","IESPECIAL", 0
          Query.AddField "prods","UBICACION", "SYS"
          Query.AddField "prods","C2", r("c2")
          Query.AddField "prods","C3", r("c3")
          Query.AddField "prods","C4", r("c4")
          Query.AddField "prods","C5", r("c5")
          Query.AddField "prods","C6", r("c6")
          Query.AddField "prods","C7", r("c7")
          Query.AddField "prods","C8", r("c8")
          Query.AddField "prods","C9", r("c9")
          Query.AddField "prods","C10", r("c10")
          Query.AddField "prods","Movimientos", 0
          Query.AddField "prods","Clasificacion", ""
          Query.AddField "prods","ROP", 0
          Query.AddField "prods","rotacion", 0
          Query.AddField "prods","clasifant", ""
          Query.AddField "prods","eoq", 0
          Query.AddField "prods","etiquetas", 0
          Query.AddField "prods","modelo", ""
          Query.AddField "prods","color", ""
          Query.AddField "prods","talla", ""
          Query.CreateQuery
          Query.Execute

          ImportaClavesAdd r("articulo")

          r.MoveNext
    Wend    

    if n > 0 Then
       Progress.Destroy
    end if

End Sub



Public Sub ImportaEstaciones()

    Set Query = NewQuery
    Set Query.Connection = Ambiente.ConfigConnection 

    Set r = CreaRecordSetEnCliente( "SELECT * FROM estaciones WHERE estacion = '" & Ambiente.Estacion & "'", Ambiente.Connection )
    Ambiente.ConfigConnection.Execute "DELETE FROM estaciones"

    Set Progress = NewProgress()    

    if r.RecordCount > 0 Then
       Progress.Anim r.RecordCount, "Importando estaciones", Ambiente.Path & "\Images\Gears.Avi"    
    end if 
    
    n = 0

    While Not r.EOF
      
          n = n + 1
          Progress.Valor n, "Procesando estacion: " & Ambiente.Estacion

          Query.Reset
          Query.strState = "INSERT"
          Query.AddField "estaciones","Estacion", r("estacion")
          Query.AddField "estaciones","Moneda", r("moneda")
          Query.AddField "estaciones","Almacen", r("almacen")
          Query.AddField "estaciones","Venta", r("venta")
          Query.AddField "estaciones","Lector", r("lector")
          Query.AddField "estaciones","ImpFact", r("impfact")
          Query.AddField "estaciones","TantosFac", r("tantosfac")
          Query.AddField "estaciones","ImpRem", r("ImpRem")
          Query.AddField "estaciones","TantosRem", r("TantosRem")
          Query.AddField "estaciones","TantosDev", r("TantosDev")
          Query.AddField "estaciones","ImpDev", r("ImpDev")
          Query.AddField "estaciones","CobroFac", r("CobroFac")
          Query.AddField "estaciones","CobroRem", r("CobroRem")
          Query.AddField "estaciones","CommPort", r("CommPort")
          Query.AddField "estaciones","DigitoComm", r("DigitoComm")
          Query.AddField "estaciones","VentaRapida", r("VentaRapida")
          Query.AddField "estaciones","Velocidad", r("Velocidad")
          Query.AddField "estaciones","AGENTE", r("agente")
          Query.AddField "estaciones","RPRODS", r("rprods")
          Query.AddField "estaciones","RCLIENTES", r("rclientes")
          Query.AddField "estaciones","MUSICA", r("musica")
          Query.AddField "estaciones","Cajon", r("cajon")
          Query.AddField "estaciones","CambiarDoc", r("cambiardoc")
          Query.AddField "estaciones","COMPRARAPIDA", r("comprarapida")
          Query.AddField "estaciones","PAGACOMPRA", r("pagacompra")
          Query.AddField "estaciones","PartFac", r("partfac")
          Query.AddField "estaciones","MONITOR", r("monitor")
          Query.AddField "estaciones","SerieLote", r("SerieLote")
          Query.AddField "estaciones","Pagos", r("pagos")
          Query.AddField "estaciones","Precant", r("precant")
          Query.AddField "estaciones","ConcentraVentas", r("ConcentraVentas")
          Query.AddField "estaciones","Servidor", r("Servidor")
          Query.AddField "estaciones","Bitacora", r("Bitacora")
          Query.AddField "estaciones","Gastos", r("Gastos")
          Query.AddField "estaciones","Viaje", r("Viaje")
          Query.AddField "estaciones","cobroencaja", r("cobroencaja")
          Query.AddField "estaciones","vencomp", r("vencomp")
          Query.AddField "estaciones","Incrementos", r("Incrementos")
          Query.AddField "estaciones","CallerId", r("CallerId")
          Query.AddField "estaciones","unidadespunto", r("unidadespunto")
          Query.AddField "estaciones","recestaciones", r("recestaciones")
          Query.AddField "estaciones","existenciapunto", r("existenciapunto")
          Query.AddField "estaciones","enventa", r("enventa")
          Query.AddField "estaciones","porsurt", r("porsurt")
          Query.AddField "estaciones","autorizapedido", r("autorizapedido")
          Query.AddField "estaciones","intereses", r("intereses")
          Query.AddField "estaciones","decimales", r("decimales")
          Query.AddField "estaciones","ndecimales", r("ndecimales")
          Query.AddField "estaciones","scajon", r("scajon")
          Query.AddField "estaciones","pcajon", r("pcajon")
          Query.AddField "estaciones","bascula", r("bascula")
          Query.AddField "estaciones","basculalector", r("basculalector")
          Query.AddField "estaciones","procbascula", r("procbascula")
          Query.AddField "estaciones","pbascula", r("pbascula")
          Query.AddField "estaciones","vbascula", r("vbascula")
          Query.AddField "estaciones","bitbascula", r("bitbascula")
          Query.AddField "estaciones","paridadbascula", r("paridadbascula")
          Query.AddField "estaciones","torreta", r("torreta")
          Query.AddField "estaciones","proctorreta", r("proctorreta")
          Query.AddField "estaciones","ptorreta", r("ptorreta")
          Query.AddField "estaciones","vtorreta", r("vtorreta")
          Query.AddField "estaciones","bittorreta", r("bittorreta")
          Query.AddField "estaciones","paridadtorreta", r("paridadtorreta")
          Query.AddField "estaciones","inventario", r("inventario")
          Query.AddField "estaciones","precios", r("precios")
          Query.AddField "estaciones","lectorserial", r("lectorserial")
          Query.AddField "estaciones","proclector", r("proclector")
          Query.AddField "estaciones","plector", r("plector")
          Query.AddField "estaciones","Desconectado", r("Desconectado")
          Query.CreateQuery
          Query.Execute
          r.MoveNext
    Wend    



    if n > 0 Then
       Progress.Destroy
    end if

End Sub



Public Sub ImportaBitacoras

    Set Query = NewQuery()
    Set Query.Connection = Ambiente.configConnection
    
    Set rstMaxBitacora = CreaRecordSet( "SELECT MAX( bitacora ) FROM bitproc", Ambiente.configConnection )
    nSiguiente = Val2(rstMaxBitacora(0)) + 1
    
    Set rstBitacoras = CreaRecordSet( "SELECT * FROM bitacora WHERE id >= " & nSiguiente, Ambiente.Connection ) 

    While Not rstBitacoras.EOF 

          ImportaProds rstBitacoras("id")

          Query.Reset
          Query.strState = "INSERT"
          Query.AddField "Bitproc", "bitacora", rstBitacoras("id")
          Query.AddField "Bitproc", "fecha", Date
          Query.AddField "Bitproc", "hora", Libreria.Formato( Time, "hh:mm:ss" )
          Query.CreateQuery
          Query.Execute

          rstBitacoras.MoveNext
    Wend

End Sub