3 Commits

Author SHA1 Message Date
a7c890a612 - VERSION 5.10.03
- Se cambio com ose enviaban las imagenes, antes blob, ahora solo nombre.
- Se agregaron 2 columnas a FOTOINICIAL para poner el nombre de las fotos.
2025-10-09 17:22:41 -06:00
b4010f2d7b - VERSION 5.10.02
- Se agregó el dia 2 para la frecuencia, si un hoy es p. ej. viernes, y un cliente tiene dia de visita 1 lunes y dia de visita 2 viernes, tambien va a aparecer en los clientes.
2025-10-03 19:19:38 -06:00
2c252b2373 - VERSION 5.09.04
- Se agregaron varios motivos de NoVenta.
2025-09-17 21:35:51 -06:00
14 changed files with 158 additions and 43 deletions

View File

@@ -1121,7 +1121,7 @@ Version=12.8
#Region Project Attributes #Region Project Attributes
#ApplicationLabel: ADM #ApplicationLabel: ADM
#VersionCode: 1 #VersionCode: 1
#VersionName: 5.09.03 #VersionName: 5.10.03
'SupportedOrientations possible values: unspecified, landscape or portrait. 'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait #SupportedOrientations: portrait
#CanInstallToExternalStorage: False #CanInstallToExternalStorage: False

View File

@@ -76,7 +76,7 @@ ModuleClosedNodes16=
ModuleClosedNodes17= ModuleClosedNodes17=
ModuleClosedNodes18= ModuleClosedNodes18=
ModuleClosedNodes19= ModuleClosedNodes19=
ModuleClosedNodes2= ModuleClosedNodes2=33
ModuleClosedNodes20= ModuleClosedNodes20=
ModuleClosedNodes21= ModuleClosedNodes21=
ModuleClosedNodes22= ModuleClosedNodes22=
@@ -84,7 +84,7 @@ ModuleClosedNodes23=
ModuleClosedNodes24= ModuleClosedNodes24=
ModuleClosedNodes25= ModuleClosedNodes25=
ModuleClosedNodes26= ModuleClosedNodes26=
ModuleClosedNodes27=29 ModuleClosedNodes27=
ModuleClosedNodes28= ModuleClosedNodes28=
ModuleClosedNodes29= ModuleClosedNodes29=
ModuleClosedNodes3= ModuleClosedNodes3=
@@ -92,11 +92,11 @@ ModuleClosedNodes30=2,4,5,6,7,8
ModuleClosedNodes31= ModuleClosedNodes31=
ModuleClosedNodes32=15,16,17,18,19 ModuleClosedNodes32=15,16,17,18,19
ModuleClosedNodes4= ModuleClosedNodes4=
ModuleClosedNodes5= ModuleClosedNodes5=1,3
ModuleClosedNodes6=3 ModuleClosedNodes6=3,29,30
ModuleClosedNodes7= ModuleClosedNodes7=
ModuleClosedNodes8= ModuleClosedNodes8=
ModuleClosedNodes9= ModuleClosedNodes9=
NavigationStack=C_TicketsDia,b_guardaNoVenta_Click,300,1,C_TicketsDia,GPS_LocationChanged,218,0,C_TicketsDia,ListView1_ItemLongClick,213,0,Diseñador Visual,mapa_rutas.bal,-100,2,C_TicketsDia,b_noventa0_Click,229,0,MAPA_RUTAS,b_guardaNoVenta_Click,575,0,Diseñador Visual,clientes.bal,-100,3,C_Clientes,B4XPage_Appear,141,6,Diseñador Visual,datosclienteBotones.bal,-100,2,C_Clientes,CreateListItem,210,0,Starter,reinicializaReqManager,164,0 NavigationStack=MAPA_RUTAS,OnInfoWindowClickListener1_click,367,0,MAPA_RUTAS,Camera1_PictureTaken,723,0,Subs,dameUsuarioDeDB,657,0,Subs,traeAlmacen,668,5,C_Clientes,b_inicioVenta_Click,614,0,Subs,bitacora,1631,0,C_Cliente,Camera1_PictureTaken,2855,0,C_Principal,b_subir_Click,832,6,Starter,mandaForma,249,0,B4XMainPage,B4XPage_Created,179,3
SelectedBuild=0 SelectedBuild=0
VisibleModules=30,2,14,5,6,19,31,27,18,32,8,11 VisibleModules=30,2,14,5,6,19,31,27,32,21

View File

