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 22098c1..4229e4c 100644 Binary files a/B4A/Files/cliente.bal and b/B4A/Files/cliente.bal differ diff --git a/B4A/Files/clientes.bal b/B4A/Files/clientes.bal index 352eaa1..1ad4ed7 100644 Binary files a/B4A/Files/clientes.bal and b/B4A/Files/clientes.bal differ diff --git a/B4A/MAPA_RUTAS.bas b/B4A/MAPA_RUTAS.bas index ac185ab..aaeb85f 100644 --- a/B4A/MAPA_RUTAS.bas +++ b/B4A/MAPA_RUTAS.bas @@ -310,6 +310,7 @@ Sub InfoWindowLongClick_Event (MethodName As String, Args() As Object) As Object ' B4XPages.ShowPage("clientes") B4XPages.MainPage.clientes.caculaRutaGPS(B4XPages.MainPage.clientes.todosAVisitar, False) Log("A VISITAR:" & B4XPages.MainPage.clientes.todosAVisitar) + B4XPages.MainPage.clientes.mostrarProgressDialog= True B4XPages.ShowPage("clientes") Loop End If diff --git a/B4A/QRGenerator.bas b/B4A/QRGenerator.bas new file mode 100644 index 0000000..fa70268 --- /dev/null +++ b/B4A/QRGenerator.bas @@ -0,0 +1,491 @@ +B4J=true +Group=Default Group +ModulesStructureVersion=1 +Type=Class +Version=6.28 +@EndOfDesignText@ +'version 1.60 +Sub Class_Globals + Private xui As XUI + Public cvs As B4XCanvas + Private ModuleSize As Int + Private GFSize As Int = 256 + Private ExpTable(GFSize) As Int + Private LogTable(GFSize) As Int + Private PolyZero() As Int = Array As Int(0) + Private Generator1L() As Int = Array As Int(1, 127, 122, 154, 164, 11, 68, 117) + Private Generator4L() As Int = Array As Int(1, 152, 185, 240, 5, 111, 99, 6, 220, 112, 150, 69, 36, 187, 22, 228, 198, 121, 121, 165, 174) '4L + Private Generator4H() As Int = Array As Int(1, 59, 13, 104, 189, 68, 209, 30, 8, 163, 65, 41, 229, 98, 50, 36, 59) + Private Generator9L() As Int = Array As Int(1, 212, 246, 77, 73, 195, 192, 75, 98, 5, 70, 103, 177, 22, 217, 138, 51, 181, 246, 72, 25, 18, 46, 228, 74, 216, 195, 11, 106, 130, 150) + Private TempBB As B4XBytesBuilder + Private Matrix(0, 0) As Boolean + Private Reserved(0, 0) As Boolean + Private NumberOfModules As Int + Private mBitmapSize As Int + Type QRVersionData (Format() As Byte, Generator() As Int, MaxSize As Int, Version As Int, MaxUsableSize As Int, Alignments() As Int, _ + Group1Size As Int, Group2Size As Int, Block1Size As Int, Block2Size As Int, VersionName As String, VersionInformation() As Byte) + Private versions As List +End Sub + + +Public Sub Initialize (BitmapSize As Int) + TempBB.Initialize + mBitmapSize = BitmapSize + PrepareTables + versions.Initialize + Dim l0() As Byte = Array As Byte(1,1,1,0,1,1,1,1,1,0,0,0,1,0,0) + Dim h0() As Byte = Array As Byte(0,0,1,0,1,1,0,1,0,0,0,1,0,0,1) + versions.Add(CreateVersionData(1, "1L", Generator1L, l0, 19 * 8, 17, Array As Int(), 1, 0, 19, 0, Null)) + versions.Add(CreateVersionData(4, "4H", Generator4H, h0 , 36 * 8, 34, Array As Int(6, 26), 4, 0, 9, 0, Null)) + versions.Add(CreateVersionData(4, "4L", Generator4L, l0 , 80 * 8, 78, Array As Int(6, 26), 1, 0, 80, 0, Null)) + versions.Add(CreateVersionData(9, "9L", Generator9L, l0, 232 * 8, 230, Array As Int(6, 26, 46), 2, 0, 116, 0, Array As Byte(0,0,1,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1))) + versions.Add(CreateVersionData(23, "23H", Generator9L, h0, 464 * 8, 461, Array As Int(6, 30, 54, 78, 102), 16, 14, 15, 16, _ + Array As Byte(0,1,0,1,1,1,0,1,1,1,1,1,1,0,1,1,0,0))) + versions.Add(CreateVersionData(40, "40H", Generator9L, h0, 1276 * 8, 1273, Array As Int(6, 30, 58, 86, 114, 142, 170), 20, 61, 15, 16, _ + Array As Byte(1,0,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,1))) + versions.Add(CreateVersionData(40, "40L", Generator9L, l0, 2956 * 8, 2953, Array As Int(6, 30, 58, 86, 114, 142, 170), 19, 6, 118, 119, _ + Array As Byte(1,0,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,1))) +End Sub + +Private Sub CreateVersionData (Version As Int, Name As String, Generator() As Int, Format() As Byte, MaxSize As Int, MaxUsableSize As Int, Alignments() As Int, _ + Group1Size As Int, Group2Size As Int, Block1Size As Int, Block2Size As Int, VersionInformation() As Byte) As QRVersionData + Dim v As QRVersionData + v.Initialize + v.Version = Version + v.VersionName = Name + v.Generator = Generator + v.Format = Format + v.MaxSize = MaxSize + v.MaxUsableSize = MaxUsableSize + v.Alignments = Alignments + v.Group1Size = Group1Size + v.Group2Size = Group2Size + v.Block1Size = Block1Size + v.Block2Size = Block2Size + v.VersionInformation = VersionInformation + Return v +End Sub + +Public Sub Create(Text As String) As B4XBitmap + Dim Bytes() As Byte = Text.GetBytes("utf8") 'non-standard but still recommended + Dim vd As QRVersionData + For Each version As QRVersionData In versions + If version.MaxUsableSize >= 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