- VERSION 4.10.02

- Se agregó el almacen a todas las tablas necesarias y a los queries de envio de información.
This commit is contained in:
Jose Alberto Guerra Ugalde
2024-10-03 15:24:11 -06:00
parent e85f953e73
commit ead56c8758
16 changed files with 2900 additions and 358 deletions

View File

@@ -85,6 +85,11 @@ Sub Class_Globals
Public Provider As FileProvider
Public rutaBDBackup As String = ""
Dim rutarep As String
Private p_ruteo As Panel
' Private lv_algoritmo As ListView
' Private lv_matriz As ListView
Private s_algoritmo As Spinner
Private s_matriz As Spinner
End Sub
Public Sub Initialize
@@ -146,10 +151,17 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Subs.agregaColumna("REPARTO", "REP_CLI_ORIG", "TEXT")
Subs.agregaColumna("REPARTO", "REP_PRECIO", "TEXT")
Subs.agregaColumna("REPARTO", "REP_RECHAZO", "INTEGER")
Subs.agregaColumna("REPARTO", "REP_IDALMACEN", "TEXT")
Subs.agregaColumna("RECHAZOS", "R_PRECIO", "TEXT")
Subs.agregaColumna("VENTAS", "V_PRECIO", "TEXT")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS RUTAA (RUTAA TEXT)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS wayPoints (codigo TEXT, indice INT)")
Subs.agregaColumna("kmt_info", "CAT_CL_IDALMACEN", "TEXT")
Subs.agregaColumna("HIST_VENTAS", "HVD_IDALMACEN", "TEXT")
Subs.agregaColumna("HIST_VENTAS2", "HVD_IDALMACEN", "TEXT")
Subs.agregaColumna("NOVENTA", "NV_IDALMACEN", "TEXT")
Subs.agregaColumna("RECHAZOS", "R_IDALMACEN", "TEXT")
Subs.agregaColumna("VENTAS", "V_IDALMACEN", "TEXT")
' Dim server As String = "http://11.0.0.151:1782"
Dim server As String = "http://187.189.244.154:1782"
' Dim server As String = "http://11.0.0.12:1782"
@@ -161,7 +173,19 @@ Private Sub B4XPage_Created (Root1 As B4XView)
' Dim P As PhoneId
Log("provider")
Provider.Initialize
s_algoritmo.AddAll(Array As String("Nearest Neighbor", "Nearest Insertion"))
s_algoritmo.TextSize = 13
s_matriz.AddAll(Array As String("OSRM", "LOCAL"))
s_matriz.TextSize = 13
Subs.centraPanel(p_ruteo, Root.Width)
' lv_algoritmo.AddSingleLine2("Nearest Neighbor","NN")
' lv_algoritmo.AddSingleLine2("Nearest Insertion", "NI")
' lv_algoritmo.SingleLineLayout.Label.TextColor = Colors.black
' lv_algoritmo.SingleLineLayout.Label.TextSize = 11
' lv_matriz.AddSingleLine("OSRM")
' lv_matriz.AddSingleLine("LOCAL")
' lv_matriz.SingleLineLayout.Label.TextColor = Colors.black
' lv_matriz.SingleLineLayout.Label.TextSize = 11
' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_PHONE_STATE)
' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
' If Result Then
@@ -201,11 +225,18 @@ Sub B4XPage_Appear
' If Result Then
' Log("Con permisos de escritura externa")
' End If
Private al As String = "Nearest Neighbor"
If Subs.traeAlgoritmoRuteo <> "NN" Then al = "Nearest Insertion"
s_algoritmo.SelectedIndex = s_algoritmo.IndexOf(al)
s_matriz.SelectedIndex = s_matriz.IndexOf(Subs.traeMatrizRuteo)
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub Entrar_Click
If user.Text = "x" And pass.Text = "" Then
user.Text = "CAPACITACIONR"
End If
If pass.Text = "YA" Then
Starter.skmt.ExecNonQuery("delete from usuarioa")
Starter.skmt.ExecNonQuery("delete from VERSION")
@@ -242,6 +273,7 @@ Sub Entrar_Click
End Sub
Sub JobDone(Job As HttpJob)
Log("JobDone MainPage: " & Job.Success)
If Job.Success = False Then
ToastMessageShow("Error: " & Job.ErrorMessage, True)
Else
@@ -309,7 +341,10 @@ Private Sub i_engrane_Click
Subs.centraBoton(b_server, p_serverList.Width)
lv_server.Clear
lv_server.AddSingleLine("http://keymon.lat:1782")
If user.Text = "KMTS1" Then lv_server.AddSingleLine("http://11.0.0.222:1782")
If user.Text = "KMTS1" Then
lv_server.AddSingleLine("http://11.0.0.222:1782")
p_ruteo.Visible = True
End If
' l_server.Text = Starter.server
et_server.Text = server
Subs.panelVisible(p_appUpdate, 0, 0)
@@ -391,4 +426,26 @@ End Sub
'appUpdater - Ocultamos el anuncio de que se esta descargando el nuevo apk
Sub ocultaProgreso
ProgressDialogHide
End Sub
'Private Sub lv_algoritmo_ItemClick (Position As Int, Value As Object)
' Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("ALGORITMO_RUTEO"))
' Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("ALGORITMO_RUTEO",Value))
'End Sub
'
'Private Sub lv_matriz_ItemClick (Position As Int, Value As Object)
' Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("MATRIZ_RUTEO"))
' Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MATRIZ_RUTEO",Value))
'End Sub
Private Sub s_algoritmo_ItemClick (Position As Int, Value As Object)
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("ALGORITMO_RUTEO"))
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("ALGORITMO_RUTEO",Value))
Log(Value)
End Sub
Private Sub s_matriz_ItemClick (Position As Int, Value As Object)
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("MATRIZ_RUTEO"))
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MATRIZ_RUTEO",Value))
Log(Value)
End Sub

View File