@@ -190,7 +190,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS HIST_SUPERVISOR") Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS HIST_SUPERVISOR")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CLIENTES_NUEVOS(CN_ID TEXT, CN_FECHA TEXT, CN_USER TEXT, CN_LAT TEXT, CN_LON TEXT, CN_NOMBRE TEXT, CN_DIRECCION TEXT, CN_FOTO TEXT, CN_ALMACEN TEXT, CN_RUTA TEXT,CN_GIRO TEXT)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CLIENTES_NUEVOS(CN_ID TEXT, CN_FECHA TEXT, CN_USER TEXT, CN_LAT TEXT, CN_LON TEXT, CN_NOMBRE TEXT, CN_DIRECCION TEXT, CN_FOTO TEXT, CN_ALMACEN TEXT, CN_RUTA TEXT,CN_GIRO TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS RUTAA (RUTAA TEXT)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS RUTAA (RUTAA TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS FOTOINICIAL (RUTAA TEXT, ALMACEN TEXT, LATITUD TEXT, LONGITUD TEXT, FECHAHORA TEXT, FOTO BLOB, FOTO2 BLOB, USUARIO TEXT)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS FOTOINICIAL (RUTAA TEXT, ALMACEN TEXT, LATITUD TEXT, LONGITUD TEXT, FECHAHORA TEXT, FOTO BLOB, FOTO2 BLOB, FOTO_NOM TEXT, FOTO_NOM2 TEXT, USUARIO TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_CUOTAS (HC_META6 TEXT, HC_META5 TEXT, HC_META4 TEXT, HC_META3 TEXT, HC_META2 TEXT, HC_META1 TEXT, HC_RUTA TEXT, HC_CUOTA1 TEXT, HC_CUOTA2 TEXT, HC_CUOTA3 TEXT, HC_CUOTA4 TEXT, HC_CUOTA5 TEXT, HC_CUOTA6 TEXT)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_CUOTAS (HC_META6 TEXT, HC_META5 TEXT, HC_META4 TEXT, HC_META3 TEXT, HC_META2 TEXT, HC_META1 TEXT, HC_RUTA TEXT, HC_CUOTA1 TEXT, HC_CUOTA2 TEXT, HC_CUOTA3 TEXT, HC_CUOTA4 TEXT, HC_CUOTA5 TEXT, HC_CUOTA6 TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_GPS (HGDATE TEXT, HGLAT TEXT, HGLON TEXT)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_GPS (HGDATE TEXT, HGLAT TEXT, HGLON TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_GIRO(GIRO TEXT)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_GIRO(GIRO TEXT)")
@@ -711,7 +711,7 @@ Sub JobDone(Job As HttpJob)
p_validacion.Visible = False p_validacion.Visible = False
et_codigo.Text = "" et_codigo.Text = ""
If recarga = "0" Then If recarga = "0" Then
Subs.panelVisible(P_CIEGO,0,0) Subs.panelVisible(p_ciego,0,0)
Else If recarga = "1" Then Else If recarga = "1" Then
Starter.skmt.ExecNonQuery("delete from CUENTAA") Starter.skmt.ExecNonQuery("delete from CUENTAA")
Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object("1")) Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object("1"))
@@ -1327,3 +1327,7 @@ End Sub
Private Sub p_add_monto_Click Private Sub p_add_monto_Click
End Sub End Sub
Private Sub ImageView1_LongClick
Starter.mandaForma(1,1,123, "1759862644988_10_cerrado.jpg")
End Sub

View File

@@ -314,7 +314,7 @@ Sub B4XPage_Appear
Subs.centraPanel(p_abono, Root.Width) Subs.centraPanel(p_abono, Root.Width)
Subs.centraPanel(p_credito, Root.Width) Subs.centraPanel(p_credito, Root.Width)
skmt.Initialize(ruta,"kmt.db", True) 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)") 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 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))") 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 = B4XPages.MainPage.skmt.ExecQuery("select COUNT(*) AS CLIENTE FROM ABONOSP WHERE CLIENTE IN (Select CUENTA from cuentaa)")
b.Position = 0 b.Position = 0
@@ -2819,7 +2819,7 @@ Sub Camera1_PictureTaken (Data() As Byte)
img.WriteToStream(out, 100, "PNG") img.WriteToStream(out, 100, "PNG")
out.Close out.Close
Starter.skmt.ExecNonQuery2("INSERT INTO FOTOINICIAL (RUTAA, ALMACEN, LATITUD, LONGITUD, FECHAHORA, FOTO, USUARIO) VALUES (?,?,?,?,?,?,?)",Array As Object(LA_RUTA, ALMACEN, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, sDate & " " & sTime, File.ReadBytes(File.DirInternal & dir & Dir2, fototomada), Subs.traeUsuarioDeBD)) Starter.skmt.ExecNonQuery2("INSERT INTO FOTOINICIAL (RUTAA, ALMACEN, LATITUD, LONGITUD, FECHAHORA, FOTO_NOM, USUARIO) VALUES (?,?,?,?,?,?,?)",Array As Object(LA_RUTA, ALMACEN, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, sDate & " " & sTime, fototomada, Subs.traeUsuarioDeBD))
b_foto_inci.Text = "Foto usuario" b_foto_inci.Text = "Foto usuario"
ChangeCamera_Click ChangeCamera_Click
Else If b_foto_inci.Text = "Foto usuario" Then Else If b_foto_inci.Text = "Foto usuario" Then
@@ -2861,7 +2861,7 @@ Sub Camera1_PictureTaken (Data() As Byte)
Dim out As OutputStream = File.OpenOutput(File.DirInternal & dir & Dir2, filename, False) Dim out As OutputStream = File.OpenOutput(File.DirInternal & dir & Dir2, filename, False)
img.WriteToStream(out, 100, "PNG") img.WriteToStream(out, 100, "PNG")
out.Close out.Close
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE FOTOINICIAL set FOTO2 = ? where USUARIO = ? and RUTAA = ? and ALMACEN = ? ", Array As Object (File.ReadBytes(File.DirInternal & dir & Dir2, fototomada), Subs.traeUsuarioDeBD,LA_RUTA, ALMACEN )) B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE FOTOINICIAL set FOTO_NOM2 = ? where USUARIO = ? and RUTAA = ? and ALMACEN = ? ", Array As Object (fototomada, Subs.traeUsuarioDeBD,LA_RUTA, ALMACEN ))
b_foto_inci.Text = "Foto tienda" b_foto_inci.Text = "Foto tienda"
ChangeCamera_Click ChangeCamera_Click
p_camara.Visible = False p_camara.Visible = False

