mirror of
https://github.com/KeymonSoft/ADM2.git
synced 2026-04-17 19:36:33 +00:00
1596 lines
68 KiB
QBasic
1596 lines
68 KiB
QBasic
B4A=true
|
|
Group=Default Group
|
|
ModulesStructureVersion=1
|
|
Type=Class
|
|
Version=11.5
|
|
@EndOfDesignText@
|
|
Sub Class_Globals
|
|
Private Root As B4XView 'ignore
|
|
Private xui As XUI 'ignore
|
|
Dim ruta As String
|
|
Dim q_buscar As String
|
|
Dim forzarBusqueda As Boolean = False
|
|
Dim skmt As SQL
|
|
Dim c As Cursor
|
|
Dim c2 As Cursor
|
|
Dim C3 As Cursor
|
|
Dim s As Cursor
|
|
Dim lv_catalogos As ListView
|
|
Dim lv_promos As ListView
|
|
Dim entro As String
|
|
Dim gest As Button
|
|
Dim lfila As Label
|
|
Dim marca As String
|
|
Dim tipo As String
|
|
Dim subtipo As String
|
|
Private BUSCA As EditText
|
|
Dim ya_entro As String
|
|
Dim TIENE_PROMOS As String
|
|
Dim RES As String
|
|
Dim S1 As Cursor
|
|
Dim bmp As Bitmap
|
|
Dim ciclo As String
|
|
Private b_qr As Button
|
|
Private p_productos As Panel
|
|
Dim clv_productos As CustomListView
|
|
Private ImageView1 As ImageView
|
|
Private Panel3 As Panel
|
|
Private p_prods As Panel
|
|
Private i_prod As ImageView
|
|
Private l_prodX As Label
|
|
Private b_prodMas As Button
|
|
Private l_pCant As Label
|
|
Private et_pCant As EditText
|
|
Private b_prodMenos As Button
|
|
Dim b_terminar1 As Button
|
|
Dim b_continuar As Button
|
|
Private l_total As Label
|
|
Private l_totProds As Label
|
|
Dim totalProds As Int = 0
|
|
Dim totalCompra As Float = 0
|
|
Dim etCantHasFocus As Boolean = False
|
|
Dim prodsMap As Map
|
|
Private l_Cargando As Label
|
|
Private l_info As Label
|
|
Private b_buscar As Button
|
|
Private p_botonesVenta As Panel
|
|
Private lv_tipo As ListView
|
|
Private lv_subtipo As ListView
|
|
Private p_vistaPreviaTrans As Panel
|
|
Private lv_prodsPedido As ListView
|
|
Private b_rechazar As Button
|
|
Private b_aceptar As Button
|
|
Private p_vistaPrevia As Panel
|
|
Dim folio As String
|
|
Dim result As String
|
|
Private l_cant As Label
|
|
Private l_total2 As Label
|
|
Dim prodsPedidoActual As String
|
|
Dim montoPedidoActual As String
|
|
|
|
Dim clv_prods_ll As CustomListView
|
|
Private PCLV As PreoptimizedCLV
|
|
Dim listaProds As List
|
|
' Type AirportData (Name As String, AirportID As Int, IATA As String, ICAO As String, City As String, Latitude As Float, Longitude As Float, Altitude As String)
|
|
Dim pedidoMap As Map
|
|
Private p_botMasMen As Panel
|
|
Dim reiniciarlistaProds As Boolean= False
|
|
' Dim listaRenglones As List
|
|
Dim listaTiempos As List
|
|
Dim clienteId As String
|
|
Dim rutaUsuario As String
|
|
Dim hayPedido As Boolean
|
|
Dim listaHints As List
|
|
Dim r As Cursor
|
|
Dim vamoaver As List
|
|
Dim j3 As Cursor
|
|
Dim invTotal As Int
|
|
Private et_pCantc As EditText
|
|
Private b_prodMenosc As Button
|
|
Private b_prodMasc As Button
|
|
Dim totalcajasmaspiezas As Int
|
|
Dim cajas As Int
|
|
Dim piezas As Int
|
|
|
|
Private p_botMasMenc As Panel
|
|
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
|
|
'load the layout to Root
|
|
' Activity.RemoveAllViews
|
|
Root.LoadLayout("productos")
|
|
ruta = File.DirInternal
|
|
If File.Exists(ruta, "kmt.db") = False Then
|
|
File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db")
|
|
End If
|
|
PCLV.Initialize(Me, "PCLV", clv_prods_ll)
|
|
ciclo = 1
|
|
l_info.Width = Root.Width * 0.8
|
|
l_info.Left = (Root.Width/2) - (l_info.Width/2)
|
|
c = B4XPages.MainPage.skmt.ExecQuery("select distinct CAT_GP_TIPO from cat_gunaprod where CAT_GP_TIPO <> 'PROMOS' order by CAT_GP_TIPO")
|
|
If c.RowCount > 0 Then
|
|
Dim label1 As Label
|
|
label1 = lv_tipo.SingleLineLayout.Label
|
|
label1.TextSize = 17
|
|
label1.TextColor = Colors.Black
|
|
lv_tipo.Clear
|
|
For i=0 To c.RowCount-1
|
|
c.Position=i
|
|
Log("ENTRE AQUI EN PROMOS create")
|
|
lv_tipo.AddSingleLine(c.GetString("CAT_GP_TIPO"))
|
|
Next
|
|
End If
|
|
c.Close
|
|
' llenaCatalogo(False)
|
|
' listaRenglones.Initialize
|
|
listaTiempos.Initialize
|
|
listaProds.Initialize
|
|
pedidoMap.Initialize
|
|
listaHints.Initialize
|
|
' Log("Llamamos LlenaProdsLL")
|
|
' LlenaProdsLL(Null)
|
|
clv_prods_ll.Clear
|
|
prodsMap.Initialize
|
|
End Sub
|
|
|
|
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
|
|
|
|
Sub B4XPage_Appear
|
|
If B4XPages.MainPage.tipo_venta = "PREVENTA" Or B4XPages.MainPage.tipo_venta = "ABORDO" Or B4XPages.MainPage.tipo_venta = "RECARGA" Then
|
|
Starter.tabla = "CAT_GUNAPROD"
|
|
Else If B4XPages.MainPage.tipo_venta = "VENTA" Then
|
|
Starter.tabla = "CAT_GUNAPROD2"
|
|
End If
|
|
clienteId = Subs.traeCliente
|
|
rutaUsuario = Subs.traeRuta
|
|
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE CAT_GUNAPROD SET CAT_GP_TIPOPROD = (?) WHERE CAT_GP_TIPOPROD = (?) ",Array As Object("PRIORITARIO","1"))
|
|
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE CAT_GUNAPROD SET CAT_GP_TIPOPROD = (?) WHERE CAT_GP_TIPOPROD = (?) ",Array As Object("ESTRATEGICO","2"))
|
|
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE CAT_GUNAPROD SET CAT_GP_TIPOPROD = (?) WHERE CAT_GP_TIPOPROD = (?) ",Array As Object("COMPLEMENTARIO","3"))
|
|
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE CAT_GUNAPROD SET CAT_GP_TIPOPROD = (?) WHERE CAT_GP_TIPOPROD = (?) ",Array As Object("CATALOGO REGULAR","0"))
|
|
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE CAT_GUNAPROD SET CAT_GP_TIPOPROD = (?) WHERE CAT_GP_CLASIF = (?) ",Array As Object("PROMOS","PROMOS"))
|
|
clv_prods_ll.GetBase.SetLayoutAnimated(0, 5dip, 130dip, Root.Width + 10, Root.Height * 0.74) 'Cambiamos el tamaño y posición de la lista de productos
|
|
clv_prods_ll.Base_Resize(clv_prods_ll.GetBase.Width, clv_prods_ll.GetBase.Height) 'Cambiamos el tamaño del panel interno de la lista para que ajuste al nuevo tamaño.
|
|
If B4XPages.MainPage.bTerminarClicked Then
|
|
lv_catalogos.Visible = True
|
|
lv_promos.Visible = False
|
|
lv_tipo.Visible = False
|
|
lv_subtipo.Visible = False
|
|
clv_prods_ll.AsView.Visible = False
|
|
B4XPages.MainPage.bTerminarClicked = False
|
|
End If
|
|
If ya_entro <> "1" Then
|
|
If BUSCA.Text <> "" Then BUSCA.Text =""
|
|
entro ="3"
|
|
lv_catalogos.Clear
|
|
Sleep(100)
|
|
lfila.Text = "CATALOGOS"
|
|
p_productos.Height = Root.Height
|
|
clv_prods_ll.AsView.Visible = False
|
|
lv_catalogos.Visible = True
|
|
p_botonesVenta.Visible = False
|
|
p_botonesVenta.Top = clv_prods_ll.AsView.top + clv_prods_ll.AsView.Height - 10
|
|
lv_promos.Visible = False
|
|
End If
|
|
Dim label1 As Label
|
|
label1 = lv_catalogos.SingleLineLayout.Label
|
|
label1.TextSize = 17
|
|
label1.TextColor = Colors.Black
|
|
lv_catalogos.Clear
|
|
lv_catalogos.AddSingleLine("CATALOGO")
|
|
' c = B4XPages.MainPage.skmt.ExecQuery($"select count(*) as hayPromos from ${Starter.tabla} where CAT_GP_TIPOPROD = 'PROMOS'"$)
|
|
c = B4XPages.MainPage.skmt.ExecQuery($"select count(*) as hayPromos from ${Starter.tabla} where CAT_GP_TIPO = 'PROMOS'"$)
|
|
c.Position = 0
|
|
|
|
|
|
c = B4XPages.MainPage.skmt.ExecQuery($"SELECT CUENTA FROM CUENTAA"$)
|
|
c.Position = 0
|
|
If c.GetString("CUENTA") <> "0" And c.GetString("CUENTA") <> "1" Then
|
|
c2=B4XPages.MainPage.skmt.ExecQuery2($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from ${Starter.tabla} where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO = ? AND CAT_GP_ID NOT IN (SELECT PE_PROID FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa) )"$, Array As String("PROMOS", "PROMOS"))
|
|
' Log($"res:${c2.RowCount}, ${Value}, ${marca}, ${tipo}"$)
|
|
Private hayPromos As Boolean = False
|
|
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)
|
|
If tm.Get("status") = "ok" Then 'Solo muestrala si hay producto.
|
|
hayPromos = True
|
|
End If
|
|
Next
|
|
If hayPromos Then lv_catalogos.AddSingleLine("PROMOS")
|
|
Else
|
|
Log("NO HAY PROMOS")
|
|
End If
|
|
c2.Close
|
|
End If
|
|
|
|
Sleep(100)
|
|
l_total.Visible = False
|
|
l_totProds.Visible = False
|
|
l_total.Left = 5dip
|
|
l_totProds.Width = Root.Width * 0.19
|
|
l_total.Left = l_totProds.Width + 20
|
|
l_total.Width = Root.Width * 0.25
|
|
' Log(Subs.traeTotalesClienteActual)
|
|
Dim m As Map = Subs.traeTotalesClienteActual
|
|
prodsPedidoActual = m.Get("productos")
|
|
montoPedidoActual = m.Get("monto")
|
|
hayPedido = Subs.hayPedido
|
|
' LogColor("Pedido ant? - "&hayPedido, Colors.Magenta)
|
|
B4XPages.MainPage.productos.clv_prods_ll.Clear
|
|
If reiniciarlistaProds Then
|
|
' Log("Llamamos LlenaProdsLL")
|
|
' LlenaProdsLL(Null)
|
|
clv_prods_ll.Clear
|
|
else If hayPedido Then
|
|
' LogColor("HAY PEDIDO ANTERIOR", Colors.red)
|
|
' Log("Llamamos LlenaProdsLL")
|
|
' LlenaProdsLL(Null)
|
|
clv_prods_ll.Clear
|
|
End If
|
|
If clv_prods_ll.Size = 0 Then LlenaProdsLL(Null)
|
|
Try
|
|
clv_prods_ll.JumpToItem(0) 'Vamos al primer artículo de la lista.
|
|
Catch
|
|
ToastMessageShow("No hay productos", False)
|
|
Log(LastException)
|
|
End Try
|
|
PCLV.lblHint.SetTextSizeAnimated(0,13)
|
|
PCLV.B4XSeekBar1.Color1=Colors.DarkGray
|
|
PCLV.B4XSeekBar1.Color2=Colors.DarkGray
|
|
PCLV.B4XSeekBar1.ThumbColor=Colors.red
|
|
PCLV.B4XSeekBar1.mBase.Left=Root.Width *0.91
|
|
' PCLV.B4XSeekBar1.mBase.Top=-50
|
|
PCLV.B4XSeekBar1.mBase.Height=clv_prods_ll.AsView.Height
|
|
PCLV.pnlOverlay.Height = clv_prods_ll.AsView.Height
|
|
PCLV.B4XSeekBar1.Update
|
|
End Sub
|
|
|
|
Sub PCLV_AddProds
|
|
|
|
End Sub
|
|
|
|
Sub lv_catalogos_ItemClick (Position As Int, Value As Object)
|
|
Log("Clic lv_catalogos")
|
|
If Value = "CATALOGO" Then
|
|
' lfila.text = "TIPO"
|
|
lfila.text = "PRODUCTOS"
|
|
lv_catalogos.Visible = False
|
|
' lv_tipo.Visible = True
|
|
' If clv_prods_ll.Size = 0 Then LlenaProdsLL(Null)
|
|
LlenaProdsLL(Null)
|
|
clv_prods_ll.AsView.Visible = True
|
|
If hayPedido Then p_botonesVenta.Visible = True 'Si ya hay pedido, entonces mostramos los botones.
|
|
Else
|
|
clv_prods_ll.AsView.Visible = False
|
|
lv_promos.Visible = True
|
|
lfila.text = "PROMOCIONES"
|
|
lv_catalogos.Visible = False
|
|
lv_promos.Clear
|
|
Dim label1 As Label
|
|
label1 = lv_promos.TwoLinesLayout.Label
|
|
label1.TextSize = 12
|
|
label1.TextColor = Colors.Black
|
|
Dim label2 As Label
|
|
label2 = lv_promos.TwoLinesLayout.SecondLabel
|
|
label2.TextSize = 12
|
|
label2.TextColor = Colors.Black
|
|
Dim label13 As Label
|
|
label13 = lv_promos.TwoLinesAndBitmap.Label
|
|
label13.TextSize = 12
|
|
label13.TextColor = Colors.Black
|
|
Dim label14 As Label
|
|
label14 = lv_promos.TwoLinesAndBitmap.SecondLabel
|
|
label14.TextSize = 12
|
|
label14.TextColor = Colors.Black
|
|
lfila.text = "PROMOS"
|
|
|
|
' c2=B4XPages.MainPage.skmt.ExecQuery2($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from ${Starter.tabla} where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_TIPOPROD = ? AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO = ? AND CAT_GP_ID NOT IN (SELECT PE_PROID FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa) )"$, Array As String(Value, Value, Value))
|
|
c2=B4XPages.MainPage.skmt.ExecQuery2($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from ${Starter.tabla} where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO = ? AND CAT_GP_ID NOT IN (SELECT PE_PROID FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa) )"$, Array As String(Value, Value))
|
|
' Log($"res:${c2.RowCount}, ${Value}, ${marca}, ${tipo}"$)
|
|
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)
|
|
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("mp").As(Map).Get("prodsFijosCant") & " V:" & tm.Get("mp").As(Map).Get("prodsVariablesCant"))
|
|
End If
|
|
Next
|
|
Else
|
|
ToastMessageShow("No hay promociones disponibles.", False)
|
|
End If
|
|
c2.Close
|
|
entro = "4"
|
|
End If
|
|
End Sub
|
|
|
|
Sub lv_catalogos2_ItemClick (Position As Int, Value As Object)
|
|
clv_prods_ll.AsView.Visible = False
|
|
BUSCA.Text = ""
|
|
Dim cliente As C_Cliente = B4XPages.GetPage("Cliente")
|
|
Log($"value=${Value}"$)
|
|
If Value = "PROMOS" And cliente.cuenta <> "N" Then
|
|
entro = "3"
|
|
marca = "PROMOS"
|
|
tipo = "PROMOS"
|
|
Else if Value = "PROMOS" And cliente.cuenta = "N" Then
|
|
entro = "5"
|
|
B4XPages.ShowPage("Cliente")
|
|
End If
|
|
If Value = "PROMOS" Then
|
|
LogColor("Promos", Colors.red)
|
|
c2=B4XPages.MainPage.skmt.ExecQuery2($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from ${Starter.tabla} where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_TIPOPROD = ? AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO = ? AND CAT_GP_ID NOT IN (SELECT PE_PROID FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa) )"$, Array As String(Value, marca, tipo))
|
|
Else
|
|
LogColor("Catalogo", Colors.red)
|
|
c2=B4XPages.MainPage.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG, CAT_GP_TIPOPROD, CAT_GP_INICIATIVA from ${Starter.tabla} where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_TIPOPROD <> 'PROMOS' "$)
|
|
End If
|
|
If Value = "CATALOGO" Then
|
|
lv_catalogos.Visible = False
|
|
lv_promos.Visible = False
|
|
lfila.text = "CATALOGO"
|
|
Log("PGS")
|
|
ProgressDialogShow("Cargando catalogo ...")
|
|
Sleep(100)
|
|
Private inicioContador As String = DateTime.Now
|
|
llenaCatalogo(False)
|
|
clv_prods_ll.AsView.Visible = True
|
|
Log("PGH")
|
|
LogColor("TIEMPO DE PROCESO DEL CATALOGO: " & ((DateTime.Now-inicioContador)/1000), Colors.Red)
|
|
ProgressDialogHide
|
|
c2.Close
|
|
Else
|
|
clv_prods_ll.AsView.Visible = False
|
|
lv_promos.Visible = True
|
|
lv_catalogos.Visible = False
|
|
lv_promos.Clear
|
|
Dim label1 As Label
|
|
label1 = lv_promos.TwoLinesLayout.Label
|
|
label1.TextSize = 15
|
|
label1.TextColor = Colors.Black
|
|
Dim label2 As Label
|
|
label2 = lv_promos.TwoLinesLayout.SecondLabel
|
|
label2.TextSize = 15
|
|
label2.TextColor = Colors.Black
|
|
Dim label13 As Label
|
|
label13 = lv_promos.TwoLinesAndBitmap.Label
|
|
label13.TextSize = 15
|
|
label13.TextColor = Colors.Black
|
|
Dim label14 As Label
|
|
label14 = lv_promos.TwoLinesAndBitmap.SecondLabel
|
|
label14.TextSize = 15
|
|
label14.TextColor = Colors.Black
|
|
lfila.text = "PROMOS"
|
|
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)
|
|
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("mp").As(Map).Get("prodsFijosCant") & " V:" & tm.Get("mp").As(Map).Get("prodsVariablesCant"))
|
|
End If
|
|
Next
|
|
End If
|
|
c2.Close
|
|
End If
|
|
entro = "4"
|
|
End Sub
|
|
|
|
Sub lv_promos_ItemClick (Position As Int, Value As Object)
|
|
clv_prods_ll.AsView.Visible = False
|
|
Dim cliente As C_Cliente = B4XPages.GetPage("Cliente")
|
|
' Log($"Entro=${entro}, value=${Value}, cuenta=${cliente.cuenta}"$)
|
|
If Value = "PROMOS" And cliente.cuenta <> "N" Then
|
|
entro = "3"
|
|
marca = "PROMOS"
|
|
tipo = "PROMOS"
|
|
Else if Value = "PROMOS" And cliente.cuenta = "N" Then
|
|
entro = "5"
|
|
B4XPages.ShowPage("Cliente")
|
|
End If
|
|
If entro = "3" Then
|
|
Else If entro = "4" Then
|
|
' Log("Entro = 4")
|
|
B4XPages.MainPage.skmt.ExecNonQuery("delete from PROID")
|
|
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO PROID VALUES (?)", Array As Object(Value))
|
|
Dim promos As C_Promos = B4XPages.GetPage("Promos")
|
|
promos.laPromo = Subs.traeProdIdDeBD.Get("id")
|
|
promos.elCliente = Subs.traeUsuarioDeBD
|
|
B4XPages.ShowPage("Promos")
|
|
End If
|
|
End Sub
|
|
|
|
'Generamos la lista de productos.
|
|
Sub llenaCatalogo(subtipo1 As String)
|
|
' Log("LlenaCatalogo")
|
|
' Private c2 As Cursor
|
|
' c2=B4XPages.MainPage.skmt.ExecQuery2("select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG, CAT_GP_TIPOPROD, CAT_GP_INICIATIVA from cat_gunaprod where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_TIPOPROD <> 'PROMOS' and CAT_GP_SUBTIPO = ? ", Array As String(subtipo1))
|
|
' Private bgColor, textColor As Int
|
|
' If c2.RowCount > 0 And clv_productos.Size <> c2.RowCount Then
|
|
' clv_productos.Clear : Log("limpiamos productos")
|
|
' For i=0 To c2.RowCount -1
|
|
' c2.Position=i
|
|
' If c2.GetString("CAT_GP_TIPOPROD") = "PRIORITARIO" Then
|
|
' bgColor = Colors.RGB(255, 212, 163) 'naranja
|
|
' Else If c2.GetString("CAT_GP_TIPOPROD") = "COMPLEMENTARIO" Then
|
|
' bgColor = Colors.RGB(177, 200, 249)'azul
|
|
' else If c2.GetString("CAT_GP_TIPOPROD") = "CATALOGO REGULAR" Then
|
|
' bgColor = Colors.White
|
|
' else If c2.GetString("CAT_GP_TIPOPROD") = "ESTRATEGICO" Then
|
|
' bgColor = Colors.RGB(241, 255, 163) 'amarillo
|
|
' End If
|
|
' textColor = Colors.Black
|
|
' clv_productos.Add(CreateListItem(c2.GetString("CAT_GP_NOMBRE"), c2.GetString("CAT_GP_PRECIO"), c2.GetString("CAT_GP_ALMACEN"), clv_productos.AsView.Width, 60dip, bmp, c2.GetString("CAT_GP_ID"), bgColor, textColor), c2.GetString("CAT_GP_NOMBRE"))
|
|
' Next
|
|
' End If
|
|
' c2.Close
|
|
End Sub
|
|
|
|
Private Sub B4XPage_CloseRequest As ResumableSub
|
|
' BACK key pressed
|
|
' Return True To close, False To cancel
|
|
If l_info.Visible Then
|
|
l_info.Visible = False
|
|
Return False
|
|
else if p_vistaPreviaTrans.Visible Then
|
|
p_vistaPreviaTrans.Visible = False
|
|
Return False
|
|
else if lv_promos.visible Then
|
|
lv_promos.Visible = False
|
|
lv_catalogos.Visible = True
|
|
p_botonesVenta.Visible = False
|
|
l_total.Visible = False
|
|
l_totProds.Visible = False
|
|
Return False
|
|
else if clv_prods_ll.AsView.Visible Then
|
|
lfila.text = "CATALOGO"
|
|
clv_prods_ll.AsView.Visible = False
|
|
lv_subtipo.Visible = False
|
|
p_botonesVenta.Visible = False
|
|
l_total.Visible = False
|
|
l_totProds.Visible = False
|
|
lv_catalogos.Visible = True
|
|
Return False
|
|
' else if lv_subtipo.Visible Then
|
|
' lfila.text = "TIPO"
|
|
' lv_subtipo.Visible = False
|
|
' lv_tipo.Visible = False
|
|
' Return False
|
|
' else if lv_tipo.Visible Then
|
|
' lfila.text = "CATALOGO"
|
|
' lv_tipo.Visible = False
|
|
' lv_catalogos.Visible = True
|
|
' Return False
|
|
else If entro = "4" Then
|
|
entro = "3"
|
|
B4XPage_Appear
|
|
Return True
|
|
Else If entro = "3" Then
|
|
B4XPages.ShowPage("Cliente")
|
|
Return False
|
|
Else
|
|
B4XPages.ShowPage("Cliente")
|
|
Return False
|
|
End If
|
|
End Sub
|
|
|
|
Sub b_QR_Click
|
|
If ciclo = 1 Then
|
|
ciclo = 2
|
|
ya_entro = "0"
|
|
B4XPage_Appear
|
|
else if ciclo = 2 Then
|
|
ciclo = 3
|
|
ya_entro = "0"
|
|
B4XPage_Appear
|
|
else if ciclo = 3 Then
|
|
ciclo = 4
|
|
ya_entro = "0"
|
|
B4XPage_Appear
|
|
else if ciclo = 4 Then
|
|
ciclo = 5
|
|
ya_entro = "0"
|
|
B4XPage_Appear
|
|
else if ciclo = 5 Then
|
|
ciclo = 1
|
|
ya_entro = "0"
|
|
B4XPage_Appear
|
|
End If
|
|
End Sub
|
|
|
|
'****************************************************************************
|
|
'***************** PARA EL MAS/MENOS *************************************
|
|
'****************************************************************************
|
|
Sub CreateListItem(Text As String, precioU As String, inv As Int, Width As Int, Height As Int, img As Bitmap, prodId As String, bc As Int, tc As Int) As Panel
|
|
' Dim p As B4XView = xui.CreatePanel("")
|
|
' p.SetLayoutAnimated(0, 0, 0, Width, Height)
|
|
' p.LoadLayout("prodItem")
|
|
' p_prods.Color = bc
|
|
' l_prodX.TextColor = tc
|
|
' l_prodX.TextSize = 15
|
|
' p_prods.Height = Height
|
|
' l_prodX.Height = Height
|
|
' l_prodX.Text = Text&CRLF&"# " & inv & " $ " & precioU
|
|
' l_prodX.Tag = $"ID: ${prodId}${CRLF}${Text}${CRLF}Precio: $$1.2{precioU}${CRLF}Inv: ${inv} pzs"$
|
|
' l_pCant.Tag = precioU&"|"&inv&"|"&prodId
|
|
' et_pCant.Tag = precioU&"|"&inv&"|"&prodId
|
|
' et_pCant.BringToFront
|
|
' Return p
|
|
End Sub
|
|
|
|
Sub b_prodMenos_Click
|
|
totalcajasmaspiezas = 0
|
|
etCantHasFocus = False
|
|
Root.RequestFocus
|
|
' LogColor("b_prodMenos_Click", Colors.Magenta)
|
|
Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
|
|
Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index)
|
|
Dim pnl As B4XView = pnl0.GetView(0)
|
|
Dim laCant As B4XView = pnl.GetView(2).GetView(2)
|
|
Dim laCant2 As B4XView = pnl.GetView(3).GetView(2)
|
|
Dim panelbotonesc As B4XView = pnl.GetView(3)
|
|
Dim lProdX As B4XView = pnl.GetView(1)
|
|
Dim panelcajas As B4XView = pnl.GetView(3)
|
|
Dim panelpiezas As B4XView = pnl.GetView(2)
|
|
' Log($"precio|stock:${laCant.tag}"$)
|
|
If laCant.Text = "" Then laCant.Text = 0
|
|
' Log("lacant.text="&laCant.text)
|
|
laCant.Text = $"${NumberFormat2(laCant.Text-1,0,0,0,False)}"$
|
|
If laCant.Text < 0 Then laCant.Text = 0
|
|
Private tmpMap1 As Map = clv_prods_ll.GetValue(index).As(Map)
|
|
Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
|
|
Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
|
|
Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant.Text, "almacen":Subs.traeAlmacen)
|
|
Private nombreX As String = Subs.traeProdNombre(id)
|
|
LogColor(tmpMap1,Colors.Magenta)
|
|
' prodsMap.Put(id, tmpMap)
|
|
If laCant.Text = 0 Then prodsMap.Remove(id)
|
|
|
|
If laCant.Text = 0 Then
|
|
panelcajas.Visible = True
|
|
Else If laCant.Text > 0 Then
|
|
panelcajas.Visible = False
|
|
End If
|
|
' If laCant2.IsInitialized Then
|
|
' totalcajasmaspiezas = laCant.Text + laCant2.Text
|
|
' Else
|
|
' totalcajasmaspiezas = laCant.Text
|
|
' End If
|
|
LogColor("prodsMap="&prodsMap, Colors.blue)
|
|
' (Subs.traeAlmacen, p1.Get("precio"), p1.Get("cant"), pn, p, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta)
|
|
Log($"${Subs.traeAlmacen}, ${precio}, ${laCant.text}, ${Subs.traeProdNombre(id)}, ${id}, ${clienteId}"$)
|
|
Subs.actualizaProducto(Subs.traeAlmacen, precio, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,0,0)
|
|
cuentaProds
|
|
LogColor("prodsMap="&prodsMap, Colors.blue)
|
|
Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
|
|
If 1 = 1 Then
|
|
Private cs As CSBuilder
|
|
cs.Initialize
|
|
Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$)
|
|
Private invActualizado As String = "0"
|
|
If o.RowCount > 0 Then
|
|
o.Position = 0
|
|
invActualizado = o.GetString("CAT_GP_ALMACEN")
|
|
End If
|
|
If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then
|
|
Private maxcajas As Int = 0
|
|
Log("cajas a 0")
|
|
Else
|
|
Private maxcajas As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion")
|
|
Log("cajas no a 0")
|
|
End If
|
|
' Private maxcajas As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion")
|
|
If 2 = 2 Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas}"$).Popall
|
|
' Log(lProdX.Text)
|
|
End If
|
|
If Subs.totalPedido < 1 Then laCant.Text = "0"
|
|
invTotal = totalcajasmaspiezas + Subs.traeinventario(id)
|
|
'aqui si lo comentamos aparece la parte de cajas
|
|
If tmpMap1.Get("conversion") = "1" Or tmpMap1.Get("precio_caja") = "0" Then
|
|
Log("invisible")
|
|
panelbotonesc.Visible = False
|
|
End If
|
|
|
|
If clv_prods_ll.GetValue(index).As(Map).Get("almacen") < clv_prods_ll.GetValue(index).As(Map).Get("conversion") Then
|
|
Log(clv_prods_ll.GetValue(index).As(Map).Get("cant"))
|
|
If clv_prods_ll.GetValue(index).As(Map).Get("cant").As(Int) = 0 Then
|
|
Log("Aqui debemos ponerlo invisible")
|
|
panelcajas.Visible = False
|
|
End If
|
|
' p_botMasMenc.Visible = False
|
|
End If
|
|
'fin aparecer parte de cajas
|
|
' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red)
|
|
End Sub
|
|
|
|
Sub b_prodMas_Click
|
|
totalcajasmaspiezas = 0
|
|
etCantHasFocus = False
|
|
Root.RequestFocus
|
|
' LogColor("b_prodMas_Click", Colors.Magenta)
|
|
|
|
Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
|
|
Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index)
|
|
Dim pnl As B4XView = pnl0.GetView(0)
|
|
Dim laCant As B4XView = pnl.GetView(2).GetView(2)
|
|
Dim panelcajas As B4XView = pnl.GetView(3)
|
|
Dim panelpiezas As B4XView = pnl.GetView(2)
|
|
Dim laCant2 As B4XView = pnl.GetView(3).GetView(2)
|
|
Dim lProdX As B4XView = pnl.GetView(1)
|
|
|
|
' Private tmpMap As Map = clv_prods_ll.GetValue(index).As(Map)
|
|
Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
|
|
Private inv As String=clv_prods_ll.GetValue(index).As(Map).Get("almacen")
|
|
Private existencias As String = clv_prods_ll.GetValue(index).As(Map).Get("almacen")
|
|
Log($"Existencias: ${existencias}"$)
|
|
If laCant.Text = "" Then laCant.Text = 0
|
|
Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
|
|
' If laCant.Text + 1 <= inv Then
|
|
'' Log(NumberFormat2(laCant.Text+1,0,0,0,False))
|
|
' laCant.Text = $"${NumberFormat2(laCant.Text+1,0,0,0,False)}"$
|
|
'' Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
|
|
' Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
|
|
'' Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant.Text, "almacen":Subs.traeAlmacen)
|
|
'' Log(tmpMap)
|
|
'' prodsMap.Put(id, tmpMap)
|
|
'' LogColor(prodsMap, Colors.blue)
|
|
' End If
|
|
' Log("Cantidad + exis " & (laCant.Text + existencias))
|
|
' Log( (laCant.Text + 1 <= (laCant.Text + existencias)))
|
|
' Log("inventario "&Subs.traeinventario(id))
|
|
' Log((Subs.totalPedido - precio > 1))
|
|
' Log((Subs.totalPedido))
|
|
' Log(precio)
|
|
LogColor(laCant.Text,Colors.Red)
|
|
|
|
If Subs.traeinventario(id) > 0 And (laCant.Text <= (laCant.Text + Subs.traeinventario(id))) Then 'And (Subs.totalPedido - precio > 1)
|
|
' Log(clv_prods_ll.GetValue(index).As(Map))
|
|
clv_prods_ll.GetValue(index).As(Map).Put("almacen", (inv - 1))
|
|
inv = inv - 1
|
|
' laCant.Text = $"$1.0{laCant.Text+1}"$
|
|
laCant.Text = NumberFormat2((laCant.Text + 1), 1, 0, 0, False)
|
|
' Log(clv_prods_ll.GetValue(index).As(Map))
|
|
End If
|
|
Private nombreX As String = Subs.traeProdNombre(id)
|
|
' Subs.actualizaProducto(Subs.traeAlmacen, laCant.text, id, clienteId)
|
|
|
|
If laCant.Text > 0 Then
|
|
panelcajas.Visible = False
|
|
Else If laCant.Text = 0 Then
|
|
panelcajas.Visible = True
|
|
End If
|
|
|
|
LogColor(laCant.Text,Colors.Red)
|
|
' If laCant2.IsInitialized Then
|
|
' totalcajasmaspiezas = laCant.Text + laCant2.Text
|
|
' Else
|
|
' totalcajasmaspiezas = laCant.Text
|
|
' End If
|
|
Subs.actualizaProducto(Subs.traeAlmacen, precio, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,0,0)
|
|
cuentaProds
|
|
' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
|
|
If 1 = 1 Then
|
|
Private cs As CSBuilder
|
|
cs.Initialize
|
|
Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$)
|
|
Private invActualizado As String = "0"
|
|
If o.RowCount > 0 Then
|
|
o.Position = 0
|
|
invActualizado = o.GetString("CAT_GP_ALMACEN")
|
|
End If
|
|
If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then
|
|
Private maxcajas As Int = 0
|
|
Log("cajas a 0")
|
|
Else
|
|
Private maxcajas As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion")
|
|
Log("cajas no a 0")
|
|
End If
|
|
If 2 = 2 Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas}"$).Popall
|
|
' Log(lProdX.Text)
|
|
End If
|
|
invTotal = totalcajasmaspiezas + Subs.traeinventario(id)
|
|
' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red)
|
|
End Sub
|
|
|
|
Private Sub et_pCant_FocusChanged (HasFocus As Boolean)
|
|
LogColor($"focus changed=${HasFocus}"$, Colors.Magenta)
|
|
If et_pCant.Text = "" Then et_pCant.Text = "0"
|
|
Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
|
|
Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index)
|
|
Dim pnl As B4XView = pnl0.GetView(0)
|
|
Dim laCant As B4XView = pnl.GetView(2).GetView(2)
|
|
Dim laCant2 As B4XView = pnl.GetView(3).GetView(2)
|
|
Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
|
|
If laCant.Text = "" Then laCant.Text = "0"
|
|
etCantHasFocus = HasFocus
|
|
LogColor(laCant.Text,Colors.Red)
|
|
If laCant2.IsInitialized Then
|
|
totalcajasmaspiezas = laCant.Text + laCant2.Text
|
|
Else
|
|
totalcajasmaspiezas = laCant.Text
|
|
End If
|
|
invTotal = totalcajasmaspiezas + Subs.traeinventario(id)
|
|
' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red)
|
|
cuentaProds
|
|
End Sub
|
|
|
|
Private Sub et_pCant_TextChanged (Old As String, New As String)
|
|
' Log(etCantHasFocus)
|
|
' Log("InvTotal: " & invTotal)
|
|
If etCantHasFocus = True Then
|
|
LogColor($"txt changed: ${Old}|${New}, hasfocus=${etCantHasFocus}"$,Colors.Magenta)
|
|
Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
|
|
Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index)
|
|
Dim pnl As B4XView = pnl0.GetView(0)
|
|
Dim laCant As B4XView = pnl.GetView(2).GetView(2)
|
|
Dim laCant2 As B4XView = pnl.GetView(3).GetView(2)
|
|
Dim lProdX As B4XView = pnl.GetView(1)
|
|
Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
|
|
Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
|
|
Private inv As String=clv_prods_ll.GetValue(index).As(Map).Get("almacen")
|
|
Private inv As String=Subs.traeinventario(id)
|
|
Private nombreX As String = Subs.traeProdNombre(id)
|
|
Dim panelcajas As B4XView = pnl.GetView(3)
|
|
Dim panelpiezas As B4XView = pnl.GetView(2)
|
|
If(New = "" Or New = Null Or New = "-") Then New = 0
|
|
' If New < 0 Then New = 0
|
|
If(New > invTotal) Then
|
|
Sender.As(EditText).text = invTotal
|
|
End If
|
|
' Log($"inventario=${inv}"$)
|
|
If New = "" Then New = 0
|
|
If laCant.Text = "" Then laCant.Text = 0
|
|
LogColor(laCant.Text,Colors.Red)
|
|
If New > 0 Then
|
|
panelcajas.Visible = False
|
|
Else If New = 0 Then
|
|
panelcajas.Visible = True
|
|
End If
|
|
' If laCant2.IsInitialized Then
|
|
' totalcajasmaspiezas = laCant.Text + laCant2.Text
|
|
' Else
|
|
' totalcajasmaspiezas = laCant.Text
|
|
' End If
|
|
If Not(Old = "0" And New = "") And laCant.Text <> Null And laCant.Text <> "" And etCantHasFocus Then
|
|
Log("actualizamos producto")
|
|
Subs.actualizaProducto(Subs.traeAlmacen, precio, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,0,0)
|
|
cuentaProds
|
|
End If
|
|
' If New <> "" And New.SubString2(0,0) = "0" Then
|
|
' New.SubString(1)
|
|
' End If
|
|
' If New <> "" And New.SubString(1) <> "" Then
|
|
' Log(New.SubString(1))
|
|
' New = New.SubString(1)
|
|
' laCant.Text = New.SubString(1)
|
|
' Log(laCant.Text)
|
|
' End If
|
|
If 1 = 1 Then
|
|
Private cs As CSBuilder
|
|
cs.Initialize
|
|
Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$)
|
|
Private invActualizado As String = "0"
|
|
' If o.RowCount > 0 Then
|
|
o.Position = 0
|
|
invActualizado = Subs.traeinventario(id)
|
|
Log(Subs.traeinventario(id))
|
|
' End If
|
|
If New = "" Then New = 0
|
|
If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then
|
|
Private maxcajas As Int = 0
|
|
Log("cajas a 0")
|
|
Else
|
|
Private maxcajas As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion")
|
|
Log("cajas no a 0")
|
|
End If
|
|
lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & (Subs.traeinventario(id))).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas}"$).Popall
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Sub cuentaProds
|
|
' LogColor($"Productos de la orden: ${c_prods.GetString("cantProds")}, Total: ${c_prodsX.GetString("costoTotal")}"$, Colors.red)
|
|
Log("===========================")
|
|
Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select sum(PE_COSTO_TOT) as total, sum(PE_CANT) as cant from PEDIDO where PE_CLIENTE = '${clienteId}'"$)
|
|
' LogColor("TIEMPO cuentaProds =" & ((DateTime.Now-inicioContador)/1000), Colors.Red)
|
|
' LogColor(prodsMap, Colors.Magenta)
|
|
p_botonesVenta.Visible = True
|
|
p_botonesVenta.BringToFront
|
|
c.Position=0
|
|
' Log($"Total Prods: ${c.GetString("cant")}, Total Compra: $$1.2{c.GetString("total")}"$)
|
|
c.Close
|
|
' Log($"HAY PEDIDO: ${hayPedido}"$)
|
|
End Sub
|
|
|
|
Sub b_terminar1_Click
|
|
' Log("b_terminar1_Click")
|
|
' ya_entro = "0" : Log("ya_entro=1")
|
|
B4XPages.MainPage.skmt.ExecNonQuery2("delete from PEDIDO WHERE PE_PRONOMBRE = ? ", Array As Object("N/A") )
|
|
lv_promos.Visible = False
|
|
clv_prods_ll.AsView.Visible = False
|
|
lv_catalogos.Visible = True
|
|
lv_prodsPedido.Clear
|
|
lv_prodsPedido.TwoLinesLayout.Label.Height = 35dip
|
|
lv_prodsPedido.TwoLinesLayout.SecondLabel.Height = 25dip
|
|
Private c_prods As Cursor=B4XPages.MainPage.skmt.ExecQuery("select PE_PRONOMBRE,PE_COSTO_TOT, PE_CANT, PE_FOLIO, PE_CEDIS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_PRONOMBRE")
|
|
If c_prods.RowCount > 0 Then
|
|
Private cs As CSBuilder
|
|
vamoaver.Initialize
|
|
For i=0 To c_prods.RowCount -1
|
|
cs.Initialize
|
|
c_prods.Position=i
|
|
Dim label1 As Label
|
|
label1 = lv_prodsPedido.TwoLinesLayout.Label
|
|
label1.TextSize = 15
|
|
label1.TextColor = Colors.Black
|
|
label1.color = Colors.White
|
|
Private textColor As Int = Colors.black
|
|
If c_prods.GetString("PE_FOLIO") = "VENTA" Then
|
|
textColor = Colors.RGB(48,3,195)
|
|
Else If c_prods.GetString("PE_FOLIO") = "PREVENTA" Or c_prods.GetString("PE_FOLIO") = "ABORDO" Or c_prods.GetString("PE_FOLIO") = "RECARGA" Then
|
|
textColor = Colors.RGB(166,0,0)
|
|
End If
|
|
If Not(IsNumber(c_prods.GetString("PE_CEDIS"))) And c_prods.GetString("PE_FOLIO") = "VENTA" Then
|
|
textColor = Colors.RGB(154,131,231) 'Si es promo, cambiamos el color del texto.
|
|
Else If Not(IsNumber(c_prods.GetString("PE_CEDIS"))) And c_prods.GetString("PE_FOLIO") = "PREVENTA" Then
|
|
textColor = Colors.RGB(255,111,111) 'Si es promo, cambiamos el color del texto.
|
|
End If
|
|
Dim label2 As Label
|
|
label2 = lv_prodsPedido.TwoLinesLayout.SecondLabel
|
|
label2.TextSize = 10
|
|
label2.TextColor = Colors.Blue
|
|
lv_prodsPedido.AddTwoLines(cs.Color(textColor).append(c_prods.GetString("PE_PRONOMBRE")).pop,"Cantidad #"& c_prods.GetString("PE_CANT")& " SubTotal $"& c_prods.GetString("PE_COSTO_TOT")& " Folio "& c_prods.GetString("PE_FOLIO"))
|
|
vamoaver.Add(c_prods.GetString("PE_FOLIO"))
|
|
folio = c_prods.GetString("PE_FOLIO")
|
|
Next
|
|
' c=B4XPages.MainPage.skmt.ExecQuery("select pc_noart, pc_monto from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)")
|
|
' c = B4XPages.MainPage.skmt.ExecQuery("SELECT SUM (PE_CANT) AS CANTIDAD FROM PEDIDO WHERE PE_PROID not like 'PRO%' and PE_CLIENTE IN (Select CUENTA from cuentaa)")
|
|
c = B4XPages.MainPage.skmt.ExecQuery("select sum(PE_CANT) as PC_NOART, sum (PE_COSTO_TOT) as PC_MONTO from PEDIDO where PE_CLIENTE in (Select CUENTA from cuentaa) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP )")
|
|
' r = B4XPages.MainPage.skmt.ExecQuery("SELECT SUM (PE_COSTO_TOT) AS MONTO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
|
|
c.Position=0
|
|
' r.Position = 0
|
|
l_cant.Text = c.GetString("PC_NOART")
|
|
l_total2.Text = c.GetString("PC_MONTO")
|
|
c.Close
|
|
' r.Close
|
|
End If
|
|
c_prods.Close
|
|
p_vistaPreviaTrans.Width = Root.Width
|
|
p_vistaPreviaTrans.Height = Root.Height
|
|
Subs.centraPanel(p_vistaPrevia, Root.Width)
|
|
If Subs.pedidoGuardado Then b_rechazar.Enabled = False Else b_rechazar.Enabled = True
|
|
p_vistaPrevia.Visible=True
|
|
p_vistaPreviaTrans.Visible=True
|
|
End Sub
|
|
|
|
Private Sub b_continuar_Click
|
|
Log("b_continuar_Click")
|
|
cuentaProds
|
|
' Private p1 As Map
|
|
Log($"prodsMap=${prodsMap}"$)
|
|
' For Each p As String In prodsMap.Keys
|
|
' p1 = prodsMap.Get(p)
|
|
' Log(p & "|" & p1)
|
|
' Private pn As String = Subs.traeProdNombre(p)
|
|
' Subs.guardaProductoSinGestion(Subs.traeAlmacen, p1.Get("precio"), p1.Get("cant"), pn, p, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta)
|
|
' Next
|
|
Log("promos-inv, prods-inv, cat-vis")
|
|
lv_promos.Visible = False
|
|
clv_prods_ll.AsView.Visible = False
|
|
lv_subtipo.Visible = False
|
|
lv_tipo.Visible = False
|
|
lv_catalogos.Visible = True
|
|
Log("Continuar")
|
|
Dim m As Map = Subs.traeTotalesClienteActual
|
|
prodsPedidoActual = m.Get("productos")
|
|
montoPedidoActual = m.Get("monto")
|
|
End Sub
|
|
|
|
Private Sub l_prodX_LongClick
|
|
Log("longclic = "&Sender.as(Label).tag)
|
|
l_info.Text = Sender.as(Label).tag
|
|
l_info.Visible = True
|
|
End Sub
|
|
|
|
Private Sub l_info_Click
|
|
l_info.Visible = False
|
|
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 = B4XPages.MainPage.skmt.ExecQuery($"select CAT_GP_ID from ${Starter.tabla} where CAT_GP_TIPO = 'PROMOS' and CAT_GP_NOMBRE = '${Value}'"$)
|
|
If c.RowCount > 0 Then
|
|
c.Position = 0
|
|
id = c.GetString("CAT_GP_ID")
|
|
End If
|
|
l_info.Text = $"ID: ${id}${CRLF}${Value}"$
|
|
l_info.Visible = True
|
|
End Sub
|
|
|
|
'Private Sub b_buscar_Click
|
|
' forzarBusqueda = True
|
|
' Busca_TextChanged("",BUSCA.Text)
|
|
'End Sub
|
|
|
|
Private Sub lv_tipo_ItemClick (Position As Int, Value As Object)
|
|
' lfila.text = "SUB TIPO"
|
|
' lv_tipo.Visible = False
|
|
' lv_subtipo.Height = Root.Height * 0.7
|
|
' lv_subtipo.Visible = True
|
|
' Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery2("select distinct CAT_GP_SUBTIPO from cat_gunaprod where CAT_GP_TIPO = ? order by CAT_GP_SUBTIPO", Array As String(Value))
|
|
' If c.RowCount > 0 Then
|
|
' Dim label1 As Label
|
|
' label1 = lv_subtipo.SingleLineLayout.Label
|
|
' label1.TextSize = 17
|
|
' label1.TextColor = Colors.Black
|
|
' lv_subtipo.Clear
|
|
' For i=0 To c.RowCount-1
|
|
' c.Position=i
|
|
' lv_subtipo.AddSingleLine(c.GetString("CAT_GP_SUBTIPO"))
|
|
' Next
|
|
' End If
|
|
' c.Close
|
|
End Sub
|
|
|
|
Private Sub lv_subtipo_ItemClick (Position As Int, Value As Object)
|
|
' lfila.text = "SUB TIPO"
|
|
' LogColor("Catalogo", Colors.red)
|
|
' lv_catalogos.Visible = False
|
|
' lv_subtipo.Visible = False
|
|
' lv_promos.Visible = False
|
|
' lfila.text = "CATALOGO"
|
|
' ProgressDialogShow("Cargando catalogo ...")
|
|
' Sleep(100)
|
|
' Private inicioContador As String = DateTime.Now
|
|
' llenaCatalogo(Value)
|
|
' clv_prods_ll.AsView.Visible = True
|
|
' LogColor("TIEMPO DE PROCESO DEL CATALOGO: " & ((DateTime.Now-inicioContador)/1000), Colors.Red)
|
|
' ProgressDialogHide
|
|
End Sub
|
|
|
|
Private Sub p_vistaPreviaTrans_Click
|
|
|
|
End Sub
|
|
|
|
Private Sub b_rechazar_Click
|
|
' If folio <> "" Then
|
|
result = Msgbox2($"Seguro que desea borrar el pedido completo?${CRLF}Haciendo clic largo sobre un producto se pueden borrar articulos independientes."$,"Rechazar Pedido", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
|
|
If result = DialogResponse.POSITIVE Then
|
|
Subs.borraPedidoClienteActual
|
|
prodsMap.Initialize
|
|
B4XPages.MainPage.promos.promosMap.Initialize
|
|
' Log("Llamamos LlenaProdsLL")
|
|
' LlenaProdsLL(Null)
|
|
clv_prods_ll.Clear
|
|
Log("Positivo")
|
|
B4XPages.ShowPage("Cliente")
|
|
Else
|
|
Log("NO Positivo")
|
|
p_vistaPreviaTrans.Visible = False
|
|
End If
|
|
' Else
|
|
' Msgbox("CLIENTE YA SE TRANSMITIO, FAVOR DE LLAMAR A SOPORTE PARA ASISTENCIA","AVISO") 'ignore
|
|
' End If
|
|
p_vistaPreviaTrans.Visible=False
|
|
B4XPages.ShowPage("Cliente")
|
|
End Sub
|
|
|
|
Private Sub b_aceptar_Click
|
|
p_vistaPreviaTrans.Visible=False
|
|
B4XPages.ShowPage("Cliente")
|
|
End Sub
|
|
|
|
Private Sub lv_prodsPedido_ItemLongClick (Position As Int, Value As Object)
|
|
Private sDate,sTime, clie_id, usuario As String
|
|
If Not(Subs.pedidoGuardado) Then
|
|
result = Msgbox2("Seguro que desea borrar este articulo?","Borrar Articulo", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
|
|
If result = DialogResponse.POSITIVE Then
|
|
c=B4XPages.MainPage.skmt.ExecQuery2("select PE_PROID,PE_CANT, PE_FOLIO FROM PEDIDO where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa) ", Array As String(Value))
|
|
c.Position=0
|
|
Log(vamoaver.Get(Position))
|
|
If vamoaver.Get(Position) = "VENTA" Then
|
|
Log("CAT_GUNAPROD2")
|
|
Log(Position)
|
|
Log(Value)
|
|
Starter.tabla = "CAT_GUNAPROD2"
|
|
Else
|
|
Log("CAT_GUNAPROD")
|
|
Log(Position)
|
|
Log(Value)
|
|
Starter.tabla = "CAT_GUNAPROD"
|
|
End If
|
|
' B4XPages.MainPage.skmt.ExecNonQuery2($"update ${Starter.tabla} set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?"$, Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID")))
|
|
' Log(c.GetString("PE_CANT"))
|
|
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO INVENT_X_ENVIAR (ALMACEN , PROID , CANTIDAD ) VALUES(?,?,?) ", Array As Object (Subs.traeAlmacen,c.GetString("PE_PROID"),c.GetString("PE_CANT")* -1))
|
|
c2=B4XPages.MainPage.skmt.ExecQuery2($"select count(*) AS CUANTOS from ${Starter.tabla} where CAT_GP_ID in (select pe_cedis from pedido where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa)) and CAT_GP_CLASIF = 'PROMOS' AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO = 'PROMOS'"$, Array As String(Value))
|
|
c2.Position=0
|
|
If c2.GetString("CUANTOS") > 0 Then
|
|
j3 = B4XPages.MainPage.skmt.ExecQuery2("SELECT PE_CEDIS, PE_CANT,PE_PROID, PE_PRONOMBRE FROM PEDIDO WHERE PE_CEDIS IN (SELECT PE_CEDIS FROM PEDIDO WHERE PE_PRONOMBRE = ?)",Array As String(Value))
|
|
Log(j3.RowCount)
|
|
If j3.RowCount > 0 Then
|
|
Log("estoy aqui")
|
|
For i = 0 To j3.RowCount -1
|
|
Log("aqui tronare?")
|
|
j3.Position = i
|
|
B4XPages.MainPage.skmt.ExecNonQuery($"update ${Starter.tabla} set cat_gp_almacen = cat_gp_almacen + ${j3.GetString("PE_CANT")} where cat_gp_id = '${j3.Getstring("PE_PROID")}'"$)
|
|
B4XPages.MainPage.skmt.ExecNonQuery2("delete from pedido where pe_cedis in (select pe_cedis from pedido where pe_pronombre = ?) and pe_cliente in (Select CUENTA from cuentaa) AND PE_FOLIO = ?", Array As Object(j3.GetString("PE_PRONOMBRE"), c.GetString("PE_FOLIO")))
|
|
Next
|
|
End If
|
|
j3.Close
|
|
Else
|
|
B4XPages.MainPage.skmt.ExecNonQuery($"update ${Starter.tabla} set cat_gp_almacen = cat_gp_almacen + ${c.GetString("PE_CANT")} where cat_gp_id = '${c.Getstring("PE_PROID")}'"$)
|
|
B4XPages.MainPage.skmt.ExecNonQuery2("delete from pedido where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa) AND PE_FOLIO = ?", Array As Object(Value, c.GetString("PE_FOLIO")))
|
|
End If
|
|
c.Close
|
|
c2.Close
|
|
DateTime.DateFormat = "MM/dd/yyyy"
|
|
sDate=DateTime.Date(DateTime.Now)
|
|
sTime=DateTime.Time(DateTime.Now)
|
|
c=B4XPages.MainPage.skmt.ExecQuery("Select CUENTA from cuentaa")
|
|
c.Position=0
|
|
clie_id = c.GetString("CUENTA")
|
|
c=B4XPages.MainPage.skmt.ExecQuery("select USUARIO from usuarioa")
|
|
c.Position=0
|
|
usuario = c.GetString("USUARIO")
|
|
c=B4XPages.MainPage.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, count(*) as CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
|
|
c.Position=0
|
|
If c.GetString("CUANTOS") > 0 Then
|
|
Log("aqui5")
|
|
B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
|
|
B4XPages.MainPage.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps))
|
|
B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
|
|
B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
|
|
Private h As Cursor = B4XPages.MainPage.skmt.ExecQuery("select sum(PE_CANT) as PC_NOART, sum (PE_COSTO_TOT) as PC_MONTO from PEDIDO where PE_CLIENTE in (Select CUENTA from cuentaa) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP )")
|
|
h.Position=0
|
|
l_cant.Text = h.GetString("PC_NOART")
|
|
l_total2.Text = h.GetString("PC_MONTO")
|
|
h.Close
|
|
Else
|
|
Log("aqui6")
|
|
B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
|
|
B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
|
|
Private h As Cursor = B4XPages.MainPage.skmt.ExecQuery("select sum(PE_CANT) as PC_NOART, sum (PE_COSTO_TOT) as PC_MONTO from PEDIDO where PE_CLIENTE in (Select CUENTA from cuentaa) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP )")
|
|
h.Position=0
|
|
l_cant.Text = 0
|
|
l_total2.Text = 0
|
|
h.Close
|
|
End If
|
|
b_terminar1_Click
|
|
End If
|
|
Else
|
|
ToastMessageShow("Esta venta ya esta guardada, no se puede editar ni borrar.", False)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub clv_prods_ll_ItemClick (Index As Int, Value As Object)
|
|
|
|
End Sub
|
|
|
|
Sub l_prodx_click
|
|
Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
|
|
Private p0 As B4XView = clv_prods_ll.GetPanel(index)
|
|
Private p As B4XView = p0.GetView(0)
|
|
Private cant1 As B4XView = p.GetView(2).GetView(2)
|
|
Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
|
|
' Log(clv_prods_ll.GetValue(index))
|
|
Log(cant1.Text)
|
|
End Sub
|
|
|
|
Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As Int)
|
|
' Private inicioContador As String = DateTime.Now
|
|
' Log($"clv_prods_ll_VisibleRangeChanged : ${FirstIndex}, ${LastIndex} "$)
|
|
Dim ExtraSize As Int = 15 'List size
|
|
For i = Max(0, FirstIndex - ExtraSize) To Min(LastIndex + ExtraSize, clv_prods_ll.Size - 1)
|
|
Dim Pnl As B4XView = clv_prods_ll.GetPanel(i)
|
|
If i > FirstIndex - ExtraSize And i < LastIndex + ExtraSize Then
|
|
' Log(listaRenglones)
|
|
If Pnl.NumberOfViews = 0 Then 'Add each item/layout to the list/main layout
|
|
Pnl.LoadLayout("proditem")
|
|
' Pnl.Color = Colors.Cyan
|
|
p_prods.Width = Root.Width * 0.92
|
|
p_botMasMen.Left = p_prods.Width - (p_botMasMen.Width + 5)
|
|
p_botMasMenc.Left = p_prods.Width - (p_botMasMen.Width + 5)
|
|
p_prods.Height = 134dip
|
|
' b_prodMenos.Height = 50dip
|
|
' b_prodMas.Height = 50dip
|
|
' et_pCant.Height = 51dip
|
|
' l_pCant.Height = 44dip
|
|
' l_pCant.Top = l_pCant.Top + 8
|
|
' Pnl.Height = p_prods.Height
|
|
' Pnl.Height = 300dip
|
|
Pnl.SetLayoutAnimated(0,0,0,Pnl.Width,145dip)
|
|
Private cs As CSBuilder
|
|
cs.Initialize
|
|
l_prodX.SetTextSizeAnimated(0, 13)
|
|
If clv_prods_ll.GetValue(i).As(Map).Get("cant") <> Null And clv_prods_ll.GetValue(i).As(Map).Get("cant") > 0 Then
|
|
p_prods.Color=0xFFE2EEFF
|
|
et_pCant.TextColor=Colors.Red
|
|
et_pCantc.TextColor=Colors.Red
|
|
If Subs.pedidoGuardado Then
|
|
' Log("YA SE GUARDO")
|
|
et_pCant.Enabled = False
|
|
' b_prodMas.Enabled = False
|
|
b_prodMenos.Enabled = False
|
|
End If
|
|
End If
|
|
Private precio As String=NumberFormat2(clv_prods_ll.GetValue(i).As(Map).Get("precio").As(Double),1,2,2,False)
|
|
' Log(clv_prods_ll.GetValue(i).As(Map))
|
|
c = Starter.skmt.ExecQuery2("SELECT PE_BCAJAS FROM PEDIDO WHERE PE_PROID = ? AND PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA)",Array As String(clv_prods_ll.GetValue(i).As(Map).Get("id")))
|
|
' Log(clv_prods_ll.GetValue(i).As(Map).Get("id"))
|
|
If c.RowCount = 0 Then
|
|
p_botMasMen.Visible = True
|
|
p_botMasMenc.Visible = True
|
|
Else If c.RowCount > 0 Then
|
|
c.Position = 0
|
|
If c.GetString("PE_BCAJAS") = "0" Then
|
|
If clv_prods_ll.GetValue(i).As(Map).Get("cant") <> Null Then et_pCant.Text = clv_prods_ll.GetValue(i).As(Map).Get("cant")
|
|
p_botMasMen.Visible = True
|
|
p_botMasMenc.Visible = False
|
|
Else If c.GetString("PE_BCAJAS") = "1" Then
|
|
If clv_prods_ll.GetValue(i).As(Map).Get("cant") <> Null Then et_pCantc.Text = clv_prods_ll.GetValue(i).As(Map).Get("cant")
|
|
p_botMasMen.Visible = False
|
|
p_botMasMenc.Visible = True
|
|
End If
|
|
End If
|
|
' If clv_prods_ll.GetValue(i).As(Map).Get("b_caja").As(String) = "0" Then
|
|
' If clv_prods_ll.GetValue(i).As(Map).Get("cant") <> Null Then et_pCant.Text = clv_prods_ll.GetValue(i).As(Map).Get("cant")
|
|
' p_botMasMen.Visible = True
|
|
' p_botMasMenc.Visible = False
|
|
' Else If clv_prods_ll.GetValue(i).As(Map).Get("b_caja").As(String) = "1" Then
|
|
' If clv_prods_ll.GetValue(i).As(Map).Get("cant") <> Null Then et_pCantc.Text = clv_prods_ll.GetValue(i).As(Map).Get("cant")
|
|
' p_botMasMen.Visible = False
|
|
' p_botMasMenc.Visible = True
|
|
' Log("visible verdadero")
|
|
' Else IF clv_prods_ll.GetValue(i).As(Map).Get("b_caja").As(String) = "null" Then
|
|
' p_botMasMen.Visible = True
|
|
' p_botMasMenc.Visible = True
|
|
' Log("visible verdadero")
|
|
' End If
|
|
If clv_prods_ll.GetValue(i).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(i).As(Map).Get("conversion").As(Int) = 1 Then
|
|
Private maxcajas As Int = 0
|
|
' Log("cajas a 0")
|
|
Else
|
|
Private maxcajas As Int = clv_prods_ll.GetValue(i).As(Map).Get("almacen")/clv_prods_ll.GetValue(i).As(Map).Get("conversion")
|
|
' Log("cajas no a 0")
|
|
End If
|
|
' Private maxcajas As Int = clv_prods_ll.GetValue(i).As(Map).Get("almacen")/clv_prods_ll.GetValue(i).As(Map).Get("conversion")
|
|
l_prodX.Text = cs.Color(Colors.red).append(clv_prods_ll.GetValue(i).As(Map).Get("prod")).pop.append(CRLF).Append("Existencias: " & clv_prods_ll.GetValue(i).As(Map).Get("almacen")).Color(0xFF017F01).Append($" $${precio}${CRLF}Max. Cajas: ${maxcajas}"$).Popall
|
|
'aqui si lo comentamos aparece la parte de cajas
|
|
'' por aqui vamos a corregir
|
|
''Or clv_prods_ll.GetValue(i).As(Map).Get("almacen") < clv_prods_ll.GetValue(i).As(Map).Get("conversion")
|
|
If clv_prods_ll.GetValue(i).As(Map).Get("conversion") = "1" Or clv_prods_ll.GetValue(i).As(Map).Get("precio_caja") = "0" Then
|
|
p_botMasMenc.Visible = False
|
|
End If
|
|
If clv_prods_ll.GetValue(i).As(Map).Get("almacen") < clv_prods_ll.GetValue(i).As(Map).Get("conversion") Then
|
|
Log(clv_prods_ll.GetValue(i).As(Map).Get("cant"))
|
|
If clv_prods_ll.GetValue(i).As(Map).Get("cant").As(Int) = 0 Then
|
|
Log("Aqui debemos ponerlo invisible")
|
|
p_botMasMenc.Visible = False
|
|
End If
|
|
' p_botMasMenc.Visible = False
|
|
End If
|
|
'fin aparecer parte de cajas
|
|
End If
|
|
' Log($"${i}, ${FirstIndex}, ${LastIndex}, ${Pnl.NumberOfViews}. ${clv_prods_ll.Size}"$)
|
|
Else 'Not visible
|
|
' If Pnl.NumberOfViews > 0 Then
|
|
' Pnl.RemoveAllViews 'Remove none visable item/layouts from the list/main layout
|
|
' End If
|
|
End If
|
|
PCLV.B4XSeekBar1.Value = clv_prods_ll.Size - FirstIndex
|
|
' Log($"Bar value: ${PCLV.B4XSeekBar1.Value}"$)
|
|
Next
|
|
End Sub
|
|
|
|
Sub Busca_TextChanged (Old As String, New As String)
|
|
' Private inicioContador As String = DateTime.Now
|
|
If Not(clv_prods_ll.AsView.Visible) Then clv_prods_ll.AsView.Visible = True
|
|
If (New.Length = 1 Or New.Length = 2) And Not(forzarBusqueda) Then Return
|
|
forzarBusqueda = False
|
|
clv_prods_ll.Clear
|
|
listaProds.Initialize
|
|
listaHints.Initialize
|
|
Sleep(0)
|
|
' Dim p As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD from ${Starter.tabla} where CAT_GP_NOMBRE like '%${New}%' and CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_CLASIF <> 'PROMOS' order by CAT_GP_NOMBRE"$)
|
|
Dim p As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD, CAT_DP_CONVERSION1, CAT_DP_PRECIO4, PE_BCAJAS from ${Starter.tabla} LEFT JOIN PEDIDO ON CAT_GP_ID = PE_PROID where CAT_GP_NOMBRE like '%${New}%' AND CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN > 0 And CAT_GP_CLASIF <> 'PROMOS' union all select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD, CAT_DP_CONVERSION1, CAT_DP_PRECIO4 , PE_BCAJAS from ${Starter.tabla} 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_id in (select pe_proid from pedido where pe_cliente in (select cuenta from cuentaa)) order by 2"$)
|
|
Log("Llamamos LlenaProdsLL")
|
|
LlenaProdsLL(p)
|
|
' Do While p.NextRow
|
|
' Dim tempMap As Map = CreateMap("prod":p.GetString("CAT_GP_NOMBRE"), "precio":p.GetString("CAT_GP_PRECIO"), "almacen":p.GetString("CAT_GP_ALMACEN"), "id":p.GetString("CAT_GP_ID"))
|
|
' listaProds.Add(tempMap)
|
|
' listaHints.Add(p.GetString("CAT_GP_NOMBRE"))
|
|
' Dim Pnl As B4XView = xui.CreatePanel("")
|
|
' Pnl.SetLayoutAnimated(0, 0, 0, clv_prods_ll.AsView.Width, 50dip) 'Panel height + 4 for drop shadow
|
|
' clv_prods_ll.Add(Pnl, tempMap)
|
|
' Loop
|
|
' LogColor(clv_prods_ll.Size, Colors.red)
|
|
'' Log(listaProds)
|
|
' p.Close
|
|
' PCLV.B4XSeekBar1.MaxValue = clv_prods_ll.Size
|
|
' PCLV.B4XSeekBar1.MinValue = 0
|
|
' PCLV.B4XSeekBar1.Interval = clv_prods_ll.Size/10
|
|
' PCLV.B4XSeekBar1.Value = clv_prods_ll.Size
|
|
' PCLV.B4XSeekBar1.Update
|
|
' Log($"Min:0, max:${clv_prods_ll.Size}, Interval:${clv_prods_ll.Size/10}"$)
|
|
' LogColor("TIEMPO DE PROCESO DEL TEXTCHANGED: " & ((DateTime.Now-inicioContador)/1000), Colors.Red)
|
|
End Sub
|
|
|
|
Sub LlenaProdsLL(p As ResultSet)
|
|
Log("Iniciamos LlenaProdsLL")
|
|
listaProds.Initialize
|
|
If Subs.hayPedido Then 'Si hay pedido obtenemos las cantidades de los productos para agregarlos al CLV.
|
|
Log("Hay pedido")
|
|
Dim cantsMap As Map
|
|
cantsMap.Initialize
|
|
Dim pe As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select PE_PROID, PE_CANT, PE_CANTC, PE_BCAJAS from PEDIDO where PE_CLIENTE = '${clienteId}' and PE_CEDIS = '${Subs.traeAlmacen}' and PE_FOLIO = '${B4XPages.MainPage.tipo_venta}'"$)
|
|
LogColor("Ponemos productos de pedido anterior: "&pe.RowCount, Colors.red)
|
|
Do While pe.NextRow
|
|
Private cant As Int = 0
|
|
If pe.GetString("PE_BCAJAS") = 0 Then
|
|
cantsMap.put(pe.GetString("PE_PROID"), pe.GetString("PE_CANT"))
|
|
Else If pe.GetString("PE_BCAJAS") = 1 Then
|
|
cantsMap.put(pe.GetString("PE_PROID"), pe.GetString("PE_CANTC"))
|
|
End If
|
|
Log(clienteId &"|||||"&pe.GetString("PE_PROID")&"|||||"& pe.GetString("PE_CANT"))
|
|
Loop
|
|
pe.Close
|
|
End If
|
|
' Log(p.IsInitialized)
|
|
If p.IsInitialized Then
|
|
Log("YA HAY RESULSET")
|
|
Else
|
|
Log("NO HAY RESULSET")
|
|
LogColor(Starter.tabla,Colors.blue)
|
|
' Dim p As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD from ${Starter.tabla} where CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN > 0 And CAT_GP_CLASIF <> 'PROMOS' order by CAT_GP_NOMBRE"$)
|
|
Dim p As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select distinct CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD, CAT_DP_CONVERSION1, CAT_DP_PRECIO4, PE_BCAJAS from ${Starter.tabla} LEFT JOIN PEDIDO ON CAT_GP_ID = PE_PROID where CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN > 0 And CAT_GP_CLASIF <> 'PROMOS' union all select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD, CAT_DP_CONVERSION1, CAT_DP_PRECIO4 , PE_BCAJAS from ${Starter.tabla} 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_id in (select pe_proid from pedido where pe_cliente in (select cuenta from cuentaa)) order by 2"$)
|
|
End If
|
|
Do While p.NextRow
|
|
Private cant As Int = 0
|
|
If Subs.hayPedido And cantsMap.ContainsKey(p.GetString("CAT_GP_ID")) Then
|
|
clv_prods_ll.Clear
|
|
Log(p.GetString("CAT_GP_ID"))
|
|
cant = cantsMap.Get(p.GetString("CAT_GP_ID"))
|
|
End If
|
|
Dim tempMap As Map = CreateMap("prod":p.GetString("CAT_GP_NOMBRE"), "precio":p.GetString("CAT_GP_PRECIO"), "almacen":p.GetString("CAT_GP_ALMACEN"), "id":p.GetString("CAT_GP_ID"), "cant":cant, "conversion":p.GetString("CAT_DP_CONVERSION1"), "precio_caja":p.GetString("CAT_DP_PRECIO4"), "b_caja":p.GetString("PE_BCAJAS"))
|
|
' Log(tempMap)
|
|
listaProds.Add(tempMap)
|
|
Loop
|
|
p.Close
|
|
' Log(listaProds)
|
|
PCLV.Commit
|
|
clv_prods_ll.Clear
|
|
Private listaProdsConCant, listaProdsConCantIndex As List
|
|
listaProdsConCant.Initialize
|
|
listaProdsConCantIndex.Initialize
|
|
listaHints.Initialize
|
|
For q=0 To listaProds.Size-1' Sacamos los productos con cantidad previa.
|
|
If listaProds.Get(q).As(Map).Get("cant").As(Int) <> 0 Then
|
|
' Log(listaProds.Get(q).As(Map).Get("cant"))
|
|
listaProdsConCant.Add(listaProds.Get(q))
|
|
listaProdsConCantIndex.Add(q)
|
|
End If
|
|
Next
|
|
' Log(listaProdsConCantIndex)
|
|
Private cont As Int = 0
|
|
For pr0=0 To listaProdsConCant.Size - 1 'Agregamos los productos con cantidad previa.
|
|
Private Pnl As B4XView = xui.CreatePanel("")
|
|
' Pnl.SetLayoutAnimated(0, 0, 0, clv_prods_ll.AsView.Width, 300dip)
|
|
Pnl.SetLayoutAnimated(0, 0, 0, clv_prods_ll.AsView.Width, 135dip)
|
|
clv_prods_ll.Add(Pnl, listaProdsConCant.Get(pr0))
|
|
listaHints.Add(listaProdsConCant.get(pr0).As(Map).Get("prod"))
|
|
cont = cont + 1
|
|
Next
|
|
' LogColor(clv_prods_ll.Size, Colors.red)
|
|
' Log(listaProds.Size)
|
|
For pr=0 To listaProds.Size-1
|
|
If listaProdsConCantIndex.IndexOf(pr) = -1 Then
|
|
Private Pnl As B4XView = xui.CreatePanel("")
|
|
Pnl.SetLayoutAnimated(0, 0, 0, clv_prods_ll.AsView.Width, 135dip)
|
|
clv_prods_ll.Add(Pnl, listaProds.Get(pr))
|
|
listaHints.Add(listaProds.get(pr).As(Map).Get("prod"))
|
|
cont = cont + 1
|
|
End If
|
|
Next
|
|
' LogColor(clv_prods_ll.Size, Colors.red)
|
|
' PCLV.Commit
|
|
' Log("CONT=" & cont)
|
|
' Log("CLV_PRODSLL="&clv_prods_ll.Size)
|
|
PCLV.B4XSeekBar1.MaxValue = clv_prods_ll.Size
|
|
PCLV.B4XSeekBar1.MinValue = 0
|
|
PCLV.B4XSeekBar1.Interval = clv_prods_ll.Size/20
|
|
PCLV.B4XSeekBar1.Value = clv_prods_ll.Size
|
|
PCLV.B4XSeekBar1.Update
|
|
' Log($"Min:0, max:${clv_prods_ll.Size}, Interval:${clv_prods_ll.Size/20}"$)
|
|
reiniciarlistaProds = False
|
|
End Sub
|
|
|
|
'Return the hint that will be displayed when the user fast scrolls the list. It can be a string or CSBuilder.
|
|
Sub PCLV_HintRequested(Index As Int) As Object
|
|
Dim word As String = listaHints.get(Index)
|
|
Return word
|
|
End Sub
|
|
|
|
Sub b_prodMenosc_Click
|
|
totalcajasmaspiezas = 0
|
|
etCantHasFocus = False
|
|
Root.RequestFocus
|
|
' LogColor("b_prodMenos_Click", Colors.Magenta)
|
|
Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
|
|
Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index)
|
|
Dim pnl As B4XView = pnl0.GetView(0)
|
|
Dim laCant As B4XView = pnl.GetView(2).GetView(2)
|
|
Dim laCant2 As B4XView = pnl.GetView(3).GetView(2)
|
|
Dim lProdX As B4XView = pnl.GetView(1)
|
|
Dim panelcajas As B4XView = pnl.GetView(3)
|
|
Dim panelpiezas As B4XView = pnl.GetView(2)
|
|
' Log($"precio|stock:${laCant.tag}"$)
|
|
If laCant2.Text = "" Then laCant2.Text = 0
|
|
' Log("lacant.text="&laCant.text)
|
|
laCant2.Text = $"${NumberFormat2(laCant2.Text-1,0,0,0,False)}"$
|
|
If laCant2.Text < 0 Then laCant2.Text = 0
|
|
Private tmpMap As Map = clv_prods_ll.GetValue(index).As(Map)
|
|
Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
|
|
Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
|
|
Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant2.Text, "almacen":Subs.traeAlmacen)
|
|
Private nombreX As String = Subs.traeProdNombre(id)
|
|
Private conversion As String = clv_prods_ll.GetValue(index).As(Map).Get("conversion")
|
|
Private preciocaja As String = clv_prods_ll.GetValue(index).As(Map).Get("precio_caja")
|
|
Log(tmpMap)
|
|
' prodsMap.Put(id, tmpMap)
|
|
If laCant2.Text = 0 Then prodsMap.Remove(id)
|
|
If laCant2.Text = 0 Then
|
|
panelpiezas.Visible = True
|
|
Else If laCant2.Text > 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion") < clv_prods_ll.GetValue(index).As(Map).Get("almacen") Then
|
|
panelpiezas.Visible = False
|
|
End If
|
|
' If laCant.IsInitialized Then
|
|
' totalcajasmaspiezas = laCant.Text + laCant2.Text
|
|
' Else
|
|
' totalcajasmaspiezas = laCant2.Text
|
|
' End If
|
|
LogColor("prodsMap="&prodsMap, Colors.blue)
|
|
' (Subs.traeAlmacen, p1.Get("precio"), p1.Get("cant"), pn, p, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta)
|
|
Log($"${Subs.traeAlmacen}, ${precio}, ${laCant2.text}, ${Subs.traeProdNombre(id)}, ${id}, ${clienteId}"$)
|
|
' Subs.actualizaProducto(Subs.traeAlmacen, preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1)
|
|
Subs.actualizaProducto2(Subs.traeAlmacen, preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1)
|
|
cuentaProds
|
|
LogColor("prodsMap="&prodsMap, Colors.blue)
|
|
Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
|
|
If 1 = 1 Then
|
|
Private cs As CSBuilder
|
|
cs.Initialize
|
|
Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$)
|
|
Private invActualizado As String = "0"
|
|
If o.RowCount > 0 Then
|
|
o.Position = 0
|
|
invActualizado = o.GetString("CAT_GP_ALMACEN")
|
|
End If
|
|
If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then
|
|
Private maxcajas2 As Int = 0
|
|
Log("cajas a 0")
|
|
Else
|
|
Private maxcajas2 As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion")
|
|
Log("cajas no a 0")
|
|
End If
|
|
If 2 = 2 Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas2}"$).Popall
|
|
' Log(lProdX.Text)
|
|
End If
|
|
If Subs.totalPedido < 1 Then laCant2.Text = "0"
|
|
invTotal = totalcajasmaspiezas + Subs.traeinventario(id)
|
|
' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red)
|
|
End Sub
|
|
|
|
Sub b_prodMasc_Click
|
|
etCantHasFocus = False
|
|
Root.RequestFocus
|
|
' LogColor("b_prodMas_Click", Colors.Magenta)
|
|
Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
|
|
Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index)
|
|
Dim pnl As B4XView = pnl0.GetView(0)
|
|
Dim laCant As B4XView = pnl.GetView(2).GetView(2)
|
|
Dim laCant2 As B4XView = pnl.GetView(3).GetView(2)
|
|
Dim lProdX As B4XView = pnl.GetView(1)
|
|
Dim panelcajas As B4XView = pnl.GetView(3)
|
|
Dim panelpiezas As B4XView = pnl.GetView(2)
|
|
' Private tmpMap As Map = clv_prods_ll.GetValue(index).As(Map)
|
|
Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
|
|
Private inv As String=clv_prods_ll.GetValue(index).As(Map).Get("almacen")
|
|
Private existencias As String = clv_prods_ll.GetValue(index).As(Map).Get("almacen")
|
|
Private conversion As String = clv_prods_ll.GetValue(index).As(Map).Get("conversion")
|
|
Private preciocaja As String = clv_prods_ll.GetValue(index).As(Map).Get("precio_caja")
|
|
Log(conversion)
|
|
Log($"Existencias: ${existencias}"$)
|
|
If laCant2.Text = "" Then laCant2.Text = 0
|
|
Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
|
|
' If laCant.Text + 1 <= inv Then
|
|
'' Log(NumberFormat2(laCant.Text+1,0,0,0,False))
|
|
' laCant.Text = $"${NumberFormat2(laCant.Text+1,0,0,0,False)}"$
|
|
'' Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
|
|
' Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
|
|
'' Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant.Text, "almacen":Subs.traeAlmacen)
|
|
'' Log(tmpMap)
|
|
'' prodsMap.Put(id, tmpMap)
|
|
'' LogColor(prodsMap, Colors.blue)
|
|
' End If
|
|
' Log("Cantidad + exis " & (laCant.Text + existencias))
|
|
' Log( (laCant.Text + 1 <= (laCant.Text + existencias)))
|
|
' Log("inventario "&Subs.traeinventario(id))
|
|
' Log((Subs.totalPedido - precio > 1))
|
|
' Log((Subs.totalPedido))
|
|
' Log(precio)
|
|
Log(Subs.traeinventario(id))
|
|
Log((laCant2.Text * conversion) + conversion)
|
|
Log((laCant2.Text *conversion)+ Subs.traeinventario(id))
|
|
If Subs.traeinventario(id) > 0 And ((laCant2.Text * conversion) + conversion <= ((laCant2.Text *conversion)+ Subs.traeinventario(id))) Then 'And (Subs.totalPedido - precio > 1)
|
|
' Log(clv_prods_ll.GetValue(index).As(Map))
|
|
clv_prods_ll.GetValue(index).As(Map).Put("almacen", (inv - conversion))
|
|
inv = inv - conversion
|
|
' laCant.Text = $"$1.0{laCant.Text+1}"$
|
|
laCant2.Text = NumberFormat2((laCant2.Text + 1), 1, 0, 0, False)
|
|
' Log(clv_prods_ll.GetValue(index).As(Map))
|
|
Log("cuando entro aqui?")
|
|
End If
|
|
Private nombreX As String = Subs.traeProdNombre(id)
|
|
' Subs.actualizaProducto(Subs.traeAlmacen, laCant.text, id, clienteId)
|
|
Log((laCant2.Text * conversion))
|
|
If laCant2.Text > 0 Then
|
|
panelpiezas.Visible = False
|
|
Else If laCant2.Text = 0 Then
|
|
panelpiezas.Visible = True
|
|
End If
|
|
' LogColor(laCant.Text,Colors.Red)
|
|
' If laCant.IsInitialized Then
|
|
' totalcajasmaspiezas = laCant.Text + laCant2.Text
|
|
' Else
|
|
' totalcajasmaspiezas = laCant2.Text
|
|
' End If
|
|
' Subs.actualizaProducto(Subs.traeAlmacen,preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1)
|
|
Subs.actualizaProducto2(Subs.traeAlmacen,preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1)
|
|
cuentaProds
|
|
' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
|
|
If 1 = 1 Then
|
|
Private cs As CSBuilder
|
|
cs.Initialize
|
|
Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$)
|
|
Private invActualizado As String = "0"
|
|
If o.RowCount > 0 Then
|
|
o.Position = 0
|
|
invActualizado = o.GetString("CAT_GP_ALMACEN")
|
|
End If
|
|
If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then
|
|
Private maxcajas2 As Int = 0
|
|
Log("cajas a 0")
|
|
Else
|
|
Private maxcajas2 As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion")
|
|
Log("cajas no a 0")
|
|
End If
|
|
If 2 = 2 Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas2}"$).Popall
|
|
' Log(lProdX.Text)
|
|
End If
|
|
invTotal = totalcajasmaspiezas + Subs.traeinventario(id)
|
|
' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red)
|
|
|
|
End Sub
|
|
|
|
Private Sub et_pCantc_FocusChanged (HasFocus As Boolean)
|
|
LogColor($"focus changed=${HasFocus}"$, Colors.Magenta)
|
|
If et_pCantc.Text = "" Then et_pCantc.Text = "0"
|
|
Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
|
|
Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index)
|
|
Dim pnl As B4XView = pnl0.GetView(0)
|
|
Dim laCant As B4XView = pnl.GetView(2).GetView(2)
|
|
Dim laCant2 As B4XView = pnl.GetView(3).GetView(2)
|
|
Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
|
|
If laCant2.Text = "" Then laCant2.Text = "0"
|
|
etCantHasFocus = HasFocus
|
|
' LogColor(laCant.Text,Colors.Red)
|
|
' If laCant.IsInitialized Then
|
|
' totalcajasmaspiezas = laCant.Text + laCant2.Text
|
|
' Else
|
|
' totalcajasmaspiezas = laCant2.Text
|
|
' End If
|
|
invTotal = totalcajasmaspiezas + Subs.traeinventario(id)
|
|
' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red)
|
|
cuentaProds
|
|
End Sub
|
|
|
|
Private Sub et_pCantc_TextChanged (Old As String, New As String)
|
|
' Log(etCantHasFocus)
|
|
' Log("InvTotal: " & invTotal)
|
|
If etCantHasFocus = True Then
|
|
' Sleep(500)
|
|
' LogColor($"txt changed: ${Old}|${New}, hasfocus=${etCantHasFocus}"$,Colors.Magenta)
|
|
Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
|
|
Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index)
|
|
Dim pnl As B4XView = pnl0.GetView(0)
|
|
Dim laCant As B4XView = pnl.GetView(2).GetView(2)
|
|
Dim laCant2 As B4XView = pnl.GetView(3).GetView(2)
|
|
Dim lProdX As B4XView = pnl.GetView(1)
|
|
Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
|
|
Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
|
|
Private inv As String=clv_prods_ll.GetValue(index).As(Map).Get("almacen")
|
|
Private inv As String=Subs.traeinventario(id)
|
|
Private nombreX As String = Subs.traeProdNombre(id)
|
|
Dim panelcajas As B4XView = pnl.GetView(3)
|
|
Dim panelpiezas As B4XView = pnl.GetView(2)
|
|
Private conversion As String = clv_prods_ll.GetValue(index).As(Map).Get("conversion")
|
|
Private preciocaja As String = clv_prods_ll.GetValue(index).As(Map).Get("precio_caja")
|
|
invTotal = Subs.traeinventario(id)
|
|
Log("inventario total "& invTotal)
|
|
If(New = "" Or New = Null Or New = "-") Then New = 0
|
|
' If New < 0 Then New = 0
|
|
Log(($"new*conversion ${New * conversion} > ${invTotal} = ${((New * conversion) > invTotal)}"$))
|
|
If((New * conversion) > invTotal) Then
|
|
' Dim maximocajas As Int = invTotal / conversion
|
|
Sender.As(EditText).text = 0
|
|
New = 0
|
|
' LogColor("cajas maximas "& maximocajas, Colors.Red)
|
|
pnl.GetView(2).Visible = True
|
|
Log("ponemos en 0")
|
|
End If
|
|
' Log($"inventario=${inv}"$)
|
|
Log("inventario total despues de max "& invTotal)
|
|
If New = "" Then New = 0
|
|
If laCant2.Text = "" Then laCant2.Text = 0
|
|
' LogColor("la cant2 " &laCant2.Text,Colors.Red)
|
|
If New > 0 Then
|
|
Log("lo ocultamos")
|
|
panelpiezas.Visible = False
|
|
Else If New = 0 Then
|
|
panelpiezas.Visible = True
|
|
End If
|
|
' If laCant.IsInitialized Then
|
|
' totalcajasmaspiezas = laCant.Text + laCant2.Text
|
|
' Else
|
|
' totalcajasmaspiezas = laCant2.Text
|
|
' End If
|
|
Log("InvTotal: " & invTotal)
|
|
If Not(Old = "0" And New = "") And laCant2.Text <> Null And laCant2.Text <> "" And etCantHasFocus Then
|
|
If invTotal - (laCant2.Text * conversion) >= 0 Then
|
|
LogColor("validacion inventariio " & (invTotal - (laCant2.Text * conversion)), Colors.Blue)
|
|
Log("actualizamos producto")
|
|
Subs.actualizaProducto2(Subs.traeAlmacen, preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1)
|
|
cuentaProds
|
|
Else
|
|
Private totalcajaspermi As Int = invTotal / conversion
|
|
laCant2.Text = totalcajaspermi
|
|
Log("cajas permitidas total por guerra "& totalcajaspermi)
|
|
End If
|
|
End If
|
|
LogColor("la cant2 " & laCant2.Text,Colors.Green)
|
|
' If New <> "" And New.SubString2(0,0) = "0" Then
|
|
' New.SubString(1)
|
|
' End If
|
|
' If New <> "" And New.SubString(1) <> "" Then
|
|
' Log(New.SubString(1))
|
|
' New = New.SubString(1)
|
|
' laCant.Text = New.SubString(1)
|
|
' Log(laCant.Text)
|
|
' End If
|
|
If 1 = 1 Then
|
|
Private cs As CSBuilder
|
|
cs.Initialize
|
|
Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$)
|
|
Private invActualizado As String = "0"
|
|
' If o.RowCount > 0 Then
|
|
o.Position = 0
|
|
invActualizado = Subs.traeinventario(id)
|
|
Log(Subs.traeinventario(id))
|
|
' End If
|
|
If New = "" Then New = 0
|
|
If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then
|
|
Private maxcajas2 As Int = 0
|
|
Log("cajas a 0")
|
|
Else
|
|
Private maxcajas2 As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion")
|
|
Log("cajas no a 0")
|
|
End If
|
|
lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & (Subs.traeinventario(id))).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas2}"$).Popall
|
|
End If
|
|
End If
|
|
End Sub |