diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index f64f1e6..f3838d3 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -219,6 +219,9 @@ Private Sub B4XPage_Created (Root1 As B4XView) Subs.agregaColumna("CAT_GUNAPROD2", "CAT_DP_PRECIO4", "TEXT") Subs.agregaColumna("CAT_GUNAPROD", "CAT_DP_PRECIO4", "TEXT") Subs.agregaColumna("CLIENTES_NUEVOS", "CN_SOLICITA", "TEXT") + + Subs.agregaColumna("CLIENTES_NUEVOS", "CN_COLONIA", "TEXT") + Subs.agregaColumna("CLIENTES_NUEVOS", "CN_TELEFONO", "TEXT") 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 0a859ea..d82f463 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -163,6 +163,7 @@ Sub Class_Globals Dim banderaimp As Int = 0 Dim k1,k2,k3 As String + Private b_ubicar As Button End Sub 'You can add more parameters here. @@ -1092,6 +1093,12 @@ Sub imprime_preventa ' Printer1.WriteString("Entre Calle2: " & l_entre2.Text & CRLF) Printer1.WriteString(" " & CRLF) c = skmt.ExecQuery2("SELECT * FROM PEDIDO WHERE PE_FOLIO = ?",Array As String("PREVENTA")) + + Dim siesacredi As Cursor = skmt.ExecQuery("SELECT * FROM PAGARES WHERE PA_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") + If siesacredi.RowCount > 0 Then + Printer1.WriteString("------PREVENTA A CREDITO------" & CRLF) + End If + If c.RowCount > 0 Then Printer1.WriteString("-----------PREVENTA-----------" & CRLF) @@ -1332,6 +1339,22 @@ Sub imprime_preventa ' Printer1.WriteString(" " & CRLF) End If + Dim siesacredi As Cursor = skmt.ExecQuery("SELECT * FROM PAGARES WHERE PA_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") + If siesacredi.RowCount > 0 Then + siesacredi.Position = 0 + Printer1.WriteString("Total a credito: $" & NumberFormat( siesacredi.GetString("PA_MONTO"),0,2) & CRLF) + s=skmt.ExecQuery2("select SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) AND PE_FOLIO = ?", Array As String("PREVENTA")) + s.Position =0 + ' If s.GetString("TOTAL") - s.GetString("TOTAL2") <> 0 Then + ' Printer1.WriteString("Descuento: $" & (s.GetString("TOTAL2") - s.GetString("TOTAL"))) + ' End If +' Printer1.WriteString("Total preventa: $" & NumberFormat( s.GetString("TOTAL"),0,2) & CRLF) + If s.GetString("TOTAL") > siesacredi.GetString("PA_MONTO") Then + Printer1.WriteString("Total a contado: $" & NumberFormat( (s.GetString("TOTAL")-siesacredi.GetString("PA_MONTO")),0,2) & CRLF) + End If + + s.Close + End If ' Printer1.WriteString(" " & CRLF) ' Printer1.WriteString("------------------------------" & CRLF) @@ -2628,4 +2651,8 @@ End Sub Private Sub b_cxc_LongClick ' imprime_pagare +End Sub + +Private Sub b_ubicar_Click + StartActivity(MAPA_CLIENTE) End Sub \ No newline at end of file diff --git a/B4A/C_NuevoCliente.bas b/B4A/C_NuevoCliente.bas index 584d72f..1df4531 100644 --- a/B4A/C_NuevoCliente.bas +++ b/B4A/C_NuevoCliente.bas @@ -177,56 +177,65 @@ Sub GUARDA_Click If E_NOMBRE.Text = "" Then MsgboxAsync("Por favor captura el nombre de la Tienda","Atención") ' Verifica si la dirección tiene más de 3 caracteres - Else If et_direccion.Text.Length > 3 Then + Else If et_direccion.Text.Length > 3 Then ' Verifica si la latitud es diferente de 0 If lat <> 0 Then ' Verifica si el giro del cliente está seleccionado If giros <> "SELECCIONA UNA OPCIÓN" Or cb_giro.SelectedItem <> "SELECCIONA UNA OPCIÓN" Then ' Verifica si el encargado que atiende el negocio está capturado If ET_Atiende.Text <> "" Then - DateTime.DateFormat = "MM/dd/yyyy" - DateTime.Timeformat = "HHmmss" - sDate = DateTime.Date(DateTime.Now) - sTime = DateTime.Time(DateTime.Now) - Log($" //////////// Date: ${sDate} - Time: ${sTime} ////////////////"$) - ' Aquí creamos manualmente la hora con el separador de los 2 puntos porque en algunas versiones de Android no respeta el formato "Timeformat = 'HH:mm:ss'" - Private hora As String = sTime.SubString2(0,2) - Private mins As String = sTime.SubString2(2,4) - Private segs As String = sTime.SubString(4) - sTime = hora & ":" & mins & ":" & segs - Log("////////////// sTime: "&sTime&" ////////////////") - c = Starter.skmt.ExecQuery("select CAT_CL_RUTA FROM kmt_info") - c.Position = 0 - no_ruta = c.GetString("CAT_CL_RUTA") - no_cliente = "N" & sTime & no_ruta - Log("++ ++ no_cliente = "&no_cliente) - c.Close - Starter.skmt.ExecNonQuery2("INSERT INTO kmt_info(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, gestion, CAT_CL_GIRO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,?) ", Array As Object (no_cliente,no_ruta, E_NOMBRE.Text,"null","null","null","null","null","null","null","null","null","null","null","null","null",B4XPages.MainPage.lon_gps,B4XPages.MainPage.lat_gps, cb_giro.SelectedItem)) - Starter.skmt.ExecNonQuery2("INSERT INTO HIST_STAY_STORE(HSS_CODIGO, HSS_IN , HSS_OUT , HSS_TOT) VALUES (?,0,0,0)", Array As Object (no_cliente)) - Starter.skmt.ExecNonQuery("delete from CUENTAA") - Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(no_cliente)) - c = Starter.skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN") - If c.RowCount > 0 Then - c.Position = 0 - ALMACEN = c.GetString("ID_ALMACEN") + If et_colonia.Text <> "" Then + If et_colonia.Text <> "" Then + + DateTime.DateFormat = "MM/dd/yyyy" + DateTime.Timeformat = "HHmmss" + sDate = DateTime.Date(DateTime.Now) + sTime = DateTime.Time(DateTime.Now) + Log($" //////////// Date: ${sDate} - Time: ${sTime} ////////////////"$) + ' Aquí creamos manualmente la hora con el separador de los 2 puntos porque en algunas versiones de Android no respeta el formato "Timeformat = 'HH:mm:ss'" + Private hora As String = sTime.SubString2(0,2) + Private mins As String = sTime.SubString2(2,4) + Private segs As String = sTime.SubString(4) + sTime = hora & ":" & mins & ":" & segs + Log("////////////// sTime: "&sTime&" ////////////////") + c = Starter.skmt.ExecQuery("select CAT_CL_RUTA FROM kmt_info") + c.Position = 0 + no_ruta = c.GetString("CAT_CL_RUTA") + no_cliente = "N" & sTime & no_ruta + Log("++ ++ no_cliente = "&no_cliente) + c.Close + Starter.skmt.ExecNonQuery2("INSERT INTO kmt_info(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, gestion, CAT_CL_GIRO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,?) ", Array As Object (no_cliente,no_ruta, E_NOMBRE.Text,"null","null","null","null","null","null","null","null","null","null","null","null","null",B4XPages.MainPage.lon_gps,B4XPages.MainPage.lat_gps, cb_giro.SelectedItem)) + Starter.skmt.ExecNonQuery2("INSERT INTO HIST_STAY_STORE(HSS_CODIGO, HSS_IN , HSS_OUT , HSS_TOT) VALUES (?,0,0,0)", Array As Object (no_cliente)) + Starter.skmt.ExecNonQuery("delete from CUENTAA") + Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(no_cliente)) + c = Starter.skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN") + If c.RowCount > 0 Then + c.Position = 0 + ALMACEN = c.GetString("ID_ALMACEN") + End If + c.Close + c = Starter.skmt.ExecQuery("select usuario from usuarioa") + c.Position = 0 + usuario = c.GetString("USUARIO") + c.Close + ' Starter.skmt.ExecNonQuery2("INSERT INTO HIST_FOTO_CLIENTE(CODIGO, ALMACEN, RUTA) VALUES(?,?,?)", Array As Object(no_cliente, ALMACEN, no_ruta)) + ' Starter.skmt.ExecNonQuery2("INSERT INTO NOVENTA (NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_LAT,NV_LON,NV_NOMBRE,NV_DIRECCION) VALUES(?,?,?,?,?,?,?,?) ", Array As Object (no_cliente,sDate & sTime, usuario, "NUEVO CLIENTE", lat, lon, E_NOMBRE.Text,et_direccion.Text)) + + DateTime.DateFormat = "dd/MM/yyyy" + DateTime.Timeformat = "HH:mm:ss" + sDate2 = DateTime.Date(DateTime.Now) + sTime2 = DateTime.Time(DateTime.Now) + + Starter.skmt.ExecNonQuery2("INSERT INTO CLIENTES_NUEVOS(CN_ID, CN_FECHA, CN_USER, CN_LAT, CN_LON, CN_NOMBRE, CN_DIRECCION, CN_FOTO, CN_RUTA, CN_GIRO, CN_SOLICITA,CN_COLONIA, CN_TELEFONO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As String(no_cliente, sDate2 &" "&sTime2, usuario, lat, lon, E_NOMBRE.Text, et_direccion.Text, ALMACEN, no_ruta, cb_giro.SelectedItem, ET_Atiende.Text,et_colonia.Text,et_telefono.Text)) + ' fototomada = "0" + B4XPages.ShowPage("Cliente") + CallSubDelayed(Tracker, "StartFLP") + Else + MsgboxAsync("Por favor, debe capturar la colonia el negocio.","Atención") + End If + Else + MsgboxAsync("Por favor, debe capturar el telfono.","Atención") End If - c.Close - c = Starter.skmt.ExecQuery("select usuario from usuarioa") - c.Position = 0 - usuario = c.GetString("USUARIO") - c.Close - ' Starter.skmt.ExecNonQuery2("INSERT INTO HIST_FOTO_CLIENTE(CODIGO, ALMACEN, RUTA) VALUES(?,?,?)", Array As Object(no_cliente, ALMACEN, no_ruta)) - ' Starter.skmt.ExecNonQuery2("INSERT INTO NOVENTA (NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_LAT,NV_LON,NV_NOMBRE,NV_DIRECCION) VALUES(?,?,?,?,?,?,?,?) ", Array As Object (no_cliente,sDate & sTime, usuario, "NUEVO CLIENTE", lat, lon, E_NOMBRE.Text,et_direccion.Text)) - - DateTime.DateFormat = "dd/MM/yyyy" - DateTime.Timeformat = "HH:mm:ss" - sDate2 = DateTime.Date(DateTime.Now) - sTime2 = DateTime.Time(DateTime.Now) - - Starter.skmt.ExecNonQuery2("INSERT INTO CLIENTES_NUEVOS(CN_ID, CN_FECHA, CN_USER, CN_LAT, CN_LON, CN_NOMBRE, CN_DIRECCION, CN_FOTO, CN_RUTA, CN_GIRO, CN_SOLICITA) VALUES (?,?,?,?,?,?,?,?,?,?,?)", Array As String(no_cliente, sDate2 &" "&sTime2, usuario, lat, lon, E_NOMBRE.Text, et_direccion.Text, ALMACEN, no_ruta, cb_giro.SelectedItem, ET_Atiende.Text)) - ' fototomada = "0" - B4XPages.ShowPage("Cliente") - CallSubDelayed(Tracker, "StartFLP") Else ' Mensaje de advertencia si ET_Atiende.Text está vacío MsgboxAsync("Por favor, debe capturar al encargado que atiende el negocio.","Atención") diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 944d36c..50fd6ef 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -364,7 +364,7 @@ Sub getTableColumnList(db As SQL, table As String) As String 'ignore End Sub Sub B4XPage_Appear - nvo_cliente.Enabled = False +' nvo_cliente.Enabled = False rd.respaldaPedido rd.respaldaInventarios rd.respaldaPaquetes @@ -677,7 +677,7 @@ Sub Subir_Click Dim Dir2 As String Dir = "/promotoriakmts" - c=Starter.skmt.ExecQuery("SELECT CN_ID, CN_FECHA , CN_USER, CN_LAT, CN_LON, CN_NOMBRE, CN_DIRECCION, CN_FOTO, CN_ALMACEN, CN_RUTA, CN_GIRO, CN_SOLICITA FROM CLIENTES_NUEVOS") + c=Starter.skmt.ExecQuery("SELECT CN_ID, CN_FECHA , CN_USER, CN_LAT, CN_LON, CN_NOMBRE, CN_DIRECCION, CN_FOTO, CN_ALMACEN, CN_RUTA, CN_GIRO, CN_SOLICITA, CN_COLONIA, CN_TELEFONO FROM CLIENTES_NUEVOS") If c.RowCount>0 Then For i = 0 To c.RowCount - 1 c.Position = i @@ -697,8 +697,8 @@ Sub Subir_Click End If Dim cmd As DBCommand cmd.Initialize - cmd.Name = "insert_clientesnuevos_MARQUEZ2" - cmd.Parameters = Array As Object(c.GetString("CN_ID"), c.GetString("CN_FECHA"), c.GetString("CN_USER"), c.GetString("CN_LAT"), c.GetString("CN_LON"), c.GetString("CN_NOMBRE"), c.GetString("CN_DIRECCION"),ALMACEN, c.GetString("CN_RUTA"), "En espera",c.GetString("CN_GIRO"),dialetra, c.GetString("CN_SOLICITA")) + cmd.Name = "insert_clientesnuevos_MARQUEZ3" + cmd.Parameters = Array As Object(c.GetString("CN_ID"), c.GetString("CN_FECHA"), c.GetString("CN_USER"), c.GetString("CN_LAT"), c.GetString("CN_LON"), c.GetString("CN_NOMBRE"), c.GetString("CN_DIRECCION"),ALMACEN, c.GetString("CN_RUTA"), "En espera",c.GetString("CN_GIRO"),dialetra, c.GetString("CN_SOLICITA"), c.GetString("CN_COLONIA"), c.GetString("CN_TELEFONO")) reqManager.ExecuteCommand(cmd , "inst_clientesn") Next End If diff --git a/B4A/Files/cliente.bal b/B4A/Files/cliente.bal index 5c65956..81a9263 100644 Binary files a/B4A/Files/cliente.bal and b/B4A/Files/cliente.bal differ diff --git a/B4A/MAPA_CLIENTE.bas b/B4A/MAPA_CLIENTE.bas index 7c4ef0b..967334f 100644 --- a/B4A/MAPA_CLIENTE.bas +++ b/B4A/MAPA_CLIENTE.bas @@ -55,7 +55,17 @@ Sub MapFragment1_Ready JavaMapsObject = gmap.GetUiSettings JavaMapsObject.RunMethod("setMapToolbarEnabled", Array As Object(True)) Dim marcador1 As Marker = gmap.AddMarker (latmarker,longmarker, "TIENDA") - marcador1.Snippet = B4XPages.MainPage.cliente.NOMBRE + c = Starter.skmt.ExecQuery("SELECT CAT_CL_LAT, CAT_CL_LONG, CAT_CL_NOMBRE FROM kmt_info WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA) UNION ALL SELECT CAT_CL_LAT, CAT_CL_LONG, CAT_CL_NOMBRE FROM kmt_info2 WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") + + If c.RowCount > 0 Then + c.Position = 0 +' Subs.centraPanel(p_principal, Activity.Width) +' p_principal.Height = Activity.Height * 0.95 +'' latmarker = c.GetString("CAT_CL_LAT") +' longmarker = c.GetString("CAT_CL_LONG") +'' NOMBRE_TIENDA = c.GetString("CAT_CL_NOMBRE") + marcador1.Snippet = c.GetString("CAT_CL_NOMBRE") + End If 'posicion inicial Dim aa As CameraPosition aa.Initialize(latmarker,longmarker,15)''' RECOMENDABLE CAMBIAR A 10 SI ES MAS DE 1 MARCADOR @@ -92,11 +102,16 @@ Sub Activity_Resume Else GPS.Start(0, 0) End If - Subs.centraPanel(p_principal, Activity.Width) - p_principal.Height = Activity.Height * 0.95 -' latmarker = B4XPages.MainPage.cliente.LATITUD -' longmarker = B4XPages.MainPage.cliente.LONGITUD -' NOMBRE_TIENDA = B4XPages.MainPage.cliente.NOMBRE + c = Starter.skmt.ExecQuery("SELECT CAT_CL_LAT, CAT_CL_LONG, CAT_CL_NOMBRE FROM kmt_info WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA) UNION ALL SELECT CAT_CL_LAT, CAT_CL_LONG, CAT_CL_NOMBRE FROM kmt_info2 WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") + + If c.RowCount > 0 Then + c.Position = 0 + Subs.centraPanel(p_principal, Activity.Width) + p_principal.Height = Activity.Height * 0.95 + latmarker = c.GetString("CAT_CL_LAT") + longmarker = c.GetString("CAT_CL_LONG") + NOMBRE_TIENDA = c.GetString("CAT_CL_NOMBRE") + End If End Sub Sub Activity_Pause (UserClosed As Boolean) diff --git a/B4A/MARQUEZ.b4a b/B4A/MARQUEZ.b4a index ff00289..59bd8b2 100644 --- a/B4A/MARQUEZ.b4a +++ b/B4A/MARQUEZ.b4a @@ -205,7 +205,7 @@ Version=12.8 #Region Project Attributes #ApplicationLabel: Marquez #VersionCode: 1 - #VersionName: 4.10.19 + #VersionName: 4.11.01 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: portrait #CanInstallToExternalStorage: False diff --git a/B4A/MARQUEZ.b4a.meta b/B4A/MARQUEZ.b4a.meta index 891180b..4b43901 100644 --- a/B4A/MARQUEZ.b4a.meta +++ b/B4A/MARQUEZ.b4a.meta @@ -91,6 +91,6 @@ ModuleClosedNodes6= ModuleClosedNodes7= ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=Diseñador Visual,productos.bal,-100,2,C_Productos,b_terminar1_Click,872,0,C_Productos,B4XPage_Appear,197,6,C_Cliente,NUEVO_Click,919,0,C_Cliente,GUADAVENTA2,838,0,MAPA_CLIENTE,Globals,18,0,Diseñador Visual,cliente.bal,-100,6,Diseñador Visual,mapa_cliente.bal,-100,3,MAPA_CLIENTE,GPS_LocationChanged,60,0,MAPA_CLIENTE,Activity_Resume,89,0 +NavigationStack=C_Cliente,b_ubicar_Click,2628,0,Diseñador Visual,cliente.bal,-100,6,C_Cliente,imprime_preventa,1349,6,C_Principal,B4XPage_Appear,360,0,C_Principal,nvo_cliente_Click,2538,0,Diseñador Visual,principal.bal,-100,3,C_NuevoCliente,Class_Globals,0,0,C_NuevoCliente,GUARDA_Click,222,6,C_Principal,Subir_Click,694,2,Diseñador Visual,nuevocliente.bal,-100,6 SelectedBuild=0 -VisibleModules=1,2,13,4,7,8,9,10,14,29,24 +VisibleModules=1,2,13,4,7,8,9,10,14,29,24,11 diff --git a/B4A/Subs.bas b/B4A/Subs.bas index 8beddcd..7545b0d 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -42,6 +42,11 @@ Sub getPhnId As String 'ignore Return devModel End Sub +'Centra un boton dentro de un elemento superior +Sub centraBoton(elemento As Button, anchoElementoSuperior As Int) 'ignore + elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2) +End Sub + 'Comprime y regresa un texto (str) en base64 Sub compress(str As String) As String 'ignore 'Requiere la libreria "CompressStrings"