View File

@@ -53,6 +53,8 @@ Sub Class_Globals
Private b_guardaNoVenta As Button Private b_guardaNoVenta As Button
Private p_botonesNoVenta As Panel Private p_botonesNoVenta As Panel
Private et_comentarioNoVenta As EditText Private et_comentarioNoVenta As EditText
Private r_opcion7 As RadioButton
Private r_opcion6 As RadioButton
Private r_opcion5 As RadioButton Private r_opcion5 As RadioButton
Private r_opcion4 As RadioButton Private r_opcion4 As RadioButton
Private r_opcion3 As RadioButton Private r_opcion3 As RadioButton
@@ -710,13 +712,17 @@ Private Sub b_guardaNoVenta_Click
If r_opcion1.Checked Then If r_opcion1.Checked Then
motivo = "CERRADO" motivo = "CERRADO"
Else If r_opcion2.Checked Then Else If r_opcion2.Checked Then
motivo = "NO COMPRA" motivo = "NO TIENE DINERO"
Else If r_opcion3.Checked Then Else If r_opcion3.Checked Then
motivo = "CON PRODUCTO" motivo = "NO ABRE MAÑANA"
Else If r_opcion4.Checked Then Else If r_opcion4.Checked Then
motivo = "NO ESTA EL ENCARGADO" motivo = "FALTA DE PRODUCTO"
Else If r_opcion5.Checked Then
motivo = "PROMOCION CON OTRO DISTRIBUIDOR"
Else If r_opcion6.Checked Then
motivo = "RECIBEN MUCHOS PROVEEDORES"
Else Else
motivo = "CANCELACION" motivo = "NO LE QUEDA EL DIA"
End If End If
Log("FOTOCERRADO: " & fotoCerrado) Log("FOTOCERRADO: " & fotoCerrado)
@@ -836,7 +842,7 @@ Sub Camera1_PictureTaken (Data() As Byte)
img.WriteToStream(out, 100, "PNG") img.WriteToStream(out, 100, "PNG")
out.Close out.Close
If nombreFoto = "inicio" Then If nombreFoto = "inicio" Then
Starter.skmt.ExecNonQuery2("INSERT INTO FOTOINICIAL (RUTAA, ALMACEN, LATITUD, LONGITUD, FECHAHORA, FOTO, USUARIO) VALUES (?,?,?,?,?,?,?)",Array As Object(Subs.traeRuta, Subs.traeAlmacen, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, sDate & " " & sTime, File.ReadBytes(File.DirInternal & dir & Dir2, fototomada), Subs.traeUsuarioDeBD)) Starter.skmt.ExecNonQuery2("INSERT INTO FOTOINICIAL (RUTAA, ALMACEN, LATITUD, LONGITUD, FECHAHORA, FOTO_NOM, USUARIO) VALUES (?,?,?,?,?,?,?)",Array As Object(Subs.traeRuta, Subs.traeAlmacen, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, sDate & " " & sTime, fototomada, Subs.traeUsuarioDeBD))
b_foto_inci.Text = "Foto usuario" b_foto_inci.Text = "Foto usuario"
ChangeCamera_Click ChangeCamera_Click
Else Else
@@ -844,9 +850,14 @@ Sub Camera1_PictureTaken (Data() As Byte)
p_camara.Visible = False p_camara.Visible = False
StopCamera StopCamera
End If End If
LogColor("Mandamos foto: " & fototomada, Colors.red)
Log($"${Subs.traeAlmacen}, ${Subs.traeRuta}, ${Subs.traeCliente}, ${fototomada}"$)
Starter.mandaForma(Subs.traeAlmacen, Subs.traeRuta, Subs.traeCliente, fototomada)
Else If b_foto_inci.Text = "Foto usuario" Then Else If b_foto_inci.Text = "Foto usuario" Then
DateTime.DateFormat="ddMMyyyyHHmmss" DateTime.DateFormat="ddMMyyyyHHmmss"
fototomada = fototomada = DateTime.Now & $"_${nombreFoto}.jpg"$ nombreFoto = "usuario"
fototomada = DateTime.Now & $"_${nombreFoto}.jpg"$
Dim filename As String = fototomada Dim filename As String = fototomada
Dim dir As String = File.DirInternal Dim dir As String = File.DirInternal
camEx.SavePictureToFile(Data, dir, filename) camEx.SavePictureToFile(Data, dir, filename)
@@ -883,7 +894,7 @@ Sub Camera1_PictureTaken (Data() As Byte)
Dim out As OutputStream = File.OpenOutput(File.DirInternal & dir & Dir2, filename, False) Dim out As OutputStream = File.OpenOutput(File.DirInternal & dir & Dir2, filename, False)
img.WriteToStream(out, 100, "PNG") img.WriteToStream(out, 100, "PNG")
out.Close out.Close
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE FOTOINICIAL set FOTO2 = ? where USUARIO = ? and RUTAA = ? and ALMACEN = ? ", Array As Object (File.ReadBytes(File.DirInternal & dir & Dir2, fototomada), Subs.traeUsuarioDeBD,Subs.traeRuta, Subs.traeAlmacen )) B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE FOTOINICIAL set FOTO_NOM2 = ? where USUARIO = ? and RUTAA = ? and ALMACEN = ? ", Array As Object (fototomada, Subs.traeUsuarioDeBD,Subs.traeRuta, Subs.traeAlmacen ))
b_foto_inci.Text = "Foto tienda" b_foto_inci.Text = "Foto tienda"
ChangeCamera_Click ChangeCamera_Click
p_camara.Visible = False p_camara.Visible = False
@@ -895,6 +906,11 @@ Sub Camera1_PictureTaken (Data() As Byte)
Else Else
B4XPages.MainPage.tipo_venta = "PREVENTA" B4XPages.MainPage.tipo_venta = "PREVENTA"
End If End If
LogColor("Mandamos foto: " & fototomada, Colors.red)
Log($"${Subs.traeAlmacen}, ${Subs.traeRuta}, ${Subs.traeCliente}, ${fototomada}"$)
Starter.mandaForma(Subs.traeAlmacen, Subs.traeRuta, Subs.traeCliente, fototomada)
' B4XPages.ShowPage("productos") ' B4XPages.ShowPage("productos")
' p_transparentePidePeso.Visible = True ' p_transparentePidePeso.Visible = True
End If End If
@@ -947,7 +963,6 @@ Sub mandaPendientes
' End If ' End If
End Sub End Sub
Sub JobDone(Job As HttpJob) Sub JobDone(Job As HttpJob)
Log("INICA JOBDONE CLIENTES - " & Job.Tag) Log("INICA JOBDONE CLIENTES - " & Job.Tag)
If reqManager.reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos. If reqManager.reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos.

