- VERSION 4.08.14.V-P

- Se agregó codigo en "Productos" para que si se cierra la venta del cliente, y luego se regresa a ponerle mas producto, el nuevo producto entre en un segundo "ticket", o un tercer o cuarto ticket, se guarda a info en la columna PE_TICEK y se manda a web.
This commit is contained in:
Jose Alberto Guerra Ugalde
2024-08-16 15:01:21 -06:00
parent e20779ed71
commit 396708a0e9
11 changed files with 149 additions and 57 deletions

View File

@@ -177,6 +177,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS NOVENTA (NV_CLIENTE TEXT, NV_FECHA TEXT, NV_USER TEXT, NV_MOTIVO TEXT, NV_COMM TEXT, NV_LAT TEXT, NV_LON TEXT)")
Subs.agregaColumna("PEDIDO", "PE_ENVIO_OK", "INT")
Subs.agregaColumna("NOVENTA", "NV_ENVIO_OK", "INT")
Subs.agregaColumna("PEDIDO", "PE_TICKET", "INT")
c=skmt.ExecQuery("select COUNT(*) AS CUANTOS from HIST_STAY_OUT ")
C.Position = 0
If c.GetString("CUANTOS") = 0 Then

View File

@@ -158,6 +158,11 @@ Sub Class_Globals
Dim MAC_IMPRESORA As String
Dim errorImpresora As Int = 0
Dim btAdmin As BluetoothAdmin
Private b_pedidoExistente As Button
Private p_pedidoExistente As Panel
Private lv_pedidoExistente As ListView
Private b_cerrar As Button
Private l_pedidoExistente As Label
End Sub
'You can add more parameters here.
@@ -216,7 +221,6 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Wait For B4XPage_PermissionResult (Permission As String, resultC As Boolean)
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
Wait For B4XPage_PermissionResult (Permission As String, resultC As Boolean)
' h = B4XPages.MainPage.skmt.ExecQuery("SELECT CUENTA from CUENTAA")
' h.Position = 0
' Log(h.GetString("CUENTA"))
@@ -230,15 +234,21 @@ Private Sub B4XPage_Created (Root1 As B4XView)
' End If
' h.Close
' j.Close
p_pedidoExistente.Visible = False
btAdmin.Initialize("BlueTeeth")
p_pedidoExistente.Width = Root.Width * 0.9
lv_pedidoExistente.Width = p_pedidoExistente.Width * 0.95
lv_pedidoExistente.Left = (p_pedidoExistente.Width / 2) - (lv_pedidoExistente.Width / 2)
b_cerrar.Left = (p_pedidoExistente.Width / 2) - (b_cerrar.Width / 2)
Subs.centraPanel(p_pedidoExistente, Root.Width)
Subs.centraEtiqueta(l_pedidoExistente, Root.Width)
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
reqManager.Initialize(Me, Starter.DBReqServer)
b_pedidoExistente.Visible = False
LA_GPS.TextColor = Colors.Red
LA_GPS.Text = "SIN UBICACION GPS"
cercavalor = 0
@@ -252,7 +262,7 @@ Sub B4XPage_Appear
Subs.centraPanel(p_abono, Root.Width)
skmt.Initialize(ruta,"kmt.db", True)
c=B4XPages.MainPage.skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa) UNION ALL select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO from kmt_info2 where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
s=B4XPages.MainPage.skmt.ExecQuery("Select SUM(PE_COSTO_TOT) As TOTAL_CLIE, SUM(PE_CANT) As CANT_CLIE, PC_FACTURA FROM PEDIDO_CLIENTE INNER JOIN PEDIDO ON PEDIDO_CLIENTE.PC_CLIENTE = PEDIDO.PE_CLIENTE WHERE (PE_CLIENTE IN (Select cuenta from cuentaa))")
s=B4XPages.MainPage.skmt.ExecQuery("Select ifnull(SUM(PE_COSTO_TOT), 0) As TOTAL_CLIE, SUM(PE_CANT) As CANT_CLIE, PC_FACTURA FROM PEDIDO_CLIENTE INNER JOIN PEDIDO ON PEDIDO_CLIENTE.PC_CLIENTE = PEDIDO.PE_CLIENTE WHERE (PE_CLIENTE IN (Select cuenta from cuentaa))")
b = B4XPages.MainPage.skmt.ExecQuery("select COUNT(*) AS CLIENTE FROM ABONOSP WHERE CLIENTE IN (Select CUENTA from cuentaa)")
b.Position = 0
Dim cabonos As String = b.GetString("CLIENTE")
@@ -261,7 +271,6 @@ Sub B4XPage_Appear
Else
b_cxc.Visible = True
End If
s.Position=0
If c.RowCount > 0 Then
c.Position=0
@@ -275,7 +284,7 @@ Sub B4XPage_Appear
l_atiende.Text = c.GetString("CAT_CL_ATIENDE1")
l_atiende2.Text = c.GetString("CAT_CL_ATIENTE2")
TELEFONO = c.GetString("CAT_CL_TELEFONO")
l_total.Text = s.GetString("TOTAL_CLIE")
l_total.Text = "$" & NumberFormat2(s.GetString("TOTAL_CLIE"), 1, 2, 2, True)
total_cliente = s.GetString("TOTAL_CLIE")
Private factura As String = 0
If s.GetString("PC_FACTURA") <> Null And IsNumber(s.GetString("PC_FACTURA")) Then factura = s.GetString("PC_FACTURA")
@@ -313,7 +322,6 @@ Sub B4XPage_Appear
Else
MONTO_COMPRA = "0"
End If
la_saldotot.Text = MONTO_COMPRA
If MONTO_COMPRA <> "0" Then
META2 = 300 - MONTO_COMPRA
@@ -393,7 +401,6 @@ Sub B4XPage_Appear
l_factura.Visible = True
b_ventaabordo.Visible = True
End If
c = skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("MACIMP"))
If c.RowCount > 0 Then
c.Position = 0
@@ -402,7 +409,6 @@ Sub B4XPage_Appear
If Starter.MAC_IMPRESORA = "" Then Starter.MAC_IMPRESORA = "0"
' Log("|" & Starter.MAC_IMPRESORA & "|")
Printer1.Initialize(Me, "Printer1")
If Printer1.IsConnected = False Then
' Printer1.Connect
' Log("1")
@@ -411,8 +417,35 @@ Sub B4XPage_Appear
Printer1.Connect
Log("2")
End If
If Subs.hayPedido And Starter.utimaPagina <> "Productos" And Starter.utimaPagina <> "Cliente" Then
' Log()
Private p As ResultSet = Starter.skmt.ExecQuery($"select * from pedido where pe_cliente = '${Subs.traeCliente}'"$)
lv_pedidoExistente.Clear
Private label1 As Label = lv_pedidoExistente.TwoLinesLayout.Label
label1.TextColor = Colors.Black
label1.TextSize = 13
Private label2 As Label = lv_pedidoExistente.TwoLinesLayout.SecondLabel
label2.TextSize = 13
Private cs As CSBuilder
Do While p.NextRow
cs.Initialize
Private textColor As Float = Colors.RGB(48,3,195)
If p.GetString("PE_FOLIO") = "PREVENTA" Or p.GetString("PE_FOLIO") = "ABORDO" Then
textColor = Colors.RGB(166,0,0)
End If
lv_pedidoExistente.AddTwoLines(cs.Color(textColor).append(p.GetString("PE_PRONOMBRE")).pop, $"Cant: ${p.GetString("PE_CANT")} - $${NumberFormat2(p.GetString("PE_COSTO_TOT"),1,2,2,True)}, ${p.GetString("PE_FOLIO")}"$)
Loop
p_pedidoExistente.Visible = True
p_pedidoExistente.BringToFront
b_pedidoExistente.Visible = True
End If
End Sub
Sub B4XPage_disappear
Log($"Salimos de ${B4XPages.GetManager.GetTopPage.Title}"$)
Starter.utimaPagina = B4XPages.GetManager.GetTopPage.Title
End Sub
Sub GPS_LocationChanged (Location1 As Location)
@@ -553,13 +586,16 @@ Sub Guardar_Click
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
' Log("xxxxxxxxxxxxxxx " & c.GetString("CUANTOS"))
If c.GetString("CUANTOS") > 0 Then
If c.GetString("CUANTOS") > 0 Then ' Si hay pedido, entonces ...
Private cbFactura As Int = 0
If cb_factura.Checked Then cbFactura = 1
B4XPages.MainPage.skmt.ExecNonQuery("delete from NOVENTA where NV_CLIENTE In (select cuenta from cuentaa)")
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, PC_ENVIO_OK, PC_FACTURA) 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, 0, cbFactura))
B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
Log(">>>>> PONEMOS SIG TICKET")
B4XPages.MainPage.skmt.ExecNonQuery($"update pedido set PE_TICKET = ${Subs.traeTicketConsecutivo(Subs.traeCliente)} where PE_CLIENTE = '${Subs.traeCliente}' and PE_TICKET is Null"$)
End If
c.Close
DateTime.TimeFormat = "HHmmss"
@@ -583,12 +619,10 @@ Sub Guardar_Click
Catch
ToastMessageShow(".",True)
End Try
skmt.ExecNonQuery2("update PEDIDO_INICIO_FINAL set PIF_HORA_FINAL = ? where PIF_CLIENTE = ? and PIF_HORA_FINAL = 0", Array As Object (DateTime.Now, la_cuenta.Text))
' LogColor($"actualizamos "${la_cuenta.text}, hora_final=${DateTime.now}"$,Colors.Red)
Subs.actualizaTET(la_cuenta.text)
DateTime.TimeFormat = "HH:mm:ss"
mandaPendientes 'LO COMENTAMOS PARA PRUEBAS, ACTIVAR AL FINAL!!!
mandapiezas
B4XPages.MainPage.productos.reiniciarlistaProds = True
@@ -1139,17 +1173,17 @@ Sub mandaPendientes
End If
'PEDIDO (Pendientes)
c = skmt.ExecQuery($"SELECT PE_ENVIO_OK, 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 FROM PEDIDO where PE_ENVIO_OK <> 1"$)
c = skmt.ExecQuery($"SELECT PE_ENVIO_OK, 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_TICKET FROM PEDIDO where PE_ENVIO_OK <> 1"$)
Log($"Pedido PENDIENTE: ${c.RowCount}"$)
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_INTMEX"
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"),C.GetString("PE_RUTA"), C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC"),c.GetString("PE_FOLIO"), PCNoArts, PCMonto)
cmd.Name = "insert_pedido4_INTMEX"
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"),C.GetString("PE_RUTA"), C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC"),c.GetString("PE_FOLIO"), PCNoArts, PCMonto,c.GetString("PE_TICKET"))
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}"$)
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}, ${PCMonto}, ${c.GetString("PE_TICKET")}"$)
' sql.insert_pedido_INTMEX=INSERT INTO INTMEX.PEDIDO (PE_CODPROMO,PE_FECHA_SINC,PE_IDALMACEN,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_COSTO_SIN, PE_DESCUENTO, PE_TIPO) VALUES ((?),SYSDATE,(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),nvl((?),0),(?))
' sql.insert_pedido2_INTMEX=INSERT INTO INTMEX.PEDIDO (PE_CODPROMO,PE_FECHA_SINC,PE_IDALMACEN,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_COSTO_SIN, PE_DESCUENTO, PE_TIPO, PE_CANT_TOTAL, PE_VENTA_TOTAL) VALUES ((?),SYSDATE,(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),nvl((?),0),(?),(?),(?))
Next
@@ -1554,14 +1588,11 @@ Sub cuest_preguntaContestada(m As Map)
End Select
End Sub
Private Sub b_ventaabordo_Click
' c=B4XPages.MainPage.skmt.ExecQuery("Select * From CAT_GUNAPROD2")
c=B4XPages.MainPage.skmt.ExecQuery2("Select * From CAT_GUNAPROD2 where cat_gp_tipo <> ? " , Array As String ("PROMOS"))
If c.RowCount > 0 Then
B4XPages.MainPage.tipo_venta = "VENTA"
' If B4XPages.MainPage.productos.clv_prods_ll.Size = 0 Then
' B4XPages.MainPage.productos.LlenaProdsLL(Null)
@@ -1598,12 +1629,19 @@ Private Sub b_ventaabordo_Click
'Si hay mapa de productos es que hay venta en proceso, entonces borramos la actual para meter la nueva.
' If B4XPages.MainPage.productos.prodsMap.IsInitialized And B4XPages.MainPage.productos.prodsMap.Size > 0 Then Subs.borraPedidoClienteActual
B4XPages.ShowPage("productos")
Else If c.RowCount = 0 Then
MsgboxAsync("No puedes hacer venta porque no tienes inventario abordo","Atención")
End If
End Sub
Private Sub b_cerrar_Click
p_pedidoExistente.Visible = False
End Sub
Private Sub p_pedidoExistente_Click
End Sub
Private Sub b_pedidoExistente_Click
p_pedidoExistente.Visible = True
End Sub

