From 8043a7787dff3531769e3f7acc2d125a307826ff Mon Sep 17 00:00:00 2001 From: Jose Alberto Guerra Ugalde Date: Sun, 9 Mar 2025 00:35:10 -0600 Subject: [PATCH] =?UTF-8?q?-=20VERSION=205.03.08=20-=20Se=20agreg=C3=B3=20?= =?UTF-8?q?codigo=20para=20la=20confirmacion=20de=20pagares=20mediante=20W?= =?UTF-8?q?hatsApp=20en=20Cliente.=20-=20Se=20agregaron=20270=20segundos?= =?UTF-8?q?=20(4.5=20minutos)=20al=20tiempo=20calculado=20en=20el=20ruteo?= =?UTF-8?q?=20de=20Clientes.=20-=20Se=20hicieorn=20mas=20peque=C3=B1os=20l?= =?UTF-8?q?os=20n=C3=BAmeros=20de=20los=20globitos=20en=20MAPAS=5FRUTAS,?= =?UTF-8?q?=20de=2020=20a=2015.=20-=20Se=20puso=20un=20toastMessage=20cuan?= =?UTF-8?q?do=20las=20coordenadas=20del=20CEDIS=20est=C3=A1n=20en=20CERO.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- B4A/C_Cliente.bas | 605 ++++++++++++++------------------------ B4A/C_Clientes.bas | 23 +- B4A/C_DetalleVenta.bas | 88 ------ B4A/C_Principal.bas | 230 ++++----------- B4A/Files/cliente.bal | Bin 32787 -> 35224 bytes B4A/Files/clientes.bal | Bin 7454 -> 7454 bytes B4A/MAPA_RUTAS.bas | 1 + B4A/QRGenerator.bas | 491 +++++++++++++++++++++++++++++++ B4A/Starter.bas | 4 +- B4A/Subs.bas | 51 ++-- B4A/guna_reparto.b4a | 11 +- B4A/guna_reparto.b4a.meta | 7 +- 12 files changed, 837 insertions(+), 674 deletions(-) create mode 100644 B4A/QRGenerator.bas diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index 47e4423..6d8aaf9 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -101,6 +101,13 @@ Sub Class_Globals Private b_cxc As Button Dim Tipoentrega As String Private b_cancel_pagare As Button + Private p_transPagare2 As Panel + Private i_qr As B4XImageView + Private qr As QRGenerator + Private b_cerrarqr As Button + Private b_confirmar As Button + Dim NOTA As String + Private p_qr As Panel End Sub 'You can add more parameters here. @@ -112,7 +119,7 @@ End Sub Private Sub B4XPage_Created (Root1 As B4XView) Root = Root1 'load the layout to Root - g.Initialize("GPS") + g.Initialize("GPS") ' Activity.LoadLayout("info_gral") Root.LoadLayout("cliente") 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 from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)") @@ -127,6 +134,10 @@ Private Sub B4XPage_Created (Root1 As B4XView) la_cp.Text = c.GetString("CAT_CL_CP") l_entre1.Text = c.GetString("CAT_CL_CALLE1") l_entre2.Text = c.GetString("CAT_CL_CALLE2") + p_transPagare2.left = 0 : p_transPagare2.Top = 0 + p_transPagare2.Width = Root.Width : p_transPagare2.Height = Root.Height + Subs.centraPanel(p_qr, p_transPagare2.Width) + qr.Initialize(i_qr.mBase.Width) If c.GetString("CAT_CL_ATIENDE1") <> Null And c.GetString("CAT_CL_ATIENDE1") <> "null" Then l_atiende.Text = c.GetString("CAT_CL_ATIENDE1") Else @@ -205,12 +216,7 @@ Sub B4XPage_Appear If vc.RowCount > 0 Then For i = 0 To vc.RowCount - 1 vc.Position = i - - cuenta0 = cuenta0 + ((vc.GetString("HVD_CANT") - vc.GetString("HVD_RECHAZOCANT"))*(vc.GetString("HVD_COSTO_TOT")/vc.GetString("HVD_CANT"))) - - - ' Log(vc.GetString("HVD_CANT")&","&vc.GetString("HVD_RECHAZOCANT")) arti = arti + (vc.GetString("HVD_CANT") - vc.GetString("HVD_RECHAZOCANT")) ' Log(vc.GetString("HVD_CANT") &" - "& vc.GetString("HVD_RECHAZOCANT")&" * "& vc8.GetString("CAT_GP_PRECIO")) @@ -239,7 +245,6 @@ Sub B4XPage_Appear Private Cuenta2 As String = 0 Private arti2 As String = 0 If vc4.RowCount > 0 Then - For i = 0 To vc4.RowCount - 1 vc4.Position = i If vc4.GetString("HVD_PROID") <> vc4.GetString("HVD_CODPROMO") Then @@ -256,7 +261,6 @@ Sub B4XPage_Appear End If End If End If - Next End If ' Log(arti2) @@ -271,17 +275,14 @@ Sub B4XPage_Appear Cuenta3 = Cuenta3 + c4.GetString("PE_COSTO_TOT") Next End If - Log(cuenta0) - Log(Cuenta1) - Log(Cuenta2) - Log(Cuenta3) - +' Log(cuenta0) +' Log(Cuenta1) +' Log(Cuenta2) +' Log(Cuenta3) l_total.Text = NumberFormat2((cuenta0 + Cuenta1 + Cuenta2 + Cuenta3),0,2,2,True) L_CANT.Text = NumberFormat2((arti + arti1 +arti2 + arti3),0,0,0,True) - ' l_total.Text = cuenta + Cuenta1 + Cuenta2 ' L_CANT.Text = arti + arti1 +arti2 - c = Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("MACIMP")) If c.RowCount > 0 Then c.Position = 0 @@ -290,7 +291,6 @@ Sub B4XPage_Appear If Starter.MAC_IMPRESORA = "" Then Starter.MAC_IMPRESORA = "0" ' Log("|" & Starter.MAC_IMPRESORA & "|") Printer1.Initialize(Me, "Printer1") - If Printer1.IsConnected = False Then ' Printer1.Connect ' Log("1") @@ -300,8 +300,6 @@ Sub B4XPage_Appear Log("2") End If - - ' Dim pag As Cursor = Starter.skmt.ExecQuery("select * FROM PAGARES WHERE TMP_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") ' If pag.RowCount > 0 Then ' pag.Position = 0 @@ -313,7 +311,7 @@ Sub B4XPage_Appear ' l_montopag.Text = pag.GetString("TMP_MONTO_PAGARE") ' Dim PAGAREMONTO As Float = cuenta0 + Cuenta1 + Cuenta2 + Cuenta3 ' Dim PAGAREMONTO2 As Float = pag.GetString("TMP_MONTO_PAGARE") -'' Log + '' Log ' If PAGAREMONTO - PAGAREMONTO2 < 0 Then ' l_montoefec.Text = 0 ' Else @@ -332,27 +330,25 @@ Sub B4XPage_Appear almacen = c.GetString("ID_ALMACEN") c.Close - ' If almacen = "3" Or almacen = 3 Or almacen = "5" Or almacen = 5 Then - Tar.Visible = False - Log("SI AQUI") + Tar.Visible = False + Log("SI AQUI") b = Starter.skmt.ExecQuery("select COUNT(*) AS CLIENTE FROM ABONOSP WHERE CLIENTE IN (Select CUENTA from cuentaa) AND SALDO_PENDIENTE <> 0") - b.Position = 0 - Dim cabonos As String = b.GetString("CLIENTE") - If cabonos = 0 Then - b_cxc.Visible = False - Else - b_cxc.Visible = True - End If + b.Position = 0 + Dim cabonos As String = b.GetString("CLIENTE") + If cabonos = 0 Then + b_cxc.Visible = False + Else + b_cxc.Visible = True + End If ' End If - Dim cp As Cursor = Starter.skmt.ExecQuery("SELECT * FROM PAGARES WHERE PA_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND PA_CANCELADO IS NULL") + Dim cp As Cursor = Starter.skmt.ExecQuery("SELECT * FROM PAGARES WHERE PA_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND PA_CANCELADO IS NULL") If cp.RowCount > 0 Then b_cancel_pagare.Visible = True - Else + Else b_cancel_pagare.Visible = False End If - End Sub Sub Activity_Pause (UserClosed As Boolean) @@ -375,7 +371,6 @@ Sub ListView1_ItemLongClick (Position As Int, Value As Object) End Sub Sub gest_Click - Dim x2 As Cursor =Starter.skmt.ExecQuery("SELECT gestion FROM kmt_info where CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") x2.Position = 0 If x2.GetString("gestion") = 2 Then @@ -384,11 +379,7 @@ Sub gest_Click If Result= DialogResponse.NEGATIVE Then B4XPages.ShowPage("Principal") End If - Else - - - Dim k As Cursor = Starter.skmt.ExecQuery("SELECT CUENTA from CUENTAA") k.Position = 0 Log(k.GetString("CUENTA")) @@ -399,7 +390,6 @@ Sub gest_Click If u.RowCount > 0 Then If u.GetString("SALDO_PENDIENTE") <> 0 Then If y.RowCount > 0 Then - If u.GetString("SALDO_PENDIENTE") = y.GetString("a_abono") Then checacredito Else @@ -410,7 +400,6 @@ Sub gest_Click End If Else If u.GetString("SALDO_PENDIENTE") = 0 Then checacredito - End If Else checacredito @@ -419,15 +408,10 @@ Sub gest_Click End Sub Sub checacredito - - - Dim x1 As Cursor =Starter.skmt.ExecQuery("SELECT IFNULL(CAT_CL_LIMITECREDITO,0) AS CAT_CL_LIMITECREDITO FROM kmt_info where CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") x1.Position = 0 If CREDITO = 1 And x1.GetString("CAT_CL_LIMITECREDITO") <> 0 Then '''' se debe de cambiar a si acepta o no credito, aparte de tener la bandera a credito - - - Msgbox2Async("EL CLIENTE PUEDE TENER CREDITO, UNA VEZ SELECCIONADA UNA OPCION NO SE PODRA MODIFICAR!!!!!","Forma de pago","","Credito","Efectivo",LoadBitmap(File.DirAssets,"alert2.png"),False) + Msgbox2Async("EL CLIENTE TIENE CREDITO DISPONIBLE, UNA VEZ SELECCIONADA UNA OPCION NO SE PODRA MODIFICAR!!!!!","Forma de pago","","Credito","Efectivo",LoadBitmap(File.DirAssets,"alert2.png"),False) Wait For Msgbox_Result (Result As Int) If Result= DialogResponse.POSITIVE Then ' Log(1) @@ -443,54 +427,28 @@ Sub checacredito Tipoentrega = "CONTADO" B_IMP_Click banderaimp = 1 - Else If Result = DialogResponse.CANCEL Then If l_total.Text.Replace(",","") <= NumberFormat2( x1.GetString("CAT_CL_LIMITECREDITO").Replace(",",""),0,2,2,False) Then - - Tipoentrega = "CREDITO" - Log(3) - DateTime.DateFormat = "dd/MM/yyyy" - DateTime.TimeFormat = "HH:mm:ss" + Private cliente As String = Subs.traeCliente + c = Starter.skmt.ExecQuery($"select CAT_CL_RUTA from kmt_info where cat_cl_codigo = '${cliente}'"$) + If c.RowCount > 0 Then + c.Position = 0 + Private RUTA_PREVENTA = c.GetString("CAT_CL_RUTA") + End If + c = Starter.skmt.ExecQuery($"select distinct hvd_num_ticket from hist_ventas where hvd_cliente = '${cliente}'"$) + If c.RowCount > 0 Then + c.Position = 0 + NOTA = c.GetString("HVD_NUM_TICKET") + End If + DateTime.DateFormat = "MM/dd/yyyy" sDate=DateTime.Date(DateTime.Now) sTime=DateTime.Time(DateTime.Now) - 'cliente - c=Starter.skmt.ExecQuery("select CUENTA from cuentaa") - c.Position = 0 - cuenta = c.GetString("CUENTA") - c.Close - 'usuario - c=Starter.skmt.ExecQuery("select usuario from usuarioa") - c.Position = 0 - usuario = c.GetString("USUARIO") - c.Close - 'Almacen - c=Starter.skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN") - c.Position = 0 - almacen = c.GetString("ID_ALMACEN") - c.Close - 'FECHA PREVENTA - c=Starter.skmt.ExecQuery("select HVD_FECHA from HIST_VENTAS WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") - c.Position = 0 - fechaprev = c.GetString("HVD_FECHA") - c.Close - 'RUTAPREVENTA - c=Starter.skmt.ExecQuery("select CAT_CL_RUTA from kmt_info WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") - c.Position = 0 - rutaprev = c.GetString("CAT_CL_RUTA") - c.Close - 'RUTA rep - c=Starter.skmt.ExecQuery("select RUTAA from RUTAA") - c.Position = 0 - rutarep = c.GetString("RUTAA") - c.Close - 'monto - c=Starter.skmt.ExecQuery("select sum(HVD_COSTO_TOT) AS MONTO from HIST_VENTAS WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND HVD_RECHAZO = 0 AND HVD_PARCIAL = 0") - c.Position = 0 - montopagare = c.GetString("MONTO") - c.Close - Starter.skmt.ExecNonQuery2("INSERT INTO PAGARES (PA_ALMACEN, PA_RUTA_REP, PA_RUTAPREV, PA_FECHA_PREV, PA_CAPTURA, PA_MONTO, PA_USUARIO, PA_CLIENTE) VALUES(?,?,?,?,?,?,?,?) ", Array As Object (almacen,rutarep,rutaprev,fechaprev,(sDate),montopagare,usuario,cuenta)) - B_IMP_Click - banderaimp = 1 + ProgressDialogShow("Un momento por favor!!") + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insertaPagareGunaRep" + cmd.Parameters = Array As Object(Subs.traeAlmacen, RUTA_PREVENTA, Subs.traeRutaReparto, cliente, l_total.Text.Replace(",",""), NOTA, sDate & " " & sTime) + reqManager.ExecuteCommand(cmd, $"insertaPagare_${NOTA}"$) Else MsgboxAsync("El cliente debe de dar un pago de "& (l_total.Text.Replace(",","") - x1.GetString("CAT_CL_LIMITECREDITO")) &"","Atención") Log(3) @@ -534,17 +492,60 @@ Sub checacredito c.Position = 0 montopagare = c.GetString("MONTO") c.Close - Starter.skmt.ExecNonQuery2("INSERT INTO PAGARES (PA_ALMACEN, PA_RUTA_REP, PA_RUTAPREV, PA_FECHA_PREV, PA_CAPTURA, PA_MONTO, PA_USUARIO, PA_CLIENTE) VALUES(?,?,?,?,?,?,?,?) ", Array As Object (almacen,rutarep,rutaprev,fechaprev,(sDate),l_total.Text,usuario,cuenta)) + Starter.skmt.ExecNonQuery2("INSERT INTO PAGARES (PA_ALMACEN, PA_RUTA_REP, PA_RUTAPREV, PA_FECHA_PREV, PA_CAPTURA, PA_MONTO, PA_USUARIO, PA_CLIENTE) VALUES(?,?,?,?,?,?,?,?) ", Array As Object (almacen,rutarep,rutaprev,fechaprev,(sDate),l_total.Text,usuario,cuenta)) B_IMP_Click banderaimp = 1 - End If End If Else B_IMP_Click banderaimp = 1 End If - +End Sub + +Sub esPagoACreditoGuardamosPagare + Tipoentrega = "CREDITO" + Log(3) + DateTime.DateFormat = "dd/MM/yyyy" + DateTime.TimeFormat = "HH:mm:ss" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + 'cliente + c=Starter.skmt.ExecQuery("select CUENTA from cuentaa") + c.Position = 0 + cuenta = c.GetString("CUENTA") + c.Close + 'usuario + c=Starter.skmt.ExecQuery("select usuario from usuarioa") + c.Position = 0 + usuario = c.GetString("USUARIO") + c.Close + 'Almacen + c=Starter.skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN") + c.Position = 0 + almacen = c.GetString("ID_ALMACEN") + c.Close + 'FECHA PREVENTA + c=Starter.skmt.ExecQuery("select HVD_FECHA from HIST_VENTAS WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") + c.Position = 0 + fechaprev = c.GetString("HVD_FECHA") + c.Close + 'RUTAPREVENTA + c=Starter.skmt.ExecQuery("select CAT_CL_RUTA from kmt_info WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") + c.Position = 0 + rutaprev = c.GetString("CAT_CL_RUTA") + c.Close + 'RUTA rep + rutarep = Subs.traeRutaReparto + c.Close + 'monto + c=Starter.skmt.ExecQuery("select sum(HVD_COSTO_TOT) AS MONTO from HIST_VENTAS WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND HVD_RECHAZO = 0 AND HVD_PARCIAL = 0") + c.Position = 0 + montopagare = c.GetString("MONTO") + c.Close + Starter.skmt.ExecNonQuery2("INSERT INTO PAGARES (PA_ALMACEN, PA_RUTA_REP, PA_RUTAPREV, PA_FECHA_PREV, PA_CAPTURA, PA_MONTO, PA_USUARIO, PA_CLIENTE) VALUES(?,?,?,?,?,?,?,?) ", Array As Object (almacen,rutarep,rutaprev,fechaprev,(sDate),montopagare,usuario,cuenta)) + B_IMP_Click + banderaimp = 1 End Sub Sub Guardado @@ -586,18 +587,16 @@ Sub Guardado Starter.skmt.ExecNonQuery($"UPDATE kmt_info set gestion = 2, HORAENT = '${sDate & " " & sTime}' where CAT_CL_CODIGO In (select cuenta from cuentaa) and CAT_CL_RUTA = '${rutaactualizar}' "$) Starter.skmt.ExecNonQuery("update HIST_VENTAS SET HVD_ESTATUS = 1 WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") mandaPendientesreparto - ' Dim mandamapa As Cursor = Starter.skmt.ExecQuery("SELECT * FROM kmt_info WHERE gestion = 0 and CAT_CL_CODIGO <> 63403") ' If mandamapa.RowCount > 0 Then ' StartActivity(MAPA_RUTAS) ' Else If mandamapa.RowCount = 0 Then - B4XPages.ShowPage("Principal") + B4XPages.ShowPage("Principal") ' End If End Sub Sub b_noEntrega_Click - Dim x2 As Cursor =Starter.skmt.ExecQuery("SELECT gestion FROM kmt_info where CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") x2.Position = 0 If x2.GetString("gestion") = 2 Then @@ -606,11 +605,8 @@ Sub b_noEntrega_Click If Result= DialogResponse.NEGATIVE Then B4XPages.ShowPage("Principal") End If - Else - - - + ' Dim k As Cursor = Starter.skmt.ExecQuery("SELECT CUENTA from CUENTAA") ' k.Position = 0 ' Log(k.GetString("CUENTA")) @@ -618,13 +614,13 @@ Sub b_noEntrega_Click ' y.position = 0 ' Dim u As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(SALDO_PENDIENTE),0) AS SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE = ?", Array As String(k.GetString("CUENTA"))) ' u.Position = 0 -' + ' ' If u.RowCount > 0 Then ' If u.GetString("SALDO_PENDIENTE") <> 0 Then ' If y.RowCount > 0 Then ' ' If u.GetString("SALDO_PENDIENTE") = y.GetString("a_abono") Then - B4XPages.ShowPage("noVenta") + B4XPages.ShowPage("noVenta") ' Else ' MsgboxAsync("Para poder hacer una entrega se necesita liquidar el(los) pagare(s)","Atención") ' End If @@ -639,7 +635,6 @@ Sub b_noEntrega_Click ' B4XPages.ShowPage("noVenta") ' End If End If - End Sub Private Sub B4XPage_CloseRequest As ResumableSub @@ -674,7 +669,7 @@ Sub Guardar_Click ' If mandamapa.RowCount > 0 Then ' StartActivity(MAPA_RUTAS) ' Else If mandamapa.RowCount = 0 Then - B4XPages.ShowPage("Principal") + B4XPages.ShowPage("Principal") ' End If End Sub @@ -683,7 +678,6 @@ Sub NUEVO_Click End Sub Sub HIST_Click - Dim x2 As Cursor =Starter.skmt.ExecQuery("SELECT gestion FROM kmt_info where CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") x2.Position = 0 If x2.GetString("gestion") = 2 Then @@ -692,11 +686,7 @@ Sub HIST_Click If Result= DialogResponse.NEGATIVE Then B4XPages.ShowPage("Principal") End If - Else - - - Dim k As Cursor = Starter.skmt.ExecQuery("SELECT CUENTA from CUENTAA") k.Position = 0 Log(k.GetString("CUENTA")) @@ -704,11 +694,9 @@ Sub HIST_Click y.position = 0 Dim u As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(SALDO_PENDIENTE),0) AS SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE = ?", Array As String(k.GetString("CUENTA"))) u.Position = 0 - If u.RowCount > 0 Then If u.GetString("SALDO_PENDIENTE") <> 0 Then If y.RowCount > 0 Then - If u.GetString("SALDO_PENDIENTE") = y.GetString("a_abono") Then B4XPages.MainPage.detalleVenta.prodsMap.Initialize B4XPages.ShowPage("DetalleVenta") @@ -721,23 +709,19 @@ Sub HIST_Click Else If u.GetString("SALDO_PENDIENTE") = 0 Then B4XPages.MainPage.detalleVenta.prodsMap.Initialize B4XPages.ShowPage("DetalleVenta") - End If Else B4XPages.MainPage.detalleVenta.prodsMap.Initialize B4XPages.ShowPage("DetalleVenta") End If - End If ' B4XPages.MainPage.historico.prodsMap.Initialize -'' B4XPages.MainPage.historico.clv_pedido.Clear + '' B4XPages.MainPage.historico.clv_pedido.Clear ' B4XPages.ShowPage("Historico") ' B4XPages.MainPage.historico.clv_pedido.Clear - End Sub Sub B_IMP_Click - c=Starter.skmt.ExecQuery("select USUARIO from usuarioa") c.Position=0 usuario = c.GetString("USUARIO") @@ -745,8 +729,6 @@ Sub B_IMP_Click sDate=DateTime.Date(DateTime.Now) sTime=DateTime.Time(DateTime.Now) c.Close - - ProgressDialogShow("Imprimiendo, un momento ...") Printer1.DisConnect If Not(Printer1.IsConnected) Then @@ -783,13 +765,10 @@ Sub B_IMP_Click Dim bmp As Bitmap bmp.InitializeResize(File.DirAssets, "logo-guna-18.jpg", 192, 192, True) 'ignore Dim myimage As AnImage = Printer1.ImageToBWIMage(bmp) - myimage = Printer1.DitherImage2D(myimage, 128) - myimage= Printer1.PackImage(myimage) Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening Printer1.WriteString(Printer1.REVERSE) - Printer1.PrintImage(myimage) Printer1.WriteString(Printer1.UNREVERSE) ' Dim Ticket As String = 0 @@ -825,19 +804,15 @@ Sub B_IMP_Click Ticket = c6.GetString("HVD_NUM_TICKET") Printer1.WriteString("Num. Ticket " & (k +1)&": " & Ticket & CRLF) Next - End If c6.Close - - + Printer1.WriteString(" " & CRLF) c = Starter.skmt.ExecQuery("SELECT * FROM HIST_VENTAS WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") If c.RowCount > 0 Then Printer1.WriteString("-------ENTREGA A "& Tipoentrega &"------" & CRLF) - ' Printer1.WriteString("--------------------------------" & CRLF) Printer1.WriteString("Cant. Precio Importe" & CRLF) - Printer1.WriteString("------------------------------" & CRLF) ' aqui es donde esta el pedo de julieta de los descuentos quitar el precio2 pero meter un if para saber si es ruta especial o es normal o que show. s=Starter.skmt.ExecQuery($"select HVD_PRONOMBRE, HVD_CANT, length(HVD_CANT) as L_CANT, HVD_COSTO_TOT, length(HVD_COSTO_TOT) as L_COSTOU,HVD_PROID, HVD_CODPROMO,IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_RECHAZO FROM HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) order by HVD_PROID"$) @@ -846,21 +821,14 @@ Sub B_IMP_Click S.Position=i Log(s.GetString("HVD_RECHAZO")) If s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT") > 0 Then - - If s.GetString("HVD_CODPROMO") = Subs.traeAlmacen Then - Printer1.Justify = 0 Printer1.WriteString(s.GetString("HVD_PRONOMBRE") & CRLF) - - Dim punit As String = NumberFormat2((s.GETSTRING("HVD_COSTO_TOT")/s.GetString("HVD_CANT")),0,2,2,False) TAMANO = punit.Length + TAMANO - ' Private ptot As String = NumberFormat2((punit*s.GetString("HVD_CANT")),0,2,2,False) Private ptot As String = NumberFormat2(( (s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT")) * punit ),0,2,2,False) TAMANO = ptot.Length + TAMANO - ESPACIO = (ESPACIO - TAMANO)/2 ' Log(ESPACIO) For E=0 To ESPACIO -1 @@ -875,21 +843,16 @@ Sub B_IMP_Click TAMANO = 0 ESPACIO = 29 BLANCO = " " - Else If s.GetString("HVD_RECHAZO") = 1 Then - Printer1.Justify = 0 Printer1.WriteString(s.GetString("HVD_PRONOMBRE") & CRLF) - Private vc5 As Cursor = Starter.skmt.ExecQuery($"select iFNULL(CAT_GP_PRECIO,0) AS CAT_GP_PRECIO from CAT_GUNAPROD where CAT_GP_ID = '${s.GetString("HVD_PROID")}'"$) vc5.Position = 0 Dim punit As String = NumberFormat2((vc5.GetString("CAT_GP_PRECIO")),0,2,2,False) TAMANO = punit.Length + TAMANO vc5.Close - Private ptot As String = NumberFormat2(( (s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT")) * punit ),0,2,2,False) TAMANO = ptot.Length + TAMANO - ESPACIO = (ESPACIO - TAMANO)/2 ' Log(ESPACIO) For E=0 To ESPACIO -1 @@ -919,30 +882,20 @@ Sub B_IMP_Click Printer1.WriteString("-------PROMOS ENTREGA--------" & CRLF) Printer1.WriteString("Cant. Precio Importe" & CRLF) Printer1.WriteString("------------------------------" & CRLF) - For i=0 To S.RowCount -1 S.Position=i If s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT") > 0 Then - - If s.GetString("HVD_CODPROMO") <> Subs.traeAlmacen Then - Printer1.Justify = 0 If s.GetString("HVD_CODPROMO") = s.GetString("HVD_PROID") Then Printer1.WriteString("* "&s.GetString("HVD_PRONOMBRE") & CRLF) Else Printer1.WriteString(s.GetString("HVD_PRONOMBRE") & CRLF) End If - - Dim punit As String =NumberFormat2((s.GETSTRING("HVD_COSTO_TOT")/s.GetString("HVD_CANT")),0,2,2,False) TAMANO = punit.Length + TAMANO - - Private ptot As String = NumberFormat2((punit*s.GetString("HVD_CANT")),0,2,2,False) TAMANO = ptot.Length + TAMANO - - ESPACIO = (ESPACIO - TAMANO)/2 Log(ESPACIO) For E=0 To ESPACIO -1 @@ -959,7 +912,6 @@ Sub B_IMP_Click BLANCO = " " Printer1.Justify = 0 Else - End If End If Next @@ -967,7 +919,7 @@ Sub B_IMP_Click ' Printer1.WriteString(" " & CRLF) ' s=Starter.skmt.ExecQuery($"select PE_PRONOMBRE, PE_CANT, length(PE_CANT) as L_CANT, PE_COSTO_TOT, length(PE_COSTO_TOT) as L_COSTOU,PE_PROID FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order BY PE_PROID"$) -' + ' ' If S.RowCount>0 Then ' Printer1.WriteString("-----------VENTA------------" & CRLF) ' Printer1.WriteString("Cant. Precio Importe" & CRLF) @@ -975,18 +927,13 @@ Sub B_IMP_Click ' ' For i=0 To S.RowCount -1 ' S.Position=i -' + ' ' Printer1.Justify = 0 ' Printer1.WriteString(s.GetString("PE_PRONOMBRE") & CRLF) -' -' ' Dim punit As String =NumberFormat2( (s.GETSTRING("PE_COSTO_TOT")/s.GetString("PE_CANT")),0,2,2,False) ' TAMANO = punit.Length + TAMANO -' ' Private ptot As String = NumberFormat2((punit*s.GetString("PE_CANT")),0,2,2,False) ' TAMANO = ptot.Length + TAMANO -' -' ' ESPACIO = (ESPACIO - TAMANO)/2 ' Log(ESPACIO) ' For E=0 To ESPACIO -1 @@ -1002,17 +949,12 @@ Sub B_IMP_Click ' ESPACIO = 29 ' BLANCO = " " ' Printer1.Justify = 0 -' ' Next ' End If Printer1.WriteString(" " & CRLF) Printer1.WriteString("------------------------------" & CRLF) - - Printer1.WriteString("Total Articulos: " & L_CANT.Text & CRLF) Printer1.WriteString("Total: $" & l_total.Text) - - Printer1.WriteString(" " & CRLF) Printer1.WriteString("------------------------------" & CRLF) Printer1.WriteString("----ESTE TICKET NO ES UN -----" & CRLF) @@ -1024,9 +966,7 @@ Sub B_IMP_Click Printer1.WriteString(" " & CRLF) Sleep(1000) Printer1.DisConnect - ProgressDialogHide - If banderaimp = 1 Then Msgbox2Async("Deseas imprimir de nuevo el ticket?", "ATENCION","SI","", "NO",LoadBitmap(File.DirAssets,"alert2.png"), False) Wait For Msgbox_Result (resultado As Int) @@ -1039,7 +979,6 @@ Sub B_IMP_Click Guardado End If End If - ' printer.Flush ' printer.Close Else If banderaimp = 0 Then @@ -1049,7 +988,6 @@ Sub B_IMP_Click B_IMP_Click End If End If - ' Guardado End Sub @@ -1138,12 +1076,11 @@ Sub B_PASO2_Click c.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, "PASO","PASO ESPERA", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps)) - ' Dim mandamapa As Cursor = Starter.skmt.ExecQuery("SELECT * FROM kmt_info WHERE gestion = 0") ' If mandamapa.RowCount > 0 Then ' StartActivity(MAPA_RUTAS) ' Else If mandamapa.RowCount = 0 Then - B4XPages.ShowPage("Principal") + B4XPages.ShowPage("Principal") ' End If End Sub @@ -1154,7 +1091,6 @@ Sub mandaPendientesreparto ' 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_MARDS"'Ojala no Truene @@ -1166,8 +1102,6 @@ Sub mandaPendientesreparto ' c.Close End Sub - - Sub JobDone(Job As HttpJob) Log(Job.Success) If Job.Success = False Then @@ -1187,10 +1121,33 @@ Sub JobDone(Job As HttpJob) Next Next End If + If resultado.Tag.As(String).IndexOf("insertaPagare_") > -1 Then + ProgressDialogHide + Private NOTA As String= resultado.Tag + NOTA = NOTA.SubString(NOTA.IndexOf("_")+1) + Log(NOTA) + p_transPagare2.Visible = True + CrearQR(NOTA) + End If + If resultado.Tag.As(String).IndexOf("pagareConfirmado_") > -1 Then + ProgressDialogHide + Subs.logJobDoneResultados(resultado) + Private NOTA As String= resultado.Tag + NOTA = NOTA.SubString(NOTA.IndexOf("_")+1) +' Log(NOTA) +' Log(resultado.Rows.Size) + If resultado.Rows.Size > 0 Then + p_transPagare2.Visible = False +' guardaVenta + esPagoACreditoGuardamosPagare +' Msgbox("¡Pagare confirmado!", "AVISO") 'ignore + Else + ToastMessageShow("El pagare NO ha sido confirmado por el cliente!", True) + End If + End If End If Job.Release End If - End Sub Private Sub b_acred_Click @@ -1248,7 +1205,6 @@ Private Sub p_credito_Click End Sub Private Sub b_cxc_Click - h = Starter.skmt.ExecQuery("SELECT CUENTA from CUENTAA") h.Position = 0 Log(h.GetString("CUENTA")) @@ -1256,13 +1212,11 @@ Private Sub b_cxc_Click j.position = 0 Log(j.RowCount) If j.RowCount = 0 Then - p_abono.Visible = True et_abono.text = "" Dim total As Double = 0 f = Starter.skmt.ExecQuery("SELECT CUENTA FROM CUENTAA") f.Position = 0 - d = Starter.skmt.ExecQuery2("SELECT NOTA, SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE = ? AND SALDO_PENDIENTE <> 0", Array As String (f.GetString("CUENTA"))) clv_abonos.Clear For i = 0 To d.RowCount - 1 @@ -1273,35 +1227,25 @@ Private Sub b_cxc_Click total = total + d.GetString("SALDO_PENDIENTE") Log(total) Next - d.Close - - d = Starter.skmt.ExecQuery2("SELECT a_abono FROM ABONOS WHERE a_cliente = ?", Array As String (f.GetString("CUENTA"))) If d.RowCount > 0 Then - - For i = 0 To d.RowCount - 1 d.Position = i clv_abonos.Add(CreateListItem("ABONO","$ " & d.GetString("a_abono")),i) - - total = total - d.GetString("a_abono") Log(total) Next - End If l_montoabonostotal.Text = NumberFormat2(total,0,2,2,False) d.Close f.Close - Else If j.RowCount > 0 Then p_abono.Visible = True et_abono.text = "" Dim total As Double = 0 f = Starter.skmt.ExecQuery("SELECT CUENTA FROM CUENTAA") f.Position = 0 - d = Starter.skmt.ExecQuery2("SELECT NOTA, SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE = ? AND SALDO_PENDIENTE <> 0", Array As String (f.GetString("CUENTA"))) clv_abonos.Clear For i = 0 To d.RowCount - 1 @@ -1312,23 +1256,15 @@ Private Sub b_cxc_Click total = total + d.GetString("SALDO_PENDIENTE") Log(total) Next - d.Close - - d = Starter.skmt.ExecQuery2("SELECT a_abono FROM ABONOS WHERE a_cliente = ?", Array As String (f.GetString("CUENTA"))) If d.RowCount > 0 Then - - For i = 0 To d.RowCount - 1 d.Position = i clv_abonos.Add(CreateListItem("ABONO","$ " & d.GetString("a_abono")),i) - - total = total - d.GetString("a_abono") Log(total) Next - End If l_montoabonostotal.Text = NumberFormat2(total,0,2,2,False) d.Close @@ -1337,11 +1273,8 @@ Private Sub b_cxc_Click End If h.Close j.Close - - End Sub - Private Sub p_abono_Click End Sub @@ -1373,19 +1306,17 @@ 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 <> "" And et_abono.Text > 0 Then - ' Dim k As Cursor = Starter.skmt.ExecQuery("SELECT CUENTA from CUENTAA") ' k.Position = 0 ' Log(k.GetString("CUENTA")) ' Dim y As Cursor = Starter.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_abonopagare - End If + 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_abonopagare + 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) @@ -1400,9 +1331,6 @@ Private Sub b_abono_Click ' MsgboxAsync("El pago no puede ser menor al monto capturado.","Atención") ' et_abono.Text = "" ' End If - - - End If End If End If @@ -1417,25 +1345,19 @@ End Sub ' j.position = 0 ' If j.RowCount = 0 Then ' p_abono.Visible = False -' ' Starter.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)}')"$) ' Starter.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 -' -' 'End Sub Sub imprime_abonopagare - - c=Starter.skmt.ExecQuery("select USUARIO from usuarioa") c.Position=0 usuario = c.GetString("USUARIO") @@ -1444,7 +1366,6 @@ Sub imprime_abonopagare sDate=DateTime.Date(DateTime.Now) sTime=DateTime.Time(DateTime.Now) c.Close - ProgressDialogShow("Imprimiendo, un momento ...") Printer1.DisConnect If Not(Printer1.IsConnected) Then @@ -1474,23 +1395,18 @@ Sub imprime_abonopagare Sleep(500) impresoraConectada = False End If - TAMANO = 0 ESPACIO = 22 BLANCO = " " Dim bmp As Bitmap bmp.InitializeResize(File.DirAssets, "logo-guna-18.jpg", 192, 192, True) 'ignore Dim myimage As AnImage = Printer1.ImageToBWIMage(bmp) - myimage = Printer1.DitherImage2D(myimage, 128) - myimage= Printer1.PackImage(myimage) Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening Printer1.WriteString(Printer1.REVERSE) - Printer1.PrintImage(myimage) Printer1.WriteString(Printer1.UNREVERSE) - Dim telefono As String = "" Dim c7 As Cursor = Starter.skmt.ExecQuery("select IFNULL(CAT_CL_TELEFONO,' ') AS CAT_CL_TELEFONO FROM kmt_info WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") If c7.RowCount > 0 Then @@ -1515,29 +1431,20 @@ Sub imprime_abonopagare c = Starter.skmt.ExecQuery("SELECT NOTA, SUM(SALDO_PENDIENTE) AS SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA)") If c.RowCount > 0 Then c.Position = 0 - - - notaabono = c.GetString("NOTA") saldopendiente = c.GetString("SALDO_PENDIENTE") End If c.Close - - + Dim saldopendiente1 As Double = 0 Dim c4 As Cursor= Starter.skmt.ExecQuery("SELECT Ifnull(SUM(a_abono),0) AS SALDO_PENDIENTE FROM ABONOS WHERE a_cliente IN (SELECT CUENTA FROM CUENTAA)") If c4.RowCount > 0 Then c4.Position = 0 - - - Dim c5 As Cursor= Starter.skmt.ExecQuery("SELECT Ifnull(a_abono,0) AS SALDO_PENDIENTE FROM ABONOS WHERE a_cliente IN (SELECT CUENTA FROM CUENTAA)") - saldopendiente1 = c4.GetString("SALDO_PENDIENTE") End If c4.Close - - + ' c = Starter.skmt.ExecQuery("SELECT NOTA FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA)") ' If c.RowCount > 0 Then ' c.Position = 0 @@ -1546,19 +1453,11 @@ Sub imprime_abonopagare Log(notaabono) Log(et_abono.Text) Printer1.WriteString("Comprobante de pago del pagare" & CRLF) - Printer1.WriteString("Folio: " & notaabono &"-"&(c5.RowCount)& CRLF) - Printer1.WriteString("Monto deuda: " & (NumberFormat(saldopendiente - saldopendiente1,0,2)) & CRLF) - Printer1.WriteString("Monto abono: " & (NumberFormat(et_abono.Text,0,2)) & CRLF) - Printer1.WriteString("Restante: " &(NumberFormat(saldopendiente-et_abono.Text - saldopendiente1,0,2)) & CRLF) - Printer1.WriteString("Fecha Abono: " & sDate & CRLF) - - - Printer1.WriteString(" " & CRLF) Printer1.WriteString(" " & CRLF) Printer1.WriteString(" " & CRLF) @@ -1566,10 +1465,8 @@ Sub imprime_abonopagare Printer1.WriteString(" " & CRLF) Printer1.WriteString(" " & CRLF) Printer1.WriteString(" " & CRLF) - Printer1.WriteString("------------------------------" & CRLF) Printer1.WriteString("-------------FIRMA------------" & CRLF) - Printer1.WriteString(" " & CRLF) Printer1.WriteString(" " & CRLF) Printer1.WriteString(" " & CRLF) @@ -1579,13 +1476,9 @@ Sub imprime_abonopagare Printer1.WriteString(" " & CRLF) Printer1.WriteString(" " & CRLF) Printer1.WriteString(" " & CRLF) - Sleep(1000) Printer1.DisConnect - 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 @@ -1598,10 +1491,8 @@ Sub imprime_abonopagare j.position = 0 If j.RowCount = 0 Then p_abono.Visible = False - Starter.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) - Dim rutaactualizar As String Dim rut As Cursor = Starter.skmt.ExecQuery("SELECT CAT_CL_RUTA FROM kmt_info WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") If rut.RowCount > 0 Then @@ -1610,7 +1501,6 @@ Sub imprime_abonopagare End If Starter.skmt.ExecNonQuery($"UPDATE kmt_info set gestion = 0, HORAENT = '${sDate & " " & sTime}' where CAT_CL_CODIGO In (select cuenta from cuentaa) and CAT_CL_RUTA = '${rutaactualizar}'"$) Starter.skmt.ExecNonQuery($"DELETE FROM NOVENTA WHERE NV_CLIENTE IN (select cuenta from cuentaa)"$) - Private c3 As Cursor = Starter.skmt.ExecQuery("SELECT * FROM PEDIDO WHERE PE_CLIENTEOR IN (SELECT CUENTA FROM CUENTAA)") If c3.RowCount = 0 Then Starter.skmt.ExecNonQuery($"update HIST_VENTAS set HVD_RECHAZO = 0, HVD_RECHAZOCANT = 0, BCAJAS = BCAJAS_OR, CANTC = CANTC_OR WHERE HVD_cliente in (Select CUENTA from cuentaa)"$) @@ -1619,49 +1509,44 @@ Sub imprime_abonopagare MsgboxAsync("Hay productos que ya se vendieron, no se puede regresar la venta","Atención") End If Dim textedit As Double = et_abono.Text - Dim sumaresta As Double = saldopendiente-textedit-saldopendiente1 Log(NumberFormat2(sumaresta,0,2,2,False)) - If NumberFormat2(sumaresta,0,2,2,False) <> "-.00" Then + If NumberFormat2(sumaresta,0,2,2,False) <> "-.00" Then If NumberFormat2(sumaresta,0,2,2,False) <> ".00" Then - - Dim rutaactualizar As String - Dim rut As Cursor = Starter.skmt.ExecQuery("SELECT CAT_CL_RUTA FROM kmt_info WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") - If rut.RowCount > 0 Then - rut.Position = 0 - rutaactualizar = rut.GetString("CAT_CL_RUTA") - End If - Starter.skmt.ExecNonQuery($"UPDATE kmt_info set gestion = 3, HORAENT = '${sDate & " " & sTime}' where CAT_CL_CODIGO In (select cuenta from cuentaa) and CAT_CL_RUTA = '${rutaactualizar}'"$) - 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,NV_FOTO,NV_REPROGRAMAR) VALUES(?,?,?,?,?,?,?,?,?) ", Array As Object (la_cuenta.Text,sDate & sTime, usuario, "PAGO INCOMPLETO","PAGO INCOMPLETO", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps,rutaactualizar,0)) - Starter.skmt.ExecNonQuery("update HIST_VENTAS SET HVD_RECHAZO = 1, HVD_RECHAZOCANT = HVD_CANT, HVD_RECHAZOCANTC = CANTC, BCAJAS = 0 , CANTC = 0 WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") - Starter.skmt.ExecNonQuery($"update HIST_VENTAS set HVD_RECHAZO = 2, HVD_RECHAZOCANT = HVD_RECHAZOCANT WHERE HVD_PROID = HVD_CODPROMO and HVD_CLIENTE in (Select CUENTA from cuentaa)"$) - Starter.skmt.ExecNonQuery("DELETE FROM PEDIDO WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") - d = Starter.skmt.ExecQuery("SELECT RUTAA FROM RUTAA") - d.Position = 0 - Dim ruta As String = d.GetString("RUTAA") - d.Close - d = Starter.skmt.ExecQuery("SELECT CAT_CL_RUTA FROM kmt_info WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") - d.Position = 0 - Dim rutapre As String = d.GetString("CAT_CL_RUTA") - d.Close - d = Starter.skmt.ExecQuery("SELECT HVD_FECHA FROM HIST_VENTAS WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") - d.Position = 0 - Dim fechaprev As String = d.GetString("HVD_FECHA") - d.Close - d = Starter.skmt.ExecQuery("SELECT CUENTA FROM CUENTAA") - d.Position = 0 - Starter.skmt.ExecNonQuery2("INSERT INTO REPARTO_GEO (CLIENTE, USUARIO, FECHA_PUNTEO, LATITUD, LONGITUD, ALMACEN, RUTA_REPARTO, RUTA_PREV, FECHA_PREVENTA, MOTIVO, COMENTARIO,TIPO,ENVIO) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,0)",Array As String (cuenta, usuario, sDate &" "&sTime, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps,B4XPages.MainPage.almacen,ruta,rutapre,fechaprev, "PAGO INCOMPLETO", "PAGO INCOMPLETO","NO ENTREGADO")) - B4XPages.ShowPage("Principal") + Dim rutaactualizar As String + Dim rut As Cursor = Starter.skmt.ExecQuery("SELECT CAT_CL_RUTA FROM kmt_info WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") + If rut.RowCount > 0 Then + rut.Position = 0 + rutaactualizar = rut.GetString("CAT_CL_RUTA") + End If + Starter.skmt.ExecNonQuery($"UPDATE kmt_info set gestion = 3, HORAENT = '${sDate & " " & sTime}' where CAT_CL_CODIGO In (select cuenta from cuentaa) and CAT_CL_RUTA = '${rutaactualizar}'"$) + 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,NV_FOTO,NV_REPROGRAMAR) VALUES(?,?,?,?,?,?,?,?,?) ", Array As Object (la_cuenta.Text,sDate & sTime, usuario, "PAGO INCOMPLETO","PAGO INCOMPLETO", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps,rutaactualizar,0)) + Starter.skmt.ExecNonQuery("update HIST_VENTAS SET HVD_RECHAZO = 1, HVD_RECHAZOCANT = HVD_CANT, HVD_RECHAZOCANTC = CANTC, BCAJAS = 0 , CANTC = 0 WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") + Starter.skmt.ExecNonQuery($"update HIST_VENTAS set HVD_RECHAZO = 2, HVD_RECHAZOCANT = HVD_RECHAZOCANT WHERE HVD_PROID = HVD_CODPROMO and HVD_CLIENTE in (Select CUENTA from cuentaa)"$) + Starter.skmt.ExecNonQuery("DELETE FROM PEDIDO WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") + d = Starter.skmt.ExecQuery("SELECT RUTAA FROM RUTAA") + d.Position = 0 + Dim ruta As String = d.GetString("RUTAA") + d.Close + d = Starter.skmt.ExecQuery("SELECT CAT_CL_RUTA FROM kmt_info WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") + d.Position = 0 + Dim rutapre As String = d.GetString("CAT_CL_RUTA") + d.Close + d = Starter.skmt.ExecQuery("SELECT HVD_FECHA FROM HIST_VENTAS WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") + d.Position = 0 + Dim fechaprev As String = d.GetString("HVD_FECHA") + d.Close + d = Starter.skmt.ExecQuery("SELECT CUENTA FROM CUENTAA") + d.Position = 0 + Starter.skmt.ExecNonQuery2("INSERT INTO REPARTO_GEO (CLIENTE, USUARIO, FECHA_PUNTEO, LATITUD, LONGITUD, ALMACEN, RUTA_REPARTO, RUTA_PREV, FECHA_PREVENTA, MOTIVO, COMENTARIO,TIPO,ENVIO) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,0)",Array As String (cuenta, usuario, sDate &" "&sTime, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps,B4XPages.MainPage.almacen,ruta,rutapre,fechaprev, "PAGO INCOMPLETO", "PAGO INCOMPLETO","NO ENTREGADO")) + B4XPages.ShowPage("Principal") End If End If Else - p_abono.Visible = False - Starter.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) - Dim rutaactualizar As String Dim rut As Cursor = Starter.skmt.ExecQuery("SELECT CAT_CL_RUTA FROM kmt_info WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") If rut.RowCount > 0 Then @@ -1670,7 +1555,6 @@ Sub imprime_abonopagare End If Starter.skmt.ExecNonQuery($"UPDATE kmt_info set gestion = 0, HORAENT = '${sDate & " " & sTime}' where CAT_CL_CODIGO In (select cuenta from cuentaa) and CAT_CL_RUTA = '${rutaactualizar}'"$) Starter.skmt.ExecNonQuery($"DELETE FROM NOVENTA WHERE NV_CLIENTE IN (select cuenta from cuentaa)"$) - Private c3 As Cursor = Starter.skmt.ExecQuery("SELECT * FROM PEDIDO WHERE PE_CLIENTEOR IN (SELECT CUENTA FROM CUENTAA)") If c3.RowCount = 0 Then Starter.skmt.ExecNonQuery($"update HIST_VENTAS set HVD_RECHAZO = 0, HVD_RECHAZOCANT = 0, BCAJAS = BCAJAS_OR, CANTC = CANTC_OR WHERE HVD_cliente in (Select CUENTA from cuentaa)"$) @@ -1678,52 +1562,46 @@ Sub imprime_abonopagare Else MsgboxAsync("Hay productos que ya se vendieron, no se puede regresar la venta","Atención") End If - Dim textedit As Double = et_abono.Text - Dim sumaresta As Double = saldopendiente-textedit-saldopendiente1 - Log(NumberFormat2(sumaresta,0,2,2,False)) - +' Log(NumberFormat2(sumaresta,0,2,2,False)) If NumberFormat2(sumaresta,0,2,2,False) <> "-.00" Then If NumberFormat2(sumaresta,0,2,2,False) <> ".00" Then - - - Dim rutaactualizar As String - Dim rut As Cursor = Starter.skmt.ExecQuery("SELECT CAT_CL_RUTA FROM kmt_info WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") - If rut.RowCount > 0 Then - rut.Position = 0 - rutaactualizar = rut.GetString("CAT_CL_RUTA") - End If - Starter.skmt.ExecNonQuery($"UPDATE kmt_info set gestion = 3, HORAENT = '${sDate & " " & sTime}' where CAT_CL_CODIGO In (select cuenta from cuentaa) and CAT_CL_RUTA = '${rutaactualizar}'"$) - 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,NV_FOTO,NV_REPROGRAMAR) VALUES(?,?,?,?,?,?,?,?,?) ", Array As Object (la_cuenta.Text,sDate & sTime, usuario, "PAGO INCOMPLETO","PAGO INCOMPLETO", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps,rutaactualizar,0)) - Starter.skmt.ExecNonQuery("update HIST_VENTAS SET HVD_RECHAZO = 1, HVD_RECHAZOCANT = HVD_CANT, HVD_RECHAZOCANTC = CANTC, BCAJAS = 0 , CANTC = 0 WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") - Starter.skmt.ExecNonQuery($"update HIST_VENTAS set HVD_RECHAZO = 2, HVD_RECHAZOCANT = HVD_RECHAZOCANT WHERE HVD_PROID = HVD_CODPROMO and HVD_CLIENTE in (Select CUENTA from cuentaa)"$) - Starter.skmt.ExecNonQuery("DELETE FROM PEDIDO WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") - d = Starter.skmt.ExecQuery("SELECT RUTAA FROM RUTAA") - d.Position = 0 - Dim ruta As String = d.GetString("RUTAA") - d.Close - d = Starter.skmt.ExecQuery("SELECT CAT_CL_RUTA FROM kmt_info WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") - d.Position = 0 - Dim rutapre As String = d.GetString("CAT_CL_RUTA") - d.Close - d = Starter.skmt.ExecQuery("SELECT HVD_FECHA FROM HIST_VENTAS WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") - d.Position = 0 - Dim fechaprev As String = d.GetString("HVD_FECHA") - d.Close - d = Starter.skmt.ExecQuery("SELECT CUENTA FROM CUENTAA") - d.Position = 0 - Starter.skmt.ExecNonQuery2("INSERT INTO REPARTO_GEO (CLIENTE, USUARIO, FECHA_PUNTEO, LATITUD, LONGITUD, ALMACEN, RUTA_REPARTO, RUTA_PREV, FECHA_PREVENTA, MOTIVO, COMENTARIO,TIPO,ENVIO) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,0)",Array As String (cuenta, usuario, sDate &" "&sTime, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps,B4XPages.MainPage.almacen,ruta,rutapre,fechaprev, "PAGO INCOMPLETO", "PAGO INCOMPLETO","NO ENTREGADO")) - B4XPages.ShowPage("Principal") + Dim rutaactualizar As String + Dim rut As Cursor = Starter.skmt.ExecQuery("SELECT CAT_CL_RUTA FROM kmt_info WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") + If rut.RowCount > 0 Then + rut.Position = 0 + rutaactualizar = rut.GetString("CAT_CL_RUTA") + End If + Starter.skmt.ExecNonQuery($"UPDATE kmt_info set gestion = 3, HORAENT = '${sDate & " " & sTime}' where CAT_CL_CODIGO In (select cuenta from cuentaa) and CAT_CL_RUTA = '${rutaactualizar}'"$) + 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,NV_FOTO,NV_REPROGRAMAR) VALUES(?,?,?,?,?,?,?,?,?) ", Array As Object (la_cuenta.Text,sDate & sTime, usuario, "PAGO INCOMPLETO","PAGO INCOMPLETO", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps,rutaactualizar,0)) + Starter.skmt.ExecNonQuery("update HIST_VENTAS SET HVD_RECHAZO = 1, HVD_RECHAZOCANT = HVD_CANT, HVD_RECHAZOCANTC = CANTC, BCAJAS = 0 , CANTC = 0 WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") + Starter.skmt.ExecNonQuery($"update HIST_VENTAS set HVD_RECHAZO = 2, HVD_RECHAZOCANT = HVD_RECHAZOCANT WHERE HVD_PROID = HVD_CODPROMO and HVD_CLIENTE in (Select CUENTA from cuentaa)"$) + Starter.skmt.ExecNonQuery("DELETE FROM PEDIDO WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") + d = Starter.skmt.ExecQuery("SELECT RUTAA FROM RUTAA") + d.Position = 0 + Dim ruta As String = d.GetString("RUTAA") + d.Close + d = Starter.skmt.ExecQuery("SELECT CAT_CL_RUTA FROM kmt_info WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") + d.Position = 0 + Dim rutapre As String = d.GetString("CAT_CL_RUTA") + d.Close + d = Starter.skmt.ExecQuery("SELECT HVD_FECHA FROM HIST_VENTAS WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") + d.Position = 0 + Dim fechaprev As String = d.GetString("HVD_FECHA") + d.Close + d = Starter.skmt.ExecQuery("SELECT CUENTA FROM CUENTAA") + d.Position = 0 + Starter.skmt.ExecNonQuery2("INSERT INTO REPARTO_GEO (CLIENTE, USUARIO, FECHA_PUNTEO, LATITUD, LONGITUD, ALMACEN, RUTA_REPARTO, RUTA_PREV, FECHA_PREVENTA, MOTIVO, COMENTARIO,TIPO,ENVIO) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,0)",Array As String (cuenta, usuario, sDate &" "&sTime, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps,B4XPages.MainPage.almacen,ruta,rutapre,fechaprev, "PAGO INCOMPLETO", "PAGO INCOMPLETO","NO ENTREGADO")) + B4XPages.ShowPage("Principal") End If End If ' 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($"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)}')"$) ' Starter.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) -' ' Dim rutaactualizar As String ' Dim rut As Cursor = Starter.skmt.ExecQuery("SELECT CAT_CL_RUTA FROM kmt_info WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") ' If rut.RowCount > 0 Then @@ -1739,8 +1617,6 @@ Sub imprime_abonopagare ' Else ' MsgboxAsync("Hay productos que ya se vendieron, no se puede regresar la venta","Atención") ' End If -' -' ' If NumberFormat(saldopendiente-et_abono.Text,0,0) <> 0 Then ' ' Dim rutaactualizar As String @@ -1772,17 +1648,12 @@ Sub imprime_abonopagare ' B4XPages.ShowPage("Principal") ' End If End If - End If - - - ' printer.Flush ' printer.Close End Sub Sub imprime_pagare - c=Starter.skmt.ExecQuery("select USUARIO from usuarioa") c.Position=0 usuario = c.GetString("USUARIO") @@ -1790,8 +1661,6 @@ Sub imprime_pagare sDate=DateTime.Date(DateTime.Now) sTime=DateTime.Time(DateTime.Now) c.Close - - ProgressDialogShow("Imprimiendo, un momento ...") Printer1.DisConnect If Not(Printer1.IsConnected) Then @@ -1837,13 +1706,10 @@ Sub imprime_pagare Dim bmp As Bitmap bmp.InitializeResize(File.DirAssets, "logo-guna-18.jpg", 192, 192, True) 'ignore Dim myimage As AnImage = Printer1.ImageToBWIMage(bmp) - myimage = Printer1.DitherImage2D(myimage, 128) - myimage= Printer1.PackImage(myimage) Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening Printer1.WriteString(Printer1.REVERSE) - Printer1.PrintImage(myimage) Printer1.WriteString(Printer1.UNREVERSE) @@ -1875,7 +1741,6 @@ Sub imprime_pagare Ticket = c6.GetString("HVD_NUM_TICKET") Printer1.WriteString("Num. Ticket " & (k +1)&": " & Ticket & CRLF) Next - End If c6.Close Printer1.WriteString("Fecha: " & sDate &" " & sTime & CRLF) @@ -1883,10 +1748,8 @@ Sub imprime_pagare c = Starter.skmt.ExecQuery("SELECT * FROM HIST_VENTAS WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") If c.RowCount > 0 Then Printer1.WriteString("------------PAGARE------------" & CRLF) - Printer1.WriteString("" & CRLF) Printer1.WriteString("Pagare por los articulos" & CRLF) - Printer1.WriteString("------------------------------" & CRLF) ' aqui es donde esta el pedo de julieta de los descuentos quitar el precio2 pero meter un if para saber si es ruta especial o es normal o que show. s=Starter.skmt.ExecQuery($"select HVD_PRONOMBRE, HVD_CANT, length(HVD_CANT) as L_CANT, HVD_COSTO_TOT, length(HVD_COSTO_TOT) as L_COSTOU,HVD_PROID, HVD_CODPROMO,IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_RECHAZO FROM HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) order by HVD_PROID"$) @@ -1895,23 +1758,18 @@ Sub imprime_pagare S.Position=i Log(s.GetString("HVD_RECHAZO")) If s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT") > 0 Then - - If s.GetString("HVD_CODPROMO") = Subs.traeAlmacen Then - Printer1.Justify = 0 Printer1.WriteString((s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT") ) &" "&s.GetString("HVD_PRONOMBRE") & CRLF) - - ' Dim punit As String = NumberFormat2((s.GETSTRING("HVD_COSTO_TOT")/s.GetString("HVD_CANT")),0,2,2,False) ' TAMANO = punit.Length + TAMANO -' -'' Private ptot As String = NumberFormat2((punit*s.GetString("HVD_CANT")),0,2,2,False) + ' + '' Private ptot As String = NumberFormat2((punit*s.GetString("HVD_CANT")),0,2,2,False) ' Private ptot As String = NumberFormat2(( (s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT")) * punit ),0,2,2,False) ' TAMANO = ptot.Length + TAMANO ' ' ESPACIO = (ESPACIO - TAMANO)/2 -'' Log(ESPACIO) + '' Log(ESPACIO) ' For E=0 To ESPACIO -1 ' BLANCO = " " & BLANCO ' Next @@ -1924,9 +1782,7 @@ Sub imprime_pagare ' TAMANO = 0 ' ESPACIO = 29 ' BLANCO = " " - Else If s.GetString("HVD_RECHAZO") = 1 Then - Printer1.Justify = 0 Printer1.WriteString((s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT")) &" "&s.GetString("HVD_PRONOMBRE") & CRLF) @@ -1940,7 +1796,7 @@ Sub imprime_pagare ' TAMANO = ptot.Length + TAMANO ' ' ESPACIO = (ESPACIO - TAMANO)/2 -'' Log(ESPACIO) + '' Log(ESPACIO) ' For E=0 To ESPACIO -1 ' BLANCO = " " & BLANCO ' Next @@ -1963,35 +1819,24 @@ Sub imprime_pagare s.Close Printer1.WriteString(" " & CRLF) s=Starter.skmt.ExecQuery($"select HVD_PRONOMBRE, HVD_CANT, length(HVD_CANT) as L_CANT, HVD_COSTO_TOT, length(HVD_COSTO_TOT) as L_COSTOU,HVD_PROID, HVD_CODPROMO,IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT FROM HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) AND HVD_RECHAZO = 0 AND HVD_CODPROMO <> '${Subs.traeAlmacen}' order by HVD_CODPROMO, ESPROMO DESC, HVD_PROID"$) - If S.RowCount>0 Then Printer1.WriteString("-------PROMOS ENTREGA--------" & CRLF) Printer1.WriteString("Cant. Precio Importe" & CRLF) Printer1.WriteString("------------------------------" & CRLF) - For i=0 To S.RowCount -1 S.Position=i If s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT") > 0 Then - - If s.GetString("HVD_CODPROMO") <> Subs.traeAlmacen Then - Printer1.Justify = 0 If s.GetString("HVD_CODPROMO") = s.GetString("HVD_PROID") Then Printer1.WriteString("* "&s.GetString("HVD_PRONOMBRE") & CRLF) Else Printer1.WriteString((s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT") ) &" "&s.GetString("HVD_PRONOMBRE") & CRLF) End If - - ' Dim punit As String =NumberFormat2((s.GETSTRING("HVD_COSTO_TOT")/s.GetString("HVD_CANT")),0,2,2,False) ' TAMANO = punit.Length + TAMANO -' -' ' Private ptot As String = NumberFormat2((punit*s.GetString("HVD_CANT")),0,2,2,False) ' TAMANO = ptot.Length + TAMANO -' -' ' ESPACIO = (ESPACIO - TAMANO)/2 ' Log(ESPACIO) ' For E=0 To ESPACIO -1 @@ -2008,7 +1853,6 @@ Sub imprime_pagare ' BLANCO = " " Printer1.Justify = 0 Else - End If End If Next @@ -2016,7 +1860,6 @@ Sub imprime_pagare Printer1.WriteString(" " & CRLF) Printer1.WriteString("Por monto de $" &l_total.Text& CRLF) - Printer1.WriteString(" " & CRLF) Printer1.WriteString("Debo(mos) y pagare(mos) incon" & CRLF) Printer1.WriteString("dicionalmente en _____________" & CRLF) @@ -2047,9 +1890,7 @@ Sub imprime_pagare Printer1.WriteString(" " & CRLF) Sleep(1000) Printer1.DisConnect - ProgressDialogHide - If banderaimp = 1 Then Msgbox2Async("Deseas imprimir de nuevo el PAGARE?", "ATENCION","SI","", "NO",LoadBitmap(File.DirAssets,"alert2.png"), False) Wait For Msgbox_Result (resultado As Int) @@ -2058,7 +1899,6 @@ Sub imprime_pagare Else Guardado End If - ' printer.Flush ' printer.Close Else If banderaimp = 0 Then @@ -2068,12 +1908,9 @@ Sub imprime_pagare imprime_pagare End If End If - ' Guardado End Sub - - Private Sub b_cancel_pagare_Click Msgbox2Async($"¿Seguro que quieres cancelar el pagare con monto de $${l_total.Text} para este cliente?"$,"Atención", "Aceptar","Cancelar", "", Null, True) Wait For Msgbox_Result (resultado As Int) @@ -2084,10 +1921,7 @@ Private Sub b_cancel_pagare_Click End If End Sub - Sub imprime_cancelarpagare - - c=Starter.skmt.ExecQuery("select USUARIO from usuarioa") c.Position=0 usuario = c.GetString("USUARIO") @@ -2095,8 +1929,6 @@ Sub imprime_cancelarpagare sDate=DateTime.Date(DateTime.Now) sTime=DateTime.Time(DateTime.Now) c.Close - - ProgressDialogShow("Imprimiendo, un momento ...") Printer1.DisConnect If Not(Printer1.IsConnected) Then @@ -2140,13 +1972,10 @@ Sub imprime_cancelarpagare Dim bmp As Bitmap bmp.InitializeResize(File.DirAssets, "logo-guna-18.jpg", 192, 192, True) 'ignore Dim myimage As AnImage = Printer1.ImageToBWIMage(bmp) - myimage = Printer1.DitherImage2D(myimage, 128) - myimage= Printer1.PackImage(myimage) Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening Printer1.WriteString(Printer1.REVERSE) - Printer1.PrintImage(myimage) Printer1.WriteString(Printer1.UNREVERSE) Printer1.WriteString("DISTRIBUIDORA ROCHA TULA PACHUCA" & CRLF) @@ -2160,13 +1989,8 @@ Sub imprime_cancelarpagare Printer1.WriteString("Telefono: " & telefono & CRLF) Printer1.WriteString(" " & CRLF) Printer1.WriteString("-----CANCELACION DE PAGARE----" & CRLF) - Printer1.WriteString("" & CRLF) - - Printer1.WriteString("------------------------------" & CRLF) - - Printer1.WriteString("Se cancela el pagare " & CRLF) Printer1.WriteString("Por monto de $" &l_total.Text& CRLF) Printer1.WriteString("por el cual se pagara el " & CRLF) @@ -2192,20 +2016,15 @@ Sub imprime_cancelarpagare Printer1.WriteString(" " & CRLF) Sleep(1000) Printer1.DisConnect - ProgressDialogHide - If banderaimp = 1 Then Msgbox2Async("Deseas imprimir de nuevo el PAGARE?", "ATENCION","SI","", "NO",LoadBitmap(File.DirAssets,"alert2.png"), False) Wait For Msgbox_Result (resultado As Int) If resultado = DialogResponse.POSITIVE Then imprime_cancelarpagare Else - - Guardado End If - ' printer.Flush ' printer.Close Else If banderaimp = 0 Then @@ -2215,6 +2034,34 @@ Sub imprime_cancelarpagare imprime_cancelarpagare End If End If - ' Guardado +End Sub + +Private Sub CrearQR(NOTA2 As String) +' Private texto As String = $"https://wa.me/5215637241894?text=PAGARE ${NOTA2}"$ 'Bow 2.0 G + Private texto As String = $"https://wa.me/5215611769317?text=PAGARE ${NOTA2}"$ 'Bow2024 + i_qr.Clear + If texto.Length>0 Then + i_qr.SetBitmap(qr.Create(texto)) + Log("QR Creado ->"&texto) + End If +End Sub + +Private Sub b_confirmar_Click + ProgressDialogShow("Un momento por favor!!") + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "selectPagareConfirmado_Demo" +' cmd.Parameters = Array As Object(Subs.traeCliente, NOTA) + cmd.Parameters = Array As Object(NOTA) + reqManager.ExecuteQuery(cmd, 0, $"pagareConfirmado_${NOTA}"$) +End Sub + +Private Sub p_transPagare2_Click + +End Sub + +Private Sub b_cerrarqr_Click + i_qr.Clear + p_transPagare2.Visible = False End Sub \ No newline at end of file diff --git a/B4A/C_Clientes.bas b/B4A/C_Clientes.bas index c5bbb0e..f1ebb3b 100644 --- a/B4A/C_Clientes.bas +++ b/B4A/C_Clientes.bas @@ -31,6 +31,7 @@ Sub Class_Globals Private b_limpiarRuta As Button Dim rutaGenerada As Boolean = False Dim rutaacambiar As String + Dim mostrarProgressDialog As Boolean End Sub 'You can add more parameters here. @@ -100,7 +101,7 @@ Sub B4XPage_Appear Subs.centraEtiqueta(l_rutaInfo, Root.Width) Subs.centraListView(ListView1, p_colonia.Width) ListView1.Height = p_colonia.Height * 0.70 - Subs.centraEtiqueta(lfila, Root.Width) + Subs.centraEtiqueta(lfila, Root.Width + (b_getRutaInfo.Width / 2)) b_getRutaInfo.Visible = True b_getRutaInfo.BringToFront If Starter.cedisLocation.Latitude = "0" Then @@ -113,9 +114,12 @@ Sub B4XPage_Appear End If End If Log(Starter.cedisLocation) + If mostrarProgressDialog = True Then + ProgressDialogShow2("Calculando distancia y tiempo, un momento por favor.", False) + mostrarProgressDialog = False + End If End Sub - Private Sub B4XPage_CloseRequest As ResumableSub ' BACK key pressed 'Return True to close, False to cancel @@ -244,7 +248,7 @@ End Sub Sub BUSCA_TextChanged (Old As String, New As String) q_buscar = "%" & busca.Text & "%" - c2=Starter.skmt.ExecQuery2("select CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_CODIGO from kmt_info where CAT_CL_NOMBRE like ? and gestion = 0 AND CAT_CL_RUTA <> 1000 order by CAT_CL_CODIGO ", Array As String(q_buscar)) + c2=Starter.skmt.ExecQuery2("select CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_CODIGO from kmt_info where CAT_CL_NOMBRE like ? and gestion = 0 AND CAT_CL_RUTA <> 1000 order by CAT_CL_CODIGO ", Array As String(q_buscar)) ListView1.Clear lfila.text = "Nombre y Calle" Subs.SetDivider(ListView1, Colors.Blue, 2) @@ -278,6 +282,7 @@ Sub distanciaEntreCoords(id As String, coords1 As String, coords2 As String) As Dim j As HttpJob j.Initialize("", Me) j.Download("https://router.project-osrm.org/route/v1/driving/"&coords1&";"&coords2&"?overview=false") + Log(("https://router.project-osrm.org/route/v1/driving/"&coords1&";"&coords2&"?overview=false")) Wait For (j) JobDone(j As HttpJob) If j.Success Then Dim jp As JSONParser @@ -646,7 +651,7 @@ Sub caculaRutaGPS(coords As List, agregarActual As Boolean) 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")}')"$) + Starter.skmt.ExecNonQuery($"insert into waypoints (codigo, indice) values ('${ti.Get("id").As(String).SubString(1)}', '${ti.Get("pos")}')"$) Next c = Starter.skmt.ExecQuery("select codigo, indice, CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_NOEXT, CAT_CL_LAT, CAT_CL_LONG from waypoints inner join kmt_info on waypoints.codigo = kmt_info.CAT_CL_CODIGO where gestion = 0 AND CAT_CL_RUTA <> 1000 order by indice") If c.RowCount > 0 Then 'Ya hay waypoints en la base de datos. @@ -674,6 +679,9 @@ Sub caculaRutaGPS(coords As List, agregarActual As Boolean) Private pri As String = $"${primerLon},${primerLat}"$ Private ult As String = $"${ultimaLon},${ultimaLat}"$ Private ced As String = Starter.cedisLocation.Longitude & "," & Starter.cedisLocation.Latitude + If Starter.cedisLocation.Longitude = 0 Or Starter.cedisLocation.Latitude = 0 Then + ToastMessageShow("Las coordenadas del CEDIS NO deben estar en CERO", True) + End If Private ubiActual As String = Starter.inicioLon & "," & Starter.inicioLat Wait For(distanciaEntreCoords("aaaa", pri, ubiActual)) Complete (r As List) Log("DistToPrimero: " & r) @@ -681,12 +689,13 @@ Sub caculaRutaGPS(coords As List, agregarActual As Boolean) Wait For(distanciaEntreCoords("aaaa", ult, ced)) Complete (r As List) Log("DistToUltimo: " & r) Private DistToUltimo As String = NumberFormat2((r.Get(1)/1000), 1, 2, 0, True) + duration = duration + (270 * puntos) ' Agregamoms 4.5 minutos por parada/tienda - 270 segundos = 4.5 minutos Log($"Distancia total: $1.1{distance/1000} kms, tiempo aprox: $1.1{duration/60} mins. ($1.1{duration/60/60} hrs)"$) l_rutaInfo.Text = $"Actual a primer tienda: ${distToPrimero} kms - Distancia: $1.1{distance/1000} kms, tiempo aprox: 5.8 hrs${CRLF}Visitas restantes: ${puntos + 1} - Última tienda a CEDIS: 1.2 kms"$ + Distancia: $1.1{distance/1000} kms, tiempo aprox: $1.1{duration/60/60} hrs${CRLF}Visitas restantes: ${puntos + 1} + Última tienda a CEDIS: ${DistToUltimo} kms"$ ' Distancia: $1.1{distance/1000} kms, tiempo aprox: $1.1{duration/60/60} hrs${CRLF}Visitas restantes: ${puntos - 1} -' Última tienda a CEDIS: ${DistToUltimo} kms"$ + Log($"Última tienda a CEDIS: ${DistToUltimo} kms"$) l_rutaInfo.Width = Root.Width * 0.9 Subs.centraEtiqueta(l_rutaInfo, Root.Width) l_rutaInfo.Visible = True diff --git a/B4A/C_DetalleVenta.bas b/B4A/C_DetalleVenta.bas index 7d373f9..7860e49 100644 --- a/B4A/C_DetalleVenta.bas +++ b/B4A/C_DetalleVenta.bas @@ -88,7 +88,6 @@ End Sub Sub B4XPage_Appear Subs.centraPanel(p_principal, Root.Width) ' b_guardar.Visible = False - ' Titulo.Left = Round(p_principal.Width/2)-(Titulo.Width/2) L_CANT.Text ="" L_TOTAL.Text="" @@ -107,10 +106,8 @@ Sub B4XPage_Appear ' Log("RC1:"&c.RowCount) If c.RowCount>0 Then ' Log("Usamos HV") - For i=0 To c.RowCount -1 c.Position=i - Private c4 As Cursor = Starter.skmt.ExecQuery($"SELECT IFNULL(PE_CANT,0) AS PE_CANT FROM PEDIDO WHERE PE_PROID = '${c.GetString("HVD_PROID")}' AND PE_CLIENTEOR IN (SELECT CUENTA FROM CUENTAA) AND CONSECUTIVO = '${c.GetString("CONSECUTIVO")}'"$) If c4.RowCount > 0 Then c4.Position = 0 @@ -118,7 +115,6 @@ Sub B4XPage_Appear Else cantres = 0 End If - If c.GetString("BCAJAS") = "0" Then If c.GetString("HVD_CANT") <> c.GetString("HVD_RECHAZOCANT") Then 'Traemos cantidad de hvd2 @@ -180,10 +176,8 @@ Sub B4XPage_Appear End If End If Next - ' cuentaProds("") End If - Private c3 As Cursor=Starter.skmt.ExecQuery("Select * from PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") If c3.RowCount>0 Then For i= 0 To c3.RowCount -1 @@ -203,10 +197,7 @@ Sub B4XPage_Appear End If Next End If - - Private vc As Cursor = Starter.skmt.ExecQuery($"select HVD_PROID, HVD_CANT,HVD_COSTO_TOT, IFNULL(HVD_RECHAZOCANT, 0) AS HVD_RECHAZOCANT from HIST_VENTAS where BCAJAS = 0 and HVD_CODPROMO ='${Subs.traealmacen}' and HVD_CLIENTE in (select cuenta from cuentaa)"$) - Private Cuenta As String = 0 Private arti As String = 0 If vc.RowCount > 0 Then @@ -231,7 +222,6 @@ Sub B4XPage_Appear Next End If ' Log(Cuenta) - Private vc2 As Cursor = Starter.skmt.ExecQuery("select HVD_PROID, HVD_CANT, IFNULL(HVD_RECHAZOCANT, 0) AS HVD_RECHAZOCANT, CANTC,HVD_COSTO_TOT from HIST_VENTAS where HVD_CLIENTE in (select cuenta from cuentaa) AND BCAJAS = 1") Private Cuenta1 As String = 0 Private arti1 As String = 0 @@ -248,14 +238,10 @@ Sub B4XPage_Appear Next End If ' Log(Cuenta1) - - - Private vc4 As Cursor = Starter.skmt.ExecQuery($"select HVD_PROID, HVD_CANT, IFNULL(HVD_RECHAZOCANT, 0) AS HVD_RECHAZOCANT, CANTC,HVD_COSTO_TOT, HVD_RECHAZO, HVD_CODPROMO from HIST_VENTAS where HVD_CLIENTE in (select cuenta from cuentaa) AND BCAJAS = 0 and HVD_CODPROMO <> '${Subs.traeAlmacen}'"$) Private Cuenta2 As String = 0 Private arti2 As String = 0 If vc4.RowCount > 0 Then - For i = 0 To vc4.RowCount - 1 vc4.Position = i If vc4.GetString("HVD_PROID") <> vc4.GetString("HVD_CODPROMO") Then @@ -275,10 +261,6 @@ Sub B4XPage_Appear Next End If - - - - Private c4 As Cursor = Starter.skmt.ExecQuery($"SELECT IFNULL(PE_CANT,0) AS PE_CANT, iFNULL(PE_COSTO_TOT,0) AS PE_COSTO_TOT FROM PEDIDO WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA)"$) Private Cuenta3 As String = 0 Private arti3 As String = 0 @@ -289,7 +271,6 @@ Sub B4XPage_Appear Cuenta3 = Cuenta3 + c4.GetString("PE_COSTO_TOT") Next End If - If Cuenta < 0 Then Cuenta = 0 End If @@ -302,7 +283,6 @@ Sub B4XPage_Appear If Cuenta3 < 0 Then Cuenta = 0 End If - If arti < 0 Then arti = 0 End If @@ -315,7 +295,6 @@ Sub B4XPage_Appear If arti3 < 0 Then arti = 0 End If - Log(Cuenta&","&Cuenta1&","&Cuenta2&","&Cuenta3) Log(arti&","&arti1&","&arti2&","&arti3) If Cuenta + Cuenta1 + Cuenta2 + Cuenta3 < 0 Then @@ -328,8 +307,6 @@ Sub B4XPage_Appear Else L_CANT.Text = NumberFormat2((arti + arti1 +arti2 + arti3),0,0,0,True) End If - - End Sub Sub GPS_LocationChanged (Location1 As Location) @@ -485,7 +462,6 @@ Sub CreateListItem(Text As String, precioU As String, inv As Int, inv2 As Int, W l_pCant.Text = inv ' et_pCant.Text = inv ' et_pCant.BringToFront - l_pCant.BringToFront et_pCant.SendToBack p_botMasMenC.Visible = False @@ -517,7 +493,6 @@ Sub CreateListItem2(Text As String, precioU As String, inv As Int, inv2 As Int, l_pCantC.Text = NumberFormat2(inv/Subs.traeConversion(prodId),0,0,0,False) ' et_pCant.Text = inv ' et_pCant.BringToFront - l_pCantC.BringToFront et_pCantC.SendToBack p_botMasMen.Visible = False @@ -571,21 +546,15 @@ Sub b_prodMenos_Click Starter.skmt.ExecNonQuery($"delete from PEDIDO where PE_PROID = '${esteTag.Get(2)}' and PE_CLIENTE in (Select CUENTA from cuentaa) AND CONSECUTIVO = '${esteTag.Get(8)}'"$) End If End If - - - End If B4XPage_Appear Else - If esteTag.Get(5) = esteTag.Get(6) Then If laCant.Text > 0 Then If esteTag.Get(3) <> Subs.traeAlmacen Then 'Si es PROMO entonces ... Private c2 As Cursor =Starter.skmt.ExecQuery($"select HVD_RECHAZO FROM HIST_VENTAS WHERE HVD_PROID = '${esteTag.Get(2)}' AND HVD_CLIENTE IN (Select CUENTA from cuentaa) AND CONSECUTIVO = '${esteTag.Get(8)}'"$) c2.Position = 0 If c2.GetString("HVD_RECHAZO") = "0" Then - - Log("ES PROMO") Log(esteTag.Get(3)) result = Msgbox2("Si se modifica una promoción, la promoción se rompe y solo quedarán los productos sueltos, ¿seguro que desea continuar?","Modificar Promoción", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore @@ -627,7 +596,6 @@ Sub b_prodMenos_Click End If End If Else - If laCant.Text = "" Then laCant.Text = 0 laCant.Text = $"$1.0{laCant.Text-1}"$ If laCant.Text < 0 Then laCant.Text = 0 @@ -684,7 +652,6 @@ Sub b_prodMas_Click Dim esteTag As List = Regex.Split("\|", laCant.Tag) Log("LC_TEXT:"&laCant.Text&"|LC_TAG:"&laCant.Tag&"|ET:"&esteTag) If laCant.Text = "" Then laCant.Text = 0 - Private maxProds = esteTag.Get(1) + esteTag.Get(4) 'Prods disponibles + prods comprados LogColor($"++++++++++++++++++++++++++ ${esteTag}"$, Colors.Green) @@ -702,18 +669,13 @@ Sub b_prodMas_Click '*'${minimoadesc}') minimoadesc = "1" If esteTag.Get(7) <> "1" Then - - If esteTag.Get(5) = esteTag.Get(6) Then - If laCant.Text + 1 <= maxProds Then 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))) - 'checar este por si las dudas Starter.skmt.ExecNonQuery($"update HIST_VENTAS set HVD_RECHAZO = 1, HVD_RECHAZOCANT = HVD_RECHAZOCANT - (1*'${minimoadesc}') WHERE HVD_PROID = '${esteTag.Get(2)}' and HVD_cliente in (Select CUENTA from cuentaa) AND CONSECUTIVO = '${esteTag.Get(8)}'"$) - Subs.prodVenta(esteTag.Get(5), esteTag.Get(2)) ' Private cym As Map = Subs.traemosCantYMonto(clv_pedido) ' L_CANT.Text = cym.Get("cantidad") @@ -722,7 +684,6 @@ Sub b_prodMas_Click B4XPage_Appear End If Else - If laCant.Text + 1 <= maxProds Then Log($"NuevaCant = ${laCant.Text + 1}"$) laCant.Text = $"$1.0{laCant.Text + 1}"$ @@ -743,8 +704,6 @@ Sub b_prodMas_Click Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO(PE_PROID,PE_PRONOMBRE,PE_CANT,PE_CLIENTEOR,PE_CLIENTE,PE_COSTOU,PE_COSTO_TOT,PE_CAJAS,PE_BCAJAS,CONSECUTIVO) VALUES (?,?,?,?,?,?,?,0,0,?)", Array As String(esteTag.Get(2),c2.GetString("CAT_GP_NOMBRE"),1*minimoadesc,esteTag.Get(5),Subs.traeCliente,c2.GetString("CAT_GP_PRECIO"),c2.GetString("CAT_GP_PRECIO"),esteTag.Get(8))) End If End If - - Subs.prodVenta(esteTag.Get(5), esteTag.Get(2)) ' Private cym As Map = Subs.traemosCantYMonto(clv_pedido) ' L_CANT.Text = cym.Get("cantidad") @@ -752,7 +711,6 @@ Sub b_prodMas_Click ' cuentaProds("+") B4XPage_Appear End If - End If End If ' Dim preciou As Float = esteTag.Get(0)/esteTag.Get(1) @@ -930,16 +888,12 @@ Sub cuentaProds(accion As String) ' ' End If ' End If -' -' -' End Sub Private Sub b_guardar_Click End Sub - Private Sub l_pCant_Click End Sub @@ -972,16 +926,12 @@ Private Sub b_prodMasC_Click ' l_pCantC.Tag = Round2(precioU,2)&"|"&inv&"|"&prodId&"|"&promo&"|"&inv2&"|"&cliente_original If esteTag.Get(7) <> "1" Then - - If laCantc.Text + 1 <= maxProds Then Log($"NuevaCant = ${laCantc.Text + 1}"$) laCantc.Text = $"$1.0{laCantc.Text + 1}"$ - Log(laCantc.Text) Starter.skmt.ExecNonQuery($"update HIST_VENTAS set HVD_RECHAZO = 1, HVD_RECHAZOCANT = IFNULL(HVD_RECHAZOCANT,0) -(1 * ${Subs.traeConversion(esteTag.Get(2))}) WHERE HVD_PROID = '${esteTag.Get(2)}' and HVD_cliente in (Select CUENTA from cuentaa) AND CONSECUTIVO = '${esteTag.Get(8)}'"$) ' Starter.skmt.ExecNonQuery($"update HIST_VENTAS set HVD_RECHAZO = 1, HVD_RECHAZOCANT = HVD_RECHAZOCANT - 1 WHERE HVD_PROID = '${esteTag.Get(2)}' and HVD_cliente in (Select CUENTA from cuentaa)"$) - ' Subs.prodVenta(esteTag.Get(5), esteTag.Get(2)) ' Private cym As Map = Subs.traemosCantYMonto(clv_pedido) ' L_CANT.Text = cym.Get("cantidad") @@ -1023,12 +973,8 @@ Private Sub b_prodMenosC_Click laCantc.Text = laCantc.Text - 1 If laCantc.Text < 0 Then laCantc.Text = 0 B4XPage_Appear - Else - - If esteTag.Get(5) = esteTag.Get(6) Then - If laCantc.Text > 0 Then Log("entre al if o algo asi ") If laCantc.Text = "" Then laCantc.Text = 0 @@ -1038,13 +984,9 @@ Private Sub b_prodMenosC_Click 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.traeConversion(esteTag.Get(2)))) B4XPage_Appear Else If laCantc.Text = 0 Then - End If - Else - If laCantc.Text > 0 Then - ' Starter.skmt.ExecNonQuery($"update HIST_VENTAS set HVD_RECHAZO = 1, HVD_RECHAZOCANT = (IFNULL(HVD_RECHAZOCANT,0) +(1 * ${Subs.traeConversion(esteTag.Get(2))})) WHERE HVD_PROID = '${esteTag.Get(2)}' and HVD_cliente = '${esteTag.Get(6)}'"$) Private c3 As Cursor = Starter.skmt.ExecQuery2("SELECT PE_CAJAS FROM PEDIDO WHERE PE_PROID = ? AND PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) and CONSECUTIVO = ? ", Array As String(esteTag.Get(2),esteTag.Get(8))) If c3.RowCount > 0 Then @@ -1063,9 +1005,7 @@ Private Sub b_prodMenosC_Click B4XPage_Appear ' 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.traeConversion(esteTag.Get(2)))) Else If laCantc.Text = 0 Then - End If - End If End If Dim preciou As Float = esteTag.Get(0)/esteTag.Get(1) @@ -1084,8 +1024,6 @@ Private Sub b_revversar_Click Else MsgboxAsync("Hay productos que ya se vendieron, no se puede regresar la venta","Atención") End If - - End Sub Sub Printer1_Connected (Success As Boolean) @@ -1161,8 +1099,6 @@ Sub StartPrinter End Sub Private Sub B_IMP_Click - - c=Starter.skmt.ExecQuery("select USUARIO from usuarioa") c.Position=0 usuario = c.GetString("USUARIO") @@ -1170,8 +1106,6 @@ Private Sub B_IMP_Click sDate=DateTime.Date(DateTime.Now) sTime=DateTime.Time(DateTime.Now) c.Close - - ProgressDialogShow("Imprimiendo, un momento ...") Printer1.DisConnect If Not(Printer1.IsConnected) Then @@ -1201,7 +1135,6 @@ Private Sub B_IMP_Click Sleep(500) impresoraConectada = False End If - TAMANO = 0 ESPACIO = 28 BLANCO = " " @@ -1225,10 +1158,7 @@ Private Sub B_IMP_Click c = Starter.skmt.ExecQuery("SELECT * FROM HIST_VENTAS WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") If c.RowCount > 0 Then Printer1.WriteString("------------Picking------------" & CRLF) - Printer1.WriteString("" & CRLF) - - Printer1.WriteString("------------------------------" & CRLF) ' aqui es donde esta el pedo de julieta de los descuentos quitar el precio2 pero meter un if para saber si es ruta especial o es normal o que show. s=Starter.skmt.ExecQuery($"select HVD_PRONOMBRE, HVD_CANT, length(HVD_CANT) as L_CANT, HVD_COSTO_TOT, length(HVD_COSTO_TOT) as L_COSTOU,HVD_PROID, HVD_CODPROMO,IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_RECHAZO FROM HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) order by HVD_PROID"$) @@ -1237,10 +1167,7 @@ Private Sub B_IMP_Click S.Position=i Log(s.GetString("HVD_RECHAZO")) If s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT") > 0 Then - - If s.GetString("HVD_CODPROMO") = Subs.traeAlmacen Then - Printer1.Justify = 0 Printer1.WriteString((s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT") )&" "&s.GetString("HVD_PRONOMBRE") & CRLF) @@ -1266,9 +1193,7 @@ Private Sub B_IMP_Click ' TAMANO = 0 ' ESPACIO = 29 ' BLANCO = " " - Else If s.GetString("HVD_RECHAZO") = 1 Then - Printer1.Justify = 0 Printer1.WriteString((s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT")) &" "&s.GetString("HVD_PRONOMBRE") & CRLF) @@ -1314,26 +1239,18 @@ Private Sub B_IMP_Click For i=0 To S.RowCount -1 S.Position=i If s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT") > 0 Then - - If s.GetString("HVD_CODPROMO") <> Subs.traeAlmacen Then - Printer1.Justify = 0 If s.GetString("HVD_CODPROMO") = s.GetString("HVD_PROID") Then Printer1.WriteString("* "&s.GetString("HVD_PRONOMBRE") & CRLF) Else Printer1.WriteString((s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT"))&" "&s.GetString("HVD_PRONOMBRE") & CRLF) End If - - ' Dim punit As String =NumberFormat2((s.GETSTRING("HVD_COSTO_TOT")/s.GetString("HVD_CANT")),0,2,2,False) ' TAMANO = punit.Length + TAMANO ' -' ' Private ptot As String = NumberFormat2((punit*s.GetString("HVD_CANT")),0,2,2,False) ' TAMANO = ptot.Length + TAMANO -' -' ' ESPACIO = (ESPACIO - TAMANO)/2 ' Log(ESPACIO) ' For E=0 To ESPACIO -1 @@ -1350,7 +1267,6 @@ Private Sub B_IMP_Click ' BLANCO = " " Printer1.Justify = 0 Else - End If End If Next @@ -1361,11 +1277,7 @@ Private Sub B_IMP_Click Printer1.WriteString(" " & CRLF) Sleep(1000) Printer1.DisConnect - ProgressDialogHide - - - ' Guardado End Sub \ No newline at end of file diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 82954ff..7cd1485 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -84,7 +84,6 @@ Sub Class_Globals Private p_principal As Panel Dim ime As IME Private b_tabulador As Button - Private l_rutasP As Label Private l_rechazo As Label Private Label9 As Label @@ -95,7 +94,6 @@ Sub Class_Globals Private b_regreso As Button Private lv_prod_Prin As ListView Private b_venta_emp As Button - Private ListView2 As ListView Private Button1 As Button Private P_PAGARES As Panel @@ -146,10 +144,10 @@ Private Sub B4XPage_Created (Root1 As B4XView) ' l_aLiquidar.Text = c.GetString("MONTO_DIA") ' l_cuantosc.Text = c.GetString("CLIENTES_DIA") ' l_cuantosn.Text = b.GetString("CUANTOS") -'' drop = c.GetString("MONTO_DIA") / c.GetString("CLIENTES_DIA") + '' drop = c.GetString("MONTO_DIA") / c.GetString("CLIENTES_DIA") '' l_montoSalida.Text = Round2(drop,2) -'' efectiva = c.GetString("CLIENTES_DIA") / e.GetString("POR_VISITAR") -'' l_efectiva.text = Round2(efectiva * 100, 2) + '' efectiva = c.GetString("CLIENTES_DIA") / e.GetString("POR_VISITAR") + '' l_efectiva.text = Round2(efectiva * 100, 2) ' l_ctast.Text = d.GetString("TOTAL_VISITAR") ' l_porvisitar.Text = e.GetString("POR_VISITAR") ' b.Close @@ -284,7 +282,7 @@ Sub B4XPage_Appear ' If F4.GetString("CUANTOS") > 0 Then ' f3=Starter.skmt.execqUery("select sum(pe_costo_tot) as MONTO_VENTA FROM PEDIDO") ' f3.Position=0 -'' Log(MONTO_REC_DIA & " - " & f3.GetString("MONTO_VENTA")) + '' Log(MONTO_REC_DIA & " - " & f3.GetString("MONTO_VENTA")) ' l_efectiva.text = to_number_vb(MONTO_REC_DIA - f3.GetString("MONTO_VENTA")) & "..." ' f3.Close ' Else @@ -315,11 +313,11 @@ Sub B4XPage_Appear ' c=Starter.skmt.ExecQuery2("select count(*) as CUANTOS from CAT_VARIABLES where CAT_VA_DESCRIPCION = ? ", Array As String("CAMBIOS")) ' c.Position = 0 ' If c.GetString("CUANTOS") = 0 Then -'' cambios.Text = 0 + '' cambios.Text = 0 ' Else ' B=Starter.skmt.ExecQuery("select CAT_VA_VALOR from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'CAMBIOS'") ' B.Position = 0 -'' cambios.Text = b.GetString("CAT_VA_VALOR") + '' cambios.Text = b.GetString("CAT_VA_VALOR") ' b.Close ' End If c.Close @@ -398,8 +396,7 @@ Sub B4XPage_Appear Next End If cancelrecha.Close - - + ''' RECHAZO - VENTA Private r5 As Cursor = Starter.skmt.ExecQuery($"select IFNULL(HVD_COSTO_TOT,0) AS HVD_COSTO_TOT, IFNULL(HVD_CANT,0) AS HVD_CANT, IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_PROID, HVD_CLIENTE, CONSECUTIVO from HIST_VENTAS where HVD_RECHAZO = '1' and BCAJAS = '0' ORDER BY HVD_PROID "$) @@ -410,13 +407,11 @@ Sub B4XPage_Appear Private r6 As Cursor = Starter.skmt.ExecQuery($"select IFNULL(SUM(PE_CANT),0) AS PE_CANT from PEDIDO where PE_CLIENTEOR = '${r5.GetString("HVD_CLIENTE")}' AND PE_PROID = '${r5.GetString("HVD_PROID")}' AND CONSECUTIVO = '${r5.GetString("CONSECUTIVO")}' "$) Dim totalcantped As String If r6.RowCount > 0 Then - r6.Position = 0 + r6.Position = 0 totalcantped = r6.GetString("PE_CANT") Else - totalcantped = 0 End If - Log(r5.GetString("HVD_RECHAZOCANT") &" - "& totalcantped) rescant = rescant + ((r5.GetString("HVD_COSTO_TOT")/(r5.GetString("HVD_CANT")))*((r5.GetString("HVD_RECHAZOCANT") - totalcantped))) ' Log(rescant) @@ -424,13 +419,10 @@ Sub B4XPage_Appear Next End If If rescant = "NaN" Then rescant = 0 - LogColor(rescant,Colors.Red) +' LogColor(rescant,Colors.Red) r5.Close - - Private r5 As Cursor = Starter.skmt.ExecQuery($"select IFNULL(HVD_COSTO_TOT,0) AS HVD_COSTO_TOT, IFNULL(HVD_CANT,0) AS HVD_CANT,IFNULL(CANTC,0) AS CANTC, IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_PROID, HVD_CLIENTE, CONSECUTIVO from HIST_VENTAS where HVD_RECHAZO = '1' and BCAJAS = '1' "$) - ' Private r5 As Cursor = Starter.skmt.ExecQuery($"select * from HIST_VENTAS where HVD_RECHAZO = '1' and BCAJAS = '1' "$) Private rescant2 As Double = 0 @@ -449,11 +441,9 @@ Sub B4XPage_Appear Log(rescant2) r5.Close '''FIN RECHAZO - VENTA - - + '''RECHAZO Private r5r As Cursor = Starter.skmt.ExecQuery($"select IFNULL(HVD_COSTO_TOT,0) AS HVD_COSTO_TOT, IFNULL(HVD_CANT,0) AS HVD_CANT, IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_PROID, HVD_CLIENTE, CONSECUTIVO from HIST_VENTAS where HVD_RECHAZO = '1' and BCAJAS = '0' "$) - Private rescantr As String = 0 If r5r.RowCount > 0 Then For j4r = 0 To r5r.RowCount -1 @@ -470,12 +460,11 @@ Sub B4XPage_Appear ' LogColor(rescant,Colors.Red) r5r.Close - Log(rescantr) - +' Log(rescantr) + Private r5r As Cursor = Starter.skmt.ExecQuery($"select IFNULL(HVD_COSTO_TOT,0) AS HVD_COSTO_TOT, IFNULL(HVD_CANT,0) AS HVD_CANT,IFNULL(CANTC,0) AS CANTC, IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_PROID, HVD_CLIENTE, CONSECUTIVO from HIST_VENTAS where HVD_RECHAZO = '1' and BCAJAS = '1' "$) ' Private r5 As Cursor = Starter.skmt.ExecQuery($"select * from HIST_VENTAS where HVD_RECHAZO = '1' and BCAJAS = '1' "$) - Private rescant2r As String = 0 If r5r.RowCount > 0 Then For j5r = 0 To r5r.RowCount -1 @@ -496,7 +485,6 @@ Sub B4XPage_Appear '''' FIN RECHAZO ''''' - ' Private r5 As Cursor = Starter.skmt.ExecQuery($"select IFNULL(SUM(HVD_COSTO_TOT),0) AS HVD_COSTO_TOT from HIST_VENTAS where HVD_RECHAZO = '0' and BCAJAS = '0' "$) ' Private rescant3 As Double = 0 ' If r5.RowCount > 0 Then @@ -508,25 +496,21 @@ Sub B4XPage_Appear ' r5.Close Private r55 As Cursor = Starter.skmt.ExecQuery($"select HVD_COSTO_TOT from HIST_VENTAS where HVD_RECHAZO = '0' and BCAJAS = '0' "$) - Private rescant3 As Double + Private rescant3 As Double If r55.RowCount > 0 Then For r75 = 0 To r55.RowCount -1 r55.Position = r75 rescant3 = rescant3 + r55.GetString("HVD_COSTO_TOT") rescant3 = NumberFormat2(rescant3, 0, 2, 2, False) - Next End If - Log(rescant3) +' Log(rescant3) r55.Close - - - Private r5 As Cursor = Starter.skmt.ExecQuery($"select IFNULL(SUM(HVD_COSTO_TOT),0) AS HVD_COSTO_TOT from HIST_VENTAS where HVD_RECHAZO = '0' and BCAJAS = '1' "$) Private rescant4 As Double If r5.RowCount > 0 Then - r5.Position = 0 + r5.Position = 0 rescant4 = r5.GetString("HVD_COSTO_TOT") End If Log(rescant4) @@ -535,14 +519,11 @@ Sub B4XPage_Appear Private r5 As Cursor = Starter.skmt.ExecQuery($"select IFNULL(SUM(PE_COSTO_TOT),0) AS PE_COSTO_TOT from PEDIDO "$) Private rescant5 As Double If r5.RowCount > 0 Then - r5.Position = 0 + r5.Position = 0 rescant5 = r5.GetString("PE_COSTO_TOT") End If Log(rescant5) r5.Close - - - ''' Private r5 As Cursor = Starter.skmt.ExecQuery($"select IFNULL(HVD_COSTO_TOT,0) AS HVD_COSTO_TOT, IFNULL(HVD_CANT,0) AS HVD_CANT, IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_PROID, HVD_CLIENTE, CONSECUTIVO from HIST_VENTAS where HVD_RECHAZO = '1' and BCAJAS = '0' "$) Private rescant6 As Double @@ -577,12 +558,8 @@ Sub B4XPage_Appear If rescant7 = "NaN" Then rescant7 = 0 Log(rescant7) r5.Close - - l_rechazo.text = NumberFormat2((rescant + rescant2),0,2,2,False) L_MONTOE.Text = NumberFormat2((rescant3 + rescant4 + rescant5 + rescant6 + rescant7),0,2,2,False) - - B4XPages.MainPage.clientesVisitados = L_MONTOE.Text B4XPages.MainPage.clientesVenta = l_cuantosc.Text B4XPages.MainPage.clientesRechazo = l_cuantosn.Text @@ -593,14 +570,12 @@ Sub B4XPage_Appear B4XPages.MainPage.rechazos = l_cuantosn.text B4XPages.MainPage.montoEntregado = L_MONTOE.text B4XPages.MainPage.montoRechazado = l_rechazo.text - reqManager.Initialize(Me, B4XPages.MainPage.server) ' LogColor($"ReqServer = ${B4XPages.MainPage.server}"$, Colors.red) If l_ctast.Text = 0 And l_porvisitar.Text <> 0 Then Label9.Visible = True L_MONTOE.Visible = True - '' hacer validacion su hay rechazo ' c=Starter.skmt.ExecQuery("select * from HIST_VENTAS WHERE hvd_rechazo <> 2 and HVD_RECHAZOCANT > 0 order by HVD_CODPROMO desc, HVD_PRONOMBRE asc") ' If c.RowCount > 0 Then @@ -616,21 +591,16 @@ Sub B4XPage_Appear End If ' Label9.Visible = True ' L_MONTOE.Visible = True - ' If l_ctast.Text = 0 Then -' ' Else ' StartActivity(MAPA_RUTAS) ' End If - - - ' checachek End Sub Sub checachek - b = Starter.skmt.ExecQuery("SELECT CHECADO FROM CHECADO_CHECK") - If b.RowCount > 0 Then + b = Starter.skmt.ExecQuery("SELECT CHECADO FROM CHECADO_CHECK") + If b.RowCount > 0 Then b.Position = 0 If b.GetString("CHECADO") = 0 Then b_check.Visible = True @@ -638,7 +608,7 @@ Sub checachek b_check.Visible =False End If b.Close - End If + End If End Sub Sub IsConnectedToInternet As Boolean 'ignore @@ -666,12 +636,10 @@ End Sub Sub trabajar_Click If b_check.Visible = True Then - MsgboxAsync("Favor de hacer el checklist.","Atención") + MsgboxAsync("Favor de hacer el checklist.","Atención") Else - - B4XPages.ShowPage("Clientes") + B4XPages.ShowPage("Clientes") End If - End Sub Sub Subir_Click @@ -686,7 +654,7 @@ Sub Subir_Click ' Starter.skmt.ExecNonQuery2("INSERT INTO BLOCKENVIO(ENVIADO) VALUES (?)", Array As Object (1)) ' envioinfo ' Else - envioinfo + envioinfo ' End If ' c.Close @@ -697,9 +665,6 @@ Sub Subir_Click End Sub Sub envioinfo - - - ' NOVENTA c = Starter.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON, NV_FOTO, NV_REPROGRAMAR FROM NOVENTA") D=Starter.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA") @@ -718,8 +683,7 @@ Sub envioinfo d.Position=0 cuantos_noventa = D.GetString("CUANTOS_NOVENTA") d.Close - - + 'PAGARES. Dim pa As Cursor =Starter.skmt.ExecQuery("select PA_ALMACEN,PA_RUTA_REP,PA_RUTAPREV,PA_FECHA_PREV,PA_CAPTURA,PA_MONTO,PA_USUARIO,PA_CLIENTE,IFNULL(PA_CANCELADO,0) AS PA_CANCELADO from PAGARES") If pa.RowCount > 0 Then @@ -736,19 +700,15 @@ Sub envioinfo Dim fechaano As String = fechaenvio1(2).SubString(2) Dim fechareal As String = fechaenvio1(0)&"/"&fechaenvio1(1)&"/"&fechaano ' Log(fechareal) - Dim fechacap() As String fechacap = Regex.Split("/",pa.GetString("PA_CAPTURA")) Dim fechacapano As String = fechacap(2).SubString(2) Dim fechacapreal As String = fechacap(0)&"/"&fechacap(1)&"/"&fechacapano - If pa.GetString("PA_CANCELADO") = "2" Then cmd.Parameters = Array As Object(pa.GetString("PA_CLIENTE"),pa.GetString("PA_MONTO"),fechacapreal,pa.GetString("PA_ALMACEN"),pa.GetString("PA_RUTAPREV"),pa.GetString("PA_RUTA_REP"),fechareal,pa.GetString("PA_USUARIO"),2) Else cmd.Parameters = Array As Object(pa.GetString("PA_CLIENTE"),pa.GetString("PA_MONTO"),fechacapreal,pa.GetString("PA_ALMACEN"),pa.GetString("PA_RUTAPREV"),pa.GetString("PA_RUTA_REP"),fechareal,pa.GetString("PA_USUARIO"),"") End If - - reqManager.ExecuteCommand(cmd , "ins_pagares") Next End If @@ -762,10 +722,9 @@ Sub envioinfo If ab.RowCount > 0 Then For i=0 To ab.RowCount -1 ab.Position = i - Dim ab1 As Cursor = Starter.skmt.ExecQuery($"SELECT SUM(a_abono) AS a_abono from ABONOS where a_cliente = '${ab.GetString("a_cliente")}'"$) ab1.Position = 0 - + Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_abono_REP_GUNA_VN" @@ -817,8 +776,6 @@ Sub envioinfo b.Close f.Close End If - - c = Starter.skmt.ExecQuery("SELECT MIL, QUINIENTOS, DOCIENTOS, CIEN, CINCUENTA, VEINTE FROM TABULADOR_BILLETES") d = Starter.skmt.ExecQuery("SELECT RUTAA FROM RUTAA") b = Starter.skmt.ExecQuery("SELECT ID_ALMACEN FROM CAT_ALMACEN") @@ -831,7 +788,6 @@ Sub envioinfo c.Position=i Dim cmd As DBCommand Dim fechatabulador() As String = Regex.Split(" ", f.GetString("HVD_FECHA")) - Dim fechatabulador3 As String = fechatabulador(0) cmd.Initialize cmd.Name = "insert_tabulador_billetes_GUNA_VN" @@ -887,10 +843,6 @@ Sub envioinfo Next End If c.Close - - - - Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_drop_rep_GUNA_VN" @@ -1036,7 +988,6 @@ Sub cargar_Click ' Next ' End If ' c.Close - D=Starter.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA") d.Position=0 cuantos_noventa = D.GetString("CUANTOS_NOVENTA") @@ -1048,17 +999,12 @@ 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") 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 - End Sub - - Sub JobDone(Job As HttpJob) ' Private r As DBResult = reqManager.HandleJob(Job) If Job.Success = False Then @@ -1128,7 +1074,6 @@ Sub JobDone(Job As HttpJob) End If End If - If Job.JobName = "DBRequest" Then Dim result As DBResult = reqManager.HandleJob(Job) If result.Tag = "gunaprod3" Then 'query tag @@ -1362,7 +1307,7 @@ Sub JobDone(Job As HttpJob) 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, BCAJAS,CANTC,CONSECUTIVO,BCAJAS_OR,CANTC_OR) 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, bcajas,cantc,consecutivo,bcajas,cantc)) - 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)) + 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)) End If End If Next @@ -1403,8 +1348,7 @@ Sub JobDone(Job As HttpJob) Next End If End If - - + If Job.JobName = "DBRequest" Then Dim result As DBResult = reqManager.HandleJob(Job) If result.Tag = "PAGARES" Then 'query tag @@ -1433,8 +1377,6 @@ Sub JobDone(Job As HttpJob) End If End If - - If Job.JobName = "DBRequest" Then Dim result As DBResult = reqManager.HandleJob(Job) If result.Tag = "valida_pedidoc" Then 'query tag @@ -1550,7 +1492,7 @@ Sub JobDone(Job As HttpJob) End If End If - If Job.JobName = "DBRequest" Then + If Job.JobName = "DBRequest" Then Dim result As DBResult = reqManager.HandleJob(Job) If result.Tag = "ins_reparto" Then 'query tag For Each records() As Object In result.Rows @@ -1574,18 +1516,13 @@ Sub JobDone(Job As HttpJob) Job.Release End If If reqs.Size = 0 Then - - - ProgressDialogHide - c = Starter.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS FROM CHECADO_CHECK") c.Position = 0 If c.GetString("CUANTOS") = 0 Then Starter.skmt.ExecNonQuery2("insert into CHECADO_CHECK (CHECADO) VALUES(?)", Array As String("0")) Else If c.GetString("CUANTOS") = 1 Then - End If c.Close ' Log(reqs.size) @@ -1636,7 +1573,7 @@ Sub BUSCA_Click MsgboxAsync("Favor de hacer el checklist.","Atención") Else ' StartActivity(BUSCAR) - B4XPages.ShowPage("Buscar") + B4XPages.ShowPage("Buscar") End If End Sub @@ -1710,36 +1647,34 @@ Sub B_CLIEPROD_Click Panel1.Width = Root.Width Panel1.Height = Root.Height ' ListView1. = Panel1.Width / 2 - B_REGRESA.Left = (Panel1.Width - B_REGRESA.Width) / 2 B_REGRESA.Top = Panel1.Height - B_REGRESA.Height - BUSCA.Visible = False - connecta.Visible = False - trabajar.Visible = False - B_CLIEPROD.Visible = False - Panel1.Visible = True - Panel1.BringToFront - Btn_Ubicar_Ru.Visible=False - c=Starter.skmt.ExecQuery("select * from kmt_info WHERE gestion <> 0 order by HORAENT") - Subs.SetDivider(ListView1, Colors.LightGray, 2) - ListView1.Clear - ListView1.TwoLinesLayout.ItemHeight = 120dip - - Dim label1 As Label - label1 = ListView1.TwoLinesLayout.Label - label1.TextSize = 22 - label1.TextColor = Colors.White - label1.Height = 60dip - Dim label2 As Label - label2 = ListView1.TwoLinesLayout.SecondLabel - label2.TextSize = 22 - label2.TextColor = Colors.White - label2.Top = 60dip + BUSCA.Visible = False + connecta.Visible = False + trabajar.Visible = False + B_CLIEPROD.Visible = False + Panel1.Visible = True + Panel1.BringToFront + Btn_Ubicar_Ru.Visible=False + c=Starter.skmt.ExecQuery("select * from kmt_info WHERE gestion <> 0 order by HORAENT") + Subs.SetDivider(ListView1, Colors.LightGray, 2) + ListView1.Clear + ListView1.TwoLinesLayout.ItemHeight = 120dip + Dim label1 As Label + label1 = ListView1.TwoLinesLayout.Label + label1.TextSize = 22 + label1.TextColor = Colors.White + label1.Height = 60dip + Dim label2 As Label + label2 = ListView1.TwoLinesLayout.SecondLabel + label2.TextSize = 22 + label2.TextColor = Colors.White + label2.Top = 60dip label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD) label2.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD) - If c.RowCount>0 Then - For i=0 To c.RowCount -1 - c.Position=i + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i If c.GetString("gestion") = "2" Then ESTATUS = "ENTREGADO" Log("entrega") @@ -1749,12 +1684,8 @@ Sub B_CLIEPROD_Click Else ESTATUS = "SIN ESTATUS" End If - - - If ESTATUS = "ENTREGADO" Then Private vc As Cursor = Starter.skmt.ExecQuery($"select HVD_PROID,HVD_COSTO_TOT, HVD_CANT, IFNULL(HVD_RECHAZOCANT, 0) AS HVD_RECHAZOCANT, CAT_GP_PRECIO from HIST_VENTAS LEFT JOIN CAT_GUNAPROD ON CAT_GP_ID = HVD_PROID where BCAJAS = 0 and HVD_CODPROMO ='${Subs.traealmacen}' and HVD_CLIENTE = '${c.GetString("CAT_CL_CODIGO")}'"$) - Private cuenta0 As String = 0 Private arti As String = 0 If vc.RowCount > 0 Then @@ -1766,7 +1697,6 @@ Sub B_CLIEPROD_Click Next End If ' Log(cuenta0) - Private vc2 As Cursor = Starter.skmt.ExecQuery($"select HVD_PROID, HVD_CANT, IFNULL(HVD_RECHAZOCANT, 0) AS HVD_RECHAZOCANT, CANTC,HVD_COSTO_TOT from HIST_VENTAS where HVD_CLIENTE = '${c.GetString("CAT_CL_CODIGO")}' AND BCAJAS = 1"$) Private Cuenta1 As String = 0 Private arti1 As String = 0 @@ -1783,12 +1713,10 @@ Sub B_CLIEPROD_Click Next End If ' Log(Cuenta1) - Private vc4 As Cursor = Starter.skmt.ExecQuery($"select HVD_PROID, HVD_CANT, IFNULL(HVD_RECHAZOCANT, 0) AS HVD_RECHAZOCANT, CANTC,HVD_COSTO_TOT, HVD_RECHAZO, HVD_CODPROMO from HIST_VENTAS where HVD_CLIENTE = '${c.GetString("CAT_CL_CODIGO")}' AND BCAJAS = 0 and HVD_CODPROMO <> '${Subs.traeAlmacen}'"$) Private Cuenta2 As String = 0 Private arti2 As String = 0 If vc4.RowCount > 0 Then - For k = 0 To vc4.RowCount - 1 vc4.Position = k If vc4.GetString("HVD_PROID") <> vc4.GetString("HVD_CODPROMO") Then @@ -1805,11 +1733,9 @@ Sub B_CLIEPROD_Click End If End If End If - Next End If ' Log(arti2) - Private c4 As Cursor = Starter.skmt.ExecQuery($"SELECT IFNULL(PE_CANT,0) AS PE_CANT, iFNULL(PE_COSTO_TOT,0) AS PE_COSTO_TOT FROM PEDIDO WHERE PE_CLIENTE = '${c.GetString("CAT_CL_CODIGO")}'"$) Private Cuenta3 As String = 0 Private arti3 As String = 0 @@ -1820,18 +1746,12 @@ Sub B_CLIEPROD_Click Cuenta3 = Cuenta3 + c4.GetString("PE_COSTO_TOT") Next End If - - Private TOTALMONTO As String = cuenta0 + Cuenta1 + Cuenta2 + Cuenta3 Private TOTALcantidad As String = arti + arti1 +arti2 + arti3 - ListView1.AddTwoLines(c.GetString("CAT_CL_CODIGO")&" - " &c.GetString("CAT_CL_NOMBRE"), "Articulos :"& TOTALcantidad &" Monto :"& NumberFormat2(TOTALMONTO,0,2,2,True) & " " & ESTATUS ) Log("si entre2") - Else If ESTATUS = "RECHAZADO" Then - Private vc As Cursor = Starter.skmt.ExecQuery($"select HVD_PROID, HVD_CANT, IFNULL(HVD_RECHAZOCANT, 0) AS HVD_RECHAZOCANT, CAT_GP_PRECIO, HVD_COSTO_TOT from HIST_VENTAS LEFT JOIN CAT_GUNAPROD ON CAT_GP_ID = HVD_PROID where BCAJAS = 0 and HVD_CODPROMO ='${Subs.traealmacen}' and HVD_CLIENTE = '${c.GetString("CAT_CL_CODIGO")}'"$) - Private cuenta0 As String = 0 Private arti As String = 0 If vc.RowCount > 0 Then @@ -1844,7 +1764,6 @@ Sub B_CLIEPROD_Click Next End If ' Log(cuenta0) - Private vc2 As Cursor = Starter.skmt.ExecQuery($"select HVD_PROID, HVD_CANT, IFNULL(HVD_RECHAZOCANT, 0) AS HVD_RECHAZOCANT, CANTC,HVD_COSTO_TOT from HIST_VENTAS where HVD_CLIENTE = '${c.GetString("CAT_CL_CODIGO")}' AND BCAJAS = 1"$) Private Cuenta1 As String = 0 Private arti1 As String = 0 @@ -1861,12 +1780,10 @@ Sub B_CLIEPROD_Click Next End If ' Log(Cuenta1) - Private vc4 As Cursor = Starter.skmt.ExecQuery($"select HVD_PROID, HVD_CANT, IFNULL(HVD_RECHAZOCANT, 0) AS HVD_RECHAZOCANT, CANTC,HVD_COSTO_TOT, HVD_RECHAZO, HVD_CODPROMO from HIST_VENTAS where HVD_CLIENTE = '${c.GetString("CAT_CL_CODIGO")}' AND BCAJAS = 0 and HVD_CODPROMO <> '${Subs.traeAlmacen}'"$) Private Cuenta2 As String = 0 Private arti2 As String = 0 If vc4.RowCount > 0 Then - For k = 0 To vc4.RowCount - 1 vc4.Position = k If vc4.GetString("HVD_PROID") <> vc4.GetString("HVD_CODPROMO") Then @@ -1883,11 +1800,9 @@ Sub B_CLIEPROD_Click End If End If End If - Next End If ' Log(arti2) - Private c4 As Cursor = Starter.skmt.ExecQuery($"SELECT IFNULL(PE_CANT,0) AS PE_CANT, iFNULL(PE_COSTO_TOT,0) AS PE_COSTO_TOT FROM PEDIDO WHERE PE_CLIENTE = '${c.GetString("CAT_CL_CODIGO")}'"$) Private Cuenta3 As String = 0 Private arti3 As String = 0 @@ -1898,18 +1813,13 @@ Sub B_CLIEPROD_Click Cuenta3 = Cuenta3 + c4.GetString("PE_COSTO_TOT") Next End If - - Private TOTALMONTO As String = cuenta0 + Cuenta1 + Cuenta2 + Cuenta3 Private TOTALcantidad As String = arti + arti1 +arti2 + arti3 - - Log("si entre") +' Log("si entre") ListView1.AddTwoLines(c.GetString("CAT_CL_CODIGO")&" - " &c.GetString("CAT_CL_NOMBRE"), "Articulos :"& TOTALcantidad &" Monto :"& NumberFormat2(TOTALMONTO,0,2,2,True) & " " & ESTATUS ) End If - Next - End If - - + Next + End If ' c=skmt.ExecQuery("select HVD_CLIENTE, HVD_PRONOMBRE, HVD_CANT, HVD_ESTATUS from HIST_VENTAS ORDER BY HVD_PRONOMBRE") ' @@ -1938,7 +1848,7 @@ Sub B_CLIEPROD_Click ' ListView1.AddTwoLines(c.GetString("HVD_PRONOMBRE") & " " & c.GetString("HVD_CLIENTE") , c.GetString("HVD_CANT") & " " & ESTATUS ) ' Next ' End If -End If + End If End Sub Sub B_REGRESA_Click @@ -1956,8 +1866,7 @@ Sub Btn_Ubicar_Ru_Click If b_check.Visible = True Then MsgboxAsync("Favor de hacer el checklist.","Atención") Else - - StartActivity(MAPA_RUTAS) + StartActivity(MAPA_RUTAS) End If End Sub 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. @@ -1966,22 +1875,18 @@ Private Sub b_tabulador_Click If b_check.Visible = True Then MsgboxAsync("Favor de hacer el checklist.","Atención") Else - B4XPages.ShowPage("tabulador") + B4XPages.ShowPage("tabulador") End If End Sub Private Sub b_check_Click - B4XPages.ShowPage("checklist") - End Sub Private Sub ListView1_ItemClick (Position As Int, Value As Object) - Log(Value) - +' Log(Value) Dim clieasing() As String = Regex.Split(" ", Value) Log(clieasing(0)) - Starter.skmt.ExecNonQuery("delete from CUENTAA") Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(clieasing(0))) B4XPages.ShowPage("Cliente") @@ -1999,7 +1904,6 @@ Private Sub b_rechazos_Click b_regreso.Top = p_prod.Height - b_regreso.Height ' label1.TextSize = 20 label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD) - ' lv_prod_Prin.Left = p_prod.Width / 2 lv_prod_Prin.Width = Root.Width - (Root.Width * .10) @@ -2007,19 +1911,13 @@ Private Sub b_rechazos_Click Subs.centraListView(lv_prod_Prin,Root.Width) p_prod.Visible = True p_prod.BringToFront - - - - Private c As Cursor = Starter.skmt.ExecQuery("select HVD_PRONOMBRE, IFNULL(SUM(HVD_RECHAZOCANT), 0) AS HVD_RECHAZOCANT, HVD_PROID from HIST_VENTAS WHERE hvd_rechazo <> 2 and HVD_RECHAZOCANT > 0 GROUP BY HVD_PROID order by HVD_PRONOMBRE asc") - lv_prod_Prin.SingleLineLayout.Label.TextColor = Colors.White lv_prod_Prin.Clear If c.RowCount > 0 Then For i = 0 To c.RowCount - 1 c.Position = i Dim itemText As String - Private c3 As Cursor=Starter.skmt.ExecQuery($"select Ifnull(sum(PE_CANT),0) AS PE_CANT from PEDIDO WHERE PE_PROID ='${c.GetString("HVD_PROID")}'"$) Private resta As String = 0 @@ -2030,13 +1928,11 @@ Private Sub b_rechazos_Click resta = 0 End If If ( c.GetInt("HVD_RECHAZOCANT") - resta) <= 0 Then - + Else itemText = $"${c.GetString("HVD_PRONOMBRE")} ${CRLF}Inventario: ${(c.GetInt("HVD_RECHAZOCANT") - resta)}"$ lv_prod_Prin.AddSingleLine(itemText) End If - - Next Else lv_prod_Prin.AddSingleLine("No hay datos disponibles.") @@ -2100,12 +1996,8 @@ Private Sub B_PAGARES_Click For i = 0 To c.RowCount - 1 c.Position = i Dim itemText As String - - itemText = $"NOMBRE.: ${c.GetString("NOMBRE")} ${CRLF}FOLIO: ${(c.GetInt("NOTA"))}, MONTO: $ ${(c.GetInt("SALDO_PENDIENTE"))}"$ ListView2.AddSingleLine(itemText) - - Next Else ListView2.AddSingleLine("No hay datos disponibles.") @@ -2113,8 +2005,6 @@ Private Sub B_PAGARES_Click c.Close End Sub - - Private Sub Button1_Click P_PAGARES.Visible = False End Sub diff --git a/B4A/Files/cliente.bal b/B4A/Files/cliente.bal index 22098c17f7238f1898f3e72dc59c7a23eacbe54c..4229e4c7742636fab8fa5da32acbbf5bc39e2521 100644 GIT binary patch delta 1793 zcmb7^Nla5=5P;ub7F$_lDN>QLi-1sBDkvbbxUh&~B}QWmyuuTzw56}M5JRZOn-_t( zkQgtTcvMJFCLW9jkH)i!7frmlfeNAraps2?1~n$WWd8TfKlA>X%=>5HnrRkHNpXsz z+%_x9R($tPC*80Uxcde)U03yhp0K9*eHT5tSJkJdo|hfYmIYIUCN zAip!{N3p4+H@AK~?zYJ>@Y@iukinP;(b9}JU8bKRnyfxcG(8ZItWHLIeGgN`duZv; zgGygf>}-2`I|M2U#0PlcDTH@97NlF=T(IV*!4t1FTgO^azf#HMO%=_EbZbO0EO^hS zlY!bNeia|;9kC6jMzh67IEQOTX z21uDWXYMbSwWx-`gesOXW)`eY7Uhp);+x|x^ zI*nEtejGuDr_5-U%F56n6$0`KGvRSb1I#&Xmf_)HnNbc@P1ISG`?>4dv=g-p3G13D j$QLXB$aVz}{yp38xcAp=XVLH<*``)x!lx0NNhrSnAn6DY delta 775 zcmYk(NlpSm6oBE^O&bZZ9Z*qmYUdGD9B~#AP#n&n7a+!kJKMwyNNVF=cg9uSz(aTe zw;sah0Q`$T^>tn)Rq1*%uDN&pCJ_muA~9Vrs{TXu?cLrwN!PqaE}gvby)bOmQJdDT zMKn+A(BfLB)&+N~YkLxK58SKn(~??0JOB?i9LiARLx$l19)U;UF?bxFfG6Q8c>34j z-%V#Qn1$!yc{l~9;RSdRUV=05vYuc6T`TY^yauns8*mohgty>rc<0~Y&pYj6u&1uQ z@xJ;%%V~#j9zKE#a1k!S$MA_rx_&?zgH!knKDXD+8OQm0eu?__Ch=KzMNCk+vmaNb R7PSp3sknK}#x&1$|)44xb(Y{VEcIgwk2F?8}eVI3fOPf~oc zuYkhj^)hUeB}6>+!hp(|ftZ0a97r&M7!g2%6^J3ikuc#XAY<}FG5yIG!~`evi|S4O zDIWF|Mu%mx7RvR23d delta 392 zcmbPdHP33pa&`_D1_lNve;=348`%pPCu?zjoLnHK&KNW~PS}Vscyc1Q3}eXTb;3G8@}8vl zWM2V=$?IjW2c=GXpULXBd!R0x`mY1S=3jgd= Bytes.Length Then + vd = version + Exit + End If + Next + If vd.IsInitialized = False Then + + Log("Too long!") + Return Null + End If + Log(vd.VersionName & ", Size: " & Bytes.Length) + + NumberOfModules = 17 + vd.Version * 4 + ModuleSize = mBitmapSize / (NumberOfModules + 8) + + mBitmapSize = ModuleSize * (NumberOfModules + 8) + Dim p As B4XView = xui.CreatePanel("") + p.SetLayoutAnimated(0, 0, 0, mBitmapSize, mBitmapSize) + cvs.Initialize(p) + + + Dim Matrix(NumberOfModules, NumberOfModules) As Boolean + Dim Reserved(NumberOfModules, NumberOfModules) As Boolean + + Dim Mode() As Byte = Array As Byte(0, 1, 0, 0) 'byte mode + Dim ContentCountIndicator() As Byte + If vd.Version >= 10 Then + ContentCountIndicator = IntTo16Bits(Bytes.Length) + Else + ContentCountIndicator = UnsignedByteToBits(Bytes.Length) + End If + Dim EncodedData As B4XBytesBuilder + EncodedData.Initialize + EncodedData.Append(Mode) + EncodedData.Append(ContentCountIndicator) + For Each b As Byte In Bytes + EncodedData.Append(UnsignedByteToBits(Bit.And(0xff, b))) + Next + 'add terminator + Dim PadSize As Int = Min(4, vd.MaxSize - EncodedData.Length) + Dim pad(PadSize) As Byte + EncodedData.Append(pad) + Do While EncodedData.Length Mod 8 <> 0 + EncodedData.Append(Array As Byte(0)) + Loop + + Do While EncodedData.Length < vd.MaxSize + EncodedData.Append(Array As Byte(1,1,1,0,1,1,0,0)) + If EncodedData.Length < vd.MaxSize Then EncodedData.Append(Array As Byte(0,0,0,1,0,0,0,1)) + Loop + VersionWithTwoGroups(vd.Generator, vd.Group1Size, vd.Group2Size, vd.Block1Size, vd.Block2Size, EncodedData) + AddFinders (vd) + AddDataToMatrix(EncodedData.ToArray, vd) + DrawMatrix + cvs.Invalidate + Dim bmp As B4XBitmap = cvs.CreateBitmap + cvs.Release + Return bmp +End Sub + +Private Sub VersionWithTwoGroups (generator() As Int, Group1Size As Int, Group2Size As Int, Block1Size As Int, Block2Size As Int, EncodedData As B4XBytesBuilder) + Dim ecs As List + ecs.Initialize + Dim dataBlocks As List + dataBlocks.Initialize + Dim PrevIndex As Int + For block1 = 0 To Group1Size + Group2Size - 1 + Dim BlockSize As Int + If block1 < Group1Size Then BlockSize = Block1Size Else BlockSize = Block2Size + Dim Data() As Byte = EncodedData.SubArray2(PrevIndex * 8, (PrevIndex + BlockSize) * 8) + PrevIndex = PrevIndex + BlockSize + Dim DataAsInts(Data.Length / 8) As Int + Dim i As Int + For i = 0 To Data.Length - 1 Step 8 + DataAsInts(i / 8) = BitsToUnsignedByte(Data, i) + Next + dataBlocks.Add(DataAsInts) + Dim ec() As Int = CalcReedSolomon(DataAsInts, generator) + If ec.Length < generator.Length - 1 Then + Dim ec2(generator.Length - 1) As Int + IntArrayCopy(ec, 0, ec2, generator.Length - 1 - ec.Length, ec.Length) + ec = ec2 + End If + ecs.Add(ec) + Next + Dim Interleaved As B4XBytesBuilder + Interleaved.Initialize + For i = 0 To Max(Block1Size, Block2Size) - 1 + For block1 = 0 To dataBlocks.Size - 1 + Dim ii() As Int = dataBlocks.Get(block1) + If ii.Length > i Then + Interleaved.Append(UnsignedByteToBits(ii(i))) + End If + Next + Next + For i = 0 To generator.Length - 2 + For block1 = 0 To dataBlocks.Size - 1 + Dim ii() As Int = ecs.Get(block1) + Interleaved.Append(UnsignedByteToBits(ii(i))) + Next + Next + EncodedData.Clear + EncodedData.Append(Interleaved.ToArray) +End Sub + + + +Private Sub AddDataToMatrix (Encoded() As Byte, vd As QRVersionData) + Dim format() As Byte = vd.Format + Dim order As List = CreateOrder + 'mask 0: (row + column) mod 2 == 0 + For Each b As Byte In Encoded + Dim xy() As Int = GetNextPosition(order) + Matrix(xy(0), xy(1)) = (b = 1) + If (xy(1) + xy(0)) Mod 2 = 0 Then Matrix(xy(0), xy(1)) = Not(Matrix(xy(0), xy(1))) + Next + For i = 0 To 5 + Matrix(i, 8) = format(i) = 1 + Matrix(8, NumberOfModules - 1 - i) = format(i) = 1 + Next + Matrix(7, 8) = format(6) = 1 + Matrix(8, NumberOfModules - 1 - 6) = format(6) = 1 + Matrix(8, 8) = format(7) = 1 + Matrix(8, 7) = format(8) = 1 + For i = 0 To 5 + Matrix(8, 5 - i) = format(i + 9) = 1 + Next + For i = 0 To 7 + Matrix(NumberOfModules - 1 - 7 + i, 8) = format(7 + i) = 1 + Next + If vd.Version >= 7 Then + Dim VersionInformation() As Byte = vd.VersionInformation + Dim c As Int = 18 + For x = 0 To 5 + For y = 0 To 2 + c = c - 1 + Matrix(x, NumberOfModules - 11 + y) = VersionInformation(c) = 1 + Matrix(NumberOfModules - 11 + y, x) = VersionInformation(c) = 1 + Next + Next + End If +End Sub + +Private Sub GetNextPosition (order As List) As Int() + Do While True + Dim xy() As Int = order.Get(0) + order.RemoveAt(0) + If Reserved(xy(0), xy(1)) = False Then Return xy + Loop + Return Null +End Sub + +Private Sub CreateOrder As List + Dim Order As List + Order.Initialize + Dim x As Int = NumberOfModules - 1 + Dim y As Int = NumberOfModules - 1 + Dim dy As Int = -1 + Do While x >= 0 And y >= 0 + Order.Add(Array As Int(x, y)) + Order.Add(Array As Int(x - 1, y)) + y = y + dy + If y = -1 Then + x = x - 2 + y = 0 + dy = 1 + Else If y = NumberOfModules Then + x = x - 2 + y = NumberOfModules - 1 + dy = -1 + End If + If x = 6 Then x = x - 1 + Loop + Return Order +End Sub + +Private Sub DrawMatrix + cvs.DrawRect(cvs.TargetRect, xui.Color_White, True, 0) + Dim r As B4XRect + For y = 0 To NumberOfModules - 1 + For x = 0 To NumberOfModules - 1 + r.Initialize((x + 4) * ModuleSize, (y + 4) * ModuleSize, 0, 0) + r.Width = ModuleSize + r.Height = ModuleSize + Dim clr As Int + If Matrix(x, y) Then + clr = xui.Color_Black + 'cvs.DrawCircle(r.CenterX, r.CenterY, r.Width / 2, clr, True, 0) + cvs.DrawRect(r, clr, True, 0) + End If + Next + Next +End Sub + + + +Private Sub BitsToUnsignedByte (b() As Byte, Offset As Int) As Int + Dim res As Int + For i = 0 To 7 + Dim x As Int = Bit.ShiftLeft(1, 7 - i) + res = res + b(i + Offset) * x + Next + Return res +End Sub + +Private Sub UnsignedByteToBits (Value As Int) As Byte() + TempBB.Clear + For i = 7 To 0 Step - 1 + Dim x As Int = Bit.ShiftLeft(1, i) + Dim ii As Int = Bit.And(Value, x) + If ii <> 0 Then + TempBB.Append(Array As Byte(1)) + Else + TempBB.Append(Array As Byte(0)) + End If + Next + + Return TempBB.ToArray +End Sub + +Private Sub IntTo16Bits (Value As Int) As Byte() + TempBB.Clear + For i = 15 To 0 Step - 1 + Dim x As Int = Bit.ShiftLeft(1, i) + Dim ii As Int = Bit.And(Value, x) + If ii <> 0 Then + TempBB.Append(Array As Byte(1)) + Else + TempBB.Append(Array As Byte(0)) + End If + Next + + Return TempBB.ToArray +End Sub + +Private Sub AddFinders (vd As QRVersionData) + AddFinder(0, 0, 6) + AddFinder(NumberOfModules - 7, 0, 6) + AddFinder(0, NumberOfModules - 7, 6) + AddAlignments(vd.Alignments) + If vd.Version >= 7 Then + For x = 0 To 2 + For y = 0 To 5 + Reserved(y, NumberOfModules - 11 + x) = True + Reserved(NumberOfModules - 11 + x, y) = True + Next + Next + End If + + For i = 8 To NumberOfModules - 8 + Matrix(i, 6) = (i Mod 2 = 0) + Matrix(6, i) = (i Mod 2 = 0) + Reserved(i, 6) = True + Reserved(6, i) = True + Next + Matrix(8, NumberOfModules - 1 - 7) = True + Reserved(8, NumberOfModules - 1 - 7) = True + For i = 0 To 7 + Reserved(7, i) = True + Reserved(7, NumberOfModules - 1 - i) = True + Reserved(8, NumberOfModules - 1 - i) = True + Reserved(NumberOfModules -1 - 7, i) = True + Reserved(i, 7) = True + Reserved(i,NumberOfModules -1 - 7) = True + Reserved(NumberOfModules -1 - i, 7) = True + Reserved(NumberOfModules -1 - i, 8) = True + Next + For i = 0 To 8 + Reserved(8, i) = True + Reserved(i, 8) = True + Next +End Sub + +Private Sub AddAlignments (Positions() As Int) + For Each left As Int In Positions + For Each top As Int In Positions + AddFinder (left - 2, top - 2, 4) + Next + Next +End Sub + +Private Sub AddFinder (Left As Int, Top As Int, SizeMinOne As Int) + For y = 0 To SizeMinOne + For x = 0 To SizeMinOne + If Reserved(Left + x, Top + y) Then + Return + End If + Next + Next + For y = 0 To SizeMinOne + For x = 0 To SizeMinOne + Dim value As Boolean + If x = 0 Or x = SizeMinOne Or y = 0 Or y = SizeMinOne Then + value = True + Else if x <> 1 And y <> 1 And x <> SizeMinOne - 1 And y <> SizeMinOne - 1 Then + value = True + End If + Matrix(Left + x, Top + y) = value + Reserved(Left + x, Top + y) = True + Next + Next +End Sub + +#Region ReedSolomon + +Private Sub CalcReedSolomon (Input() As Int, Generator() As Int) As Int() + Dim ecBytes As Int = Generator.Length - 1 + Dim InfoCoefficients(Input.Length) As Int + IntArrayCopy(Input, 0, InfoCoefficients, 0, Input.Length) + InfoCoefficients = CreateGFPoly(InfoCoefficients) + InfoCoefficients = PolyMultiplyByMonomial(InfoCoefficients, ecBytes, 1) + Dim remainder() As Int = PolyDivide(InfoCoefficients, Generator) + Return remainder +End Sub + + +Private Sub PrepareTables + Dim x = 1 As Int + Dim Primitive As Int = 285 + For i = 0 To GFSize - 1 + ExpTable(i) = x + x = x * 2 + If x >= GFSize Then + x = Bit.Xor(Primitive, x) + x = Bit.And(GFSize - 1, x) + End If + Next + For i = 0 To GFSize - 2 + LogTable(ExpTable(i)) = i + Next +End Sub + +Private Sub CreateGFPoly(Coefficients() As Int) As Int() + If Coefficients.Length > 1 And Coefficients(0) = 0 Then + Dim FirstNonZero As Int = 1 + Do While FirstNonZero < Coefficients.Length And Coefficients(FirstNonZero) = 0 + FirstNonZero = FirstNonZero + 1 + Loop + If FirstNonZero = Coefficients.Length Then + Return Array As Int(0) + End If + Dim res(Coefficients.Length - FirstNonZero) As Int + IntArrayCopy(Coefficients, FirstNonZero, res, 0, res.Length) + Return res + End If + Return Coefficients +End Sub + +Private Sub PolyAddOrSubtract(This() As Int, Other() As Int) As Int() + If This(0) = 0 Then Return Other + If Other(0) = 0 Then Return This + Dim Small() As Int = This + Dim Large() As Int = Other + If Small.Length > Large.Length Then + Dim temp() As Int = Small + Small = Large + Large = temp + End If + Dim SumDiff(Large.Length) As Int + Dim LengthDiff As Int = Large.Length - Small.Length + IntArrayCopy(Large, 0, SumDiff, 0, LengthDiff) + For i = LengthDiff To Large.Length - 1 + SumDiff(i) = Bit.Xor(Small(i - LengthDiff), Large(i)) + Next + Return CreateGFPoly(SumDiff) +End Sub + +Private Sub IntArrayCopy(Src() As Int, SrcOffset As Int, Dest() As Int, DestOffset As Int, Count As Int) + For i = 0 To Count - 1 + Dest(DestOffset + i) = Src(SrcOffset + i) + Next +End Sub + + + +Private Sub PolyMultiplyByMonomial (This() As Int, Degree As Int, Coefficient As Int) As Int() + If Coefficient = 0 Then Return PolyZero + Dim product(This.Length + Degree) As Int + For i = 0 To This.Length - 1 + product(i) = GFMultiply(This(i), Coefficient) + Next + Return CreateGFPoly(product) +End Sub + +Private Sub PolyDivide (This() As Int, Other() As Int) As Int() + Dim quotient() As Int = PolyZero + Dim remainder() As Int = This + Dim denominatorLeadingTerm As Int = Other(0) + Dim inverseDenominatorLeadingTerm As Int = GFInverse(denominatorLeadingTerm) + Do While remainder.Length >= Other.Length And remainder(0) <> 0 + Dim DegreeDifference As Int = remainder.Length - Other.Length + Dim scale As Int = GFMultiply(remainder(0), inverseDenominatorLeadingTerm) + Dim term() As Int = PolyMultiplyByMonomial(Other, DegreeDifference, scale) + Dim iterationQuotient() As Int = GFBuildMonomial(DegreeDifference, scale) + quotient = PolyAddOrSubtract(quotient, iterationQuotient) + remainder = PolyAddOrSubtract(remainder, term) + Loop + Return remainder +End Sub + +Private Sub GFInverse(a As Int) As Int + Return ExpTable(GFSize - LogTable(a) - 1) +End Sub + +Private Sub GFMultiply(a As Int, b As Int) As Int + If a = 0 Or b = 0 Then + Return 0 + End If + Return ExpTable((LogTable(a) + LogTable(b)) Mod (GFSize - 1)) +End Sub + +Private Sub GFBuildMonomial(Degree As Int, Coefficient As Int) As Int() + If Coefficient = 0 Then Return PolyZero + Dim c(Degree + 1) As Int + c(0) = Coefficient + Return c +End Sub + +#End Region \ No newline at end of file diff --git a/B4A/Starter.bas b/B4A/Starter.bas index 9359d7f..31e0e43 100644 --- a/B4A/Starter.bas +++ b/B4A/Starter.bas @@ -71,8 +71,8 @@ Sub Service_Create cedisLocation.Initialize ' cedisLocation.Latitude = "19.48118148992086" ' cedisLocation.Longitude = "-99.15295579261536" - cedisLocation.Latitude = "0" - cedisLocation.Longitude = "0" + cedisLocation.Latitude = "20.5879843" + cedisLocation.Longitude = "-100.3897913" End Sub Sub Service_Start (StartingIntent As Intent) diff --git a/B4A/Subs.bas b/B4A/Subs.bas index a9e83e1..5bdd1ae 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -274,8 +274,8 @@ End Sub 'Mandamos "coords" en un mensaje a "Sprvsr" Sub mandamosLoc(coords As String) 'ignore -'' Log("Iniciamos mandamosLoc "&coords) -'' Log("locRequest="&Tracker.locRequest) + '' Log("Iniciamos mandamosLoc "&coords) + '' Log("locRequest="&Tracker.locRequest) ' guardaInfoEnBD(coords)'Escribimos coordenadas y fecha a una bd ' Dim t As String ' If Tracker.locRequest="Activa" Then @@ -293,10 +293,10 @@ End Sub 'Regresa la fecha y hora de hoy a las 00:00 en el formato "yyMMddHHMMSS" Sub fechaInicioHoy As String 'ignore - Dim OrigFormat As String = DateTime.DateFormat 'save orig date format - DateTime.DateFormat="yyMMdd" - Private h As String = DateTime.Date(DateTime.Now)&"000000" - DateTime.DateFormat=OrigFormat 'return to orig date format + Dim OrigFormat As String = DateTime.DateFormat 'save orig date format + DateTime.DateFormat="yyMMdd" + Private h As String = DateTime.Date(DateTime.Now)&"000000" + DateTime.DateFormat=OrigFormat 'return to orig date format Log("Hoy="&h) Return h End Sub @@ -319,12 +319,12 @@ End Sub 'Regresa verdadero si ya pasaron XX minutos de la fechaKMT dada Sub masDeXXMinsKMT(hora As String, mins As Int) As Boolean 'ignore Try - ' LogColor($"Hora=${fechaKMT(fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute)}, Mins=${mins}, Actual=${fechaKMT(DateTime.Now)}"$,Colors.red) + ' LogColor($"Hora=${fechaKMT(fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute)}, Mins=${mins}, Actual=${fechaKMT(DateTime.Now)}"$,Colors.red) If fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute < DateTime.Now Then ' Log("+++ +++ "&fechaKMT(fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute) & " < " & fechaKMT(DateTime.Now)) Return True Else - ' Log("+++ +++ "&fechaKMT(fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute) & " > " & fechaKMT(DateTime.Now)) + ' Log("+++ +++ "&fechaKMT(fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute) & " > " & fechaKMT(DateTime.Now)) Return False End If Catch @@ -406,7 +406,7 @@ End Sub 'Revisamos que el servicio "PushService" este inicializado y activo Sub revisaPushService 'ignore ' Private todoBienPS As Boolean = True -'' LogColor("**** **** Revisamos PushService **** ****", Colors.RGB(78,0,227)) + '' LogColor("**** **** Revisamos PushService **** ****", Colors.RGB(78,0,227)) ' Try ' If Not(PushService.wsh.IsInitialized) Then 'Si no esta inicializado ... ' log2DB("revisaPushService: No esta inicializado ... 'Reinicializando PushService'") @@ -501,16 +501,16 @@ Sub dameErroresJSON(SQL As SQL, maxErrores As Int, comprimido As Boolean) As Str cur.Close j.Initialize(m2) Log(j.ToString) - If comprimido Then + If comprimido Then Return compress(j.ToString) - Else + Else Return j.ToString End If End Sub 'Convierte una fecha en formato YYMMDDHHMMSS a Ticks Sub fechaKMT2Ticks(fKMT As String) As Long 'ignore - Try + Try If fKMT.Length = 12 Then Private parteFecha As String = fKMT.SubString2(0,6) Private parteHora As String = fKMT.SubString(6) @@ -628,7 +628,7 @@ Sub centraBoton(elemento As Button, anchoElementoSuperior As Int) 'ignore End Sub 'Trae el nombre del producto con ID dado, desde HIST_VENTAS. -Sub traeNombre(id As String) As String +Sub traeNombre(id As String) As String Private nombre As String Private idc As Cursor = kmt.ExecQuery($"select HVD_PRONOMBRE from HIST_VENTAS where HVD_PROID = '${id}'"$) idc.Position=0 @@ -713,18 +713,17 @@ End Sub Sub traeConversion(id As String) As String Private pu As String = "0" - Private idc As Cursor = kmt.ExecQuery($"select CONVERSION from CAT_GUNAPROD where CAT_GP_ID = '${id}'"$) - If idc.RowCount > 0 Then - idc.Position=0 - If idc.RowCount > 0 And IsNumber(idc.GetString("CONVERSION")) Then pu = idc.GetString("CONVERSION") + Private idc As Cursor = kmt.ExecQuery($"select CONVERSION from CAT_GUNAPROD where CAT_GP_ID = '${id}'"$) + If idc.RowCount > 0 Then + idc.Position=0 + If idc.RowCount > 0 And IsNumber(idc.GetString("CONVERSION")) Then pu = idc.GetString("CONVERSION") ' Log("id=" & id & "|p=" & x & "|" & idc.GetString("CAT_GP_PRECIO")) - End If - idc.Close + End If + idc.Close Return pu End Sub - 'Trae el cliente desde la BD. Sub traeCliente As String 'ignore Private cli As Cursor = Starter.skmt.ExecQuery("Select CUENTA from cuentaa") @@ -1093,6 +1092,16 @@ Sub CreateBitmapWithNumber(OriginalBitmap As Bitmap, Number As Int) As Bitmap 'i ' Dibujar la imagen original Canvas.DrawBitmap(OriginalBitmap, Null, DestRect) ' Dibujar el número en el centro del Bitmap y configurar el estilo del texto - Canvas.DrawText(Number, (OriginalBitmap.Width / 2), (OriginalBitmap.Height / 2.4), Typeface.DEFAULT, 20, Colors.White, "CENTER") + Canvas.DrawText(Number, (OriginalBitmap.Width / 2), (OriginalBitmap.Height / 2.4), Typeface.DEFAULT, 15, Colors.White, "CENTER") Return NewBitmap End Sub + +'Muestra en el Log los campos y valores que regresan en el JobDone. +Sub logJobDoneResultados(resultado As DBResult) + For Each records() As Object In resultado.Rows + LogColor($"====== ${resultado.Tag} - REGISTROS = ${resultado.Rows.Size}"$, Colors.RGB(215,37,0)) + For Each k As String In resultado.Columns.Keys + LogColor(k & " = " & records(resultado.Columns.Get(k)), Colors.RGB(215,37,0)) + Next + Next +End Sub \ No newline at end of file diff --git a/B4A/guna_reparto.b4a b/B4A/guna_reparto.b4a index 9ea35b8..842d1d9 100644 --- a/B4A/guna_reparto.b4a +++ b/B4A/guna_reparto.b4a @@ -230,10 +230,11 @@ Module24=foto Module25=ManageExternalStorage Module26=MAPA_CLIENTE Module27=MAPA_RUTAS -Module28=Starter -Module29=Subs +Module28=QRGenerator +Module29=Starter Module3=BatteryUtilities -Module30=Tracker +Module30=Subs +Module31=Tracker Module4=C_Buscar Module5=C_Cheklist Module6=C_Cliente @@ -242,13 +243,13 @@ Module8=C_Detalle_Promo Module9=C_DetalleVenta NumberOfFiles=91 NumberOfLibraries=27 -NumberOfModules=30 +NumberOfModules=31 Version=12.8 @EndOfDesignText@ #Region Project Attributes #ApplicationLabel: Guna Reparto #VersionCode: 1 - #VersionName: 5.03.01 + #VersionName: 5.03.08 '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 a9c7ddd..17ed592 100644 --- a/B4A/guna_reparto.b4a.meta +++ b/B4A/guna_reparto.b4a.meta @@ -23,6 +23,7 @@ ModuleBookmarks28= ModuleBookmarks29= ModuleBookmarks3= ModuleBookmarks30= +ModuleBookmarks31= ModuleBookmarks4= ModuleBookmarks5= ModuleBookmarks6= @@ -54,6 +55,7 @@ ModuleBreakpoints28= ModuleBreakpoints29= ModuleBreakpoints3= ModuleBreakpoints30= +ModuleBreakpoints31= ModuleBreakpoints4= ModuleBreakpoints5= ModuleBreakpoints6= @@ -85,12 +87,13 @@ ModuleClosedNodes28= ModuleClosedNodes29= ModuleClosedNodes3= ModuleClosedNodes30= +ModuleClosedNodes31= ModuleClosedNodes4= ModuleClosedNodes5= ModuleClosedNodes6= ModuleClosedNodes7= ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=C_Principal,Button1_Click,2107,6,C_Principal,Class_Globals,93,0,C_Principal,P_PAGARES_Click,2110,0,C_Principal,B_CLIEPROD_Click,1723,6,C_Principal,b_rechazos_Click,1993,0,C_Principal,B_PAGARES_Click,2081,6,C_Buscar,Class_Globals,0,0,Diseñador Visual,principal.bal,-100,6,Diseñador Visual,cliente.bal,-100,1,C_Buscar,B4XPage_Created,30,0,C_Cliente,Class_Globals,20,0 +NavigationStack=C_DetalleVenta,Class_Globals,0,0,C_DetalleVenta,B_IMP_Click,1262,0,C_Clientes,B4XPage_Appear,73,0,C_Clientes,Class_Globals,0,0,C_Clientes,caculaRutaGPS,647,0,C_Cliente,CrearQR,2042,0,C_Cliente,Class_Globals,3,0,Subs,CreateBitmapWithNumber,1079,0,Subs,traeConversion,719,0,Subs,InstallAPK,528,0,B4XMainPage,p_appUpdate_Click,1010,0 SelectedBuild=0 -VisibleModules=1,2,3,4,5,6,7,8,9,10 +VisibleModules=2,4,5,6,7,9,30,29,16,27