diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index f929702..9d370b4 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -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 \ No newline at end of file diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index 612b945..0ff1979 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -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 diff --git a/B4A/C_Clientes.bas b/B4A/C_Clientes.bas index 704bda2..ac300a1 100644 --- a/B4A/C_Clientes.bas +++ b/B4A/C_Clientes.bas @@ -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 \ No newline at end of file +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 diff --git a/B4A/C_DetalleVenta.bas b/B4A/C_DetalleVenta.bas index 0820616..fe8453e 100644 --- a/B4A/C_DetalleVenta.bas +++ b/B4A/C_DetalleVenta.bas @@ -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 = "" diff --git a/B4A/C_Historico.bas b/B4A/C_Historico.bas index e25f2a8..848417f 100644 --- a/B4A/C_Historico.bas +++ b/B4A/C_Historico.bas @@ -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 = "" diff --git a/B4A/C_NoVenta.bas b/B4A/C_NoVenta.bas index 67acbc8..1581173 100644 --- a/B4A/C_NoVenta.bas +++ b/B4A/C_NoVenta.bas @@ -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 diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index b9c6863..536b592 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -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 \ No newline at end of file diff --git a/B4A/C_Productos.bas b/B4A/C_Productos.bas index cc1bd35..68fdaf2 100644 --- a/B4A/C_Productos.bas +++ b/B4A/C_Productos.bas @@ -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 diff --git a/B4A/Files/clientes.bal b/B4A/Files/clientes.bal index 888966a..30de4b0 100644 Binary files a/B4A/Files/clientes.bal and b/B4A/Files/clientes.bal differ diff --git a/B4A/Files/login.bal b/B4A/Files/login.bal index 516a55f..8c3c28c 100644 Binary files a/B4A/Files/login.bal and b/B4A/Files/login.bal differ diff --git a/B4A/Files/principal.bal b/B4A/Files/principal.bal index db9553d..caf2871 100644 Binary files a/B4A/Files/principal.bal and b/B4A/Files/principal.bal differ diff --git a/B4A/GUNA_Reparto.b4a b/B4A/GUNA_Reparto.b4a index 00f2d92..17a1622 100644 --- a/B4A/GUNA_Reparto.b4a +++ b/B4A/GUNA_Reparto.b4a @@ -1,70 +1,2220 @@ Build1=Default,reparto_guna.keymon.lat,HU2_PUBLIC File1=alert2.png -File10=guna_viejo.png -File11=guna_viejo2.png -File12=historico.bal -File13=icon_22-[convertido].png -File14=intmex_logo_192x192.jpg -File15=itembuttonblue.png -File16=kelloggs.png -File17=login.bal -File18=logo_mariana.jpeg -File19=logo_mariana.jpg -File2=cliente.bal -File20=logo-guna-18.png -File21=MainPage.bal -File22=mapa_cliente.bal -File23=mariana_logo_192x192.jpg -File24=no_venta.bal -File25=picking.bal -File26=planfia_logo.png -File27=principal.bal -File28=proditem.bal -File29=productos.bal -File3=clientes.bal -File30=profina.jpg -File31=PROFINA.png -File32=SALMA13.png -File33=sync.png -File4=dbc.png -File5=detalleVenta.bal -File6=durakelo1.png -File7=engrane.jpg -File8=fondo_kmt.jpg -File9=foto.bal +File10=engrane.jpg +File100=marker-azul1-14.png +File1000=marker-verde-150.png +File1001=marker-verde-16.png +File1002=marker-verde-17.png +File1003=marker-verde-18.png +File1004=marker-verde-19.png +File1005=marker-verde-2.png +File1006=marker-verde-20.png +File1007=marker-verde-21.png +File1008=marker-verde-22.png +File1009=marker-verde-23.png +File101=marker-azul-114.png +File1010=marker-verde-24.png +File1011=marker-verde-25.png +File1012=marker-verde-26.png +File1013=marker-verde-27.png +File1014=marker-verde-28.png +File1015=marker-verde-29.png +File1016=marker-verde-3.png +File1017=marker-verde-30.png +File1018=marker-verde-31.png +File1019=marker-verde-32.png +File102=marker-azul1-140.png +File1020=marker-verde-33.png +File1021=marker-verde-34.png +File1022=marker-verde-35.png +File1023=marker-verde-36.png +File1024=marker-verde-37.png +File1025=marker-verde-38.png +File1026=marker-verde-39.png +File1027=marker-verde-4.png +File1028=marker-verde-40.png +File1029=marker-verde-41.png +File103=marker-azul1-141.png +File1030=marker-verde-42.png +File1031=marker-verde-43.png +File1032=marker-verde-44.png +File1033=marker-verde-45.png +File1034=marker-verde-46.png +File1035=marker-verde-47.png +File1036=marker-verde-48.png +File1037=marker-verde-49.png +File1038=marker-verde-5.png +File1039=marker-verde-50.png +File104=marker-azul1-142.png +File1040=marker-verde-51.png +File1041=marker-verde-52.png +File1042=marker-verde-53.png +File1043=marker-verde-54.png +File1044=marker-verde-55.png +File1045=marker-verde-56.png +File1046=marker-verde-57.png +File1047=marker-verde-58.png +File1048=marker-verde-59.png +File1049=marker-verde-6.png +File105=marker-azul1-143.png +File1050=marker-verde-60.png +File1051=marker-verde-61.png +File1052=marker-verde-62.png +File1053=marker-verde-63.png +File1054=marker-verde-64.png +File1055=marker-verde-65.png +File1056=marker-verde-66.png +File1057=marker-verde-67.png +File1058=marker-verde-68.png +File1059=marker-verde-69.png +File106=marker-azul1-144.png +File1060=marker-verde-7.png +File1061=marker-verde-70.png +File1062=marker-verde-71.png +File1063=marker-verde-72.png +File1064=marker-verde-73.png +File1065=marker-verde-74.png +File1066=marker-verde-75.png +File1067=marker-verde-76.png +File1068=marker-verde-77.png +File1069=marker-verde-78.png +File107=marker-azul1-145.png +File1070=marker-verde-79.png +File1071=marker-verde-8.png +File1072=marker-verde-80.png +File1073=marker-verde-81.png +File1074=marker-verde-82.png +File1075=marker-verde-83.png +File1076=marker-verde-84.png +File1077=marker-verde-85.png +File1078=marker-verde-86.png +File1079=marker-verde-87.png +File108=marker-azul1-146.png +File1080=marker-verde-88.png +File1081=marker-verde-89.png +File1082=marker-verde-9.png +File1083=marker-verde-90.png +File1084=marker-verde-91.png +File1085=marker-verde-92.png +File1086=marker-verde-93.png +File1087=marker-verde-94.png +File1088=marker-verde-95.png +File1089=marker-verde-96.png +File109=marker-azul1-147.png +File1090=marker-verde-97.png +File1091=marker-verde-98.png +File1092=marker-verde-99.png +File1093=no_venta.bal +File1094=nuevocliente.bal +File1095=pedido.bal +File1096=picking.bal +File1097=planfia_logo.png +File1098=planfia_logo_old.png +File1099=planfia_logo_old2.png +File11=fondo_kmt.jpg +File110=marker-azul1-148.png +File1100=principal.bal +File1101=proditem.bal +File1102=productos.bal +File1103=profina.jpg +File1104=PROFINA.png +File1105=SALMA13.png +File1106=sync.png +File1107=tabulador.bal +File1108=telefonos.bal +File111=marker-azul1-149.png +File112=marker-azul1-15.png +File113=marker-azul-115.png +File114=marker-azul1-150.png +File115=marker-azul1-16.png +File116=marker-azul-116.png +File117=marker-azul1-17.png +File118=marker-azul-117.png +File119=marker-azul1-18.png +File12=foto.bal +File120=marker-azul-118.png +File121=marker-azul1-19.png +File122=marker-azul-119.png +File123=marker-azul1-2.png +File124=marker-azul-12.png +File125=marker-azul1-20.png +File126=marker-azul-120.png +File127=marker-azul1-21.png +File128=marker-azul-121.png +File129=marker-azul1-22.png +File13=guardagestion.bal +File130=marker-azul-122.png +File131=marker-azul1-23.png +File132=marker-azul-123.png +File133=marker-azul1-24.png +File134=marker-azul-124.png +File135=marker-azul1-25.png +File136=marker-azul-125.png +File137=marker-azul1-26.png +File138=marker-azul-126.png +File139=marker-azul1-27.png +File14=guna_viejo.png +File140=marker-azul-127.png +File141=marker-azul1-28.png +File142=marker-azul-128.png +File143=marker-azul1-29.png +File144=marker-azul-129.png +File145=marker-azul1-3.png +File146=marker-azul-13.png +File147=marker-azul1-30.png +File148=marker-azul-130.png +File149=marker-azul1-31.png +File15=guna_viejo2.png +File150=marker-azul-131.png +File151=marker-azul1-32.png +File152=marker-azul-132.png +File153=marker-azul1-33.png +File154=marker-azul-133.png +File155=marker-azul1-34.png +File156=marker-azul-134.png +File157=marker-azul1-35.png +File158=marker-azul-135.png +File159=marker-azul1-36.png +File16=historico.bal +File160=marker-azul-136.png +File161=marker-azul1-37.png +File162=marker-azul-137.png +File163=marker-azul1-38.png +File164=marker-azul-138.png +File165=marker-azul1-39.png +File166=marker-azul-139.png +File167=marker-azul1-4.png +File168=marker-azul-14.png +File169=marker-azul1-40.png +File17=icon_22-[convertido].png +File170=marker-azul-140.png +File171=marker-azul1-41.png +File172=marker-azul-141.png +File173=marker-azul1-42.png +File174=marker-azul-142.png +File175=marker-azul1-43.png +File176=marker-azul-143.png +File177=marker-azul1-44.png +File178=marker-azul-144.png +File179=marker-azul1-45.png +File18=infonavit1.jpg +File180=marker-azul-145.png +File181=marker-azul1-46.png +File182=marker-azul-146.png +File183=marker-azul1-47.png +File184=marker-azul-147.png +File185=marker-azul1-48.png +File186=marker-azul-148.png +File187=marker-azul1-49.png +File188=marker-azul-149.png +File189=marker-azul1-5.png +File19=itembuttonblue.png +File190=marker-azul-15.png +File191=marker-azul1-50.png +File192=marker-azul-150.png +File193=marker-azul1-51.png +File194=marker-azul1-52.png +File195=marker-azul1-53.png +File196=marker-azul1-54.png +File197=marker-azul1-55.png +File198=marker-azul1-56.png +File199=marker-azul1-57.png +File2=alerta.jpg +File20=kelloggs.png +File200=marker-azul1-58.png +File201=marker-azul1-59.png +File202=marker-azul1-6.png +File203=marker-azul-16.png +File204=marker-azul1-60.png +File205=marker-azul1-61.png +File206=marker-azul1-62.png +File207=marker-azul1-63.png +File208=marker-azul1-64.png +File209=marker-azul1-65.png +File21=keymon_logo.png +File210=marker-azul1-66.png +File211=marker-azul1-67.png +File212=marker-azul1-68.png +File213=marker-azul1-69.png +File214=marker-azul1-7.png +File215=marker-azul-17.png +File216=marker-azul1-70.png +File217=marker-azul1-71.png +File218=marker-azul1-72.png +File219=marker-azul1-73.png +File22=kmt.db +File220=marker-azul1-74.png +File221=marker-azul1-75.png +File222=marker-azul1-76.png +File223=marker-azul1-77.png +File224=marker-azul1-78.png +File225=marker-azul1-79.png +File226=marker-azul1-8.png +File227=marker-azul-18.png +File228=marker-azul1-80.png +File229=marker-azul1-81.png +File23=kmt2.db +File230=marker-azul1-82.png +File231=marker-azul1-83.png +File232=marker-azul1-84.png +File233=marker-azul1-85.png +File234=marker-azul1-86.png +File235=marker-azul1-87.png +File236=marker-azul1-88.png +File237=marker-azul1-89.png +File238=marker-azul1-9.png +File239=marker-azul-19.png +File24=kmt3.db +File240=marker-azul1-90.png +File241=marker-azul1-91.png +File242=marker-azul1-92.png +File243=marker-azul1-93.png +File244=marker-azul1-94.png +File245=marker-azul1-95.png +File246=marker-azul1-96.png +File247=marker-azul1-97.png +File248=marker-azul1-98.png +File249=marker-azul1-99.png +File25=login.bal +File250=marker-azul-2.png +File251=marker-azul2-0.png +File252=marker-azul-20.png +File253=marker-azul2-1.png +File254=marker-azul-21.png +File255=marker-azul2-10.png +File256=marker-azul2-100.png +File257=marker-azul2-101.png +File258=marker-azul2-102.png +File259=marker-azul2-103.png +File26=logo sanfer.jpg +File260=marker-azul2-104.png +File261=marker-azul2-105.png +File262=marker-azul2-106.png +File263=marker-azul2-107.png +File264=marker-azul2-108.png +File265=marker-azul2-109.png +File266=marker-azul2-11.png +File267=marker-azul2-110.png +File268=marker-azul2-111.png +File269=marker-azul2-112.png +File27=logo_exitus1.jpg +File270=marker-azul2-113.png +File271=marker-azul2-114.png +File272=marker-azul2-115.png +File273=marker-azul2-116.png +File274=marker-azul2-117.png +File275=marker-azul2-118.png +File276=marker-azul2-119.png +File277=marker-azul2-12.png +File278=marker-azul2-120.png +File279=marker-azul2-121.png +File28=logo_mariana.jpg +File280=marker-azul2-122.png +File281=marker-azul2-123.png +File282=marker-azul2-124.png +File283=marker-azul2-125.png +File284=marker-azul2-126.png +File285=marker-azul2-127.png +File286=marker-azul2-128.png +File287=marker-azul2-129.png +File288=marker-azul2-13.png +File289=marker-azul2-130.png +File29=logo-guna-18.png +File290=marker-azul2-131.png +File291=marker-azul2-132.png +File292=marker-azul2-133.png +File293=marker-azul2-134.png +File294=marker-azul2-135.png +File295=marker-azul2-136.png +File296=marker-azul2-137.png +File297=marker-azul2-138.png +File298=marker-azul2-139.png +File299=marker-azul2-14.png +File3=buscar.bal +File30=MainPage.bal +File300=marker-azul2-140.png +File301=marker-azul2-141.png +File302=marker-azul2-142.png +File303=marker-azul2-143.png +File304=marker-azul2-144.png +File305=marker-azul2-145.png +File306=marker-azul2-146.png +File307=marker-azul2-147.png +File308=marker-azul2-148.png +File309=marker-azul2-149.png +File31=malo.jpg +File310=marker-azul2-15.png +File311=marker-azul2-150.png +File312=marker-azul2-16.png +File313=marker-azul2-17.png +File314=marker-azul2-18.png +File315=marker-azul2-19.png +File316=marker-azul2-2.png +File317=marker-azul-22.png +File318=marker-azul2-20.png +File319=marker-azul2-21.png +File32=mapa.bal +File320=marker-azul2-22.png +File321=marker-azul2-23.png +File322=marker-azul2-24.png +File323=marker-azul2-25.png +File324=marker-azul2-26.png +File325=marker-azul2-27.png +File326=marker-azul2-28.png +File327=marker-azul2-29.png +File328=marker-azul2-3.png +File329=marker-azul-23.png +File33=mapa_cliente.bal +File330=marker-azul2-30.png +File331=marker-azul2-31.png +File332=marker-azul2-32.png +File333=marker-azul2-33.png +File334=marker-azul2-34.png +File335=marker-azul2-35.png +File336=marker-azul2-36.png +File337=marker-azul2-37.png +File338=marker-azul2-38.png +File339=marker-azul2-39.png +File34=mapa_rutas.bal +File340=marker-azul2-4.png +File341=marker-azul-24.png +File342=marker-azul2-40.png +File343=marker-azul2-41.png +File344=marker-azul2-42.png +File345=marker-azul2-43.png +File346=marker-azul2-44.png +File347=marker-azul2-45.png +File348=marker-azul2-46.png +File349=marker-azul2-47.png +File35=mariana_logo_192x192.jpg +File350=marker-azul2-48.png +File351=marker-azul2-49.png +File352=marker-azul2-5.png +File353=marker-azul-25.png +File354=marker-azul2-50.png +File355=marker-azul2-51.png +File356=marker-azul2-52.png +File357=marker-azul2-53.png +File358=marker-azul2-54.png +File359=marker-azul2-55.png +File36=marker-azul-0.png +File360=marker-azul2-56.png +File361=marker-azul2-57.png +File362=marker-azul2-58.png +File363=marker-azul2-59.png +File364=marker-azul2-6.png +File365=marker-azul-26.png +File366=marker-azul2-60.png +File367=marker-azul2-61.png +File368=marker-azul2-62.png +File369=marker-azul2-63.png +File37=marker-azul-1.png +File370=marker-azul2-64.png +File371=marker-azul2-65.png +File372=marker-azul2-66.png +File373=marker-azul2-67.png +File374=marker-azul2-68.png +File375=marker-azul2-69.png +File376=marker-azul2-7.png +File377=marker-azul-27.png +File378=marker-azul2-70.png +File379=marker-azul2-71.png +File38=marker-azul1-0.png +File380=marker-azul2-72.png +File381=marker-azul2-73.png +File382=marker-azul2-74.png +File383=marker-azul2-75.png +File384=marker-azul2-76.png +File385=marker-azul2-77.png +File386=marker-azul2-78.png +File387=marker-azul2-79.png +File388=marker-azul2-8.png +File389=marker-azul-28.png +File39=marker-azul-10.png +File390=marker-azul2-80.png +File391=marker-azul2-81.png +File392=marker-azul2-82.png +File393=marker-azul2-83.png +File394=marker-azul2-84.png +File395=marker-azul2-85.png +File396=marker-azul2-86.png +File397=marker-azul2-87.png +File398=marker-azul2-88.png +File399=marker-azul2-89.png +File4=cliente.bal +File40=marker-azul-100.png +File400=marker-azul2-9.png +File401=marker-azul-29.png +File402=marker-azul2-90.png +File403=marker-azul2-91.png +File404=marker-azul2-92.png +File405=marker-azul2-93.png +File406=marker-azul2-94.png +File407=marker-azul2-95.png +File408=marker-azul2-96.png +File409=marker-azul2-97.png +File41=marker-azul-101.png +File410=marker-azul2-98.png +File411=marker-azul2-99.png +File412=marker-azul-3.png +File413=marker-azul-30.png +File414=marker-azul-31.png +File415=marker-azul-32.png +File416=marker-azul-33.png +File417=marker-azul-34.png +File418=marker-azul-35.png +File419=marker-azul-36.png +File42=marker-azul-102.png +File420=marker-azul-37.png +File421=marker-azul-38.png +File422=marker-azul-39.png +File423=marker-azul-4.png +File424=marker-azul-40.png +File425=marker-azul-41.png +File426=marker-azul-42.png +File427=marker-azul-43.png +File428=marker-azul-44.png +File429=marker-azul-45.png +File43=marker-azul-103.png +File430=marker-azul-46.png +File431=marker-azul-47.png +File432=marker-azul-48.png +File433=marker-azul-49.png +File434=marker-azul-5.png +File435=marker-azul-50.png +File436=marker-azul-51.png +File437=marker-azul-52.png +File438=marker-azul-53.png +File439=marker-azul-54.png +File44=marker-azul-104.png +File440=marker-azul-55.png +File441=marker-azul-56.png +File442=marker-azul-57.png +File443=marker-azul-58.png +File444=marker-azul-59.png +File445=marker-azul-6.png +File446=marker-azul-60.png +File447=marker-azul-61.png +File448=marker-azul-62.png +File449=marker-azul-63.png +File45=marker-azul-105.png +File450=marker-azul-64.png +File451=marker-azul-65.png +File452=marker-azul-66.png +File453=marker-azul-67.png +File454=marker-azul-68.png +File455=marker-azul-69.png +File456=marker-azul-7.png +File457=marker-azul-70.png +File458=marker-azul-71.png +File459=marker-azul-72.png +File46=marker-azul-106.png +File460=marker-azul-73.png +File461=marker-azul-74.png +File462=marker-azul-75.png +File463=marker-azul-76.png +File464=marker-azul-77.png +File465=marker-azul-78.png +File466=marker-azul-79.png +File467=marker-azul-8.png +File468=marker-azul-80.png +File469=marker-azul-81.png +File47=marker-azul-107.png +File470=marker-azul-82.png +File471=marker-azul-83.png +File472=marker-azul-84.png +File473=marker-azul-85.png +File474=marker-azul-86.png +File475=marker-azul-87.png +File476=marker-azul-88.png +File477=marker-azul-89.png +File478=marker-azul-9.png +File479=marker-azul-90.png +File48=marker-azul-108.png +File480=marker-azul-91.png +File481=marker-azul-92.png +File482=marker-azul-93.png +File483=marker-azul-94.png +File484=marker-azul-95.png +File485=marker-azul-96.png +File486=marker-azul-97.png +File487=marker-azul-98.png +File488=marker-azul-99.png +File489=marker-rojo-0.png +File49=marker-azul-109.png +File490=marker-rojo-1.png +File491=marker-rojo1-0.png +File492=marker-rojo-10.png +File493=marker-rojo-100.png +File494=marker-rojo-101.png +File495=marker-rojo-102.png +File496=marker-rojo-103.png +File497=marker-rojo-104.png +File498=marker-rojo-105.png +File499=marker-rojo-106.png +File5=clientes.bal +File50=marker-azul1-1.png +File500=marker-rojo-107.png +File501=marker-rojo-108.png +File502=marker-rojo-109.png +File503=marker-rojo1-1.png +File504=marker-rojo-11.png +File505=marker-rojo1-10.png +File506=marker-rojo-110.png +File507=marker-rojo1-100.png +File508=marker-rojo1-101.png +File509=marker-rojo1-102.png +File51=marker-azul-11.png +File510=marker-rojo1-103.png +File511=marker-rojo1-104.png +File512=marker-rojo1-105.png +File513=marker-rojo1-106.png +File514=marker-rojo1-107.png +File515=marker-rojo1-108.png +File516=marker-rojo1-109.png +File517=marker-rojo1-11.png +File518=marker-rojo-111.png +File519=marker-rojo1-110.png +File52=marker-azul1-10.png +File520=marker-rojo1-111.png +File521=marker-rojo1-112.png +File522=marker-rojo1-113.png +File523=marker-rojo1-114.png +File524=marker-rojo1-115.png +File525=marker-rojo1-116.png +File526=marker-rojo1-117.png +File527=marker-rojo1-118..png +File528=marker-rojo1-119.png +File529=marker-rojo1-12.png +File53=marker-azul-110.png +File530=marker-rojo-112.png +File531=marker-rojo1-120.png +File532=marker-rojo1-121.png +File533=marker-rojo1-122.png +File534=marker-rojo1-123.png +File535=marker-rojo1-124.png +File536=marker-rojo1-125.png +File537=marker-rojo1-126.png +File538=marker-rojo1-127.png +File539=marker-rojo1-128.png +File54=marker-azul1-100.png +File540=marker-rojo1-129.png +File541=marker-rojo1-13.png +File542=marker-rojo-113.png +File543=marker-rojo1-130.png +File544=marker-rojo1-131.png +File545=marker-rojo1-132.png +File546=marker-rojo1-133.png +File547=marker-rojo1-134.png +File548=marker-rojo1-135.png +File549=marker-rojo1-136.png +File55=marker-azul1-101.png +File550=marker-rojo1-137.png +File551=marker-rojo1-138.png +File552=marker-rojo1-139.png +File553=marker-rojo1-14.png +File554=marker-rojo-114.png +File555=marker-rojo1-140.png +File556=marker-rojo1-141.png +File557=marker-rojo1-142.png +File558=marker-rojo1-143.png +File559=marker-rojo1-144.png +File56=marker-azul1-102.png +File560=marker-rojo1-145.png +File561=marker-rojo1-146.png +File562=marker-rojo1-147.png +File563=marker-rojo1-148.png +File564=marker-rojo1-149.png +File565=marker-rojo1-15.png +File566=marker-rojo-115.png +File567=marker-rojo1-150.png +File568=marker-rojo1-16.png +File569=marker-rojo-116.png +File57=marker-azul1-103.png +File570=marker-rojo1-17.png +File571=marker-rojo-117.png +File572=marker-rojo1-18.png +File573=marker-rojo-118.png +File574=marker-rojo1-19.png +File575=marker-rojo-119.png +File576=marker-rojo1-2.png +File577=marker-rojo-12.png +File578=marker-rojo1-20.png +File579=marker-rojo-120.png +File58=marker-azul1-104.png +File580=marker-rojo1-21.png +File581=marker-rojo-121.png +File582=marker-rojo1-22.png +File583=marker-rojo-122.png +File584=marker-rojo1-23.png +File585=marker-rojo-123.png +File586=marker-rojo1-24.png +File587=marker-rojo-124.png +File588=marker-rojo1-25.png +File589=marker-rojo-125.png +File59=marker-azul1-105.png +File590=marker-rojo1-26.png +File591=marker-rojo-126.png +File592=marker-rojo1-27.png +File593=marker-rojo-127.png +File594=marker-rojo1-28.png +File595=marker-rojo-128.png +File596=marker-rojo1-29.png +File597=marker-rojo-129.png +File598=marker-rojo1-3.png +File599=marker-rojo-13.png +File6=dbc.png +File60=marker-azul1-106.png +File600=marker-rojo1-30.png +File601=marker-rojo-130.png +File602=marker-rojo1-31.png +File603=marker-rojo-131.png +File604=marker-rojo1-32.png +File605=marker-rojo-132.png +File606=marker-rojo1-33.png +File607=marker-rojo-133.png +File608=marker-rojo1-34.png +File609=marker-rojo-134.png +File61=marker-azul1-107.png +File610=marker-rojo1-35.png +File611=marker-rojo-135.png +File612=marker-rojo1-36.png +File613=marker-rojo-136.png +File614=marker-rojo1-37.png +File615=marker-rojo-137.png +File616=marker-rojo1-38.png +File617=marker-rojo-138.png +File618=marker-rojo1-39.png +File619=marker-rojo-139.png +File62=marker-azul1-108.png +File620=marker-rojo1-4.png +File621=marker-rojo-14.png +File622=marker-rojo1-40.png +File623=marker-rojo-140.png +File624=marker-rojo1-41.png +File625=marker-rojo-141.png +File626=marker-rojo1-42.png +File627=marker-rojo-142.png +File628=marker-rojo1-43.png +File629=marker-rojo-143.png +File63=marker-azul1-109.png +File630=marker-rojo1-44.png +File631=marker-rojo-144.png +File632=marker-rojo1-45.png +File633=marker-rojo-145.png +File634=marker-rojo1-46.png +File635=marker-rojo-146.png +File636=marker-rojo1-47.png +File637=marker-rojo-147.png +File638=marker-rojo1-48.png +File639=marker-rojo-148.png +File64=marker-azul1-11.png +File640=marker-rojo1-49.png +File641=marker-rojo-149.png +File642=marker-rojo1-5.png +File643=marker-rojo-15.png +File644=marker-rojo1-50.png +File645=marker-rojo-150.png +File646=marker-rojo1-51.png +File647=marker-rojo1-52.png +File648=marker-rojo1-53.png +File649=marker-rojo1-54.png +File65=marker-azul-111.png +File650=marker-rojo1-55.png +File651=marker-rojo1-56.png +File652=marker-rojo1-57.png +File653=marker-rojo1-58.png +File654=marker-rojo1-59.png +File655=marker-rojo1-6.png +File656=marker-rojo-16.png +File657=marker-rojo1-60.png +File658=marker-rojo1-61.png +File659=marker-rojo1-62.png +File66=marker-azul1-110.png +File660=marker-rojo1-63.png +File661=marker-rojo1-64.png +File662=marker-rojo1-65.png +File663=marker-rojo1-66.png +File664=marker-rojo1-67.png +File665=marker-rojo1-68.png +File666=marker-rojo1-69.png +File667=marker-rojo1-7.png +File668=marker-rojo-17.png +File669=marker-rojo1-70.png +File67=marker-azul1-111.png +File670=marker-rojo1-71.png +File671=marker-rojo1-72.png +File672=marker-rojo1-73.png +File673=marker-rojo1-74.png +File674=marker-rojo1-75.png +File675=marker-rojo1-76.png +File676=marker-rojo1-77.png +File677=marker-rojo1-78.png +File678=marker-rojo1-79.png +File679=marker-rojo1-8.png +File68=marker-azul1-112.png +File680=marker-rojo-18.png +File681=marker-rojo1-80.png +File682=marker-rojo1-81.png +File683=marker-rojo1-82.png +File684=marker-rojo1-83.png +File685=marker-rojo1-84.png +File686=marker-rojo1-85.png +File687=marker-rojo1-86.png +File688=marker-rojo1-87.png +File689=marker-rojo1-88.png +File69=marker-azul1-113.png +File690=marker-rojo1-89.png +File691=marker-rojo1-9.png +File692=marker-rojo-19.png +File693=marker-rojo1-90.png +File694=marker-rojo1-91.png +File695=marker-rojo1-92.png +File696=marker-rojo1-93.png +File697=marker-rojo1-94.png +File698=marker-rojo1-95.png +File699=marker-rojo1-96.png +File7=detalle_promo.bal +File70=marker-azul1-114.png +File700=marker-rojo1-97.png +File701=marker-rojo1-98.png +File702=marker-rojo1-99.png +File703=marker-rojo-2.png +File704=marker-rojo2-0.png +File705=marker-rojo-20.png +File706=marker-rojo2-1.png +File707=marker-rojo-21.png +File708=marker-rojo2-10.png +File709=marker-rojo2-100.png +File71=marker-azul1-115.png +File710=marker-rojo2-101.png +File711=marker-rojo2-102.png +File712=marker-rojo2-103.png +File713=marker-rojo2-104.png +File714=marker-rojo2-105.png +File715=marker-rojo2-106.png +File716=marker-rojo2-107.png +File717=marker-rojo2-108.png +File718=marker-rojo2-109.png +File719=marker-rojo2-11.png +File72=marker-azul1-116.png +File720=marker-rojo2-110.png +File721=marker-rojo2-111.png +File722=marker-rojo2-112.png +File723=marker-rojo2-113.png +File724=marker-rojo2-114.png +File725=marker-rojo2-115.png +File726=marker-rojo2-116.png +File727=marker-rojo2-117.png +File728=marker-rojo2-118.png +File729=marker-rojo2-119.png +File73=marker-azul1-117.png +File730=marker-rojo2-12.png +File731=marker-rojo2-120.png +File732=marker-rojo2-121.png +File733=marker-rojo2-122.png +File734=marker-rojo2-123.png +File735=marker-rojo2-124.png +File736=marker-rojo2-125.png +File737=marker-rojo2-126.png +File738=marker-rojo2-127.png +File739=marker-rojo2-128.png +File74=marker-azul1-118.png +File740=marker-rojo2-129.png +File741=marker-rojo2-13.png +File742=marker-rojo2-130.png +File743=marker-rojo2-131.png +File744=marker-rojo2-132.png +File745=marker-rojo2-133.png +File746=marker-rojo2-134.png +File747=marker-rojo2-135.png +File748=marker-rojo2-136.png +File749=marker-rojo2-137.png +File75=marker-azul1-119.png +File750=marker-rojo2-138.png +File751=marker-rojo2-139.png +File752=marker-rojo2-14.png +File753=marker-rojo2-140.png +File754=marker-rojo2-141.png +File755=marker-rojo2-142.png +File756=marker-rojo2-143.png +File757=marker-rojo2-144.png +File758=marker-rojo2-145.png +File759=marker-rojo2-146.png +File76=marker-azul1-12.png +File760=marker-rojo2-147.png +File761=marker-rojo2-148.png +File762=marker-rojo2-149.png +File763=marker-rojo2-15.png +File764=marker-rojo2-150.png +File765=marker-rojo2-16.png +File766=marker-rojo2-17.png +File767=marker-rojo2-18.png +File768=marker-rojo2-19.png +File769=marker-rojo2-2.png +File77=marker-azul-112.png +File770=marker-rojo-22.png +File771=marker-rojo2-20.png +File772=marker-rojo2-21.png +File773=marker-rojo2-22.png +File774=marker-rojo2-23.png +File775=marker-rojo2-24.png +File776=marker-rojo2-25.png +File777=marker-rojo2-26.png +File778=marker-rojo2-27.png +File779=marker-rojo2-28.png +File78=marker-azul1-120.png +File780=marker-rojo2-29.png +File781=marker-rojo2-3.png +File782=marker-rojo-23.png +File783=marker-rojo2-30.png +File784=marker-rojo2-31.png +File785=marker-rojo2-32.png +File786=marker-rojo2-33.png +File787=marker-rojo2-34.png +File788=marker-rojo2-35.png +File789=marker-rojo2-36.png +File79=marker-azul1-121.png +File790=marker-rojo2-37.png +File791=marker-rojo2-38.png +File792=marker-rojo2-39.png +File793=marker-rojo2-4.png +File794=marker-rojo-24.png +File795=marker-rojo2-40.png +File796=marker-rojo2-41.png +File797=marker-rojo2-42.png +File798=marker-rojo2-43.png +File799=marker-rojo2-44.png +File8=detalleVenta.bal +File80=marker-azul1-122.png +File800=marker-rojo2-45.png +File801=marker-rojo2-46.png +File802=marker-rojo2-47.png +File803=marker-rojo2-48.png +File804=marker-rojo2-49.png +File805=marker-rojo2-5.png +File806=marker-rojo-25.png +File807=marker-rojo2-50.png +File808=marker-rojo2-51.png +File809=marker-rojo2-52.png +File81=marker-azul1-123.png +File810=marker-rojo2-53.png +File811=marker-rojo2-54.png +File812=marker-rojo2-55.png +File813=marker-rojo2-56.png +File814=marker-rojo2-57.png +File815=marker-rojo2-58.png +File816=marker-rojo2-59.png +File817=marker-rojo2-6.png +File818=marker-rojo-26.png +File819=marker-rojo2-60.png +File82=marker-azul1-124.png +File820=marker-rojo2-61.png +File821=marker-rojo2-62.png +File822=marker-rojo2-63.png +File823=marker-rojo2-64.png +File824=marker-rojo2-65.png +File825=marker-rojo2-66.png +File826=marker-rojo2-67.png +File827=marker-rojo2-68.png +File828=marker-rojo2-69.png +File829=marker-rojo2-7.png +File83=marker-azul1-125.png +File830=marker-rojo-27.png +File831=marker-rojo2-70.png +File832=marker-rojo2-71.png +File833=marker-rojo2-72.png +File834=marker-rojo2-73.png +File835=marker-rojo2-74.png +File836=marker-rojo2-75.png +File837=marker-rojo2-76.png +File838=marker-rojo2-77.png +File839=marker-rojo2-78.png +File84=marker-azul1-126.png +File840=marker-rojo2-79.png +File841=marker-rojo2-8.png +File842=marker-rojo-28.png +File843=marker-rojo2-80.png +File844=marker-rojo2-81.png +File845=marker-rojo2-82.png +File846=marker-rojo2-83.png +File847=marker-rojo2-84.png +File848=marker-rojo2-85.png +File849=marker-rojo2-86.png +File85=marker-azul1-127.png +File850=marker-rojo2-87.png +File851=marker-rojo2-88.png +File852=marker-rojo2-89.png +File853=marker-rojo2-9.png +File854=marker-rojo-29.png +File855=marker-rojo2-90.png +File856=marker-rojo2-91.png +File857=marker-rojo2-92.png +File858=marker-rojo2-93.png +File859=marker-rojo2-94.png +File86=marker-azul1-128.png +File860=marker-rojo2-95.png +File861=marker-rojo2-96.png +File862=marker-rojo2-97.png +File863=marker-rojo2-98.png +File864=marker-rojo2-99.png +File865=marker-rojo-3.png +File866=marker-rojo-30.png +File867=marker-rojo-31.png +File868=marker-rojo-32.png +File869=marker-rojo-33.png +File87=marker-azul1-129.png +File870=marker-rojo-34.png +File871=marker-rojo-35.png +File872=marker-rojo-36.png +File873=marker-rojo-37.png +File874=marker-rojo-38.png +File875=marker-rojo-39.png +File876=marker-rojo-4.png +File877=marker-rojo-40.png +File878=marker-rojo-41.png +File879=marker-rojo-42.png +File88=marker-azul1-13.png +File880=marker-rojo-43.png +File881=marker-rojo-44.png +File882=marker-rojo-45.png +File883=marker-rojo-46.png +File884=marker-rojo-47.png +File885=marker-rojo-48.png +File886=marker-rojo-49.png +File887=marker-rojo-5.png +File888=marker-rojo-50.png +File889=marker-rojo-51.png +File89=marker-azul-113.png +File890=marker-rojo-52.png +File891=marker-rojo-53.png +File892=marker-rojo-54.png +File893=marker-rojo-55.png +File894=marker-rojo-56.png +File895=marker-rojo-57.png +File896=marker-rojo-58.png +File897=marker-rojo-59.png +File898=marker-rojo-6.png +File899=marker-rojo-60.png +File9=durakelo1.png +File90=marker-azul1-130.png +File900=marker-rojo-61.png +File901=marker-rojo-62.png +File902=marker-rojo-63.png +File903=marker-rojo-64.png +File904=marker-rojo-65.png +File905=marker-rojo-66.png +File906=marker-rojo-67.png +File907=marker-rojo-68.png +File908=marker-rojo-69.png +File909=marker-rojo-7.png +File91=marker-azul1-131.png +File910=marker-rojo-70.png +File911=marker-rojo-71.png +File912=marker-rojo-72.png +File913=marker-rojo-73.png +File914=marker-rojo-74.png +File915=marker-rojo-75.png +File916=marker-rojo-76.png +File917=marker-rojo-77.png +File918=marker-rojo-78.png +File919=marker-rojo-79.png +File92=marker-azul1-132.png +File920=marker-rojo-8.png +File921=marker-rojo-80.png +File922=marker-rojo-81.png +File923=marker-rojo-82.png +File924=marker-rojo-83.png +File925=marker-rojo-84.png +File926=marker-rojo-85.png +File927=marker-rojo-86.png +File928=marker-rojo-87.png +File929=marker-rojo-88.png +File93=marker-azul1-133.png +File930=marker-rojo-89.png +File931=marker-rojo-9.png +File932=marker-rojo-90.png +File933=marker-rojo-91.png +File934=marker-rojo-92.png +File935=marker-rojo-93.png +File936=marker-rojo-94.png +File937=marker-rojo-95.png +File938=marker-rojo-96.png +File939=marker-rojo-97.png +File94=marker-azul1-134.png +File940=marker-rojo-98.png +File941=marker-rojo-99.png +File942=marker-verde-0.png +File943=marker-verde-1.png +File944=marker-verde-10.png +File945=marker-verde-100.png +File946=marker-verde-101.png +File947=marker-verde-102.png +File948=marker-verde-103.png +File949=marker-verde-104.png +File95=marker-azul1-135.png +File950=marker-verde-105.png +File951=marker-verde-106.png +File952=marker-verde-107.png +File953=marker-verde-108.png +File954=marker-verde-109.png +File955=marker-verde-11.png +File956=marker-verde-110.png +File957=marker-verde-111.png +File958=marker-verde-112.png +File959=marker-verde-113.png +File96=marker-azul1-136.png +File960=marker-verde-114.png +File961=marker-verde-115.png +File962=marker-verde-116.png +File963=marker-verde-117.png +File964=marker-verde-118.png +File965=marker-verde-119.png +File966=marker-verde-12.png +File967=marker-verde-120.png +File968=marker-verde-121.png +File969=marker-verde-122.png +File97=marker-azul1-137.png +File970=marker-verde-123.png +File971=marker-verde-124.png +File972=marker-verde-125.png +File973=marker-verde-126.png +File974=marker-verde-127.png +File975=marker-verde-128.png +File976=marker-verde-129.png +File977=marker-verde-13.png +File978=marker-verde-130.png +File979=marker-verde-131.png +File98=marker-azul1-138.png +File980=marker-verde-132.png +File981=marker-verde-133.png +File982=marker-verde-134.png +File983=marker-verde-135.png +File984=marker-verde-136.png +File985=marker-verde-137.png +File986=marker-verde-138.png +File987=marker-verde-139.png +File988=marker-verde-14.png +File989=marker-verde-140.png +File99=marker-azul1-139.png +File990=marker-verde-141.png +File991=marker-verde-142.png +File992=marker-verde-143.png +File993=marker-verde-144.png +File994=marker-verde-145.png +File995=marker-verde-146.png +File996=marker-verde-147.png +File997=marker-verde-148.png +File998=marker-verde-149.png +File999=marker-verde-15.png FileGroup1=Default Group FileGroup10=Default Group +FileGroup100=Default Group +FileGroup1000=Default Group +FileGroup1001=Default Group +FileGroup1002=Default Group +FileGroup1003=Default Group +FileGroup1004=Default Group +FileGroup1005=Default Group +FileGroup1006=Default Group +FileGroup1007=Default Group +FileGroup1008=Default Group +FileGroup1009=Default Group +FileGroup101=Default Group +FileGroup1010=Default Group +FileGroup1011=Default Group +FileGroup1012=Default Group +FileGroup1013=Default Group +FileGroup1014=Default Group +FileGroup1015=Default Group +FileGroup1016=Default Group +FileGroup1017=Default Group +FileGroup1018=Default Group +FileGroup1019=Default Group +FileGroup102=Default Group +FileGroup1020=Default Group +FileGroup1021=Default Group +FileGroup1022=Default Group +FileGroup1023=Default Group +FileGroup1024=Default Group +FileGroup1025=Default Group +FileGroup1026=Default Group +FileGroup1027=Default Group +FileGroup1028=Default Group +FileGroup1029=Default Group +FileGroup103=Default Group +FileGroup1030=Default Group +FileGroup1031=Default Group +FileGroup1032=Default Group +FileGroup1033=Default Group +FileGroup1034=Default Group +FileGroup1035=Default Group +FileGroup1036=Default Group +FileGroup1037=Default Group +FileGroup1038=Default Group +FileGroup1039=Default Group +FileGroup104=Default Group +FileGroup1040=Default Group +FileGroup1041=Default Group +FileGroup1042=Default Group +FileGroup1043=Default Group +FileGroup1044=Default Group +FileGroup1045=Default Group +FileGroup1046=Default Group +FileGroup1047=Default Group +FileGroup1048=Default Group +FileGroup1049=Default Group +FileGroup105=Default Group +FileGroup1050=Default Group +FileGroup1051=Default Group +FileGroup1052=Default Group +FileGroup1053=Default Group +FileGroup1054=Default Group +FileGroup1055=Default Group +FileGroup1056=Default Group +FileGroup1057=Default Group +FileGroup1058=Default Group +FileGroup1059=Default Group +FileGroup106=Default Group +FileGroup1060=Default Group +FileGroup1061=Default Group +FileGroup1062=Default Group +FileGroup1063=Default Group +FileGroup1064=Default Group +FileGroup1065=Default Group +FileGroup1066=Default Group +FileGroup1067=Default Group +FileGroup1068=Default Group +FileGroup1069=Default Group +FileGroup107=Default Group +FileGroup1070=Default Group +FileGroup1071=Default Group +FileGroup1072=Default Group +FileGroup1073=Default Group +FileGroup1074=Default Group +FileGroup1075=Default Group +FileGroup1076=Default Group +FileGroup1077=Default Group +FileGroup1078=Default Group +FileGroup1079=Default Group +FileGroup108=Default Group +FileGroup1080=Default Group +FileGroup1081=Default Group +FileGroup1082=Default Group +FileGroup1083=Default Group +FileGroup1084=Default Group +FileGroup1085=Default Group +FileGroup1086=Default Group +FileGroup1087=Default Group +FileGroup1088=Default Group +FileGroup1089=Default Group +FileGroup109=Default Group +FileGroup1090=Default Group +FileGroup1091=Default Group +FileGroup1092=Default Group +FileGroup1093=Default Group +FileGroup1094=Default Group +FileGroup1095=Default Group +FileGroup1096=Default Group +FileGroup1097=Default Group +FileGroup1098=Default Group +FileGroup1099=Default Group FileGroup11=Default Group +FileGroup110=Default Group +FileGroup1100=Default Group +FileGroup1101=Default Group +FileGroup1102=Default Group +FileGroup1103=Default Group +FileGroup1104=Default Group +FileGroup1105=Default Group +FileGroup1106=Default Group +FileGroup1107=Default Group +FileGroup1108=Default Group +FileGroup111=Default Group +FileGroup112=Default Group +FileGroup113=Default Group +FileGroup114=Default Group +FileGroup115=Default Group +FileGroup116=Default Group +FileGroup117=Default Group +FileGroup118=Default Group +FileGroup119=Default Group FileGroup12=Default Group +FileGroup120=Default Group +FileGroup121=Default Group +FileGroup122=Default Group +FileGroup123=Default Group +FileGroup124=Default Group +FileGroup125=Default Group +FileGroup126=Default Group +FileGroup127=Default Group +FileGroup128=Default Group +FileGroup129=Default Group FileGroup13=Default Group +FileGroup130=Default Group +FileGroup131=Default Group +FileGroup132=Default Group +FileGroup133=Default Group +FileGroup134=Default Group +FileGroup135=Default Group +FileGroup136=Default Group +FileGroup137=Default Group +FileGroup138=Default Group +FileGroup139=Default Group FileGroup14=Default Group +FileGroup140=Default Group +FileGroup141=Default Group +FileGroup142=Default Group +FileGroup143=Default Group +FileGroup144=Default Group +FileGroup145=Default Group +FileGroup146=Default Group +FileGroup147=Default Group +FileGroup148=Default Group +FileGroup149=Default Group FileGroup15=Default Group +FileGroup150=Default Group +FileGroup151=Default Group +FileGroup152=Default Group +FileGroup153=Default Group +FileGroup154=Default Group +FileGroup155=Default Group +FileGroup156=Default Group +FileGroup157=Default Group +FileGroup158=Default Group +FileGroup159=Default Group FileGroup16=Default Group +FileGroup160=Default Group +FileGroup161=Default Group +FileGroup162=Default Group +FileGroup163=Default Group +FileGroup164=Default Group +FileGroup165=Default Group +FileGroup166=Default Group +FileGroup167=Default Group +FileGroup168=Default Group +FileGroup169=Default Group FileGroup17=Default Group +FileGroup170=Default Group +FileGroup171=Default Group +FileGroup172=Default Group +FileGroup173=Default Group +FileGroup174=Default Group +FileGroup175=Default Group +FileGroup176=Default Group +FileGroup177=Default Group +FileGroup178=Default Group +FileGroup179=Default Group FileGroup18=Default Group +FileGroup180=Default Group +FileGroup181=Default Group +FileGroup182=Default Group +FileGroup183=Default Group +FileGroup184=Default Group +FileGroup185=Default Group +FileGroup186=Default Group +FileGroup187=Default Group +FileGroup188=Default Group +FileGroup189=Default Group FileGroup19=Default Group +FileGroup190=Default Group +FileGroup191=Default Group +FileGroup192=Default Group +FileGroup193=Default Group +FileGroup194=Default Group +FileGroup195=Default Group +FileGroup196=Default Group +FileGroup197=Default Group +FileGroup198=Default Group +FileGroup199=Default Group FileGroup2=Default Group FileGroup20=Default Group +FileGroup200=Default Group +FileGroup201=Default Group +FileGroup202=Default Group +FileGroup203=Default Group +FileGroup204=Default Group +FileGroup205=Default Group +FileGroup206=Default Group +FileGroup207=Default Group +FileGroup208=Default Group +FileGroup209=Default Group FileGroup21=Default Group +FileGroup210=Default Group +FileGroup211=Default Group +FileGroup212=Default Group +FileGroup213=Default Group +FileGroup214=Default Group +FileGroup215=Default Group +FileGroup216=Default Group +FileGroup217=Default Group +FileGroup218=Default Group +FileGroup219=Default Group FileGroup22=Default Group +FileGroup220=Default Group +FileGroup221=Default Group +FileGroup222=Default Group +FileGroup223=Default Group +FileGroup224=Default Group +FileGroup225=Default Group +FileGroup226=Default Group +FileGroup227=Default Group +FileGroup228=Default Group +FileGroup229=Default Group FileGroup23=Default Group +FileGroup230=Default Group +FileGroup231=Default Group +FileGroup232=Default Group +FileGroup233=Default Group +FileGroup234=Default Group +FileGroup235=Default Group +FileGroup236=Default Group +FileGroup237=Default Group +FileGroup238=Default Group +FileGroup239=Default Group FileGroup24=Default Group +FileGroup240=Default Group +FileGroup241=Default Group +FileGroup242=Default Group +FileGroup243=Default Group +FileGroup244=Default Group +FileGroup245=Default Group +FileGroup246=Default Group +FileGroup247=Default Group +FileGroup248=Default Group +FileGroup249=Default Group FileGroup25=Default Group +FileGroup250=Default Group +FileGroup251=Default Group +FileGroup252=Default Group +FileGroup253=Default Group +FileGroup254=Default Group +FileGroup255=Default Group +FileGroup256=Default Group +FileGroup257=Default Group +FileGroup258=Default Group +FileGroup259=Default Group FileGroup26=Default Group +FileGroup260=Default Group +FileGroup261=Default Group +FileGroup262=Default Group +FileGroup263=Default Group +FileGroup264=Default Group +FileGroup265=Default Group +FileGroup266=Default Group +FileGroup267=Default Group +FileGroup268=Default Group +FileGroup269=Default Group FileGroup27=Default Group +FileGroup270=Default Group +FileGroup271=Default Group +FileGroup272=Default Group +FileGroup273=Default Group +FileGroup274=Default Group +FileGroup275=Default Group +FileGroup276=Default Group +FileGroup277=Default Group +FileGroup278=Default Group +FileGroup279=Default Group FileGroup28=Default Group +FileGroup280=Default Group +FileGroup281=Default Group +FileGroup282=Default Group +FileGroup283=Default Group +FileGroup284=Default Group +FileGroup285=Default Group +FileGroup286=Default Group +FileGroup287=Default Group +FileGroup288=Default Group +FileGroup289=Default Group FileGroup29=Default Group +FileGroup290=Default Group +FileGroup291=Default Group +FileGroup292=Default Group +FileGroup293=Default Group +FileGroup294=Default Group +FileGroup295=Default Group +FileGroup296=Default Group +FileGroup297=Default Group +FileGroup298=Default Group +FileGroup299=Default Group FileGroup3=Default Group FileGroup30=Default Group +FileGroup300=Default Group +FileGroup301=Default Group +FileGroup302=Default Group +FileGroup303=Default Group +FileGroup304=Default Group +FileGroup305=Default Group +FileGroup306=Default Group +FileGroup307=Default Group +FileGroup308=Default Group +FileGroup309=Default Group FileGroup31=Default Group +FileGroup310=Default Group +FileGroup311=Default Group +FileGroup312=Default Group +FileGroup313=Default Group +FileGroup314=Default Group +FileGroup315=Default Group +FileGroup316=Default Group +FileGroup317=Default Group +FileGroup318=Default Group +FileGroup319=Default Group FileGroup32=Default Group +FileGroup320=Default Group +FileGroup321=Default Group +FileGroup322=Default Group +FileGroup323=Default Group +FileGroup324=Default Group +FileGroup325=Default Group +FileGroup326=Default Group +FileGroup327=Default Group +FileGroup328=Default Group +FileGroup329=Default Group FileGroup33=Default Group +FileGroup330=Default Group +FileGroup331=Default Group +FileGroup332=Default Group +FileGroup333=Default Group +FileGroup334=Default Group +FileGroup335=Default Group +FileGroup336=Default Group +FileGroup337=Default Group +FileGroup338=Default Group +FileGroup339=Default Group +FileGroup34=Default Group +FileGroup340=Default Group +FileGroup341=Default Group +FileGroup342=Default Group +FileGroup343=Default Group +FileGroup344=Default Group +FileGroup345=Default Group +FileGroup346=Default Group +FileGroup347=Default Group +FileGroup348=Default Group +FileGroup349=Default Group +FileGroup35=Default Group +FileGroup350=Default Group +FileGroup351=Default Group +FileGroup352=Default Group +FileGroup353=Default Group +FileGroup354=Default Group +FileGroup355=Default Group +FileGroup356=Default Group +FileGroup357=Default Group +FileGroup358=Default Group +FileGroup359=Default Group +FileGroup36=Default Group +FileGroup360=Default Group +FileGroup361=Default Group +FileGroup362=Default Group +FileGroup363=Default Group +FileGroup364=Default Group +FileGroup365=Default Group +FileGroup366=Default Group +FileGroup367=Default Group +FileGroup368=Default Group +FileGroup369=Default Group +FileGroup37=Default Group +FileGroup370=Default Group +FileGroup371=Default Group +FileGroup372=Default Group +FileGroup373=Default Group +FileGroup374=Default Group +FileGroup375=Default Group +FileGroup376=Default Group +FileGroup377=Default Group +FileGroup378=Default Group +FileGroup379=Default Group +FileGroup38=Default Group +FileGroup380=Default Group +FileGroup381=Default Group +FileGroup382=Default Group +FileGroup383=Default Group +FileGroup384=Default Group +FileGroup385=Default Group +FileGroup386=Default Group +FileGroup387=Default Group +FileGroup388=Default Group +FileGroup389=Default Group +FileGroup39=Default Group +FileGroup390=Default Group +FileGroup391=Default Group +FileGroup392=Default Group +FileGroup393=Default Group +FileGroup394=Default Group +FileGroup395=Default Group +FileGroup396=Default Group +FileGroup397=Default Group +FileGroup398=Default Group +FileGroup399=Default Group FileGroup4=Default Group +FileGroup40=Default Group +FileGroup400=Default Group +FileGroup401=Default Group +FileGroup402=Default Group +FileGroup403=Default Group +FileGroup404=Default Group +FileGroup405=Default Group +FileGroup406=Default Group +FileGroup407=Default Group +FileGroup408=Default Group +FileGroup409=Default Group +FileGroup41=Default Group +FileGroup410=Default Group +FileGroup411=Default Group +FileGroup412=Default Group +FileGroup413=Default Group +FileGroup414=Default Group +FileGroup415=Default Group +FileGroup416=Default Group +FileGroup417=Default Group +FileGroup418=Default Group +FileGroup419=Default Group +FileGroup42=Default Group +FileGroup420=Default Group +FileGroup421=Default Group +FileGroup422=Default Group +FileGroup423=Default Group +FileGroup424=Default Group +FileGroup425=Default Group +FileGroup426=Default Group +FileGroup427=Default Group +FileGroup428=Default Group +FileGroup429=Default Group +FileGroup43=Default Group +FileGroup430=Default Group +FileGroup431=Default Group +FileGroup432=Default Group +FileGroup433=Default Group +FileGroup434=Default Group +FileGroup435=Default Group +FileGroup436=Default Group +FileGroup437=Default Group +FileGroup438=Default Group +FileGroup439=Default Group +FileGroup44=Default Group +FileGroup440=Default Group +FileGroup441=Default Group +FileGroup442=Default Group +FileGroup443=Default Group +FileGroup444=Default Group +FileGroup445=Default Group +FileGroup446=Default Group +FileGroup447=Default Group +FileGroup448=Default Group +FileGroup449=Default Group +FileGroup45=Default Group +FileGroup450=Default Group +FileGroup451=Default Group +FileGroup452=Default Group +FileGroup453=Default Group +FileGroup454=Default Group +FileGroup455=Default Group +FileGroup456=Default Group +FileGroup457=Default Group +FileGroup458=Default Group +FileGroup459=Default Group +FileGroup46=Default Group +FileGroup460=Default Group +FileGroup461=Default Group +FileGroup462=Default Group +FileGroup463=Default Group +FileGroup464=Default Group +FileGroup465=Default Group +FileGroup466=Default Group +FileGroup467=Default Group +FileGroup468=Default Group +FileGroup469=Default Group +FileGroup47=Default Group +FileGroup470=Default Group +FileGroup471=Default Group +FileGroup472=Default Group +FileGroup473=Default Group +FileGroup474=Default Group +FileGroup475=Default Group +FileGroup476=Default Group +FileGroup477=Default Group +FileGroup478=Default Group +FileGroup479=Default Group +FileGroup48=Default Group +FileGroup480=Default Group +FileGroup481=Default Group +FileGroup482=Default Group +FileGroup483=Default Group +FileGroup484=Default Group +FileGroup485=Default Group +FileGroup486=Default Group +FileGroup487=Default Group +FileGroup488=Default Group +FileGroup489=Default Group +FileGroup49=Default Group +FileGroup490=Default Group +FileGroup491=Default Group +FileGroup492=Default Group +FileGroup493=Default Group +FileGroup494=Default Group +FileGroup495=Default Group +FileGroup496=Default Group +FileGroup497=Default Group +FileGroup498=Default Group +FileGroup499=Default Group FileGroup5=Default Group +FileGroup50=Default Group +FileGroup500=Default Group +FileGroup501=Default Group +FileGroup502=Default Group +FileGroup503=Default Group +FileGroup504=Default Group +FileGroup505=Default Group +FileGroup506=Default Group +FileGroup507=Default Group +FileGroup508=Default Group +FileGroup509=Default Group +FileGroup51=Default Group +FileGroup510=Default Group +FileGroup511=Default Group +FileGroup512=Default Group +FileGroup513=Default Group +FileGroup514=Default Group +FileGroup515=Default Group +FileGroup516=Default Group +FileGroup517=Default Group +FileGroup518=Default Group +FileGroup519=Default Group +FileGroup52=Default Group +FileGroup520=Default Group +FileGroup521=Default Group +FileGroup522=Default Group +FileGroup523=Default Group +FileGroup524=Default Group +FileGroup525=Default Group +FileGroup526=Default Group +FileGroup527=Default Group +FileGroup528=Default Group +FileGroup529=Default Group +FileGroup53=Default Group +FileGroup530=Default Group +FileGroup531=Default Group +FileGroup532=Default Group +FileGroup533=Default Group +FileGroup534=Default Group +FileGroup535=Default Group +FileGroup536=Default Group +FileGroup537=Default Group +FileGroup538=Default Group +FileGroup539=Default Group +FileGroup54=Default Group +FileGroup540=Default Group +FileGroup541=Default Group +FileGroup542=Default Group +FileGroup543=Default Group +FileGroup544=Default Group +FileGroup545=Default Group +FileGroup546=Default Group +FileGroup547=Default Group +FileGroup548=Default Group +FileGroup549=Default Group +FileGroup55=Default Group +FileGroup550=Default Group +FileGroup551=Default Group +FileGroup552=Default Group +FileGroup553=Default Group +FileGroup554=Default Group +FileGroup555=Default Group +FileGroup556=Default Group +FileGroup557=Default Group +FileGroup558=Default Group +FileGroup559=Default Group +FileGroup56=Default Group +FileGroup560=Default Group +FileGroup561=Default Group +FileGroup562=Default Group +FileGroup563=Default Group +FileGroup564=Default Group +FileGroup565=Default Group +FileGroup566=Default Group +FileGroup567=Default Group +FileGroup568=Default Group +FileGroup569=Default Group +FileGroup57=Default Group +FileGroup570=Default Group +FileGroup571=Default Group +FileGroup572=Default Group +FileGroup573=Default Group +FileGroup574=Default Group +FileGroup575=Default Group +FileGroup576=Default Group +FileGroup577=Default Group +FileGroup578=Default Group +FileGroup579=Default Group +FileGroup58=Default Group +FileGroup580=Default Group +FileGroup581=Default Group +FileGroup582=Default Group +FileGroup583=Default Group +FileGroup584=Default Group +FileGroup585=Default Group +FileGroup586=Default Group +FileGroup587=Default Group +FileGroup588=Default Group +FileGroup589=Default Group +FileGroup59=Default Group +FileGroup590=Default Group +FileGroup591=Default Group +FileGroup592=Default Group +FileGroup593=Default Group +FileGroup594=Default Group +FileGroup595=Default Group +FileGroup596=Default Group +FileGroup597=Default Group +FileGroup598=Default Group +FileGroup599=Default Group FileGroup6=Default Group +FileGroup60=Default Group +FileGroup600=Default Group +FileGroup601=Default Group +FileGroup602=Default Group +FileGroup603=Default Group +FileGroup604=Default Group +FileGroup605=Default Group +FileGroup606=Default Group +FileGroup607=Default Group +FileGroup608=Default Group +FileGroup609=Default Group +FileGroup61=Default Group +FileGroup610=Default Group +FileGroup611=Default Group +FileGroup612=Default Group +FileGroup613=Default Group +FileGroup614=Default Group +FileGroup615=Default Group +FileGroup616=Default Group +FileGroup617=Default Group +FileGroup618=Default Group +FileGroup619=Default Group +FileGroup62=Default Group +FileGroup620=Default Group +FileGroup621=Default Group +FileGroup622=Default Group +FileGroup623=Default Group +FileGroup624=Default Group +FileGroup625=Default Group +FileGroup626=Default Group +FileGroup627=Default Group +FileGroup628=Default Group +FileGroup629=Default Group +FileGroup63=Default Group +FileGroup630=Default Group +FileGroup631=Default Group +FileGroup632=Default Group +FileGroup633=Default Group +FileGroup634=Default Group +FileGroup635=Default Group +FileGroup636=Default Group +FileGroup637=Default Group +FileGroup638=Default Group +FileGroup639=Default Group +FileGroup64=Default Group +FileGroup640=Default Group +FileGroup641=Default Group +FileGroup642=Default Group +FileGroup643=Default Group +FileGroup644=Default Group +FileGroup645=Default Group +FileGroup646=Default Group +FileGroup647=Default Group +FileGroup648=Default Group +FileGroup649=Default Group +FileGroup65=Default Group +FileGroup650=Default Group +FileGroup651=Default Group +FileGroup652=Default Group +FileGroup653=Default Group +FileGroup654=Default Group +FileGroup655=Default Group +FileGroup656=Default Group +FileGroup657=Default Group +FileGroup658=Default Group +FileGroup659=Default Group +FileGroup66=Default Group +FileGroup660=Default Group +FileGroup661=Default Group +FileGroup662=Default Group +FileGroup663=Default Group +FileGroup664=Default Group +FileGroup665=Default Group +FileGroup666=Default Group +FileGroup667=Default Group +FileGroup668=Default Group +FileGroup669=Default Group +FileGroup67=Default Group +FileGroup670=Default Group +FileGroup671=Default Group +FileGroup672=Default Group +FileGroup673=Default Group +FileGroup674=Default Group +FileGroup675=Default Group +FileGroup676=Default Group +FileGroup677=Default Group +FileGroup678=Default Group +FileGroup679=Default Group +FileGroup68=Default Group +FileGroup680=Default Group +FileGroup681=Default Group +FileGroup682=Default Group +FileGroup683=Default Group +FileGroup684=Default Group +FileGroup685=Default Group +FileGroup686=Default Group +FileGroup687=Default Group +FileGroup688=Default Group +FileGroup689=Default Group +FileGroup69=Default Group +FileGroup690=Default Group +FileGroup691=Default Group +FileGroup692=Default Group +FileGroup693=Default Group +FileGroup694=Default Group +FileGroup695=Default Group +FileGroup696=Default Group +FileGroup697=Default Group +FileGroup698=Default Group +FileGroup699=Default Group FileGroup7=Default Group +FileGroup70=Default Group +FileGroup700=Default Group +FileGroup701=Default Group +FileGroup702=Default Group +FileGroup703=Default Group +FileGroup704=Default Group +FileGroup705=Default Group +FileGroup706=Default Group +FileGroup707=Default Group +FileGroup708=Default Group +FileGroup709=Default Group +FileGroup71=Default Group +FileGroup710=Default Group +FileGroup711=Default Group +FileGroup712=Default Group +FileGroup713=Default Group +FileGroup714=Default Group +FileGroup715=Default Group +FileGroup716=Default Group +FileGroup717=Default Group +FileGroup718=Default Group +FileGroup719=Default Group +FileGroup72=Default Group +FileGroup720=Default Group +FileGroup721=Default Group +FileGroup722=Default Group +FileGroup723=Default Group +FileGroup724=Default Group +FileGroup725=Default Group +FileGroup726=Default Group +FileGroup727=Default Group +FileGroup728=Default Group +FileGroup729=Default Group +FileGroup73=Default Group +FileGroup730=Default Group +FileGroup731=Default Group +FileGroup732=Default Group +FileGroup733=Default Group +FileGroup734=Default Group +FileGroup735=Default Group +FileGroup736=Default Group +FileGroup737=Default Group +FileGroup738=Default Group +FileGroup739=Default Group +FileGroup74=Default Group +FileGroup740=Default Group +FileGroup741=Default Group +FileGroup742=Default Group +FileGroup743=Default Group +FileGroup744=Default Group +FileGroup745=Default Group +FileGroup746=Default Group +FileGroup747=Default Group +FileGroup748=Default Group +FileGroup749=Default Group +FileGroup75=Default Group +FileGroup750=Default Group +FileGroup751=Default Group +FileGroup752=Default Group +FileGroup753=Default Group +FileGroup754=Default Group +FileGroup755=Default Group +FileGroup756=Default Group +FileGroup757=Default Group +FileGroup758=Default Group +FileGroup759=Default Group +FileGroup76=Default Group +FileGroup760=Default Group +FileGroup761=Default Group +FileGroup762=Default Group +FileGroup763=Default Group +FileGroup764=Default Group +FileGroup765=Default Group +FileGroup766=Default Group +FileGroup767=Default Group +FileGroup768=Default Group +FileGroup769=Default Group +FileGroup77=Default Group +FileGroup770=Default Group +FileGroup771=Default Group +FileGroup772=Default Group +FileGroup773=Default Group +FileGroup774=Default Group +FileGroup775=Default Group +FileGroup776=Default Group +FileGroup777=Default Group +FileGroup778=Default Group +FileGroup779=Default Group +FileGroup78=Default Group +FileGroup780=Default Group +FileGroup781=Default Group +FileGroup782=Default Group +FileGroup783=Default Group +FileGroup784=Default Group +FileGroup785=Default Group +FileGroup786=Default Group +FileGroup787=Default Group +FileGroup788=Default Group +FileGroup789=Default Group +FileGroup79=Default Group +FileGroup790=Default Group +FileGroup791=Default Group +FileGroup792=Default Group +FileGroup793=Default Group +FileGroup794=Default Group +FileGroup795=Default Group +FileGroup796=Default Group +FileGroup797=Default Group +FileGroup798=Default Group +FileGroup799=Default Group FileGroup8=Default Group +FileGroup80=Default Group +FileGroup800=Default Group +FileGroup801=Default Group +FileGroup802=Default Group +FileGroup803=Default Group +FileGroup804=Default Group +FileGroup805=Default Group +FileGroup806=Default Group +FileGroup807=Default Group +FileGroup808=Default Group +FileGroup809=Default Group +FileGroup81=Default Group +FileGroup810=Default Group +FileGroup811=Default Group +FileGroup812=Default Group +FileGroup813=Default Group +FileGroup814=Default Group +FileGroup815=Default Group +FileGroup816=Default Group +FileGroup817=Default Group +FileGroup818=Default Group +FileGroup819=Default Group +FileGroup82=Default Group +FileGroup820=Default Group +FileGroup821=Default Group +FileGroup822=Default Group +FileGroup823=Default Group +FileGroup824=Default Group +FileGroup825=Default Group +FileGroup826=Default Group +FileGroup827=Default Group +FileGroup828=Default Group +FileGroup829=Default Group +FileGroup83=Default Group +FileGroup830=Default Group +FileGroup831=Default Group +FileGroup832=Default Group +FileGroup833=Default Group +FileGroup834=Default Group +FileGroup835=Default Group +FileGroup836=Default Group +FileGroup837=Default Group +FileGroup838=Default Group +FileGroup839=Default Group +FileGroup84=Default Group +FileGroup840=Default Group +FileGroup841=Default Group +FileGroup842=Default Group +FileGroup843=Default Group +FileGroup844=Default Group +FileGroup845=Default Group +FileGroup846=Default Group +FileGroup847=Default Group +FileGroup848=Default Group +FileGroup849=Default Group +FileGroup85=Default Group +FileGroup850=Default Group +FileGroup851=Default Group +FileGroup852=Default Group +FileGroup853=Default Group +FileGroup854=Default Group +FileGroup855=Default Group +FileGroup856=Default Group +FileGroup857=Default Group +FileGroup858=Default Group +FileGroup859=Default Group +FileGroup86=Default Group +FileGroup860=Default Group +FileGroup861=Default Group +FileGroup862=Default Group +FileGroup863=Default Group +FileGroup864=Default Group +FileGroup865=Default Group +FileGroup866=Default Group +FileGroup867=Default Group +FileGroup868=Default Group +FileGroup869=Default Group +FileGroup87=Default Group +FileGroup870=Default Group +FileGroup871=Default Group +FileGroup872=Default Group +FileGroup873=Default Group +FileGroup874=Default Group +FileGroup875=Default Group +FileGroup876=Default Group +FileGroup877=Default Group +FileGroup878=Default Group +FileGroup879=Default Group +FileGroup88=Default Group +FileGroup880=Default Group +FileGroup881=Default Group +FileGroup882=Default Group +FileGroup883=Default Group +FileGroup884=Default Group +FileGroup885=Default Group +FileGroup886=Default Group +FileGroup887=Default Group +FileGroup888=Default Group +FileGroup889=Default Group +FileGroup89=Default Group +FileGroup890=Default Group +FileGroup891=Default Group +FileGroup892=Default Group +FileGroup893=Default Group +FileGroup894=Default Group +FileGroup895=Default Group +FileGroup896=Default Group +FileGroup897=Default Group +FileGroup898=Default Group +FileGroup899=Default Group FileGroup9=Default Group +FileGroup90=Default Group +FileGroup900=Default Group +FileGroup901=Default Group +FileGroup902=Default Group +FileGroup903=Default Group +FileGroup904=Default Group +FileGroup905=Default Group +FileGroup906=Default Group +FileGroup907=Default Group +FileGroup908=Default Group +FileGroup909=Default Group +FileGroup91=Default Group +FileGroup910=Default Group +FileGroup911=Default Group +FileGroup912=Default Group +FileGroup913=Default Group +FileGroup914=Default Group +FileGroup915=Default Group +FileGroup916=Default Group +FileGroup917=Default Group +FileGroup918=Default Group +FileGroup919=Default Group +FileGroup92=Default Group +FileGroup920=Default Group +FileGroup921=Default Group +FileGroup922=Default Group +FileGroup923=Default Group +FileGroup924=Default Group +FileGroup925=Default Group +FileGroup926=Default Group +FileGroup927=Default Group +FileGroup928=Default Group +FileGroup929=Default Group +FileGroup93=Default Group +FileGroup930=Default Group +FileGroup931=Default Group +FileGroup932=Default Group +FileGroup933=Default Group +FileGroup934=Default Group +FileGroup935=Default Group +FileGroup936=Default Group +FileGroup937=Default Group +FileGroup938=Default Group +FileGroup939=Default Group +FileGroup94=Default Group +FileGroup940=Default Group +FileGroup941=Default Group +FileGroup942=Default Group +FileGroup943=Default Group +FileGroup944=Default Group +FileGroup945=Default Group +FileGroup946=Default Group +FileGroup947=Default Group +FileGroup948=Default Group +FileGroup949=Default Group +FileGroup95=Default Group +FileGroup950=Default Group +FileGroup951=Default Group +FileGroup952=Default Group +FileGroup953=Default Group +FileGroup954=Default Group +FileGroup955=Default Group +FileGroup956=Default Group +FileGroup957=Default Group +FileGroup958=Default Group +FileGroup959=Default Group +FileGroup96=Default Group +FileGroup960=Default Group +FileGroup961=Default Group +FileGroup962=Default Group +FileGroup963=Default Group +FileGroup964=Default Group +FileGroup965=Default Group +FileGroup966=Default Group +FileGroup967=Default Group +FileGroup968=Default Group +FileGroup969=Default Group +FileGroup97=Default Group +FileGroup970=Default Group +FileGroup971=Default Group +FileGroup972=Default Group +FileGroup973=Default Group +FileGroup974=Default Group +FileGroup975=Default Group +FileGroup976=Default Group +FileGroup977=Default Group +FileGroup978=Default Group +FileGroup979=Default Group +FileGroup98=Default Group +FileGroup980=Default Group +FileGroup981=Default Group +FileGroup982=Default Group +FileGroup983=Default Group +FileGroup984=Default Group +FileGroup985=Default Group +FileGroup986=Default Group +FileGroup987=Default Group +FileGroup988=Default Group +FileGroup989=Default Group +FileGroup99=Default Group +FileGroup990=Default Group +FileGroup991=Default Group +FileGroup992=Default Group +FileGroup993=Default Group +FileGroup994=Default Group +FileGroup995=Default Group +FileGroup996=Default Group +FileGroup997=Default Group +FileGroup998=Default Group +FileGroup999=Default Group Group=Default Group Library1=appupdating Library10=googlemaps @@ -121,7 +2271,7 @@ Module6=C_Clientes Module7=C_Detalle_Promo Module8=C_DetalleVenta Module9=C_Foto -NumberOfFiles=33 +NumberOfFiles=1108 NumberOfLibraries=26 NumberOfModules=28 Version=12.8 @@ -129,7 +2279,7 @@ Version=12.8 #Region Project Attributes #ApplicationLabel: GUNA Reparto #VersionCode: 1 - #VersionName: 4.05.20 + #VersionName: 4.10.02 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: portrait #CanInstallToExternalStorage: False diff --git a/B4A/GUNA_Reparto.b4a.meta b/B4A/GUNA_Reparto.b4a.meta index cb583cd..15e8b15 100644 --- a/B4A/GUNA_Reparto.b4a.meta +++ b/B4A/GUNA_Reparto.b4a.meta @@ -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 diff --git a/B4A/MAPA_RUTAS.bas b/B4A/MAPA_RUTAS.bas index 24c7e69..c736831 100644 --- a/B4A/MAPA_RUTAS.bas +++ b/B4A/MAPA_RUTAS.bas @@ -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 \ No newline at end of file diff --git a/B4A/Starter.bas b/B4A/Starter.bas index 5e24d59..040f609 100644 --- a/B4A/Starter.bas +++ b/B4A/Starter.bas @@ -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 diff --git a/B4A/Subs.bas b/B4A/Subs.bas index 9141cb3..c9d8970 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -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 \ No newline at end of file