v. 5.08.31

This commit is contained in:
Javier
2025-09-26 13:35:27 -06:00
parent 59d7e47832
commit 9ea95e39f1
11 changed files with 1044 additions and 110 deletions

View File

@@ -1273,12 +1273,17 @@ Sub Class_Globals
Dim a As Cursor
Dim f As Cursor
Private b_abono As Button
Private cb_importarBDWA As CheckBox
Private p_importarBDWA As Panel
Dim intentUsado As Boolean = False
End Sub
Public Sub Initialize
' B4XPages.GetManager.LogEvents = True
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
@@ -1363,6 +1368,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Subs.agregaColumna("kmt_info", "SECUENCIA", "INT")
Subs.agregaColumna("NOVENTA", "NV_FOTO2", "BLOB")
Subs.agregaColumna("kmt_info", "CAT_CL_SALDODISPONIBLE", "TEXT")
Subs.agregaColumna("kmt_info", "CAT_CL_DIASCREDITO", "INT")
Subs.agregaColumna("kmt_info", "HORAENT", "TEXT")
@@ -1416,6 +1422,11 @@ Private Sub B4XPage_Created (Root1 As B4XView)
' IMEN.Text = "" 'P.GetDeviceId
' IMEI = "" 'P.GetDeviceId
' End If
'Revisamos si se disparo el intent de cargar la base de datos desde WhatApp.
If Subs.traeUsarIntentBDWA Then
Subs.importaBDDesdeWhatsApp
End If
End Sub
Sub B4XPage_Appear
@@ -1443,6 +1454,13 @@ Sub B4XPage_Appear
usuario = c.GetString("USUARIO")
End If
c.Close
cb_importarBDWA.Checked = Subs.traeUsarIntentBDWA
If user.Text.Trim = "KMTS1" Then
p_importarBDWA.Visible = True
Else
p_importarBDWA.Visible = False
End If
' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
' If Result Then
@@ -1734,6 +1752,12 @@ Private Sub i_engrane_Click
' l_server.Text = Starter.server
et_server.Text = server
Subs.panelVisible(p_appUpdate, 0, 0)
If user.Text.Trim = "KMTS1" Then
p_importarBDWA.Visible = True
Else
p_importarBDWA.Visible = False
End If
End Sub
Private Sub B4XPage_CloseRequest As ResumableSub
@@ -2202,4 +2226,10 @@ End Sub
Private Sub p_appUpdate_Click
End Sub
Private Sub cb_importarBDWA_CheckedChange(Checked As Boolean)
' LogColor($"cb_importarBDWA_CheckedChange = ${Checked}"$, Colors.Red)
Starter.skmt.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'IMPORTAR_BD_WA'")
Starter.skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('IMPORTAR_BD_WA', '${Checked}')"$)
End Sub

View File