View File

@@ -827,7 +827,7 @@ Sub b_subir_Click
cuantos_noventa = D.GetString("CUANTOS_NOVENTA") cuantos_noventa = D.GetString("CUANTOS_NOVENTA")
d.Close d.Close
' NOVENTA ' FOTOINICIAL
c=B4XPages.MainPage.skmt.ExecQuery("SELECT * FROM FOTOINICIAL") c=B4XPages.MainPage.skmt.ExecQuery("SELECT * FROM FOTOINICIAL")
If c.RowCount>0 Then If c.RowCount>0 Then
For i=0 To c.RowCount -1 For i=0 To c.RowCount -1
@@ -837,7 +837,7 @@ Sub b_subir_Click
foto2 = c.GetBlob("FOTO2") foto2 = c.GetBlob("FOTO2")
cmd.Initialize cmd.Initialize
cmd.Name = "insert_foto_ADM" cmd.Name = "insert_foto_ADM"
cmd.Parameters = Array As Object(C.GetString("RUTAA"),C.GetString("USUARIO"),C.GetString("LONGITUD"),C.GetString("ALMACEN"),C.GetString("FECHAHORA"),C.GetString("LATITUD"),foto1,foto2) cmd.Parameters = Array As Object(C.GetString("RUTAA"),C.GetString("USUARIO"),C.GetString("LONGITUD"),C.GetString("ALMACEN"),C.GetString("FECHAHORA"),C.GetString("LATITUD"),Subs.traeCliente&"_"&c.GetString("FOTO_NOM"),Subs.traeCliente&"_"&c.GetString("FOTO_NOM2"))
reqManager.ExecuteCommand(cmd , "inst_FOTO") reqManager.ExecuteCommand(cmd , "inst_FOTO")
Next Next
End If End If
@@ -1079,7 +1079,7 @@ Sub b_cargar_Click
reqManager.ExecuteQuery(cmd , 0, "detallepaq") reqManager.ExecuteQuery(cmd , 0, "detallepaq")
cmd.Initialize cmd.Initialize
cmd.Name = "select_cat_clientes_ADM" cmd.Name = "select_cat_clientes2_ADM"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN) cmd.Parameters = Array As Object(e_ruta.text, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "kmt_datos") reqManager.ExecuteQuery(cmd , 0, "kmt_datos")
@@ -1122,7 +1122,7 @@ Sub b_cargar_Click
Panel11.Visible = False Panel11.Visible = False
cmd.Initialize cmd.Initialize
cmd.Name = "select_cat_clientes_ADM" cmd.Name = "select_cat_clientes2_ADM"
cmd.Parameters = Array As Object(E_RUTA2.text, ALMACEN) cmd.Parameters = Array As Object(E_RUTA2.text, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "kmt_datos") reqManager.ExecuteQuery(cmd , 0, "kmt_datos")
@@ -1301,6 +1301,7 @@ Sub JobDone(Job As HttpJob)
If Job.JobName = "DBRequest" Then If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = reqManager.HandleJob(Job) Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "kmt_datos" Then 'query tag If RESULT.Tag = "kmt_datos" Then 'query tag
Subs.logJobDoneResultados(RESULT)
S_CC.TEXT = "CARGANDO" S_CC.TEXT = "CARGANDO"
For Each records() As Object In RESULT.Rows For Each records() As Object In RESULT.Rows
Dim CAT_CL_CODIGO As String = records(RESULT.Columns.Get("CAT_CL_CODIGO")) Dim CAT_CL_CODIGO As String = records(RESULT.Columns.Get("CAT_CL_CODIGO"))

