Verion 05_01_05

Se agrega apartado de productos
Se agrega leyenda de texto en el ticket
Se agrega listado de resumen dia por producto
Se agrega limitador de venta por monto
Se agrega que no se pueda editar ninguna venta una vez guardada
This commit is contained in:
cvaldes1201
2025-01-07 18:03:25 -06:00
parent 580dd54721
commit 56c80c69ed
21 changed files with 679 additions and 374 deletions

View File

@@ -225,6 +225,18 @@ Sub Class_Globals
Dim bitacora As C_Bitacora
Private lv_pedidos_tot As ListView
Private b_regresar As Button
Dim p_pedidos As Panel
Private p_prod As Panel
Private b_regreso As Button
Private iv_productos As ImageView
Private p_productos As Panel
Private lv_prod_Prin As ListView
Private l_prod_p As Label
Private l_prod_c As Label
Private l_tot_prod_c As Label
Private l_tot_prod_p As Label
End Sub
'You can add more parameters here.
@@ -540,8 +552,10 @@ Sub B4XPage_Appear
End If
If l_ruta.Text = "0" Then
p_abordo.Visible = False
p_productos.Visible= False
Else
p_abordo.Visible = False
p_productos.Visible = True
End If
' d = B4XPages.MainPage.skmt.ExecQuery("SELECT CAT_GP_ID, CAT_GP_NOMBRE FROM CAT_GUNAPROD2")
' CLV_PICK_CIEGO.Clear
@@ -555,6 +569,7 @@ Sub B4XPage_Appear
End Sub
Sub Subir_Click
checaPedido
CARGA = "SUBIR"
p_mandaInfo.Width = Root.Width
p_mandaInfo.Height = Root.Height
@@ -609,37 +624,37 @@ Sub Subir_Click
End If
c.Close
' ENVIO DE LOS CODIGOS QR
'c=skmt.ExecQuery2("SELECT CAT_CL_NUM_SERIEFISICO,CAT_CL_CODIGO ,CAT_CL_LONG,CAT_CL_LAT, CAT_CL_FOTO FROM kmt_info where CAT_CL_NUM_SERIEFISICO = ?", Array As String("OK"))
c=B4XPages.MainPage.skmt.ExecQuery("SELECT CODIGOKMTS, CODIGOB, LAT, LON FROM HIST_CODIGO_BARRAS" )
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_QR_2_mazapa"
cmd.Parameters = Array As Object(C.GetString("CODIGOKMTS"),C.GetString("CODIGOB"),C.GetString("LON"),C.GetString("LAT"),ALMACEN,l_ruta.text )
reqManager.ExecuteCommand(cmd , "ins_QR")
Next
End If
c.Close
c=B4XPages.MainPage.skmt.ExecQuery("SELECT CAT_CL_NUM_SERIEFISICO, CAT_CL_CODIGO, CAT_CL_LONG, CAT_CL_LAT, CAT_CL_FOTO FROM kmt_info where CAT_CL_NUM_SERIEFISICO IS NOT NULL")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
's=skmt.ExecQuery2("SELECT HIST_VI_IMAGEN FROM HIST_VISITAS WHERE HIST_VI_CREDITO =?", Array As String (c.GetString("HIST_VI_CREDITO")))
's.Position =0
foto1 = c.GetBlob("CAT_CL_FOTO")
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_QR_mazapa"
cmd.Parameters = Array As Object(C.GetString("CAT_CL_NUM_SERIEFISICO"),C.GetString("CAT_CL_CODIGO"),C.GetString("CAT_CL_LONG"),C.GetString("CAT_CL_LAT"),ALMACEN,l_ruta.text )
reqManager.ExecuteCommand(cmd , "ins_QR")
Next
End If
c.Close
' ' ENVIO DE LOS CODIGOS QR
' 'c=skmt.ExecQuery2("SELECT CAT_CL_NUM_SERIEFISICO,CAT_CL_CODIGO ,CAT_CL_LONG,CAT_CL_LAT, CAT_CL_FOTO FROM kmt_info where CAT_CL_NUM_SERIEFISICO = ?", Array As String("OK"))
' c=B4XPages.MainPage.skmt.ExecQuery("SELECT CODIGOKMTS, CODIGOB, LAT, LON FROM HIST_CODIGO_BARRAS" )
' If c.RowCount>0 Then
' For i=0 To c.RowCount -1
' c.Position=i
' Dim cmd As DBCommand
' cmd.Initialize
' cmd.Name = "insert_QR_2_mazapa"
' cmd.Parameters = Array As Object(C.GetString("CODIGOKMTS"),C.GetString("CODIGOB"),C.GetString("LON"),C.GetString("LAT"),ALMACEN,l_ruta.text )
' reqManager.ExecuteCommand(cmd , "ins_QR")
' Next
' End If
' c.Close
'
' c=B4XPages.MainPage.skmt.ExecQuery("SELECT CAT_CL_NUM_SERIEFISICO, CAT_CL_CODIGO, CAT_CL_LONG, CAT_CL_LAT, CAT_CL_FOTO FROM kmt_info where CAT_CL_NUM_SERIEFISICO IS NOT NULL")
' If c.RowCount>0 Then
' For i=0 To c.RowCount -1
' c.Position=i
' 's=skmt.ExecQuery2("SELECT HIST_VI_IMAGEN FROM HIST_VISITAS WHERE HIST_VI_CREDITO =?", Array As String (c.GetString("HIST_VI_CREDITO")))
' 's.Position =0
' foto1 = c.GetBlob("CAT_CL_FOTO")
' Dim cmd As DBCommand
' cmd.Initialize
' cmd.Name = "insert_QR_mazapa"
' cmd.Parameters = Array As Object(C.GetString("CAT_CL_NUM_SERIEFISICO"),C.GetString("CAT_CL_CODIGO"),C.GetString("CAT_CL_LONG"),C.GetString("CAT_CL_LAT"),ALMACEN,l_ruta.text )
' reqManager.ExecuteCommand(cmd , "ins_QR")
' Next
' End If
' c.Close
'
'Envio de Pagares
c=B4XPages.MainPage.skmt.ExecQuery("SELECT * FROM PAGARES")
If c.RowCount>0 Then
@@ -704,17 +719,17 @@ Sub Subir_Click
' PEDIDO_CLIENTE
Dim PCNoArts As String
Dim PCMonto As String
c = B4XPages.MainPage.skmt.ExecQuery("SELECT PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_COSTO_SIN, PC_RUTA, PC_ALMACEN, PC_FACTURA FROM PEDIDO_CLIENTE WHERE PC_CLIENTE <> '1' ")
c = B4XPages.MainPage.skmt.ExecQuery("SELECT PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_COSTO_SIN, PC_RUTA, PC_ALMACEN, PC_FACTURA,IFNULL(PC_IMPRESO,0) AS PC_IMPRESO FROM PEDIDO_CLIENTE WHERE PC_CLIENTE <> '1' ")
d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE WHERE PC_CLIENTE <> 1 ")
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position = i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_pedidos_mazapa"
cmd.Name = "insert_pedido_CLIENTE_mazapa"
PCNoArts = c.GetString("PC_NOART")
PCMonto = c.GetString("PC_MONTO")
cmd.Parameters = Array As Object(c.GetString("PC_CLIENTE"), c.GetString("PC_FECHA"), c.GetString("PC_USER"), c.GetString("PC_NOART"), c.GetString("PC_MONTO"), c.GetString("PC_LON"), c.GetString("PC_LAT"), ALMACEN, Subs.traeRuta2(c.GetString("PC_CLIENTE")), c.GetString("PC_COSTO_SIN"), c.GetString("PC_FACTURA"))
cmd.Parameters = Array As Object(c.GetString("PC_CLIENTE"), c.GetString("PC_FECHA"), c.GetString("PC_USER"), c.GetString("PC_NOART"), c.GetString("PC_MONTO"), c.GetString("PC_LON"), c.GetString("PC_LAT"), ALMACEN, Subs.traeRuta2(c.GetString("PC_CLIENTE")), c.GetString("PC_COSTO_SIN"), c.GetString("PC_FACTURA"), c.GetString("PC_IMPRESO"))
reqManager.ExecuteCommand(cmd , "ins_pedidos")
Log(">>>>>> INSERT PEDIDO_CLIENTE")
Next
@@ -725,16 +740,16 @@ Sub Subir_Click
d.Close
' PEDIDO
c = B4XPages.MainPage.skmt.ExecQuery("SELECT PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO, PE_CANTC, PE_BCAJAS FROM PEDIDO WHERE PE_FOLIO <> 'RECARGA'")
c = B4XPages.MainPage.skmt.ExecQuery("SELECT PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO, PE_CANTC, PE_BCAJAS,IFNULL(PE_IMPRESO,0) AS PE_IMPRESO FROM PEDIDO WHERE PE_FOLIO <> 'RECARGA'")
d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO")
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position = i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_pedido2_mazapa" 'CON TOTALES INCLUIDOS
cmd.Name = "insert_pedido_PE_mazapa" 'CON TOTALES INCLUIDOS
Log(c.GetString("PE_CEDIS")&", "&ALMACEN&", "&c.GetString("PE_COSTO_TOT")&", "&c.GetString("PE_COSTOU")&", "&c.GetString("PE_CANT")&", "&c.GetString("PE_PRONOMBRE")&", "&c.GetString("PE_PROID")&", "&c.GetString("PE_CLIENTE")&", "&c.GetString("PE_FECHA")&", "&c.GetString("PE_USUARIO")&", "&Subs.traeRuta2(c.GetString("PE_CLIENTE"))&", "& c.GetString("PE_COSTO_SIN")&", "&c.GetString("PE_DESC")&", "&c.GetString("PE_FOLIO")&", "& ALMACEN)
cmd.Parameters = Array As Object(c.GetString("PE_CEDIS"),ALMACEN,c.GetString("PE_COSTO_TOT"),c.GetString("PE_COSTOU"),c.GetString("PE_CANT"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CLIENTE"),c.GetString("PE_FECHA"),c.GetString("PE_USUARIO"),Subs.traeRuta2(c.GetString("PE_CLIENTE")), c.GetString("PE_COSTO_SIN"),c.GetString("PE_DESC"),c.GetString("PE_FOLIO"),c.GetString("PE_CANTC"),c.GetString("PE_BCAJAS"))
cmd.Parameters = Array As Object(c.GetString("PE_CEDIS"),ALMACEN,c.GetString("PE_COSTO_TOT"),c.GetString("PE_COSTOU"),c.GetString("PE_CANT"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CLIENTE"),c.GetString("PE_FECHA"),c.GetString("PE_USUARIO"),Subs.traeRuta2(c.GetString("PE_CLIENTE")), c.GetString("PE_COSTO_SIN"),c.GetString("PE_DESC"),c.GetString("PE_FOLIO"),c.GetString("PE_CANTC"),c.GetString("PE_BCAJAS"), c.GetString("PE_IMPRESO"))
reqManager.ExecuteCommand(cmd , $"ins_pedidosPendientes_prods_${c.GetString("PE_CLIENTE")}_${c.GetString("PE_PROID")}"$)
' Log($">>>> INS_PEDIDO= ${C.GetString("PE_CEDIS")},${ALMACEN},${C.GetString("PE_COSTO_TOT")},${C.GetString("PE_COSTOU")},${C.GetString("PE_CANT")}, ${C.GetString("PE_PRONOMBRE")}, ${C.GetString("PE_PROID")}, ${C.GetString("PE_CLIENTE")}, ${C.GetString("PE_FECHA")}, ${C.GetString("PE_USUARIO")}, ${C.GetString("PE_RUTA")}, ${C.GetString("PE_COSTO_SIN")}, ${C.GetString("PE_DESC")}, ${c.GetString("PE_FOLIO")}, ${PCNoArts}, ${PCMonto}"$)
' cmd.Name = "insert_pedido_INTMEX" ' SIN TOTALES INCLUIDOS
@@ -1000,6 +1015,11 @@ Sub cargar_Click
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "kmt_datos")
cmd.Initialize
cmd.Name = "select_CAT_RU_MINVENTA_mazapa"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "minimoventa")
' cmd.Initialize
' cmd.Name = "select_cat_clientes_todos_mazapa"
' cmd.Parameters = Array As Object(e_ruta.text, ALMACEN)
@@ -1365,6 +1385,18 @@ Sub JobDone(Job As HttpJob)
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "minimoventa" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim CAT_RU_MINVENTA As String = records(RESULT.Columns.Get("CAT_RU_MINVENTA"))
B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As Object("minimoventa"))
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object("minimoventa", CAT_RU_MINVENTA))
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = reqManager.HandleJob(Job)
@@ -2044,6 +2076,11 @@ Private Sub B4XPage_CloseRequest As ResumableSub
If SCROLL_RESDIA.Visible Then
SCROLL_RESDIA.Visible = False
B_OK_RES_Click
Return False
Else if p_prod.Visible Then
p_prod.Visible = False
' B_OK_PANEL5_Click
Return False
Else if Panel5.Visible Then
B_OK_PANEL5_Click
@@ -2637,37 +2674,106 @@ Sub e_ruta_TextChanged (Old As String, New As String)
End Sub
Sub B_COMM_Click
Btn_Ubicar.Visible=False
SCROLL_RESDIA.Visible = True
SCROLL_RESDIA.Panel.LoadLayout("COMIS")
SCROLL_RESDIA.Panel.Height = Panel_C.Height
Panel4.Visible = False
Panel_C.Visible = True
' trabajar.Visible = False
NUEVO.Visible =False
BUSCA.Visible=False
connecta.Visible=False
Subir.Visible=False
cargar.Visible=False
Resumen.Visible= False
'
If l_ruta.Text <> 0 Then
c=B4XPages.MainPage.skmt.ExecQuery("Select HCM_TOTAL_V , HCM_TOTAL_VIVE , HCM_TOTAL_GUNA , HCM_TOTAL_BEB from HIST_COMISIONES_MOVIL ")
c.Position = 0
L_TOTAL_BA.Text = c.GetString("HCM_TOTAL_BEB")
L_TOTAL_GUNA.Text = c.GetString("HCM_TOTAL_GUNA")
L_TOTAL_MM.Text = c.GetString("HCM_TOTAL_V")
L_TOTAL_VIVE.Text = c.GetString("HCM_TOTAL_VIVE")
c.Close
L_TOTAL_COMIS.Text = 0
Dim label1 As Label
label1 = lv_pedidos_tot.SingleLineLayout.Label
label1.TextSize = 14
SCROLL_RESDIA.Panel.Height = p_pedidos.Height
p_pedidos.Width = Root.Width
b_regresar.Left = (p_pedidos.Width - b_regresar.Width) / 2
b_regresar.Top = p_pedidos.Height - b_regresar.Height
p_pedidos.Visible = True
' Llamar al método para cargar y mostrar los datos
MostrarDatosPedidos
End Sub
Private Sub lv_pedidos_tot_ItemClick (Position As Int, Value As Object)
' Llamar al método para cargar y mostrar los datos
MostrarDatosPedidos
End Sub
Private Sub MostrarDatosPedidos
Private sumP As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT PE_PRONOMBRE, PE_PROID, SUM(CASE WHEN PE_BCAJAS <> 1 THEN PE_CANT ELSE 0 END) AS PE_CANT, SUM(CASE WHEN PE_BCAJAS = 1 THEN PE_CANTC ELSE 0 END) AS PE_CANTC FROM PEDIDO GROUP BY PE_PRONOMBRE,PE_PROID")
lv_pedidos_tot.SingleLineLayout.Label.TextColor = Colors.Black
lv_pedidos_tot.Clear
If sumP.RowCount > 0 Then
For i = 0 To sumP.RowCount - 1
sumP.Position = i
Dim itemText As String
itemText = $"Nombre: ${sumP.GetString("PE_PRONOMBRE")} ${CRLF} N° Piezas: ${sumP.GetInt("PE_CANT")}, "N° Cajas: ${sumP.GetString("PE_CANTC")}"$
lv_pedidos_tot.AddSingleLine(itemText)
Next
Else
L_TOTAL_BA.Text = 0
L_TOTAL_GUNA.Text = 0
L_TOTAL_MM.Text = 0
L_TOTAL_VIVE.Text = 0
L_TOTAL_COMIS.Text = 0
lv_pedidos_tot.AddSingleLine("No hay datos disponibles.")
End If
sumP.Close
Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT SUM(PE_CANT) AS PE_CANT FROM PEDIDO WHERE PE_BCAJAS <> 1")
If c.RowCount > 0 Then
c.Position = 0
l_tot_prod_p.Text = c.GetString("PE_CANT")
End If
c.Close
Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT SUM(PE_CANTC) AS PE_CANTC FROM PEDIDO WHERE PE_BCAJAS = 1")
If c.RowCount > 0 Then
c.Position = 0
l_tot_prod_c.Text = c.GetString("PE_CANTC")
End If
c.Close
End Sub
Private Sub b_regresar_Click
p_pedidos.Visible = False
SCROLL_RESDIA.Panel.Height = Panel4.Height
End Sub
Private Sub iv_productos_Click
Dim label1 As Label
label1 = lv_prod_Prin.SingleLineLayout.Label
label1.TextSize = 14
p_prod.Width = Root.Width
p_prod.Height = Root.Height
b_regreso.Left = (p_prod.Width - b_regreso.Width) / 2
b_regreso.Top = p_prod.Height - b_regreso.Height
p_prod.Visible = True
p_prod.BringToFront
MostrarProductos
End Sub
Private Sub lv_prod_Prin_ItemClick (Position As Int, Value As Object)
MostrarProductos
End Sub
Private Sub MostrarProductos
Dim marcas As String = ""
Dim m As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'MARCAS'")
If m.RowCount > 0 Then
m.Position = 0
marcas = m.GetString("CAT_VA_VALOR")
End If
Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_DP_PRECIO4 from CAT_GUNAPROD LEFT JOIN PEDIDO ON CAT_GP_ID = PE_PROID where CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN > 0 And CAT_GP_CLASIF <> 'PROMOS' AND CAT_GP_CLASIF IN(${marcas}) AND CAT_GP_CLASIF <> 'ALEN PROMOCIONES' union all Select CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_DP_PRECIO4 from CAT_GUNAPROD LEFT JOIN PEDIDO ON CAT_GP_ID = PE_PROID where CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN = 0 And CAT_GP_CLASIF <> 'PROMOS' AND CAT_GP_CLASIF IN(${marcas}) AND CAT_GP_CLASIF <> 'ALEN PROMOCIONES' and cat_gp_id in (select pe_proid from pedido where pe_cliente in (select cuenta from cuentaa)) order by 1"$)
lv_prod_Prin.SingleLineLayout.Label.TextColor = Colors.Black
lv_prod_Prin.Clear
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position = i
Dim itemText As String
Dim precioFormateado As String = NumberFormat2(c.GetDouble("CAT_GP_PRECIO"), 0, 2, 2, False)
Dim precioCaja As String = NumberFormat2(c.GetDouble("CAT_DP_PRECIO4"), 0, 2, 2, False)
itemText = $"${c.GetString("CAT_GP_NOMBRE")} ${CRLF}Existencias: ${c.GetInt("CAT_GP_ALMACEN")}, P/C: ${precioCaja}, P/U: ${precioFormateado}"$
lv_prod_Prin.AddSingleLine(itemText)
Next
Else
lv_prod_Prin.AddSingleLine("No hay datos disponibles.")
End If
c.Close
End Sub
Private Sub b_regreso_Click
p_prod.Visible = False
End Sub
Sub B_OK_COMISS_Click
@@ -2796,8 +2902,6 @@ Private Sub p_mandaInfo_Click
End Sub
Private Sub iv_abordo_Click
Starter.skmt.ExecNonQuery("delete from CUENTAA")
Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object("0"))