@@ -27,6 +27,10 @@ Sub Class_Globals
Dim NOMBRE As String
Dim c As Cursor
Dim s As Cursor
Dim limite_credito As Double
Dim banderaabono As String
Dim ListView1 As ListView
Dim la_cuenta As Label
Dim La_nombre As Label
@@ -174,6 +178,7 @@ End Sub
Sub B4XPage_Appear
banderaimp = 0
banderaabono = 0
escreditoono = 0
Tipoentrega = "CONTADO"
' Subs.centraPanel(p_principal, Root.Width)
@@ -415,6 +420,11 @@ Sub B4XPage_Appear
GPS_LocationChanged(Tracker.FLP.GetLastKnownLocation)
End If
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
limite_credito = 0
l_montopag.Text = x1.GetString("CAT_CL_LIMITECREDITO")
' Dim fotomostrar As Cursor = Starter.skmt.ExecQuery("SELECT foto FROM FOTOS where CLIENTE IN (SELECT CUENTA FROM CUENTAA)")
' If fotomostrar.RowCount > 0 Then
' Dim fotomostrar1 As Cursor = Starter.skmt.ExecQuery("SELECT foto FROM FOTOS where CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND foto IS NULL")
@@ -552,12 +562,15 @@ 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
Log(NumberFormat2(u.GetDouble("SALDO_PENDIENTE"),0,2,2,False) &" = " & NumberFormat2(y.GetDouble("a_abono"),0,2,2,False))
If NumberFormat2(u.GetDouble("SALDO_PENDIENTE"),0,2,2,False) = NumberFormat2(y.GetDouble("a_abono"),0,2,2,False) Then
checacredito
Else
Log("aqui")
MsgboxAsync("Para poder hacer una entrega se necesita liquidar el(los) pagare(s)","Atención")
End If
Else
Log("aqui")
MsgboxAsync("Para poder hacer una entrega se necesita liquidar el(los) pagare(s)","Atención")
End If
Else If u.GetString("SALDO_PENDIENTE") = 0 Then
@@ -585,6 +598,7 @@ 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
limite_credito = 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 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)
@@ -607,6 +621,7 @@ Sub checacredito
Log(12)
escreditoono = 1
' If l_total.Text.Replace(",","") <= NumberFormat2( x1.GetString("CAT_CL_LIMITECREDITO").Replace(",",""),0,2,2,False) Then
limite_credito = x1.GetString("CAT_CL_LIMITECREDITO")
esPagoACreditoGuardamosPagare'' para brincar el r
Log(3)
'' descomentar
@@ -743,9 +758,23 @@ Sub esPagoACreditoGuardamosPagare
B_IMP_Click
banderaimp = 1
Else
Starter.skmt.ExecNonQuery2("INSERT INTO PAGARES (PA_ALMACEN, PA_RUTA_REP, PA_RUTAPREV, PA_FECHA_PREV, PA_CAPTURA, PA_MONTO, PA_USUARIO, PA_CLIENTE,PA_TICKET) VALUES(?,?,?,?,?,?,?,?,?) ", Array As Object (almacen,rutarep,rutaprev,fechaprev,(sDate),l_total.Text.Replace(",",""),usuario,cuenta,NOTA))
B_IMP_Click
banderaimp = 1
If l_total.Text.Replace(",","") <= limite_credito Then
Starter.skmt.ExecNonQuery2("INSERT INTO PAGARES (PA_ALMACEN, PA_RUTA_REP, PA_RUTAPREV, PA_FECHA_PREV, PA_CAPTURA, PA_MONTO, PA_USUARIO, PA_CLIENTE,PA_TICKET) VALUES(?,?,?,?,?,?,?,?,?) ", Array As Object (almacen,rutarep,rutaprev,fechaprev,(sDate),l_total.Text.Replace(",",""),usuario,cuenta,NOTA))
B_IMP_Click
banderaimp = 1
Else
Log(limite_credito)
Msgbox2Async("Se debe de realizar un pago por " & NumberFormat2((l_total.Text.Replace(",","")-limite_credito),0,2,2,False) & " por que exede el limite de credito","Atención","","Aceptar","Cancelar",LoadBitmap(File.DirAssets,"alert2.png"),False)
Wait For Msgbox_Result (Result As Int)
If Result= DialogResponse.CANCEL Then
Starter.skmt.ExecNonQuery2("INSERT INTO PAGARES (PA_ALMACEN, PA_RUTA_REP, PA_RUTAPREV, PA_FECHA_PREV, PA_CAPTURA, PA_MONTO, PA_USUARIO, PA_CLIENTE,PA_TICKET) VALUES(?,?,?,?,?,?,?,?,?) ", Array As Object (almacen,rutarep,rutaprev,fechaprev,(sDate),l_total.Text.Replace(",",""),usuario,cuenta,NOTA))
tipo_abonox = "abono"
banderaabono = 1
banderaimp = 1
B_IMP_Click
End If
End If
End If
End Sub
@@ -1971,35 +2000,62 @@ Sub CreateListItem(mostrar As String, mostrar1 As String, mostrar2 As String) As
' Guardar referencia al label en el Tag del checkbox
CheckBox1.Tag = l_folio
Return p
End Sub
Sub CheckBox1_CheckedChange(Checked As Boolean)
If ChangingCheckboxesProgrammatically Then Return
If ChangingCheckboxesProgrammatically Then Return
Dim chk As CheckBox = Sender
If chk.Checked = False Then
If Checked Then
' Obtener directamente el label desde el Tag del checkbox
Dim l_folio As Label = chk.Tag
Log("Folio seleccionado: " & l_folio.Text)
Folio = l_folio.Text
' Indicar que estamos cambiando checkboxes programáticamente
ChangingCheckboxesProgrammatically = True
' Desmarcar todos los demás checkboxes
For i = 0 To clv_abonos.Size - 1
Dim p As Panel = clv_abonos.GetPanel(i)
Dim panelCheckbox As CheckBox = GetCheckboxFromPanel(p)
If panelCheckbox <> Null And panelCheckbox <> chk Then
panelCheckbox.Checked = False
End If
Next
' Restaurar flag
ChangingCheckboxesProgrammatically = False
et_abono.Text = ""
End If
If Checked Then
' Obtener directamente el label desde el Tag del checkbox
Dim l_folio As Label = chk.Tag
Log("Folio seleccionado: " & l_folio.Text)
Folio = l_folio.Text
' Indicar que estamos cambiando checkboxes programáticamente
ChangingCheckboxesProgrammatically = True
If tipo_abonox = "cxc" Then
Dim y As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(a_abono),0) AS a_abono FROM ABONOS WHERE a_cliente IN (SELECT CUENTA FROM CUENTAA) AND a_ticket = ?", Array As String(Folio))
Log(Folio)
y.position = 0
Dim u As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(SALDO_PENDIENTE),0) AS SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND NOTA = ?", Array As String(Folio))
u.Position = 0
et_abono.Text = u.GetDouble("SALDO_PENDIENTE") - y.GetDouble("a_abono")
Else If tipo_abonox = "abono" Then
Dim y As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(a_abono),0) AS a_abono FROM ABONOS WHERE a_cliente IN (SELECT CUENTA FROM CUENTAA) AND a_ticket = ?", Array As String(Folio))
Log(Folio)
y.position = 0
c = Starter.skmt.ExecQuery($"select iFNULL(sum(PA_MONTO),0) AS SALDO_PENDIENTE from PAGARES where PA_CLIENTE = '${la_cuenta.Text}'"$)
c.Position = 0
et_abono.Text = c.GetDouble("SALDO_PENDIENTE") - y.GetDouble("a_abono")
End If
' Desmarcar todos los demás checkboxes
For i = 0 To clv_abonos.Size - 1
Dim p As Panel = clv_abonos.GetPanel(i)
Dim panelCheckbox As CheckBox = GetCheckboxFromPanel(p)
If panelCheckbox <> Null And panelCheckbox <> chk Then
panelCheckbox.Checked = False
End If
Next
' Restaurar flag
ChangingCheckboxesProgrammatically = False
End If
End Sub
Sub GetCheckboxFromPanel(p As Panel) As CheckBox
@@ -2022,108 +2078,492 @@ End Sub
Private Sub b_abono_Click
' p_abono.Visible = False
If et_abono.Text <> "" Then
If almacen = 92 Then
' If almacen = 92 Then
'
' Dim y As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(a_abono),0) AS a_abono FROM ABONOS WHERE a_cliente IN (SELECT CUENTA FROM CUENTAA) AND a_ticket = ?", Array As String(Folio))
' Log(Folio)
' y.position = 0
' Dim u As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(SALDO_PENDIENTE),0) AS SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND NOTA = ?", Array As String(Folio))
' u.Position = 0
'
' If y.GetString("a_abono") > 0 Then
' Log((u.GetString("SALDO_PENDIENTE") + y.GetString("a_abono")))
' If et_abono.text > (u.GetString("SALDO_PENDIENTE") - y.GetString("a_abono")) Then
' MsgboxAsync("El monto a abonar no puede ser mayor que el monto del pagare seleccionado","Atención" )
' Else
' If et_abono.Text <> "" And et_abono.Text > 0 Then
' If itemselect <> "SELECCIONA UNA OPCION" Then
' If Folio <> "" 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
' Else
' MsgboxAsync("Por favor selecciona un pagare para aplicar el pago","Atención")
' End If
' Else
' MsgboxAsync("Por favor selecciona un metodo de pago","Atención")
' End If
' End If
' End If
' Else
'
' Log("entramos aqui")
' If Folio <> "" Then
' If et_abono.text >= u.GetString("SALDO_PENDIENTE") Then
' MsgboxAsync("El monto a abonar no puede ser mayor que el monto del pagare seleccionado","Atención" )
' Else
' If et_abono.Text <> "" And et_abono.Text > 0 Then
' If itemselect <> "SELECCIONA UNA OPCION" 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
'
' Else
' MsgboxAsync("Por favor selecciona un metodo de pago","Atención")
' End If
' End If
' End If
' Else
' MsgboxAsync("Por favor selecciona un pagare para aplicar el pago","Atención")
' End If
' End If
'
' Else
' If et_abono.text > l_montoabonostotal.text Then
' 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
' If itemselect <> "SELECCIONA UNA OPCION" Then
' If Folio <> "" 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
'' Else If et_abono.Text > y.GetString("a_abono") Then
'' Msgbox2Async($"¿Seguro que quieres realizar un abono de $${et_abono.text} para este cliente?"$, "Guardar Abono", "Guardar", "Cancelar", "", Null, True)
'' Wait For Msgbox_Result (resultado As Int)
'' If resultado = DialogResponse.POSITIVE Then
'' imprime_abonopagare
'' End If
'' Else If et_abono.Text = y.GetString("a_abono") Then
'' p_abono.Visible = False
'' et_abono.Text = ""
'' Else If et_abono.Text < y.GetString("a_abono") Then
'' p_abono.Visible = False
'' MsgboxAsync("El pago no puede ser menor al monto capturado.","Atención")
'' et_abono.Text = ""
'' End If
' Else
' MsgboxAsync("Por favor selecciona un pagare para aplicar el pago","Atención")
' End If
' Else
' MsgboxAsync("Por favor selecciona un metodo de pago","Atención")
' End If
' End If
' End If
Dim y As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(a_abono),0) AS a_abono FROM ABONOS WHERE a_cliente IN (SELECT CUENTA FROM CUENTAA) AND a_ticket = ?", Array As String(Folio))
Log(Folio)
y.position = 0
Dim u As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(SALDO_PENDIENTE),0) AS SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND NOTA = ?", Array As String(Folio))
u.Position = 0
If y.GetString("a_abono") > 0 Then
Log((u.GetString("SALDO_PENDIENTE") + y.GetString("a_abono")))
If et_abono.text >= (u.GetString("SALDO_PENDIENTE") - y.GetString("a_abono")) Then
MsgboxAsync("El monto a abonar no puede ser mayor que el monto del pagare seleccionado","Atención" )
Else
If et_abono.Text <> "" And et_abono.Text > 0 Then
If itemselect <> "SELECCIONA UNA OPCION" Then
If Folio <> "" 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
If y.GetDouble("a_abono") > 0 Then
If tipo_abonox = "cxc" Then
Log((u.GetDouble("SALDO_PENDIENTE") + y.GetDouble("a_abono")))
If et_abono.text > (u.GetDouble("SALDO_PENDIENTE") - y.GetDouble("a_abono")) Then
Log("aqui")
MsgboxAsync("El monto a abonar no puede ser mayor que el monto del pagare seleccionado","Atención" )
Else
If et_abono.Text <> "" And et_abono.Text > 0 Then
If itemselect <> "SELECCIONA UNA OPCION" Then
If Folio <> "" 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
Else
MsgboxAsync("Por favor selecciona un pagare para aplicar el pago","Atención")
End If
Else
MsgboxAsync("Por favor selecciona un pagare para aplicar el pago","Atención")
MsgboxAsync("Por favor selecciona un metodo de pago","Atención")
End If
Else
MsgboxAsync("Por favor selecciona un metodo de pago","Atención")
End If
End If
Else If tipo_abonox = "abono" Then
If Folio <> "" Then
c = Starter.skmt.ExecQuery($"select iFNULL(sum(PA_MONTO),0) AS SALDO_PENDIENTE from PAGARES where PA_CLIENTE = '${la_cuenta.Text}'"$)
c.Position = 0
' Log(c.GetString("SALDO_PENDIENTE") &" "& u.GetString("SALDO_PENDIENTE"))
If et_abono.text > (c.GetDouble("SALDO_PENDIENTE") - y.GetDouble("a_abono")) Then
Log("aqui")
MsgboxAsync("El monto a abonar no puede ser mayor que el monto del pagare seleccionado","Atención" )
Else
If et_abono.Text <> "" And et_abono.Text > 0 Then
If itemselect <> "SELECCIONA UNA OPCION" 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
Else
MsgboxAsync("Por favor selecciona un metodo de pago","Atención")
End If
End If
End If
Else
MsgboxAsync("Por favor selecciona un pagare para aplicar el pago","Atención")
End If
End If
Else
Log("entramos aqui")
If Folio <> "" Then
If et_abono.text >= u.GetString("SALDO_PENDIENTE") Then
MsgboxAsync("El monto a abonar no puede ser mayor que el monto del pagare seleccionado","Atención" )
Else
If et_abono.Text <> "" And et_abono.Text > 0 Then
If itemselect <> "SELECCIONA UNA OPCION" Then
If tipo_abonox = "cxc" Then
If Folio <> "" Then
If et_abono.text > u.GetDouble("SALDO_PENDIENTE") Then
Log("aqui")
MsgboxAsync("El monto a abonar no puede ser mayor que el monto del pagare seleccionado","Atención" )
Else
If et_abono.Text <> "" And et_abono.Text > 0 Then
If itemselect <> "SELECCIONA UNA OPCION" 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
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
MsgboxAsync("Por favor selecciona un metodo de pago","Atención")
End If
Else
MsgboxAsync("Por favor selecciona un metodo de pago","Atención")
End If
End If
End If
Else
MsgboxAsync("Por favor selecciona un pagare para aplicar el pago","Atención")
End If
End If
Else
If et_abono.text > l_montoabonostotal.text Then
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
If itemselect <> "SELECCIONA UNA OPCION" Then
If Folio <> "" 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
' Else If et_abono.Text > y.GetString("a_abono") Then
' Msgbox2Async($"¿Seguro que quieres realizar un abono de $${et_abono.text} para este cliente?"$, "Guardar Abono", "Guardar", "Cancelar", "", Null, True)
' Wait For Msgbox_Result (resultado As Int)
' If resultado = DialogResponse.POSITIVE Then
' imprime_abonopagare
' End If
' Else If et_abono.Text = y.GetString("a_abono") Then
' p_abono.Visible = False
' et_abono.Text = ""
' Else If et_abono.Text < y.GetString("a_abono") Then
' p_abono.Visible = False
' MsgboxAsync("El pago no puede ser menor al monto capturado.","Atención")
' et_abono.Text = ""
' End If
Else
MsgboxAsync("Por favor selecciona un pagare para aplicar el pago","Atención")
End If
Else
MsgboxAsync("Por favor selecciona un metodo de pago","Atención")
MsgboxAsync("Por favor selecciona un pagare para aplicar el pago","Atención")
End If
Else If tipo_abonox = "abono" Then
'''checar
If Folio <> "" Then
c = Starter.skmt.ExecQuery($"select iFNULL(sum(PA_MONTO),0) AS SALDO_PENDIENTE from PAGARES where PA_CLIENTE = '${la_cuenta.Text}'"$)
c.Position = 0
' Log(c.GetString("SALDO_PENDIENTE") &" "& u.GetString("SALDO_PENDIENTE"))
If et_abono.text > c.GetDouble("SALDO_PENDIENTE") Then
Log("aqui")
MsgboxAsync("El monto a abonar no puede ser mayor que el monto del pagare seleccionado","Atención" )
Else
If et_abono.Text <> "" And et_abono.Text > 0 Then
If itemselect <> "SELECCIONA UNA OPCION" 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
Else
MsgboxAsync("Por favor selecciona un metodo de pago","Atención")
End If
End If
End If
Else
MsgboxAsync("Por favor selecciona un pagare para aplicar el pago","Atención")
End If
End If
End If
End If
' End If
End If
ime.HideKeyboard
End Sub
Sub imprime_abonopagare2
c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
DateTime.DateFormat = "MM/dd/yyyy"
DateTime.TimeFormat = "HH:mm:ss"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c.Close
' ProgressDialogShow("Imprimiendo, un momento ...")
' Printer1.DisConnect
' If Not(Printer1.IsConnected) Then
' Log("Conectando a impresora ...")
' Printer1.Connect
' Private cont As Int = 0
' Do While Not(impresoraConectada)
' Sleep(1000)
' Log("++++++ " & cont)
' cont = cont + 1
' If cont = 2 Then Printer1.Connect 'Tratamos de reconectar
' If cont > 3 Then impresoraConectada = True
' Loop
' Sleep(500)
' impresoraConectada = False
' Else
' Log("conectando 2")
' Printer1.Connect
' Private cont As Int = 0
' Do While Not(impresoraConectada) Or Not(Printer1.IsConnected)
' Sleep(1000)
' Log("****** " & cont)
' cont = cont + 1
' If cont = 2 Then Printer1.Connect
' If cont > 3 Then impresoraConectada = True
' Loop
' Sleep(500)
' impresoraConectada = False
' End If
ProgressDialogShow("Imprimiendo, un momento ...")
Printer1.DisConnect
If Not(Printer1.IsConnected) Then
' If logger Then Log("conectando 1")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada)
Sleep(1000)
cont = cont + 1
If cont = 7 Then Printer1.Connect 'Tratamos de reconectar
If cont > 15 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
Else
' If logger Then Log("conectando 2")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada) Or Not(Printer1.IsConnected)
Sleep(1000)
cont = cont + 1
If cont = 2 Then Printer1.Connect
If cont > 4 Then impresoraConectada = True
Loop
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
c7.Position = 0
telefono = c7.GetString("CAT_CL_TELEFONO")
End If
c7.Close
Printer1.WriteString("DISTRIBUIDORA ROCHA TULA PACHUCA" & CRLF)
' Printer1.WriteString(sucursal & CRLF)
Printer1.WriteString(sDate & CRLF)
Printer1.WriteString(sTime & CRLF)
Printer1.WriteString("Reparto:" & usuario & CRLF)
Printer1.WriteString("Tienda: " & La_nombre.Text & CRLF)
Printer1.WriteString("ID.Cliente: " & la_cuenta.Text & CRLF)
Printer1.WriteString("Calle: " & la_Calle.Text & CRLF)
Printer1.WriteString("Colonia: " & la_col.Text & CRLF)
Printer1.WriteString("Telefono: " & telefono & CRLF)
Printer1.WriteString(" " & CRLF)
Dim notaabono As String
Dim saldopendiente As Double
Dim saldopendiente2 As Double
If tipo_abonox = "abono" Then
c = Starter.skmt.ExecQuery($"select distinct hvd_num_ticket from hist_ventas where hvd_cliente = '${la_cuenta.Text}' and HVD_PRONOMBRE <> 'Cobranza Pendiente' "$)
If c.RowCount > 0 Then
c.Position = 0
notaabono = c.GetString("HVD_NUM_TICKET")
End If
c.Close
c = Starter.skmt.ExecQuery($"select iFNULL(sum(PA_MONTO),0) AS SALDO_PENDIENTE from PAGARES where PA_CLIENTE = '${la_cuenta.Text}'"$)
If c.RowCount > 0 Then
c.Position = 0
saldopendiente = c.GetDouble("SALDO_PENDIENTE")
Log(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) and a_tipoabono is not null")
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) and a_tipoabono is not null")
saldopendiente1 = c4.GetDouble("SALDO_PENDIENTE")
End If
c4.Close
Else If tipo_abonox = "cxc" Then
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.GetDouble("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) and a_tipoabono is null")
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) and a_tipoabono is null")
saldopendiente1 = c4.GetDouble("SALDO_PENDIENTE")
End If
c4.Close
c = Starter.skmt.ExecQuery2("SELECT SUM(SALDO_PENDIENTE) AS SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND NOTA = ?",Array As String(Folio))
If c.RowCount > 0 Then
c.Position = 0
saldopendiente2 = c.GetDouble("SALDO_PENDIENTE")
End If
c.Close
Dim saldopendiente3 As Double = 0
Dim c4 As Cursor= Starter.skmt.ExecQuery2("SELECT Ifnull(SUM(a_abono),0) AS SALDO_PENDIENTE FROM ABONOS WHERE a_cliente IN (SELECT CUENTA FROM CUENTAA) and a_tipoabono is null AND a_ticket = ?",Array As String(Folio))
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) and a_tipoabono is null")
saldopendiente3 = c4.GetDouble("SALDO_PENDIENTE")
End If
c4.Close
End If
' c = Starter.skmt.ExecQuery("SELECT NOTA FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA)")
' If c.RowCount > 0 Then
' c.Position = 0
' notaabono = c.GetString("NOTA")
' End If
Dim numpago As Int = c5.RowCount + 1
Log(notaabono)
Log(et_abono.Text)
Printer1.WriteString("Comprobante de pago del pagare" & CRLF)
Printer1.WriteString("Folio: " & NOTA &"-"&(numpago)& CRLF)
Printer1.WriteString("Monto deuda: " & (NumberFormat2(l_total.Text.Replace(",",""),0,2,2,False)) & CRLF)
Printer1.WriteString("Monto abono: " & (NumberFormat2((l_total.Text.Replace(",","")-limite_credito),0,2,2,False)) & CRLF)
Printer1.WriteString("Restante "&NOTA&": " &(NumberFormat(limite_credito,0,2)) & CRLF)
Printer1.WriteString("Fecha Abono: " & sDate & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString("------------------------------" & CRLF)
Printer1.WriteString("-------------FIRMA------------" & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
DateTime.DateFormat = "ddMMyyyy"
sDate=DateTime.Date(DateTime.Now)
itemselect = "EFECTIVO"
' Items.Add("TRANSFERENCIA")
' Items.Add("EFECTIVO")
' Items.Add("CHEQUE")
Dim tipopagotick As String = ""
If itemselect = "TRANSFERENCIA" Then
tipopagotick = "T"
Else If itemselect = "EFECTIVO" Then
tipopagotick = "E"
Else If itemselect = "CHEQUE" Then
tipopagotick = "C"
End If
Printer1.WriteBarCode("I",NOTA&sDate&tipopagotick&numpago)
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
' imprime_abonopagare
' Else
' p_abono.Visible = False
' Starter.skmt.ExecNonQuery($"INSERT INTO ABONOS(a_usuario, a_ruta, a_cliente, a_abono, a_fecha,a_tipoabono,TIPO_PAGO,a_ticket,a_numpago) VALUES ('${Subs.traeUsuarioDeBD}', '${Subs.traeRuta(Subs.traeCliente)}', '${Subs.traeCliente}' ,'${NumberFormat2((l_total.Text.Replace(",","")-limite_credito),0,2,2,False) }', '${Subs.fechaKMT(DateTime.now)}', 1,'${itemselect}','${Folio}','${numpago}')"$)
' ToastMessageShow("Abono guardado", False)
' End If
If banderaimp = 1 Then
Msgbox2Async("Deseas imprimir de nuevo el abono?", "ATENCION","SI","", "NO",LoadBitmap(File.DirAssets,"alert2.png"), False)
Wait For Msgbox_Result (resultado As Int)
If resultado = DialogResponse.POSITIVE Then
imprime_abonopagare2
Else
Starter.skmt.ExecNonQuery($"INSERT INTO ABONOS(a_usuario, a_ruta, a_cliente, a_abono, a_fecha,a_tipoabono,TIPO_PAGO,a_ticket,a_numpago) VALUES ('${Subs.traeUsuarioDeBD}', '${Subs.traeRuta(Subs.traeCliente)}', '${Subs.traeCliente}' ,'${NumberFormat2((l_total.Text.Replace(",","")-limite_credito),0,2,2,False) }', '${Subs.fechaKMT(DateTime.now)}', 1,'EFECTIVO','${NOTA}','${numpago}')"$)
ToastMessageShow("Abono guardado", False)
Guardado
End If
' printer.Flush
' printer.Close
Else If banderaimp = 0 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_abonopagare2
End If
End If
End Sub
'Sub hazpago
' h = Starter.skmt.ExecQuery("SELECT CUENTA from CUENTAA")
' h.Position = 0
@@ -2250,7 +2690,7 @@ Sub imprime_abonopagare
If tipo_abonox = "abono" Then
c = Starter.skmt.ExecQuery($"select distinct hvd_num_ticket from hist_ventas where hvd_cliente = '${la_cuenta.Text}'"$)
c = Starter.skmt.ExecQuery($"select distinct hvd_num_ticket from hist_ventas where hvd_cliente = '${la_cuenta.Text}' and HVD_PRONOMBRE <> 'Cobranza Pendiente' "$)
If c.RowCount > 0 Then
c.Position = 0
notaabono = c.GetString("HVD_NUM_TICKET")
@@ -2933,7 +3373,11 @@ Sub imprime_pagare
If resultado = DialogResponse.POSITIVE Then
imprime_pagare
Else
Guardado
If banderaabono = 1 Then
imprime_abonopagare2
Else
Guardado
End If
End If
' printer.Flush
' printer.Close
@@ -3765,4 +4209,222 @@ Private Sub l_telefono_LongClick As ResumableSub
End If
Return True
End Sub
Private Sub HIST_LongClick
c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c.Close
' ProgressDialogShow("Imprimiendo, un momento ...")
' Printer1.DisConnect
' If Not(Printer1.IsConnected) Then
'' Log("Conectando a impresora ...")
' Printer1.Connect
' Private cont As Int = 0
' Do While Not(impresoraConectada)
' Sleep(1000)
'' Log("++++++ " & cont)
' cont = cont + 1
' If cont = 2 Then Printer1.Connect 'Tratamos de reconectar
' If cont > 3 Then impresoraConectada = True
' Loop
' Sleep(500)
' impresoraConectada = False
' Else
'' Log("conectando 2")
' Printer1.Connect
' Private cont As Int = 0
' Do While Not(impresoraConectada) Or Not(Printer1.IsConnected)
' Sleep(1000)
'' Log("****** " & cont)
' cont = cont + 1
' If cont = 2 Then Printer1.Connect
' If cont > 3 Then impresoraConectada = True
' Loop
' Sleep(500)
' impresoraConectada = False
' End If
ProgressDialogShow("Imprimiendo, un momento ...")
Printer1.DisConnect
If Not(Printer1.IsConnected) Then
' If logger Then Log("conectando 1")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada)
Sleep(1000)
cont = cont + 1
If cont = 7 Then Printer1.Connect 'Tratamos de reconectar
If cont > 15 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
Else
' If logger Then Log("conectando 2")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada) Or Not(Printer1.IsConnected)
Sleep(1000)
cont = cont + 1
If cont = 2 Then Printer1.Connect
If cont > 4 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
End If
TAMANO = 0
ESPACIO = 28
BLANCO = " "
Dim Ticket As String = 0
Dim c6 As Cursor = Starter.skmt.ExecQuery("select distinct HVD_NUM_TICKET FROM HIST_VENTAS WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)")
If c6.RowCount > 0 Then
c6.Position = 0
Ticket = c6.GetString("HVD_NUM_TICKET")
End If
c6.Close
DateTime.DateFormat = "dd/MM/yyyy"
DateTime.TimeFormat = "HH:mm:ss"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
Printer1.WriteString("Tienda: " & B4XPages.MainPage.cliente.La_nombre.Text & CRLF)
Printer1.WriteString("ID.Cliente: " & B4XPages.MainPage.cliente.la_cuenta.Text & CRLF)
Printer1.WriteString("Num. Ticket: " & Ticket & CRLF)
Printer1.WriteString("Fecha: " & sDate &" " & sTime & CRLF)
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("------------Picking------------" & CRLF)
Printer1.WriteString("------------------------------" & CRLF)
Printer1.WriteString("ESTE NO ES UN TICKET DE ENTREGA" & CRLF)
Printer1.WriteString("SOLO ES INFORMATIVO" & 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"$)
If S.RowCount>0 Then
For i=0 To S.RowCount -1
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(( (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
' BLANCO = " " & BLANCO
' Next
' Printer1.Justify = 0
' Printer1.WriteString( (s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT"))& BLANCO)
' Printer1.Justify = 1
' Printer1.WriteString( punit & BLANCO)
' Printer1.Justify = 2
' Printer1.WriteString( ptot & CRLF )
' 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)
' 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
' BLANCO = " " & BLANCO
' Next
' Printer1.Justify = 0
' Printer1.WriteString( (s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT"))& BLANCO)
' Printer1.Justify = 1
' Printer1.WriteString( punit & BLANCO)
' Printer1.Justify = 2
' Printer1.WriteString(ptot& CRLF )
' TAMANO = 0
' ESPACIO = 29
' BLANCO = " "
Printer1.Justify = 0
End If
End If
Next
End If
End If
Printer1.Justify = 0
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}' AND HVD_PRONOMBRE <> 'Cobranza Pendiente' 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
' BLANCO = " " & BLANCO
' Next
' Printer1.Justify = 0
' Printer1.WriteString( (s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT"))& BLANCO)
' Printer1.Justify = 1
' Printer1.WriteString( punit & BLANCO)
' Printer1.Justify = 2
' Printer1.WriteString(ptot & CRLF )
' TAMANO = 0
' ESPACIO = 29
' BLANCO = " "
Printer1.Justify = 0
Else
End If
End If
Next
End If
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString("------------------------------" & CRLF)
Printer1.WriteString("ESTE NO ES UN TICKET DE ENTREGA" & CRLF)
Printer1.WriteString("SOLO ES INFORMATIVO" & CRLF)
Printer1.WriteString("------------------------------" & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Sleep(1000)
Printer1.DisConnect
ProgressDialogHide
' Guardado
End Sub

View File

@@ -26,6 +26,15 @@ Sub Class_Globals
Dim reqManager As DBRequestManager
Private cb_reprogramar As CheckBox
Dim reprogramar As Int = 0
Private camEx As CameraExClass
Dim frontCamera As Boolean = False
Private p_cam As Panel
Dim nombrefoto As String = "0"
Private p_camara As Panel
Private teclado As IME
Dim fototomada As String
Private b_foto As Button
End Sub
'You can add more parameters here.
@@ -52,6 +61,10 @@ Sub B4XPage_Appear
r_4.Checked = False
cb_reprogramar.Checked = False
p_camara.Width = Root.Width
p_camara.Height = Root.Height
p_camara.Visible = False
CallSubDelayed(Tracker, "Track")
CallSubDelayed(Tracker, "StartFLPSmall")
If Tracker.FLP.IsInitialized And Tracker.FLP.GetLastKnownLocation.IsInitialized Then 'Si tenemos "UltimaUbicaccionConocida" la usamos.
@@ -62,6 +75,11 @@ Sub B4XPage_Appear
End If
End Sub
Sub GPS_LocationChanged (Location1 As Location)
' LogColor($"Entrando a Cliente.GPS_LocationChanged"$, Colors.red)
If Tracker.FLP.GetLastKnownLocation.IsInitialized And Tracker.FLP.GetLastKnownLocation.Latitude <> 0 Then
@@ -265,4 +283,148 @@ Private Sub cb_reprogramar_CheckedChange(Checked As Boolean)
Else
reprogramar = 0
End If
End Sub
Private Sub InitializeCamera2
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_CAMERA)
Wait For B4XPage_PermissionResult (Permission As String, resultC As Boolean)
If resultC Then
camEx.Initialize(p_cam, frontCamera, Me, "Camera1")
frontCamera = camEx.Front
Log("inicializamos Camara")
Else
ToastMessageShow("No permission Camara!!!", True)
End If
End Sub
Sub Camera1_Ready (Success As Boolean)
Log("Camara ready")
If Success Then
camEx.SetJpegQuality(90)
camEx.SetContinuousAutoFocus
camEx.CommitParameters
camEx.StartPreview
Log(camEx.GetPreviewSize)
Else
ToastMessageShow("Cannot open camera.", True)
Log("Cannot open camera")
End If
End Sub
Sub Camera1_PictureTaken (Data()As Byte)
DateTime.DateFormat="ddMMyyyyHHmmss"
nombrefoto = DateTime.Now & "_FOTO1.png"
teclado.HideKeyboard
fototomada = nombrefoto
Log("tome foto")
Dim filename As String = fototomada
Dim Dirp As String = File.DirInternal
Dim Dir As String
Dim Dir2 As String
Try
File.MakeDir(Dirp,"/md")
Dir = "/md"
Log("creado en promotoria " & Dirp & Dir)
Catch
Dir = ""
Log("creado en raiz")
End Try
Try
File.MakeDir(Dirp & Dir,"/reduccion")
Dir2 = "/reduccion"
Log("creado en promotoria " & Dirp & Dir & Dir2)
Catch
Dir = ""
Log("creado en raiz")
End Try
camEx.SavePictureToFile(Data, Dirp&Dir, filename)
camEx.StartPreview 'restart preview
' ToastMessageShow("Picture saved." & CRLF & "File size: " & File.Size(Dir, filename) & Dir &"," & filename, True)
Log("Picture saved." & CRLF & "File size: " & File.Size(Dir, filename) & Dir &"," & filename)
Dim img As B4XBitmap = xui.LoadBitmapResize(File.DirInternal & Dir, filename, 225, 300, True)
Dim out As OutputStream = File.OpenOutput(File.DirInternal & Dir & Dir2, filename, False)
img.WriteToStream(out, 100, "PNG")
' foto4 = File.ReadBytes(File.DirInternal & Dir & Dir2, nombrefoto3)
out.Close
motivo = "CERRADO"
DateTime.DateFormat = "MM/dd/yyyy"
DateTime.TimeFormat="HHmmss"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c=Starter.skmt.ExecQuery("select CUENTA from cuentaa")
c.Position = 0
cuenta = c.GetString("CUENTA")
c=Starter.skmt.ExecQuery("select usuario from usuarioa")
c.Position = 0
usuario = c.GetString("USUARIO")
c.Close
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($"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_RUTA,NV_REPROGRAMAR,NV_FOTO) VALUES(?,?,?,?,?,?,?,?,?,?) ", Array As Object (cuenta,sDate & sTime, usuario, motivo,e_comm.text, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps,rutaactualizar,reprogramar,File.ReadBytes(File.DirInternal & Dir & Dir2, nombrefoto)))
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 PEDIDO WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA)")
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)"$)
p_camara.Visible = False
StopCamera2
B4XPages.ShowPage("Principal")
End Sub
Private Sub p_camara_Click
End Sub
Private Sub b_foto_Click
camEx.TakePicture
p_camara.Visible = False
End Sub
Private Sub StopCamera2
' Capturing = False
If camEx.IsInitialized Then
camEx.Release
End If
End Sub
Private Sub r_1_CheckedChange(Checked As Boolean)
InitializeCamera2
p_camara.Visible = True
Subs.centraPanel(p_cam,p_camara.Width)
p_camara.BringToFront
End Sub
Private Sub B4XPage_CloseRequest As ResumableSub
If p_camara.Visible Then
p_camara.Visible = False
StopCamera2
r_1.Checked = False
Else
B4XPages.ShowPage("Cliente")
End If
Return False
End Sub

View File

@@ -857,16 +857,16 @@ 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")
c = Starter.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON, NV_FOTO,NV_FOTO2, NV_REPROGRAMAR FROM NOVENTA")
D=Starter.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
foto1 = c.GetBlob("NV_FOTO")
Dim fotoenvio() As Byte = C.GetBlob("NV_FOTO2")
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_reparto_REPG_GUNA_VN"
cmd.Parameters = Array As Object(C.GetString("NV_CLIENTE"),C.GetString("NV_FECHA"),C.GetString("NV_USER"),C.GetString("NV_MOTIVO"),C.GetString("NV_COMM"),C.GetString("NV_LAT"),C.GetString("NV_LON"), ALMACEN, l_ruta.Text, C.GetString("NV_REPROGRAMAR"))
cmd.Name = "insert_reparto_REPG_GUNA_VN2"
cmd.Parameters = Array As Object(C.GetString("NV_CLIENTE"),C.GetString("NV_FECHA"),C.GetString("NV_USER"),C.GetString("NV_MOTIVO"),C.GetString("NV_COMM"),C.GetString("NV_LAT"),C.GetString("NV_LON"), ALMACEN, l_ruta.Text, C.GetString("NV_REPROGRAMAR"),fotoenvio)
reqManager.ExecuteCommand(cmd , "inst_noventa_")
Next
c.Close
@@ -1956,7 +1956,7 @@ Sub connecta_Click
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_ruta_re_REPG_GUNA_VN"
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text, imei)
cmd.Parameters = Array As Object()
' Log($"${ALMACEN}, ${e_ruta.text}, ${imei}"$)
reqManager.ExecuteQuery(cmd , 0, "ruta")
ToastMessageShow("Validando Conexión." , True)
@@ -2861,4 +2861,26 @@ Sub StartPrinter
cmp20.Connect(PairedDevices.Get(L1.Get(resimp)))
End If
End If
End Sub
Private Sub ImageView1_LongClick
' NOVENTA
c = Starter.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON, NV_FOTO,NV_FOTO2, NV_REPROGRAMAR FROM NOVENTA")
D=Starter.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim fotoenvia() As Byte = c.GetBlob("NV_FOTO")
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_reparto_REPG_GUNA_VN2"
cmd.Parameters = Array As Object(C.GetString("NV_CLIENTE"),C.GetString("NV_FECHA"),C.GetString("NV_USER"),C.GetString("NV_MOTIVO"),C.GetString("NV_COMM"),C.GetString("NV_LAT"),C.GetString("NV_LON"), ALMACEN, l_ruta.Text,fotoenvia)
reqManager.ExecuteCommand(cmd , "inst_noventa_")
Next
c.Close
End If
d.Position=0
cuantos_noventa = D.GetString("CUANTOS_NOVENTA")
d.Close
End Sub

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -19,6 +19,8 @@ Sub Process_Globals
Dim rutaMaxPoints As Int = 3000
Dim rutaHrsAtras As Int = 48
' Dim rutaInicioHoy As String = ""
Dim in As Intent
Dim intentUsado As Boolean = False
End Sub
'Pone el valor de phn.Model en la variable global "devModel"
@@ -41,6 +43,62 @@ Sub getPhnId As String 'ignore
Return devModel
End Sub
' Se revisa si hay una intención (intent) de abrir una base de datos y si es así, entonces se importa esa base de datos.
Sub importaBDDesdeWhatsApp
' Private tmpBDWA As Boolean = traeUsarIntentBDWA
Log("Revisamos intent de importar desde whatsapp")
Log(B4XPages.MainPage.intentUsado)
Log(in)
If Not(in.IsInitialized) Then in = B4XPages.GetNativeParent(B4XPages.MainPage).GetStartingIntent ' Si se usa esta funcion en Mainpage, se pone "Me" en lugar de B4XPages.MainPage.
If Not(B4XPages.MainPage.intentUsado) And in <> Null Then
' Log(in)
LogColor("Importamos base de datos desde Whatsapp.", Colors.blue)
B4XPages.MainPage.intentUsado = True
' Log(in.As(String))
If in.GetData <> Null Then
Dim XmlData As String
XmlData = in.GetData
Try
Dim OutStr As OutputStream = File.OpenOutput(File.DirInternal,"kmt.db",False)
Dim InStr As InputStream = File.OpenInput("ContentDir",XmlData)
File.Copy2(InStr,OutStr)
LogColor("BD copiada a interna.", Colors.Blue)
OutStr.Close
If in.As(String).Contains("whatsapp") Then ToastMessageShow("BD cargada desde Whatsapp", False)
Catch
Log(LastException)
End Try
' ExitApplication
' Starter.skmt.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'IMPORTAR_BD_WA'")
' Starter.skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('IMPORTAR_BD_WA', '${tmpBDWA}')"$)
Private a As Cursor = Starter.skmt.ExecQuery($"select CAT_VA_VALOR from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'APP_NAME'"$)
If a.RowCount > 0 Then
a.Position = 0
ToastMessageShow($"BD de "${a.GetString("CAT_VA_VALOR")}" cargada."$, True)
End If
a = Starter.skmt.ExecQuery($"select * from usuarioa"$)
If a.RowCount > 0 Then
a.Position = 0
B4XPages.MainPage.user.Text = a.GetString("USUARIO")
B4XPages.MainPage.pass.Text = a.GetString("PASS")
End If
End If
End If
End Sub
'Regresa si se debe de usar el intent de importar la base d datos desde Whatsapp.
Sub traeUsarIntentBDWA As Boolean 'ignore
Private BDWA As Boolean = False
Private x As Cursor = Starter.skmt.ExecQuery($"select CAT_VA_VALOR from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'IMPORTAR_BD_WA'"$)
If x.RowCount > 0 Then
x.Position = 0
If x.GetString("CAT_VA_VALOR") = "true" Then BDWA = True
End If
' Log($"cb_importarBDWA = ${BDWA}"$)
Return BDWA
End Sub
'Comprime y regresa un texto (str) en base64
Sub compress(str As String) As String 'ignore
'Requiere la libreria "CompressStrings"

File diff suppressed because one or more lines are too long

View File

@@ -94,6 +94,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=C_Cliente,b_cancel_pagare_Click,2995,2,C_Cliente,Class_Globals,1,0,C_Cliente,CheckBox1_CheckedChange,1976,0,C_Cliente,b_cxc_Click,1794,6,C_Cliente,cb_tipopago_SelectedIndexChanged,1788,0,C_Cheklist,Class_Globals,0,0,C_Cliente,b_acred_Click,1771,0,C_Cliente,b_abono_Click,2070,6,C_Principal,Class_Globals,0,0,B4XMainPage,B4XPage_Created,1304,0
NavigationStack=C_Cliente,esPagoACreditoGuardamosPagare,764,0,C_Cliente,b_cxc_Click,1822,0,C_Cliente,b_abono_Click,2157,6,C_Cliente,CreateListItem,1985,0,C_NoVenta,GUARDA_Click,176,0,C_NoVenta,Camera1_PictureTaken,378,0,C_Cliente,CheckBox1_CheckedChange,2000,6,Diseñador Visual,principal.bal,-100,1,C_Cliente,gest_Click,567,2,C_Principal,JobDone,1765,0,C_Principal,connecta_Click,1939,0
SelectedBuild=0
VisibleModules=2,16,4,5,6,7,9,30,29,27