@@ -120,7 +120,7 @@ Sub B4XPage_Appear
Subs.centraPanel(p_principal, Root.Width)
Starter.skmt.Initialize(Starter.ruta,"kmt.db", True)
reqManager.Initialize(Me, B4XPages.MainPage.SERVER)
c=Starter.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_BCREDITO from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
c=Starter.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_BCREDITO, CAT_CL_IDALMACEN from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
s=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
s.Position=0
c.Position=0
@@ -135,6 +135,7 @@ Sub B4XPage_Appear
la_cp.Text = c.GetString("CAT_CL_CP")
l_entre1.Text = c.GetString("CAT_CL_CALLE1")
l_entre2.Text = c.GetString("CAT_CL_CALLE2")
B4XPages.MainPage.almacen = c.GetString("CAT_CL_IDALMACEN")
If c.GetString("CAT_CL_ATIENDE1") <> Null And c.GetString("CAT_CL_ATIENDE1") <> "null" Then
l_atiende.Text = c.GetString("CAT_CL_ATIENDE1")
Else
@@ -216,8 +217,8 @@ Sub gest_Click
d.Close
Starter.skmt.ExecNonQuery("DELETE FROM NOVENTA WHERE NV_CLIENTE IN (select cuenta from cuentaa)")
Starter.skmt.ExecNonQuery2("INSERT INTO NOVENTA (NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON) VALUES(?,?,?,?,?,?,?) ", Array As Object (cuenta,sDate &" "& sTime, usuario, "ENTREGA","ENTREGA COMPLETA", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps))
Starter.skmt.ExecNonQuery2("INSERT INTO REPARTO_GEO (CLIENTE, USUARIO, FECHA_PUNTEO, LATITUD, LONGITUD, ALMACEN, RUTA_REPARTO, RUTA_PREV, FECHA_PREVENTA, TIPO,ENVIO) VALUES(?,?,?,?,?,?,?,?,?,?,0)",Array As String (la_cuenta.Text, usuario, sDate &" "&sTime, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps,B4XPages.MainPage.almacen,ruta,rutapre,fechaprev, "ENTREGADO"))
Starter.skmt.ExecNonQuery2("INSERT INTO NOVENTA (NV_CLIENTE, NV_FECHA, NV_USER, NV_MOTIVO, NV_COMM, NV_LAT, NV_LON, NV_IDALMACEN) VALUES (?,?,?,?,?,?,?,?) ", Array As Object (cuenta,sDate &" "& sTime, usuario, "ENTREGA","ENTREGA COMPLETA", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, B4XPages.MainPage.almacen))
Starter.skmt.ExecNonQuery2("INSERT INTO REPARTO_GEO (CLIENTE, USUARIO, FECHA_PUNTEO, LATITUD, LONGITUD, ALMACEN, RUTA_REPARTO, RUTA_PREV, FECHA_PREVENTA, TIPO,ENVIO) VALUES(?,?,?,?,?,?,?,?,?,?,0)",Array As String (la_cuenta.Text, usuario, sDate &" "&sTime, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, B4XPages.MainPage.almacen, ruta, rutapre, fechaprev, "ENTREGADO"))
Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa) ")
Starter.skmt.ExecNonQuery("update HIST_VENTAS SET HVD_ESTATUS = 1 WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)")
mandaPendientesreparto
@@ -454,29 +455,27 @@ Sub B_PASO2_Click
B4XPages.ShowPage("Principal")
End Sub
Sub mandaPendientesreparto
c=Starter.skmt.ExecQuery("SELECT CLIENTE, USUARIO, FECHA_PUNTEO, LATITUD, LONGITUD, ALMACEN, RUTA_REPARTO, RUTA_PREV, FECHA_PREVENTA, MOTIVO, COMENTARIO,TIPO FROM REPARTO_GEO where ENVIO <> 1")
Log($"REPARTO_Cliente 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_REPARTO_GUNA2"
cmd.Parameters = Array As Object(c.GetString("CLIENTE"), c.GetString("USUARIO"), c.GetString("FECHA_PUNTEO"), c.GetString("LATITUD"), c.GetString("LONGITUD"), c.GetString("ALMACEN"), c.GetString("RUTA_REPARTO"), c.GetString("RUTA_PREV"), c.GetString("FECHA_PREVENTA"), c.GetString("MOTIVO"), c.GetString("COMENTARIO"),c.GetString("TIPO"))
reqManager.ExecuteCommand(cmd , $"ins_REPARTOPendientes_head_${c.GetString("CLIENTE")}"$)
Next
End If
c.Close
' c=Starter.skmt.ExecQuery("SELECT CLIENTE, USUARIO, FECHA_PUNTEO, LATITUD, LONGITUD, ALMACEN, RUTA_REPARTO, RUTA_PREV, FECHA_PREVENTA, MOTIVO, COMENTARIO,TIPO FROM REPARTO_GEO where ENVIO <> 1")
' Log($"REPARTO_Cliente 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_REPARTO_GUNA2"
' cmd.Parameters = Array As Object(c.GetString("CLIENTE"), c.GetString("USUARIO"), c.GetString("FECHA_PUNTEO"), c.GetString("LATITUD"), c.GetString("LONGITUD"), c.GetString("ALMACEN"), c.GetString("RUTA_REPARTO"), c.GetString("RUTA_PREV"), c.GetString("FECHA_PREVENTA"), c.GetString("MOTIVO"), c.GetString("COMENTARIO"),c.GetString("TIPO"))
' reqManager.ExecuteCommand(cmd , $"ins_REPARTOPendientes_head_${c.GetString("CLIENTE")}"$)
'
' Next
' End If
' c.Close
LogColor("******* MANDAPENDIENTES COMENTADO POR PRUEBAS ******", Colors.red)
End Sub
Sub JobDone(Job As HttpJob)
Log(Job.Success)
Log("JobDone Cliente: " & Job.Success)
If Job.Success = False Then
' ToastMessageShow("Error: " & Job.ErrorMessage, True)
Else

View File

@@ -35,6 +35,7 @@ Sub Class_Globals
Private b_limpiarRuta As Button
Dim secuenciao As Int
Dim SECIENDA As String
Dim rutaGenerada As Boolean = False
End Sub
'You can add more parameters here.
@@ -84,7 +85,7 @@ Sub B4XPage_Appear
' Private t1 As Map
ListView1.Clear
Dim cs, cs2 As CSBuilder
entro = 3
' entro = 3
' Log("Generamos ListView1 en Activity_Resume")
For i=0 To c.RowCount -1 'Generamos el listView con la lista ordenada.
c.Position=i
@@ -92,7 +93,7 @@ Sub B4XPage_Appear
cs2.Initialize
' t1 = Starter.waypointsOrdered.Get(k)
' c.GetString("codigo")
Log(c.GetString("indice"))
' Log(c.GetString("indice"))
ListView1.AddTwoLines(cs.Color(Colors.RGB(100,149,237)).Append(c.GetString("codigo")).PopAll, cs2.append(c.GetString("CAT_CL_NOMBRE")).Color(Colors.RGB(100,149,237)).Append(" Calle: ").Pop.Append(c.GetString("CAT_CL_CALLE").Trim & " " & c.GetString("CAT_CL_NOEXT")).PopAll )
Next
Else
@@ -107,11 +108,12 @@ Sub B4XPage_Appear
Subs.centraEtiqueta(lfila, Root.Width)
b_getRutaInfo.Visible = True
b_getRutaInfo.BringToFront
laRuta = ""
End Sub
Sub ListView1_ItemClick (Position As Int, Value As Object)
' Log($"Entro= ${entro}"$)
Log($"Entro= ${entro}, Cliente: ${Value}"$)
ListView1.Clear
Sleep(50)
Subs.SetDivider(ListView1, Colors.LightGray, 2)
@@ -121,11 +123,16 @@ Sub ListView1_ItemClick (Position As Int, Value As Object)
ListView1.Top = lv1Top + 100
End If
l_rutaInfo.Visible = False
b_GetDirs.Visible = False
' b_GetDirs.Visible = False
If Not(Value.As(String).StartsWith("Ruta:")) Then 'Si el valor del clic no es la ruta, entonces es el cliente y lo mandamos a el.
entro = "3"
Log("Es cliente")
End If
If entro = "2" Then
b_GetDirs.Left = Root.Width - b_GetDirs.Width - 10dip
b_GetDirs.Visible = True
img_getDirs.Visible = True
b_getRutaInfo.Visible = False
' b_getRutaInfo.Visible = False
Private lrt As String
lrt = Value
laRuta = lrt.SubString(6) 'Quitamos el texto "Ruta: " para obtener el numero de la ruta.
@@ -147,9 +154,14 @@ Sub ListView1_ItemClick (Position As Int, Value As Object)
distOrderedMap.Initialize
If c2.RowCount>0 Then
For i=0 To c2.RowCount -1 'Generamos mapa de clientes
c2.Position=i
thisLoc.Latitude = c2.GetString("CAT_CL_LAT")
thisLoc.Longitude = c2.GetString("CAT_CL_LONG")
c2.Position = i
If c2.GetString("CAT_CL_LAT") = "null" Then
thisLoc.Latitude = 0
thisLoc.Longitude = 0
Else
thisLoc.Latitude = c2.GetString("CAT_CL_LAT")
thisLoc.Longitude = c2.GetString("CAT_CL_LONG")
End If
' Log(Tracker.UUGCoords)
Private distancia As Int = Tracker.UUGCoords.DistanceTo(thisLoc) 'Calculamos la distancia de la posicion ACTUAL a la tienda.
Private esteCliente As Map = CreateMap("distancia": distancia, "ubicacion": thisLoc.Longitude&","&thisLoc.Latitude, "codigo": c2.GetString("CAT_CL_CODIGO"), "nomDirDist": $"${c2.GetString("CAT_CL_NOMBRE")} CALLE: ${c2.GetString("CAT_CL_CALLE")} ${CRLF}Distancia: $1.1{(distancia/1000)} kms"$)
@@ -410,6 +422,7 @@ Sub traeRutaDia(aVisitar As B4XOrderedMap)
Private r As Int = 1
Private r1, wps As Map
Starter.skmt.ExecNonQuery("delete from waypoints")
Starter.skmt.ExecNonQuery("update kmt_info set secuencia = '150'") ' Ponemos la secuencia en 150 (que es el ultimo globito que tenemos) y luego en secuencia ponemos el orden segun el ruteo.
For Each k As Object In clientesMapaO.Keys 'Guardamos en la BD el orden de los waypoints para luego generar el listview.
r1 = clientesMapaO.Get(k)
r1.Get("codigo")
@@ -418,6 +431,18 @@ Sub traeRutaDia(aVisitar As B4XOrderedMap)
Starter.skmt.ExecNonQuery2("insert into waypoints values (?,?)", Array As Object(r1.Get("codigo"), wps.get("waypoint_index")))
r = r + 1
Next
Private no As Cursor = Starter.skmt.ExecQuery("select * from waypoints order by indice") ' Traemos el orden segun el ruteo dinamico.
If no.RowCount > 0 Then
Private nuevaSec As Int = 1
For i = 0 To no.RowCount - 1
no.Position = i
Starter.skmt.ExecNonQuery($"update kmt_info set secuencia = '${nuevaSec}' where cat_cl_codigo = '${no.Getstring("codigo")}'"$) ' Ponemos en la secuencia el orden segun el resultado del ruteo.
' Log($"${no.Getstring("codigo")},${no.getstring("indice")}, ${nuevaSec}"$)
nuevaSec = nuevaSec + 1
Next
End If
ListView1.Clear
Sleep(100)
Dim label2 As Label
@@ -430,7 +455,7 @@ Sub traeRutaDia(aVisitar As B4XOrderedMap)
Log("Generamos ListView1 en traeRutaDia")
'Traemos las visitas restantes ordenadas por el indice de waypoints (este indice nos indica el orden en la ruta calculada).
c=Starter.skmt.ExecQuery("select codigo, indice, CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_NOEXT from waypoints inner join kmt_info on waypoints.codigo = kmt_info.CAT_CL_CODIGO where gestion = 0 order by indice")
c=Starter.skmt.ExecQuery("select codigo, indice, CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_NOEXT from waypoints inner join kmt_info on waypoints.codigo = kmt_info.CAT_CL_CODIGO where gestion = 0 order by indice")
If c.RowCount > 0 Then
For i=0 To c.RowCount -1 'Generamos el listView con la lista ordenada.
secuenciao = i + 1
@@ -438,7 +463,7 @@ Sub traeRutaDia(aVisitar As B4XOrderedMap)
cs.Initialize
cs2.Initialize
ListView1.AddTwoLines(cs.Color(Colors.RGB(100,149,237)).Append(c.GetString("codigo")).PopAll, cs2.append(c.GetString("CAT_CL_NOMBRE")).Color(Colors.RGB(100,149,237)).Append(" Calle: ").Pop.Append(c.GetString("CAT_CL_CALLE").Trim & " " & c.GetString("CAT_CL_NOEXT")).PopAll )
Starter.skmt.ExecNonQuery2("UPDATE kmt_info SET SECUENCIA = ? where CAT_CL_NOMBRE = ? ", Array As String(secuenciao, c.GetString("CAT_CL_NOMBRE")))
' Starter.skmt.ExecNonQuery2("UPDATE kmt_info SET SECUENCIA = ? where CAT_CL_NOMBRE = ? ", Array As String(secuenciao, c.GetString("CAT_CL_NOMBRE")))
Next
End If
c.Close
@@ -550,7 +575,8 @@ End Sub
'Traemos la ruta de visitas via el API de OSRM usando el sub "traeRutaDia(traeTodosAVisitar)".
Private Sub b_getRutaInfo_Click
traeRutaDia(traeTodosAVisitar)
' traeRutaDia(traeTodosAVisitar)
caculaRutaGPS(todosAVisitar)
End Sub
'Mostramos u ocultamos el boton para borrar los waypoints de la ruta.
@@ -567,4 +593,128 @@ Private Sub b_limpiarRuta_Click
Starter.skmt.ExecNonQuery("delete from waypoints")
b_limpiarRuta.Visible = False
B4XPage_Appear
End Sub
End Sub
Sub caculaRutaGPS(coords As List)
Log("caculaRutaGPS")
Private tmpList As List
Dim cs, cs2 As CSBuilder
tmpList.Initialize
tmpList.AddAll(Array As String("ACTUAL", Tracker.UUGCoords.Longitude, Tracker.UUGCoords.Latitude)) ' Ponemos la ubicacion actual en tmpList.
Log($"STARTER.INICIOMAPA = ${Starter.iniciomapa}"$)
If Starter.inicioMapa Then
tmpList.Initialize
tmpList.AddAll(Array As String("ACTUAL", Starter.inicioLon, Starter.inicioLat)) ' Ponemos la ubicacion de la tienda seleccionada en tmpList.
Starter.inicioMapa = False
Starter.inicioLon = 0
Starter.inicioLat = 0
End If
Log($">>>> TMPLIST = ${tmpList}"$)
coords.InsertAt(0,tmpList) ' Agregamos tmpList (ubicacion actual) al principio de la lista de coordenadas, para que ese sea el inicio de la ruta.
Log("=================================")
Log(coords)
Private coordsStr As String = ""
For Each tienda As List In coords
' Log(tienda)
If coordsStr = "" Then
coordsStr = $"${tienda.get(0)},${tienda.get(1)},${tienda.get(2)}"$
Else
coordsStr = $"${coordsStr};${tienda.get(0)},${tienda.get(1)},${tienda.get(2)}"$
End If
Next
Log(coordsStr)
ProgressDialogShow2("Calculando distancia y tiempo, un momento por favor.", False)
Dim j As HttpJob
j.Initialize("trip", Me) 'Calculamos el resto de la ruta.
j.Download($"http://keymon.lat:9002/ruteador?algoritmo=${Subs.traeAlgoritmoRuteo}&m=${Subs.traeMatrizRuteo}&r=${Subs.traeRutaReparto}&a=${Subs.traeAlmacen}&f=CEDIS,${Starter.cedisLocation.Longitude},${Starter.cedisLocation.Latitude}&c=${coordsStr}"$)
Log($"http://keymon.lat:9002/ruteador?algoritmo=${Subs.traeAlgoritmoRuteo}&m=${Subs.traeMatrizRuteo}&r=${Subs.traeRutaReparto}&a=${Subs.traeAlmacen}&f=CEDIS,${Starter.cedisLocation.Longitude},${Starter.cedisLocation.Latitude}&c=${coordsStr}"$)
Wait For (j) JobDone(j As HttpJob)
If j.Success Then
Dim jp As JSONParser
jp.Initialize(j.GetString)
Dim m As Map = jp.NextObject
Log(m)
If m.Get("code") = "OK" Then
Log("===== OK")
rutaGenerada = True
Dim puntos As Int = m.Get("puntos")
Private coords As List = m.Get("coords")
Private duration As String = m.Get("duration")
Private distance As String = m.Get("distance")
Private mensaje As String = m.Get("mensaje")
Starter.skmt.ExecNonQuery("delete from waypoints")
Starter.skmt.ExecNonQuery("update kmt_info set SECUENCIA = 150")
' Log(">>> " & coords.Size)
For i = 0 To coords.Size - 1
Private ti As Map = coords.Get(i)
' Starter.skmt.ExecNonQuery($"update kmt_info set SECUENCIA = ${ti.Get("pos")} where CAT_CL_CODIGO = '${ti.Get("id").As(String).SubString(1)}'"$) ' Ponemos la secuencia con el orden del ruteo para poder verla en el mapa.
Starter.skmt.ExecNonQuery($"insert into waypoints (codigo, indice) values ('${ti.Get("id").As(String).SubString(1)}', '${ti.Get("pos")}')"$)
Next
Private no As Cursor = Starter.skmt.ExecQuery("select * from waypoints order by indice") ' Traemos el orden segun el ruteo dinamico.
Log("ROWCOUNT: " & no.RowCount)
If no.RowCount > 0 Then
Private nuevaSec As Int = 1
For i = 0 To no.RowCount - 1
no.Position = i
Starter.skmt.ExecNonQuery($"update kmt_info set secuencia = '${nuevaSec}' where cat_cl_codigo = '${no.Getstring("codigo")}'"$) ' Ponemos en la secuencia el orden segun el resultado del ruteo.
Log($"${no.Getstring("codigo")},${no.getstring("indice")}, ${nuevaSec}"$)
nuevaSec = nuevaSec + 1
Next
End If
c = Starter.skmt.ExecQuery("select codigo, indice, CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_NOEXT from waypoints inner join kmt_info on waypoints.codigo = kmt_info.CAT_CL_CODIGO where gestion = 0 order by indice")
If c.RowCount > 0 Then 'Ya hay waypoints en la base de datos.
c.Position = 0
conMapa = True
ListView1.Clear
Dim cs, cs2 As CSBuilder
entro = 3
For i=0 To c.RowCount -1 'Generamos el listView con la lista ordenada.
c.Position = i
cs.Initialize
cs2.Initialize
ListView1.AddTwoLines(cs.Color(Colors.RGB(100,149,237)).Append(c.GetString("codigo")).PopAll, cs2.append(c.GetString("CAT_CL_NOMBRE")).Color(Colors.RGB(100,149,237)).Append(" Calle: ").Pop.Append(c.GetString("CAT_CL_CALLE").Trim & " " & c.GetString("CAT_CL_NOEXT")).PopAll )
Next
End If
c.Close
Log($"Distancia total: $1.1{distance/1000} kms, tiempo aprox: $1.1{duration/60} mins. ($1.1{duration/60/60} hrs)"$)
l_rutaInfo.Text = $"Distancia: $1.1{distance/1000} kms, tiempo aprox: $1.1{duration/60/60} hrs${CRLF}Visitas restantes: ${puntos - 1}"$
l_rutaInfo.Width = Root.Width * 0.9
Subs.centraEtiqueta(l_rutaInfo, Root.Width)
l_rutaInfo.Visible = True
l_rutaInfo.BringToFront
ListView1.Top = lv1Top + 100
End If
Else
LogColor("**************** Error! ******************", Colors.red)
End If
j.Release
ProgressDialogHide
End Sub
'Regresa lista de los clientes a visitar y sus coordenadas.
Sub todosAVisitar As List
Log("|" & laRuta &"|")
Log(entro)
Private sqlDeRuta As String = ""
' If entro = 3 Then sqlDeRuta = $"and CAT_CL_RUTA = '${laRuta}'"$
If laRuta <> "" Then sqlDeRuta = $"and CAT_CL_RUTA = '${laRuta}'"$
Private aVisitar, tmpList As List
aVisitar.Initialize
Private coords As ResultSet = Starter.skmt.ExecQuery($"select distinct CAT_CL_CODIGO, CAT_CL_LAT, CAT_CL_LONG from kmt_info where gestion = 0 ${sqlDeRuta}"$)
Log("ROWCOUNT 2: " & coords.RowCount)
Do While coords.NextRow
tmpList.Initialize
tmpList.AddAll(Array As String(coords.GetString("CAT_CL_CODIGO"), coords.GetString("CAT_CL_LONG"), coords.GetString("CAT_CL_LAT")))
aVisitar.Add(tmpList)
Loop
Log(aVisitar)
Return aVisitar
End Sub
Private Sub b_GetDirs_longClick
caculaRutaGPS(todosAVisitar)
End Sub

View File

@@ -75,7 +75,7 @@ Sub B4XPage_Appear
Existe = C.GetString("EXISTE")
C.Close
' c=Starter.skmt.ExecQuery("select distinct hist_ventas.hvd_num_registro, HIST_VENTAS.HVD_CLIENTE, HIST_VENTAS.HVD_PRONOMBRE, HIST_VENTAS.HVD_PROID, HIST_VENTAS.HVD_CANT, HIST_VENTAS2.HVD_CANT as HVD_CANT2, HIST_VENTAS.HVD_COSTO_TOT, HIST_VENTAS.HVD_CODPROMO from HIST_VENTAS inner join HIST_VENTAS2 on HIST_VENTAS.HVD_PROID = HIST_VENTAS2.HVD_PROID and HIST_VENTAS.HVD_CLIENTE = HIST_VENTAS2.HVD_CLIENTE WHERE HIST_VENTAS.HVD_CLIENTE IN (Select CUENTA from cuentaa) and HIST_VENTAS.HVD_RECHAZO = 0 order by HIST_VENTAS.HVD_CODPROMO desc, HIST_VENTAS.HVD_PRONOMBRE asc")
c=Starter.skmt.ExecQuery("select hvd_num_registro, HVD_CLIENTE, HVD_PRONOMBRE, HVD_PROID, HVD_CANT, HVD_COSTO_TOT, HVD_CODPROMO from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) and HVD_RECHAZO = 0 and hvd_cant > 0 order by HVD_CODPROMO desc, HVD_PRONOMBRE asc")
c=Starter.skmt.ExecQuery("select hvd_num_registro, HVD_CLIENTE, HVD_PRONOMBRE, HVD_PROID, HVD_IDALMACEN, HVD_CANT, HVD_COSTO_TOT, HVD_CODPROMO from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) and HVD_RECHAZO = 0 and hvd_cant > 0 order by HVD_CODPROMO desc, HVD_PRONOMBRE asc")
ListView1.Clear
clv_pedido.Clear
Subs.SetDivider(ListView1, Colors.LightGray, 2)
@@ -111,7 +111,7 @@ Sub B4XPage_Appear
End If
' Log($"Agregamos prod a lista1 | ${c.GetString("HVD_CANT")} - ${c.GetString("HVD_CANT2")}"$) 'HVD_CANT2 es la original de la orden.
' ListView1.AddTwoLines(c.GetString("HVD_PRONOMBRE"),"Cantidad #"& c.GetString("HVD_CANT")& " SubTotal $"& c.GetString("HVD_COSTO_TOT"))
clv_pedido.Add(CreateListItem(c.GetString("HVD_PRONOMBRE"), Subs.traePrecio(c.GetString("HVD_PROID"), c.GetString("HVD_CODPROMO")), c.GetString("HVD_CANT"), 0, clv_pedido.AsView.Width, 50dip, bmp, c.GetString("HVD_PROID"), bgColor, textColor, c.GetString("HVD_CODPROMO"),Subs.traeCliente), c.GetString("HVD_PRONOMBRE"))
clv_pedido.Add(CreateListItem(c.GetString("HVD_PRONOMBRE"), Subs.traePrecio(c.GetString("HVD_PROID"), c.GetString("HVD_CODPROMO")), c.GetString("HVD_CANT"), 0, clv_pedido.AsView.Width, 50dip, bmp, c.GetString("HVD_PROID"), bgColor, textColor, c.GetString("HVD_CODPROMO"),Subs.traeCliente, c.GetString("HVD_IDALMACEN")), c.GetString("HVD_PRONOMBRE"))
Next
' cuentaProds("")
End If
@@ -135,7 +135,7 @@ Sub B4XPage_Appear
cantCO = Subs.traeCantidadRechazada(vc.GetString("REP_CLI_ORIG"), vc.GetString("REP_PRODID"))
' Log($"${vc.GetString("REP_CLI_ORIG")}, ${vc.GetString("REP_CLIENTE")}, ${vc.GetString("REP_PRODID")}, ${vc.GetString("REP_PRONOMBRE")}, ${vc.GetString("REP_RECHAZO")}, ${vc.GetString("REP_CANT")}, ${vc.GetString("REP_PRECIO")}, ${cantCO}, ${cco.GetString("REP_CANT")}, ${vc.GetString("REP_CANT")}"$)
clv_pedido.Add(CreateListItem(vc.GetString("REP_PRONOMBRE"), Subs.traePrecio(vc.GetString("REP_PRODID"), 1), vc.GetString("REP_CANT"), cantCO, clv_pedido.AsView.Width, 50dip, bmp, vc.GetString("REP_PRODID"), bgColor, textColor, 1, vc.GetString("REP_CLI_ORIG")), vc.GetString("REP_PRONOMBRE"))
clv_pedido.Add(CreateListItem(vc.GetString("REP_PRONOMBRE"), Subs.traePrecio(vc.GetString("REP_PRODID"), 1), vc.GetString("REP_CANT"), cantCO, clv_pedido.AsView.Width, 50dip, bmp, vc.GetString("REP_PRODID"), bgColor, textColor, 1, vc.GetString("REP_CLI_ORIG"), c.GetString("HVD_IDALMACEN")), vc.GetString("REP_PRONOMBRE"))
Next
cco.Close
vc.Close
@@ -314,7 +314,7 @@ End Sub
'***************** PARA EL MAS/MENOS *************************************
'****************************************************************************
Sub CreateListItem(Text As String, precioU As String, inv As Int, inv2 As Int, Width As Int, Height As Int, img As Bitmap, prodId As String, bc As Int, tc As Int, promo As String, cliente_original As String) As Panel
Sub CreateListItem(Text As String, precioU As String, inv As Int, inv2 As Int, Width As Int, Height As Int, img As Bitmap, prodId As String, bc As Int, tc As Int, promo As String, cliente_original As String, idAlmacen As String) As Panel
Dim p As B4XView = xui.CreatePanel("")
Private cs As CSBuilder
cs.Initialize
@@ -329,8 +329,8 @@ Sub CreateListItem(Text As String, precioU As String, inv As Int, inv2 As Int, W
End If
l_prodX.Tag = $"ID: ${prodId}${CRLF}${Text}${CRLF}Precio: $$1.2{precioU}${CRLF}Inv: ${inv} pzs"$
' l_pCant.Text = 0
l_pCant.Tag = Round2(precioU,2)&"|"&inv&"|"&prodId&"|"&promo&"|"&inv2&"|"&cliente_original
et_pCant.Tag = Round2(precioU,2)&"|"&inv&"|"&prodId&"|"&promo&"|"&inv2&"|"&cliente_original
l_pCant.Tag = Round2(precioU,2)&"|"&inv&"|"&prodId&"|"&promo&"|"&inv2&"|"&cliente_original&"|"&idAlmacen
et_pCant.Tag = Round2(precioU,2)&"|"&inv&"|"&prodId&"|"&promo&"|"&inv2&"|"&cliente_original&"|"&idAlmacen
p_prods.Tag = l_pCant.tag
' Log($"Ponemos la cant en ${inv}"$)
l_pCant.Text = inv
@@ -380,7 +380,7 @@ Sub b_prodMenos_Click
' L_CANT.Text = L_CANT.Text - 1
' End If
' b_guardar.Visible = True
Subs.prodRechazo(esteTag.Get(5), esteTag.Get(2))
Subs.prodRechazo(esteTag.Get(5), esteTag.Get(2), esteTag.Get(6))
Private cym As Map = Subs.traemosCantYMonto(clv_pedido)
L_CANT.Text = cym.Get("cantidad")
L_TOTAL.Text = Round2(cym.Get("monto"), 2)
@@ -411,7 +411,7 @@ Sub b_prodMas_Click
laCant.Text = $"$1.0{laCant.Text + 1}"$
Starter.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen - 1 where cat_gp_id = ?", Array As Object(esteTag.Get(2)))
Subs.prodVenta(esteTag.Get(5), esteTag.Get(2))
Subs.prodVenta(esteTag.Get(5), esteTag.Get(2), esteTag.Get(6))
Private cym As Map = Subs.traemosCantYMonto(clv_pedido)
L_CANT.Text = cym.Get("cantidad")
L_TOTAL.Text = Round2(cym.Get("monto"), 2)
@@ -455,6 +455,7 @@ Sub cuentaProds(accion As String)
Private esteCliente = Subs.traeCliente
Private esteProdNombre = Subs.traeNombre(esteProd)
Private esteClienteOriginal As Int = esteTag.Get(5)
Private esteIdAlmacen As String = esteTag.Get(6)
Private fechaReparto As String = Subs.traeFechaReparto
Private maxProds = Subs.traeMaxCantidad(esteTag.Get(5), esteTag.Get(2))
@@ -479,8 +480,8 @@ Sub cuentaProds(accion As String)
' Log($"HayRechazo=${rr.GetString("hayRechazo")}"$)
If rr.GetString("hayRechazo") = 0 Then
Log("INSERTAMOS EN REPARTO")
Starter.skmt.ExecNonQuery2("insert into reparto(REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA, REP_RECHAZO, REP_PRODID, REP_PRECIO, REP_CLI_ORIG) VALUES (?,?,?,?,?,1,?,?,?) ", Array As String(esteCliente, esteProdNombre, 0, estePrecio, fechaReparto, esteProd, estePrecio, esteCliente))
Starter.skmt.ExecNonQuery2("insert into reparto(REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA, REP_RECHAZO, REP_PRODID, REP_PRECIO, REP_CLI_ORIG) VALUES (?,?,?,?,?,0,?,?,?) ", Array As String(esteCliente, esteProdNombre, cantRechazada, 0, fechaReparto, esteProd, estePrecio, esteCliente))
Starter.skmt.ExecNonQuery2("insert into reparto(REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA, REP_RECHAZO, REP_PRODID, REP_PRECIO, REP_CLI_ORIG, REP_IDALMACEN) VALUES (?,?,?,?,?,1,?,?,?,?) ", Array As String(esteCliente, esteProdNombre, 0, estePrecio, fechaReparto, esteProd, estePrecio, esteCliente, esteIdAlmacen))
Starter.skmt.ExecNonQuery2("insert into reparto(REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA, REP_RECHAZO, REP_PRODID, REP_PRECIO, REP_CLI_ORIG, REP_IDALMACEN) VALUES (?,?,?,?,?,0,?,?,?,?) ", Array As String(esteCliente, esteProdNombre, cantRechazada, 0, fechaReparto, esteProd, estePrecio, esteCliente, esteIdAlmacen))
Else if esteClienteOriginal = "0" Then 'Actualizamos el rechazo en el cliente actual.
' Log($"Actualizamos REP_CANT=${cantRechazada}"$)
' Starter.skmt.ExecNonQuery($"update reparto set REP_CANT = '${cantRechazada}', REP_PRECIO = '${estePrecio}', REP_COSTO_TOT = '${estePrecio * cantRechazada}' where REP_CLIENTE in (Select CUENTA from cuentaa) and REP_CLI_ORIG = '${esteClienteOriginal}' and REP_RECHAZO = 1 and REP_PRODID = '${esteProd}'"$)
@@ -494,7 +495,7 @@ Sub cuentaProds(accion As String)
' totalCompra = totalCompra + (esteTag.get(0) * cant1.text)
' Log($"Cant: ${cant1.Text}, Suma: ${totalCompra}"$)
Private m As Map
m=CreateMap("cant":cant1.Text, "cant2":esteTag.get(4), "precio":esteTag.get(0), "promo":esteTag.get(3), "nombre":Subs.traeNombre(esteTag.Get(2)), "cli_orig":esteTag.get(5))
m=CreateMap("cant":cant1.Text, "cant2":esteTag.get(4), "precio":esteTag.get(0), "promo":esteTag.get(3), "nombre":Subs.traeNombre(esteTag.Get(2)), "cli_orig":esteTag.get(5), "idAlmacen":esteTag.get(6))
' LogColor("PUT:" & esteTag.Get(2), Colors.Red)
prodsMap.Put(esteTag.Get(2), m)
End If
@@ -528,7 +529,7 @@ Sub cuentaProds(accion As String)
bgColor = Colors.White
End If
Log($"CLI: ${pr1.Get("nombre")}, ${newPrecio}, ${pr1.Get("cant")}, ${pr1.Get("cant2")}"$)
clv_pedido.Add(CreateListItem(pr1.Get("nombre"), newPrecio, pr1.Get("cant"), pr1.Get("cant2"), clv_pedido.AsView.Width, 50dip, bmp, pr, bgColor, textColor, newPromo, pr1.Get("cli_orig")), pr1.Get("nombre"))
clv_pedido.Add(CreateListItem(pr1.Get("nombre"), newPrecio, pr1.Get("cant"), pr1.Get("cant2"), clv_pedido.AsView.Width, 50dip, bmp, pr, bgColor, textColor, newPromo, pr1.Get("cli_orig"), pr1.Get("idAlmacen")), pr1.Get("nombre"))
reconstruirPedido = False
Next
promoABorrar = ""

View File

@@ -74,7 +74,7 @@ Sub B4XPage_Appear
Existe = C.GetString("EXISTE")
C.Close
' c=Starter.skmt.ExecQuery("select distinct hist_ventas.hvd_num_registro, HIST_VENTAS.HVD_CLIENTE, HIST_VENTAS.HVD_PRONOMBRE, HIST_VENTAS.HVD_PROID, HIST_VENTAS.HVD_CANT, HIST_VENTAS2.HVD_CANT as HVD_CANT2, HIST_VENTAS.HVD_COSTO_TOT, HIST_VENTAS.HVD_CODPROMO from HIST_VENTAS inner join HIST_VENTAS2 on HIST_VENTAS.HVD_PROID = HIST_VENTAS2.HVD_PROID and HIST_VENTAS.HVD_CLIENTE = HIST_VENTAS2.HVD_CLIENTE WHERE HIST_VENTAS.HVD_CLIENTE IN (Select CUENTA from cuentaa) and HIST_VENTAS.HVD_RECHAZO = 0 order by HIST_VENTAS.HVD_CODPROMO desc, HIST_VENTAS.HVD_PRONOMBRE asc")
c=Starter.skmt.ExecQuery("select hvd_num_registro, HVD_CLIENTE, HVD_PRONOMBRE, HVD_PROID, HVD_CANT, HVD_COSTO_TOT, HVD_CODPROMO from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) and HVD_RECHAZO = 0 and hvd_cant > 0 order by HVD_CODPROMO desc, HVD_PRONOMBRE asc")
c=Starter.skmt.ExecQuery("select hvd_num_registro, hvd_idalmacen, HVD_CLIENTE, HVD_PRONOMBRE, HVD_PROID, HVD_CANT, HVD_COSTO_TOT, HVD_CODPROMO from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) and HVD_RECHAZO = 0 and hvd_cant > 0 order by HVD_CODPROMO desc, HVD_PRONOMBRE asc")
ListView1.Clear
clv_pedido.Clear
Subs.SetDivider(ListView1, Colors.LightGray, 2)
@@ -110,7 +110,7 @@ Sub B4XPage_Appear
End If
' Log($"Agregamos prod a lista1 | ${c.GetString("HVD_CANT")} - ${c.GetString("HVD_CANT2")}"$) 'HVD_CANT2 es la original de la orden.
' ListView1.AddTwoLines(c.GetString("HVD_PRONOMBRE"),"Cantidad #"& c.GetString("HVD_CANT")& " SubTotal $"& c.GetString("HVD_COSTO_TOT"))
clv_pedido.Add(CreateListItem(c.GetString("HVD_PRONOMBRE"), Subs.traePrecio(c.GetString("HVD_PROID"), c.GetString("HVD_CODPROMO")), c.GetString("HVD_CANT"), 0, clv_pedido.AsView.Width, 50dip, bmp, c.GetString("HVD_PROID"), bgColor, textColor, c.GetString("HVD_CODPROMO"),Subs.traeCliente), c.GetString("HVD_PRONOMBRE"))
clv_pedido.Add(CreateListItem(c.GetString("HVD_PRONOMBRE"), Subs.traePrecio(c.GetString("HVD_PROID"), c.GetString("HVD_CODPROMO")), c.GetString("HVD_CANT"), 0, clv_pedido.AsView.Width, 50dip, bmp, c.GetString("HVD_PROID"), bgColor, textColor, c.GetString("HVD_CODPROMO"),Subs.traeCliente, c.GetString("HVD_IDALMACEN")), c.GetString("HVD_PRONOMBRE"))
Next
' cuentaProds("")
End If
@@ -134,7 +134,7 @@ Sub B4XPage_Appear
cantCO = Subs.traeCantidadRechazada(vc.GetString("REP_CLI_ORIG"), vc.GetString("REP_PRODID"))
' Log($"${vc.GetString("REP_CLI_ORIG")}, ${vc.GetString("REP_CLIENTE")}, ${vc.GetString("REP_PRODID")}, ${vc.GetString("REP_PRONOMBRE")}, ${vc.GetString("REP_RECHAZO")}, ${vc.GetString("REP_CANT")}, ${vc.GetString("REP_PRECIO")}, ${cantCO}, ${cco.GetString("REP_CANT")}, ${vc.GetString("REP_CANT")}"$)
clv_pedido.Add(CreateListItem(vc.GetString("REP_PRONOMBRE"), Subs.traePrecio(vc.GetString("REP_PRODID"), 1), vc.GetString("REP_CANT"), cantCO, clv_pedido.AsView.Width, 50dip, bmp, vc.GetString("REP_PRODID"), bgColor, textColor, 1, vc.GetString("REP_CLI_ORIG")), vc.GetString("REP_PRONOMBRE"))
clv_pedido.Add(CreateListItem(vc.GetString("REP_PRONOMBRE"), Subs.traePrecio(vc.GetString("REP_PRODID"), 1), vc.GetString("REP_CANT"), cantCO, clv_pedido.AsView.Width, 50dip, bmp, vc.GetString("REP_PRODID"), bgColor, textColor, 1, vc.GetString("REP_CLI_ORIG"), vc.GetString("REP_IDALMACEN")), vc.GetString("REP_PRONOMBRE"))
Next
cco.Close
vc.Close
@@ -313,7 +313,7 @@ End Sub
'***************** PARA EL MAS/MENOS *************************************
'****************************************************************************
Sub CreateListItem(Text As String, precioU As String, inv As Int, inv2 As Int, Width As Int, Height As Int, img As Bitmap, prodId As String, bc As Int, tc As Int, promo As String, cliente_original As String) As Panel
Sub CreateListItem(Text As String, precioU As String, inv As Int, inv2 As Int, Width As Int, Height As Int, img As Bitmap, prodId As String, bc As Int, tc As Int, promo As String, cliente_original As String, idAlmacen As String) As Panel
Dim p As B4XView = xui.CreatePanel("")
Private cs As CSBuilder
cs.Initialize
@@ -328,8 +328,8 @@ Sub CreateListItem(Text As String, precioU As String, inv As Int, inv2 As Int, W
End If
l_prodX.Tag = $"ID: ${prodId}${CRLF}${Text}${CRLF}Precio: $$1.2{precioU}${CRLF}Inv: ${inv} pzs"$
' l_pCant.Text = 0
l_pCant.Tag = Round2(precioU,2)&"|"&inv&"|"&prodId&"|"&promo&"|"&inv2&"|"&cliente_original
et_pCant.Tag = Round2(precioU,2)&"|"&inv&"|"&prodId&"|"&promo&"|"&inv2&"|"&cliente_original
l_pCant.Tag = Round2(precioU,2)&"|"&inv&"|"&prodId&"|"&promo&"|"&inv2&"|"&cliente_original&"|"&idAlmacen
et_pCant.Tag = Round2(precioU,2)&"|"&inv&"|"&prodId&"|"&promo&"|"&inv2&"|"&cliente_original&"|"&idAlmacen
p_prods.Tag = l_pCant.tag
' Log($"Ponemos la cant en ${inv}"$)
l_pCant.Text = inv
@@ -379,7 +379,7 @@ Sub b_prodMenos_Click
' L_CANT.Text = L_CANT.Text - 1
' End If
' b_guardar.Visible = True
Subs.prodRechazo(esteTag.Get(5), esteTag.Get(2))
Subs.prodRechazo(esteTag.Get(5), esteTag.Get(2), esteTag.Get(6))
Private cym As Map = Subs.traemosCantYMonto(clv_pedido)
L_CANT.Text = cym.Get("cantidad")
L_TOTAL.Text = Round2(cym.Get("monto"), 2)
@@ -401,7 +401,7 @@ Sub b_prodMas_Click
Log("LC_TEXT:"&laCant.Text&"|LC_TAG:"&laCant.Tag&"|ET:"&esteTag)
If laCant.Text = "" Then laCant.Text = 0
Private maxProds as string = esteTag.Get(1) + esteTag.Get(4) 'Prods disponibles + prods comprados
Private maxProds As String = esteTag.Get(1) + esteTag.Get(4) 'Prods disponibles + prods comprados
LogColor($"++++++++++++++++++++++++++ ${esteTag}"$, Colors.Green)
' Log(esteTag.get(4))
@@ -409,7 +409,7 @@ Sub b_prodMas_Click
Log($"NuevaCant = ${laCant.Text + 1}"$)
laCant.Text = $"$1.0{laCant.Text + 1}"$
Starter.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen - 1 where cat_gp_id = ?", Array As Object(esteTag.Get(2)))
Subs.prodVenta(esteTag.Get(5), esteTag.Get(2))
Subs.prodVenta(esteTag.Get(5), esteTag.Get(2), esteTag.Get(6))
Private cym As Map = Subs.traemosCantYMonto(clv_pedido)
L_CANT.Text = cym.Get("cantidad")
L_TOTAL.Text = Round2(cym.Get("monto"), 2)
@@ -453,6 +453,7 @@ Log("*******************************************************")
Private esteCliente = Subs.traeCliente
Private esteProdNombre = Subs.traeNombre(esteProd)
Private esteClienteOriginal As Int = esteTag.Get(5)
Private esteIdAlmacen As String = esteTag.Get(6)
Private fechaReparto As String = Subs.traeFechaReparto
Private maxProds = Subs.traeMaxCantidad(esteTag.Get(5), esteTag.Get(2))
@@ -477,8 +478,8 @@ Log("*******************************************************")
' Log($"HayRechazo=${rr.GetString("hayRechazo")}"$)
If rr.GetString("hayRechazo") = 0 Then
Log("INSERTAMOS EN REPARTO")
Starter.skmt.ExecNonQuery2("insert into reparto(REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA, REP_RECHAZO, REP_PRODID, REP_PRECIO, REP_CLI_ORIG) VALUES (?,?,?,?,?,1,?,?,?) ", Array As String(esteCliente, esteProdNombre, 0, estePrecio, fechaReparto, esteProd, estePrecio, esteCliente))
Starter.skmt.ExecNonQuery2("insert into reparto(REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA, REP_RECHAZO, REP_PRODID, REP_PRECIO, REP_CLI_ORIG) VALUES (?,?,?,?,?,0,?,?,?) ", Array As String(esteCliente, esteProdNombre, cantRechazada, 0, fechaReparto, esteProd, estePrecio, esteCliente))
Starter.skmt.ExecNonQuery2("insert into reparto(REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA, REP_RECHAZO, REP_PRODID, REP_PRECIO, REP_CLI_ORIG, REP_IDALMACEN) VALUES (?,?,?,?,?,1,?,?,?,?) ", Array As String(esteCliente, esteProdNombre, 0, estePrecio, fechaReparto, esteProd, estePrecio, esteCliente, esteIdAlmacen))
Starter.skmt.ExecNonQuery2("insert into reparto(REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA, REP_RECHAZO, REP_PRODID, REP_PRECIO, REP_CLI_ORIG, REP_IDALMACEN) VALUES (?,?,?,?,?,0,?,?,?,?) ", Array As String(esteCliente, esteProdNombre, cantRechazada, 0, fechaReparto, esteProd, estePrecio, esteCliente, esteIdAlmacen))
Else if esteClienteOriginal = "0" Then 'Actualizamos el rechazo en el cliente actual.
' Log($"Actualizamos REP_CANT=${cantRechazada}"$)
' Starter.skmt.ExecNonQuery($"update reparto set REP_CANT = '${cantRechazada}', REP_PRECIO = '${estePrecio}', REP_COSTO_TOT = '${estePrecio * cantRechazada}' where REP_CLIENTE in (Select CUENTA from cuentaa) and REP_CLI_ORIG = '${esteClienteOriginal}' and REP_RECHAZO = 1 and REP_PRODID = '${esteProd}'"$)
@@ -492,7 +493,7 @@ Log("*******************************************************")
' totalCompra = totalCompra + (esteTag.get(0) * cant1.text)
' Log($"Cant: ${cant1.Text}, Suma: ${totalCompra}"$)
Private m As Map
m=CreateMap("cant":cant1.Text, "cant2":esteTag.get(4), "precio":esteTag.get(0), "promo":esteTag.get(3), "nombre":Subs.traeNombre(esteTag.Get(2)), "cli_orig":esteTag.get(5))
m=CreateMap("cant":cant1.Text, "cant2":esteTag.get(4), "precio":esteTag.get(0), "promo":esteTag.get(3), "nombre":Subs.traeNombre(esteTag.Get(2)), "cli_orig":esteTag.get(5), "idAlmacen":esteTag.get(6))
' LogColor("PUT:" & esteTag.Get(2), Colors.Red)
prodsMap.Put(esteTag.Get(2), m)
End If
@@ -526,7 +527,7 @@ Log("*******************************************************")
bgColor = Colors.White
End If
Log($"CLI: ${pr1.Get("nombre")}, ${newPrecio}, ${pr1.Get("cant")}, ${pr1.Get("cant2")}"$)
clv_pedido.Add(CreateListItem(pr1.Get("nombre"), newPrecio, pr1.Get("cant"), pr1.Get("cant2"), clv_pedido.AsView.Width, 50dip, bmp, pr, bgColor, textColor, newPromo, pr1.Get("cli_orig")), pr1.Get("nombre"))
clv_pedido.Add(CreateListItem(pr1.Get("nombre"), newPrecio, pr1.Get("cant"), pr1.Get("cant2"), clv_pedido.AsView.Width, 50dip, bmp, pr, bgColor, textColor, newPromo, pr1.Get("cli_orig"), pr1.Get("idAlmacen")), pr1.Get("nombre"))
reconstruirPedido = False
Next
promoABorrar = ""

View File

@@ -78,9 +78,8 @@ Sub GUARDA_Click
c.Close
Starter.skmt.ExecNonQuery("DELETE FROM NOVENTA WHERE NV_CLIENTE IN (select cuenta from cuentaa)")
'Traemos los productos del pedido.
c=Starter.skmt.ExecQuery("select HVD_NUM_REGISTRO, HVD_CLIENTE, HVD_PRONOMBRE, HVD_CANT, HVD_COSTO_TOT, HVD_FECHA, HVD_PROID, CAT_GP_PRECIO from HIST_VENTAS2 join CAT_GUNAPROD on CAT_GP_ID = HVD_PROID WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) order by HVD_PRONOMBRE asc")
c=Starter.skmt.ExecQuery("select HVD_NUM_REGISTRO, HVD_CLIENTE, HVD_PRONOMBRE, HVD_CANT, HVD_COSTO_TOT, HVD_FECHA, HVD_PROID, HVD_IDALMACEN, CAT_GP_PRECIO from HIST_VENTAS2 join CAT_GUNAPROD on CAT_GP_ID = HVD_PROID WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) order by HVD_PRONOMBRE asc")
If c.RowCount > 0 Then 'Si hay pedido en HIST_VENTAS ...
'Revisamos si se le ha agregado venta al pedido.
Private esteCliente As String = Subs.traeCliente
Private rv As Cursor = Starter.skmt.ExecQuery($"select * from REPARTO where REP_CLIENTE = '${esteCliente}' and REP_CLI_ORIG <> '${esteCliente}' and REP_RECHAZO = 0"$)
@@ -96,13 +95,12 @@ Sub GUARDA_Click
For i=0 To c.RowCount - 1 'Insertamos los productos en REPARTO.
c.Position=i
Log($"REGISTRO= ${c.GetString("HVD_NUM_REGISTRO")}"$)
Starter.skmt.ExecNonQuery2("insert into reparto(REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA, REP_RECHAZO, REP_PRODID, REP_PRECIO, REP_PRODREGISTRO, REP_CLI_ORIG) VALUES (?,?,?,?,?,1,?,?,?,?) ", Array As String(c.GetString("HVD_CLIENTE"),c.GetString("HVD_PRONOMBRE"),c.GetString("HVD_CANT"),c.GetString("HVD_COSTO_TOT"),c.GetString("HVD_FECHA"), c.GetString("HVD_PROID"), c.GetString("CAT_GP_PRECIO"), c.GetString("HVD_NUM_REGISTRO"), c.GetString("HVD_CLIENTE")))
Starter.skmt.ExecNonQuery2("insert into reparto(REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA, REP_RECHAZO, REP_PRODID, REP_PRECIO, REP_PRODREGISTRO, REP_CLI_ORIG) VALUES (?,?,?,?,?,0,?,?,?,?) ", Array As String(c.GetString("HVD_CLIENTE"),c.GetString("HVD_PRONOMBRE"),0,c.GetString("HVD_COSTO_TOT"),c.GetString("HVD_FECHA"), c.GetString("HVD_PROID"), c.GetString("CAT_GP_PRECIO"), c.GetString("HVD_NUM_REGISTRO"), c.GetString("HVD_CLIENTE")))
Starter.skmt.ExecNonQuery2("insert into reparto(REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA, REP_RECHAZO, REP_PRODID, REP_PRECIO, REP_PRODREGISTRO, REP_CLI_ORIG, REP_IDALMACEN) VALUES (?,?,?,?,?,1,?,?,?,?,?) ", Array As String(c.GetString("HVD_CLIENTE"),c.GetString("HVD_PRONOMBRE"),c.GetString("HVD_CANT"),c.GetString("HVD_COSTO_TOT"),c.GetString("HVD_FECHA"), c.GetString("HVD_PROID"), c.GetString("CAT_GP_PRECIO"), c.GetString("HVD_NUM_REGISTRO"), c.GetString("HVD_CLIENTE"), c.GetString("HVD_IDALMACEN")))
Starter.skmt.ExecNonQuery2("insert into reparto(REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA, REP_RECHAZO, REP_PRODID, REP_PRECIO, REP_PRODREGISTRO, REP_CLI_ORIG, REP_IDALMACEN) VALUES (?,?,?,?,?,0,?,?,?,?,?) ", Array As String(c.GetString("HVD_CLIENTE"),c.GetString("HVD_PRONOMBRE"),0,c.GetString("HVD_COSTO_TOT"),c.GetString("HVD_FECHA"), c.GetString("HVD_PROID"), c.GetString("CAT_GP_PRECIO"), c.GetString("HVD_NUM_REGISTRO"), c.GetString("HVD_CLIENTE"), c.GetString("HVD_IDALMACEN")))
Starter.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_nombre = ?", Array As Object(c.GetString("HVD_CANT"),c.GetString("HVD_PRONOMBRE")))
Next
End If
Starter.skmt.ExecNonQuery2("INSERT INTO NOVENTA (NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON) VALUES(?,?,?,?,?,?,?) ", Array As Object (cuenta,sDate & sTime, usuario, motivo,e_comm.text, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps))
Starter.skmt.ExecNonQuery2("INSERT INTO NOVENTA (NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON, NV_IDALMACEN) VALUES(?,?,?,?,?,?,?,?) ", Array As Object (cuenta,sDate & sTime, usuario, motivo,e_comm.text, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, B4XPages.MainPage.almacen))
Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 3 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
Starter.skmt.ExecNonQuery("update HIST_VENTAS SET HVD_RECHAZO = 1 WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)")
@@ -130,29 +128,27 @@ Sub GUARDA_Click
End If
End Sub
Sub mandaPendientesreparto
c=Starter.skmt.ExecQuery("SELECT CLIENTE, USUARIO, FECHA_PUNTEO, LATITUD, LONGITUD, ALMACEN, RUTA_REPARTO, RUTA_PREV, FECHA_PREVENTA, MOTIVO, COMENTARIO,TIPO FROM REPARTO_GEO where ENVIO <> 1")
Log($"REPARTO_Cliente 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_REPARTO_GUNA2"
cmd.Parameters = Array As Object(c.GetString("CLIENTE"), c.GetString("USUARIO"), c.GetString("FECHA_PUNTEO"), c.GetString("LATITUD"), c.GetString("LONGITUD"), c.GetString("ALMACEN"), c.GetString("RUTA_REPARTO"), c.GetString("RUTA_PREV"), c.GetString("FECHA_PREVENTA"), c.GetString("MOTIVO"), c.GetString("COMENTARIO"),c.GetString("TIPO"))
reqManager.ExecuteCommand(cmd , $"ins_REPARTOPendientes_head_${c.GetString("CLIENTE")}"$)
Next
End If
c.Close
' c=Starter.skmt.ExecQuery("SELECT CLIENTE, USUARIO, FECHA_PUNTEO, LATITUD, LONGITUD, ALMACEN, RUTA_REPARTO, RUTA_PREV, FECHA_PREVENTA, MOTIVO, COMENTARIO,TIPO FROM REPARTO_GEO where ENVIO <> 1")
' Log($"REPARTO_Cliente 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_REPARTO_GUNA2"
' cmd.Parameters = Array As Object(c.GetString("CLIENTE"), c.GetString("USUARIO"), c.GetString("FECHA_PUNTEO"), c.GetString("LATITUD"), c.GetString("LONGITUD"), c.GetString("ALMACEN"), c.GetString("RUTA_REPARTO"), c.GetString("RUTA_PREV"), c.GetString("FECHA_PREVENTA"), c.GetString("MOTIVO"), c.GetString("COMENTARIO"),c.GetString("TIPO"))
' reqManager.ExecuteCommand(cmd , $"ins_REPARTOPendientes_head_${c.GetString("CLIENTE")}"$)
'
' Next
' End If
' c.Close
LogColor("******* MANDAPENDIENTES COMENTADO POR PRUEBAS ******", Colors.red)
End Sub
Sub JobDone(Job As HttpJob)
Log(Job.Success)
Log("JobDone NoVenta: " & Job.Success)
If Job.Success = False Then
' ToastMessageShow("Error: " & Job.ErrorMessage, True)
Else

View File

@@ -91,6 +91,14 @@ Sub Class_Globals
Dim cp As Cursor
Private b_picking As Button
Private b_multiAlmacen As Button
Private s_almacen2 As Spinner
Private et_ruta2 As EditText
Private p_multiAlmacen As Panel
Private x2 As Int
Private idAlmacenExtra As String = ""
Private multiAlmacen As Boolean = False
' Private m_cargaAlmacen As Map
End Sub
'You can add more parameters here.
@@ -160,6 +168,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
reqManager.ExecuteQuery(cmd , 0, "coords_almacen")
End If
B4XPages.MainPage.usuario=Subs.dameUsuarioDeDB
' m_cargaAlmacen.Initialize
End Sub
Sub B4XPage_Appear
@@ -349,7 +358,7 @@ Sub B4XPage_Appear
rc.Position = i3
' Log($"delete from RECHAZOS where R_CLIENTE = '${rc.GetString("REP_CLIENTE")}' and R_CLI_ORIG = '${rc.GetString("REP_CLI_ORIG")}' and R_RECHAZO = '1' and R_PRODID = '${rc.GetString("REP_PRODID")}'"$)
' Starter.skmt.ExecNonQuery($"delete from RECHAZOS where R_CLIENTE = '${rc.GetString("REP_CLIENTE")}' and R_CLI_ORIG = '${rc.GetString("REP_CLI_ORIG")}' and R_RECHAZO = '1' and R_PRODID = '${rc.GetString("REP_PRODID")}'"$)
Starter.skmt.ExecNonQuery($"insert into RECHAZOS(R_FECHA, R_CLIENTE, R_CLI_ORIG, R_PRODID, R_CANT, R_RECHAZO, R_PRECIO) select REP_FECHA, REP_CLIENTE, REP_CLI_ORIG, REP_PRODID, REP_CANT, REP_RECHAZO, REP_PRECIO from REPARTO where REP_CLIENTE = '${rc.GetString("REP_CLIENTE")}' and REP_CLI_ORIG = '${rc.GetString("REP_CLI_ORIG")}' and REP_PRODID = '${rc.GetString("REP_PRODID")}' and REP_RECHAZO = '1' and REP_CANT > 0"$)
Starter.skmt.ExecNonQuery($"insert into RECHAZOS(R_FECHA, R_CLIENTE, R_CLI_ORIG, R_PRODID, R_CANT, R_RECHAZO, R_PRECIO, R_IDALMACEN) select REP_FECHA, REP_CLIENTE, REP_CLI_ORIG, REP_PRODID, REP_CANT, REP_RECHAZO, REP_PRECIO, REP_IDALMACEN from REPARTO where REP_CLIENTE = '${rc.GetString("REP_CLIENTE")}' and REP_CLI_ORIG = '${rc.GetString("REP_CLI_ORIG")}' and REP_PRODID = '${rc.GetString("REP_PRODID")}' and REP_RECHAZO = '1' and REP_CANT > 0"$)
Next
End If
Private vc As Cursor = Starter.skmt.ExecQuery($"select * from REPARTO where REP_RECHAZO = "0" and REP_CANT > 0"$)
@@ -360,7 +369,7 @@ Sub B4XPage_Appear
vc.Position = i4
' Log($"delete from VENTAS where V_CLIENTE = '${vc.GetString("REP_CLIENTE")}' and V_CLI_ORIG = '${vc.GetString("REP_CLI_ORIG")}' and V_RECHAZO = '1' and V_PRODID = '${vc.GetString("REP_PRODID")}'"$)
' Starter.skmt.ExecNonQuery($"delete from VENTAS where V_CLIENTE = '${vc.GetString("REP_CLIENTE")}' and V_CLI_ORIG = '${vc.GetString("REP_CLI_ORIG")}' and V_RECHAZO = '0' and V_PRODID = '${vc.GetString("REP_PRODID")}'"$)
Starter.skmt.ExecNonQuery($"insert into VENTAS(V_FECHA, V_CLIENTE, V_CLI_ORIG, V_PRODID, V_CANT, V_RECHAZO, V_PRECIO) select REP_FECHA, REP_CLIENTE, REP_CLI_ORIG, REP_PRODID, REP_CANT, REP_RECHAZO, REP_PRECIO from REPARTO where REP_CLIENTE = '${vc.GetString("REP_CLIENTE")}' and REP_CLI_ORIG = '${vc.GetString("REP_CLI_ORIG")}' and REP_PRODID = '${vc.GetString("REP_PRODID")}' and REP_RECHAZO = '0' and REP_CANT > 0"$)
Starter.skmt.ExecNonQuery($"insert into VENTAS(V_FECHA, V_CLIENTE, V_CLI_ORIG, V_PRODID, V_CANT, V_RECHAZO, V_PRECIO, V_IDALMACEN) select REP_FECHA, REP_CLIENTE, REP_CLI_ORIG, REP_PRODID, REP_CANT, REP_RECHAZO, REP_PRECIO, REP_IDALMACEN from REPARTO where REP_CLIENTE = '${vc.GetString("REP_CLIENTE")}' and REP_CLI_ORIG = '${vc.GetString("REP_CLI_ORIG")}' and REP_PRODID = '${vc.GetString("REP_PRODID")}' and REP_RECHAZO = '0' and REP_CANT > 0"$)
Next
End If
Starter.ENVIA_ULTIMA_GPS
@@ -451,68 +460,65 @@ Sub trabajar_Click
End Sub
Sub Subir_Click
If Not(IsConnectedToInternet) Then MsgboxAsync("No hay conexión a conexión a Internet", "Revisa tu conexión")
c=Starter.skmt.ExecQuery("select usuario from usuarioa")
c.Position = 0
usuario = c.GetString("USUARIO")
c.Close
' NOVENTA
c = Starter.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON, NV_FOTO FROM NOVENTA")
D=Starter.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
foto1 = c.GetBlob("NV_FOTO")
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_reparto_noventa_MARDS_REPG"
cmd.Parameters = Array As Object(C.GetString("NV_CLIENTE"),C.GetString("NV_FECHA"),C.GetString("NV_USER"),C.GetString("NV_MOTIVO"),C.GetString("NV_COMM"),C.GetString("NV_LAT"),C.GetString("NV_LON"), ALMACEN, l_ruta.Text)
reqManager.ExecuteQuery(cmd , 0, "inst_noventa")
Next
c.Close
End If
d.Position=0
cuantos_noventa = D.GetString("CUANTOS_NOVENTA")
d.Close
c=Starter.skmt.ExecQuery("SELECT HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA, HVD_CODPROMO, HVD_PROID, HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO, HVD_PARCIAL FROM hist_ventas WHERE HVD_RECHAZO = 1 OR HVD_PARCIAL = 1")
' c = Starter.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON, NV_FOTO FROM NOVENTA")
' D=Starter.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
' If c.RowCount>0 Then
' For i=0 To c.RowCount -1
' c.Position=i
' foto1 = c.GetBlob("NV_FOTO")
' Dim cmd As DBCommand
' cmd.Initialize
' cmd.Name = "insert_reparto_noventa_MARDS_REPG"
' cmd.Parameters = Array As Object(C.GetString("NV_CLIENTE"), C.GetString("NV_FECHA"), C.GetString("NV_USER"), C.GetString("NV_MOTIVO"), C.GetString("NV_COMM"), C.GetString("NV_LAT"), C.GetString("NV_LON"), C.GetString("NV_IDALMACEN"), l_ruta.Text)
' reqManager.ExecuteQuery(cmd , 0, "inst_noventa")
' Next
' c.Close
' End If
' d.Position=0
' cuantos_noventa = D.GetString("CUANTOS_NOVENTA")
' d.Close
c=Starter.skmt.ExecQuery("SELECT * FROM hist_ventas WHERE HVD_RECHAZO = 1 OR HVD_PARCIAL = 1")
'
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
c.Position = i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_rep_hist_ventas_GUNA_REPG2"
cmd.Parameters = Array As Object(C.GetString("HVD_CLIENTE"),C.GetString("HVD_PRONOMBRE"),C.GetString("HVD_CANT"),C.GetString("HVD_COSTO_TOT"),C.GetString("HVD_CODPROMO"),C.GetString("HVD_PROID"),C.GetString("HVD_NUM_TICKET"),C.GetString("HVD_NUM_REGISTRO"),C.GetString("HVD_RECHAZO"),C.GetString("HVD_PARCIAL"), ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "inst_noventa")
cmd.Parameters = Array As Object(C.GetString("HVD_CLIENTE"),C.GetString("HVD_PRONOMBRE"),C.GetString("HVD_CANT"),C.GetString("HVD_COSTO_TOT"),C.GetString("HVD_CODPROMO"),C.GetString("HVD_PROID"),C.GetString("HVD_NUM_TICKET"),C.GetString("HVD_NUM_REGISTRO"),C.GetString("HVD_RECHAZO"),C.GetString("HVD_PARCIAL"), C.GetString("HVD_IDALMACEN"))
reqManager.ExecuteCommand(cmd , "inst_noventa")
Next
c.Close
End If
' pedido
c=Starter.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, 1 as PE_DESC 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_pedido_REPG"
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"),"0","VENTA")
reqManager.ExecuteQuery(cmd , 0, "ins_pedido")
Next
c.Close
End If
' c=Starter.skmt.ExecQuery("SELECT *, 1 as PE_DESC 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_pedido_REPG"
' cmd.Parameters = Array As Object(C.GetString("PE_CEDIS"),C.GetString("PE_IDALMACEN"),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"),"0","VENTA")
' reqManager.ExecuteQuery(cmd , 0, "ins_pedido")
' Next
' c.Close
' End If
' reqManager.Initialize(Me, "http://187.189.244.154:1787") 'Para el servidor de pruebas.
c = Starter.skmt.ExecQuery("SELECT * from reparto")
If c.RowCount > 0 Then
Private folio As String = Subs.hmsKMT
For i=0 To c.RowCount -1
For i = 0 To c.RowCount - 1
c.Position=i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insertGUNAReparto2"
cmd.Parameters = Array As Object(folio, C.GetString("REP_FECHA"), C.GetString("REP_CLIENTE"), C.GetString("REP_CLI_ORIG"), C.GetString("REP_PRODID"), C.GetString("REP_PRONOMBRE"), C.GetString("REP_PRODREGISTRO"), C.GetString("REP_CANT"), C.GetString("REP_PRECIO"), C.GetString("REP_COSTO_TOT"), C.GetString("REP_RECHAZO"))
cmd.Name = "insertGUNAReparto3"
cmd.Parameters = Array As Object(folio, C.GetString("REP_FECHA"), C.GetString("REP_CLIENTE"), C.GetString("REP_CLI_ORIG"), C.GetString("REP_PRODID"), C.GetString("REP_PRONOMBRE"), C.GetString("REP_PRODREGISTRO"), C.GetString("REP_CANT"), C.GetString("REP_PRECIO"), C.GetString("REP_COSTO_TOT"), C.GetString("REP_RECHAZO"), C.GetString("REP_IDALMACEN"))
reqManager.ExecuteCommand(cmd , "ins_reparto")
Next
c.Close
@@ -525,7 +531,7 @@ Sub Subir_Click
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insertGUNARechazos2"
cmd.Parameters = Array As Object(folio, C.GetString("R_FECHA"), C.GetString("R_CLIENTE"), C.GetString("R_CLI_ORIG"), C.GetString("R_PRODID"), C.GetString("R_CANT"), C.GetString("R_RECHAZO"))
cmd.Parameters = Array As Object(folio, C.GetString("R_FECHA"), C.GetString("R_CLIENTE"), C.GetString("R_CLI_ORIG"), C.GetString("R_PRODID"), C.GetString("R_CANT"), C.GetString("R_RECHAZO"), C.GetString("R_IDALMACEN"))
reqManager.ExecuteCommand(cmd , "ins_rechazos")
Next
c.Close
@@ -538,7 +544,8 @@ Sub Subir_Click
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insertGUNAVentas2"
cmd.Parameters = Array As Object(folio, C.GetString("V_FECHA"), C.GetString("V_CLIENTE"), C.GetString("V_CLI_ORIG"), C.GetString("V_PRODID"), C.GetString("V_CANT"), C.GetString("V_RECHAZO"))
cmd.Parameters = Array As Object(folio, C.GetString("V_FECHA"), C.GetString("V_CLIENTE"), C.GetString("V_CLI_ORIG"), C.GetString("V_PRODID"), C.GetString("V_CANT"), C.GetString("V_RECHAZO"), C.GetString("V_IDALMACEN"))
' Log($"${folio},${C.GetString("V_FECHA")},${C.GetString("V_CLIENTE")},${C.GetString("V_CLI_ORIG")},${C.GetString("V_PRODID")},${C.GetString("V_CANT")},${C.GetString("V_RECHAZO")},${C.GetString("V_IDALMACEN")}"$)
reqManager.ExecuteCommand(cmd , "ins_ventas")
Next
c.Close
@@ -553,7 +560,7 @@ Sub Subir_Click
f.Position = 0
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position=i
c.Position= i
Dim cmd As DBCommand
Dim fechatabulador() As String = Regex.Split(" ", f.GetString("HVD_FECHA"))
Dim fechatabulador2() As String = Regex.Split("-", fechatabulador(0))
@@ -598,8 +605,8 @@ Sub Subir_Click
End Sub
Sub cargar_Click
' m_cargaAlmacen.Initialize
p_multiAlmacen.Visible = False
Dim pedidodiaanterior As Boolean = False
Dim cp As Cursor = Starter.skmt.ExecQuery("select * from NOVENTA")
If cp.RowCount > 0 Then
@@ -620,26 +627,26 @@ Sub cargar_Click
End If
End If
If Not (pedidodiaanterior) Then
Log("CUMPLE")
Log("CUMPLE")
EJECUTANDO = 1
reqs.Initialize
TOPE = 0
LogColor($"ReqServer = ${B4XPages.MainPage.server}"$, Colors.red)
reqManager.Initialize(Me, B4XPages.MainPage.server)
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_drop_rep_GUNA2"
cmd.Parameters = Array As Object(Subs.dameUsuarioDeDB, l_ruta.Text, ALMACEN, l_ctast.text, Subs.traeEntregados, Subs.traeRechazados, "CARGA")
reqManager.ExecuteCommand(cmd , "inst_drop")
' reqs.Add("inst_noventa")
' reqs.Add("inst_noventa")
Starter.skmt.ExecNonQuery("delete from kmt_info")
Starter.skmt.ExecNonQuery("delete from cod_result")
Starter.skmt.ExecNonQuery("delete from hist_gest")
Starter.skmt.ExecNonQuery("delete from CAT_DETALLES_PAQ")
Starter.skmt.ExecNonQuery("delete from telefonos")
' Starter.skmt.ExecNonQuery("delete from VENTAS")
' Starter.skmt.ExecNonQuery("delete from VENTAS")
Starter.skmt.ExecNonQuery("delete from PUNTEO_GPS")
If l_ruta.Text = "0" Then '
Log("********************* No hay ruta, BORRAMOS TODO")
@@ -657,21 +664,13 @@ Sub cargar_Click
c=Starter.skmt.ExecQuery("select usuario from usuarioa")
c.Position = 0
usuario = c.GetString("USUARIO")
cmd.Initialize
cmd.Name = "select_punteo_guna_re_REPG2"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN,ALMACEN, ALMACEN,ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "punteo")
Log($"Pedimos Punteo"$)
reqs.Add("punteo")
If l_ruta.Text = "0" Then
cmd.Initialize
cmd.Name = "select_almacen_guna_re_REPG2"
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text, ALMACEN, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "gunaprod")
Log($"Pedimos gunaprod - ${ALMACEN}, ${e_ruta.text}"$)
reqs.Add("gunaprod")
Log("******************* CARGAMOS RUTA")
cargaGeneral
If multiAlmacen Then
Log(multiAlmacen)
Log("==================== CARGAMOS SEGUNDO ALMACEN ======================")
cargaAlmacen2
End If
cmd.Initialize
@@ -680,115 +679,102 @@ Sub cargar_Click
reqManager.ExecuteQuery(cmd , 0, "conversion")
reqs.Add("conversion")
cmd.Initialize
cmd.Name = "select_cliente_guna_re_REPG2"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN, ALMACEN,ALMACEN,e_ruta.text, ALMACEN, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "kmt_datos")
Log($"Pedimos kmt_datos"$)
reqs.Add("kmt_datos")
cmd.Initialize
cmd.Name = "select_picking_reparto"
cmd.Parameters = Array As Object(ALMACEN,e_ruta.text,ALMACEN)
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "p_reparto")
Log($"Pedimos p_reparto"$)
' reqs.Add("p_reparto")
cmd.Initialize
cmd.Name = "select_ventad_guna_re_REPG2"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "hist_datos")
Log($"Pedimos hist_datos"$)
reqs.Add("hist_datos")
If ALMACEN = "32" Then
ALMACEN = "33"
cargo = 2
cmd.Initialize
cmd.Name = "select_punteo_guna_re_REPG2"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN,ALMACEN, ALMACEN,ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "punteo")
reqs.Add("punteo")
cmd.Initialize
cmd.Name = "select_almacen_guna_re_REPG2"
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text, ALMACEN, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "gunaprod")
reqs.Add("gunaprod")
cmd.Initialize
cmd.Name = "select_cliente_guna_re_REPG2"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN, ALMACEN,ALMACEN,e_ruta.text, ALMACEN, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "kmt_datos")
reqs.Add("kmt_datos")
cmd.Initialize
cmd.Name = "select_ventad_guna_re_REPG2"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "hist_datos")
reqs.Add("hist_datos")
'reparto rechazo REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT
End If
If ALMACEN = "12" Then
ALMACEN = "72"
cargo = 2
cmd.Initialize
cmd.Name = "select_punteo_guna_re_REPG2"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN,ALMACEN, ALMACEN,ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "punteo")
reqs.Add("punteo")
cmd.Initialize
cmd.Name = "select_almacen_guna_re_REPG2"
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text, ALMACEN, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "gunaprod")
reqs.Add("gunaprod")
cmd.Initialize
cmd.Name = "select_cliente_guna_re_REPG2"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN, ALMACEN,ALMACEN,e_ruta.text, ALMACEN, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "kmt_datos")
reqs.Add("kmt_datos")
cmd.Initialize
cmd.Name = "select_ventad_guna_re_REPG2"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "hist_datos")
reqs.Add("hist_datos")
'reparto rechazo REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT
End If
If ALMACEN = "66" Then
ALMACEN = "67"
cargo = 2
cmd.Initialize
cmd.Name = "select_punteo_guna_re_REPG2"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN,ALMACEN, ALMACEN,ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "punteo")
reqs.Add("punteo")
cmd.Initialize
cmd.Name = "select_almacen_guna_re_REPG2"
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text, ALMACEN, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "gunaprod")
reqs.Add("gunaprod")
cmd.Initialize
cmd.Name = "select_cliente_guna_re_REPG2"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN, ALMACEN,ALMACEN,e_ruta.text, ALMACEN, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "kmt_datos")
reqs.Add("kmt_datos")
cmd.Initialize
cmd.Name = "select_ventad_guna_re_REPG2"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "hist_datos")
reqs.Add("hist_datos")
'reparto rechazo REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT
End If
' If ALMACEN = "32" Then
' ALMACEN = "33"
' cargo = 2
' cmd.Initialize
' cmd.Name = "select_punteo_guna_re_REPG2"
' cmd.Parameters = Array As Object(e_ruta.text, ALMACEN, ALMACEN, ALMACEN, ALMACEN)
' reqManager.ExecuteQuery(cmd , 0, "punteo")
' reqs.Add("punteo")
'
' cmd.Initialize
' cmd.Name = "select_almacen_guna_re_REPG2"
' cmd.Parameters = Array As Object(ALMACEN, e_ruta.text, ALMACEN, ALMACEN)
' reqManager.ExecuteQuery(cmd , 0, "gunaprod")
' reqs.Add("gunaprod")
'
' cmd.Initialize
' cmd.Name = "select_cliente_guna_re_REPG2"
' cmd.Parameters = Array As Object(e_ruta.text, ALMACEN, ALMACEN, ALMACEN, e_ruta.text, ALMACEN, ALMACEN)
' reqManager.ExecuteQuery(cmd , 0, "kmt_datos")
' Log($"Pedimos kmt_datos"$)
' reqs.Add("kmt_datos")
'
' cmd.Initialize
' cmd.Name = "select_ventad_guna_re_REPG2"
' cmd.Parameters = Array As Object(e_ruta.text, ALMACEN, ALMACEN)
' reqManager.ExecuteQuery(cmd , 0, "hist_datos")
' reqs.Add("hist_datos")
' 'reparto rechazo REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT
' End If
'
' If ALMACEN = "12" Then
' ALMACEN = "72"
' cargo = 2
' cmd.Initialize
' cmd.Name = "select_punteo_guna_re_REPG2"
' cmd.Parameters = Array As Object(e_ruta.text, ALMACEN, ALMACEN, ALMACEN, ALMACEN)
' reqManager.ExecuteQuery(cmd , 0, "punteo")
' reqs.Add("punteo")
'
' cmd.Initialize
' cmd.Name = "select_almacen_guna_re_REPG2"
' cmd.Parameters = Array As Object(ALMACEN, e_ruta.text, ALMACEN, ALMACEN)
' reqManager.ExecuteQuery(cmd , 0, "gunaprod")
' reqs.Add("gunaprod")
'
' cmd.Initialize
' cmd.Name = "select_cliente_guna_re_REPG2"
' cmd.Parameters = Array As Object(e_ruta.text, ALMACEN, ALMACEN, ALMACEN, e_ruta.text, ALMACEN, ALMACEN)
' reqManager.ExecuteQuery(cmd , 0, "kmt_datos")
' Log($"Pedimos kmt_datos"$)
' reqs.Add("kmt_datos")
'
' cmd.Initialize
' cmd.Name = "select_ventad_guna_re_REPG2"
' cmd.Parameters = Array As Object(e_ruta.text, ALMACEN, ALMACEN)
' reqManager.ExecuteQuery(cmd , 0, "hist_datos")
' reqs.Add("hist_datos")
' 'reparto rechazo REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT
' End If
'
' If ALMACEN = "66" Then
' ALMACEN = "67"
' cargo = 2
' cmd.Initialize
' cmd.Name = "select_punteo_guna_re_REPG2"
' cmd.Parameters = Array As Object(e_ruta.text, ALMACEN, ALMACEN, ALMACEN, ALMACEN)
' reqManager.ExecuteQuery(cmd , 0, "punteo")
' reqs.Add("punteo")
'
' cmd.Initialize
' cmd.Name = "select_almacen_guna_re_REPG2"
' cmd.Parameters = Array As Object(ALMACEN, e_ruta.text, ALMACEN, ALMACEN)
' reqManager.ExecuteQuery(cmd , 0, "gunaprod")
' reqs.Add("gunaprod")
'
' cmd.Initialize
' cmd.Name = "select_cliente_guna_re_REPG2"
' cmd.Parameters = Array As Object(e_ruta.text, ALMACEN, ALMACEN, ALMACEN, e_ruta.text, ALMACEN, ALMACEN)
' reqManager.ExecuteQuery(cmd , 0, "kmt_datos")
' Log($"Pedimos kmt_datos"$)
' reqs.Add("kmt_datos")
'
' cmd.Initialize
' cmd.Name = "select_ventad_guna_re_REPG2"
' cmd.Parameters = Array As Object(e_ruta.text, ALMACEN, ALMACEN)
' reqManager.ExecuteQuery(cmd , 0, "hist_datos")
' reqs.Add("hist_datos")
' 'reparto rechazo REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT
' End If
' c=Starter.skmt.ExecQuery("SELECT REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA FROM REPARTO")
' If c.RowCount > 0 Then
@@ -831,16 +817,49 @@ Sub cargar_Click
ToastMessageShow("Se actualizarán los datos, este proceso podria tardar hasta un minuto, gracias" , True)
ProgressDialogShow2("Descargando rutas, espere un momento.", False)
If Not(IsConnectedToInternet) Then MsgboxAsync("No hay conexión a Internet", "Revisa tu conexión")
Else
Log("XXXX")
Log("HAY VENTA DEL DIA ANTERIOR.")
MsgboxAsync("Para poder cargar día no puedes tener venta del día anterior. Por favor haz FIN DIA e intenta nuevamente.","Atención")
End If
et_ruta2.Text = ""
End Sub
'Carga los datos generales de la ruta.
Sub cargaGeneral
Log($"****** ALMACEN: ${ALMACEN}"$)
If l_ruta.Text = "0" Then
cmd.Initialize
cmd.Name = "select_almacen_guna_re_REPG2"
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text, ALMACEN, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "gunaprod")
LogColor($"Pedimos gunaprod - ${ALMACEN}, ${e_ruta.text}"$, Colors.red)
reqs.Add("gunaprod")
End If
cmd.Initialize
cmd.Name = "select_punteo_guna_re_REPG2"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN, ALMACEN, ALMACEN, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "punteo")
LogColor($"Pedimos punteo - ${ALMACEN}, ${e_ruta.text}"$, Colors.red)
reqs.Add("punteo")
cmd.Initialize
cmd.Name = "select_cliente_guna_re_REPG2"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN, ALMACEN, ALMACEN, e_ruta.text, ALMACEN, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "kmt_datos")
LogColor($"Pedimos kmt_datos - ${ALMACEN}, ${e_ruta.text}"$, Colors.red)
reqs.Add("kmt_datos")
cmd.Initialize
cmd.Name = "select_ventad_guna_re_REPG2"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, $"hist_datos_${ALMACEN}"$)
LogColor($"Pedimos hist_datos - ${ALMACEN}, ${e_ruta.text}"$, Colors.red)
reqs.Add("hist_datos")
End Sub
Sub JobDone(Job As HttpJob)
Log("JobDone Principal: " & Job.Success)
' Private r As DBResult = reqManager.HandleJob(Job)
If Job.Success = False Then
LogColor("** " & Job.Tag & " Error: " & Job.ErrorMessage, Colors.Red) ' Mod by CHV - 211023
@@ -850,6 +869,7 @@ Sub JobDone(Job As HttpJob)
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "kmt_datos" Then 'query tag
' m_cargaAlmacen.Put(ALMACEN & "-Clientes", result.Rows.Size)
If reqs.IndexOf("kmt_datos") > -1 Then
reqs.RemoveAt(reqs.IndexOf("kmt_datos"))
' Log(reqs.Size)
@@ -875,8 +895,13 @@ Sub JobDone(Job As HttpJob)
Dim CAT_CL_LONG As String = records(result.Columns.Get("CAT_CL_LONG"))
Dim CAT_CL_LAT As String = records(result.Columns.Get("CAT_CL_LAT"))
Dim CAT_CL_BCREDITO As String = records(result.Columns.Get("CAT_CL_BCREDITO"))
Dim CAT_CL_IDALMACEN As String = records(result.Columns.Get("CAT_CL_IDALMACEN"))
' Log(" ++ insert into kmt_info: "&CAT_CL_RUTA&","&CAT_CL_CODIGO&","&CAT_CL_RUTA&","&CAT_CL_NOMBRE)
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_BCREDITO, gestion,SECUENCIA) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,?)", Array As Object (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_BCREDITO,"0"))
' Log(records(result.Columns.Get("CAT_CL_IDALMACEN")))
If Not(CAT_CL_CODIGO.StartsWith("N")) Then
' Log($"INSERT ${CAT_CL_CODIGO}"$)
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_BCREDITO, gestion, SECUENCIA, CAT_CL_IDALMACEN) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,?,?)", Array As Object (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_BCREDITO,"0",CAT_CL_IDALMACEN))
End If
Next
Starter.skmt.TransactionSuccessful
Starter.skmt.EndTransaction
@@ -893,6 +918,7 @@ Sub JobDone(Job As HttpJob)
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "gunaprod" Then 'query tag
' m_cargaAlmacen.Put(ALMACEN & "-Prods", result.Rows.Size)
If reqs.IndexOf("gunaprod") > -1 Then
reqs.RemoveAt(reqs.IndexOf("gunaprod"))
Log(reqs.Size)
@@ -1024,8 +1050,6 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.EndTransaction
End If
End If
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
@@ -1055,14 +1079,15 @@ Sub JobDone(Job As HttpJob)
End If
End If
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "hist_datos" Then 'query tag
If result.Tag.As(String).StartsWith("hist_datos") Then 'query tag
If reqs.IndexOf("hist_datos") > -1 Then
reqs.RemoveAt(reqs.IndexOf("hist_datos"))
' Log(reqs.Size)
End If
Private elAlmacen0() As String = Regex.Split("_", result.Tag)
Private elAlmacen As String = elAlmacen0(2)
Log(l_ruta.text)
Log($"******** Insertamos HV - ${result.Rows.Size}"$)
Starter.skmt.BeginTransaction
@@ -1078,18 +1103,18 @@ Sub JobDone(Job As HttpJob)
Dim HVD_NUM_REGISTRO As String = records(result.Columns.Get("HVD_NUM_REGISTRO"))
Dim HVD_RECHAZO As String = records(result.Columns.Get("HVD_RECHAZO"))
' Log(" ++ insert into HIST_VENTAS: "&HVD_CLIENTE&","&HVD_PRONOMBRE&","&HVD_CANT)
' Log($"**** ALMACEN DE HIST_VENTAS: ${elAlmacen}"$)
If l_ruta.Text = "0" Then 'Si no hay ruta cargada, guardamos todos los clientes
Log("No hay ruta, guardamos todos")
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_VENTAS(HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO, HVD_ESTATUS, HVD_PARCIAL) VALUES (?,?,?,?,?,?,?,?,?,?,0,0)", Array As Object (HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT,HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO))
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_VENTAS2(HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO, HVD_ESTATUS, HVD_PARCIAL) VALUES (?,?,?,?,?,?,?,?,?,?,0,0)", Array As Object (HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT,HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO))
' Log("No hay ruta, guardamos todos")
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_VENTAS(HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO, HVD_ESTATUS, HVD_PARCIAL,HVD_IDALMACEN) VALUES (?,?,?,?,?,?,?,?,?,?,0,0,?)", Array As Object (HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT,HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO, elAlmacen))
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_VENTAS2(HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO, HVD_ESTATUS, HVD_PARCIAL,HVD_IDALMACEN) VALUES (?,?,?,?,?,?,?,?,?,?,0,0,?)", Array As Object (HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT,HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO, elAlmacen))
Else 'Si ya hay ruta cargada, solo guardamos los clientes nuevos.
' Log("Hay ruta, guardamos los nuevos")
Private tc As Cursor = Starter.skmt.ExecQuery($"select HVD_CLIENTE from HIST_VENTAS where HVD_CLIENTE = '${HVD_CLIENTE}' and HVD_PROID = '${HVD_PROID}'"$)
If tc.RowCount = 0 Then
Log($"Guardamos ${HVD_CLIENTE}"$)
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_VENTAS(HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO, HVD_ESTATUS, HVD_PARCIAL) VALUES (?,?,?,?,?,?,?,?,?,?,0,0)", Array As Object (HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT,HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO))
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_VENTAS2(HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO, HVD_ESTATUS, HVD_PARCIAL) VALUES (?,?,?,?,?,?,?,?,?,?,0,0)", Array As Object (HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT,HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO))
' Log($"Guardamos ${HVD_CLIENTE}"$)
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_VENTAS(HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO, HVD_ESTATUS, HVD_PARCIAL,HVD_IDALMACEN) VALUES (?,?,?,?,?,?,?,?,?,?,0,0,?)", Array As Object (HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT,HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO, elAlmacen))
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_VENTAS2(HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO, HVD_ESTATUS, HVD_PARCIAL,HVD_IDALMACEN) VALUES (?,?,?,?,?,?,?,?,?,?,0,0,?)", Array As Object (HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT,HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO, elAlmacen))
End If
End If
Next
@@ -1314,6 +1339,28 @@ Sub JobDone(Job As HttpJob)
Next
Next
End If
If result.Tag = "agrupaAlmacen" Then 'query tag
If result.Rows.Size > 1 Then
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_ALMACEN_AGRUPADOR(ID TEXT, DESCRIPCION TEXT)")
Starter.skmt.ExecNonQuery($"delete from CAT_ALMACEN_AGRUPADOR"$)
b_multiAlmacen.Visible = True
s_almacen2.Clear
s_almacen2.Add("-= Seleccione =-")
For Each records() As Object In result.Rows
' For Each k As String In result.Columns.Keys
' Log(k & ": " & records(result.Columns.Get(k)))
' Next
If ALMACEN <> records(result.Columns.Get("CAT_AL_ID")) Then
s_almacen2.Add(records(result.Columns.Get("CAT_AL_DESC")))
Starter.skmt.ExecNonQuery($"insert into CAT_ALMACEN_AGRUPADOR (ID, DESCRIPCION) values ('${records(result.Columns.Get("CAT_AL_ID"))}', '${records(result.Columns.Get("CAT_AL_DESC"))}')"$)
End If
s_almacen2.TextSize = 13
s_almacen2.DropdownTextColor = Colors.RGB(6, 137, 0)
' s_almacen2.TextColor = Colors.Green
Next
End If
End If
End If
If Job.JobName = "DBRequest" Then
@@ -1332,12 +1379,12 @@ Sub JobDone(Job As HttpJob)
ProgressDialogHide
' Log(reqs.size)
' Log("Terminamos lo descarga de ruta!")
c = Starter.skmt.ExecQuery("SELECT * FROM CHECAR")
If c.RowCount = 0 Then
Starter.skmt.ExecNonQuery2("insert into CHECAR (MOSTRAR) VALUES(?)", Array As String("0"))
End If
End If
' LogColor(m_cargaAlmacen, Colors.red)
End Sub
Private Sub B4XPage_CloseRequest As ResumableSub
@@ -1354,6 +1401,8 @@ End Sub
Sub connecta_Click
LogColor($"ReqServer = ${B4XPages.MainPage.server}"$, Colors.red)
cargar.Enabled = True
multiAlmacen = False
If Not(IsConnectedToInternet) Then MsgboxAsync("No hay conexión a conexión a Internet", "Revisa tu conexión")
If e_ruta.Text <> "" Then
imei = "" 'p.GetDeviceId
@@ -1373,6 +1422,11 @@ Sub connecta_Click
Starter.skmt.ExecNonQuery("DELETE FROM RUTAA")
Starter.skmt.ExecNonQuery2("INSERT INTO RUTAA(RUTAA) VALUES (?)", Array As Object (e_ruta.TEXT))
B4XPages.MainPage.rutaPreventa = e_ruta.TEXT
cmd.Name = "selectAgrupadorAlmacen"
cmd.Parameters = Array As Object(ALMACEN)
Log($"${ALMACEN}, ${e_ruta.text}, ${imei}"$)
reqManager.ExecuteQuery(cmd , 0, "agrupaAlmacen")
End If
End Sub
@@ -1537,8 +1591,65 @@ Private Sub b_tabulador_Click
End If
End Sub
Private Sub b_picking_Click
B4XPages.ShowPage("picking")
End Sub
Private Sub b_multiAlmacen_Click
s_almacen2.SelectedIndex = 0
et_ruta2.Text = ""
If p_multiAlmacen.Visible Then
p_multiAlmacen.Visible = False
cargar.Enabled = True
multiAlmacen = False
Else
p_multiAlmacen.Visible = True
cargar.Enabled = False
multiAlmacen = True
End If
End Sub
Private Sub s_almacen2_ItemClick (Position As Int, Value As Object)
Private ga As ResultSet = Starter.skmt.ExecQuery($"select * from CAT_ALMACEN_AGRUPADOR where descripcion = '${Value}'"$)
Do While ga.NextRow
idAlmacenExtra = ga.GetString("ID")
Loop
Log($"${Value}, ${idAlmacenExtra}"$)
If Value <> "-= Seleccione =-" And et_ruta2.Text <> "" Then
cargar.Enabled = True
Else
cargar.Enabled = False
End If
End Sub
Private Sub et_ruta2_TextChanged (Old As String, New As String)
If s_almacen2.SelectedItem <> "-= Seleccione =-" And New <> "" Then
cargar.Enabled = True
Else
cargar.Enabled = False
End If
End Sub
Sub l_ruta2_click
x2 = x2 + 1
Log($"|${x2}|"$)
If x2 > 2 Then
x2 = 0
cargaAlmacen2
End If
End Sub
Sub cargaAlmacen2
Log("=================================================")
Log("============ CARGAMOS ALMACEN 2 ===============")
Log("=================================================")
Private almacenPrincipal = ALMACEN
Private rutaPrincipal = e_ruta.text
ALMACEN = idAlmacenExtra
e_ruta.text = et_ruta2.text
l_ruta.Text = "0"
cargaGeneral
Sleep(2000)
ALMACEN = almacenPrincipal
e_ruta.text = rutaPrincipal
End Sub

