Files
Guna_Picking/B4A/C_terminar.bas
2023-09-07 14:06:59 -06:00

205 lines
7.8 KiB
QBasic

B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=12.2
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
Dim c As Cursor
Dim d As Cursor
Dim e As Cursor
Dim f As Cursor
Dim g As Cursor
Dim h As Cursor
Private et_comentario As EditText
Private et_piezastotal As EditText
Private et_montototal As EditText
Dim reqManager As DBRequestManager
Dim trabajos As Int = 0
Private clv_bo As CustomListView
Private l_codigo As Label
Private l_nombre As Label
Private l_inical As Label
Private l_costo As Label
Private et_piezas As EditText
Private et_preciototal As EditText
Private et_cantidadbo As EditText
Private et_preciobo As EditText
Private p_sinbo As Panel
Private Label11 As Label
Private Label13 As Label
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("termino")
reqManager.Initialize(Me, Starter.DBReqServer)
End Sub
Sub B4XPage_Appear
trabajos = 0
et_comentario.Text = ""
c = Starter.skmt.ExecQuery("SELECT * FROM CAT_DETALLEFOLIO")
e = Starter.skmt.ExecQuery("SELECT * FROM CUENTAA")
e.Position = 0
d = Starter.skmt.ExecQuery("SELECT * FROM CAT_FOLIOS WHERE CAT_FOLIO IN (SELECT CUENTA FROM CUENTAA)")
d.Position = 0
Starter.skmt.ExecNonQuery2("delete from CAT_PICKING WHERE ALMACEN = ? AND RUTA = ?",Array As String(e.GetString("ALMACEN"), e.GetString("CUENTA")))
For i = 0 To c.RowCount -1
c.Position = i
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_PICKING(ALMACEN, RUTA, CODIGO, NOMBREPROD, CAJASOR, PIEZASOR, BLISTEROR, CAJASES, PIEZASES, BLISTERSES, USUARIO, FECHAINICIO, FECHAFIN, PIEZASTOTAL, PRECIOTOTAL, CANTIDADOR, PRECIOOR, CANTIDADBO, PRECIOBO, ENVIADO) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0)",Array As String(e.GetString("ALMACEN"), e.GetString("CUENTA"), c.GetString("CAT_DF_ID"), c.GetString("CAT_DF_NOMBRE"), c.GetString("CAT_DF_CAJAS"), c.GetString("CAT_DF_PIEZAS"), c.GetString("CAT_DF_BLISTER"), c.GetString("CAT_DF_PIEZAS_ESC"), c.GetString("CAT_DF_CAJAS_ESC"), c.GetString("CAT_DF_BLISTER_ESC"),B4XPages.MainPage.user, d.GetString("CAT_FOLIO_INICIO"),d.GetString("CAT_FOLIO_FINAL"),c.GetString("PIEZASTOTAL"),c.GetString("PRECIOTOTAL"),c.GetString("CANTIDAD"),c.GetString("PRECIOORDEN"),c.GetString("CANTIDADBO"),c.GetString("PRECIOBO")))
Next
g = Starter.skmt.ExecQuery2("SELECT CODIGO, NOMBREPROD, CANTIDADBO , PRECIOBO FROM CAT_PICKING WHERE CANTIDADBO > 0 AND ALMACEN = ? AND RUTA = ?", Array As String(e.GetString("ALMACEN"), e.GetString("CUENTA")))
If g.RowCount = 0 Then
clv_bo.AsView.Visible = False
p_sinbo.Visible = True
Label11.Visible = False
Label13.Visible = False
f = Starter.skmt.ExecQuery("SELECT SUM(PIEZASTOTAL) AS TOTALTPIEZAS, SUM(PRECIOTOTAL) AS TOTALPRECIO, SUM(CANTIDADOR) AS CANTIDADORI, SUM(PRECIOOR) AS PRECIOORI, SUM (CANTIDADBO) AS CANTIDADBACK, SUM (PRECIOBO) AS PRECIOBACK FROM CAT_PICKING WHERE RUTA IN (SELECT CUENTA FROM CUENTAA) AND ALMACEN IN (SELECT ALMACEN FROM CUENTAA) ")
f.Position = 0
h = Starter.skmt.ExecQuery("SELECT COSTO_TOT FROM COSTO")
h.Position = 0
et_piezastotal.Text = f.GetString("TOTALTPIEZAS")
et_montototal.Text = ""
et_piezas.Text = f.GetString("CANTIDADORI")
et_preciototal.Text = h.GetString("COSTO_TOT")
et_cantidadbo.Text = f.GetString("CANTIDADBACK")
et_preciobo.Text = ""
c.Close
d.Close
e.Close
f.Close
h.Close
Else
p_sinbo.Visible = False
Label11.Visible = True
Label13.Visible = True
clv_bo.AsView.Visible = True
clv_bo.Clear
For i = 0 To g.RowCount - 1
g.Position = i
clv_bo.Add(CreateListItem(g.GetString("CODIGO"), g.GetString("NOMBREPROD"), g.GetString("CANTIDADBO"), g.GetString("PRECIOBO")),i)
Next
g.Close
f = Starter.skmt.ExecQuery("SELECT SUM(PIEZASTOTAL) AS TOTALTPIEZAS, SUM(PRECIOTOTAL) AS TOTALPRECIO, SUM(CANTIDADOR) AS CANTIDADORI, SUM(PRECIOOR) AS PRECIOORI, SUM (CANTIDADBO) AS CANTIDADBACK, SUM (PRECIOBO) AS PRECIOBACK FROM CAT_PICKING WHERE RUTA IN (SELECT CUENTA FROM CUENTAA) AND ALMACEN IN (SELECT ALMACEN FROM CUENTAA) ")
f.Position = 0
h = Starter.skmt.ExecQuery("SELECT COSTO_TOT FROM COSTO")
h.Position = 0
et_piezastotal.Text = f.GetString("TOTALTPIEZAS")
et_montototal.Text = h.GetString("COSTO_TOT")
et_piezas.Text = f.GetString("CANTIDADORI")
et_preciototal.Text = h.GetString("COSTO_TOT")
et_cantidadbo.Text = f.GetString("CANTIDADBACK")
et_preciobo.Text = f.GetString("PRECIOBACK")
c.Close
d.Close
e.Close
f.Close
h.Close
End If
End Sub
Sub CreateListItem(codigo As String, nombre As String, cantidad As String, costo As String) As Panel
Dim p As B4XView = xui.CreatePanel("")
p.SetLayoutAnimated(0, 0, 0, 1, 115)
p.LoadLayout("dpicking")
p.Height= 60dip
' p.Width = clv_orden.GetBase.Width
' lb_folio.Height = p.Height *0.8
l_codigo.Text = codigo
l_nombre.Text = nombre
l_inical.Text = cantidad
l_costo.Text = NumberFormat2(costo,1,2,2,True)
' Log(p.Width)
Return p
End Sub
Private Sub b_enviar_Click
trabajos = 0
c = Starter.skmt.ExecQuery("SELECT ALMACEN, RUTA, CODIGO, NOMBREPROD, CAJASOR, PIEZASOR, BLISTEROR, CAJASES, PIEZASES, BLISTERSES, USUARIO, FECHAINICIO, FECHAFIN, ENVIADO FROM CAT_PICKING WHERE ENVIADO = 0")
If c.RowCount>0 Then
ProgressDialogShow("Enviando datos")
For i=0 To c.RowCount -1
c.Position=i
d = Starter.skmt.ExecQuery("SELECT FECHACONSULTA FROM FECHA")
d.Position = 0
Dim fecha As String = d.GetString("FECHACONSULTA")
d.Close
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_picking_GUNA"
cmd.Parameters = Array As Object(c.GetString("ALMACEN"),c.GetString("RUTA"),c.GetString("CODIGO"),c.GetString("NOMBREPROD"),c.GetString("CAJASOR"),c.GetString("PIEZASOR"),c.GetString("BLISTEROR"),c.GetString("CAJASES"),c.GetString("PIEZASES"),c.GetString("BLISTERSES"),c.GetString("USUARIO"),c.GetString("FECHAINICIO"),c.GetString("FECHAFIN"),et_comentario.Text,fecha)
reqManager.ExecuteCommand(cmd , $"ins_pickingPendientes_head_${c.GetString("CODIGO")}"$)
trabajos = trabajos +1
Next
Else If c.RowCount = 0 Then
e = Starter.skmt.ExecQuery("SELECT * FROM CUENTAA")
e.Position = 0
Starter.skmt.ExecNonQuery2("UPDATE CUENTAA SET ESTATUS = ? WHERE CUENTA = ?",Array As String (0,e.GetString("CUENTA")))
B4XPages.MainPage.seleccion.almacen = e.GetString("ALMACEN")
B4XPages.ShowPage("almacen")
ProgressDialogHide
e.Close
End If
c.Close
End Sub
Sub JobDone(Job As HttpJob)
Log(Job.Success)
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) 'Mod por CHV - 211027
If Job.JobName = "DBRequest" Then
Dim resultado As DBResult = reqManager.HandleJob(Job)
If resultado.Tag.As(String).IndexOf("ins_pickingPendientes_head_") > -1 Then
trabajos = trabajos-1
Private codigo As String= resultado.Tag
codigo = codigo.SubString(codigo.IndexOf("_")+24)
Log($"Cliente1:${codigo}"$)
Starter.skmt.ExecNonQuery2("UPDATE CAT_PICKING SET ENVIADO = ? WHERE CODIGO = ? AND ENVIADO <> 1",Array As String ("1", codigo))
For Each records() As Object In resultado.Rows
For Each k As String In resultado.Columns.Keys
Log(resultado.Tag & ": " & k & ": " & records(resultado.Columns.Get(k)))
Next
Next
End If
End If
Job.Release
If trabajos = 0 Then
ProgressDialogHide
Log("estoyaqui")
e = Starter.skmt.ExecQuery("SELECT * FROM CUENTAA")
e.Position = 0
Starter.skmt.ExecNonQuery2("UPDATE CUENTAA SET ESTATUS = ? WHERE CUENTA = ?",Array As String (0,e.GetString("CUENTA")))
B4XPages.MainPage.seleccion.almacen = e.GetString("ALMACEN")
B4XPages.ShowPage("almacen")
ProgressDialogHide
e.Close
' B4XPages.ShowPage("seleccion")
End If
End If
End Sub