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

@@ -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