View File

@@ -659,17 +659,17 @@ 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 FROM 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_TICKET FROM PEDIDO")
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_INTMEX" 'CON TOTALES INCLUIDOS
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"),C.GetString("PE_RUTA"), C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC"),c.GetString("PE_FOLIO"), PCNoArts, PCMonto)
cmd.Name = "insert_pedido4_INTMEX" 'CON TOTALES INCLUIDOS
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"),C.GetString("PE_RUTA"), C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC"),c.GetString("PE_FOLIO"), PCNoArts, PCMonto,c.GetString("PE_TICKET"))
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}"$)
' 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}, ${c.GetString("PE_TICKET")}"$)
' cmd.Name = "insert_pedido_INTMEX" ' SIN TOTALES INCLUIDOS
' 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"),C.GetString("PE_RUTA"), C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC"),c.GetString("PE_FOLIO"))
' reqManager.ExecuteCommand(cmd , "ins_pedido")
@@ -2493,6 +2493,10 @@ Sub B_OK_COMISS_Click
Btn_Ubicar.Visible=True
End Sub
Sub B4XPage_disappear
Log($"Salimos de ${B4XPages.GetManager.GetTopPage.Title}"$)
Starter.utimaPagina = B4XPages.GetManager.GetTopPage.Title
End Sub
Sub B_MARCAS_Click
' SCROLL_RESDIA.Visible = False
@@ -2574,8 +2578,6 @@ Sub B_MARCAS_Click
Next
End If
c.Close
End Sub
Sub AddTitle (Title As String)
@@ -2608,7 +2610,6 @@ Private Sub p_mandaInfo_Click
End Sub
Private Sub b_abordo_Click
Starter.skmt.ExecNonQuery("delete from CUENTAA")
Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object("0"))

