Files
Salma_Picking/B4A/C_seleccion.bas
2023-09-24 00:57:10 -06:00

314 lines
8.0 KiB
QBasic

B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=11.8
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
Private b_cargar As Button
Dim reqManager As DBRequestManager
Dim trabajos = 0 As Int
Dim trabajo1 = 0 As Int
Private cl_folios As CustomListView
Dim c As Cursor
Private lb_folio As Label
Dim folioactual As String
Dim user As String
Dim almacen As String
Dim cuenta As String
Dim cuenta2 As String
Dim cuenta3 As String
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
Return Me
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
Root.LoadLayout("seleccion")
'load the layout to Root
reqManager.Initialize(Me, Starter.DBReqServer)
trabajos = 0
trabajo1 = 0
user = B4XPages.MainPage.user
almacen = B4XPages.MainPage.ID_ALMACEN
End Sub
Sub B4XPage_Appear
trabajos = 0
trabajo1 = 1
b_cargar_Click
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub b_cargar_Click
cl_folios.Clear
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_folios_SALMA"
cmd.Parameters = Array As Object(B4XPages.MainPage.ID_ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "folios")
trabajos = trabajos +1
ProgressDialogShow ("Cargando")
Log(trabajos)
Log(trabajo1)
' If trabajos = 0 And trabajo1 = 1 Then
' ProgressDialogHide
' End If
End Sub
Sub CreateListItem(mostrar As String) As Panel
Dim p As B4XView = xui.CreatePanel("")
p.SetLayoutAnimated(0, 0, 0, 1, 115)
p.LoadLayout("folio")
p.Height= 60dip
' p.Width = clv_orden.GetBase.Width
lb_folio.Height = p.Height *0.8
lb_folio.Text = mostrar
' Log(p.Width)
Return p
End Sub
Private Sub lb_folio_Click
folioactual = Sender.As(Label).Text
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_pickingtrabajo_SALMA"
cmd.Parameters = Array As Object(folioactual,almacen)
reqManager.ExecuteQuery(cmd , 0, "pickingt")
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_pickingtrabajo2_SALMA"
cmd.Parameters = Array As Object(folioactual,almacen,user)
reqManager.ExecuteQuery(cmd , 0, "pickingt2")
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_pickingtrabajo3_SALMA"
cmd.Parameters = Array As Object(folioactual,almacen)
reqManager.ExecuteQuery(cmd , 0, "pickingt3")
'
' Dim cmd As DBCommand
' cmd.Initialize
' cmd.Name = "select_detalle_folio_SALMA"
' cmd.Parameters = Array As Object(folioactual,B4XPages.MainPage.ID_ALMACEN)
' reqManager.ExecuteQuery(cmd , 0, "detallefolio")
' trabajo1 = trabajo1 + 1
' ProgressDialogShow ("Cargando")
End Sub
Sub JobDone(Job As HttpJob)
If Job.Success = False Then
ToastMessageShow("Error: " & Job.ErrorMessage, True)
Else
LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green)
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "folios" Then 'query tag
trabajos = trabajos - 1
trabajo1 = 1
Starter.skmt.ExecNonQuery("delete from CAT_FOLIOS")
For Each records() As Object In result.Rows
Dim FOLIO As String = records(result.Columns.Get("FOLIO"))
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_FOLIOS (CAT_FOLIO) VALUES (?)", Array As Object (FOLIO))
Next
c = Starter.skmt.ExecQuery("SELECT CAT_FOLIO FROM CAT_FOLIOS")
cl_folios.Clear
For i = 0 To c.RowCount - 1
c.Position = i
cl_folios.Add(CreateListItem(c.GetString("CAT_FOLIO")),i)
Next
c.Close
End If
End If
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "pickingt" Then 'query tag
' B4XPages.MainPage.picking.cl_picking.Clear
For Each records() As Object In result.Rows
cuenta = records(result.Columns.Get("COUNT(*)"))
Log(cuenta)
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "pickingt2" Then 'query tag
' B4XPages.MainPage.picking.cl_picking.Clear
For Each records() As Object In result.Rows
cuenta2 = records(result.Columns.Get("COUNT(*)"))
Log(cuenta2)
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "pickingt3" Then 'query tag
' B4XPages.MainPage.picking.cl_picking.Clear
For Each records() As Object In result.Rows
cuenta3 = records(result.Columns.Get("COUNT(*)"))
Log(cuenta3)
Next
If cuenta = "1" Then
Log("entre")
If cuenta2 = "0" Then
MsgboxAsync("Ruta trabajada por otro ususario","Atención")
else if cuenta2 = "1" Then
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_detalle_folio_SALMA"
cmd.Parameters = Array As Object(folioactual,B4XPages.MainPage.ID_ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "detallefolio")
trabajo1 = trabajo1 + 1
ProgressDialogShow ("Cargando")
Else if cuenta3 = "1" Then
cmd.Initialize
cmd.Name = "update_picking5_SALMA"
cmd.Parameters = Array As Object(user,folioactual,almacen)
reqManager.ExecuteCommand(cmd, "update_picking5")
cmd.Initialize
cmd.Name = "update_picking6_SALMA"
cmd.Parameters = Array As Object(user,folioactual,almacen)
reqManager.ExecuteCommand(cmd, "update_picking6")
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_detalle_folio_SALMA"
cmd.Parameters = Array As Object(folioactual,B4XPages.MainPage.ID_ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "detallefolio")
trabajo1 = trabajo1 + 1
ProgressDialogShow ("Cargando")
End If
Else if cuenta = "0" Then
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_PICKING_TRABAJO_SALMA"
cmd.Parameters = Array As Object(folioactual,almacen,user,user)
reqManager.ExecuteCommand(cmd , "insert_PICKING_TRABAJO_SALMA")
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_PICKING_TRABAJO_REP_SALMA"
cmd.Parameters = Array As Object(folioactual,almacen,user,user)
reqManager.ExecuteCommand(cmd , "insert_PICKING_TRABAJO_REP_SALMA")
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_picking2_SALMA"
cmd.Parameters = Array As Object(user,folioactual,almacen,folioactual,almacen)
reqManager.ExecuteCommand(cmd , "insert_picking2_SALMA")
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_detalle_folio_SALMA"
cmd.Parameters = Array As Object(folioactual,B4XPages.MainPage.ID_ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "detallefolio")
trabajo1 = trabajo1 + 1
ProgressDialogShow ("Cargando")
End If
End If
End If
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "detallefolio" Then 'query tag
trabajo1 = trabajo1 - 2
' B4XPages.MainPage.picking.cl_picking.Clear
Starter.skmt.ExecNonQuery("delete from CAT_DETALLEFOLIO")
Log("Borre la tabla")
For Each records() As Object In result.Rows
Dim ID As String = records(result.Columns.Get("ID"))
Dim NOMBRE As String = records(result.Columns.Get("NOMBRE"))
Dim CANTIDAD As String = records(result.Columns.Get("CANTIDAD"))
Dim ruta As String = folioactual
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_DETALLEFOLIO (CAT_DF_ID, CAT_DF_NOMBRE, CAT_DF_CANTINICIAL, CAT_DF_RUTA) VALUES (?,?,?,?)", Array As Object (ID,NOMBRE,CANTIDAD,ruta))
Next
End If
End If
If trabajos = 0 And trabajo1 = 1 Then
ProgressDialogHide
Else If trabajo1 = 0 And trabajos = 0 Then
ProgressDialogHide
B4XPages.ShowPage("picking")
End If
' If trabajos = 0 Then
' ProgressDialogHide
' End If
End If
End Sub