- VERSION 5.05.13

- Se corrigen los montos y piezas que semuestran en Resumen Dia del abordo
- Se agrega la funcion "Subs/agrupaProdsPromo" que agrupa los productos fijos y variables de las promos, esto para el caso de que los fijos y variables sean iguales en monto y cantidad y el pasarInfoMovil no los tire!
This commit is contained in:
2025-05-14 18:31:13 -06:00
parent e233af99fd
commit 9011b6a8bb
5 changed files with 72 additions and 5 deletions

View File

@@ -2557,9 +2557,13 @@ Sub Resumen_Click
Private montoAbordo As String = 0
Private px As Cursor = Starter.skmt.ExecQuery("select cat_gp_almacen, cat_gp_precio from cat_gunaprod2 where cat_gp_tipo <> 'PROMOS'")
If px.RowCount > 0 Then
px.Position = 0
pzasAbordo = pzasAbordo + px.GetString("CAT_GP_ALMACEN")
montoAbordo = montoAbordo + (px.GetString("CAT_GP_PRECIO") * px.GetInt("CAT_GP_ALMACEN"))
For i = 0 To px.RowCount - 1
px.Position = i
pzasAbordo = pzasAbordo + px.GetString("CAT_GP_ALMACEN")
montoAbordo = montoAbordo + (px.GetString("CAT_GP_PRECIO") * px.GetInt("CAT_GP_ALMACEN"))
Log(pzasAbordo)
Log(montoAbordo)
Next
End If
Log(pzasAbordo)
Log(montoAbordo)

View File

@@ -390,6 +390,7 @@ Private Sub b_terminar1_Click
Next
lv_prodsFijos.Clear
B4XPages.MainPage.bTerminarClicked = True
Subs.agrupaProdsPromo(Subs.traeCliente)
B4XPages.ShowPage("productos")
B4XPages.MainPage.productos.b_terminar1_Click
End Sub
@@ -415,6 +416,7 @@ Private Sub b_continuar_Click
prodspage.lv_promos.Visible = False
prodspage.clv_productos.AsView.Visible = False
End If
Subs.agrupaProdsPromo(Subs.traeCliente)
B4XPages.MainPage.bTerminarClicked = True
B4XPages.ShowPage("productos")
End Sub

View File

@@ -1408,7 +1408,7 @@ Version=12.8
#Region Project Attributes
#ApplicationLabel: Durakelo
#VersionCode: 1
#VersionName: 5.05.07
#VersionName: 5.05.13
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False

View File

@@ -73,6 +73,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=C_Principal,Resumen_Click,2543,6,C_Cliente,Class_Globals,22,0,Diseñador Visual,principal.bal,-100,1,Diseñador Visual,Cliente.bal,-100,1,C_Cliente,B_IMP_Click,781,0,C_Cliente,B_IMP2_Click,981,6,C_Principal,Subir_Click,576,0,C_Principal,cargar_Click,883,0,C_Principal,SUBIR_P_Click,2721,0,Starter,ENVIA_ULTIMA_GPS,100,0,C_Principal,Class_Globals,9,0
NavigationStack=C_Principal,Class_Globals,20,0,C_Principal,B_PROXIMA_Click,2568,0,C_Productos,b_prodMenos_Click,626,0,Subs,traeTablaProds,1361,0,C_Promos,Class_Globals,0,0,C_Principal,Resumen_Click,2551,6,Subs,traemosInventarioDisponibleParaPromo,897,0,C_Promos,b_continuar_Click,412,0,C_Promos,b_terminar1_Click,386,6,Subs,agrupaProdsPromo,1529,2
SelectedBuild=0
VisibleModules=22,2,10,4,19,9,11,23,12,8

View File

@@ -1510,4 +1510,65 @@ Sub revisaFechaVigenciaPromo(pm As Map) As Boolean
' Log(Starter.tipov & "|" & vigencia & "|" & DateTime.Date(DateTime.Now))
LogColor("Promo vigente: " & vigente, Colors.red)
Return vigente
End Sub
' Agrupa los productos de las promociones, porque si tenemos un producto fijo a precio x y un producto variabe al mismo precio
' y las mismas cantidades, el pasarInfoMovil las detecta como duplicados y las tira, con esta funcion en lugar de dos registros,
' solo va uno con cantidades y totales sumados.
Sub agrupaProdsPromo (cliente As String)
Starter.skmt.ExecNonQuery($"CREATE TEMP TABLE IF NOT EXISTS PEDIDO_AGRUPADOR (
PE_PRECIO2,
PE_TIPO,
PE_FOLIO TEXT,
PE_DESC TEXT,
PE_COSTO_SIN REAL,
PE_RUTA TEXT,
PE_CEDIS TEXT,
PE_COSTO_TOT REAL,
PE_COSTOU REAL,
PE_CANT INTEGER,
PE_PRONOMBRE TEXT,
PE_PROID TEXT,
PE_CLIENTE TEXT,
PE_FECHA TEXT,
PE_USUARIO TEXT
)"$)
Starter.skmt.BeginTransaction
'-- Vaciar la tabla temporal.
Starter.skmt.ExecNonQuery($"DELETE FROM PEDIDO_AGRUPADOR"$)
'-- Ponemos los datos agrupados en la tabla temporal.
Starter.skmt.ExecNonQuery($"
INSERT INTO PEDIDO_AGRUPADOR
Select
PE_PRECIO2,
PE_TIPO,
PE_FOLIO,
PE_DESC,
PE_COSTO_SIN,
PE_RUTA,
PE_CEDIS,
SUM(PE_COSTO_TOT) As PE_COSTO_TOT,
PE_COSTOU,
SUM(PE_CANT) As PE_CANT,
PE_PRONOMBRE,
PE_PROID,
PE_CLIENTE,
PE_FECHA,
PE_USUARIO
FROM
pedido
WHERE
PE_CLIENTE = '${cliente}'
GROUP BY
PE_PROID, PE_PRONOMBRE, PE_COSTOU, PE_RUTA, PE_CEDIS, PE_CLIENTE, PE_FECHA, PE_USUARIO"$)
'-- Reemplazar los datos originales en pedido.
Starter.skmt.ExecNonQuery($"DELETE FROM PEDIDO WHERE PE_CLIENTE = '${cliente}'"$)
Starter.skmt.ExecNonQuery($"INSERT INTO PEDIDO SELECT * FROM PEDIDO_AGRUPADOR"$)
Starter.skmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
Starter.skmt.EndTransaction
Log("LISTO!!")
End Sub