View File

@@ -540,7 +540,7 @@ Sub b_prodMenos_Click
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)
Subs.actualizaProductoConTicket(Subs.traeAlmacen, precio, laCant.text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta)
cuentaProds
LogColor("prodsMap="&prodsMap, Colors.blue)
Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
@@ -606,11 +606,11 @@ Sub b_prodMas_Click
' 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)
' Subs.actualizaProductoConTicket(Subs.traeAlmacen, laCant.text, id, clienteId)
Subs.actualizaProducto(Subs.traeAlmacen, precio, laCant.text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta)
Subs.actualizaProductoConTicket(Subs.traeAlmacen, precio, laCant.text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta)
cuentaProds
' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
If 1 = 1 Then
@@ -646,8 +646,13 @@ Private Sub et_pCant_FocusChanged (HasFocus As Boolean)
cuentaProds
End Sub
Sub B4XPage_disappear
Log($"Salimos de ${B4XPages.GetManager.GetTopPage.Title}"$)
Starter.utimaPagina = B4XPages.GetManager.GetTopPage.Title
End Sub
Private Sub et_pCant_TextChanged (Old As String, New As String)
Log(etCantHasFocus)
' Log(etCantHasFocus)
' Log("InvTotal: " & invTotal)
If etCantHasFocus = True Then
LogColor($"txt changed: ${Old}|${New}, hasfocus=${etCantHasFocus}"$,Colors.Magenta)
@@ -661,9 +666,7 @@ Private Sub et_pCant_TextChanged (Old As String, New As String)
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)
If(New = "" Or New = Null Or New = "-") Then New = 0
' If New < 0 Then New = 0
If(New > invTotal) Then
@@ -675,7 +678,7 @@ Private Sub et_pCant_TextChanged (Old As String, New As String)
If laCant.Text = "" Then laCant.Text = 0
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)
Subs.actualizaProductoConTicket(Subs.traeAlmacen, precio, laCant.text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta)
cuentaProds
End If
@@ -1025,7 +1028,7 @@ Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As In
p_prods.Color=0xFFE2EEFF
et_pCant.TextColor=Colors.Red
If Subs.pedidoGuardado Then
Log("YA SE GUARDO")
' Log("YA SE GUARDO")
et_pCant.Enabled = False
' b_prodMas.Enabled = False
b_prodMenos.Enabled = False
@@ -1085,7 +1088,7 @@ Sub LlenaProdsLL(p As ResultSet)
If hayPedido Then 'Si hay pedido obtenemos las cantidades de los productos para agregarlos al CLV.
Dim cantsMap As Map
cantsMap.Initialize
Dim pe As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select PE_PROID, PE_CANT from PEDIDO where PE_CLIENTE = '${clienteId}' and PE_CEDIS = '${Subs.traeAlmacen}' and PE_FOLIO = '${B4XPages.MainPage.tipo_venta}'"$)
Dim pe As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select PE_PROID, PE_CANT from PEDIDO where PE_TICKET is null and 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