View File

@@ -33,6 +33,9 @@ Sub Class_Globals
Private Panel5 As Panel Private Panel5 As Panel
Private et_comentarioNoVenta As EditText Private et_comentarioNoVenta As EditText
Private Label3 As Label Private Label3 As Label
Private r_opcion7 As RadioButton
Private r_opcion6 As RadioButton
Private r_opcion5 As RadioButton
Private r_opcion4 As RadioButton Private r_opcion4 As RadioButton
Private r_opcion3 As RadioButton Private r_opcion3 As RadioButton
Private r_opcion2 As RadioButton Private r_opcion2 As RadioButton
@@ -277,13 +280,17 @@ Private Sub b_guardaNoVenta_Click
If r_opcion1.Checked Then If r_opcion1.Checked Then
motivo = "CERRADO" motivo = "CERRADO"
Else If r_opcion2.Checked Then Else If r_opcion2.Checked Then
motivo = "NO COMPRA" motivo = "NO TIENE DINERO"
Else If r_opcion3.Checked Then Else If r_opcion3.Checked Then
motivo = "CON PRODUCTO" motivo = "NO ABRE MAÑANA"
Else If r_opcion4.Checked Then Else If r_opcion4.Checked Then
motivo = "NO ESTA EL ENCARGADO" motivo = "FALTA DE PRODUCTO"
Else If r_opcion5.Checked Then
motivo = "PROMOCION CON OTRO DISTRIBUIDOR"
Else If r_opcion6.Checked Then
motivo = "RECIBEN MUCHOS PROVEEDORES"
Else Else
motivo = "CANCELACION" motivo = "NO LE QUEDA EL DIA"
End If End If
If motivo = "CERRADO" And fotoCerrado = "" Then If motivo = "CERRADO" And fotoCerrado = "" Then
nombreFoto = Subs.traeCliente & "_cerrado" nombreFoto = Subs.traeCliente & "_cerrado"
@@ -461,7 +468,7 @@ Sub Camera1_PictureTaken (Data() As Byte)
img.WriteToStream(out, 100, "PNG") img.WriteToStream(out, 100, "PNG")
out.Close out.Close
If nombreFoto = "inicio" Then If nombreFoto = "inicio" Then
Starter.skmt.ExecNonQuery2("INSERT INTO FOTOINICIAL (RUTAA, ALMACEN, LATITUD, LONGITUD, FECHAHORA, FOTO, USUARIO) VALUES (?,?,?,?,?,?,?)",Array As Object(Subs.traeRuta, Subs.traeAlmacen, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, sDate & " " & STIME, File.ReadBytes(File.DirInternal & dir & Dir2, fototomada), Subs.traeUsuarioDeBD)) Starter.skmt.ExecNonQuery2("INSERT INTO FOTOINICIAL (RUTAA, ALMACEN, LATITUD, LONGITUD, FECHAHORA, FOTO_NOM, USUARIO) VALUES (?,?,?,?,?,?,?)",Array As Object(Subs.traeRuta, Subs.traeAlmacen, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, sDate & " " & STIME, fototomada, Subs.traeUsuarioDeBD))
b_foto_inci.Text = "Foto usuario" b_foto_inci.Text = "Foto usuario"
ChangeCamera_Click ChangeCamera_Click
Else Else
@@ -469,9 +476,13 @@ Sub Camera1_PictureTaken (Data() As Byte)
p_camara.Visible = False p_camara.Visible = False
StopCamera StopCamera
End If End If
Starter.mandaForma(Subs.traeAlmacen, Subs.traeRuta, Subs.traeCliente, fototomada)
Else If b_foto_inci.Text = "Foto usuario" Then Else If b_foto_inci.Text = "Foto usuario" Then
DateTime.DateFormat="ddMMyyyyHHmmss" DateTime.DateFormat="ddMMyyyyHHmmss"
fototomada = fototomada = DateTime.Now & $"_${nombreFoto}.jpg"$ nombreFoto = "usuario"
fototomada = DateTime.Now & $"_${nombreFoto}.jpg"$
Dim filename As String = fototomada Dim filename As String = fototomada
Dim dir As String = File.DirInternal Dim dir As String = File.DirInternal
camEx.SavePictureToFile(Data, dir, filename) camEx.SavePictureToFile(Data, dir, filename)
@@ -508,7 +519,7 @@ Sub Camera1_PictureTaken (Data() As Byte)
Dim out As OutputStream = File.OpenOutput(File.DirInternal & dir & Dir2, filename, False) Dim out As OutputStream = File.OpenOutput(File.DirInternal & dir & Dir2, filename, False)
img.WriteToStream(out, 100, "PNG") img.WriteToStream(out, 100, "PNG")
out.Close out.Close
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE FOTOINICIAL set FOTO2 = ? where USUARIO = ? and RUTAA = ? and ALMACEN = ? ", Array As Object (File.ReadBytes(File.DirInternal & dir & Dir2, fototomada), Subs.traeUsuarioDeBD,Subs.traeRuta, Subs.traeAlmacen )) B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE FOTOINICIAL set FOTO_NOM2 = ? where USUARIO = ? and RUTAA = ? and ALMACEN = ? ", Array As Object (fototomada, Subs.traeUsuarioDeBD,Subs.traeRuta, Subs.traeAlmacen ))
b_foto_inci.Text = "Foto tienda" b_foto_inci.Text = "Foto tienda"
ChangeCamera_Click ChangeCamera_Click
p_camara.Visible = False p_camara.Visible = False
@@ -520,6 +531,10 @@ Sub Camera1_PictureTaken (Data() As Byte)
Else Else
B4XPages.MainPage.tipo_venta = "PREVENTA" B4XPages.MainPage.tipo_venta = "PREVENTA"
End If End If
LogColor("Mandamos foto: " & fototomada, Colors.red)
Log($"${Subs.traeAlmacen}, ${Subs.traeRuta}, ${Subs.traeCliente}, ${fototomada}"$)
Starter.mandaForma(Subs.traeAlmacen, Subs.traeRuta, Subs.traeCliente, fototomada)
' B4XPages.ShowPage("productos") ' B4XPages.ShowPage("productos")
' p_transparentePidePeso.Visible = True ' p_transparentePidePeso.Visible = True
End If End If

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -73,6 +73,8 @@ Sub Globals
Private p_botonesNoVenta As Panel Private p_botonesNoVenta As Panel
Private Panel5 As Panel Private Panel5 As Panel
Private et_comentarioNoVenta As EditText Private et_comentarioNoVenta As EditText
Private r_opcion7 As RadioButton
Private r_opcion6 As RadioButton
Private r_opcion5 As RadioButton Private r_opcion5 As RadioButton
Private r_opcion4 As RadioButton Private r_opcion4 As RadioButton
Private r_opcion3 As RadioButton Private r_opcion3 As RadioButton
@@ -472,7 +474,7 @@ Private Sub b_inicioVenta_Click
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta, "Inicia Venta", Subs.traeCliente, Subs.fechanormal(DateTime.Now), "", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, "2", "", "", "") Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta, "Inicia Venta", Subs.traeCliente, Subs.fechanormal(DateTime.Now), "", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, "2", "", "", "")
Starter.enVenta = True Starter.enVenta = True
Subs.enVenta(1, "MAPA") Subs.enVenta(1, "MAPA")
l_venta.Text = "Ve a tu app de venta y cuando termines regresa aqui y presiona el botón para ingresar ""Peso"" o ""No Venta""" l_venta.Text = "Ve a tu app de venta y cuando termines regresa aqui y presiona el botón para ingresar ""Kilos"" o ""No Venta"""
LogColor($">>>>>> INICIA VENTA: ${Starter.enVenta} - ${Subs.traeCliente}"$, Colors.red) LogColor($">>>>>> INICIA VENTA: ${Starter.enVenta} - ${Subs.traeCliente}"$, Colors.red)
End Sub End Sub
@@ -559,13 +561,17 @@ Private Sub b_guardaNoVenta_Click
If r_opcion1.Checked Then If r_opcion1.Checked Then
motivo = "CERRADO" motivo = "CERRADO"
Else If r_opcion2.Checked Then Else If r_opcion2.Checked Then
motivo = "NO COMPRA" motivo = "NO TIENE DINERO"
Else If r_opcion3.Checked Then Else If r_opcion3.Checked Then
motivo = "CON PRODUCTO" motivo = "NO ABRE MAÑANA"
Else If r_opcion4.Checked Then Else If r_opcion4.Checked Then
motivo = "NO ESTA EL ENCARGADO" motivo = "FALTA DE PRODUCTO"
Else If r_opcion5.Checked Then
motivo = "PROMOCION CON OTRO DISTRIBUIDOR"
Else If r_opcion6.Checked Then
motivo = "RECIBEN MUCHOS PROVEEDORES"
Else Else
motivo = "CANCELACION" motivo = "NO LE QUEDA EL DIA"
End If End If
If motivo = "CERRADO" And fotoCerrado = "" Then If motivo = "CERRADO" And fotoCerrado = "" Then
nombreFoto = Subs.traeCliente & "_cerrado" nombreFoto = Subs.traeCliente & "_cerrado"
@@ -670,7 +676,7 @@ Sub Camera1_PictureTaken (Data() As Byte)
img.WriteToStream(out, 100, "PNG") img.WriteToStream(out, 100, "PNG")
out.Close out.Close
If nombreFoto = "inicio" Then If nombreFoto = "inicio" Then
Starter.skmt.ExecNonQuery2("INSERT INTO FOTOINICIAL (RUTAA, ALMACEN, LATITUD, LONGITUD, FECHAHORA, FOTO, USUARIO) VALUES (?,?,?,?,?,?,?)",Array As Object(Subs.traeRuta, Subs.traeAlmacen, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, sDate & " " & sTime, File.ReadBytes(File.DirInternal & dir & Dir2, fototomada), Subs.traeUsuarioDeBD)) Starter.skmt.ExecNonQuery2("INSERT INTO FOTOINICIAL (RUTAA, ALMACEN, LATITUD, LONGITUD, FECHAHORA, FOTO_NOM, USUARIO) VALUES (?,?,?,?,?,?,?)",Array As Object(Subs.traeRuta, Subs.traeAlmacen, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, sDate & " " & sTime, fototomada, Subs.traeUsuarioDeBD))
b_foto_inci.Text = "Foto usuario" b_foto_inci.Text = "Foto usuario"
ChangeCamera_Click ChangeCamera_Click
Else Else
@@ -678,9 +684,13 @@ Sub Camera1_PictureTaken (Data() As Byte)
p_camara.Visible = False p_camara.Visible = False
StopCamera StopCamera
End If End If
Starter.mandaForma(Subs.traeAlmacen, Subs.traeRuta, Subs.traeCliente, fototomada)
Else If b_foto_inci.Text = "Foto usuario" Then Else If b_foto_inci.Text = "Foto usuario" Then
DateTime.DateFormat="ddMMyyyyHHmmss" DateTime.DateFormat="ddMMyyyyHHmmss"
fototomada = fototomada = DateTime.Now & $"_${nombreFoto}.jpg"$ nombreFoto = "usuario"
fototomada = DateTime.Now & $"_${nombreFoto}.jpg"$
Dim filename As String = fototomada Dim filename As String = fototomada
Dim dir As String = File.DirInternal Dim dir As String = File.DirInternal
camEx.SavePictureToFile(Data, dir, filename) camEx.SavePictureToFile(Data, dir, filename)
@@ -717,7 +727,7 @@ Sub Camera1_PictureTaken (Data() As Byte)
Dim out As OutputStream = File.OpenOutput(File.DirInternal & dir & Dir2, filename, False) Dim out As OutputStream = File.OpenOutput(File.DirInternal & dir & Dir2, filename, False)
img.WriteToStream(out, 100, "PNG") img.WriteToStream(out, 100, "PNG")
out.Close out.Close
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE FOTOINICIAL set FOTO2 = ? where USUARIO = ? and RUTAA = ? and ALMACEN = ? ", Array As Object (File.ReadBytes(File.DirInternal & dir & Dir2, fototomada), Subs.traeUsuarioDeBD,Subs.traeRuta, Subs.traeAlmacen )) B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE FOTOINICIAL set FOTO_NOM2 = ? where USUARIO = ? and RUTAA = ? and ALMACEN = ? ", Array As Object (fototomada, Subs.traeUsuarioDeBD,Subs.traeRuta, Subs.traeAlmacen ))
b_foto_inci.Text = "Foto tienda" b_foto_inci.Text = "Foto tienda"
ChangeCamera_Click ChangeCamera_Click
p_camara.Visible = False p_camara.Visible = False
@@ -729,6 +739,10 @@ Sub Camera1_PictureTaken (Data() As Byte)
Else Else
B4XPages.MainPage.tipo_venta = "PREVENTA" B4XPages.MainPage.tipo_venta = "PREVENTA"
End If End If
LogColor("Mandamos foto: " & fototomada, Colors.red)
Log($"${Subs.traeAlmacen}, ${Subs.traeRuta}, ${Subs.traeCliente}, ${fototomada}"$)
Starter.mandaForma(Subs.traeAlmacen, Subs.traeRuta, Subs.traeCliente, fototomada)
' B4XPages.ShowPage("productos") ' B4XPages.ShowPage("productos")
' p_transparentePidePeso.Visible = True ' p_transparentePidePeso.Visible = True
End If End If