View File

@@ -670,6 +670,7 @@ Sub Terminar_Click
End If
e.Close
Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,0, 0, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,cl_ruta,"VENTA",precio2))
Log("insertamos en PEDIDO")
Starter.skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text))
Else
Msgbox("Tiene " & TOT_ART_PROMO & " " & TOT_ART_PROMOR & " y necesita " & PROMO_C & " " & PROMO_CR & " Para la Promo. " , "ADVERTENCIA") 'ignore
@@ -741,6 +742,7 @@ Sub Terminar_Click
usuario = c.GetString("USUARIO")
Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_COSTO_SIN,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (ALMACEN,cantidad.Text * l_precio.Text, l_precio.text, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,cl_ruta,preciosin,"VENTA",precio2))
Log("Insertamos en PEDIDO")
Starter.skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text))
Panel1.Visible= False
B4XPages.ShowPage("Cliente")
@@ -850,7 +852,7 @@ Sub llenaProductos(limpiar As Boolean)
If limpiar Then clv_productos.Clear
Private c2 As Cursor
' c2 = Starter.skmt.ExecQuery("select REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_PRECIO, REP_PRODID from REPARTO where REP_RECHAZO = 1 and REP_CANT <> '0'")
c2 = Starter.skmt.ExecQuery("Select rep_cliente As cliente, rep_prodid As prodid, rep_pronombre As nombre, rep_precio As precio, rep_cant As cantidad, rep_prodregistro as registro, 'r' as f from reparto where REP_RECHAZO = 1 And REP_CANT > 0 order by REP_PRODID")
c2 = Starter.skmt.ExecQuery("Select rep_cliente As cliente, rep_idalmacen, rep_prodid As prodid, rep_pronombre As nombre, rep_precio As precio, rep_cant As cantidad, rep_prodregistro as registro, 'r' as f from reparto where REP_RECHAZO = 1 And REP_CANT > 0 order by REP_PRODID")
' Private cv As Cursor = Starter.skmt.ExecQuery("Select v_cliente_orig As cliente, V_PRODID As prodid, V_PRODNOMBRE As nombre, V_PRECIO As precio, v_cantidad As cantidad, v_prodregistro as registro, 'v' as f from ventas where V_CLIENTE in (select cuenta from cuentaa)")
Private bgColor, textColor As Int
@@ -870,7 +872,7 @@ Sub llenaProductos(limpiar As Boolean)
End If
' LogColor($"${c2.GetString("nombre")}, ${c2.GetString("precio")}, ${inv}, ${inv2}, ${c2.GetString("cliente")}"$, Colors.Blue)
textColor = Colors.Black
clv_productos.Add(CreateListItem(c2.GetString("nombre"), Subs.traePrecio(c2.GetString("prodid"), 1), inv, inv2, c2.GetString("cliente"), clv_productos.AsView.Width, 50dip, bmp, c2.GetString("prodid"), bgColor, textColor), c2.GetString("nombre"))
clv_productos.Add(CreateListItem(c2.GetString("nombre"), Subs.traePrecio(c2.GetString("prodid"), 1), inv, inv2, c2.GetString("cliente"), clv_productos.AsView.Width, 50dip, bmp, c2.GetString("prodid"), bgColor, textColor, c2.GetString("REP_IDALMACEN")), c2.GetString("nombre"))
Next
End If
' If cv.RowCount > 0 Then
@@ -894,7 +896,7 @@ Sub llenaProductos(limpiar As Boolean)
c2.Close
End Sub
Sub CreateListItem(Text As String, precioU As String, inv As Int, inv2 As Int, cliente As String, Width As Int, Height As Int, img As Bitmap, prodId As String, bc As Int, tc As Int) As Panel
Sub CreateListItem(Text As String, precioU As String, inv As Int, inv2 As Int, cliente As String, Width As Int, Height As Int, img As Bitmap, prodId As String, bc As Int, tc As Int, idAlmacen As String) As Panel
Dim p As B4XView = xui.CreatePanel("")
p.SetLayoutAnimated(0, 0, 0, Width, Height)
p.LoadLayout("prodItem")
@@ -905,10 +907,10 @@ Sub CreateListItem(Text As String, precioU As String, inv As Int, inv2 As Int, c
l_prodX.TextColor = tc
l_prodX.Text = Text&CRLF&"# " & inv & " $ " & precioU
l_prodX.Tag = $"ID: ${prodId}${CRLF}${Text}${CRLF}Precio: $$1.2{precioU}${CRLF}Inv: ${inv} pzs"$
l_vendido.Tag = precioU&"|"&inv&"|"&prodId&"|"&inv2&"|"&cliente
p_prods.Tag = precioU&"|"&inv&"|"&prodId&"|"&inv2&"|"&cliente
l_pCant.Tag = precioU&"|"&inv&"|"&prodId&"|"&cliente
et_pCant.Tag = precioU&"|"&inv&"|"&prodId&"|"&cliente
l_vendido.Tag = precioU&"|"&inv&"|"&prodId&"|"&inv2&"|"&cliente&"|"&idAlmacen
p_prods.Tag = precioU&"|"&inv&"|"&prodId&"|"&inv2&"|"&cliente&"|"&idAlmacen
l_pCant.Tag = precioU&"|"&inv&"|"&prodId&"|"&cliente&"|"&idAlmacen
et_pCant.Tag = precioU&"|"&inv&"|"&prodId&"|"&cliente&"|"&idAlmacen
' l_pCant.Text = 0
' et_pCant.Text = inv2
et_pCant.BringToFront
@@ -974,8 +976,11 @@ Sub b_prodMas_Click
Private cp As Cursor = Starter.skmt.ExecQuery($"select * from HIST_VENTAS where HVD_PROID = '${esteTag.Get(2)}' and HVD_CLIENTE = '${esteTag.get(3)}'"$)
If cp.RowCount > 0 Then
cp.Position = 0
Starter.skmt.ExecNonQuery2("insert into reparto(REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA, REP_RECHAZO, REP_PRODID, REP_PRECIO, REP_PRODREGISTRO, REP_CLI_ORIG) VALUES (?,?,?,?,?,1,?,?,?,?) ", Array As String(Subs.traeCliente, cp.GetString("HVD_PRONOMBRE"), 0, cp.GetString("HVD_COSTO_TOT"), Subs.fechaKMT(DateTime.now), cp.GetString("HVD_PROID"), precio, 50, esteTag.get(3)))
Starter.skmt.ExecNonQuery2("insert into reparto(REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA, REP_RECHAZO, REP_PRODID, REP_PRECIO, REP_PRODREGISTRO, REP_CLI_ORIG) VALUES (?,?,?,?,?,0,?,?,?,?) ", Array As String(Subs.traeCliente, cp.GetString("HVD_PRONOMBRE"), laCant.text, cp.GetString("HVD_COSTO_TOT"), Subs.fechaKMT(DateTime.now), cp.GetString("HVD_PROID"), precio, 50, esteTag.get(3)))
Log(esteTag)
Starter.skmt.ExecNonQuery2("insert into reparto(REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA, REP_RECHAZO, REP_PRODID, REP_PRECIO, REP_PRODREGISTRO, REP_CLI_ORIG, REP_IDALMACEN) VALUES (?,?,?,?,?,1,?,?,?,?,?) ", Array As String(Subs.traeCliente, cp.GetString("HVD_PRONOMBRE"), 0, cp.GetString("HVD_COSTO_TOT"), Subs.fechaKMT(DateTime.now), cp.GetString("HVD_PROID"), precio, 50, esteTag.get(3), esteTag.get(4)))
Log(4)
Starter.skmt.ExecNonQuery2("insert into reparto(REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA, REP_RECHAZO, REP_PRODID, REP_PRECIO, REP_PRODREGISTRO, REP_CLI_ORIG, REP_IDALMACEN) VALUES (?,?,?,?,?,0,?,?,?,?,?) ", Array As String(Subs.traeCliente, cp.GetString("HVD_PRONOMBRE"), laCant.text, cp.GetString("HVD_COSTO_TOT"), Subs.fechaKMT(DateTime.now), cp.GetString("HVD_PROID"), precio, 50, esteTag.get(3), esteTag.get(4)))
Log(5)
Starter.skmt.ExecNonQuery($"update reparto set REP_CANT = REP_CANT - 1, REP_PRECIO = '${precio}', REP_COSTO_TOT = ((REP_CANT - 1) * REP_PRECIO) where REP_CLIENTE = '${esteTag.get(3)}' and REP_CLI_ORIG = '${esteTag.get(3)}' and REP_RECHAZO = 1 and REP_PRODID = '${esteTag.Get(2)}'"$)
Starter.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_nombre = ?", Array As Object(laCant.Text, cp.GetString("HVD_PRONOMBRE")))
End If
@@ -1098,7 +1103,7 @@ Private Sub p_prods_LongClick
Log($"|${esteTag.Get(3)}|"$)
If esteTag.Get(3) <> "0" Then
Log("VENDIDO")
borraProdVenta(esteTag.Get(2))
borraProdVenta(esteTag.Get(2), esteTag.Get(5))
Else
Log("NO VENDIDO")
End If
@@ -1110,13 +1115,13 @@ Private Sub l_vendido_LongClick
Log($"|${esteTag.Get(3)}|"$)
If esteTag.Get(3) <> "0" Then
Log("VENDIDO")
borraProdVenta(esteTag.Get(2))
borraProdVenta(esteTag.Get(2), esteTag.Get(5))
Else
Log("NO VENDIDO")
End If
End Sub
Sub borraProdVenta(prodId)
Sub borraProdVenta(prodId As String, idAlmacen As String)
Private cant As Int = 0
Private cliOrig As String = ""
Private RES As String = Msgbox2("Seguro que desea borrar este producto?","Borrar", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
@@ -1132,8 +1137,8 @@ Sub borraProdVenta(prodId)
LogColor($"Hay prod con venta en VENTAS - ${prodId}, ${cant}"$, Colors.Blue)
Starter.skmt.ExecNonQuery($"update CAT_GUNAPROD set CAT_GP_ALMACEN = CAT_GP_ALMACEN + ${cant} where CAT_GP_ID = '${prodId}'"$)
End If
Starter.skmt.ExecNonQuery($"update REPARTO set REP_CANT = REP_CANT + ${cant} where REP_RECHAZO = 1 and REP_PRODID = '${prodId}' and REP_CLIENTE = '${cliOrig}'"$)
Starter.skmt.ExecNonQuery($"update REPARTO set REP_CANT = REP_CANT - ${cant} where REP_RECHAZO = 0 and REP_PRODID = '${prodId}' and REP_CLIENTE = '${cliOrig}'"$)
Starter.skmt.ExecNonQuery($"update REPARTO set REP_CANT = REP_CANT + ${cant} where REP_RECHAZO = 1 and REP_IDALMACEN = '${idAlmacen}' and REP_PRODID = '${prodId}' and REP_CLIENTE = '${cliOrig}'"$)
Starter.skmt.ExecNonQuery($"update REPARTO set REP_CANT = REP_CANT - ${cant} where REP_RECHAZO = 0 and REP_IDALMACEN = '${idAlmacen}' and REP_PRODID = '${prodId}' and REP_CLIENTE = '${cliOrig}'"$)
Starter.skmt.ExecNonQuery($"delete from VENTAS where V_PRODID = '${prodId}' and V_CLIENTE_ORIG = '${cliOrig}' and V_CLIENTE in (select CUENTA from CUENTAA)"$)
B4XPages.ShowPage("Cliente")
End If

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -68,13 +68,13 @@ ModuleClosedNodes16=
ModuleClosedNodes17=
ModuleClosedNodes18=
ModuleClosedNodes19=
ModuleClosedNodes2=
ModuleClosedNodes2=2
ModuleClosedNodes20=
ModuleClosedNodes21=
ModuleClosedNodes22=
ModuleClosedNodes23=
ModuleClosedNodes24=
ModuleClosedNodes25=
ModuleClosedNodes25=2,4
ModuleClosedNodes26=
ModuleClosedNodes27=
ModuleClosedNodes28=
@@ -85,6 +85,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=B4XMainPage,B4XPage_Created,141,3,DBRequestManager,ExecuteCommand,54,0,C_Principal,JobDone,1164,3,C_picking,B4XPage_Appear,139,0,C_picking,Class_Globals,43,0,C_picking,mandapicking,515,6,C_picking,b_guardapicking_Click,500,1,C_Principal,trabajar_Click,432,0,C_Principal,B4XPage_Appear,386,0,C_Principal,checachek,411,6,B4XMainPage,B4XPage_Appear,192,0
NavigationStack=C_Principal,JobDone,857,0,Visual Designer,cliente.bal,-100,6,C_DetalleVenta,B4XPage_Appear,114,0,Subs,fechaKMT,67,0,C_Productos,b_prodMas_Click,973,0,C_Productos,CreateListItem,892,0,C_Productos,llenaProductos,844,0,C_NoVenta,GUARDA_Click,91,4,C_Principal,B4XPage_Appear,356,3,C_Principal,Subir_Click,541,4,C_DetalleVenta,cuentaProds,472,0
SelectedBuild=0
VisibleModules=1,2,16,3,4,5,6,7,8,9
VisibleModules=26,2,16,5,8,27,6,17,12

View File

@@ -113,13 +113,17 @@ Sub Activity_Create(FirstTime As Boolean)
End Sub
Sub MapFragment1_Ready
' Msgbox("111","AVISO")
gmap = MapFragment1.GetMap
gmap.IsInitialized
'todos= 1
'permisos
' Msgbox("11","AVISO")
If gmap.IsInitialized Then ' Esto es para capturar el "clic largo" de la etiqueta de los marcadores.
Dim jo As JavaObject = gmap
Dim event As Object = jo.CreateEventFromUI("com.google.android.gms.maps.GoogleMap.OnInfoWindowLongClickListener", "InfoWindowLongClick", Null)
jo.RunMethod("setOnInfoWindowLongClickListener", Array(event))
End If
rp.CheckAndRequest(rp.PERMISSION_ACCESS_FINE_LOCATION)
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
@@ -129,14 +133,12 @@ Sub MapFragment1_Ready
JavaMapsObject = gmap.GetUiSettings
JavaMapsObject.RunMethod("setMapToolbarEnabled", Array As Object(True))
' Msgbox("12","AVISO")
'''''''----------------------------MARKER AZUL - POR ENTREGAR
Private esteAzul As Int = 0
Private esteAzul2 As String
If azul = 1 Or todos = 1 Then
c.IsInitialized
c=Starter.skmt.ExecQuery("select CAT_CL_CODIGO, SECUENCIA, CAT_CL_NOMBRE, CAT_CL_LAT, CAT_CL_LONG, CAT_CL_RUTA from kmt_info where gestion = 0 and CAT_CL_LAT is not null and CAT_CL_LONG is not null and CAT_CL_LAT <> 0 and CAT_CL_LONG <> 0 order by CAT_CL_RUTA")
c = Starter.skmt.ExecQuery("select CAT_CL_CODIGO, SECUENCIA, CAT_CL_NOMBRE, CAT_CL_LAT, CAT_CL_LONG, CAT_CL_RUTA from kmt_info where gestion = 0 and CAT_CL_LAT <> 'null' and CAT_CL_LAT is not null and CAT_CL_LONG is not null and CAT_CL_LAT <> 0 and CAT_CL_LONG <> 0 order by CAT_CL_RUTA")
' Msgbox("2","AVISO")
rutaAnt = ""
For i = 0 To c.RowCount -1
@@ -155,14 +157,14 @@ Sub MapFragment1_Ready
If esteAzul = 4 Then esteAzul2=gmap.HUE_AZURE+50
If esteAzul = 5 Then esteAzul2=gmap.HUE_AZURE+75
' Log(ruta & "|" & esteAzul & "|" & esteAzul2)
MARK_AZUL = gmap.AddMarker3(LatitudRu,LongitudRU,CODIGO,LoadBitmap(File.DirAssets, esteAzul2))
MARK_AZUL = gmap.AddMarker3(LatitudRu, LongitudRU, CODIGO, LoadBitmap(File.DirAssets, esteAzul2))
MARK_AZUL.Snippet = "R: " & ruta & " - " & Tienda
rutaAnt = ruta
Next
c .Close
If MARK_AZUL.IsInitialized Then LIST_AZUL.Add(MARK_AZUL)
End If
' Msgbox("3","AVISO")
'''''''----------------------------MARKER VERDE- ENTREGADO
If verde = 1 Or todos = 1 Then
@@ -201,6 +203,7 @@ Sub MapFragment1_Ready
End If
' '''''''----------------------------MARKER ROJO - NO ENTREGADO
Private esteRojo As Int = 0
Private esteRojo2 As String
If rojo = 1 Or todos = 1 Then
@@ -261,6 +264,27 @@ Sub OnInfoWindowClickListener1_click(Marker1 As Marker)
B4XPages.ShowPage("Cliente")
End Sub
'Evento del clic largo de la etiqueta del marcador.
Sub InfoWindowLongClick_Event (MethodName As String, Args() As Object) As Object
Dim m As Marker = Args(0)
Log(m.Snippet)
Log($"Marker: ${m.Title} was long clicked"$)
Private RES As String = Msgbox2($"¿Quieres usar la tienda ${m.Title} como tu punto de inicio?"$, "Punto de inicio", "SI", "", "NO", Null)
If RES = DialogResponse.POSITIVE Then
Private t As ResultSet = Starter.skmt.ExecQuery($"select cat_cl_lat, cat_cl_long from kmt_info where cat_cl_codigo = '${m.Title}'"$)
Do While t.NextRow
Starter.inicioMapa = True
Log($"${m.Title}, ${t.GetString("CAT_CL_LAT")}, ${t.GetString("CAT_CL_LONG")}"$)
Starter.inicioLat = t.GetString("CAT_CL_LAT") + 0.000001
Starter.inicioLon= t.GetString("CAT_CL_LONG") + 0.000001
B4XPages.ShowPage("clientes")
B4XPages.MainPage.clientes.caculaRutaGPS(B4XPages.MainPage.clientes.todosAVisitar)
B4XPages.ShowPage("clientes")
Loop
End If
Return Null
End Sub
Sub GPS_LocationChanged (Parametro As Location)
'MARK_CEDIS.IsInitialized
' Dim sp As Int
@@ -328,6 +352,4 @@ Sub B_AZUL_Click
todos = 0
gmap.Clear
MapFragment1_Ready
End Sub
End Sub

View File

@@ -37,6 +37,9 @@ Sub Process_Globals
' Dim server As String = "http://11.0.0.222:1782"
Dim muestraProgreso = 0
Dim c As Cursor
Dim inicioMapa As Boolean = False
Dim inicioLat As Double = 0
Dim inicioLon As Double = 0
End Sub
Sub Service_Create
@@ -130,11 +133,6 @@ Sub ENVIA_ULTIMA_GPS
End If
End Sub
Sub IsConnectedToInternet As Boolean 'ignore
Dim r As Reflector
r.Target = r.GetContext
@@ -147,7 +145,7 @@ Sub IsConnectedToInternet As Boolean 'ignore
End Sub
Sub JobDone(Job As HttpJob)
' LogColor("starter jobdone", Colors.Red)
Log("JobDone Starter: " & Job.Success)
' Log(Job.ErrorMessage)
' Private r As DBResult = reqManager.HandleJob(Job)
If Job.Success = False Then

View File

@@ -71,7 +71,7 @@ Sub fechaKMT(fecha As String) As String 'ignore
DateTime.DateFormat="yyMMddHHmmss"
Dim nuevaFecha As String=DateTime.Date(fecha)
DateTime.DateFormat=OrigFormat 'return to orig date format
' Log(nuevaFecha)
Log(nuevaFecha)
Return nuevaFecha
End Sub
@@ -695,14 +695,15 @@ Sub traeMaxCantidad(cliente As String, prodId As String) As Int
End Sub
'Ponemos venta de producto en la tabla de Reparto.
Sub prodVenta(clienteOriginal As String, prodId As String)
Sub prodVenta(clienteOriginal As String, prodId As String, idAlmacen As String)
' Log("RECHAZO VENTA")
Private precio As String = traePrecio(prodId, 1)
Starter.skmt.ExecNonQuery($"update reparto set REP_CANT = REP_CANT - 1 where REP_CLIENTE = '${clienteOriginal}' and REP_CLI_ORIG = '${clienteOriginal}' and REP_RECHAZO = 1 and REP_PRODID = '${prodId}'"$)
Starter.skmt.ExecNonQuery($"update reparto set REP_CANT = REP_CANT + 1 where REP_CLIENTE in (Select CUENTA from cuentaa) and REP_CLI_ORIG = '${clienteOriginal}' and REP_RECHAZO = 0 and REP_PRODID = '${prodId}'"$)
Log($"update reparto set REP_CANT = REP_CANT - 1 where REP_CLIENTE = '${clienteOriginal}' and REP_CLI_ORIG = '${clienteOriginal}' and REP_RECHAZO = 1 and REP_PRODID = '${prodId}'"$)
Log($"update reparto set REP_CANT = REP_CANT + 1 where REP_CLIENTE in (Select CUENTA from cuentaa) and REP_CLI_ORIG = '${clienteOriginal}' and REP_RECHAZO = 0 and REP_PRODID = '${prodId}'"$)
Starter.skmt.ExecNonQuery($"update reparto set REP_COSTO_TOT = REP_CANT * ${precio}, REP_PRECIO = '${precio}' where REP_CLIENTE in (Select CUENTA from cuentaa) and REP_CLI_ORIG = '${clienteOriginal}' and REP_RECHAZO = 0 and REP_PRODID = '${prodId}'"$)
Starter.skmt.ExecNonQuery($"update reparto set REP_CANT = REP_CANT - 1 where REP_CLIENTE = '${clienteOriginal}' and REP_IDALMACEN = '${idAlmacen}' and REP_CLI_ORIG = '${clienteOriginal}' and REP_RECHAZO = 1 and REP_PRODID = '${prodId}'"$)
Starter.skmt.ExecNonQuery($"update reparto set REP_CANT = REP_CANT + 1 where REP_CLIENTE in (Select CUENTA from cuentaa) and REP_IDALMACEN = '${idAlmacen}' and REP_CLI_ORIG = '${clienteOriginal}' and REP_RECHAZO = 0 and REP_PRODID = '${prodId}'"$)
Log($"update reparto set REP_CANT = REP_CANT - 1 where REP_CLIENTE = '${clienteOriginal}' and REP_IDALMACEN = '${idAlmacen}' and REP_CLI_ORIG = '${clienteOriginal}' and REP_RECHAZO = 1 and REP_PRODID = '${prodId}'"$)
Log($"update reparto set REP_CANT = REP_CANT + 1 where REP_CLIENTE in (Select CUENTA from cuentaa) and REP_IDALMACEN = '${idAlmacen}' and REP_CLI_ORIG = '${clienteOriginal}' and REP_RECHAZO = 0 and REP_PRODID = '${prodId}'"$)
Starter.skmt.ExecNonQuery($"update reparto set REP_COSTO_TOT = REP_CANT * ${precio}, REP_PRECIO = '${precio}' where REP_CLIENTE in (Select CUENTA from cuentaa) and REP_IDALMACEN = '${idAlmacen}' and REP_CLI_ORIG = '${clienteOriginal}' and REP_RECHAZO = 0 and REP_PRODID = '${prodId}'"$)
Log($"update reparto set REP_COSTO_TOT = REP_CANT * ${precio}, REP_PRECIO = '${precio}' where REP_CLIENTE in (Select CUENTA from cuentaa) and REP_IDALMACEN = '${idAlmacen}' and REP_CLI_ORIG = '${clienteOriginal}' and REP_RECHAZO = 0 and REP_PRODID = '${prodId}'"$)
' Private pu As String = 0
' Private cant As Int = 0
@@ -726,9 +727,9 @@ Sub prodVenta(clienteOriginal As String, prodId As String)
End Sub
'Ponemos rechazo de producto en la tabla de Reparto.
Sub prodRechazo(clienteOriginal As String, prodId As String)
Sub prodRechazo(clienteOriginal As String, prodId As String, idAlmacen As String)
Log("RECHAZO DEVOLUCION")
Private rr As Cursor = Starter.skmt.ExecQuery($"select count(REP_CLIENTE) as hayRechazo from REPARTO where rep_prodid = '${prodId}' and REP_CLIENTE in (Select CUENTA from cuentaa)"$)
Private rr As Cursor = Starter.skmt.ExecQuery($"select count(REP_CLIENTE) as hayRechazo from REPARTO where rep_prodid = '${prodId}' and REP_IDALMACEN = '${idAlmacen}' and REP_CLIENTE in (Select CUENTA from cuentaa)"$)
rr.Position = 0
If rr.GetString("hayRechazo") = 0 Then
Log("INSERTAMOS EN REPARTO")
@@ -739,18 +740,20 @@ Sub prodRechazo(clienteOriginal As String, prodId As String)
chv.Position = 0
' Log($"CANT=${chv.GetString("HVD_CANT")}"$)
Private precio As String = traePrecio(prodId, 1)
Starter.skmt.ExecNonQuery2("insert into reparto(REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA, REP_RECHAZO, REP_PRODID, REP_PRECIO, REP_CLI_ORIG) VALUES (?,?,?,?,?,1,?,?,?) ", Array As String(traeCliente, chv.GetString("HVD_PRONOMBRE"), 1, precio, chv.GetString("HVD_FECHA"), prodId, precio, traeCliente))
Starter.skmt.ExecNonQuery2("insert into reparto(REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA, REP_RECHAZO, REP_PRODID, REP_PRECIO, REP_CLI_ORIG) VALUES (?,?,?,?,?,0,?,?,?) ", Array As String(traeCliente, chv.GetString("HVD_PRONOMBRE"), chv.GetString("HVD_CANT") - 1, (chv.GetString("HVD_CANT") - 1) * precio, chv.GetString("HVD_FECHA"), prodId, precio, traeCliente))
Starter.skmt.ExecNonQuery($"update HIST_VENTAS set HVD_PARCIAL = 1, HVD_CANT = 0, HVD_COSTO_TOT = '0' where HVD_PROID = '${prodId}' and HVD_CLIENTE in (Select CUENTA from cuentaa)"$)
Starter.skmt.ExecNonQuery2("insert into reparto(REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA, REP_RECHAZO, REP_PRODID, REP_PRECIO, REP_CLI_ORIG, REP_IDALMACEN) VALUES (?,?,?,?,?,1,?,?,?,?) ", Array As String(traeCliente, chv.GetString("HVD_PRONOMBRE"), 1, precio, chv.GetString("HVD_FECHA"), prodId, precio, traeCliente, idAlmacen))
Starter.skmt.ExecNonQuery2("insert into reparto(REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA, REP_RECHAZO, REP_PRODID, REP_PRECIO, REP_CLI_ORIG, REP_IDALMACEN) VALUES (?,?,?,?,?,0,?,?,?,?) ", Array As String(traeCliente, chv.GetString("HVD_PRONOMBRE"), chv.GetString("HVD_CANT") - 1, (chv.GetString("HVD_CANT") - 1) * precio, chv.GetString("HVD_FECHA"), prodId, precio, traeCliente, idAlmacen))
Log($"Insertamos a Reparto -> (${traeCliente}, ${chv.GetString("HVD_PRONOMBRE")}, ${precio}, ${chv.GetString("HVD_FECHA")}, ${prodId}, ${precio}, ${traeCliente}, ${idAlmacen}))"$)
Log($"Insertamos a Reparto -> (${traeCliente}, ${chv.GetString("HVD_PRONOMBRE")}, ${chv.GetString("HVD_CANT")} - 1, (${chv.GetString("HVD_CANT")} - 1) * ${precio}, ${chv.GetString("HVD_FECHA")}, ${prodId}, ${precio}, ${traeCliente}, ${idAlmacen})))"$)
Starter.skmt.ExecNonQuery($"update HIST_VENTAS set HVD_PARCIAL = 1, HVD_CANT = 0, HVD_COSTO_TOT = '0' where HVD_PROID = '${prodId}' and HVD_IDALMACEN = '${idAlmacen}' and HVD_CLIENTE in (Select CUENTA from cuentaa)"$)
End If
Else
Log($"ACTUALIZAMOS REPARTO"$)
Private precio As String = traePrecio(prodId, 1)
Starter.skmt.ExecNonQuery2("update HIST_VENTAS set HVD_PARCIAL = 1, HVD_CANT = 0, HVD_COSTO_TOT = '0' WHERE HVD_PROID = ? and HVD_CLIENTE in (Select CUENTA from cuentaa)", Array As String(prodId))
Starter.skmt.ExecNonQuery($"update reparto set REP_CANT = REP_CANT + 1 where REP_CLIENTE = '${clienteOriginal}' and REP_CLI_ORIG = '${clienteOriginal}' and REP_RECHAZO = 1 and REP_PRODID = '${prodId}'"$)
Starter.skmt.ExecNonQuery($"update reparto set REP_CANT = REP_CANT - 1 where REP_CLIENTE in (Select CUENTA from cuentaa) and REP_CLI_ORIG = '${clienteOriginal}' and REP_RECHAZO = 0 and REP_PRODID = '${prodId}'"$)
' Log($"update reparto set REP_CANT = REP_CANT + 1 where REP_CLIENTE = '${clienteOriginal}' and REP_CLI_ORIG = '${clienteOriginal}' and REP_RECHAZO = 1 and REP_PRODID = '${prodId}'"$)
' Log($"update reparto set REP_CANT = REP_CANT - 1 where REP_CLIENTE in (Select CUENTA from cuentaa) and REP_CLI_ORIG = '${clienteOriginal}' and REP_RECHAZO = 0 and REP_PRODID = '${prodId}'"$)
Starter.skmt.ExecNonQuery2("update HIST_VENTAS set HVD_PARCIAL = 1, HVD_CANT = 0, HVD_COSTO_TOT = '0' WHERE HVD_PROID = ? and HVD_IDALMACEN = ? and HVD_CLIENTE in (Select CUENTA from cuentaa)", Array As String(prodId, idAlmacen))
Starter.skmt.ExecNonQuery($"update reparto set REP_CANT = REP_CANT + 1 where REP_CLIENTE = '${clienteOriginal}' and REP_IDALMACEN = '${idAlmacen}' and REP_CLI_ORIG = '${clienteOriginal}' and REP_RECHAZO = 1 and REP_PRODID = '${prodId}'"$)
Starter.skmt.ExecNonQuery($"update reparto set REP_CANT = REP_CANT - 1 where REP_CLIENTE in (Select CUENTA from cuentaa) and REP_IDALMACEN = '${idAlmacen}' and REP_CLI_ORIG = '${clienteOriginal}' and REP_RECHAZO = 0 and REP_PRODID = '${prodId}'"$)
Log($"update reparto set REP_CANT = REP_CANT + 1 where REP_CLIENTE = '${clienteOriginal}' and REP_IDALMACEN = '${idAlmacen}' and REP_CLI_ORIG = '${clienteOriginal}' and REP_RECHAZO = 1 and REP_PRODID = '${prodId}'"$)
Log($"update reparto set REP_CANT = REP_CANT - 1 where REP_CLIENTE in (Select CUENTA from cuentaa) and REP_IDALMACEN = '${idAlmacen}' and REP_CLI_ORIG = '${clienteOriginal}' and REP_RECHAZO = 0 and REP_PRODID = '${prodId}'"$)
Starter.skmt.ExecNonQuery($"update reparto set REP_COSTO_TOT = REP_CANT * ${precio}, REP_PRECIO = '${precio}' where REP_CLIENTE in (Select CUENTA from cuentaa) and REP_CLI_ORIG = '${clienteOriginal}' and REP_PRODID = '${prodId}'"$)
End If
End Sub
@@ -874,4 +877,53 @@ Sub agregaColumna(tabla As String, columna As String, tipo As String)
Log(LastException)
End Try
End Try
End Sub
'Regresa la ruta actual de la base de datos.
Sub traeRutaReparto As String 'ignore
Private c As Cursor
Private r As String
c=Starter.skmt.ExecQuery("select RUTAA from RUTAA")
r = "0"
If c.RowCount > 0 Then
c.Position=0
r = c.GetString("RUTAA")
End If
c.Close
Return r
End Sub
'Regresa el almacen actual de la base de datos.
Sub traeAlmacen As String 'ignore
Private c As Cursor
Private a As String
c = Starter.skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN")
c.Position = 0
a = C.GetString("ID_ALMACEN")
c.Close
Return a
End Sub
'Trae el algoritmo a utilizar para el ruteo dinamico.
Sub traeAlgoritmoRuteo As String
Private a As String = "NN"
Private r As ResultSet = Starter.skmt.ExecQuery("select CAT_VA_VALOR from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'ALGORITMO_RUTEO'")
Do While r.NextRow
If r.GetString("CAT_VA_VALOR") = "Nearest Insertion" Then a = "NI"
Loop
r.close
Log("|" & a & "|")
Return a
End Sub
'Trae la matriz a utilizar para el ruteo dinamico.
Sub traeMatrizRuteo As String
Private m As String = "LOCAL"
Private r As ResultSet = Starter.skmt.ExecQuery("select CAT_VA_VALOR from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'MATRIZ_RUTEO'")
Do While r.NextRow
If r.GetString("CAT_VA_VALOR") = "OSRM" Then m = "OSRM"
Loop
r.close
Log("|" & m & "|")
Return m
End Sub