diff --git a/B4A/C_Productos.bas b/B4A/C_Productos.bas index 4849318..a331129 100644 --- a/B4A/C_Productos.bas +++ b/B4A/C_Productos.bas @@ -326,11 +326,10 @@ Sub lv_catalogos_ItemClick (Position As Int, Value As Object) If c2.RowCount > 0 Then For i=0 To c2.RowCount -1 c2.Position=i -' Private tm As Map = Subs.procesaPromocion(c2.GetString("CAT_GP_ID"), clienteId) - Private tm As Map = promosC.procesaPromocion(c2.GetString("CAT_GP_ID"), clienteId, Starter.tipov) -' Log(tm) + Private tm As Map = Subs.procesaPromocion(c2.GetString("CAT_GP_ID"), clienteId) +' promosC.procesaPromocion(c2.GetString("CAT_GP_ID"), clienteId) If tm.Get("status") = "ok" Then 'Solo muestrala si hay producto. - lv_promos.AddTwoLines(c2.GetString("CAT_GP_NOMBRE"),"# " & c2.GetString("CAT_GP_ALMACEN") & " $ " & c2.GetString("CAT_GP_PRECIO") & " F:" & tm.Get("prodsFijosCant") & " V:" & tm.Get("prodsVariablesCant")) + lv_promos.AddTwoLines(c2.GetString("CAT_GP_NOMBRE"),"# " & c2.GetString("CAT_GP_ALMACEN") & " $ " & c2.GetString("CAT_GP_PRECIO") & " F:" & tm.Get("mp").As(Map).Get("prodsFijosCant") & " V:" & tm.Get("mp").As(Map).Get("prodsVariablesCant")) End If Next Else @@ -936,7 +935,7 @@ End Sub Private Sub lv_promos_ItemLongClick (Position As Int, Value As Object) Log("Promo longclic = "&Value) Private id As String = "" - Dim c As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ID from ${Subs.traeTablaProds(Starter.tipov)} where CAT_GP_TIPO = 'PROMOS' and CAT_GP_NOMBRE = '${Value}'"$) + Dim c As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ID from cat_gunaprod where CAT_GP_TIPO = 'PROMOS' and CAT_GP_NOMBRE = '${Value}'"$) If c.RowCount > 0 Then c.Position = 0 id = c.GetString("CAT_GP_ID") @@ -994,22 +993,22 @@ Private Sub b_rechazar_Click Log("Rechazo de pedido") ' Log($"Folio: ${folio}"$) ' If folio <> "" Then - result = Msgbox2($"Seguro que desea borrar el pedido completo?${CRLF}Haciendo clic largo sobre un producto se pueden borrar articulos por separado."$,"Rechazar Pedido", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore - If result = DialogResponse.POSITIVE Then - Subs.borraPedidoClienteActual + result = Msgbox2($"Seguro que desea borrar el pedido completo?${CRLF}Haciendo clic largo sobre un producto se pueden borrar articulos por separado."$,"Rechazar Pedido", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore + If result = DialogResponse.POSITIVE Then + Subs.borraPedidoClienteActual ' prodsMap.Initialize - B4XPages.MainPage.promos.promosMap.Initialize + B4XPages.MainPage.promos.promosMap.Initialize ' Log("Llamamos LlenaProdsLL") - LlenaProdsLL(Null, Null) + LlenaProdsLL(Null, Null) ' Log("Positivo") - Subs.iniciaActividad("Cliente") + Subs.iniciaActividad("Cliente") ' B4XPages.ShowPage("Cliente") - Else + Else ' Log("NO Positivo") - p_vistaPreviaTrans.Visible = False - End If + p_vistaPreviaTrans.Visible = False + End If ' Else -'' Msgbox("LA VENTA YA SE TRANSMITIO, FAVOR DE LLAMAR A SOPORTE PARA ASISTENCIA","AVISO") 'ignore + '' Msgbox("LA VENTA YA SE TRANSMITIO, FAVOR DE LLAMAR A SOPORTE PARA ASISTENCIA","AVISO") 'ignore ' End If p_vistaPreviaTrans.Visible=False Subs.iniciaActividad("Cliente") @@ -1436,4 +1435,4 @@ Private Sub b_rmi_Click clv_prods_ll.AsView.BringToFront clv_prods_ll.AsView.Visible = True l_mDisponible.Visible = True -End Sub +End Sub \ No newline at end of file diff --git a/B4A/C_Promos.bas b/B4A/C_Promos.bas index 9c925a6..d15c745 100644 --- a/B4A/C_Promos.bas +++ b/B4A/C_Promos.bas @@ -43,12 +43,11 @@ Sub Class_Globals Dim prodsPedidoActual As String Dim montoPedidoActual As String Dim promosMap As Map - Dim promosC As Promociones End Sub 'You can add more parameters here. Public Sub Initialize As Object - promosC.Initialize(Me, "promosC", Starter.skmt) +' promosC.Initialize(Me, "promosC", Starter.skmt) Return Me End Sub @@ -82,65 +81,46 @@ Sub B4XPage_Appear End Sub 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. -Sub muestraPromo(idPromo As String, cliente As String) - Log("muestraPromo: " & idPromo) - Private thisLog As Boolean = True - promosC.tablaProds = "CAT_GUNAPROD2" - If Starter.tipov = "PREVENTA" Or Starter.tipov = "ABORDO" Then promosC.tablaProds = "CAT_GUNAPROD" -' If thisLog Then Log(idPromo) - estaPromo = idPromo +Sub muestraPromo(promo As String, cliente As String) + Log("muestraPromo:"&promo) + Private thisLog As Boolean = False +' If thisLog Then Log(promo) + estaPromo = promo esteCliente = cliente -' Private mp As Map = Subs.traePromo(idPromo, cliente) -' If thisLog Then LogColor(mp, Colors.blue) -' Private prodsPromo As Map = mp.Get("productos") 'Los productos de la promoción. - -' Private invDispPromo As Map = Subs.restaFijosPromo(mp) - Private invDispPromo As Map = promosC.restaFijosDePromo(idPromo) - + Private mp As Map = Subs.traePromo(promo, cliente) + If thisLog Then LogColor(mp, Colors.blue) + Private prodsPromo As Map = mp.Get("productos") 'Los productos de la promoción. +' Private invDispPromo As Map = Subs.traemosInventarioDisponibleParaPromo(promo) + Private invDispPromo As Map = Subs.restaFijosPromo(mp) If thisLog Then Log($"invDispPromo=${invDispPromo}"$) - If thisLog Then Log("Max promos por inv de prods FIJOS: " & promosC.revisaMaxPromosProdsFijosPorInventario(idPromo)) - If thisLog Then Log("Max promos por inv de prods VARIABLES: " & promosC.revisaMaxPromosProdsVariablesPorInventario(idPromo)) - -' maxCantPromos = Subs.revisaMaxPromosProdsVariablesPorInventario(mp) - maxCantPromos = promosC.revisaMaxPromosProdsVariablesPorInventario(idPromo) - Log($"MAXCANTPROMOS: ${maxCantPromos}"$) - + If thisLog Then Log("Max promos por inv de prods FIJOS: " & Subs.revisaMaxPromosProdsFijosPorInventario(mp)) + If thisLog Then Log("Max promos por inv de prods VARIABLES: " & Subs.revisaMaxPromosProdsVariablesPorInventario(mp)) + maxCantPromos = Subs.revisaMaxPromosProdsVariablesPorInventario(mp) et_promoCant.Text = 1 l_promosCant.text = "Max promos: " & maxCantPromos Private cs As CSBuilder cs.Initialize -' If thisLog Then Log(mp) -' If thisLog Then Log(prodsPromo) - 'Ponemos la idPromo y descripción. -' Dim desc As String = $"Promoción: ${idPromo}${CRLF}${mp.Get("descripcion")}"$ -' Dim desc As String = cs.append("Promocion: ").Color(Colors.RGB(100,149,237)).Append(idPromo).pop.append(CRLF).Append(mp.Get("descripcion")).Popall - Private c As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_NOMBRE from ${Subs.traeTablaProds(Starter.tipov)} where CAT_GP_ID = '${idPromo}'"$) - Private descripcion As String = "PROMO" - If c.RowCount > 0 Then - c.Position = 0 - descripcion = c.GetString("CAT_GP_NOMBRE") - End If - l_promoDesc.Text = cs.Color(Colors.RGB(100,149,237)).append("Promocion: ").pop.append(CRLF).Append(idPromo).append(CRLF).Append(descripcion).Popall + If thisLog Then Log(mp) + If thisLog Then Log(prodsPromo) + 'Ponemos la promo y descripción. +' Dim desc As String = $"Promoción: ${promo}${CRLF}${mp.Get("descripcion")}"$ +' Dim desc As String = cs.append("Promocion: ").Color(Colors.RGB(100,149,237)).Append(promo).pop.append(CRLF).Append(mp.Get("descripcion")).Popall + l_promoDesc.Text = cs.Color(Colors.RGB(100,149,237)).append("Promocion: ").pop.append(CRLF).Append(promo).append(CRLF).Append(mp.Get("descripcion")).Popall prodsFijosTot = 0 'Ponemos el texto en las etiquetas de la cantidad de productos. ' Dim pf As List = mp.Get("prodsFijos") - -' Dim pv As List = mp.Get("prodsVariables") - Dim pv As List = promosC.traeListaDePromo("P_PRODSVARIABLES", idPromo) - -' Dim listaPreciosPV As List = mp.Get("prodsVariablesPrecios") - Dim listaPreciosPV As List = promosC.traeListaDePromo("P_PRODSVARIABLES_PRECIOS", idPromo) - + Dim pv As List = mp.Get("prodsVariables") + Dim listaPreciosPV As List = mp.Get("prodsVariablesPrecios") ' Logcolor(listaPreciosPV, Colors.red) -' If thisLog Then Log(mp) + If thisLog Then Log(mp) tpf = 0 - For Each pfp As Int In promosC.traeListaDePromo("P_PRODSFIJOS_PIEZAS", idPromo) + For Each pfp As Int In mp.Get("prodsFijosPiezas").As(List) tpf = tpf + pfp Next tpf2 = tpf ' tpf = tpf * maxCantPromos l_prodsFijos.Text = $"Productos fijos (${tpf})"$ - prodsVarReq = promosC.traeInfoDePromo("P_PRODSVARIABLES_REQUERIDOS", idPromo) + prodsVarReq = mp.Get("prodsVariablesRequeridos") prodsVarReq2 = prodsVarReq l_prodsVariables.Text = $"Productos variables requeridos: ${prodsVarReq}"$ If prodsVarReq = 0 Then @@ -157,7 +137,7 @@ Sub muestraPromo(idPromo As String, cliente As String) lv_prodsFijos.Clear ' If pf.Size < 1 Then pf.Add("Sin productos fijos.") lv_prodsFijos.Clear - agregaFijosALista(idPromo, True) + agregaFijosALista(mp, True) If thisLog Then Log("Total prods fijos = " & prodsFijosTot) ' If thisLog Then Log("======="&prodsMap) l_totProds.text = $"Productos: ${tpf}"$ @@ -178,10 +158,10 @@ Sub muestraPromo(idPromo As String, cliente As String) ' jpeg = c2.GetBlob("CAT_GP_IMG") ' ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length) ' bmp.Initialize2(ins) - Private indicePV As Int = pv.IndexOf(p) - Private estePrecio As String = listaPreciosPV.Get(indicePV) -' Private thisProd As Map = prodsPromo.Get(p) -' If thisLog Then Log(thisProd) + Private indicePV = pv.IndexOf(p) + Private estePrecio = listaPreciosPV.Get(indicePV) + Private thisProd As Map = prodsPromo.Get(p) + If thisLog Then Log(thisProd) If existenciaProdVariable > 0 Then Log($">>>>> AGREGAMOS PROD VARIABLE ${p}"$) clv_prodsVariabes.Add(CreateListItem(Subs.traeProdNombre(p)&CRLF&"Hay " & invDispPromo.Get(p) & " $" & estePrecio, estePrecio, invDispPromo.Get(p), clv_prodsVariabes.AsView.Width, 50dip, Null, p), p) @@ -194,13 +174,11 @@ Sub muestraPromo(idPromo As String, cliente As String) End Sub 'Agregamos los productos fijos a una lista para despues meterlos en el pedido. -Sub agregaFijosALista(idPromo As String, addListItem As Boolean) +Sub agregaFijosALista(mp As Map, addListItem As Boolean) Private thisLog As Boolean = False Private cont As Int = 0 prodsFijosTot = 0 -' Dim pf As List = mp.Get("prodsFijos") - Dim pf As List = promosC.traeListaDePromo("P_PRODSFIJOS", idPromo) - + Dim pf As List = mp.Get("prodsFijos") If pf.Size < 1 Then pf.Add("Sin productos fijos.") ' Private m As Map ' prodsMap.Put(estaPromo, CreateMap("cant":1, "precio":0)) @@ -213,15 +191,13 @@ Sub agregaFijosALista(idPromo As String, addListItem As Boolean) prodsPrecios.Add(0) For Each p As String In pf ' Log($"cont=${cont}, mp=${mp}"$) - Private prodsFijosPiezas As List = promosC.traeListaDePromo("P_PRODSFIJOS_PIEZAS", idPromo) - If prodsFijosPiezas.Size > 0 Then - Private tpi As String = prodsFijosPiezas.Get(cont) + If mp.Get("prodsFijosPiezas").As(List).Size > 0 Then + Private tpi As String = mp.Get("prodsFijosPiezas").As(List).Get(cont) Else Private tpi As String = 0 End If - Private prodsFijosPrecios As List = promosC.traeListaDePromo("P_PRODSFIJOS_PRECIOS", idPromo) - If prodsFijosPrecios.Size > 0 Then - Private tpr As String = prodsFijosPrecios.Get(cont) + If mp.Get("prodsFijosPrecios").As(List).Size > 0 Then + Private tpr As String = mp.Get("prodsFijosPrecios").As(List).Get(cont) Else Private tpr As String = 0 End If @@ -330,7 +306,7 @@ Sub cuentaProds prodsCants2.Clear prodsPrecios2.Clear lv_prodsFijos.Clear - agregaFijosALista(estapromo, True) + agregaFijosALista(Subs.traePromo(estaPromo, esteCliente), True) ' Log(prodsIds) Private tcpf As Float = 0 'Total de compra de productos fijos. For pf = 0 To prodsIds.Size - 1 diff --git a/B4A/KelloggsV4.b4a.meta b/B4A/KelloggsV4.b4a.meta index 5d5c39c..a2ff14b 100644 --- a/B4A/KelloggsV4.b4a.meta +++ b/B4A/KelloggsV4.b4a.meta @@ -91,6 +91,6 @@ ModuleClosedNodes6= ModuleClosedNodes7= ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=C_Promos,cuentaProds,326,0,Subs,traeProdNombre,807,0,Subs,cuantosVariablesDisponiblesDB,1428,0,C_Productos,Class_Globals,0,0,Subs,revisaMaxPromosProdsVariablesPorInventario,1361,0,Promociones,procesaPromocion,30,0,Promociones,revisaMaxPromosProdsVariablesPorInventario,269,6,Promociones,traePromo,125,0,C_Promos,agregaFijosALista,233,6,C_Promos,muestraPromo,86,6 +NavigationStack=C_Promos,B4XPage_Appear,70,0,C_Promos,b_terminar1_Click,490,0,C_Promos,revisaInvProdsVariables,456,0,C_Promos,muestraPromo,111,6,C_Promos,Class_Globals,0,0,C_Promos,et_promoCant_TextChanged,518,0,Promociones,traeListaDePromo,457,0,C_Clientes,Class_Globals,0,0,C_Productos,b_rechazar_Click,1004,0,C_Productos,lv_catalogos_ItemClick,304,0,C_Productos,PCLV_AddProds,279,0 SelectedBuild=0 VisibleModules=1,28,11,3,26,29,12,4,13