View File

@@ -85,6 +85,12 @@ Sub B4XPage_Appear
' Log($"laPromo=${laPromo}, el cliente=${elCliente}"$)
If laPromo <> "" Then muestraPromo(laPromo, elCliente)
End Sub
Sub B4XPage_disappear
Log($"Salimos de ${B4XPages.GetManager.GetTopPage.Title}"$)
Starter.utimaPagina = B4XPages.GetManager.GetTopPage.Title
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub muestraPromo(promo As String, cliente As String)

View File

@@ -54,6 +54,7 @@ Public Sub Initialize As Object
End Try
rkmt.ExecNonQuery($"create table if not exists inventarios (cat_gp_iniciativa TEXT, cat_gp_tipoprod TEXT, cat_gp_dev TEXT, cat_gp_almacen NUMERIC, cat_gp_id TEXT, cat_gp_nombre TEXT, cat_gp_imp1 TEXT, cat_gp_imp2 TEXT, cat_gp_precio TEXT, cat_gp_clasif TEXT, cat_gp_sts TEXT, cat_gp_tipo TEXT, cat_gp_subtipo TEXT, cat_gp_tipoprod2 TEXT, fecha TEXT)"$)
rkmt.ExecNonQuery($"create table if not exists paquetes (cat_dp_precio_simptos TEXT, cat_dp_precio TEXT, cat_dp_almacen TEXT, cat_dp_id TEXT, cat_dp_idprod TEXT, cat_dp_tipo TEXT, cat_dp_pzas TEXT, cat_dp_usuario TEXT, cat_dp_fecha TEXT, cat_dp_regalo TEXT, cat_dp_clasif TEXT, fecha TEXT)"$)
agregaColumna("pedidos", "pe_ticket", "INT")
DateTime.DateFormat = "MM/dd/yyyy"
fechaHoy = DateTime.Date(DateTime.Now)
revisaSkmtAttached
@@ -85,7 +86,7 @@ Sub respaldaPedido
Log("copiando pedidos ...")
rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from pedidos where substr(pe_fecha, 1, 10) = '${fechaHoy}'"$)
rkmt.ExecNonQuery($"insert into pedidos (pe_folio, pe_desc, pe_costo_sin, pe_ruta, pe_cedis, pe_costo_tot, pe_costou, pe_cant, pe_pronombre, pe_proid, pe_cliente, pe_fecha, pe_usuario, pe_envio_ok) select * from skmt1.pedido where substr(pe_fecha, 1, 10) = '${fechaHoy}'"$)
rkmt.ExecNonQuery($"insert into pedidos (pe_folio, pe_desc, pe_costo_sin, pe_ruta, pe_cedis, pe_costo_tot, pe_costou, pe_cant, pe_pronombre, pe_proid, pe_cliente, pe_fecha, pe_usuario, pe_envio_ok, pe_ticket) select * from skmt1.pedido where substr(pe_fecha, 1, 10) = '${fechaHoy}'"$)
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
rkmt.EndTransaction
' Log(((DateTime.Now - inicio)/1000) & " segs")
@@ -131,18 +132,18 @@ End Sub
'Ej. agregaColumna("TABLA", "COLUMNA", "TIPO")
Sub agregaColumna(tabla As String, columna As String, tipo As String) 'ignore
Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna en la tabla
Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT COUNT(*) AS fCol FROM pragma_table_info('${tabla}') WHERE name='${columna}'"$)
Private c As Cursor = rkmt.ExecQuery($"SELECT COUNT(*) AS fCol FROM pragma_table_info('${tabla}') WHERE name='${columna}'"$)
c.Position = 0
If c.GetString("fCol") = 0 Then 'Si no esta la columna la agregamos
B4XPages.MainPage.skmt.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
rkmt.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
Log($"Columna "${columna} ${tipo}", agregada a "${tabla}"."$)
End If
Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch
Try
B4XPages.MainPage.skmt.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
rkmt.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
Log($"Columna "${columna} ${tipo}", agregada a "${tabla}".."$)
Catch
Log(LastException)
End Try
End Try
End Sub
End Sub

