mirror of
https://github.com/KeymonSoft/Guna_Reparto_Diseno_Viejo.git
synced 2026-04-20 14:19:14 +00:00
- VERSION 5.01.25
- Cambios para envio de mensaje por WhatsApp (incompletos)
This commit is contained in:
@@ -59,16 +59,47 @@ Sub Class_Globals
|
||||
Dim l_atiende2 As Label
|
||||
Dim DATOS As Button
|
||||
Dim Guardar As Button
|
||||
Dim NUEVO As Button
|
||||
Dim b_mapa As Button
|
||||
Private l_total As Label
|
||||
Private HIST As Button
|
||||
Dim PASA_IMP As String
|
||||
Private B_IMP As Button
|
||||
Dim total_cliente As String
|
||||
Dim CREDITO As String
|
||||
Dim limiteDeCredito As String = "0"
|
||||
Dim pagarePendiente As Boolean = False
|
||||
Private p_principal As Panel
|
||||
Private B_PASO2 As Button
|
||||
Private L_CANT As Label
|
||||
Private b_aceptaCredito As Button
|
||||
Private b_cancelaCredito As Button
|
||||
Private et_montoacredito As EditText
|
||||
Private l_limite As Label
|
||||
Private p_transPagares As Panel
|
||||
Private p_pagares As Panel
|
||||
Private total As String
|
||||
Private l_montoEfectivo As Label
|
||||
Private i_qr As B4XImageView
|
||||
Private p_qr As Panel
|
||||
Private b_cerrarqr As Button
|
||||
Private qr As QRGenerator
|
||||
Private l_numeroRegistrado As Label
|
||||
Private b_confirmar As Button
|
||||
Private NOTA As String = ""
|
||||
Private l_estaVenta As Label
|
||||
Private p_transPagare2 As Panel
|
||||
Private b_abonar As Button
|
||||
Private p_abonoPagare As Panel
|
||||
Private b_aceptaAbono As Button
|
||||
Private b_cancelaAbono As Button
|
||||
Private l_montoRestante As Label
|
||||
Private et_montoAbono As EditText
|
||||
Private Label15 As Label
|
||||
Private l_totalPagare As Label
|
||||
Private l_numRegistradoAbono As Label
|
||||
Private p_transAbonoPagare As Panel
|
||||
Private saldoPendiente As String
|
||||
Private l_tituloAbono As Label
|
||||
End Sub
|
||||
|
||||
'You can add more parameters here.
|
||||
@@ -83,6 +114,17 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
||||
g.Initialize("GPS")
|
||||
' Activity.LoadLayout("info_gral")
|
||||
Root.LoadLayout("cliente")
|
||||
p_transPagares.left = 0 : p_transPagares.Top = 0
|
||||
p_transPagares.Width = Root.Width : p_transPagares.Height = Root.Height
|
||||
p_transPagare2.left = 0 : p_transPagare2.Top = 0
|
||||
p_transPagare2.Width = Root.Width : p_transPagare2.Height = Root.Height
|
||||
p_transAbonoPagare.left = 0 : p_transAbonoPagare.Top = 0
|
||||
p_transAbonoPagare.Width = Root.Width : p_transAbonoPagare.Height = Root.Height
|
||||
Subs.centraPanel(p_pagares, Root.Width)
|
||||
Subs.centraPanel(p_qr, p_transPagare2.Width)
|
||||
Subs.centraPanel(p_abonoPagare, p_transAbonoPagare.Width)
|
||||
Subs.centraEtiqueta(l_tituloAbono, p_abonoPagare.Width)
|
||||
qr.Initialize(i_qr.mBase.Width)
|
||||
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)")
|
||||
s=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
|
||||
s.Position=0
|
||||
@@ -117,6 +159,8 @@ End Sub
|
||||
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
|
||||
|
||||
Sub B4XPage_Appear
|
||||
total = "0"
|
||||
et_montoacredito.Text = ""
|
||||
Subs.centraPanel(p_principal, Root.Width)
|
||||
Starter.skmt.Initialize(Starter.ruta,"kmt.db", True)
|
||||
reqManager.Initialize(Me, B4XPages.MainPage.SERVER)
|
||||
@@ -124,6 +168,8 @@ Sub B4XPage_Appear
|
||||
s=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
|
||||
s.Position=0
|
||||
c.Position=0
|
||||
l_montoEfectivo.Text = ""
|
||||
et_montoacredito.Text = ""
|
||||
la_cuenta.Text = c.GetString("CAT_CL_CODIGO")
|
||||
La_nombre.Text = c.GetString("CAT_CL_NOMBRE")
|
||||
NOMBRE = c.GetString("CAT_CL_NOMBRE")
|
||||
@@ -135,6 +181,8 @@ Sub B4XPage_Appear
|
||||
la_cp.Text = c.GetString("CAT_CL_CP")
|
||||
l_entre1.Text = c.GetString("CAT_CL_CALLE1")
|
||||
l_entre2.Text = c.GetString("CAT_CL_CALLE2")
|
||||
l_numeroRegistrado.Text = "Num. Registrado: " & c.GetString("CAT_CL_TELEFONO")
|
||||
l_numRegistradoAbono.Text = "Num. Registrado: " & c.GetString("CAT_CL_TELEFONO")
|
||||
B4XPages.MainPage.almacen = c.GetString("CAT_CL_IDALMACEN")
|
||||
If c.GetString("CAT_CL_ATIENDE1") <> Null And c.GetString("CAT_CL_ATIENDE1") <> "null" Then
|
||||
l_atiende.Text = c.GetString("CAT_CL_ATIENDE1")
|
||||
@@ -157,16 +205,40 @@ Sub B4XPage_Appear
|
||||
C.Close
|
||||
If Existe <> 0 Then
|
||||
c = Starter.skmt.ExecQuery("select SUM(HVD_CANT) AS PC_NOART, SUM(HVD_COSTO_TOT) AS PC_MONTO from HIST_VENTAS where HVD_CLIENTE in (Select CUENTA from cuentaa) and HVD_RECHAZO = 0 and hvd_codpromo <> HVD_PROID ")
|
||||
C.Position=0
|
||||
C.Position = 0
|
||||
L_CANT.Text = c.GetString("PC_NOART")
|
||||
l_total.Text = Round2(c.GetString("PC_MONTO"), 2)
|
||||
total = Round2(c.GetString("PC_MONTO"), 2)
|
||||
End If
|
||||
' Private cym As Map = Subs.traeCantYMonto2(Subs.traeCliente)
|
||||
' L_CANT.Text = cym.Get("cantidad")
|
||||
' l_total.Text = Round2(cym.Get("monto"), 2)
|
||||
|
||||
p_transPagares.Visible = False
|
||||
If CREDITO = "1" Then
|
||||
Msgbox("AVISO","SE TIENE QUE IMPRIMIR PAGARÉ") 'ignore
|
||||
' Msgbox("AVISO","SE TIENE QUE IMPRIMIR PAGARÉ") 'ignore
|
||||
Dim pa As ResultSet = Starter.skmt.ExecQuery($"select * from pagares where cliente = '${Subs.traeCliente}' and ruta_preventa = (select cat_cl_ruta from kmt_info where cat_cl_codigo = '${Subs.traeCliente}') order by nota desc limit 1"$)
|
||||
Log("-------------->> " & pa.RowCount)
|
||||
pagarePendiente = False 'Valor por default
|
||||
Do While pa.NextRow
|
||||
Log(pa.GetString("NOTA"))
|
||||
pagarePendiente = True
|
||||
saldoPendiente = pa.GetString("SALDO_PENDIENTE")
|
||||
l_totalPagare.Text = $"Total del pagaré: $${NumberFormat2(saldoPendiente, 1, 2, 2, True)}"$
|
||||
Loop
|
||||
If pagarePendiente Then
|
||||
Msgbox2Async("El cliente tiene un pagare pendiente, y es NECESARIO liquidarlo para realizar la entrega, ¿desea liquidarlo?", "PAGARÉ PENDIENTE", "SI", "", "NO", Null, True)
|
||||
Wait For Msgbox_Result (result As Int)
|
||||
If result=DialogResponse.POSITIVE Then
|
||||
liquidarPagare
|
||||
End If
|
||||
b_abonar.Visible = True
|
||||
Else
|
||||
b_abonar.Visible = False
|
||||
End If
|
||||
Private lc As ResultSet = Starter.skmt.ExecQuery($"select cat_cl_limitecredito from kmt_info where cat_cl_codigo = '${Subs.traeCliente}'"$)
|
||||
Do While lc.NextRow
|
||||
limiteDeCredito = lc.GetString("CAT_CL_LIMITECREDITO")
|
||||
Loop
|
||||
End If
|
||||
' Private cym As Map = Subs.traemosCantYMonto(clv_pedido)
|
||||
' L_CANT.Text = cym.Get("cantidad")
|
||||
@@ -189,10 +261,36 @@ Sub GPS_LocationChanged (Location1 As Location)
|
||||
End Sub
|
||||
|
||||
Sub ListView1_ItemLongClick (Position As Int, Value As Object)
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
Sub gest_Click
|
||||
Log($"${CREDITO}, ${pagarePendiente}"$)
|
||||
Msgbox2Async("¿La venta va a ser a credito?", "AVISO", "SI", "CANCELAR", "NO", Null, True)
|
||||
Wait For Msgbox_Result (result As Int)
|
||||
If result=DialogResponse.POSITIVE Then
|
||||
If CREDITO = 1 And Not(pagarePendiente) Then
|
||||
p_transPagares.BringToFront
|
||||
p_transPagares.Visible = True
|
||||
l_limite.Text = $"Límite de crédito: $${NumberFormat2(limiteDeCredito, 1,2,2,True)}"$
|
||||
l_estaVenta.Text = $"Esta venta: $${NumberFormat2(l_total.text, 1,2,2,True)}"$
|
||||
Else
|
||||
Msgbox2Async("El cliente no es sujeto a crédito o tiene pagares pendientes", "AVISO", "OK", "", "", Null, False)
|
||||
Wait For Msgbox_Result (result As Int)
|
||||
Log(result)
|
||||
If result=DialogResponse.POSITIVE Then
|
||||
' guardaVenta
|
||||
End If
|
||||
End If
|
||||
else if result=DialogResponse.NEGATIVE Then
|
||||
guardaVenta
|
||||
else if result=DialogResponse.CANCEL Then
|
||||
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Sub guardaVenta
|
||||
DateTime.DateFormat = "MM/dd/yyyy"
|
||||
sDate=DateTime.Date(DateTime.Now)
|
||||
sTime=DateTime.Time(DateTime.Now)
|
||||
@@ -215,7 +313,6 @@ Sub gest_Click
|
||||
d.Position = 0
|
||||
Dim fechaprev As String = d.GetString("HVD_FECHA")
|
||||
d.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, NV_IDALMACEN) VALUES (?,?,?,?,?,?,?,?) ", Array As Object (cuenta,sDate &" "& sTime, usuario, "ENTREGA","ENTREGA COMPLETA", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, B4XPages.MainPage.almacen))
|
||||
Starter.skmt.ExecNonQuery2("INSERT INTO REPARTO_GEO (CLIENTE, USUARIO, FECHA_PUNTEO, LATITUD, LONGITUD, ALMACEN, RUTA_REPARTO, RUTA_PREV, FECHA_PREVENTA, TIPO,ENVIO) VALUES(?,?,?,?,?,?,?,?,?,?,0)",Array As String (la_cuenta.Text, usuario, sDate &" "&sTime, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, B4XPages.MainPage.almacen, ruta, rutapre, fechaprev, "ENTREGADO"))
|
||||
@@ -250,7 +347,7 @@ Sub Guardar_Click
|
||||
B4XPages.ShowPage("Principal")
|
||||
End Sub
|
||||
|
||||
Sub NUEVO_Click
|
||||
Sub b_mapa_Click
|
||||
StartActivity(MAPA_CLIENTE)
|
||||
End Sub
|
||||
|
||||
@@ -450,8 +547,7 @@ Sub B_PASO2_Click
|
||||
usuario = c.GetString("USUARIO")
|
||||
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))
|
||||
|
||||
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))
|
||||
B4XPages.ShowPage("Principal")
|
||||
End Sub
|
||||
|
||||
@@ -493,8 +589,180 @@ Sub JobDone(Job As HttpJob)
|
||||
Next
|
||||
Next
|
||||
End If
|
||||
If resultado.Tag.As(String).IndexOf("insertaPagare_") > -1 Then
|
||||
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
|
||||
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
|
||||
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_cancelaCredito_Click
|
||||
p_transPagares.Visible = False
|
||||
End Sub
|
||||
|
||||
Private Sub b_aceptaCredito_Click
|
||||
|
||||
' almacen, RUTA, ruta_reparto, clienteid, monto, fecha (yyyy/mm/dd HH:mm:ss)
|
||||
' almacen, RUTA, ruta_reparto, clienteid, monto, nota, fecha
|
||||
|
||||
p_transPagares.Visible = False
|
||||
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 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)
|
||||
Starter.skmt.ExecNonQuery($"insert into PAGARES_NUEVOS (NOTA, CLIENTE, ALMACEN, MONTO, RUTA_PREVENTA, REPARTO, FECHA) values ('${NOTA}', '${cliente}', '${Subs.traeAlmacen}', '${et_montoacredito.text}', '${RUTA_PREVENTA}', '${Subs.traeRutaReparto}', '${sDate & " " & sTime}')"$)
|
||||
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "insertaPagareGunaRep"
|
||||
cmd.Parameters = Array As Object(Subs.traeAlmacen, RUTA_PREVENTA, Subs.traeRutaReparto, cliente, et_montoacredito.Text, NOTA, sDate & " " & sTime)
|
||||
reqManager.ExecuteCommand(cmd, $"insertaPagare_${NOTA}"$)
|
||||
|
||||
' guardaVenta
|
||||
End Sub
|
||||
|
||||
Private Sub p_transPagares_Click
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub et_montoacredito_TextChanged (Old As String, New As String)
|
||||
If New.Length > 0 And et_montoacredito.Text > limiteDeCredito Then ' Si el credito que quieren es mayor al autorizado, solo se permite el autorizado.
|
||||
et_montoacredito.Text = limiteDeCredito
|
||||
Else If New.Length > 0 And et_montoacredito.Text > total Then ' Si el credito que quieren es mayor al monto de venta, solo se permite el monto de venta.
|
||||
et_montoacredito.Text = total
|
||||
End If
|
||||
If et_montoacredito.Text <> "" And New.Length > 0 Then
|
||||
l_montoEfectivo.Text = $"Efectivo: $${NumberFormat2((total - et_montoacredito.text), 1, 2, 2, True)}"$
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub CrearQR(NOTA2 As String)
|
||||
Private texto As String = $"https://wa.me/5215637241894?text=PAGARE ${NOTA2}"$
|
||||
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_cerrarqr_Click
|
||||
i_qr.Clear
|
||||
' If y = 1 Then
|
||||
p_transPagare2.Visible = False
|
||||
' p_gestion.Visible = True
|
||||
' p_gestion.BringToFront
|
||||
' Else
|
||||
' p_qr.Visible = False
|
||||
' End If
|
||||
End Sub
|
||||
|
||||
Private Sub b_confirmar_Click
|
||||
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_abonar_Click
|
||||
liquidarPagare
|
||||
End Sub
|
||||
|
||||
Sub liquidarPagare
|
||||
p_transAbonoPagare.Visible = True
|
||||
p_transAbonoPagare.BringToFront
|
||||
End Sub
|
||||
|
||||
Private Sub p_transAbonoPagare_Click
|
||||
p_transAbonoPagare.Visible = False
|
||||
End Sub
|
||||
|
||||
Private Sub b_cancelaAbono_Click
|
||||
p_transAbonoPagare.Visible = False
|
||||
End Sub
|
||||
|
||||
Private Sub b_aceptaAbono_Click
|
||||
p_transAbonoPagare.Visible = False
|
||||
Private sn As Map
|
||||
sn.Initialize
|
||||
sn.Put("number","5215545815654")
|
||||
sn.Put("message","Hola")
|
||||
Dim jg As JSONGenerator
|
||||
jg.Initialize(sn)
|
||||
Log(jg)
|
||||
Dim HTTPTask As HttpJob
|
||||
HTTPTask.Initialize("HTTPTask", Me)
|
||||
HTTPTask.PostString("http://192.168.0.190:3018/v1/messages", jg.ToString)
|
||||
HTTPTask.GetRequest.SetContentType("application/json")
|
||||
HTTPTask.GetRequest.SetHeader("Accept","application/json")
|
||||
wait for (HTTPTask) JobDone(HTTPTask As HttpJob)
|
||||
If HTTPTask.Success Then
|
||||
'Json.Initialize(HTTPTask.GetString)
|
||||
Log("1:" & HTTPTask.GetString)
|
||||
Log("2:" & HTTPTask.ErrorMessage)
|
||||
End If
|
||||
HTTPTask.Release
|
||||
End Sub
|
||||
|
||||
Private Sub et_montoAbono_TextChanged (Old As String, New As String)
|
||||
Private cs As CSBuilder
|
||||
cs.Initialize
|
||||
If New.Length > 0 And et_montoAbono.Text > saldoPendiente Then ' Si el credito que quieren es mayor al autorizado, solo se permite el autorizado.
|
||||
et_montoAbono.Text = saldoPendiente
|
||||
End If
|
||||
If et_montoAbono.Text <> "" And New.Length > 0 Then
|
||||
Private msg As String = ""
|
||||
If (saldoPendiente - et_montoAbono.text) > 0 Then
|
||||
b_aceptaAbono.Text = "Abonar"
|
||||
Private cd1 As ColorDrawable
|
||||
cd1.Initialize(Colors.RGB(223, 163, 0), 10dip)
|
||||
b_aceptaAbono.Background = cd1
|
||||
l_montoRestante.Text = cs.Color(Colors.black).Size(12).append($"Restan: $${NumberFormat2((saldoPendiente - et_montoAbono.text), 1, 2, 2, True)} ${msg} "$).pop.color(Colors.red).Append(CRLF & "¡No se puede realizar la entrega!").PopAll
|
||||
Else
|
||||
Private cd1 As ColorDrawable
|
||||
cd1.Initialize(Colors.RGB(0, 174, 0), 10dip)
|
||||
b_aceptaAbono.Background = cd1
|
||||
b_aceptaAbono.Text = "Liquidar"
|
||||
l_montoRestante.Text = cs.color(Colors.green).Append("¡Listo para liquiar!").PopAll
|
||||
End If
|
||||
|
||||
' l_montoRestante.Text = $"Restan: $${NumberFormat2((saldoPendiente - et_montoAbono.text), 1, 2, 2, True)} ${msg}"$
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub p_abonoPagare_Click
|
||||
|
||||
End Sub
|
||||
Reference in New Issue
Block a user