diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index e4c112a..ccd2f31 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -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 diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index 2fbf0ce..7f10d46 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -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 \ No newline at end of file diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 79a2acf..2cf11ef 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -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")) diff --git a/B4A/C_Productos.bas b/B4A/C_Productos.bas index eae901a..25e6b81 100644 --- a/B4A/C_Productos.bas +++ b/B4A/C_Productos.bas @@ -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 diff --git a/B4A/C_Promos.bas b/B4A/C_Promos.bas index f323188..4a9dbf9 100644 --- a/B4A/C_Promos.bas +++ b/B4A/C_Promos.bas @@ -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) diff --git a/B4A/C_RespaldoDiario.bas b/B4A/C_RespaldoDiario.bas index 704af4e..69a516b 100644 --- a/B4A/C_RespaldoDiario.bas +++ b/B4A/C_RespaldoDiario.bas @@ -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 \ No newline at end of file +End Sub diff --git a/B4A/C_TicketsDia.bas b/B4A/C_TicketsDia.bas index a4eff6b..21cab8a 100644 --- a/B4A/C_TicketsDia.bas +++ b/B4A/C_TicketsDia.bas @@ -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 diff --git a/B4A/Files/cliente.bal b/B4A/Files/cliente.bal index 5f2cd43..3ea1f67 100644 Binary files a/B4A/Files/cliente.bal and b/B4A/Files/cliente.bal differ diff --git a/B4A/INTMEX.b4a.meta b/B4A/INTMEX.b4a.meta index 4889125..e3ae26c 100644 --- a/B4A/INTMEX.b4a.meta +++ b/B4A/INTMEX.b4a.meta @@ -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 diff --git a/B4A/Starter.bas b/B4A/Starter.bas index 45bbd46..8ad2285 100644 --- a/B4A/Starter.bas +++ b/B4A/Starter.bas @@ -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 diff --git a/B4A/Subs.bas b/B4A/Subs.bas index 31f513c..164ba93 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -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 \ No newline at end of file