View File

@@ -83,6 +83,11 @@ Sub B4XPage_Appear
c.Close
End Sub
Sub B4XPage_disappear
Log($"Salimos de ${B4XPages.GetManager.GetTopPage.Title}"$)
Starter.utimaPagina = B4XPages.GetManager.GetTopPage.Title
End Sub
Sub Regresar_Click
B4XPages.ShowPage("cliente")
End Sub

Binary file not shown.

View File

@@ -65,10 +65,10 @@ ModuleClosedNodes11=
ModuleClosedNodes12=
ModuleClosedNodes13=
ModuleClosedNodes14=11
ModuleClosedNodes15=9,10
ModuleClosedNodes15=1,10,11
ModuleClosedNodes16=
ModuleClosedNodes17=
ModuleClosedNodes18=
ModuleClosedNodes18=4
ModuleClosedNodes19=
ModuleClosedNodes2=
ModuleClosedNodes20=
@@ -82,12 +82,12 @@ ModuleClosedNodes27=
ModuleClosedNodes28=
ModuleClosedNodes29=
ModuleClosedNodes3=
ModuleClosedNodes4=
ModuleClosedNodes4=4
ModuleClosedNodes5=3
ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=B4XMainPage,Entrar_Click,396,0,C_Principal,connecta_Click,1946,0,C_Nota,Class_Globals,0,0,C_Nota,ListView1_ItemLongClick,195,0,C_Principal,JobDone,1094,1,Diseñador Visual,cliente.bal,-100,4,Main,Activity_ActionBarHomeClick,35,0,Main,Activity_Pause,51,0,Main,Globals,25,0,Main,Activity_Create,28,0
NavigationStack=C_Cliente,Class_Globals,29,0,C_Nota,B4XPage_Appear,78,0,C_Cliente,B4XPage_Appear,422,6,C_Productos,LlenaProdsLL,1084,0,C_Cliente,Guardar_Click,590,0,C_Principal,JobDone,1749,0,Subs,agregaColumna,1448,0,C_RespaldoDiario,Initialize,47,0,C_Principal,Subir_Click,665,1,C_Cliente,mandaPendientes,1176,2
SelectedBuild=0
VisibleModules=2,27,13,16,14,4,28,15,9,6
VisibleModules=2,27,13,14,4,28,15,16