View File

@@ -251,4 +251,57 @@ Sub JobDone(Job As HttpJob)
Catch Catch
Log(LastException) Log(LastException)
End Try End Try
End Sub
Sub mandaForma(almacen_ As String, ruta_ As String, cliente_ As String, imagen_ As String)
' 1. Inicializa un nuevo HttpJob
Dim job As HttpJob
job.Initialize("", Me)
' 2. Define la URL del servidor
Dim url As String = "https://keymon.net/ADM/POST_IMAGEN.aspx"
' 3. Crea un Map para los campos de texto del formulario
Dim params As Map
params.Initialize
params.Put("Almacen", almacen_)
params.Put("Ruta", ruta_)
params.Put("Cliente", cliente_)
params.Put("btnUpload", "Subir Imagen") ' El botón de submit también envía su valor
' --- CAMPOS OCULTOS DE ASP.NET ---
' Estos valores suelen ser dinámicos. Para este ejemplo, los ponemos fijos.
' Si falla, es posible que primero necesites hacer un GET a la página para obtener los valores actualizados.
' params.Put("__VIEWSTATE", "/wEPDwUKMjA1ODU4NjY1MGRkhSExd19qC1l3GdX6jvTnbM9pxPQR8urGAvs76UsqsDU=")
' params.Put("__VIEWSTATEGENERATOR", "6050E242")
' params.Put("__EVENTVALIDATION", "/wEdAAX5q9hoCUC745WBVO+/1ZWhraEDRZI2xn7OC3a5LAUoRlfyZCZSVcs/gLubOxTf2dCyEN4makXuwRjezU2tU1hn5vhDofrSSRcWtmHPtJVt4HHStaEfV6fkOi3uRRJDHybxwaB9FuVcVFxi7uoxeGMX")
' 4. Crea una lista de archivos a subir
Dim files As List
files.Initialize
' Creamos el objeto MultipartFileData para nuestra imagen
' KeyName: Es el atributo "name" del input en HTML ("Imagen")
' ContentType: El tipo de archivo
Dim mfd As MultipartFileData = Subs.CreateMultipartFileData(File.DirInternal&"/adm", imagen_, "Imagen", "image/jpeg")
files.Add(mfd)
' 5. Realiza la petición POST de tipo multipart
job.PostMultipart(url, params, files)
' 6. Espera a que el trabajo termine
Wait For (job) JobDone(job As HttpJob)
If job.Success Then
' El servidor respondió correctamente (HTTP 200 OK)
Log("Respuesta del servidor: " & job.GetString)
' MsgboxAsync("¡Imagen subida con éxito!", "Completado")
Else
' Hubo un error en la conexión o el servidor respondió con un error
Log("Error al subir la imagen: " & job.ErrorMessage)
' MsgboxAsync("Error: " & job.ErrorMessage, "Fallo")
End If
' Libera los recursos del job
job.Release
End Sub End Sub

View File

@@ -665,10 +665,12 @@ End Sub
'Regresa el almacen actual de la base de datos. 'Regresa el almacen actual de la base de datos.
Sub traeAlmacen As String 'ignore Sub traeAlmacen As String 'ignore
Private c As Cursor Private c As Cursor
Private a As String Private a As String = 0
c=B4XPages.MainPage.skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN") c=B4XPages.MainPage.skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN")
c.Position = 0 If c.RowCount > 0 Then
a = C.GetString("ID_ALMACEN") c.Position = 0
a = c.GetString("ID_ALMACEN")
End If
c.Close c.Close
Return a Return a
End Sub End Sub
@@ -1697,4 +1699,15 @@ Sub mandaPendientes
End If End If
c.Close c.Close
End If End If
End Sub
' Función de ayuda para crear el objeto MultipartFileData de forma más limpia
Sub CreateMultipartFileData(Dir As String, FileName As String, KeyName As String, ContentType As String) As MultipartFileData
Dim mfd As MultipartFileData
mfd.Initialize
mfd.Dir = Dir
mfd.FileName = FileName
mfd.KeyName = KeyName
mfd.ContentType = ContentType
Return mfd
End Sub End Sub