Files
Guna_Picking/B4A/C_seleccion.bas
cvaldes1201 860ee42ad2 5.11.12
2026-03-10 10:20:46 -06:00

570 lines
17 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
Dim d As Cursor
Dim e As Cursor
Dim f As Cursor
Dim g As Cursor
Private lb_folio As Label
Dim folioactual As String
Dim user As String
Dim almacen As String
Dim sDate,sTime As String
Dim fechabusqueda As String
'calendario
Private p_calendario As Panel
Private ASWheelPicker1 As ASWheelPicker
Private ASWheelPicker2 As ASWheelPicker
Private ASWheelPicker3 As ASWheelPicker
Private l_fecha_caducidad As Label
Dim day As String = DateTime.GetDayOfMonth(DateTime.Now)
Dim month As String = DateTime.GetMonth(DateTime.Now)
Dim year2 As String = DateTime.GetYear(DateTime.Now)
Dim month2 As String
Private bgfecha As Button
Dim b_cad As Button
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
p_calendario.Width = Root.Width
p_calendario.Height= Root.Height
p_calendario.Visible = False
'Creacion de spinners para caducidad
Dim dias As List : dias.Initialize
Log(month)
For i = 1 To 31
Dim Item As ASWheelPicker_Item
Item.Initialize
Item.Text = i
Item.Value = i
Item.ItemTextProperties = ASWheelPicker1.ItemTextProperties
Item.ItemTextProperties.TextColor = (0x8FF000000)
dias.Add(Item)
Next
ASWheelPicker1.AddItems(dias)
Dim mes0 As List : mes0.Initialize
mes0 = Array As String("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre")
Dim mes As List
mes.Initialize
For Each o As Object In mes0
Dim Item As ASWheelPicker_Item
Item.Initialize
Item.Text = o
Item.Value = o
Item.ItemTextProperties = ASWheelPicker2.ItemTextProperties
Item.ItemTextProperties.TextColor = (0x8FF000000)
mes.Add(Item)
Next
ASWheelPicker2.AddItems(mes)
Dim year As List : year.Initialize
' For i = DateTime.GetYear(DateTime.Now) To DateTime.GetYear(DateTime.Now) + 4
Dim Item As ASWheelPicker_Item
Item.Initialize
Item.Text = DateTime.GetYear(DateTime.Now)
Item.Value = DateTime.GetYear(DateTime.Now)
Item.ItemTextProperties = ASWheelPicker3.ItemTextProperties
Item.ItemTextProperties.TextColor = (0x8FF000000)
year.Add(Item)
' Next
ASWheelPicker3.AddItems(year)
ASWheelPicker1.Refresh
ASWheelPicker2.Refresh
ASWheelPicker3.Refresh
If (DateTime.GetMonth(DateTime.Now)= 1 Or DateTime.GetMonth(DateTime.Now)= 2 Or DateTime.GetMonth(DateTime.Now)= 3 Or DateTime.GetMonth(DateTime.Now)= 4 Or DateTime.GetMonth(DateTime.Now)= 5 Or DateTime.GetMonth(DateTime.Now)= 6 Or DateTime.GetMonth(DateTime.Now)= 7 Or DateTime.GetMonth(DateTime.Now)= 8 Or DateTime.GetMonth(DateTime.Now)= 9 ) Then
l_fecha_caducidad.Text = DateTime.GetDayOfMonth(DateTime.Now)&"/"&"0"&DateTime.GetMonth(DateTime.Now)&"/"&DateTime.GetYear(DateTime.Now)
End If
End Sub
Sub B4XPage_Appear
cl_folios.AsView.Visible = False
user = B4XPages.MainPage.user
almacen = B4XPages.MainPage.almacen.almacencarga
Log("ESTE ES EL ALMACEN "&almacen)
trabajos = 0
trabajo1 = 1
b_cargar_Click
c = Starter.skmt.ExecQuery("SELECT FECHACONSULTA FROM FECHA")
c.Position = 0
If c.RowCount = 0 Then
b_cad.Text = "Fecha consulta"
Else If c.RowCount > 0 Then
b_cad.Text = c.GetString("FECHACONSULTA")
End If
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Private Sub b_cad_Click
p_calendario.Visible = True
End Sub
Private Sub b_cadcancel_Click
If b_cad.Text <> "Fecha consulta" Then
p_calendario.Visible = False
Else
p_calendario.Visible = False
b_cad.Text = "Fecha consulta"
End If
End Sub
Private Sub ASWheelPicker1_ItemChange(Column As Int,ListIndex As Int)
l_fecha_caducidad.Text = ASWheelPicker1.GetSelectedItem(Column).Text
day = ASWheelPicker1.GetSelectedItem(Column).Text
If day = 1 Or day = "2" Or day = "3" Or day = "4" Or day = "5" Or day = "6" Or day = "7" Or day = "8" Or day = "9" Then
l_fecha_caducidad.Text = "0"&day&"/"&month2&"/"&year2
Else
l_fecha_caducidad.Text = day&"/"&month2&"/"&year2
End If
End Sub
Private Sub ASWheelPicker2_ItemChange(Column As Int,ListIndex As Int)
l_fecha_caducidad.Text = ASWheelPicker2.GetSelectedItem(Column).Text
month = ASWheelPicker2.GetSelectedItem(Column).Text
If month = "Enero" Then
month2 = "01"
Else If month = "Febrero" Then
month2 = "02"
Else If month = "Marzo" Then
month2 = "03"
Else If month = "Abril" Then
month2 = "04"
Else If month = "Mayo" Then
month2 = "05"
Else If month = "Junio" Then
month2 = "06"
Else If month = "Julio" Then
month2 = "07"
Else If month = "Agosto" Then
month2 = "08"
Else If month = "Septiembre" Then
month2 = "09"
Else If month = "Octubre" Then
month2 = "10"
Else If month = "Noviembre" Then
month2 = "11"
Else If month = "Diciembre" Then
month2 = "12"
End If
If day = 1 Or day = "2" Or day = "3" Or day = "4" Or day = "5" Or day = "6" Or day = "7" Or day = "8" Or day = "9" Then
l_fecha_caducidad.Text = "0"&day&"/"&month2&"/"&year2
Else
l_fecha_caducidad.Text = day&"/"&month2&"/"&year2
End If
End Sub
Private Sub ASWheelPicker3_ItemChange(Column As Int,ListIndex As Int)
l_fecha_caducidad.Text = ASWheelPicker3.GetSelectedItem(Column).Text
year2 = ASWheelPicker3.GetSelectedItem(Column).Text
If day = 1 Or day = "2" Or day = "3" Or day = "4" Or day = "5" Or day = "6" Or day = "7" Or day = "8" Or day = "9" Then
l_fecha_caducidad.Text = "0"&day&"/"&month2&"/"&year2
Else
l_fecha_caducidad.Text = day&"/"&month2&"/"&year2
End If
End Sub
Private Sub bgfecha_Click
If l_fecha_caducidad.Text = "" Then
b_cad.text = "Fecha consulta"
Else
If month = "Febrero" And (day = 31 Or day = 30) And (year2 Mod 4) = 0 Then
Log(year2 Mod 4)
b_cad.Text = "29"&"/"&month2&"/"&year2
Starter.skmt.ExecNonQuery("delete from FECHA")
Starter.skmt.ExecNonQuery2("INSERT INTO FECHA(FECHACONSULTA)VALUES (?)",Array As String(b_cad.Text))
Else If month = "Febrero" And (day = 31 Or day = 30 Or day = 29) And (year2 Mod 4) > 1 Then
b_cad.Text = "28"&"/"&month2&"/"&year2
Starter.skmt.ExecNonQuery("delete from FECHA")
Starter.skmt.ExecNonQuery2("INSERT INTO FECHA(FECHACONSULTA)VALUES (?)",Array As String(b_cad.Text))
Else If month = "Abril" And day = 31 Then
b_cad.Text = "30"&"/"&month2&"/"&year2
Starter.skmt.ExecNonQuery("delete from FECHA")
Starter.skmt.ExecNonQuery2("INSERT INTO FECHA(FECHACONSULTA)VALUES (?)",Array As String(b_cad.Text))
Else If month = "Junio" And day = 31 Then
b_cad.Text = "30"&"/"&month2&"/"&year2
Starter.skmt.ExecNonQuery("delete from FECHA")
Starter.skmt.ExecNonQuery2("INSERT INTO FECHA(FECHACONSULTA)VALUES (?)",Array As String(b_cad.Text))
Else If month = "Septiembre" And day = 31 Then
b_cad.Text = "30"&"/"&month2&"/"&year2
Starter.skmt.ExecNonQuery("delete from FECHA")
Starter.skmt.ExecNonQuery2("INSERT INTO FECHA(FECHACONSULTA)VALUES (?)",Array As String(b_cad.Text))
Else If month = "Noviembre" And day = 31 Then
b_cad.Text = "30"&"/"&month2&"/"&year2
Starter.skmt.ExecNonQuery("delete from FECHA")
Starter.skmt.ExecNonQuery2("INSERT INTO FECHA(FECHACONSULTA)VALUES (?)",Array As String(b_cad.Text))
Else
b_cad.Text = l_fecha_caducidad.Text
Starter.skmt.ExecNonQuery("delete from FECHA")
Starter.skmt.ExecNonQuery2("INSERT INTO FECHA(FECHACONSULTA)VALUES (?)",Array As String(b_cad.Text))
End If
p_calendario.Visible = False
End If
End Sub
Sub b_cargar_Click
trabajos = 0
trabajo1 = 1
cl_folios.Clear
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_rutas_guna_PICKING"
cmd.Parameters = Array As Object(almacen)
reqManager.ExecuteQuery(cmd , 0, "rutas")
trabajos = trabajos +1
cmd.Initialize
cmd.Name = "select_conversiones_GUNA"
cmd.Parameters = Array As Object(almacen)
reqManager.ExecuteQuery(cmd , 0, "conversion")
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
If b_cad.Text <> "Fecha consulta" Then
fechabusqueda = b_cad.Text
Log(fechabusqueda)
folioactual = Sender.As(Label).Text
Log(folioactual)
Log(almacen)
DateTime.DateFormat = "dd/MM/yyyy"
DateTime.Timeformat = "HH:mm:ss"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
d = Starter.skmt.ExecQuery("SELECT CUENTA FROM CUENTAA")
d.Position = 0
If d.RowCount > 0 Then
Log("1")
If d.GetString("CUENTA") <> folioactual Then
Log("2")
c = Starter.skmt.ExecQuery("SELECT CUENTA FROM CUENTAA WHERE ESTATUS = 1")
c.Position = 0
If c.RowCount = 0 Then
Log("3")
Msgbox2Async("Estas seguro de empezar a pickear la ruta : "& folioactual &" del almacen: "& B4XPages.MainPage.almacen.almacenselec,"Atención","Si","","No",Null, False)
Wait For Msgbox_Result (result As Int)
If result=DialogResponse.POSITIVE Then
Log((almacen& ", "& folioactual& ", "&fechabusqueda& ", "&almacen))
Log(almacen)
If almacen = 81 Then
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_productos_guna_picking_BAT"
cmd.Parameters = Array As Object(almacen, folioactual,fechabusqueda,almacen)
reqManager.ExecuteQuery(cmd , 0, "detallefolio")
trabajo1 = trabajo1 + 1
cmd.Initialize
cmd.Name = "select_costo_tot_GUNA_BAT"
cmd.Parameters = Array As Object(almacen, folioactual,fechabusqueda,almacen)
reqManager.ExecuteQuery(cmd , 0, "costo")
trabajo1 = trabajo1 +1
Else
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_productos_guna_picking"
cmd.Parameters = Array As Object(almacen, folioactual,fechabusqueda,almacen)
reqManager.ExecuteQuery(cmd , 0, "detallefolio")
trabajo1 = trabajo1 + 1
cmd.Initialize
cmd.Name = "select_costo_tot_GUNA"
cmd.Parameters = Array As Object(almacen, folioactual,fechabusqueda,almacen)
reqManager.ExecuteQuery(cmd , 0, "costo")
trabajo1 = trabajo1 +1
End If
ProgressDialogShow ("Cargando")
Starter.skmt.ExecNonQuery("delete from CUENTAA")
Starter.skmt.ExecNonQuery2("UPDATE CAT_FOLIOS SET CAT_FOLIO_INICIO = ? WHERE CAT_FOLIO = ? ", Array As String((sDate&" "&sTime), folioactual))
Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA (CUENTA, ESTATUS, ALMACEN) VALUES (?,?,?)", Array As Object (folioactual,"0", almacen))
End If
Else
MsgboxAsync("La ruta "&c.GetString("CUENTA")& " aun no ha sido termianda.","Atención")
Log("4")
End If
Else IF d.GetString("CUENTA") = folioactual Then
Log("5")
B4XPages.ShowPage("picking")
End If
Else If d.RowCount = 0 Then
Log("6")
Msgbox2Async("Estas seguro de empezar a pickear la ruta : "& folioactual &" del almacen: "& B4XPages.MainPage.almacen.almacenselec,"Atención","Si","","No",Null, False)
Wait For Msgbox_Result (result As Int)
If result=DialogResponse.POSITIVE Then
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_productos_guna_picking"
cmd.Parameters = Array As Object(almacen, folioactual,fechabusqueda,almacen)
reqManager.ExecuteQuery(cmd , 0, "detallefolio")
trabajo1 = trabajo1 + 1
cmd.Initialize
cmd.Name = "select_costo_tot_GUNA"
cmd.Parameters = Array As Object(almacen, folioactual,fechabusqueda,almacen)
reqManager.ExecuteQuery(cmd , 0, "costo")
trabajo1 = trabajo1 +1
ProgressDialogShow ("Cargando")
Starter.skmt.ExecNonQuery("delete from CUENTAA")
Starter.skmt.ExecNonQuery2("UPDATE CAT_FOLIOS SET CAT_FOLIO_INICIO = ? WHERE CAT_FOLIO = ? ", Array As String((sDate&" "&sTime), folioactual))
Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA (CUENTA, ESTATUS, ALMACEN) VALUES (?,?,?)", Array As Object (folioactual,"0", almacen))
End If
End If
c.Close
d.Close
Else
MsgboxAsync("Captura la fecha a buscar","Atención")
End If
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 = "rutas" Then 'query tag
trabajos = trabajos - 1
trabajo1 = 1
Log(trabajos)
Starter.skmt.ExecNonQuery("delete from CAT_FOLIOS")
For Each records() As Object In result.Rows
Dim FOLIO As String = records(result.Columns.Get("RUTA_ENTREGA"))
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_FOLIOS (CAT_FOLIO) VALUES (?)", Array As Object (FOLIO))
Next
cl_folios.AsView.Visible = True
c = Starter.skmt.ExecQuery("SELECT CAT_FOLIO FROM CAT_FOLIOS")
cl_folios.Clear
For i = 0 To c.RowCount - 1
c.Position = i
e = Starter.skmt.ExecQuery2("SELECT ALMACEN, RUTA FROM CAT_PICKING WHERE RUTA = ? AND ALMACEN = ? GROUP BY ALMACEN, RUTA ORDER BY RUTA",Array As String(c.GetString("CAT_FOLIO"),almacen))
e.Position = 0
cl_folios.Add(CreateListItem(c.GetString("CAT_FOLIO")),i)
If e.RowCount = 0 Then
lb_folio.Color = Colors.White
Else
lb_folio.Color = Colors.Green
End If
Next
c.Close
End If
End If
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "conversion" Then 'query tag
trabajos = trabajos - 1
trabajo1 = 1
Log(trabajos)
Starter.skmt.ExecNonQuery("delete from CAT_CONVERSION")
For Each records() As Object In result.Rows
Dim IDCONVER As String = records(result.Columns.Get("CAT_GP_ID"))
Dim NOMBRECONVER As String = records(result.Columns.Get("CAT_GP_NOMBRE"))
Dim CAJASPIEZAS As String = records(result.Columns.Get("CAT_GP_CONVERSION1"))
Dim BLISTERPIEZAS As String = records(result.Columns.Get("CAT_GP_CONVERSION2"))
Dim PRECIOPIEZAS As String = records(result.Columns.Get("CAT_GP_PRECIO"))
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_CONVERSION (ID, NOMBRE, CAJASPIEZAS, BLISTERPIEZAS, PRECIO) VALUES (?,?,?,?,?)", Array As Object (IDCONVER,NOMBRECONVER, CAJASPIEZAS,BLISTERPIEZAS,PRECIOPIEZAS))
Next
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("CODIGO"))
Dim NOMBRE As String = records(result.Columns.Get("NOMBRE"))
Dim orden As String = records(result.Columns.Get("CAT_GP_ORDENAMIENTO"))
Dim PIEZAS As String = records(result.Columns.Get("PIEZAS"))
Dim CAJAS As String = records(result.Columns.Get("CAJAS"))
Dim BLISTER As String = records(result.Columns.Get("BLISTER"))
Dim RUTA2 As String = records(result.Columns.Get("CAT_GP_RUTA"))
Dim CANTIDAD As String = records(result.Columns.Get("CANTIDAD"))
Dim RUTA As String = folioactual
Dim almacen3 As String = almacen
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_DETALLEFOLIO(CAT_DF_ID, CAT_DF_NOMBRE, CAT_DF_RUTA, CAT_DF_PIEZAS, CAT_DF_CAJAS, CAT_DF_BLISTER, CAT_DF_RUTA, CAT_DF_ALMACEN, CAT_DF_ESTATUS, CAT_DF_RUTAO, CANTIDAD) VALUES (?,?,?,?,?,?,?,?,0,?,?)", Array As Object (ID, NOMBRE, orden, PIEZAS, CAJAS, BLISTER, RUTA, almacen3, RUTA2,CANTIDAD))'' aqui nos quedmos
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "costo" Then 'query tag
trabajo1 = trabajo1 -1
' B4XPages.MainPage.picking.cl_picking.Clear
Starter.skmt.ExecNonQuery("delete from COSTO")
Log("Borre la tabla")
For Each records() As Object In result.Rows
Dim COSTO As String = records(result.Columns.Get("SUM(HVD_COSTO_TOT)"))
Starter.skmt.ExecNonQuery2("INSERT INTO COSTO(COSTO_TOT) VALUES (?)", Array As Object (COSTO))'' aqui nos quedmos
Next
End If
End If
If trabajos = 0 And trabajo1 = 1 Then
ProgressDialogHide
Log("estoyaqui")
Else If trabajo1 = 0 And trabajos = 0 Then
Log(trabajo1)
ProgressDialogHide
B4XPages.ShowPage("picking")
End If
' If trabajos = 0 Then
' ProgressDialogHide
' End If
End If
End Sub
'Private Sub B4XPage_CloseRequest As ResumableSub
'
'' If b_cargar.Visible = True Then
'' B4XPages.ShowPage("almacen")
''
'' End If
'
'' Return True
' Return False
'End Sub
Private Sub b_selecalm_Click
B4XPages.ShowPage("almacen")
End Sub