From f8d974095050f1a17a87d45bdfe80c5c89970d9c Mon Sep 17 00:00:00 2001 From: cvaldes1201 Date: Thu, 26 Dec 2024 11:37:56 -0600 Subject: [PATCH] Se cambia el envio, ya se envian los abonos, SE CAMBIA LA CAPTUTRA DE LOS ABONOS --- B4A/C_Cliente.bas | 310 ++++++++++++++++++++++++++++--------------- B4A/C_NoVenta.bas | 2 +- B4A/C_Principal.bas | 16 +++ B4A/MARQUEZ.b4a | 2 +- B4A/MARQUEZ.b4a.meta | 2 +- 5 files changed, 220 insertions(+), 112 deletions(-) diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index 29d48ce..406c6a2 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -439,8 +439,20 @@ Sub B4XPage_Appear If credi3.RowCount > 0 Then credi3.Position = 0 - If NumberFormat2(credi2.GetString ("SALDO_PENDIENTE"),1,2,2,False) <> NumberFormat2(credi3.GetString ("a_abono"),1,2,2,False) Then - MsgboxAsync("La venta sera en efectivo porque el pago del pagare en menor al total de la deuda.","Atención") + Dim total As String = 0 + For i = 0 To credi2.RowCount - 1 + credi2.Position = i + + + Log(credi2.GetString("SALDO_PENDIENTE")) + total = total + credi2.GetString("SALDO_PENDIENTE") + Log(total) + Next + + + + If NumberFormat2(total,1,2,2,False) <> NumberFormat2(credi3.GetString ("a_abono"),1,2,2,False) Then + MsgboxAsync("La venta sera en efectivo porque el pago del pagare es menor al total de la deuda.","Atención") Else If credi2.GetString ("SALDO_PENDIENTE") = credi3.GetString ("a_abono") Then End If Else @@ -452,8 +464,18 @@ Sub B4XPage_Appear Private credi3 As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT a_abono, CAT_CL_CODIGO FROM KMT_INFO INNER JOIN ABONOS ON CAT_CL_CODIGO = a_cliente WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA) UNION SELECT a_abono, CAT_CL_CODIGO FROM KMT_INFO2 INNER JOIN ABONOS ON CAT_CL_CODIGO = a_cliente WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") If credi3.RowCount > 0 Then credi3.Position = 0 - If NumberFormat2(credi2.GetString ("SALDO_PENDIENTE"),1,2,2,False) <> NumberFormat2(credi3.GetString ("a_abono"),1,2,2,False) Then - MsgboxAsync("La venta sera en efectivo porque el pago del pagare en menor al total de la deuda.","Atención") + + Dim total As String = 0 + For i = 0 To credi2.RowCount - 1 + credi2.Position = i + + + Log(credi2.GetString("SALDO_PENDIENTE")) + total = total + credi2.GetString("SALDO_PENDIENTE") + Log(total) + Next + If NumberFormat2(total,1,2,2,False) <> NumberFormat2(credi3.GetString ("a_abono"),1,2,2,False) Then + MsgboxAsync("La venta sera en efectivo porque el pago del pagare es menor al total de la deuda.","Atención") Else If credi2.GetString ("SALDO_PENDIENTE") = credi3.GetString ("a_abono") Then End If Else @@ -629,8 +651,6 @@ Sub Guardar_Click Credi.Position = 0 If Credi.GetString("CAT_CL_BCREDITO") = "1" Then - - If l_total.Text <> "null" Then If pre_act <> Starter.pre_viejo Then @@ -669,7 +689,18 @@ Sub Guardar_Click Private credi2 As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT CAT_CL_BCREDITO, a_abono, SALDO_PENDIENTE FROM KMT_INFO INNER JOIN ABONOSP ON CAT_CL_CODIGO = CLIENTE INNER JOIN ABONOS ON CAT_CL_CODIGO = a_cliente WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA) UNION SELECT CAT_CL_BCREDITO, a_abono, SALDO_PENDIENTE FROM KMT_INFO2 INNER JOIN ABONOSP ON CAT_CL_CODIGO = CLIENTE INNER JOIN ABONOS ON CAT_CL_CODIGO = a_cliente WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") If credi2.RowCount > 0 Then credi2.Position = 0 - If credi2.GetString ("CAT_CL_BCREDITO") = "1" And credi2.GetString ("a_abono")=credi2.GetString ("SALDO_PENDIENTE") Then + + Dim total As String = 0 + For i = 0 To credi2.RowCount - 1 + credi2.Position = i + + + Log(credi2.GetString("SALDO_PENDIENTE")) + total = total + credi2.GetString("SALDO_PENDIENTE") + Log(total) + Next + + If credi2.GetString ("CAT_CL_BCREDITO") = "1" And credi2.GetString ("a_abono")=total Then If l_total.Text <> "null" Then If pre_act <> Starter.pre_viejo Then Msgbox2Async("La venta es a credito?", "ATENCION","SI","", "NO",LoadBitmap(File.DirAssets,"alert2.png"), False) @@ -847,7 +878,7 @@ Sub GUADAVENTA2 Subs.actualizaTET(la_cuenta.text) DateTime.TimeFormat = "HH:mm:ss" - mandaPendientes 'LO COMENTAMOS PARA PRUEBAS, ACTIVAR AL FINAL!!! +' mandaPendientes 'LO COMENTAMOS PARA PRUEBAS, ACTIVAR AL FINAL!!! mandapiezas B4XPages.MainPage.productos.reiniciarlistaProds = True B4XPages.MainPage.productos.prodsMap.Initialize @@ -2357,11 +2388,36 @@ Private Sub b_abono_Click MsgboxAsync("El monto a abonar no puede ser mayor que el monto total","Atención" ) Else If et_abono.Text <> "" Then - Msgbox2Async($"¿Seguro que quieres realizar un abono de $${et_abono.text} para este cliente?"$, "Guardar Abono", "Guardar", "Cancelar", "", Null, True) - Wait For Msgbox_Result (resultado As Int) - If resultado = DialogResponse.POSITIVE Then - imprime_pagare + + Dim k As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT CUENTA from CUENTAA") + k.Position = 0 + Log(k.GetString("CUENTA")) + Dim y As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT a_abono FROM ABONOS WHERE a_cliente = ?", Array As String(k.GetString("CUENTA"))) + y.position = 0 + + If y.RowCount = 0 Then + Msgbox2Async($"¿Seguro que quieres realizar un abono de $${et_abono.text} para este cliente?"$, "Guardar Abono", "Guardar", "Cancelar", "", Null, True) + Wait For Msgbox_Result (resultado As Int) + If resultado = DialogResponse.POSITIVE Then + imprime_pagare + End If + Else If et_abono.Text > y.GetString("a_abono") Then + Msgbox2Async($"¿Seguro que quieres realizar un abono de $${et_abono.text} para este cliente?"$, "Guardar Abono", "Guardar", "Cancelar", "", Null, True) + Wait For Msgbox_Result (resultado As Int) + If resultado = DialogResponse.POSITIVE Then + imprime_pagare + End If + Else If et_abono.Text = y.GetString("a_abono") Then + p_abono.Visible = False + et_abono.Text = "" + Else If et_abono.Text < y.GetString("a_abono") Then + p_abono.Visible = False + MsgboxAsync("El pago no puede ser menor al monto capturado.","Atención") + et_abono.Text = "" End If + + + End If End If @@ -2383,7 +2439,7 @@ Private Sub b_cxc_Click h = B4XPages.MainPage.skmt.ExecQuery("SELECT CUENTA from CUENTAA") h.Position = 0 Log(h.GetString("CUENTA")) - j = B4XPages.MainPage.skmt.ExecQuery2("SELECT a_abono AS CUANTOS FROM ABONOS WHERE a_cliente = ?", Array As String(h.GetString("CUENTA"))) + j = B4XPages.MainPage.skmt.ExecQuery2("SELECT a_abono FROM ABONOS WHERE a_cliente = ?", Array As String(h.GetString("CUENTA"))) j.position = 0 Log(j.RowCount) If j.RowCount = 0 Then @@ -2408,7 +2464,26 @@ Private Sub b_cxc_Click f.Close Else If j.RowCount > 0 Then - MsgboxAsync("Este cliente ya tiene un pago capturado","Atención") + p_abono.Visible = True + et_abono.text = j.GetString("a_abono") + Dim total As String = 0 + f = B4XPages.MainPage.skmt.ExecQuery("SELECT CUENTA FROM CUENTAA") + f.Position = 0 + + d = B4XPages.MainPage.skmt.ExecQuery2("SELECT NOTA, SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE = ? ", Array As String (f.GetString("CUENTA"))) + clv_abonos.Clear + For i = 0 To d.RowCount - 1 + d.Position = i + clv_abonos.Add(CreateListItem(d.GetString("NOTA"),"$ " & d.GetString("SALDO_PENDIENTE")),i) + Log(d.GetString("NOTA")) + Log(d.GetString("SALDO_PENDIENTE")) + total = total + d.GetString("SALDO_PENDIENTE") + Log(total) + Next + l_montoabonostotal.Text = total + d.Close + f.Close +' MsgboxAsync("Este cliente ya tiene un pago capturado","Atención") End If h.Close j.Close @@ -2551,125 +2626,142 @@ Private Sub b_ventaabordo_Click End Sub Sub imprime_pagare - c=skmt.ExecQuery("select USUARIO from usuarioa") - c.Position=0 - usuario = c.GetString("USUARIO") - DateTime.DateFormat = "MM/dd/yyyy" - DateTime.TimeFormat = "HH:mm:ss" - sDate=DateTime.Date(DateTime.Now) - sTime=DateTime.Time(DateTime.Now) - c.Close - ProgressDialogShow("Imprimiendo, un momento ...") - Printer1.DisConnect - If Not(Printer1.IsConnected) Then - Log("Conectando a impresora ...") - Printer1.Connect - Private cont As Int = 0 - Do While Not(impresoraConectada) - Sleep(1000) - Log("++++++ " & cont) - cont = cont + 1 - If cont = 2 Then Printer1.Connect 'Tratamos de reconectar - If cont > 3 Then impresoraConectada = True - Loop - Sleep(500) - impresoraConectada = False - Else - Log("conectando 2") - Printer1.Connect - Private cont As Int = 0 - Do While Not(impresoraConectada) Or Not(Printer1.IsConnected) - Sleep(1000) - Log("****** " & cont) - cont = cont + 1 - If cont = 2 Then Printer1.Connect - If cont > 3 Then impresoraConectada = True - Loop - Sleep(500) - impresoraConectada = False - End If - - TAMANO = 0 - ESPACIO = 22 - BLANCO = " " - Printer1.WriteString("Marquez Distribuciones" & CRLF) + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + DateTime.DateFormat = "MM/dd/yyyy" + DateTime.TimeFormat = "HH:mm:ss" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + c.Close + + ProgressDialogShow("Imprimiendo, un momento ...") + Printer1.DisConnect + If Not(Printer1.IsConnected) Then + Log("Conectando a impresora ...") + Printer1.Connect + Private cont As Int = 0 + Do While Not(impresoraConectada) + Sleep(1000) + Log("++++++ " & cont) + cont = cont + 1 + If cont = 2 Then Printer1.Connect 'Tratamos de reconectar + If cont > 3 Then impresoraConectada = True + Loop + Sleep(500) + impresoraConectada = False + Else + Log("conectando 2") + Printer1.Connect + Private cont As Int = 0 + Do While Not(impresoraConectada) Or Not(Printer1.IsConnected) + Sleep(1000) + Log("****** " & cont) + cont = cont + 1 + If cont = 2 Then Printer1.Connect + If cont > 3 Then impresoraConectada = True + Loop + Sleep(500) + impresoraConectada = False + End If + + TAMANO = 0 + ESPACIO = 22 + BLANCO = " " + + Printer1.WriteString("Marquez Distribuciones" & CRLF) ' Printer1.WriteString(sucursal & CRLF) - Printer1.WriteString(sDate & CRLF) - Printer1.WriteString(sTime & CRLF) - Printer1.WriteString("Vendedor:" & usuario & CRLF) - Printer1.WriteString("Tienda: " & La_nombre.Text & CRLF) - Printer1.WriteString("ID.Cliente: " & la_cuenta.Text & CRLF) - Printer1.WriteString("Calle: " & la_Calle.Text & CRLF) - Printer1.WriteString("Colonia: " & la_col.Text & CRLF) - Printer1.WriteString(" " & CRLF) - Dim notaabono As String - Dim saldopendiente As String - c = Starter.skmt.ExecQuery("SELECT NOTA, DIA_VENCIMIENTO, SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA)") - If c.RowCount > 0 Then - c.Position = 0 + Printer1.WriteString(sDate & CRLF) + Printer1.WriteString(sTime & CRLF) + Printer1.WriteString("Vendedor:" & usuario & CRLF) + Printer1.WriteString("Tienda: " & La_nombre.Text & CRLF) + Printer1.WriteString("ID.Cliente: " & la_cuenta.Text & CRLF) + Printer1.WriteString("Calle: " & la_Calle.Text & CRLF) + Printer1.WriteString("Colonia: " & la_col.Text & CRLF) + Printer1.WriteString(" " & CRLF) + Dim notaabono As String + Dim saldopendiente As String + c = Starter.skmt.ExecQuery("SELECT NOTA, DIA_VENCIMIENTO, SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA)") + If c.RowCount > 0 Then + c.Position = 0 - Dim fechatabulador() As String = Regex.Split(" ", c.GetString("DIA_VENCIMIENTO")) - Dim fechatabulador2() As String = Regex.Split("-", fechatabulador(0)) - Dim fechatabulador3 As String = fechatabulador2(2)&"/"&fechatabulador2(1)&"/"&fechatabulador2(0) + Dim fechatabulador() As String = Regex.Split(" ", c.GetString("DIA_VENCIMIENTO")) + Dim fechatabulador2() As String = Regex.Split("-", fechatabulador(0)) + Dim fechatabulador3 As String = fechatabulador2(2)&"/"&fechatabulador2(1)&"/"&fechatabulador2(0) - notaabono = c.GetString("NOTA") - saldopendiente = c.GetString("SALDO_PENDIENTE") - End If - c.Close + notaabono = c.GetString("NOTA") + saldopendiente = c.GetString("SALDO_PENDIENTE") + End If + c.Close ' c = Starter.skmt.ExecQuery("SELECT NOTA FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA)") ' If c.RowCount > 0 Then ' c.Position = 0 ' notaabono = c.GetString("NOTA") ' End If - Log(notaabono) - Log(et_abono.Text) - Printer1.WriteString("Comprobante de pago del pagare" & CRLF) + Log(notaabono) + Log(et_abono.Text) + Printer1.WriteString("Comprobante de pago del pagare" & CRLF) - Printer1.WriteString("Folio: " & notaabono & CRLF) + Printer1.WriteString("Folio: " & notaabono & CRLF) - Printer1.WriteString("Monto deuda: " & (NumberFormat(saldopendiente,0,2)) & CRLF) + Printer1.WriteString("Monto deuda: " & (NumberFormat(saldopendiente,0,2)) & CRLF) - Printer1.WriteString("Monto abono: " & (NumberFormat(et_abono.Text,0,2)) & CRLF) + Printer1.WriteString("Monto abono: " & (NumberFormat(et_abono.Text,0,2)) & CRLF) - Printer1.WriteString("Restante: " &(NumberFormat(saldopendiente-et_abono.Text,0,2)) & CRLF) + Printer1.WriteString("Restante: " &(NumberFormat(saldopendiente-et_abono.Text,0,2)) & CRLF) - Printer1.WriteString("Fecha Abono: " & sDate & CRLF) + Printer1.WriteString("Fecha Abono: " & sDate & CRLF) - Printer1.WriteString("Fecha vencimiento: " & fechatabulador3 & CRLF) + Printer1.WriteString("Fecha vencimiento: " & fechatabulador3 & CRLF) - Printer1.WriteString(" " & CRLF) - Printer1.WriteString(" " & CRLF) - Printer1.WriteString(" " & CRLF) - Printer1.WriteString(" " & CRLF) - Printer1.WriteString(" " & CRLF) - Printer1.WriteString(" " & CRLF) - Printer1.WriteString(" " & CRLF) + Printer1.WriteString(" " & CRLF) + Printer1.WriteString(" " & CRLF) + Printer1.WriteString(" " & CRLF) + Printer1.WriteString(" " & CRLF) + Printer1.WriteString(" " & CRLF) + Printer1.WriteString(" " & CRLF) + Printer1.WriteString(" " & CRLF) - Printer1.WriteString("------------------------------" & CRLF) - Printer1.WriteString("-------------FIRMA------------" & CRLF) + Printer1.WriteString("------------------------------" & CRLF) + Printer1.WriteString("-------------FIRMA------------" & CRLF) - Printer1.WriteString(" " & CRLF) - Printer1.WriteString(" " & CRLF) - Printer1.WriteString(" " & CRLF) - Sleep(1000) - Printer1.DisConnect + Printer1.WriteString(" " & CRLF) + Printer1.WriteString(" " & CRLF) + Printer1.WriteString(" " & CRLF) + Sleep(1000) + Printer1.DisConnect - ProgressDialogHide + ProgressDialogHide - Msgbox2Async("Deseas imprimir de nuevo el ticket?", "ATENCION","SI","", "NO",LoadBitmap(File.DirAssets,"alert2.png"), False) - Wait For Msgbox_Result (resultado As Int) - If resultado = DialogResponse.POSITIVE Then - imprime_pagare - Else - p_abono.Visible = False + Msgbox2Async("Deseas imprimir de nuevo el ticket?", "ATENCION","SI","", "NO",LoadBitmap(File.DirAssets,"alert2.png"), False) + Wait For Msgbox_Result (resultado As Int) + If resultado = DialogResponse.POSITIVE Then + imprime_pagare + Else + h = B4XPages.MainPage.skmt.ExecQuery("SELECT CUENTA from CUENTAA") + h.Position = 0 + Log(h.GetString("CUENTA")) + j = B4XPages.MainPage.skmt.ExecQuery2("SELECT a_abono FROM ABONOS WHERE a_cliente = ?", Array As String(h.GetString("CUENTA"))) + j.position = 0 + If j.RowCount = 0 Then + p_abono.Visible = False + + skmt.ExecNonQuery($"INSERT INTO ABONOS(a_usuario, a_ruta, a_cliente, a_abono, a_fecha) VALUES ('${Subs.traeUsuarioDeBD}', '${Subs.traeRuta(Subs.traeCliente)}', '${Subs.traeCliente}' ,'${et_abono.text}', '${Subs.fechaKMT(DateTime.now)}')"$) + ToastMessageShow("Abono guardado", False) + et_abono.Text = "" + Else + p_abono.Visible = False + +' skmt.ExecNonQuery($"INSERT INTO ABONOS(a_usuario, a_ruta, a_cliente, a_abono, a_fecha) VALUES ('${Subs.traeUsuarioDeBD}', '${Subs.traeRuta(Subs.traeCliente)}', '${Subs.traeCliente}' ,'${et_abono.text}', '${Subs.fechaKMT(DateTime.now)}')"$) + skmt.ExecNonQuery($"UPDATE ABONOS set a_abono = '${et_abono.text}' where a_usuario = '${Subs.traeUsuarioDeBD}' and a_ruta = '${Subs.traeRuta(Subs.traeCliente)}' and a_cliente In (select cuenta from cuentaa)"$) + ToastMessageShow("Abono guardado", False) + et_abono.Text = "" + End If - skmt.ExecNonQuery($"INSERT INTO ABONOS(a_usuario, a_ruta, a_cliente, a_abono, a_fecha) VALUES ('${Subs.traeUsuarioDeBD}', '${Subs.traeRuta(Subs.traeCliente)}', '${Subs.traeCliente}' ,'${et_abono.text}', '${Subs.fechaKMT(DateTime.now)}')"$) - ToastMessageShow("Abono guardado", False) - et_abono.Text = "" End If ' printer.Flush diff --git a/B4A/C_NoVenta.bas b/B4A/C_NoVenta.bas index 4f7ed2c..8eabb78 100644 --- a/B4A/C_NoVenta.bas +++ b/B4A/C_NoVenta.bas @@ -131,7 +131,7 @@ Sub GUARDA_Click B4XPages.MainPage.skmt.ExecNonQuery2("update PEDIDO_INICIO_FINAL set PIF_HORA_FINAL = ? where PIF_CLIENTE = ? and PIF_HORA_FINAL = 0", Array As Object (DateTime.Now, cuenta)) LogColor($"actualizamos "${cuenta}, hora_final=${DateTime.now}"$,Colors.Red) - mandaPendientesnoventa +' mandaPendientesnoventa B4XPages.ShowPage("Principal") End Sub diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 26d1d71..c962455 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -670,6 +670,22 @@ Sub Subir_Click End If c.Close + 'ABONOS + Dim ab As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT * from ABONOS where a_enviado is null"$) + Log(ab.RowCount) + If ab.RowCount > 0 Then + For i=0 To ab.RowCount -1 + ab.Position = i + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_abono_MARQUEZ" + cmd.Parameters = Array As Object( ab.GetString("a_usuario"), ab.GetString("a_ruta"), ab.GetString("a_cliente"), ab.GetString("a_abono"), ab.GetString("a_fecha"),ALMACEN ) + reqManager.ExecuteCommand(cmd , $"ins_abonosPendientes_${ab.GetString("a_cliente")}"$) + Log($"ins_abonosPendientes_${ab.GetString("a_cliente")}"$) + Next + End If + ab.Close + ' CLIENTES NUEVOS Dim fotocn() As Byte Dim Dirp As String = File.DirInternal diff --git a/B4A/MARQUEZ.b4a b/B4A/MARQUEZ.b4a index 045a886..b015f15 100644 --- a/B4A/MARQUEZ.b4a +++ b/B4A/MARQUEZ.b4a @@ -205,7 +205,7 @@ Version=12.8 #Region Project Attributes #ApplicationLabel: Marquez #VersionCode: 1 - #VersionName: 4.11.28 + #VersionName: 4.12.10 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: portrait #CanInstallToExternalStorage: False diff --git a/B4A/MARQUEZ.b4a.meta b/B4A/MARQUEZ.b4a.meta index ce50c34..ec6d09b 100644 --- a/B4A/MARQUEZ.b4a.meta +++ b/B4A/MARQUEZ.b4a.meta @@ -91,6 +91,6 @@ ModuleClosedNodes6= ModuleClosedNodes7= ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=C_Productos,Class_Globals,0,0,C_Productos,b_prodMenos_Click,590,0,C_Productos,llenaCatalogo,405,0,C_Cliente,MODS,1,0,C_Productos,LlenaProdsLL,1266,0,C_Productos,clv_prods_ll_VisibleRangeChanged,1163,6,C_Cliente,Class_Globals,4,0,C_Productos,Busca_TextChanged,1233,0,C_Productos,b_prodMas_Click,685,0,Subs,actualizaProducto,815,0,Subs,guardaProductoSinGestion,782,0 +NavigationStack=C_Cliente,Guardar_Click,696,1,C_Cliente,imprime_venta,1783,0,C_Cliente,GUADAVENTA2,874,0,C_Cliente,mandaPendientesrecarga,2088,0,C_Principal,Class_Globals,0,0,C_Cliente,mandaPendientes,1978,0,C_NoVenta,GUARDA_Click,127,0,C_NoVenta,mandaPendientesnoventa,141,0,C_Principal,Subir_Click,783,1,B4XMainPage,Class_Globals,25,0 SelectedBuild=0 VisibleModules=1,2,13,4,7,8,9,10,14,29