From c05d8282f9980a425104f3f14d225f5015259f03 Mon Sep 17 00:00:00 2001 From: Jose Alberto Guerra Ugalde Date: Thu, 27 Jun 2024 20:26:42 -0600 Subject: [PATCH] - Se puso la misam fecha en inicio y fin de los eventos del "Motivo de no venta" --- B4A/C_Cliente.bas | 6 +- B4A/C_Nota.bas | 2 +- B4A/C_Principal.bas | 149 ++++++++++++++++++++++++++++++++++++++-- B4A/C_Productos.bas | 25 +++++-- B4A/C_TicketsDia.bas | 2 +- B4A/Files/noventa.bal | Bin 8103 -> 8103 bytes B4A/Files/principal.bal | Bin 69619 -> 77719 bytes B4A/Files/productos.bal | Bin 21698 -> 21698 bytes B4A/KelloggsV4.b4a | 2 +- B4A/KelloggsV4.b4a.meta | 4 +- B4A/MAPA_RUTAS.bas | 2 +- B4A/Subs.bas | 45 +++++++----- B4A/kms_helperSubs.bas | 29 ++++++-- 13 files changed, 229 insertions(+), 37 deletions(-) diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index 29eb87f..99fe138 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -403,6 +403,10 @@ End Sub 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. Sub B4XPage_Appear + If kh.motivoNoVisitaActivo Then + ToastMessageShow("Ruta CERRADA por NO VISITA", True) + Subs.iniciaActividad("Principal") + End If indicePregunta = 0 b_noVenta.Enabled = False ' Log(kh.traeTotalCliente) @@ -1519,7 +1523,7 @@ Sub Imprime_ticket Next End If s.Close - + s=Starter.skmt.ExecQuery2("select sum(PE_CANT) as CANTIDAD, SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_CEDIS <> PE_PROID AND PE_TIPO = ? and substr(pe_pronombre,1,6) = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA","CAMBIO")) s.Position = 0 Private sTotal3 As Double diff --git a/B4A/C_Nota.bas b/B4A/C_Nota.bas index 3e2f627..75b2982 100644 --- a/B4A/C_Nota.bas +++ b/B4A/C_Nota.bas @@ -142,7 +142,7 @@ Sub B4XPage_Appear C_DOE=Starter.skmt.ExecQuery2("select sum(pe_cant) AS CANTIDAD, sum(pe_costo_tot) AS MONTO from pedido where PE_CEDIS <> PE_PROID and pe_cliente in (Select CUENTA from cuentaa) AND PE_CEDIS = ?", Array As String("DOE")) C_DOE.Position=0 L_CANT_D.Text = C_DOE.GetString("CANTIDAD") - L_TOTAL_D.Text = C_DOE.GetString("MONTO") + L_TOTAL_D.Text = numberformat2(kh.traeTotalCliente, 1, 2, 2, True) c.Close Else B_PEDIDO_DOE.VISIBLE = False diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index a0b162f..32e8d06 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -197,6 +197,22 @@ Sub Class_Globals Private p_centrado As Panel Private l_version As Label Private p_botonesResumen As Panel + Private b_motivoNoVisita As Button + Private p_transparente As Panel + Private b_noVisita As Button + Private p_noVisita As Panel + Private p_transparente2 As Panel + Private b_reactivaRuta As Button + Private et_reactivaRuta As EditText + Private p_noVisita2 As Panel + Private r_1 As RadioButton + Private r_2 As RadioButton + Private r_3 As RadioButton + Private r_4 As RadioButton + Private r_5 As RadioButton + Private r_6 As RadioButton + Private r_7 As RadioButton + private r_razonNoVisita as String End Sub 'You can add more parameters here. @@ -398,7 +414,10 @@ Sub B4XPage_Appear ' Log(">>>> CHECKLIST: |" & Cedis_Check & "|") Btn_CheckList.Visible = False If Cedis_Check = 0 Then ' And l_ruta.Text <> 0 - If l_ruta.Text <> 0 Then Btn_CheckList.Visible = True + If l_ruta.Text <> 0 Then + Btn_CheckList.BringToFront + Btn_CheckList.Visible = True + End If B_MAPA_RUTA.Visible = False NUEVO.Visible = False B_PROXIMA.Visible = False @@ -457,6 +476,19 @@ Sub B4XPage_Appear ' Wait For Activity_PermissionResult (Permission As String, Result As Boolean) ' If Result Then Log("Tenemos permisos de bluetooth.") ' Log("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") + If kh.motivoNoVisitaActivo Then + Private cd1 As ColorDrawable + cd1.Initialize(Colors.RGB(247, 94, 0), 5dip) + b_motivoNoVisita.Background = cd1 + B_MAPA_RUTA.Enabled = False + trabajar.Enabled = False + Else + Private cd1 As ColorDrawable + cd1.Initialize(Colors.RGB(213, 0, 0), 5dip) + b_motivoNoVisita.Background = cd1 + B_MAPA_RUTA.Enabled = True + trabajar.Enabled = True + End If End Sub Sub trabajar_Click @@ -953,10 +985,10 @@ Sub JobDone(Job As HttpJob) Dim CAT_CL_CATEGORIA As String = records(RESULT.Columns.Get("CAT_CL_CATEGORIA")) Dim CAT_CL_SEGMENTO As String = records(RESULT.Columns.Get("CAT_CL_SEGMENTO")) Dim CAT_CL_LIMITECREDITO As String = records(RESULT.Columns.Get("CAT_CL_LIMITECREDITO")) - LogColor("CAT_CL_LIMITECREDITO:" & CAT_CL_LIMITECREDITO & " -- ID: " & CAT_CL_CODIGO, Colors.red) +' LogColor("CAT_CL_LIMITECREDITO:" & CAT_CL_LIMITECREDITO & " -- ID: " & CAT_CL_CODIGO, Colors.red) Starter.skmt.ExecNonQuery2("INSERT INTO kmt_info(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BFACTURA,CAT_CL_BCREDITO,CAT_CL_DIAS_VISITA,CAT_CL_TIPO_RUTA, gestion, IMPRESION, CAT_CL_CATEGORIA, CAT_CL_SEGMENTO,CAT_CL_LIMITECREDITO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,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_LAT,CAT_CL_LONG,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BFACTURA,CAT_CL_BCREDITO,CAT_CL_DIAS_VISITA,CAT_CL_TIPO_RUTA,CAT_CL_CATEGORIA, CAT_CL_SEGMENTO,CAT_CL_LIMITECREDITO)) Next - 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_BFACTURA,CAT_CL_BCREDITO,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_DIAS_VISITA, gestion, IMPRESION) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,?,0,0) ",Array As Object ("0",e_ruta.TEXT, "VENTA ABORDO","null","null","null","null","null","null","null","null","null","null","null","null","NULL","null","null","NULL","NULL")) + 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_BFACTURA,CAT_CL_BCREDITO,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_DIAS_VISITA, gestion, IMPRESION) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,?,0,0) ",Array As Object ("0",e_ruta.TEXT, "VENTA ABORDO","null","null","null","null","null","null","null","null","null","null","null","0","null","null","null","10000000","null")) Starter.skmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!! Starter.skmt.EndTransaction Listo1 = 1 @@ -1978,7 +2010,11 @@ End Sub Private Sub B4XPage_CloseRequest As ResumableSub ' BACK key pressed 'Return True to close, False to cancel - If pdfViewerActivo Then + If p_transparente2.Visible Then + p_transparente2.Visible = False + else If p_transparente.Visible Then + p_transparente.Visible = False + Else If pdfViewerActivo Then pdfViewerActivo = False PNL_ACCESO.Visible = True Panel7.Visible = True @@ -2145,6 +2181,8 @@ Sub e_ruta_EnterPressed Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("NUMERO_PEDIDO",0)) Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FINDIA_FECHA")) Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object("FINDIA_FECHA", Starter.FECHA_HOY)) + Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("NOVISITA_ACTIVA")) + Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("NOVISITA_RAZON")) If File.Exists(File.DirInternal,"FOTO1.jpg") Then File.Delete(File.DirInternal,"FOTO1.jpg") If File.Exists(File.DirInternal,"FOTO2.jpg") Then File.Delete(File.DirInternal,"FOTO2.jpg") If File.Exists(File.DirInternal,"FOTO3.jpg") Then File.Delete(File.DirInternal,"FOTO3.jpg") @@ -3496,4 +3534,107 @@ Sub IsConnectedToInternet As Boolean 'ignore Return r.RunMethod("isConnectedOrConnecting") End If Return False +End Sub + +Private Sub b_motivoNoVisita_Click + r_1.Checked = True + r_razonNoVisita = "FALLA MECANICA" + If Not(kh.motivoNoVisitaActivo) Then + p_transparente.Top = 0 : p_transparente.left = 0 + p_transparente.Height = Root.Height : p_transparente.Width = Root.Width + kh.centraPanel(p_noVisita, Root.Width) + kh.centraPanelV(p_noVisita, Root.Height) + p_transparente.Visible = True + Else + p_transparente2.Top = 0 : p_transparente2.left = 0 + p_transparente2.Height = Root.Height : p_transparente2.Width = Root.Width + kh.centraPanel(p_noVisita2, Root.Width) + kh.centraPanelV(p_noVisita2, Root.Height) + p_transparente2.Visible = True + End If +End Sub + +Private Sub p_transparente_Click + +End Sub + +Private Sub b_noVisita_Click + Msgbox2Async("Si se envia la información, ya NO se va a poder continuar con la ruta, los clientes por visitar se van a bloquear.", "AVISO", "Continuar", "Cancelar", "", LoadBitmap(File.DirAssets,"alert2.png"), False) + Wait For Msgbox_Result (result As Int) + If result = DialogResponse.POSITIVE Then + ToastMessageShow("CONTINUAR", False) + Starter.skmt.ExecNonQuery($"delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'NOVISITA_ACTIVA'"$) + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("NOVISITA_ACTIVA", 1)) + Starter.skmt.ExecNonQuery($"delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'NOVISITA_RAZON'"$) + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("NOVISITA_RAZON", r_razonNoVisita)) + Starter.skmt.ExecNonQuery($"delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'NOVISITA_FECHA'"$) + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("NOVISITA_FECHA", Subs.traeFecha)) + Starter.skmt.ExecNonQuery($"update kmt_info set gestion = '4' where gestion = '0'"$) + Log(Subs.traeRuta) + Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, Subs.traeAlmacen, Subs.traeRuta, "MOTIVO NO VENTA ACTIVO", "", Subs.fechanormal(DateTime.Now), Subs.fechanormal(DateTime.Now), Starter.lat_gps, Starter.lon_gps, 2, "", r_razonNoVisita) +' b_motivoNoVisita.Color = Colors.RGB(247, 94, 0) + Private cd1 As ColorDrawable + cd1.Initialize(Colors.RGB(247, 94, 0), 5dip) + b_motivoNoVisita.Background = cd1 + B_MAPA_RUTA.Enabled = False + trabajar.Enabled = False + Else If result = DialogResponse.CANCEL Then + ToastMessageShow("CANCELAR", False) + End If + p_transparente.Visible = False +End Sub + +Private Sub p_transparente2_Click + +End Sub + +Private Sub b_reactivaRuta_Click + Private cfd As Cursor = Starter.skmt.ExecQuery("select ifnull(CAT_VA_VALOR, '') as valor from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'FINDIA_PASS'") + If cfd.RowCount > 0 Then + cfd.Position = 0 + Private finDiaPass As String = cfd.GetString("valor") + If et_reactivaRuta.Text = finDiaPass Then + Starter.skmt.ExecNonQuery($"delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'NOVISITA_ACTIVA'"$) + Starter.skmt.ExecNonQuery($"delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'NOVISITA_RAZON'"$) + Starter.skmt.ExecNonQuery("update kmt_info set gestion = '0' where gestion = '4'") + Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, Subs.traeAlmacen, Subs.traeRuta, "REACTIVA RUTA", "", Subs.fechanormal(DateTime.Now), Subs.fechanormal(DateTime.Now), Starter.lat_gps, Starter.lon_gps, 2, "", "") + Private cd1 As ColorDrawable + cd1.Initialize(Colors.RGB(213, 0, 0), 5dip) + b_motivoNoVisita.Background = cd1 + B_MAPA_RUTA.Enabled = True + trabajar.Enabled = True + p_transparente2.Visible = False + ToastMessageShow("Ruta activa", False) + Else + ToastMessageShow("Contraseña equivocada", True) + End If + End If +End Sub + +Private Sub r_7_CheckedChange(Checked As Boolean) + r_razonNoVisita = r_7.Text +End Sub + +Private Sub r_6_CheckedChange(Checked As Boolean) + r_razonNoVisita = r_6.Text +End Sub + +Private Sub r_5_CheckedChange(Checked As Boolean) + r_razonNoVisita = r_5.Text +End Sub + +Private Sub r_4_CheckedChange(Checked As Boolean) + r_razonNoVisita = r_4.Text +End Sub + +Private Sub r_3_CheckedChange(Checked As Boolean) + r_razonNoVisita = r_3.Text +End Sub + +Private Sub r_2_CheckedChange(Checked As Boolean) + r_razonNoVisita = r_2.Text +End Sub + +Private Sub r_1_CheckedChange(Checked As Boolean) + r_razonNoVisita = r_1.Text End Sub \ No newline at end of file diff --git a/B4A/C_Productos.bas b/B4A/C_Productos.bas index d6b9d64..75833ca 100644 --- a/B4A/C_Productos.bas +++ b/B4A/C_Productos.bas @@ -764,12 +764,27 @@ Private Sub et_pCant_TextChanged (Old As String, New As String) ' Log($"inventario=${inv}"$) ' Dim tmpCant As String = laCant.text If laCant.Text = "" Then laCant.Text = "0" - If laCant.Text > existencias Then + Log("======== " & Sender.As(EditText).text & "|" & laCant.text & "|" & New & "|" & existencias) + If laCant.Text > existencias Or New > existencias Then + Log(888) Log($"Ponemos laCant en: ${existencias}"$) ' laCant.Text = "" laCant.text = existencias + Log($">>>>> LACANT=${laCant.Text}"$) ' etCantHasFocus = True End If + +' If New < existencias Then + Log(999) + Log($"${kh.traeLimiteCredito(Subs.traeCliente)} < ${kh.totalPedido + (precio*laCant.text)}"$) + Log(kh.traeLimiteCredito(Subs.traeCliente) < (kh.totalPedido + (precio*laCant.text))) + If kh.traeLimiteCredito(Subs.traeCliente) < (kh.totalPedido + (precio*laCant.text)) Then + Log($"#######################${CRLF}#### LIMITE CREDITO SUPERADO${CRLF}#######################"$) + ToastMessageShow("LIMITE DE CREDITO SUPERADO", False) + laCant.text = 0 + End If +' End If + ' If Not(Old = "0" And New = "") And laCant.Text <> Null And laCant.Text <> "" And etCantHasFocus Then Subs.actualizaProducto(almacenX, precioX, laCant.Text, nombreX, id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, Starter.tipov) ' End If @@ -914,7 +929,7 @@ Sub b_terminar1_Click End If ' Log(list_prodsPedido) c_prods.Close - l_total2.Text = $"$1.2{totalPedido}"$ + l_total2.Text = $"${numberformat2(kh.traeTotalCliente, 1, 2, 2, True)}"$ l_cant.Text = cantPedido If Subs.revisaImpresa Then b_rechazar.Visible = False Else b_rechazar.Visible = True p_vistaPrevia.Visible=True @@ -1298,7 +1313,7 @@ Sub LlenaProdsLL(p As ResultSet, extra As String) Dim pe As ResultSet = Starter.skmt.ExecQuery($"select PE_PROID, PE_CANT from PEDIDO where PE_CLIENTE = '${clienteId}' and PE_CEDIS = '${Subs.traeAlmacen}'"$) 'Si EXTRA es igual a rmi, entonces regresamos los RMIs existentes. If extra = "rmi" Then pe = Starter.skmt.ExecQuery($"select PE_PROID, PE_CANT from PEDIDO where PE_CLIENTE = '${clienteId}' and PE_CEDIS = 'DUR'"$) - + ' LogColor("Ponemos productos de pedido anterior: "&pe.RowCount, Colors.red) Do While pe.NextRow Private cant As Int = 0 @@ -1334,13 +1349,13 @@ Sub LlenaProdsLL(p As ResultSet, extra As String) Private precio As String = NumberFormat2(p.GetDouble("CAT_GP_PRECIO"),1,2,2,False) 'Descuentos de condiciones comerciales por TIPO Private descXTipo As String = kh.traeDescXTipo(clienteId, p.GetString("CAT_GP_TIPO")) - If Starter.Logger And descXTipo > 0 Then LogColor(">>> DESCXTIPO CC - " & descXTipo & " | " & p.GetString("CAT_GP_NOMBRE"), Colors.Blue) +' If Starter.Logger And descXTipo > 0 Then LogColor(">>> DESCXTIPO CC - " & descXTipo & " | " & p.GetString("CAT_GP_NOMBRE"), Colors.Blue) ' Log($"precioAnt=${precio}, precioNew=${precio - (precio*(descXTipo/100))}"$) precio = precio-(precio*(descXTipo/100)) 'Descuentos de condiciones comerciales por SKU Private descXSku As String = kh.traeDescXSku(clienteId, p.GetString("CAT_GP_ID")) If Starter.Logger And descXSku > 0 Then LogColor(">>> DESCXSKU CC - " & descXSku & " | " & p.GetString("CAT_GP_NOMBRE"), Colors.red) - precio = precio-(precio*(descXSku/100)) + precio = NumberFormat2((precio-(precio*(descXSku/100))), 1, 2, 2, False) Dim tempMap As Map = CreateMap("prod":p.GetString("CAT_GP_NOMBRE"), "precio":precio, "almacen":p.GetString("CAT_GP_ALMACEN"), "abordo":invAbordo, "id":p.GetString("CAT_GP_ID"), "cant":cant, "tipo":p.GetString("CAT_GP_TIPO")) listaProds.Add(tempMap) Loop diff --git a/B4A/C_TicketsDia.bas b/B4A/C_TicketsDia.bas index 72c4c88..41c86a1 100644 --- a/B4A/C_TicketsDia.bas +++ b/B4A/C_TicketsDia.bas @@ -39,7 +39,7 @@ Private Sub B4XPage_Created (Root1 As B4XView) label2 = ListView1.TwoLinesLayout.SecondLabel label2.TextSize = 13 label2.TextColor = Colors.Black - ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),"Cantidad #"& c.GetString("PC_NOART")& " SubTotal $"& NumberFormat2(c.GetString("PC_MONTO"), 1, 2, 2, True)) + ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),"Cantidad #"& c.GetString("PC_NOART")& " SubTotal $"& NumberFormat2(Subs.traeTotalCliente, 1, 2, 2, True)) Next End If Subs.centraEtiqueta(l_titulo, Root.Width) diff --git a/B4A/Files/noventa.bal b/B4A/Files/noventa.bal index 698f2428bdfe539e46e8000a03b36fcd58bfc6a2..f15bb6300d1f59f5ae7d2747c34732394fd383c0 100644 GIT binary patch delta 14 VcmZ2(zubO9j6Bm4#>sK=o&YJ>1o!{| delta 14 VcmZ2(zubO9j64$q!{j)5PXHzR1XBP2 diff --git a/B4A/Files/principal.bal b/B4A/Files/principal.bal index deef6ffaedbc9a510f203c608aaa86102c0738df..d2b6d0385963274d731a0305b8a309d1c7009b9e 100644 GIT binary patch delta 9401 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 delta 6354 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 diff --git a/B4A/Files/productos.bal b/B4A/Files/productos.bal index 43dfbf686cc454896548fabd6d677e11c642e3ba..7763d8bec1178d6586c05fa6eea59e88640beaf3 100644 GIT binary patch delta 57 zcmX@KlJU?=#trr^!uJ>$7-WH%v6GR3K@P+Sot$8=F}d21Yw|ryqsbFAxi%kgiDzP5 Ky;;G15ibD8pb&ci delta 39 xcmV+?0NDS+sR6>N0kA(r0qm2|LOPRsF$$C3IWm)wDGIZ|L|*~{xw9Zgq776?5AFZ} diff --git a/B4A/KelloggsV4.b4a b/B4A/KelloggsV4.b4a index a8c3bb5..bfa304b 100644 --- a/B4A/KelloggsV4.b4a +++ b/B4A/KelloggsV4.b4a @@ -887,7 +887,7 @@ Version=12.8 #Region Project Attributes #ApplicationLabel: Kelloggs Venta #VersionCode: 3000 - #VersionName: 4.06.01 + #VersionName: 4.06.26 #SupportedOrientations: portrait #CanInstallToExternalStorage: False #BridgeLogger:true diff --git a/B4A/KelloggsV4.b4a.meta b/B4A/KelloggsV4.b4a.meta index f537833..b7f050a 100644 --- a/B4A/KelloggsV4.b4a.meta +++ b/B4A/KelloggsV4.b4a.meta @@ -63,7 +63,7 @@ ModuleBreakpoints9= ModuleClosedNodes0= ModuleClosedNodes1= ModuleClosedNodes10= -ModuleClosedNodes11=9 +ModuleClosedNodes11= ModuleClosedNodes12= ModuleClosedNodes13= ModuleClosedNodes14= @@ -91,6 +91,6 @@ ModuleClosedNodes6= ModuleClosedNodes7= ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=Visual Designer,login.bal,-100,6,kms_helperSubs,RD_Init,71,0,Subs,totalPedido,1565,0,Subs,hayPedido,1563,0,kms_helperSubs,ping,1146,0,kms_helperSubs,traeLimiteCredito,1156,0,kms_helperSubs,totalPedido,1159,1,C_Productos,b_prodMenos_Click,596,1,C_Productos,b_prodMas_Click,650,6,C_Productos,et_pCant_TextChanged,730,2,C_Productos,cuentaProds,812,3 +NavigationStack=Subs,bitacora,1685,0,C_Principal,p_transparente2_Click,3570,0,C_Principal,b_motivoNoVisita_Click,3528,6,Visual Designer,principal.bal,-100,2,C_Principal,B4XPage_Appear,396,1,C_Principal,e_ruta_EnterPressed,2148,0,Main,Globals,24,0,Main,Process_Globals,22,0,C_Principal,b_reactivaRuta_Click,3593,6,C_Principal,b_noVisita_Click,3566,6,Subs,traeRuta,831,1 SelectedBuild=0 VisibleModules=1,28,11,3,26,23,29,12,4,13 diff --git a/B4A/MAPA_RUTAS.bas b/B4A/MAPA_RUTAS.bas index 059e68b..10aa2ef 100644 --- a/B4A/MAPA_RUTAS.bas +++ b/B4A/MAPA_RUTAS.bas @@ -138,7 +138,7 @@ Sub MapFragment1_Ready '''''''---------------------------- MARKER AZUL - POR VISITAR If azul = 1 Or todos = 1 Then c.IsInitialized - c=Starter.skmt.ExecQuery2("select CAT_CL_CODIGO,CAT_CL_NOMBRE,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_NUM_SERIEFISICO from kmt_info where CAT_CL_NOMBRE <>'VENTA ABORDO' AND CAT_CL_CODIGO NOT IN (Select PE_CLIENTE from PEDIDO) AND CAT_CL_CODIGO NOT In (Select NV_CLIENTE from NOVENTA) AND CAT_CL_CODIGO NOT LIKE 'N%' and CAT_CL_DIAS_VISITA = (SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'DIA_VISITA') and cat_cl_codigo <> 0 AND CAT_CL_TIPO_RUTA IN (?,?) ORDER BY CAT_CL_NUM_SERIEFISICO", Array As String(SEMANA, "SEMANAL")) + c=Starter.skmt.ExecQuery2("select CAT_CL_CODIGO,CAT_CL_NOMBRE,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_NUM_SERIEFISICO from kmt_info where CAT_CL_NOMBRE <>'VENTA ABORDO' AND CAT_CL_CODIGO NOT IN (Select PE_CLIENTE from PEDIDO) AND CAT_CL_CODIGO NOT In (Select NV_CLIENTE from NOVENTA) AND gestion <> '4' AND CAT_CL_CODIGO NOT LIKE 'N%' and CAT_CL_DIAS_VISITA = (SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'DIA_VISITA') and cat_cl_codigo <> 0 AND CAT_CL_TIPO_RUTA IN (?,?) ORDER BY CAT_CL_NUM_SERIEFISICO", Array As String(SEMANA, "SEMANAL")) ' skmt.Initialize(ruta,"kmt.db", True) Log($"Por visitar = ${c.RowCount}"$) If c.RowCount > 0 Then diff --git a/B4A/Subs.bas b/B4A/Subs.bas index 5a06866..3f64fd4 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -835,7 +835,7 @@ End Sub Sub traeRuta As String 'ignore Private c As Cursor Private r As String - c=Starter.skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + c=Starter.skmt.ExecQuery("select CAT_CL_RUTA from kmt_info limit 1") r = "0" If c.RowCount > 0 Then c.Position=0 @@ -896,23 +896,12 @@ Sub traeInvDeBD(id As String) As Int Return inv End Sub -'Inserta un producto en la tabla "pedido" y "pedido_cliente". -'Actualiza "cat_gunaprod" y la columna "gestion" en la tabla "kmt_info". -'Sub guardaProducto(cedis As String, costoU As String, cant As String, nombre As String, prodId As String, clienteId As String, fecha As String, usuario As String, rutaV As String, precioSin As String, tipoVenta As String) -'' LogColor("guardaProducto: "&prodId&", cant="&cant, Colors.Magenta) -' Private c As Cursor -' 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_FOLIO) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (cedis, (cant * costoU), costoU, cant, nombre, prodId, clienteId, fecha, usuario, rutaV, precioSin, tipoVenta)) -' Starter.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cant, prodId)) -' c=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") -' c.Position=0 -' Starter.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") -' Starter.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_ALMACEN,PC_RUTA,PC_COSTO_SIN) VALUES (?,?,?,?,?,?,?,?,?,?)", Array As Object(clienteId, fecha, usuario, c.GetString("CANT_CLIE"), c.GetString("TOTAL_CLIE"), B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps, cedis, c.GetString("TOTAL_CLIE_SIN"))) -' Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") -'End Sub - 'Inserta un producto en la tabla "PEDIDO" Sub guardaProducto(cedis As String, costoTot As String, costoU As String, cant As String, nombre As String, prodId As String, clienteId As String, fecha As String, usuario As String, tipoV As String, precio2 As String, query As String) 'ignore If nombre.Length < 6 Then ToastMessageShow("(guardaProducto) El nombre del producto no es valido " & nombre, True) + precio2 = NumberFormat2(precio2, 1, 2, 2, False) + costoU = NumberFormat2(costoU, 1, 2, 2, False) + costoTot = NumberFormat2(costoTot, 1, 2, 2, False) LogColor("guardaProducto", Colors.Magenta) Log($"Guardamos producto ${prodId}"$) LogColor("TIPO VENTA="&tipoV, Colors.Magenta) @@ -926,6 +915,8 @@ End Sub 'Si "gestion=2" entonces el sistema considera que el pedido ya se guardó y ya no se debe modificar. Sub guardaProductoSinGestion(cedis As String, costoU As String, cant As String, nombre As String, prodId As String, clienteId As String, fecha As String, usuario As String, rutaV As String, precioSin As String, tipoVenta As String) If nombre.Length < 6 Then ToastMessageShow("(guardaProductoSinGestion) El nombre del producto no es valido " & nombre, True) + precioSin = NumberFormat2(precioSin, 1, 2, 2, False) + costoU = NumberFormat2(costoU, 1, 2, 2, False) ' LogColor("guardaProductoSinGestion: "&prodId&", cant="&cant&", tipo="&tipoVenta, Colors.Magenta) Private c As Cursor ' Private tablaProds As String = "cat_gunaprod2" @@ -943,6 +934,10 @@ End Sub Sub guardaProductoSin(cedis As String, costoTot As String, costoU As String, cant As String, nombre As String, prodId As String, clienteId As String, fecha As String, usuario As String, rutaV As String, precioSin As String, tipoV As String, precio2 As String, query As String) 'ignore If nombre.Length < 6 Then ToastMessageShow("(guardaProductoSin) El nombre del producto no es valido " & nombre, True) + precioSin = NumberFormat2(precioSin, 1, 2, 2, False) + precio2 = NumberFormat2(precio2, 1, 2, 2, False) + costoU = NumberFormat2(costoU, 1, 2, 2, False) + costoTot = NumberFormat2(costoTot, 1, 2, 2, False) LogColor("guardaProductoSin", Colors.Magenta) 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 (cedis, costoTot, costoU, cant, nombre, prodId, clienteId, fecha, usuario, rutaV, precioSin, tipoV, precio2)) Starter.skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cant, prodId)) @@ -961,6 +956,8 @@ End Sub Sub actualizaProducto(cedis As String, costoU As String, cant As String, nombre As String, prodId As String, clienteId As String, fecha As String, usuario As String, rutaV As String, precioSin As String, tipoVenta As String) If nombre.Length < 6 Then ToastMessageShow("(actualizaProducto) El nombre del producto no es valido " & nombre, True) + precioSin = NumberFormat2(precioSin, 1, 2, 2, False) + costoU = NumberFormat2(costoU, 1, 2, 2, False) LogColor($"actualizaProducto, c=${clienteId}, p=${prodId}, nombre=${nombre}, cant=${cant}, cedis=${cedis}, tipo=${tipoVenta}"$, Colors.Magenta) ' Private tablaProds As String = "cat_gunaprod2" ' If tipoVenta = "ABORDO" Then tablaProds = "cat_gunaprod" @@ -971,7 +968,7 @@ Sub actualizaProducto(cedis As String, costoU As String, cant As String, nombre Private antCant As Int = 0 If IsNumber(c.GetInt("PE_CANT")) Then antCant=c.GetInt("PE_CANT") Private difCant As Int = cant - antCant - Starter.skmt.ExecNonQuery($"update pedido set pe_cant = ${cant}, pe_costo_tot = ${(cant*c.GetString("PE_COSTOU"))}, pe_tipo = '${tipoVenta}' where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' "$) + Starter.skmt.ExecNonQuery($"update pedido set pe_cant = ${cant}, pe_costo_tot = ${NumberFormat2((cant*c.GetString("PE_COSTOU")), 1, 2, 2, False)}, pe_tipo = '${tipoVenta}' where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' "$) If cedis <> "DUR" Then Starter.skmt.ExecNonQuery($"update ${traeTablaProds(tipoVenta)} set cat_gp_almacen = cat_gp_almacen - (${difCant}) where cat_gp_id = '${prodId}' "$) If cant = 0 Then LogColor($"BORRAMOS PRODUCTO - ${prodId}"$, Colors.Red) @@ -1693,6 +1690,7 @@ End Sub 'En geocerca si mete la contraseña poner 0 en precision gps y si esta dentro de los 50 mts poner 1 y 2 para eventos que no lo ocupen 'Mandar fecha de sync(sysdate) Sub bitacora(fechab As String, usuariob As String, almacenb As String, rutab As String, eventob As String, clienteb As String, iniciob As String, finb As String, latitudb As String, longitudb As String, precision As String, motivonoventa As String, motivonovisita As String ) + Log(motivonovisita) Log("bitacora") Private cmd As DBCommand cmd.Initialize @@ -1853,4 +1851,19 @@ Sub traeinventario(id As String) As Int End If c.Close Return inventario +End Sub + +'Regresa el TOTAL de la venta del cliente +Sub traeTotalCliente As Double + Private sumaTotal As Double + Private cursorprueba As Cursor = Starter.skmt.ExecQuery2("select PE_COSTO_TOT from pedido where PE_CEDIS <> PE_PROID and pe_cliente in (Select CUENTA from cuentaa) AND PE_CEDIS <> ?", Array As String("DOE")) + For i= 0 To cursorprueba.RowCount -1 + cursorprueba.Position = i +' LogColor(cursorprueba.GetString("PE_COSTO_TOT"),Colors.Red) + sumaTotal = sumaTotal + cursorprueba.GetString("PE_COSTO_TOT") + sumaTotal = NumberFormat2(sumaTotal, 0, 2, 2, False) +' Log(NumberFormat2(sumaTotal, 0, 2, 2, False)) + Next + cursorprueba.Close + Return sumaTotal End Sub \ No newline at end of file diff --git a/B4A/kms_helperSubs.bas b/B4A/kms_helperSubs.bas index 2b902b2..b7ff8ab 100644 --- a/B4A/kms_helperSubs.bas +++ b/B4A/kms_helperSubs.bas @@ -591,6 +591,11 @@ Sub centraPanel(elemento As Panel, anchoElementoSuperior As Int) 'ignore elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2) End Sub +'Centra un boton horizontalmente dentro de un elemento superior +Sub centraBoton(elemento As Button, anchoElementoSuperior As Int) 'ignore + elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2) +End Sub + 'Centra un panel verticalmente dentro de un elemento superior Sub centraPanelV(elemento As Panel, altoElementoSuperior As Int) 'ignore elemento.Top = Round(altoElementoSuperior/2)-(elemento.Height/2) @@ -1153,8 +1158,9 @@ End Sub 'Trae el limite de credito para el cliente especificado. Sub traeLimiteCredito(idCliente As String) As Double Private limite As Double = 10000000 - Private c As ResultSet = khdb.ExecQuery($"select CAT_CL_BFACTURA from kmt_info where CAT_CL_CODIGO = '${idCliente}' and CAT_CL_BCREDITO = 0 "$) + Private c As ResultSet = khdb.ExecQuery($"select ifnull(CAT_CL_BFACTURA,10000000) as CAT_CL_BFACTURA from kmt_info where CAT_CL_CODIGO = '${idCliente}' and CAT_CL_BCREDITO = 0"$) Do While c.NextRow + Log($"|${c.GetString("CAT_CL_BFACTURA")}|"$) limite = c.GetString("CAT_CL_BFACTURA") Loop Log($"Limite: ${NumberFormat2(limite, 1, 0, 0, True)}"$) @@ -1163,20 +1169,33 @@ End Sub 'Regresa el total del pedido en la tabla "PEDIDO" del cliente actual. 'Utiliza la columna PE_COSTO_TOT para hacer la suma. -Sub totalPedido As String 'ignore +Sub totalPedido As Long 'ignore Private cT As Cursor = Starter.skmt.ExecQuery($"select sum(PE_COSTO_TOT) as total from PEDIDO where PE_CLIENTE = '${traeCliente}'"$) - Log($"select sum(PE_COSTO_TOT) as total from PEDIDO where PE_CLIENTE = '${traeCliente}'"$) - Private pTotal As String = "0" +' Log($"select sum(PE_COSTO_TOT) as total from PEDIDO where PE_CLIENTE = '${traeCliente}'"$) + Private pTotal As Long = 0 If cT.RowCount > 0 Then cT.Position = 0 ' Log("|"&cT.GetLong("total")&"|"&pTotal) Private tempT As String = cT.GetLong("total") If tempT <> "null" And tempT <> Null Then -' Log("|"&cT.GetLong("total")&"|") + Log("|"&cT.GetLong("total")&"|") pTotal = tempT End If ' Log($"Cliente actual=${traeCliente}, hayPedido=${hay}"$) End If cT.Close Return pTotal +End Sub + +'Revisa si esta activo el MOTIVO NO VISITA y regresa verdadero o falso +Sub motivoNoVisitaActivo As Boolean + Private rnv As Boolean = False + Private nv As Cursor = khdb.ExecQuery($"select ifnull(CAT_VA_VALOR, 0) as valor from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'NOVISITA_ACTIVA'"$) + Log(nv.RowCount) + If nv.RowCount > 0 Then + nv.Position = 0 + Log(nv.GetString("valor")) + If nv.GetString("valor") = "1" Then rnv = True + End If + Return rnv End Sub \ No newline at end of file