View File

@@ -35,6 +35,7 @@ Sub Process_Globals
Dim marcaCel As String = ph.manufacturer
Dim tabla As String
Dim MAC_IMPRESORA As String
Dim utimaPagina As String
End Sub
Sub Service_Create

View File

@@ -779,12 +779,12 @@ Sub guardaProductoSinGestion(cedis As String, costoU As String, cant As String,
End Sub
Sub actualizaProducto(cedis As String, costoU As String, cant As Int, nombre As String, prodId As String, clienteId As String, fecha As String, usuario As String, rutaV As String, precioSin As String, tipoVenta As String)
Private c As Cursor=B4XPages.MainPage.skmt.ExecQuery($"select * from pedido where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' AND PE_FOLIO = '${B4XPages.MainPage.tipo_venta}'"$)
Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select * from pedido where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' AND PE_FOLIO = '${B4XPages.MainPage.tipo_venta}'"$)
' Log($"ROWCOUNT: ${c.RowCount}, ${cant}"$)
LogColor($"actualizaProducto, c=${clienteId}, p=${prodId}, nombre=${nombre}, cant=${cant}, cedis=${cedis}, tipo=${tipoVenta}"$, Colors.Magenta)
If c.RowCount > 0 Then
c.Position=0
c.Position = 0
Private antCant As Int = 0
If IsNumber(c.GetInt("PE_CANT")) Then antCant=c.GetInt("PE_CANT")
Private difCant As Int = cant - antCant
@@ -795,7 +795,7 @@ Sub actualizaProducto(cedis As String, costoU As String, cant As Int, nombre As
Log("BORRAMOS PROD")
B4XPages.MainPage.skmt.ExecNonQuery($"delete from pedido where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' AND PE_FOLIO = '${B4XPages.MainPage.tipo_venta}'"$)
Private pe As Cursor = B4XPages.MainPage.skmt.ExecQuery("select count(pe_cliente) as cuantosPedidos from pedido where pe_cliente In (select cuenta from cuentaa)")
pe.Position=0
pe.Position = 0
If pe.GetString("cuantosPedidos") = 0 Then B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
End If
Else
@@ -805,6 +805,33 @@ Sub actualizaProducto(cedis As String, costoU As String, cant As Int, nombre As
c.Close
End Sub
Sub actualizaProductoConTicket(cedis As String, costoU As String, cant As Int, nombre As String, prodId As String, clienteId As String, fecha As String, usuario As String, rutaV As String, precioSin As String, tipoVenta As String)
Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select * from pedido where pe_ticket is null and pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' AND PE_FOLIO = '${B4XPages.MainPage.tipo_venta}'"$)
' Log($"ROWCOUNT: ${c.RowCount}, ${cant}"$)
LogColor($"actualizaProducto, c=${clienteId}, p=${prodId}, nombre=${nombre}, cant=${cant}, cedis=${cedis}, tipo=${tipoVenta}"$, Colors.Magenta)
If c.RowCount > 0 Then
c.Position = 0
Private antCant As Int = 0
If IsNumber(c.GetInt("PE_CANT")) Then antCant=c.GetInt("PE_CANT")
Private difCant As Int = cant - antCant
B4XPages.MainPage.skmt.ExecNonQuery($"update pedido set pe_cant = ${cant}, pe_costo_tot = ${(cant*c.GetString("PE_COSTOU"))} where pe_ticket is null and pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' AND PE_FOLIO = '${B4XPages.MainPage.tipo_venta}'"$)
B4XPages.MainPage.skmt.ExecNonQuery($"update ${Starter.tabla} set cat_gp_almacen = cat_gp_almacen - (${difCant}) where cat_gp_id = '${prodId}' "$)
' Log($"CANT=${cant}"$)
If cant = 0 Then
Log("BORRAMOS PROD")
B4XPages.MainPage.skmt.ExecNonQuery($"delete from pedido where pe_ticket is null and pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' AND PE_FOLIO = '${B4XPages.MainPage.tipo_venta}'"$)
Private pe As Cursor = B4XPages.MainPage.skmt.ExecQuery("select count(pe_cliente) as cuantosPedidos from pedido where pe_ticket is null and pe_cliente In (select cuenta from cuentaa)")
pe.Position = 0
If pe.GetString("cuantosPedidos") = 0 Then B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where pe_ticket is null and PC_CLIENTE In (select cuenta from cuentaa)")
End If
Else
'INSERTAMOS
If cant <> 0 Then guardaProductoSinGestion(cedis, costoU, cant, nombre, prodId, clienteId, fecha, usuario, rutaV, precioSin, tipoVenta)
End If
c.Close
End Sub
Sub traeTotalCliente As Double
Private sumaTotal As Double
Private cursorprueba As Cursor = B4XPages.MainPage.skmt.ExecQuery("Select PE_COSTO_TOT from pedido where PE_CLIENTE <> 0 ")
@@ -1404,8 +1431,7 @@ Sub pedidoGuardado As Boolean
Private g As Cursor = B4XPages.MainPage.skmt.ExecQuery("select gestion from kmt_info where CAT_CL_CODIGO in (Select CUENTA from cuentaa)")
If g.RowCount > 0 Then
g.Position=0
If g.GetString("gestion") = "2" or g.GetString("gestion") = "3" Then guardado = True
If g.GetString("gestion") = "2" Or g.GetString("gestion") = "3" Then guardado = True
End If
' Log($"Guardado=${guardado}"$)
Return guardado
@@ -1470,4 +1496,14 @@ Sub traeinventario(id As String) As String
End If
c.Close
Return inventario
End Sub
'Trae el ticket consecutivo del cliente especificado
Sub traeTicketConsecutivo(idCliente As String) As Int
Private sigTicket As Int = 1
Private c As ResultSet = Starter.skmt.ExecQuery($"select ifnull(pe_ticket, 0) as pe_ticket from pedido where PE_CLIENTE = '${idCliente}' order by pe_ticket desc limit 1"$)
Do While c.NextRow
sigTicket = c.GetInt("pe_ticket")
Loop
Return sigTicket + 1
End Sub