From 9d9cb3d2a423465677353ffa25724a3664af732d Mon Sep 17 00:00:00 2001 From: Javier Date: Thu, 4 Dec 2025 10:49:23 -0600 Subject: [PATCH] verion final --- B4A/B4XMainPage.bas | 1 + B4A/C_Cliente.bas | 295 +++++++-- B4A/C_Clientes.bas | 37 +- B4A/C_Principal.bas | 351 ++++++++++- B4A/C_Productosdev.bas | 1193 +++++++++++++++++++++---------------- B4A/C_RespaldoDiario.bas | 3 +- B4A/Files/amigos.jpg | Bin 24823 -> 20501 bytes B4A/Files/cliente.bal | Bin 48052 -> 51378 bytes B4A/Files/clientes.bal | Bin 7890 -> 7889 bytes B4A/Files/cuentamerma.bal | Bin 0 -> 6587 bytes B4A/Files/principal.bal | Bin 58624 -> 61716 bytes B4A/Subs.bas | 94 +++ B4A/TG.b4a | 1026 +++++++++++++++---------------- B4A/TG.b4a.meta | 12 +- 14 files changed, 1910 insertions(+), 1102 deletions(-) create mode 100644 B4A/Files/cuentamerma.bal diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index 19543d3..da62c2f 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -225,6 +225,7 @@ Private Sub B4XPage_Created (Root1 As B4XView) skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PICK_CIEGO (PC_ID_PROD TEXT, PC_NOM_PROD TEXT, PC_CANT TEXT, PC_ALMACEN TEXT, PC_RUTA TEXT, PC_FECHA TEXT)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS ENV_MONTO_LIQ (EML_MONTO TEXT, EML_ALMACEN TEXT, EML_RUTA TEXT, EML_USUARIO TEXT, EML_FECHA_PED TEXT)") Subs.agregaColumna("PEDIDO", "PE_ENVIO_OK", "INT") + Subs.agregaColumna("PEDIDO", "PE_FOLIOFAC", "INT") Subs.agregaColumna("PEDIDO", "PE_CANTC", "TEXT") Subs.agregaColumna("PEDIDO", "PE_BCAJAS", "TEXT") Subs.agregaColumna("NOVENTA", "NV_ENVIO_OK", "INT") diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index cadbc39..85072fa 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -179,6 +179,10 @@ Sub Class_Globals Private b_acepgiro As Button Dim giros As String Private Button1 As Button + Private p_folio As Panel + Private et_folio As EditText + Private c_acep_folio As Button + Private c_cancelfolio As Button End Sub 'You can add more parameters here. @@ -942,72 +946,160 @@ End Sub Sub GUADAVENTA2 Log(B4XPages.MainPage.recarga) If B4XPages.MainPage.recarga = "0" Then - DateTime.DateFormat = "MM/dd/yyyy" - sDate=DateTime.Date(DateTime.Now) - sTime=DateTime.Time(DateTime.Now) - c=B4XPages.MainPage.skmt.ExecQuery("Select CUENTA from cuentaa") - c.Position=0 - clie_id = c.GetString("CUENTA") - c.Close - c=B4XPages.MainPage.skmt.ExecQuery("select USUARIO from usuarioa") - c.Position=0 - usuario = c.GetString("USUARIO") - c.Close - c=B4XPages.MainPage.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, COUNT(*) AS CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") - c.Position=0 - ' Log("xxxxxxxxxxxxxxx " & c.GetString("CUANTOS")) - If c.GetString("CUANTOS") > 0 Then - Private cbFactura As Int = 0 - If cb_factura.Checked Then cbFactura = 1 - B4XPages.MainPage.skmt.ExecNonQuery("delete from NOVENTA where NV_CLIENTE In (select cuenta from cuentaa)") - B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") - B4XPages.MainPage.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO, PC_LON, PC_LAT, PC_ENVIO_OK, PC_FACTURA) VALUES (?,?,?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps, 0, cbFactura)) - B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") - B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info2 set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") - End If - c.Close - DateTime.TimeFormat = "HHmmss" - sTime=DateTime.Time(DateTime.Now) - B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_STORE set HSS_OUT = ? where HSS_OUT = 0 AND HSS_CODIGO In (select cuenta from cuentaa)", Array As Object(sTime)) - ' B4XPages.MainPage.skmt.ExecNonQuery("UPDATE HIST_STAY_STORE set HSS_TOT = HSS_OUT - HSS_IN where HSS_CODIGO In (select cuenta from cuentaa)") - Try - c=B4XPages.MainPage.skmt.ExecQuery(" Select (substr(HSS_OUT,1,2) - substr(HSS_IN,1,2)) - Case when (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) < 0 Then 1 Else 0 end HORAS_TOTALES, " & _ + + + + Dim foliofac2 As Cursor=B4XPages.MainPage.skmt.ExecQuery("SELECT * FROM PEDIDO WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) and PE_DESCRAGA = 1 AND PE_FOLIOFAC IS NULL") + If foliofac2.RowCount > 0 Then + + + + Dim foliofac As Cursor=B4XPages.MainPage.skmt.ExecQuery("SELECT sum(IFNULL(PE_DESCRAGA,0)) AS PE_DESCRAGA FROM PEDIDO WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") + foliofac.Position = 0 + If foliofac.GetInt("PE_DESCRAGA") = 0 Then + + + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + c=B4XPages.MainPage.skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + c.Close + c=B4XPages.MainPage.skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + c.Close + c=B4XPages.MainPage.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, COUNT(*) AS CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + c.Position=0 + ' Log("xxxxxxxxxxxxxxx " & c.GetString("CUANTOS")) + If c.GetString("CUANTOS") > 0 Then + Private cbFactura As Int = 0 + If cb_factura.Checked Then cbFactura = 1 + B4XPages.MainPage.skmt.ExecNonQuery("delete from NOVENTA where NV_CLIENTE In (select cuenta from cuentaa)") + B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") + B4XPages.MainPage.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO, PC_LON, PC_LAT, PC_ENVIO_OK, PC_FACTURA) VALUES (?,?,?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps, 0, cbFactura)) + B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") + B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info2 set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") + End If + c.Close + DateTime.TimeFormat = "HHmmss" + sTime=DateTime.Time(DateTime.Now) + B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_STORE set HSS_OUT = ? where HSS_OUT = 0 AND HSS_CODIGO In (select cuenta from cuentaa)", Array As Object(sTime)) + ' B4XPages.MainPage.skmt.ExecNonQuery("UPDATE HIST_STAY_STORE set HSS_TOT = HSS_OUT - HSS_IN where HSS_CODIGO In (select cuenta from cuentaa)") + Try + c=B4XPages.MainPage.skmt.ExecQuery(" Select (substr(HSS_OUT,1,2) - substr(HSS_IN,1,2)) - Case when (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) < 0 Then 1 Else 0 end HORAS_TOTALES, " & _ "Case when (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) < 0 Then (substr(HSS_OUT,3,2) + 60 - substr(HSS_IN,3,2)) " & _ " Else (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) End - Case when (substr(HSS_OUT,5,2) - substr(HSS_IN,5,2)) < 0 Then 1 Else 0 end MINUTOS_TOTALES, " & _ "Case when (substr(HSS_OUT,5,2) - substr(HSS_IN,5,2)) < 0 Then (substr(HSS_OUT,5,2) + 60 - substr(HSS_IN,5,2)) " & _ " Else (substr(HSS_OUT,5,2) - substr(HSS_IN,5,2)) end SEGUNDOS_TOTALES " & _ " from HIST_STAY_STORE where HSS_CODIGO In (Select cuenta from cuentaa) ") - c.Position = 0 - stay_hh = c.GetString("HORAS_TOTALES") * 60 * 60 - stay_mi = c.GetString("MINUTOS_TOTALES") * 60 - stay_ss = c.GetString("SEGUNDOS_TOTALES") - B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_STORE set HSS_TOT = ? where HSS_CODIGO In (select cuenta from cuentaa)", Array As Object(stay_hh + stay_mi + stay_ss)) - B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_OUT set HSO_FIN = ? ", Array As Object(sTime)) - c.Close - Catch - ToastMessageShow(".",True) - End Try + c.Position = 0 + stay_hh = c.GetString("HORAS_TOTALES") * 60 * 60 + stay_mi = c.GetString("MINUTOS_TOTALES") * 60 + stay_ss = c.GetString("SEGUNDOS_TOTALES") + B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_STORE set HSS_TOT = ? where HSS_CODIGO In (select cuenta from cuentaa)", Array As Object(stay_hh + stay_mi + stay_ss)) + B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_OUT set HSO_FIN = ? ", Array As Object(sTime)) + c.Close + Catch + ToastMessageShow(".",True) + End Try - skmt.ExecNonQuery2("update PEDIDO_INICIO_FINAL set PIF_HORA_FINAL = ? where PIF_CLIENTE = ? and PIF_HORA_FINAL = 0", Array As Object (DateTime.Now, la_cuenta.Text)) - ' LogColor($"actualizamos "${la_cuenta.text}, hora_final=${DateTime.now}"$,Colors.Red) - Subs.actualizaTET(la_cuenta.text) - DateTime.TimeFormat = "HH:mm:ss" + skmt.ExecNonQuery2("update PEDIDO_INICIO_FINAL set PIF_HORA_FINAL = ? where PIF_CLIENTE = ? and PIF_HORA_FINAL = 0", Array As Object (DateTime.Now, la_cuenta.Text)) + ' LogColor($"actualizamos "${la_cuenta.text}, hora_final=${DateTime.now}"$,Colors.Red) + Subs.actualizaTET(la_cuenta.text) + DateTime.TimeFormat = "HH:mm:ss" ' mandaPendientes 'LO COMENTAMOS PARA PRUEBAS, ACTIVAR AL FINAL!!! - mandapiezas - B4XPages.MainPage.productos.reiniciarlistaProds = True - B4XPages.MainPage.productos.prodsMap.Initialize - B4XPages.MainPage.promos.promosMap.Initialize - Guardar.Enabled = True - gest.Enabled = True - b_cxc.Enabled = True - Tar.Enabled = True - Tels.Enabled = True - b_ventaabordo.Enabled = True - HIST.Enabled = True - banderaimp = 0 - mandaPendientePagare - B4XPages.ShowPage("Principal") + mandapiezas + B4XPages.MainPage.productos.reiniciarlistaProds = True + B4XPages.MainPage.productos.prodsMap.Initialize + B4XPages.MainPage.promos.promosMap.Initialize + Guardar.Enabled = True + gest.Enabled = True + b_cxc.Enabled = True + Tar.Enabled = True + Tels.Enabled = True + b_ventaabordo.Enabled = True + HIST.Enabled = True + banderaimp = 0 + mandaPendientePagare + B4XPages.ShowPage("Principal") + Else + p_folio.Visible = True + p_folio.Width = Root.Width + p_folio.Height = Root.Height + + End If + Else + + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + c=B4XPages.MainPage.skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + c.Close + c=B4XPages.MainPage.skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + c.Close + c=B4XPages.MainPage.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, COUNT(*) AS CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + c.Position=0 + ' Log("xxxxxxxxxxxxxxx " & c.GetString("CUANTOS")) + If c.GetString("CUANTOS") > 0 Then + Private cbFactura As Int = 0 + If cb_factura.Checked Then cbFactura = 1 + B4XPages.MainPage.skmt.ExecNonQuery("delete from NOVENTA where NV_CLIENTE In (select cuenta from cuentaa)") + B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") + B4XPages.MainPage.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO, PC_LON, PC_LAT, PC_ENVIO_OK, PC_FACTURA) VALUES (?,?,?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps, 0, cbFactura)) + B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") + B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info2 set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") + End If + c.Close + DateTime.TimeFormat = "HHmmss" + sTime=DateTime.Time(DateTime.Now) + B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_STORE set HSS_OUT = ? where HSS_OUT = 0 AND HSS_CODIGO In (select cuenta from cuentaa)", Array As Object(sTime)) + ' B4XPages.MainPage.skmt.ExecNonQuery("UPDATE HIST_STAY_STORE set HSS_TOT = HSS_OUT - HSS_IN where HSS_CODIGO In (select cuenta from cuentaa)") + Try + c=B4XPages.MainPage.skmt.ExecQuery(" Select (substr(HSS_OUT,1,2) - substr(HSS_IN,1,2)) - Case when (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) < 0 Then 1 Else 0 end HORAS_TOTALES, " & _ + "Case when (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) < 0 Then (substr(HSS_OUT,3,2) + 60 - substr(HSS_IN,3,2)) " & _ + " Else (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) End - Case when (substr(HSS_OUT,5,2) - substr(HSS_IN,5,2)) < 0 Then 1 Else 0 end MINUTOS_TOTALES, " & _ + "Case when (substr(HSS_OUT,5,2) - substr(HSS_IN,5,2)) < 0 Then (substr(HSS_OUT,5,2) + 60 - substr(HSS_IN,5,2)) " & _ + " Else (substr(HSS_OUT,5,2) - substr(HSS_IN,5,2)) end SEGUNDOS_TOTALES " & _ + " from HIST_STAY_STORE where HSS_CODIGO In (Select cuenta from cuentaa) ") + c.Position = 0 + stay_hh = c.GetString("HORAS_TOTALES") * 60 * 60 + stay_mi = c.GetString("MINUTOS_TOTALES") * 60 + stay_ss = c.GetString("SEGUNDOS_TOTALES") + B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_STORE set HSS_TOT = ? where HSS_CODIGO In (select cuenta from cuentaa)", Array As Object(stay_hh + stay_mi + stay_ss)) + B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_OUT set HSO_FIN = ? ", Array As Object(sTime)) + c.Close + Catch + ToastMessageShow(".",True) + End Try + + skmt.ExecNonQuery2("update PEDIDO_INICIO_FINAL set PIF_HORA_FINAL = ? where PIF_CLIENTE = ? and PIF_HORA_FINAL = 0", Array As Object (DateTime.Now, la_cuenta.Text)) + ' LogColor($"actualizamos "${la_cuenta.text}, hora_final=${DateTime.now}"$,Colors.Red) + Subs.actualizaTET(la_cuenta.text) + DateTime.TimeFormat = "HH:mm:ss" + +' mandaPendientes 'LO COMENTAMOS PARA PRUEBAS, ACTIVAR AL FINAL!!! + mandapiezas + B4XPages.MainPage.productos.reiniciarlistaProds = True + B4XPages.MainPage.productos.prodsMap.Initialize + B4XPages.MainPage.promos.promosMap.Initialize + Guardar.Enabled = True + gest.Enabled = True + b_cxc.Enabled = True + Tar.Enabled = True + Tels.Enabled = True + b_ventaabordo.Enabled = True + HIST.Enabled = True + banderaimp = 0 + mandaPendientePagare + B4XPages.ShowPage("Principal") + End If Else If B4XPages.MainPage.recarga = "1" Then DateTime.DateFormat = "MM/dd/yyyy" sDate=DateTime.Date(DateTime.Now) @@ -1069,6 +1161,7 @@ Sub GUADAVENTA2 B4XPages.ShowPage("login") B4XPages.MainPage.recarga = "0" End If + End Sub Sub NUEVO_Click @@ -3022,4 +3115,90 @@ Private Sub Button1_Click B4XPages.ShowPage("Productosdev") ' B4XPages.ShowPage("Productos") +End Sub + +Private Sub c_cancelfolio_Click + p_folio.Visible = False +End Sub + +Private Sub c_acep_folio_Click + If et_folio.Text <> "" Then + + B4XPages.MainPage.skmt.ExecNonQuery($"UPDATE pedido SET PE_FOLIOFAC = '${et_folio.Text}' WHERE PE_CLIENTE In (select cuenta from cuentaa) AND PE_DESCRAGA = '1'"$) + et_folio.Text = "" + p_folio.Visible = False + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + c=B4XPages.MainPage.skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + c.Close + c=B4XPages.MainPage.skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + c.Close + c=B4XPages.MainPage.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, COUNT(*) AS CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + c.Position=0 + ' Log("xxxxxxxxxxxxxxx " & c.GetString("CUANTOS")) + If c.GetString("CUANTOS") > 0 Then + Private cbFactura As Int = 0 + If cb_factura.Checked Then cbFactura = 1 + B4XPages.MainPage.skmt.ExecNonQuery("delete from NOVENTA where NV_CLIENTE In (select cuenta from cuentaa)") + B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") + B4XPages.MainPage.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO, PC_LON, PC_LAT, PC_ENVIO_OK, PC_FACTURA) VALUES (?,?,?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps, 0, cbFactura)) + B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") + B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info2 set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") + End If + c.Close + DateTime.TimeFormat = "HHmmss" + sTime=DateTime.Time(DateTime.Now) + B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_STORE set HSS_OUT = ? where HSS_OUT = 0 AND HSS_CODIGO In (select cuenta from cuentaa)", Array As Object(sTime)) + ' B4XPages.MainPage.skmt.ExecNonQuery("UPDATE HIST_STAY_STORE set HSS_TOT = HSS_OUT - HSS_IN where HSS_CODIGO In (select cuenta from cuentaa)") + Try + c=B4XPages.MainPage.skmt.ExecQuery(" Select (substr(HSS_OUT,1,2) - substr(HSS_IN,1,2)) - Case when (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) < 0 Then 1 Else 0 end HORAS_TOTALES, " & _ + "Case when (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) < 0 Then (substr(HSS_OUT,3,2) + 60 - substr(HSS_IN,3,2)) " & _ + " Else (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) End - Case when (substr(HSS_OUT,5,2) - substr(HSS_IN,5,2)) < 0 Then 1 Else 0 end MINUTOS_TOTALES, " & _ + "Case when (substr(HSS_OUT,5,2) - substr(HSS_IN,5,2)) < 0 Then (substr(HSS_OUT,5,2) + 60 - substr(HSS_IN,5,2)) " & _ + " Else (substr(HSS_OUT,5,2) - substr(HSS_IN,5,2)) end SEGUNDOS_TOTALES " & _ + " from HIST_STAY_STORE where HSS_CODIGO In (Select cuenta from cuentaa) ") + c.Position = 0 + stay_hh = c.GetString("HORAS_TOTALES") * 60 * 60 + stay_mi = c.GetString("MINUTOS_TOTALES") * 60 + stay_ss = c.GetString("SEGUNDOS_TOTALES") + B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_STORE set HSS_TOT = ? where HSS_CODIGO In (select cuenta from cuentaa)", Array As Object(stay_hh + stay_mi + stay_ss)) + B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_OUT set HSO_FIN = ? ", Array As Object(sTime)) + c.Close + Catch + ToastMessageShow(".",True) + End Try + + skmt.ExecNonQuery2("update PEDIDO_INICIO_FINAL set PIF_HORA_FINAL = ? where PIF_CLIENTE = ? and PIF_HORA_FINAL = 0", Array As Object (DateTime.Now, la_cuenta.Text)) + ' LogColor($"actualizamos "${la_cuenta.text}, hora_final=${DateTime.now}"$,Colors.Red) + Subs.actualizaTET(la_cuenta.text) + DateTime.TimeFormat = "HH:mm:ss" + +' mandaPendientes 'LO COMENTAMOS PARA PRUEBAS, ACTIVAR AL FINAL!!! + mandapiezas + B4XPages.MainPage.productos.reiniciarlistaProds = True + B4XPages.MainPage.productos.prodsMap.Initialize + B4XPages.MainPage.promos.promosMap.Initialize + Guardar.Enabled = True + gest.Enabled = True + b_cxc.Enabled = True + Tar.Enabled = True + Tels.Enabled = True + b_ventaabordo.Enabled = True + HIST.Enabled = True + banderaimp = 0 + mandaPendientePagare + B4XPages.ShowPage("Principal") + + Else + MsgboxAsync("Captura un folio valido.","Atención") + End If +End Sub + +Private Sub p_folio_Click + End Sub \ No newline at end of file diff --git a/B4A/C_Clientes.bas b/B4A/C_Clientes.bas index 7f0054c..2433353 100644 --- a/B4A/C_Clientes.bas +++ b/B4A/C_Clientes.bas @@ -92,18 +92,33 @@ Sub B4XPage_Appear For i = 0 To c.RowCount - 1 c.Position = i CustomListView1.Add(CreateListItem(c.GetString("CAT_CL_NOMBRE"),c.GetString("CAT_CL_CALLE"),c.GetString("CAT_CL_CODIGO")),i) - d = B4XPages.MainPage.skmt.ExecQuery($"select CLIENTE FROM ABONOSP WHERE CLIENTE = '${c.GetString("CAT_CL_CODIGO")}'"$) - If d.RowCount = 0 Then - cxc.Visible = False - Else - cxc.Visible = True - End If - - d = B4XPages.MainPage.skmt.ExecQuery($"select IFNULL(CAT_CL_BCREDITO,0) AS CAT_CL_BCREDITO FROM kmt_info WHERE CAT_CL_CODIGO = '${c.GetString("CAT_CL_CODIGO")}'"$) -' LogColor(d.RowCount,Colors.Blue) +' d = B4XPages.MainPage.skmt.ExecQuery($"select CLIENTE FROM ABONOSP WHERE CLIENTE = '${c.GetString("CAT_CL_CODIGO")}'"$) +' If d.RowCount = 0 Then +' cxc.Visible = False +' Else +' cxc.Visible = True +' End If +' +' d = B4XPages.MainPage.skmt.ExecQuery($"select IFNULL(CAT_CL_BCREDITO,0) AS CAT_CL_BCREDITO FROM kmt_info WHERE CAT_CL_CODIGO = '${c.GetString("CAT_CL_CODIGO")}'"$) +'' LogColor(d.RowCount,Colors.Blue) +' If d.RowCount > 0 Then +' d.Position = 0 +' If d.GetString("CAT_CL_BCREDITO") = "1" Then +' CREDITO.Visible = True +' Else +' CREDITO.Visible = False +' End If +' d.Close +' Else +' CREDITO.Visible = False +' End If + + d = B4XPages.MainPage.skmt.ExecQuery($"select PE_DESCRAGA FROM PEDIDO WHERE PE_CLIENTE = '${c.GetString("CAT_CL_CODIGO")}' ORDER BY PE_DESCRAGA ASC"$) + ' LogColor(d.RowCount,Colors.Blue) If d.RowCount > 0 Then d.Position = 0 - If d.GetString("CAT_CL_BCREDITO") = "1" Then + If d.GetString("PE_DESCRAGA") = "1" Then + Log("aQUI") CREDITO.Visible = True Else CREDITO.Visible = False @@ -112,6 +127,8 @@ Sub B4XPage_Appear Else CREDITO.Visible = False End If + + Next If c.RowCount>0 Then For i=0 To c.RowCount -1 diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index bb61273..d83f9fa 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -20,6 +20,7 @@ Sub Class_Globals Dim trabajar As Button ' Dim lat_gps, lon_gps As String Dim c As Cursor + Dim a As Cursor Dim d As Cursor Dim b As Cursor Dim e As Cursor @@ -249,6 +250,10 @@ Sub Class_Globals Private b_regreso As Button Private b_productos As Button + Private L_CANT_PCIK As Label + Private et_merma As EditText + Private CheckBox1 As CheckBox + Private b_terpc As Button End Sub 'You can add more parameters here. @@ -719,6 +724,82 @@ End Sub Sub Subir_Click + Starter.skmt.ExecNonQuery("delete from CUENTAA") + Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object("63403")) + + Subs.panelVisible(P_CIEGO,0,0) + P_CIEGO.Width = Root.Width + P_CIEGO.Height = Root.Height + CLV_PICK_CIEGO.Clear + Private abor As Cursor = Starter.skmt.ExecQuery($"SELECT CAT_GP_ALMACEN, CAT_GP_NOMBRE, CAT_GP_ID, ifnull(PC_CANT,0) AS PC_CAN FROM CAT_GUNAPROD2 INNER JOIN PICK_CIEGO ON PC_ID_PROD = CAT_GP_ID WHERE CAT_GP_ALMACEN > 0 GROUP BY CAT_GP_ID order by CAT_GP_NOMBRE asc "$) + If abor.RowCount > 0 Then + + For fgfg = 0 To abor.RowCount - 1 + abor.Position = fgfg + + CLV_PICK_CIEGO.Add(CreateListItem(abor.GetString("CAT_GP_ID"),abor.GetString("CAT_GP_NOMBRE"), abor.GetString("PC_CAN"), abor.GetString("CAT_GP_ALMACEN")),fgfg) + + Next + + + Private abor3 As Cursor = Starter.skmt.ExecQuery($"SELECT CAT_GP_ALMACEN, CAT_GP_NOMBRE, CAT_GP_ID FROM CAT_GUNAPROD2 WHERE CAT_GP_ALMACEN > 0 GROUP BY CAT_GP_ID order by CAT_GP_NOMBRE asc "$) + + For tyty = 0 To abor3.RowCount - 1 + abor3.Position = tyty + CLV_PICK_CIEGO.Add(CreateListItem2(abor3.GetString("CAT_GP_ID"), abor3.GetString("CAT_GP_NOMBRE"), abor3.GetString("CAT_GP_ALMACEN")),tyty) + Next + + + + Else If abor.RowCount = 0 Then + + Private abor2 As Cursor = Starter.skmt.ExecQuery($"SELECT CAT_GP_ALMACEN, CAT_GP_NOMBRE, CAT_GP_ID FROM CAT_GUNAPROD2 WHERE CAT_GP_ALMACEN > 0 AND CAT_GP_ID NOT IN (SELECT PC_ID_PROD FROM PICK_CIEGO) GROUP BY CAT_GP_ID order by CAT_GP_NOMBRE asc "$) + + For tyty = 0 To abor2.RowCount - 1 + abor2.Position = tyty + CLV_PICK_CIEGO.Add(CreateListItem2(abor2.GetString("CAT_GP_ID"), abor2.GetString("CAT_GP_NOMBRE"), abor2.GetString("CAT_GP_ALMACEN")),tyty) + Next + + End If + +End Sub + +Sub CreateListItem(Id_prod As String, Prod As String,cant As String,cantreal As String) As Panel + Dim pa As B4XView = xui.CreatePanel("") + pa.SetLayoutAnimated(0, 0, 0, 1, 10) + pa.LoadLayout("PANEL_PICK_CIEGO") + pa.Height = 220dip + pa.Width = 298dip + 'pa.Width = clv_orden.GetBase.Width + L_PICK_CIEGO.Text = Id_prod & CRLF & Prod + L_PICK_CIEGO.TextSize = 15 +' L_PICK_CIEGO.Gravity = Bit.Or(Gravity.CENTER_VERTICAL, Gravity.CENTER_HORIZONTAL) + ET_PICK_CIEGO.Text = cant + L_CANT_PCIK.Text = cantreal + 'cxc.Id_prod = mostrar3 + 'Log(pa.Width) + Return pa +End Sub + +Sub CreateListItem2(Id_prod As String, Prod As String,cantreal As String) As Panel + Dim pa As B4XView = xui.CreatePanel("") + pa.SetLayoutAnimated(0, 0, 0, 1, 10) + pa.LoadLayout("cuentamerma") + pa.Height = 220dip + pa.Width = 298dip + 'pa.Width = clv_orden.GetBase.Width + L_PICK_CIEGO.Text = Id_prod & CRLF & Prod + L_PICK_CIEGO.TextSize = 15 +' L_PICK_CIEGO.Gravity = Bit.Or(Gravity.CENTER_VERTICAL, Gravity.CENTER_HORIZONTAL) + L_CANT_PCIK.Text = cantreal + 'cxc.Id_prod = mostrar3 + 'Log(pa.Width) + Return pa +End Sub + + +Sub Envioinfo + CARGA = "SUBIR" p_mandaInfo.Width = Root.Width p_mandaInfo.Height = Root.Height @@ -787,7 +868,7 @@ Sub Subir_Click ' Next ' End If ' c.Close -' + ' ' c=B4XPages.MainPage.skmt.ExecQuery("SELECT CAT_CL_NUM_SERIEFISICO, CAT_CL_CODIGO, CAT_CL_LONG, CAT_CL_LAT, CAT_CL_FOTO FROM kmt_info where CAT_CL_NUM_SERIEFISICO IS NOT NULL") ' If c.RowCount>0 Then ' For i=0 To c.RowCount -1 @@ -917,7 +998,7 @@ Sub Subir_Click ' Log(c.GetString("PE_CEDIS")&", "&ALMACEN&", "&c.GetString("PE_COSTO_TOT")&", "&c.GetString("PE_COSTOU")&", "&c.GetString("PE_CANT")&", "&c.GetString("PE_PRONOMBRE")&", "&c.GetString("PE_PROID")&", "&c.GetString("PE_CLIENTE")&", "&c.GetString("PE_FECHA")&", "&c.GetString("PE_USUARIO")&", "&Subs.traeRuta2(c.GetString("PE_CLIENTE"))&", "& c.GetString("PE_COSTO_SIN")&", "&c.GetString("PE_DESC")&", "&c.GetString("PE_FOLIO")&", "& ALMACEN) If c.GetString("PE_FOLIO") = "PREVENTA_CONTADO" Then cmd.Parameters = Array As Object(c.GetString("PE_CEDIS"),c.GetString("PE_CEDIS"),ALMACEN,c.GetString("PE_COSTO_TOT"),c.GetString("PE_COSTOU"),c.GetString("PE_CANT"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CLIENTE"),c.GetString("PE_FECHA"),c.GetString("PE_USUARIO"),Subs.traeRuta2(c.GetString("PE_CLIENTE")), c.GetString("PE_COSTO_SIN"),c.GetString("PE_DESC"),"PREVENTA") - Else If c.GetString("PE_FOLIO") = "PREVENTA_CREDITO" Then + Else If c.GetString("PE_FOLIO") = "PREVENTA_CREDITO" Then cmd.Parameters = Array As Object(c.GetString("PE_CEDIS"),c.GetString("PE_CEDIS"),ALMACEN,c.GetString("PE_COSTO_TOT"),c.GetString("PE_COSTOU"),c.GetString("PE_CANT"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CLIENTE"),c.GetString("PE_FECHA"),c.GetString("PE_USUARIO"),Subs.traeRuta2(c.GetString("PE_CLIENTE")), c.GetString("PE_COSTO_SIN"),c.GetString("PE_DESC"),"PREVENTA") Else If c.GetString("PE_FOLIO") = "ABORDO" Then cmd.Parameters = Array As Object(c.GetString("PE_CEDIS"),c.GetString("PE_CEDIS"),ALMACEN,c.GetString("PE_COSTO_TOT"),c.GetString("PE_COSTOU"),c.GetString("PE_CANT"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CLIENTE"),c.GetString("PE_FECHA"),c.GetString("PE_USUARIO"),Subs.traeRuta2(c.GetString("PE_CLIENTE")), c.GetString("PE_COSTO_SIN"),c.GetString("PE_DESC"),"ABORDO") @@ -1116,6 +1197,7 @@ Sub Subir_Click ' End If End If + End Sub @@ -1256,10 +1338,10 @@ Sub cargar_Click cmd.Parameters = Array As Object(ALMACEN) reqManager.ExecuteQuery(cmd , 0, "coords_almacen") -' cmd.Initialize -' cmd.Name = "select_cat_gunaprod3_TGUERRERAS" -' cmd.Parameters = Array As Object(ALMACEN,e_ruta.Text) -' reqManager.ExecuteQuery(cmd , 0, "gunaprod3") + cmd.Initialize + cmd.Name = "select_cat_gunaprod3_TGUERRERAS" + cmd.Parameters = Array As Object(ALMACEN,e_ruta.Text) + reqManager.ExecuteQuery(cmd , 0, "gunaprod3") ' cmd.Initialize cmd.Name = "select_cat_GIRO_TGUERRERAS" @@ -1949,7 +2031,6 @@ Sub JobDone(Job As HttpJob) Dim CAT_GP_NOMBRE As String = records(RESULT.Columns.Get("CAT_DP_NOMBRE")) Dim CAT_GP_IMP1 As String = records(RESULT.Columns.Get("CAT_DP_IMP1")) Dim CAT_GP_IMP2 As String = records(RESULT.Columns.Get("CAT_DP_IMP2")) - Dim CAT_GP_PRECIO As String = records(RESULT.Columns.Get("CAT_DP_PRECIO")) Dim CAT_GP_CLASIF As String = records(RESULT.Columns.Get("CAT_DP_CLASIF")) Dim CAT_GP_STS As String = records(RESULT.Columns.Get("CAT_DP_STS")) Dim CAT_GP_TIPO As String = records(RESULT.Columns.Get("CAT_DP_TIPO")) @@ -1959,12 +2040,20 @@ Sub JobDone(Job As HttpJob) ' Dim CAT_GP_DEV As String = records(RESULT.Columns.Get("CAT_GP_DEV")) Dim CAT_GP_TIPOPROD As Int = records(RESULT.Columns.Get("CAT_DP_TIPOPROD")) Dim CAT_GP_INICIATIVA As Int = records(RESULT.Columns.Get("CAT_DP_INICIATIVA")) + Dim CAT_GP_PRECIO As String = records(RESULT.Columns.Get("CAT_DP_PRECIO")) + Dim CAT_DP_PRECIO10 As Float = records(RESULT.Columns.Get("CAT_DP_PRECIO10")) + Dim CAT_DP_PRECIO2 As Float = records(RESULT.Columns.Get("CAT_DP_PRECIO2")) + Dim CAT_DP_PRECIO1 As Float = records(RESULT.Columns.Get("CAT_DP_PRECIO1")) + Dim CAT_DP_PRECIO3 As Float = records(RESULT.Columns.Get("CAT_DP_PRECIO3")) + Dim CAT_DP_PRECIO4 As Float = records(RESULT.Columns.Get("CAT_DP_PRECIO4")) + Dim CAT_DP_PRECIO9 As Float = records(RESULT.Columns.Get("CAT_DP_PRECIO9")) + Dim CAT_DP_CONVERSION1 As Int = records(RESULT.Columns.Get("CAT_DP_CONVERSION1")) ' CAT_GP_INICIATIVA = 5 ' skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_DEV) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_DEV)) Dim CAT_GP_NOMBRE As String = CAT_GP_NOMBRE.Trim - B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD3(CAT_GP_ID, CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_TIPOPROD,CAT_GP_INICIATIVA,CAT_DP_PRECIO10,CAT_DP_CONVERSION1) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_TIPOPROD, CAT_GP_INICIATIVA,CAT_DP_PRECIO10,CAT_DP_CONVERSION1)) + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD3(CAT_GP_ID, CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_TIPOPROD,CAT_GP_INICIATIVA,CAT_DP_PRECIO10,CAT_DP_CONVERSION1, CAT_DP_PRECIO2,CAT_DP_PRECIO1,CAT_DP_PRECIO3,CAT_DP_PRECIO4,CAT_DP_PRECIO9) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_TIPOPROD, CAT_GP_INICIATIVA,CAT_DP_PRECIO10,CAT_DP_CONVERSION1,CAT_DP_PRECIO2,CAT_DP_PRECIO1,CAT_DP_PRECIO3,CAT_DP_PRECIO4,CAT_DP_PRECIO9)) Next End If End If @@ -2446,6 +2535,9 @@ Private Sub B4XPage_CloseRequest As ResumableSub Else if Panel5.Visible Then B_OK_PANEL5_Click Return False + Else if P_CIEGO.Visible Then + P_CIEGO.Visible = False + Return False Else If pnlCobranza.Visible Then pnlCobranza.Visible = False Return False @@ -3401,3 +3493,246 @@ Private Sub b_productos_Click c.Close End Sub + + +Private Sub CheckBox1_CheckedChange(Checked As Boolean) + +End Sub + +Private Sub P_CIEGO_Click + +End Sub + +Private Sub b_terpc_Click +' Dim sDate, sTime As String +' DateTime.DateFormat = "dd/MM/yyyy" +' DateTime.TimeFormat = "HH:mm:ss" +' sDate = DateTime.Date(DateTime.Now) +' sTime = DateTime.Time(DateTime.Now) +' +' Dim consecutivo As Int = 1000 +' For i = 0 To CLV_PICK_CIEGO.Size - 1 +' ' Retrieve the panel and child views for the current item +' Dim itemPanel As B4XView = CLV_PICK_CIEGO.GetPanel(i) +' Dim innerPanel As B4XView = itemPanel.GetView(0) +' Dim editText As B4XView = innerPanel.GetView(1) +' Dim inputText As String = editText.As(EditText).Text +' Dim labelcant As B4XView = innerPanel.GetView(2) +' Dim cantidadrestar As String = labelcant.As(Label).Text +' +' ' Check if the input text matches the regex pattern for zeros or if it's empty +' If Regex.IsMatch("^[0]+$", inputText) Or inputText = "" Then +' inputText = "0" +' End If +' +' ' Retrieve and process the ID label +' Dim idLabel As B4XView = innerPanel.GetView(0) +' Dim idText As String = idLabel.As(Label).Text +' Dim idParts() As String = Regex.Split(CRLF, idText) +'' Log(idParts(1)) +' f=Starter.skmt.ExecQuery("select RUTAA from RUTAA") +' f.Position=0 +'' Log(f.GetString("RUTAA")) +' a=Starter.skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN") +' If a.RowCount>0 Then +' a.Position=0 +' End If +' Dim k As Cursor = Starter.skmt.ExecQuery("SELECT HVD_FECHA FROM HIST_VENTAS") +' k.Position = 0 +' Dim fechatabulador() As String = Regex.Split(" ", k.GetString("HVD_FECHA")) +'' Dim fechatabulador2() As String = Regex.Split("-", fechatabulador(0)) +' Dim fechatabulador3 As String = fechatabulador(0) +' k.Close +' If inputText <> "" And inputText <> 0 Then +' Log("IMPUT DIFERENTE DE CERO") +' Log(idParts(0)) +' Log(cantidadrestar) +' Log(inputText) +' Dim restado As Int = cantidadrestar - inputText +' Log(cantidadrestar - inputText) +' c = Starter.skmt.ExecQuery2("SELECT * FROM PICK_CIEGO where PC_ID_PROD = ?", Array As String (idParts(0))) +' +' If c.RowCount = 0 Then +' ' Insert data into the database +'' Log(f.GetString("RUTAA")) +'' Log("entro aqui2") +' +' Starter.skmt.ExecNonQuery2("INSERT INTO PICK_CIEGO(PC_ID_PROD, PC_NOM_PROD, PC_CANT, PC_ALMACEN, PC_RUTA, PC_FECHA, RESTA) VALUES(?,?,?,?,?,?,?)", Array As String(idParts(0), idParts(1), inputText, a.GetString("ID_ALMACEN"), f.GetString("RUTAA"), fechatabulador3&" "&sTime, restado)) +' If restado > 0 And inputText <> 0 Then +' +' Dim preciocat As Cursor = Starter.skmt.ExecQuery($"select IFNULL(CAT_GP_PRECIO,0) AS CAT_GP_PRECIO from CAT_GUNAPROD WHERE CAT_GP_ID = '${idParts(0)}'"$) +' If preciocat.RowCount > 0 Then +' preciocat.Position = 0 +' Dim preciofull As String = preciocat.GetString("CAT_GP_PRECIO") +' End If +' preciocat.Close +' Log("MAYOR A CERO") +' consecutivo = consecutivo + 1 +' Dim faltantes As Cursor = Starter.skmt.ExecQuery($"select * from PEDIDO WHERE PE_PROID = '${idParts(0)}' AND PE_TIPO = 'FALTANTE'"$) +' If faltantes.RowCount > 0 Then +' faltantes.Position = 0 +' Starter.skmt.ExecNonQuery($"update PEDIDO set PE_CANT = '${restado}', PE_COSTO_TOT= '${restado}'*'${preciofull}', PE_TIPO = 'FALTANTE' WHERE PE_PROID = '${idParts(0)}' and PE_CLIENTE = '63403' AND CONSECUTIVO = '${faltantes.GetString("CONSECUTIVO")}'"$) +' Else +'' Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO(PE_PROID,PE_PRONOMBRE,PE_CANT,PE_CLIENTEOR,PE_CLIENTE,PE_COSTOU,PE_COSTO_TOT,PE_CAJAS,PE_BCAJAS,CONSECUTIVO,PE_RUTA, PE_TIPO,PE_CEDIS,PE_FECHA,PE_USUARIO,FECHA_PREV,RUTA_REP,PE_REGALO) VALUES (?,?,?,?,?,?,?,0,0,?,?,?,?,?,?,?,?,?)", Array As String(idParts(0),idParts(1),restado,"",Subs.traeCliente,preciofull,(preciofull*restado),consecutivo,1000,"FALTANTE",Subs.traeAlmacen, sDate & " " & sTime, Subs.traeUsuario,Subs.traefECHAPREV, Subs.traeRutaReparto,0)) +' End If +' Else If restado < 0 And inputText <> 0 Then +' +' Dim preciocat As Cursor = Starter.skmt.ExecQuery($"select IFNULL(CAT_GP_PRECIO,0) AS CAT_GP_PRECIO from CAT_GUNAPROD WHERE CAT_GP_ID = '${idParts(0)}'"$) +' If preciocat.RowCount > 0 Then +' preciocat.Position = 0 +' Dim preciofull As String = preciocat.GetString("CAT_GP_PRECIO") +' End If +' preciocat.Close +' Log("MENOR A CERO") +' consecutivo = consecutivo + 1 +' Dim faltantes As Cursor = Starter.skmt.ExecQuery($"select * from PEDIDO WHERE PE_PROID = '${idParts(0)}' AND PE_TIPO = 'FALTANTE'"$) +' If faltantes.RowCount > 0 Then +' faltantes.Position = 0 +' Starter.skmt.ExecNonQuery($"update PEDIDO set PE_CANT = '${(-1*restado)}', PE_COSTO_TOT= ${(-1*restado)}*${preciofull}, PE_TIPO = 'SOBRANTE' WHERE PE_PROID = '${idParts(0)}' and PE_CLIENTE = '63403' AND CONSECUTIVO = '${faltantes.GetString("CONSECUTIVO")}'"$) +' Else +'' Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO(PE_PROID,PE_PRONOMBRE,PE_CANT,PE_CLIENTEOR,PE_CLIENTE,PE_COSTOU,PE_COSTO_TOT,PE_CAJAS,PE_BCAJAS,CONSECUTIVO,PE_RUTA, PE_TIPO,PE_CEDIS,PE_FECHA,PE_USUARIO,FECHA_PREV,RUTA_REP,PE_REGALO) VALUES (?,?,?,?,?,?,?,0,0,?,?,?,?,?,?,?,?,?)", Array As String(idParts(0),idParts(1),(-1*restado),"",Subs.traeCliente,preciofull,(-1*(preciofull*restado)),consecutivo,1000,"SOBRANTE",Subs.traeAlmacen, sDate & " " & sTime, Subs.traeUsuario,Subs.traefECHAPREV, Subs.traeRutaReparto,0)) +' End If +' End If +' Else +'' Log(f.GetString("RUTAA")) +'' Log("entro aqui") +' Dim restadoanterior As Cursor = Starter.skmt.ExecQuery($"select RESTA from PICK_CIEGO WHERE PC_ID_PROD = '${idParts(0)}'"$) +' restadoanterior.Position = 0 +' +'' Starter.skmt.ExecNonQuery2("Update PICK_CIEGO set PC_CANT = ?, RESTA = ? WHERE PC_ID_PROD = ?" , Array As String(inputText ,restado,idParts(0))) '' HACER DENTRO DEL IF +' If restadoanterior.GetInt("RESTA") > 0 And restadoanterior.GetInt("RESTA") <> restado Then +' +' +' Dim faltantes As Cursor = Starter.skmt.ExecQuery($"select * from PEDIDO WHERE PE_PROID = '${idParts(0)}' AND PE_TIPO = 'FALTANTE'"$) +' +' If faltantes.RowCount > 0 Then +' faltantes.Position = 0 +' Dim preciocat As Cursor = Starter.skmt.ExecQuery($"select IFNULL(CAT_GP_PRECIO,0) AS CAT_GP_PRECIO from CAT_GUNAPROD WHERE CAT_GP_ID = '${idParts(0)}'"$) +' If preciocat.RowCount > 0 Then +' preciocat.Position = 0 +' Dim preciofull As String = preciocat.GetString("CAT_GP_PRECIO") +' End If +' preciocat.Close +' +' Log("MAYOR A CERO UPDATE") +' Starter.skmt.ExecNonQuery2("Update PICK_CIEGO set PC_CANT = ?, RESTA = ? WHERE PC_ID_PROD = ?" , Array As String(inputText ,restado,idParts(0))) '' HACER DENTRO DEL IF +' If restado > 0 Then +' Log("AQUI ES FALTANTE") +'' Log($"update PEDIDO set PE_CANT = IFNULL(PE_CANT,0)+(1*'${restado}'), PE_COSTO_TOT= ((IFNULL(PE_CANT,0)+(1*'${restado}'))*'${preciofull}'), PE_TIPO = 'FALTANTE' WHERE PE_PROID = '${idParts(0)}' and PE_CLIENTE = '63403' AND CONSECUTIVO = '${faltantes.GetString("CONSECUTIVO")}'"$) +' Starter.skmt.ExecNonQuery($"update PEDIDO set PE_CANT = '${restado}', PE_COSTO_TOT= '${restado}'*'${preciofull}', PE_TIPO = 'FALTANTE' WHERE PE_PROID = '${idParts(0)}' and PE_CLIENTE = '63403' AND CONSECUTIVO = '${faltantes.GetString("CONSECUTIVO")}'"$) +' Else If restado < 0 Then +' Log("AQUI ES SOBRANTE") +'' Log($"update PEDIDO set PE_CANT = '${(-1*restado)}', PE_COSTO_TOT= ${(-1*restado)}*${preciofull}, PE_TIPO = 'SOBRANTE' WHERE PE_PROID = '${idParts(0)}' and PE_CLIENTE = '63403' AND CONSECUTIVO = '${faltantes.GetString("CONSECUTIVO")}'"$) +' Starter.skmt.ExecNonQuery($"update PEDIDO set PE_CANT = '${(-1*restado)}', PE_COSTO_TOT= ${(-1*restado)}*${preciofull}, PE_TIPO = 'SOBRANTE' WHERE PE_PROID = '${idParts(0)}' and PE_CLIENTE = '63403' AND CONSECUTIVO = '${faltantes.GetString("CONSECUTIVO")}'"$) +' Else If restado = 0 Then +' Log("AQUI ES SOBRANTE") +' Starter.skmt.ExecNonQuery($"delete from PEDIDO where PE_PROID = '${idParts(0)}' and PE_CLIENTE = '63403' AND CONSECUTIVO = '${faltantes.GetString("CONSECUTIVO")}'"$) +' +' End If +' +' End If +' Else If restadoanterior.GetInt("RESTA") < 0 And restadoanterior.GetInt("RESTA") <> restado Then +' Log("es sobrante") +' Dim sobrantes As Cursor = Starter.skmt.ExecQuery($"select * from PEDIDO WHERE PE_PROID = '${idParts(0)}' AND PE_TIPO = 'SOBRANTE'"$) +' If sobrantes.RowCount > 0 Then +' sobrantes.Position = 0 +' +' Dim preciocat As Cursor = Starter.skmt.ExecQuery($"select IFNULL(CAT_GP_PRECIO,0) AS CAT_GP_PRECIO from CAT_GUNAPROD WHERE CAT_GP_ID = '${idParts(0)}'"$) +' If preciocat.RowCount > 0 Then +' preciocat.Position = 0 +' Dim preciofull As String = preciocat.GetString("CAT_GP_PRECIO") +' End If +' preciocat.Close +' +' Log("MENOR A CERO UPDATE") +' Starter.skmt.ExecNonQuery2("Update PICK_CIEGO set PC_CANT = ?, RESTA = ? WHERE PC_ID_PROD = ?" , Array As String(inputText ,restado,idParts(0))) '' HACER DENTRO DEL IF +' If restado > 0 Then +'' Log("AQUI NO ES SOBRANTE") +'' Log($"update PEDIDO set PE_CANT = IFNULL(PE_CANT,0)+(1*'${restado}'), PE_COSTO_TOT= ((IFNULL(PE_CANT,0)+(1*'${restado}'))*'${preciofull}'), PE_TIPO = 'FALTANTE' WHERE PE_PROID = '${idParts(0)}' and PE_CLIENTE = '63403' AND CONSECUTIVO = '${sobrantes.GetString("CONSECUTIVO")}'"$) +' Starter.skmt.ExecNonQuery($"update PEDIDO set PE_CANT = '${restado}', PE_COSTO_TOT= '${restado}'*'${preciofull}', PE_TIPO = 'FALTANTE' WHERE PE_PROID = '${idParts(0)}' and PE_CLIENTE = '63403' AND CONSECUTIVO = '${sobrantes.GetString("CONSECUTIVO")}'"$) +' Else If restado < 0 Then +'' Log("AQUI ES SOBRANTE") +'' Log($"update PEDIDO set PE_CANT = IFNULL(PE_CANT,0)+(1*'${(-1*restado)}'), PE_COSTO_TOT= ((IFNULL(PE_CANT,0)+(1*'${(-1*restado)}'))*'${preciofull}'), PE_TIPO = 'SOBRANTE' WHERE PE_PROID = '${idParts(0)}' and PE_CLIENTE = '63403' AND CONSECUTIVO = '${sobrantes.GetString("CONSECUTIVO")}'"$) +' Starter.skmt.ExecNonQuery($"update PEDIDO set PE_CANT = '${-1*restado}', PE_COSTO_TOT= '${-1*restado}'*'${preciofull}', PE_TIPO = 'SOBRANTE' WHERE PE_PROID = '${idParts(0)}' and PE_CLIENTE = '63403' AND CONSECUTIVO = '${sobrantes.GetString("CONSECUTIVO")}'"$) +' Else If restado = 0 Then +' Log("a eliminar") +' Starter.skmt.ExecNonQuery($"delete from PEDIDO where PE_PROID = '${idParts(0)}' and PE_CLIENTE = '63403' AND CONSECUTIVO = '${sobrantes.GetString("CONSECUTIVO")}'"$) +' '' FALTAN LOS CEROS QUITAR DE PEDIDO Y DEL PICKCIEGO +' End If +' End If +' Else If restadoanterior.GetInt("RESTA") = 0 And restadoanterior.GetInt("RESTA") <> restado Then +' Starter.skmt.ExecNonQuery2("Update PICK_CIEGO set PC_CANT = ?, RESTA = ? WHERE PC_ID_PROD = ?" , Array As String(inputText ,restado,idParts(0))) '' HACER DENTRO DEL IF +' If restado > 0 And inputText <> 0 Then +' +' Dim preciocat As Cursor = Starter.skmt.ExecQuery($"select IFNULL(CAT_GP_PRECIO,0) AS CAT_GP_PRECIO from CAT_GUNAPROD WHERE CAT_GP_ID = '${idParts(0)}'"$) +' If preciocat.RowCount > 0 Then +' preciocat.Position = 0 +' Dim preciofull As String = preciocat.GetString("CAT_GP_PRECIO") +' End If +' preciocat.Close +' Log("MAYOR A CERO") +' consecutivo = consecutivo + 1 +' Dim faltantes As Cursor = Starter.skmt.ExecQuery($"select * from PEDIDO WHERE PE_PROID = '${idParts(0)}' AND PE_TIPO = 'FALTANTE'"$) +' If faltantes.RowCount > 0 Then +' faltantes.Position = 0 +' Starter.skmt.ExecNonQuery($"update PEDIDO set PE_CANT = '${restado}', PE_COSTO_TOT= '${restado}'*'${preciofull}', PE_TIPO = 'FALTANTE' WHERE PE_PROID = '${idParts(0)}' and PE_CLIENTE = '63403' AND CONSECUTIVO = '${faltantes.GetString("CONSECUTIVO")}'"$) +' Else +'' Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO(PE_PROID,PE_PRONOMBRE,PE_CANT,PE_CLIENTEOR,PE_CLIENTE,PE_COSTOU,PE_COSTO_TOT,PE_CAJAS,PE_BCAJAS,CONSECUTIVO,PE_RUTA, PE_TIPO,PE_CEDIS,PE_FECHA,PE_USUARIO,FECHA_PREV,RUTA_REP,PE_REGALO) VALUES (?,?,?,?,?,?,?,0,0,?,?,?,?,?,?,?,?,?)", Array As String(idParts(0),idParts(1),restado,"",Subs.traeCliente,preciofull,(preciofull*restado),consecutivo,1000,"FALTANTE",Subs.traeAlmacen, sDate & " " & sTime, Subs.traeUsuario,Subs.traefECHAPREV, Subs.traeRutaReparto,0)) +' End If +' Else If restado < 0 And inputText <> 0 Then +' +' Dim preciocat As Cursor = Starter.skmt.ExecQuery($"select IFNULL(CAT_GP_PRECIO,0) AS CAT_GP_PRECIO from CAT_GUNAPROD WHERE CAT_GP_ID = '${idParts(0)}'"$) +' If preciocat.RowCount > 0 Then +' preciocat.Position = 0 +' Dim preciofull As String = preciocat.GetString("CAT_GP_PRECIO") +' End If +' preciocat.Close +' Log("MENOR A CERO") +' consecutivo = consecutivo + 1 +' Dim faltantes As Cursor = Starter.skmt.ExecQuery($"select * from PEDIDO WHERE PE_PROID = '${idParts(0)}' AND PE_TIPO = 'FALTANTE'"$) +' If faltantes.RowCount > 0 Then +' faltantes.Position = 0 +' Starter.skmt.ExecNonQuery($"update PEDIDO set PE_CANT = '${(-1*restado)}', PE_COSTO_TOT= ${(-1*restado)}*${preciofull}, PE_TIPO = 'SOBRANTE' WHERE PE_PROID = '${idParts(0)}' and PE_CLIENTE = '63403' AND CONSECUTIVO = '${faltantes.GetString("CONSECUTIVO")}'"$) +' Else +'' Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO(PE_PROID,PE_PRONOMBRE,PE_CANT,PE_CLIENTEOR,PE_CLIENTE,PE_COSTOU,PE_COSTO_TOT,PE_CAJAS,PE_BCAJAS,CONSECUTIVO,PE_RUTA, PE_TIPO,PE_CEDIS,PE_FECHA,PE_USUARIO,FECHA_PREV,RUTA_REP,PE_REGALO) VALUES (?,?,?,?,?,?,?,0,0,?,?,?,?,?,?,?,?,?)", Array As String(idParts(0),idParts(1),(-1*restado),"",Subs.traeCliente,preciofull,(-1*(preciofull*restado)),consecutivo,1000,"SOBRANTE",Subs.traeAlmacen, sDate & " " & sTime, Subs.traeUsuario,Subs.traefECHAPREV, Subs.traeRutaReparto,0)) +' End If +' End If +' Else If restadoanterior.GetInt("RESTA") = 0 And restado = 0 Then +' Starter.skmt.ExecNonQuery($"delete from PEDIDO where PE_PROID = '${idParts(0)}' and PE_CLIENTE = '63403' AND PE_TIPO NOT IN ('DANADO') "$) +' End If +' End If +' Else If inputText = "" Or inputText = 0 Then +' Log("IMPUT IGUAL DE CERO") +' Log(idParts(0)) +' Log(cantidadrestar) +' Log(inputText) +' Dim restado As Int = cantidadrestar - inputText +' Log(cantidadrestar - inputText) +' Dim faltantes As Cursor = Starter.skmt.ExecQuery2("SELECT * FROM PICK_CIEGO where PC_ID_PROD = ?", Array As String (idParts(0))) +' If faltantes.RowCount > 0 Then +' faltantes.Position = 0 +' Starter.skmt.ExecNonQuery($"delete from PICK_CIEGO where PC_ID_PROD = '${idParts(0)}'"$) +' End If +'' Dim sobrantes As Cursor = Starter.skmt.ExecQuery($"select * from PEDIDO WHERE PE_PROID = '${idParts(0)}' AND PE_TIPO in ('SOBRANTE','FALTANTE')"$) +' Dim sobrantes As Cursor = Starter.skmt.ExecQuery($"select * from PEDIDO WHERE PE_PROID = '${idParts(0)}' and PE_CLIENTE = '63403'"$) +' If sobrantes.RowCount > 0 Then +' sobrantes.Position = 0 +' Starter.skmt.ExecNonQuery($"delete from PEDIDO where PE_PROID = '${idParts(0)}' and PE_CLIENTE = '63403' AND CONSECUTIVO = '${sobrantes.GetString("CONSECUTIVO")}'"$) +' End If +' +' Dim preciocat As Cursor = Starter.skmt.ExecQuery($"select IFNULL(CAT_GP_PRECIO,0) AS CAT_GP_PRECIO from CAT_GUNAPROD WHERE CAT_GP_ID = '${idParts(0)}'"$) +' If preciocat.RowCount > 0 Then +' preciocat.Position = 0 +' Dim preciofull As String = preciocat.GetString("CAT_GP_PRECIO") +' End If +' preciocat.Close +'' Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO(PE_PROID,PE_PRONOMBRE,PE_CANT,PE_CLIENTEOR,PE_CLIENTE,PE_COSTOU,PE_COSTO_TOT,PE_CAJAS,PE_BCAJAS,CONSECUTIVO,PE_RUTA, PE_TIPO,PE_CEDIS,PE_FECHA,PE_USUARIO,FECHA_PREV,RUTA_REP,PE_REGALO) VALUES (?,?,?,?,?,?,?,0,0,?,?,?,?,?,?,?,?,?)", Array As String(idParts(0),idParts(1),restado,"",Subs.traeCliente,preciofull,(preciofull*restado),consecutivo,1000,"FALTANTE",Subs.traeAlmacen, sDate & " " & sTime, Subs.traeUsuario,Subs.traefECHAPREV, Subs.traeRutaReparto,0)) +' +' End If +' f.Close +' a.Close +' Log("Processed item " & i) +' Next + Envioinfo + P_CIEGO.Visible = False +End Sub \ No newline at end of file diff --git a/B4A/C_Productosdev.bas b/B4A/C_Productosdev.bas index 37cf3c4..f10b794 100644 --- a/B4A/C_Productosdev.bas +++ b/B4A/C_Productosdev.bas @@ -546,6 +546,9 @@ Sub CreateListItem(Text As String, precioU As String, inv As Int, Width As Int, End Sub Sub b_prodMenos_Click + + + totalcajasmaspiezas = 0 etCantHasFocus = False Root.RequestFocus @@ -560,85 +563,107 @@ Sub b_prodMenos_Click Dim panelcajas As B4XView = pnl.GetView(3) Dim panelpiezas As B4XView = pnl.GetView(2) ' Log($"precio|stock:${laCant.tag}"$) - If laCant.Text = "" Then laCant.Text = 0 -' Log("lacant.text="&laCant.text) - laCant.Text = $"${NumberFormat2(laCant.Text-1,0,0,0,False)}"$ - If laCant.Text < 0 Then laCant.Text = 0 Private tmpMap1 As Map = clv_prods_ll.GetValue(index).As(Map) Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio") Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id") Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant.Text, "almacen":Subs.traeAlmacen) Private nombreX As String = Subs.traeProdNombre(id) - LogColor(tmpMap1,Colors.Magenta) -' prodsMap.Put(id, tmpMap) - If laCant.Text = 0 Then prodsMap.Remove(id) - If laCant.Text = 0 Then - panelcajas.Visible = True - Else If laCant.Text > 0 Then - panelcajas.Visible = False - End If + Private abor As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select * from CAT_GUNAPROD2 where CAT_GP_ID = '${id}'"$) + + If abor.RowCount > 0 Then + abor.Position = 0 + If abor.GetInt("CAT_GP_ALMACEN") -1 >= 0 Then + + + If laCant.Text = "" Then laCant.Text = 0 +' Log("lacant.text="&laCant.text) + + + laCant.Text = $"${NumberFormat2(laCant.Text-1,0,0,0,False)}"$ + If laCant.Text < 0 Then laCant.Text = 0 + LogColor(tmpMap1,Colors.Magenta) + + + +' prodsMap.Put(id, tmpMap) + If laCant.Text = 0 Then prodsMap.Remove(id) + + If laCant.Text = 0 Then + panelcajas.Visible = True + Else If laCant.Text > 0 Then + panelcajas.Visible = False + End If ' If laCant2.IsInitialized Then ' totalcajasmaspiezas = laCant.Text + laCant2.Text ' Else ' totalcajasmaspiezas = laCant.Text ' End If - LogColor("prodsMap="&prodsMap, Colors.blue) + LogColor("prodsMap="&prodsMap, Colors.blue) ' (Subs.traeAlmacen, p1.Get("precio"), p1.Get("cant"), pn, p, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta) - Log($"${Subs.traeAlmacen}, ${precio}, ${laCant.text}, ${Subs.traeProdNombre(id)}, ${id}, ${clienteId}"$) - Subs.actualizaProducto(Subs.traeAlmacen, precio, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,0,0) - cuentaProds - LogColor("prodsMap="&prodsMap, Colors.blue) - Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$) - If 1 = 1 Then - Private cs As CSBuilder - cs.Initialize - Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$) - Private invActualizado As String = "0" - If o.RowCount > 0 Then - o.Position = 0 - invActualizado = o.GetString("CAT_GP_ALMACEN") - End If - If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then - Private maxcajas As Int = 0 - Log("cajas a 0") - Else - Private maxcajas As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion") - Log("cajas no a 0") - End If + Log($"${Subs.traeAlmacen}, ${precio}, ${laCant.text}, ${Subs.traeProdNombre(id)}, ${id}, ${clienteId}"$) + Subs.actualizaProducto3(Subs.traeAlmacen, 0, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,0,0) + cuentaProds + LogColor("prodsMap="&prodsMap, Colors.blue) + Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$) + If 1 = 1 Then + Private cs As CSBuilder + cs.Initialize + Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$) + Private invActualizado As String = "0" + If o.RowCount > 0 Then + o.Position = 0 + invActualizado = o.GetString("CAT_GP_ALMACEN") + End If + If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then + Private maxcajas As Int = 0 + Log("cajas a 0") + Else + Private maxcajas As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion") + Log("cajas no a 0") + End If ' Private maxcajas As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion") - If 2 = 2 Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas}"$).Popall +' If 2 = 2 Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas}"$).Popall + If 2 = 2 Then lProdX.Text = cs.Color(Colors.red).append(nombreX).Popall +' If 2 = 2 Then lProdX.Text = "" ' Log(lProdX.Text) - End If + End If - If laCant.Text = 0 Then - If maxcajas > 0 Then - panelcajas.Visible = True - Else - panelcajas.Visible = False - End If - Else If laCant.Text > 0 Then - panelcajas.Visible = False - End If + If laCant.Text = 0 Then + If maxcajas > 0 Then + panelcajas.Visible = False + Else + panelcajas.Visible = False + End If + Else If laCant.Text > 0 Then + panelcajas.Visible = False + End If - If Subs.totalPedido < 1 Then laCant.Text = "0" - invTotal = totalcajasmaspiezas + Subs.traeinventario(id) - 'aqui si lo comentamos aparece la parte de cajas - If tmpMap1.Get("conversion") = "1" Or tmpMap1.Get("precio_caja") = "0" Then - Log("invisible") - panelbotonesc.Visible = False - End If +' If Subs.totalPedido < 1 Then laCant.Text = "0" + invTotal = totalcajasmaspiezas + Subs.traeinventario(id) + 'aqui si lo comentamos aparece la parte de cajas + If tmpMap1.Get("conversion") = "1" Or tmpMap1.Get("precio_caja") = "0" Then + Log("invisible") + panelbotonesc.Visible = False + End If - If clv_prods_ll.GetValue(index).As(Map).Get("almacen") < clv_prods_ll.GetValue(index).As(Map).Get("conversion") Then - Log(clv_prods_ll.GetValue(index).As(Map).Get("cant")) - If clv_prods_ll.GetValue(index).As(Map).Get("cant").As(Int) = 0 Then - Log("Aqui debemos ponerlo invisible") - panelcajas.Visible = False - Else + If clv_prods_ll.GetValue(index).As(Map).Get("almacen") < clv_prods_ll.GetValue(index).As(Map).Get("conversion") Then + Log(clv_prods_ll.GetValue(index).As(Map).Get("cant")) + If clv_prods_ll.GetValue(index).As(Map).Get("cant").As(Int) = 0 Then + Log("Aqui debemos ponerlo invisible") + panelcajas.Visible = False + Else - End If + End If ' p_botMasMenc.Visible = False + End If + + Else + MsgboxAsync("No se puede quitar la devolucion por que no hay producto fisico.","Atención.") + End If End If + + 'fin aparecer parte de cajas ' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red) End Sub @@ -717,7 +742,7 @@ Sub b_prodMas_Click ' End If - Subs.actualizaProducto(Subs.traeAlmacen, precio, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,0,0) + Subs.actualizaProducto3(Subs.traeAlmacen, 0, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,0,0) cuentaProds ' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$) If 1 = 1 Then @@ -771,7 +796,7 @@ Sub b_prodMas_Click ' End If - Subs.actualizaProducto(Subs.traeAlmacen, precio, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,0,0) + Subs.actualizaProducto3(Subs.traeAlmacen, 0, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,0,0) cuentaProds ' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$) If 1 = 1 Then @@ -790,7 +815,9 @@ Sub b_prodMas_Click Private maxcajas As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion") Log("cajas no a 0") End If - If 2 = 2 Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas}"$).Popall +' If 2 = 2 Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas}"$).Popall + If 2 = 2 Then lProdX.Text = cs.Color(Colors.red).append(nombreX).Popall +' If 2 = 2 Then lProdX.Text = "" ' Log(lProdX.Text) End If invTotal = totalcajasmaspiezas + Subs.traeinventario(id) @@ -859,27 +886,218 @@ Private Sub et_pCant_TextChanged (Old As String, New As String) panelcajas.Visible = False Else If New = 0 Then - panelcajas.Visible = True + panelcajas.Visible = False +' panelcajas.Visible = True + End If Log(Old) + If Old <> "" Then - Log("--------------->Credito Disponible: "&B4XPages.MainPage.cliente.credito_diponible) - If B4XPages.MainPage.tipo_venta = "PREVENTA_CREDITO" Then + Log(New < Old) - Dim fg As Cursor = Starter.skmt.ExecQuery("Select IFNULL(sum(PE_COSTO_TOT),0) AS COSTO FROM PEDIDO WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND PE_FOLIO = 'PREVENTA_CREDITO'") - fg.Position = 0 - If Old = "" Or Old = Null Then New = 0 - Log(precio &" * "&Old) + + If New < Old Then + + + Private abor As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select * from CAT_GUNAPROD2 where CAT_GP_ID = '${id}'"$) + + If abor.RowCount > 0 Then + abor.Position = 0 + Log(abor.GetInt("CAT_GP_ALMACEN") -Old >= 0) + If abor.GetInt("CAT_GP_ALMACEN") -Old >= 0 Then + + + + Log("--------------->Credito Disponible: "&B4XPages.MainPage.cliente.credito_diponible) + If B4XPages.MainPage.tipo_venta = "PREVENTA_CREDITO" Then + + Dim fg As Cursor = Starter.skmt.ExecQuery("Select IFNULL(sum(PE_COSTO_TOT),0) AS COSTO FROM PEDIDO WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND PE_FOLIO = 'PREVENTA_CREDITO'") + fg.Position = 0 + If Old = "" Or Old = Null Then New = 0 + Log(precio &" * "&Old) - Log(fg.GetString("COSTO") +(precio*New)) - If fg.GetString("COSTO") +((precio*New)-(precio*Old)) <= B4XPages.MainPage.cliente.credito_diponible Then + Log(fg.GetString("COSTO") +(precio*New)) + If fg.GetString("COSTO") +((precio*New)-(precio*Old)) <= B4XPages.MainPage.cliente.credito_diponible Then +' If laCant2.IsInitialized Then +' totalcajasmaspiezas = laCant.Text + laCant2.Text +' Else +' totalcajasmaspiezas = laCant.Text +' End If + If Not(Old = "0" And New = "") And laCant.Text <> Null And laCant.Text <> "" And etCantHasFocus Then + Log("actualizamos producto") + Subs.actualizaProducto3(Subs.traeAlmacen, 0, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,0,0) + cuentaProds + End If + +' If New <> "" And New.SubString2(0,0) = "0" Then +' New.SubString(1) +' End If +' If New <> "" And New.SubString(1) <> "" Then +' Log(New.SubString(1)) +' New = New.SubString(1) +' laCant.Text = New.SubString(1) +' Log(laCant.Text) +' End If + + If 1 = 1 Then + Private cs As CSBuilder + cs.Initialize + Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$) + Private invActualizado As String = "0" +' If o.RowCount > 0 Then + o.Position = 0 + invActualizado = Subs.traeinventario(id) + Log(Subs.traeinventario(id)) +' End If + + If New = "" Then New = 0 + If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then + Private maxcajas As Int = 0 + Log("cajas a 0") + Else + Private maxcajas As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion") + Log("cajas no a 0") + End If + lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & (Subs.traeinventario(id))).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas}"$).Popall + End If + Else + laCant.Text = 0 + MsgboxAsync("No se puede meter mas venta a credito por que supera el limite del credito","Atencion") + End If + Else +' If laCant2.IsInitialized Then +' totalcajasmaspiezas = laCant.Text + laCant2.Text +' Else +' totalcajasmaspiezas = laCant.Text +' End If + If Not(Old = "0" And New = "") And laCant.Text <> Null And laCant.Text <> "" And etCantHasFocus Then + Log("actualizamos producto") + Subs.actualizaProducto3(Subs.traeAlmacen, 0, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,0,0) + cuentaProds + End If + +' If New <> "" And New.SubString2(0,0) = "0" Then +' New.SubString(1) +' End If +' If New <> "" And New.SubString(1) <> "" Then +' Log(New.SubString(1)) +' New = New.SubString(1) +' laCant.Text = New.SubString(1) +' Log(laCant.Text) +' End If + If 1 = 1 Then + Private cs As CSBuilder + cs.Initialize + Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$) + Private invActualizado As String = "0" +' If o.RowCount > 0 Then + o.Position = 0 + invActualizado = Subs.traeinventario(id) + Log(Subs.traeinventario(id)) +' End If + If New = "" Then New = 0 + If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then + Private maxcajas As Int = 0 + Log("cajas a 0") + Else + Private maxcajas As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion") + Log("cajas no a 0") + End If +' lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & (Subs.traeinventario(id))).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas}"$).Popall + lProdX.Text = cs.Color(Colors.red).append(nombreX).Popall +' lProdX.Text = "" + End If + End If + + If New > 0 Then + panelcajas.Visible = False + Else If New = 0 Then + If maxcajas = 0 Then + panelcajas.Visible = False + Else + panelcajas.Visible = True + End If + End If + + Else + laCant.Text = Old + MsgboxAsync("No se puede quitar la devolucion por que no hay producto fisico.","Atención.") + End If + End If + + Else + + + + Log("--------------->Credito Disponible: "&B4XPages.MainPage.cliente.credito_diponible) + If B4XPages.MainPage.tipo_venta = "PREVENTA_CREDITO" Then + + Dim fg As Cursor = Starter.skmt.ExecQuery("Select IFNULL(sum(PE_COSTO_TOT),0) AS COSTO FROM PEDIDO WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND PE_FOLIO = 'PREVENTA_CREDITO'") + fg.Position = 0 + If Old = "" Or Old = Null Then New = 0 + Log(precio &" * "&Old) + + + + Log(fg.GetString("COSTO") +(precio*New)) + If fg.GetString("COSTO") +((precio*New)-(precio*Old)) <= B4XPages.MainPage.cliente.credito_diponible Then + + + +' If laCant2.IsInitialized Then +' totalcajasmaspiezas = laCant.Text + laCant2.Text +' Else +' totalcajasmaspiezas = laCant.Text +' End If + If Not(Old = "0" And New = "") And laCant.Text <> Null And laCant.Text <> "" And etCantHasFocus Then + Log("actualizamos producto") + Subs.actualizaProducto3(Subs.traeAlmacen, 0, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,0,0) + cuentaProds + End If + +' If New <> "" And New.SubString2(0,0) = "0" Then +' New.SubString(1) +' End If +' If New <> "" And New.SubString(1) <> "" Then +' Log(New.SubString(1)) +' New = New.SubString(1) +' laCant.Text = New.SubString(1) +' Log(laCant.Text) +' End If + + If 1 = 1 Then + Private cs As CSBuilder + cs.Initialize + Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$) + Private invActualizado As String = "0" +' If o.RowCount > 0 Then + o.Position = 0 + invActualizado = Subs.traeinventario(id) + Log(Subs.traeinventario(id)) +' End If + + If New = "" Then New = 0 + If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then + Private maxcajas As Int = 0 + Log("cajas a 0") + Else + Private maxcajas As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion") + Log("cajas no a 0") + End If + lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & (Subs.traeinventario(id))).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas}"$).Popall + End If + Else + laCant.Text = 0 + MsgboxAsync("No se puede meter mas venta a credito por que supera el limite del credito","Atencion") + End If + Else ' If laCant2.IsInitialized Then ' totalcajasmaspiezas = laCant.Text + laCant2.Text ' Else @@ -887,7 +1105,7 @@ Private Sub et_pCant_TextChanged (Old As String, New As String) ' End If If Not(Old = "0" And New = "") And laCant.Text <> Null And laCant.Text <> "" And etCantHasFocus Then Log("actualizamos producto") - Subs.actualizaProducto(Subs.traeAlmacen, precio, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,0,0) + Subs.actualizaProducto3(Subs.traeAlmacen, 0, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,0,0) cuentaProds End If @@ -900,7 +1118,6 @@ Private Sub et_pCant_TextChanged (Old As String, New As String) ' laCant.Text = New.SubString(1) ' Log(laCant.Text) ' End If - If 1 = 1 Then Private cs As CSBuilder cs.Initialize @@ -911,7 +1128,6 @@ Private Sub et_pCant_TextChanged (Old As String, New As String) invActualizado = Subs.traeinventario(id) Log(Subs.traeinventario(id)) ' End If - If New = "" Then New = 0 If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then Private maxcajas As Int = 0 @@ -920,67 +1136,29 @@ Private Sub et_pCant_TextChanged (Old As String, New As String) Private maxcajas As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion") Log("cajas no a 0") End If - lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & (Subs.traeinventario(id))).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas}"$).Popall +' lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & (Subs.traeinventario(id))).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas}"$).Popall + lProdX.Text = cs.Color(Colors.red).append(nombreX).Popall +' lProdX.Text = "" End If - Else - laCant.Text = 0 - MsgboxAsync("No se puede meter mas venta a credito por que supera el limite del credito","Atencion") End If - Else -' If laCant2.IsInitialized Then -' totalcajasmaspiezas = laCant.Text + laCant2.Text -' Else -' totalcajasmaspiezas = laCant.Text -' End If - If Not(Old = "0" And New = "") And laCant.Text <> Null And laCant.Text <> "" And etCantHasFocus Then - Log("actualizamos producto") - Subs.actualizaProducto(Subs.traeAlmacen, precio, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,0,0) - cuentaProds - End If - -' If New <> "" And New.SubString2(0,0) = "0" Then -' New.SubString(1) -' End If -' If New <> "" And New.SubString(1) <> "" Then -' Log(New.SubString(1)) -' New = New.SubString(1) -' laCant.Text = New.SubString(1) -' Log(laCant.Text) -' End If - If 1 = 1 Then - Private cs As CSBuilder - cs.Initialize - Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$) - Private invActualizado As String = "0" -' If o.RowCount > 0 Then - o.Position = 0 - invActualizado = Subs.traeinventario(id) - Log(Subs.traeinventario(id)) -' End If - If New = "" Then New = 0 - If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then - Private maxcajas As Int = 0 - Log("cajas a 0") - Else - Private maxcajas As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion") - Log("cajas no a 0") - End If - lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & (Subs.traeinventario(id))).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas}"$).Popall - End If - End If - End If - If New > 0 Then - panelcajas.Visible = False - Else If New = 0 Then - If maxcajas = 0 Then + + If New > 0 Then panelcajas.Visible = False - Else - panelcajas.Visible = True + Else If New = 0 Then + If maxcajas = 0 Then + panelcajas.Visible = False + Else + panelcajas.Visible = True + End If End If + End If + End If + End If End Sub + Sub cuentaProds ' LogColor($"Productos de la orden: ${c_prods.GetString("cantProds")}, Total: ${c_prodsX.GetString("costoTotal")}"$, Colors.red) Log("===========================") @@ -1440,7 +1618,8 @@ Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As In ' Log("cajas no a 0") End If ' Private maxcajas As Int = clv_prods_ll.GetValue(i).As(Map).Get("almacen")/clv_prods_ll.GetValue(i).As(Map).Get("conversion") - l_prodX.Text = cs.Color(Colors.red).append(clv_prods_ll.GetValue(i).As(Map).Get("prod")).pop.append(CRLF).Append("Existencias: " & clv_prods_ll.GetValue(i).As(Map).Get("almacen")).Color(0xFF017F01).Append($" $${precio}${CRLF}Max. Cajas: ${maxcajas}"$).Popall +' l_prodX.Text = cs.Color(Colors.red).append(clv_prods_ll.GetValue(i).As(Map).Get("prod")).pop.append(CRLF).Append("Existencias: " & clv_prods_ll.GetValue(i).As(Map).Get("almacen")).Color(0xFF017F01).Append($" $${precio}${CRLF}Max. Cajas: ${maxcajas}"$).Popall + l_prodX.Text = cs.Color(Colors.red).append(clv_prods_ll.GetValue(i).As(Map).Get("prod")).Popall 'aqui si lo comentamos aparece la parte de cajas '' por aqui vamos a corregir ''Or clv_prods_ll.GetValue(i).As(Map).Get("almacen") < clv_prods_ll.GetValue(i).As(Map).Get("conversion") @@ -1618,388 +1797,388 @@ End Sub -Sub b_prodMenosc_Click - totalcajasmaspiezas = 0 - etCantHasFocus = False - Root.RequestFocus -' LogColor("b_prodMenos_Click", Colors.Magenta) - Dim index As Int = clv_prods_ll.GetItemFromView(Sender) - Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index) - Dim pnl As B4XView = pnl0.GetView(0) - Dim laCant As B4XView = pnl.GetView(2).GetView(2) - Dim laCant2 As B4XView = pnl.GetView(3).GetView(2) - Dim lProdX As B4XView = pnl.GetView(1) - Dim panelcajas As B4XView = pnl.GetView(3) - Dim panelpiezas As B4XView = pnl.GetView(2) -' Log($"precio|stock:${laCant.tag}"$) - If laCant2.Text = "" Then laCant2.Text = 0 -' Log("lacant.text="&laCant.text) - laCant2.Text = $"${NumberFormat2(laCant2.Text-1,0,0,0,False)}"$ - If laCant2.Text < 0 Then laCant2.Text = 0 - Private tmpMap As Map = clv_prods_ll.GetValue(index).As(Map) - Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio") - Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id") - Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant2.Text, "almacen":Subs.traeAlmacen) - Private nombreX As String = Subs.traeProdNombre(id) - Private conversion As String = clv_prods_ll.GetValue(index).As(Map).Get("conversion") - Private preciocaja As String = clv_prods_ll.GetValue(index).As(Map).Get("precio_caja") - - Log(tmpMap) -' prodsMap.Put(id, tmpMap) - If laCant2.Text = 0 Then prodsMap.Remove(id) - If laCant2.Text = 0 Then - panelpiezas.Visible = True - Else If laCant2.Text > 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion") < clv_prods_ll.GetValue(index).As(Map).Get("almacen") Then - panelpiezas.Visible = False - End If -' If laCant.IsInitialized Then -' totalcajasmaspiezas = laCant.Text + laCant2.Text -' Else -' totalcajasmaspiezas = laCant2.Text -' End If - LogColor("prodsMap="&prodsMap, Colors.blue) -' (Subs.traeAlmacen, p1.Get("precio"), p1.Get("cant"), pn, p, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta) - Log($"${Subs.traeAlmacen}, ${precio}, ${laCant2.text}, ${Subs.traeProdNombre(id)}, ${id}, ${clienteId}"$) -' Subs.actualizaProducto(Subs.traeAlmacen, preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1) - Subs.actualizaProducto2(Subs.traeAlmacen, preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1) - cuentaProds - LogColor("prodsMap="&prodsMap, Colors.blue) - Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$) - If 1 = 1 Then - Private cs As CSBuilder - cs.Initialize - Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$) - Private invActualizado As String = "0" - If o.RowCount > 0 Then - o.Position = 0 - invActualizado = o.GetString("CAT_GP_ALMACEN") - End If - If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then - Private maxcajas2 As Int = 0 - Log("cajas a 0") - Else - Private maxcajas2 As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion") - Log("cajas no a 0") - End If - If 2 = 2 Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas2}"$).Popall -' Log(lProdX.Text) - End If - If Subs.totalPedido < 1 Then laCant2.Text = "0" - invTotal = totalcajasmaspiezas + Subs.traeinventario(id) -' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red) - -End Sub - -Sub b_prodMasc_Click - etCantHasFocus = False - Root.RequestFocus -' LogColor("b_prodMas_Click", Colors.Magenta) - - Dim index As Int = clv_prods_ll.GetItemFromView(Sender) - Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index) - Dim pnl As B4XView = pnl0.GetView(0) - Dim laCant As B4XView = pnl.GetView(2).GetView(2) - Dim laCant2 As B4XView = pnl.GetView(3).GetView(2) - Dim lProdX As B4XView = pnl.GetView(1) - Dim panelcajas As B4XView = pnl.GetView(3) - Dim panelpiezas As B4XView = pnl.GetView(2) +'Sub b_prodMenosc_Click +' totalcajasmaspiezas = 0 +' etCantHasFocus = False +' Root.RequestFocus +'' LogColor("b_prodMenos_Click", Colors.Magenta) +' Dim index As Int = clv_prods_ll.GetItemFromView(Sender) +' Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index) +' Dim pnl As B4XView = pnl0.GetView(0) +' Dim laCant As B4XView = pnl.GetView(2).GetView(2) +' Dim laCant2 As B4XView = pnl.GetView(3).GetView(2) +' Dim lProdX As B4XView = pnl.GetView(1) +' Dim panelcajas As B4XView = pnl.GetView(3) +' Dim panelpiezas As B4XView = pnl.GetView(2) +'' Log($"precio|stock:${laCant.tag}"$) +' If laCant2.Text = "" Then laCant2.Text = 0 +'' Log("lacant.text="&laCant.text) +' laCant2.Text = $"${NumberFormat2(laCant2.Text-1,0,0,0,False)}"$ +' If laCant2.Text < 0 Then laCant2.Text = 0 ' Private tmpMap As Map = clv_prods_ll.GetValue(index).As(Map) - Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio") - Private inv As String=clv_prods_ll.GetValue(index).As(Map).Get("almacen") - Private existencias As String = clv_prods_ll.GetValue(index).As(Map).Get("almacen") - Private conversion As String = clv_prods_ll.GetValue(index).As(Map).Get("conversion") - Private preciocaja As String = clv_prods_ll.GetValue(index).As(Map).Get("precio_caja") - Log(conversion) - Log($"Existencias: ${existencias}"$) - If laCant2.Text = "" Then laCant2.Text = 0 - Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id") -' If laCant.Text + 1 <= inv Then - '' Log(NumberFormat2(laCant.Text+1,0,0,0,False)) -' laCant.Text = $"${NumberFormat2(laCant.Text+1,0,0,0,False)}"$ - '' Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio") -' Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id") - '' Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant.Text, "almacen":Subs.traeAlmacen) - '' Log(tmpMap) - '' prodsMap.Put(id, tmpMap) - '' LogColor(prodsMap, Colors.blue) +' Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio") +' Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id") +' Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant2.Text, "almacen":Subs.traeAlmacen) +' Private nombreX As String = Subs.traeProdNombre(id) +' Private conversion As String = clv_prods_ll.GetValue(index).As(Map).Get("conversion") +' Private preciocaja As String = clv_prods_ll.GetValue(index).As(Map).Get("precio_caja") +' +' Log(tmpMap) +'' prodsMap.Put(id, tmpMap) +' If laCant2.Text = 0 Then prodsMap.Remove(id) +' If laCant2.Text = 0 Then +' panelpiezas.Visible = True +' Else If laCant2.Text > 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion") < clv_prods_ll.GetValue(index).As(Map).Get("almacen") Then +' panelpiezas.Visible = False ' End If -' Log("Cantidad + exis " & (laCant.Text + existencias)) -' Log( (laCant.Text + 1 <= (laCant.Text + existencias))) -' Log("inventario "&Subs.traeinventario(id)) -' Log((Subs.totalPedido - precio > 1)) -' Log((Subs.totalPedido)) - - Log(B4XPages.MainPage.tipo_venta) - Log("--------------->Credito Disponible: "&B4XPages.MainPage.cliente.credito_diponible) - Log(preciocaja) -' Log(precio) - If B4XPages.MainPage.tipo_venta = "PREVENTA_CREDITO" Then - - Dim fg As Cursor = Starter.skmt.ExecQuery("Select Ifnull(sum(PE_COSTO_TOT),0) AS COSTO FROM PEDIDO WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND PE_FOLIO = 'PREVENTA_CREDITO'") - fg.Position = 0 - If fg.GetString("COSTO") + preciocaja <= B4XPages.MainPage.cliente.credito_diponible Then - - Log(Subs.traeinventario(id)) - Log((laCant2.Text * conversion) + conversion) - Log((laCant2.Text *conversion)+ Subs.traeinventario(id)) - If Subs.traeinventario(id) > 0 And ((laCant2.Text * conversion) + conversion <= ((laCant2.Text *conversion)+ Subs.traeinventario(id))) Then 'And (Subs.totalPedido - precio > 1) -' Log(clv_prods_ll.GetValue(index).As(Map)) - clv_prods_ll.GetValue(index).As(Map).Put("almacen", (inv - conversion)) - inv = inv - conversion -' laCant.Text = $"$1.0{laCant.Text+1}"$ - laCant2.Text = NumberFormat2((laCant2.Text + 1), 1, 0, 0, False) -' Log(clv_prods_ll.GetValue(index).As(Map)) - Log("cuando entro aqui?") - End If - Private nombreX As String = Subs.traeProdNombre(id) -' Subs.actualizaProducto(Subs.traeAlmacen, laCant.text, id, clienteId) - Log((laCant2.Text * conversion)) - If laCant2.Text > 0 Then - panelpiezas.Visible = False - Else If laCant2.Text = 0 Then - panelpiezas.Visible = True - End If - -' LogColor(laCant.Text,Colors.Red) -' If laCant.IsInitialized Then -' totalcajasmaspiezas = laCant.Text + laCant2.Text -' Else -' totalcajasmaspiezas = laCant2.Text -' End If - -' Subs.actualizaProducto(Subs.traeAlmacen,preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1) - Subs.actualizaProducto2(Subs.traeAlmacen,preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1) - cuentaProds +'' If laCant.IsInitialized Then +'' totalcajasmaspiezas = laCant.Text + laCant2.Text +'' Else +'' totalcajasmaspiezas = laCant2.Text +'' End If +' LogColor("prodsMap="&prodsMap, Colors.blue) +'' (Subs.traeAlmacen, p1.Get("precio"), p1.Get("cant"), pn, p, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta) +' Log($"${Subs.traeAlmacen}, ${precio}, ${laCant2.text}, ${Subs.traeProdNombre(id)}, ${id}, ${clienteId}"$) +'' Subs.actualizaProducto(Subs.traeAlmacen, preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1) +' Subs.actualizaProducto2(Subs.traeAlmacen, preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1) +' cuentaProds +' LogColor("prodsMap="&prodsMap, Colors.blue) ' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$) - If 1 = 1 Then - Private cs As CSBuilder - cs.Initialize - Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$) - Private invActualizado As String = "0" - If o.RowCount > 0 Then - o.Position = 0 - invActualizado = o.GetString("CAT_GP_ALMACEN") - End If - If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then - Private maxcajas2 As Int = 0 - Log("cajas a 0") - Else - Private maxcajas2 As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion") - Log("cajas no a 0") - End If - If 2 = 2 Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas2}"$).Popall -' Log(lProdX.Text) - End If - invTotal = totalcajasmaspiezas + Subs.traeinventario(id) -' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red) - - - Else - MsgboxAsync("No se puede meter mas venta a credito por que supera el limite del credito","Atencion") - End If - - Else - - Log(Subs.traeinventario(id)) - Log((laCant2.Text * conversion) + conversion) - Log((laCant2.Text *conversion)+ Subs.traeinventario(id)) - If Subs.traeinventario(id) > 0 And ((laCant2.Text * conversion) + conversion <= ((laCant2.Text *conversion)+ Subs.traeinventario(id))) Then 'And (Subs.totalPedido - precio > 1) -' Log(clv_prods_ll.GetValue(index).As(Map)) - clv_prods_ll.GetValue(index).As(Map).Put("almacen", (inv - conversion)) - inv = inv - conversion -' laCant.Text = $"$1.0{laCant.Text+1}"$ - laCant2.Text = NumberFormat2((laCant2.Text + 1), 1, 0, 0, False) -' Log(clv_prods_ll.GetValue(index).As(Map)) - Log("cuando entro aqui?") - End If - Private nombreX As String = Subs.traeProdNombre(id) -' Subs.actualizaProducto(Subs.traeAlmacen, laCant.text, id, clienteId) - Log((laCant2.Text * conversion)) - If laCant2.Text > 0 Then - panelpiezas.Visible = False - Else If laCant2.Text = 0 Then - panelpiezas.Visible = True - End If - -' LogColor(laCant.Text,Colors.Red) -' If laCant.IsInitialized Then -' totalcajasmaspiezas = laCant.Text + laCant2.Text -' Else -' totalcajasmaspiezas = laCant2.Text -' End If - -' Subs.actualizaProducto(Subs.traeAlmacen,preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1) - Subs.actualizaProducto2(Subs.traeAlmacen,preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1) - cuentaProds -' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$) - If 1 = 1 Then - Private cs As CSBuilder - cs.Initialize - Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$) - Private invActualizado As String = "0" - If o.RowCount > 0 Then - o.Position = 0 - invActualizado = o.GetString("CAT_GP_ALMACEN") - End If - If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then - Private maxcajas2 As Int = 0 - Log("cajas a 0") - Else - Private maxcajas2 As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion") - Log("cajas no a 0") - End If - If 2 = 2 Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas2}"$).Popall -' Log(lProdX.Text) - End If - invTotal = totalcajasmaspiezas + Subs.traeinventario(id) -' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red) - - End If - - - -End Sub - -Private Sub et_pCantc_FocusChanged (HasFocus As Boolean) - LogColor($"focus changed=${HasFocus}"$, Colors.Magenta) - If et_pCantc.Text = "" Then et_pCantc.Text = "0" - Dim index As Int = clv_prods_ll.GetItemFromView(Sender) - Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index) - Dim pnl As B4XView = pnl0.GetView(0) - Dim laCant As B4XView = pnl.GetView(2).GetView(2) - Dim laCant2 As B4XView = pnl.GetView(3).GetView(2) - Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id") - If laCant2.Text = "" Then laCant2.Text = "0" - etCantHasFocus = HasFocus -' LogColor(laCant.Text,Colors.Red) -' If laCant.IsInitialized Then -' totalcajasmaspiezas = laCant.Text + laCant2.Text -' Else -' totalcajasmaspiezas = laCant2.Text -' End If - invTotal = totalcajasmaspiezas + Subs.traeinventario(id) -' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red) - - cuentaProds -End Sub - -Private Sub et_pCantc_TextChanged (Old As String, New As String) -' Log(etCantHasFocus) -' Log("InvTotal: " & invTotal) - If etCantHasFocus = True Then -' Sleep(500) -' LogColor($"txt changed: ${Old}|${New}, hasfocus=${etCantHasFocus}"$,Colors.Magenta) - Dim index As Int = clv_prods_ll.GetItemFromView(Sender) - Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index) - Dim pnl As B4XView = pnl0.GetView(0) - Dim laCant As B4XView = pnl.GetView(2).GetView(2) - Dim laCant2 As B4XView = pnl.GetView(3).GetView(2) - Dim lProdX As B4XView = pnl.GetView(1) - Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id") - Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio") - Private inv As String=clv_prods_ll.GetValue(index).As(Map).Get("almacen") - Private inv As String=Subs.traeinventario(id) - Private nombreX As String = Subs.traeProdNombre(id) - Dim panelcajas As B4XView = pnl.GetView(3) - Dim panelpiezas As B4XView = pnl.GetView(2) - Private conversion As String = clv_prods_ll.GetValue(index).As(Map).Get("conversion") - Private preciocaja As String = clv_prods_ll.GetValue(index).As(Map).Get("precio_caja") - - invTotal = Subs.traeinventario(id) - Log("inventario total "& invTotal) - If(New = "" Or New = Null Or New = "-") Then New = 0 -' If New < 0 Then New = 0 - Log(($"new*conversion ${New * conversion} > ${invTotal} = ${((New * conversion) > invTotal)}"$)) - If((New * conversion) > invTotal) Then -' Dim maximocajas As Int = invTotal / conversion - Sender.As(EditText).text = 0 - New = 0 -' LogColor("cajas maximas "& maximocajas, Colors.Red) - pnl.GetView(2).Visible = True - Log("ponemos en 0") - End If - - Log("--------------->Credito Disponible: "&B4XPages.MainPage.cliente.credito_diponible) - - Dim fg As Cursor = Starter.skmt.ExecQuery("Select IFNULL(sum(PE_COSTO_TOT),0) AS COSTO FROM PEDIDO WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND PE_FOLIO = 'PREVENTA_CREDITO'") - fg.Position = 0 - If Old = "" Or Old = Null Then New = 0 - Log(preciocaja &" * "&Old) - - Log((fg.GetString("COSTO") + (preciocaja*New)) & " Monto Actual<-------") - If fg.GetString("COSTO") +((preciocaja*New)) > B4XPages.MainPage.cliente.credito_diponible Then - laCant2.Text = 0 - MsgboxAsync("No se puede meter mas venta a credito por que supera el limite del credito","Atencion") - End If - - ' Log($"inventario=${inv}"$) - Log("inventario total despues de max "& invTotal) - - If New = "" Then New = 0 - If laCant2.Text = "" Then laCant2.Text = 0 -' LogColor("la cant2 " &laCant2.Text,Colors.Red) - - If New > 0 Then - Log("lo ocultamos") - panelpiezas.Visible = False - Else If New = 0 Then - panelpiezas.Visible = True - End If - -' If laCant.IsInitialized Then -' totalcajasmaspiezas = laCant.Text + laCant2.Text +' If 1 = 1 Then +' Private cs As CSBuilder +' cs.Initialize +' Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$) +' Private invActualizado As String = "0" +' If o.RowCount > 0 Then +' o.Position = 0 +' invActualizado = o.GetString("CAT_GP_ALMACEN") +' End If +' If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then +' Private maxcajas2 As Int = 0 +' Log("cajas a 0") ' Else -' totalcajasmaspiezas = laCant2.Text +' Private maxcajas2 As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion") +' Log("cajas no a 0") ' End If - Log("InvTotal: " & invTotal) - - If Not(Old = "0" And New = "") And laCant2.Text <> Null And laCant2.Text <> "" And etCantHasFocus Then - If invTotal - (laCant2.Text * conversion) >= 0 Then - LogColor("validacion inventariio " & (invTotal - (laCant2.Text * conversion)), Colors.Blue) - Log("actualizamos producto") - Subs.actualizaProducto2(Subs.traeAlmacen, preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1) - cuentaProds - Else - Private totalcajaspermi As Int = invTotal / conversion - laCant2.Text = totalcajaspermi - Log("cajas permitidas total por guerra "& totalcajaspermi) - End If - End If - LogColor("la cant2 " & laCant2.Text,Colors.Green) - - -' If New <> "" And New.SubString2(0,0) = "0" Then -' New.SubString(1) -' End If -' If New <> "" And New.SubString(1) <> "" Then -' Log(New.SubString(1)) -' New = New.SubString(1) -' laCant.Text = New.SubString(1) -' Log(laCant.Text) -' End If - - If 1 = 1 Then - Private cs As CSBuilder - cs.Initialize - Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$) - Private invActualizado As String = "0" -' If o.RowCount > 0 Then - o.Position = 0 - invActualizado = Subs.traeinventario(id) - Log(Subs.traeinventario(id)) +' If 2 = 2 Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas2}"$).Popall +'' Log(lProdX.Text) +' End If +' If Subs.totalPedido < 1 Then laCant2.Text = "0" +' invTotal = totalcajasmaspiezas + Subs.traeinventario(id) +'' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red) +' +'End Sub +' +'Sub b_prodMasc_Click +' etCantHasFocus = False +' Root.RequestFocus +'' LogColor("b_prodMas_Click", Colors.Magenta) +' +' Dim index As Int = clv_prods_ll.GetItemFromView(Sender) +' Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index) +' Dim pnl As B4XView = pnl0.GetView(0) +' Dim laCant As B4XView = pnl.GetView(2).GetView(2) +' Dim laCant2 As B4XView = pnl.GetView(3).GetView(2) +' Dim lProdX As B4XView = pnl.GetView(1) +' Dim panelcajas As B4XView = pnl.GetView(3) +' Dim panelpiezas As B4XView = pnl.GetView(2) +'' Private tmpMap As Map = clv_prods_ll.GetValue(index).As(Map) +' Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio") +' Private inv As String=clv_prods_ll.GetValue(index).As(Map).Get("almacen") +' Private existencias As String = clv_prods_ll.GetValue(index).As(Map).Get("almacen") +' Private conversion As String = clv_prods_ll.GetValue(index).As(Map).Get("conversion") +' Private preciocaja As String = clv_prods_ll.GetValue(index).As(Map).Get("precio_caja") +' Log(conversion) +' Log($"Existencias: ${existencias}"$) +' If laCant2.Text = "" Then laCant2.Text = 0 +' Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id") +'' If laCant.Text + 1 <= inv Then +' '' Log(NumberFormat2(laCant.Text+1,0,0,0,False)) +'' laCant.Text = $"${NumberFormat2(laCant.Text+1,0,0,0,False)}"$ +' '' Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio") +'' Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id") +' '' Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant.Text, "almacen":Subs.traeAlmacen) +' '' Log(tmpMap) +' '' prodsMap.Put(id, tmpMap) +' '' LogColor(prodsMap, Colors.blue) +'' End If +'' Log("Cantidad + exis " & (laCant.Text + existencias)) +'' Log( (laCant.Text + 1 <= (laCant.Text + existencias))) +'' Log("inventario "&Subs.traeinventario(id)) +'' Log((Subs.totalPedido - precio > 1)) +'' Log((Subs.totalPedido)) +' +' Log(B4XPages.MainPage.tipo_venta) +' Log("--------------->Credito Disponible: "&B4XPages.MainPage.cliente.credito_diponible) +' Log(preciocaja) +'' Log(precio) +' If B4XPages.MainPage.tipo_venta = "PREVENTA_CREDITO" Then +' +' Dim fg As Cursor = Starter.skmt.ExecQuery("Select Ifnull(sum(PE_COSTO_TOT),0) AS COSTO FROM PEDIDO WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND PE_FOLIO = 'PREVENTA_CREDITO'") +' fg.Position = 0 +' If fg.GetString("COSTO") + preciocaja <= B4XPages.MainPage.cliente.credito_diponible Then +' +' Log(Subs.traeinventario(id)) +' Log((laCant2.Text * conversion) + conversion) +' Log((laCant2.Text *conversion)+ Subs.traeinventario(id)) +' If Subs.traeinventario(id) > 0 And ((laCant2.Text * conversion) + conversion <= ((laCant2.Text *conversion)+ Subs.traeinventario(id))) Then 'And (Subs.totalPedido - precio > 1) +'' Log(clv_prods_ll.GetValue(index).As(Map)) +' clv_prods_ll.GetValue(index).As(Map).Put("almacen", (inv - conversion)) +' inv = inv - conversion +'' laCant.Text = $"$1.0{laCant.Text+1}"$ +' laCant2.Text = NumberFormat2((laCant2.Text + 1), 1, 0, 0, False) +'' Log(clv_prods_ll.GetValue(index).As(Map)) +' Log("cuando entro aqui?") ' End If - - If New = "" Then New = 0 - Log(clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float)&" Precio caja") - Log(clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int)& " Conversion" ) - If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then - Private maxcajas2 As Int = 0 - Log("cajas a 0") - Else - Private maxcajas2 As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion") - Log("cajas no a 0") - End If - lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & (Subs.traeinventario(id))).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas2}"$).Popall - End If - End If -End Sub \ No newline at end of file +' Private nombreX As String = Subs.traeProdNombre(id) +'' Subs.actualizaProducto(Subs.traeAlmacen, laCant.text, id, clienteId) +' Log((laCant2.Text * conversion)) +' If laCant2.Text > 0 Then +' panelpiezas.Visible = False +' Else If laCant2.Text = 0 Then +' panelpiezas.Visible = True +' End If +' +'' LogColor(laCant.Text,Colors.Red) +'' If laCant.IsInitialized Then +'' totalcajasmaspiezas = laCant.Text + laCant2.Text +'' Else +'' totalcajasmaspiezas = laCant2.Text +'' End If +' +'' Subs.actualizaProducto(Subs.traeAlmacen,preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1) +' Subs.actualizaProducto2(Subs.traeAlmacen,preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1) +' cuentaProds +'' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$) +' If 1 = 1 Then +' Private cs As CSBuilder +' cs.Initialize +' Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$) +' Private invActualizado As String = "0" +' If o.RowCount > 0 Then +' o.Position = 0 +' invActualizado = o.GetString("CAT_GP_ALMACEN") +' End If +' If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then +' Private maxcajas2 As Int = 0 +' Log("cajas a 0") +' Else +' Private maxcajas2 As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion") +' Log("cajas no a 0") +' End If +' If 2 = 2 Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas2}"$).Popall +'' Log(lProdX.Text) +' End If +' invTotal = totalcajasmaspiezas + Subs.traeinventario(id) +'' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red) +' +' +' Else +' MsgboxAsync("No se puede meter mas venta a credito por que supera el limite del credito","Atencion") +' End If +' +' Else +' +' Log(Subs.traeinventario(id)) +' Log((laCant2.Text * conversion) + conversion) +' Log((laCant2.Text *conversion)+ Subs.traeinventario(id)) +' If Subs.traeinventario(id) > 0 And ((laCant2.Text * conversion) + conversion <= ((laCant2.Text *conversion)+ Subs.traeinventario(id))) Then 'And (Subs.totalPedido - precio > 1) +'' Log(clv_prods_ll.GetValue(index).As(Map)) +' clv_prods_ll.GetValue(index).As(Map).Put("almacen", (inv - conversion)) +' inv = inv - conversion +'' laCant.Text = $"$1.0{laCant.Text+1}"$ +' laCant2.Text = NumberFormat2((laCant2.Text + 1), 1, 0, 0, False) +'' Log(clv_prods_ll.GetValue(index).As(Map)) +' Log("cuando entro aqui?") +' End If +' Private nombreX As String = Subs.traeProdNombre(id) +'' Subs.actualizaProducto(Subs.traeAlmacen, laCant.text, id, clienteId) +' Log((laCant2.Text * conversion)) +' If laCant2.Text > 0 Then +' panelpiezas.Visible = False +' Else If laCant2.Text = 0 Then +' panelpiezas.Visible = True +' End If +' +'' LogColor(laCant.Text,Colors.Red) +'' If laCant.IsInitialized Then +'' totalcajasmaspiezas = laCant.Text + laCant2.Text +'' Else +'' totalcajasmaspiezas = laCant2.Text +'' End If +' +'' Subs.actualizaProducto(Subs.traeAlmacen,preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1) +' Subs.actualizaProducto2(Subs.traeAlmacen,preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1) +' cuentaProds +'' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$) +' If 1 = 1 Then +' Private cs As CSBuilder +' cs.Initialize +' Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$) +' Private invActualizado As String = "0" +' If o.RowCount > 0 Then +' o.Position = 0 +' invActualizado = o.GetString("CAT_GP_ALMACEN") +' End If +' If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then +' Private maxcajas2 As Int = 0 +' Log("cajas a 0") +' Else +' Private maxcajas2 As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion") +' Log("cajas no a 0") +' End If +' If 2 = 2 Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas2}"$).Popall +'' Log(lProdX.Text) +' End If +' invTotal = totalcajasmaspiezas + Subs.traeinventario(id) +'' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red) +' +' End If +' +' +' +'End Sub +' +'Private Sub et_pCantc_FocusChanged (HasFocus As Boolean) +' LogColor($"focus changed=${HasFocus}"$, Colors.Magenta) +' If et_pCantc.Text = "" Then et_pCantc.Text = "0" +' Dim index As Int = clv_prods_ll.GetItemFromView(Sender) +' Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index) +' Dim pnl As B4XView = pnl0.GetView(0) +' Dim laCant As B4XView = pnl.GetView(2).GetView(2) +' Dim laCant2 As B4XView = pnl.GetView(3).GetView(2) +' Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id") +' If laCant2.Text = "" Then laCant2.Text = "0" +' etCantHasFocus = HasFocus +'' LogColor(laCant.Text,Colors.Red) +'' If laCant.IsInitialized Then +'' totalcajasmaspiezas = laCant.Text + laCant2.Text +'' Else +'' totalcajasmaspiezas = laCant2.Text +'' End If +' invTotal = totalcajasmaspiezas + Subs.traeinventario(id) +'' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red) +' +' cuentaProds +'End Sub +' +'Private Sub et_pCantc_TextChanged (Old As String, New As String) +'' Log(etCantHasFocus) +'' Log("InvTotal: " & invTotal) +' If etCantHasFocus = True Then +'' Sleep(500) +'' LogColor($"txt changed: ${Old}|${New}, hasfocus=${etCantHasFocus}"$,Colors.Magenta) +' Dim index As Int = clv_prods_ll.GetItemFromView(Sender) +' Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index) +' Dim pnl As B4XView = pnl0.GetView(0) +' Dim laCant As B4XView = pnl.GetView(2).GetView(2) +' Dim laCant2 As B4XView = pnl.GetView(3).GetView(2) +' Dim lProdX As B4XView = pnl.GetView(1) +' Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id") +' Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio") +' Private inv As String=clv_prods_ll.GetValue(index).As(Map).Get("almacen") +' Private inv As String=Subs.traeinventario(id) +' Private nombreX As String = Subs.traeProdNombre(id) +' Dim panelcajas As B4XView = pnl.GetView(3) +' Dim panelpiezas As B4XView = pnl.GetView(2) +' Private conversion As String = clv_prods_ll.GetValue(index).As(Map).Get("conversion") +' Private preciocaja As String = clv_prods_ll.GetValue(index).As(Map).Get("precio_caja") +' +' invTotal = Subs.traeinventario(id) +' Log("inventario total "& invTotal) +' If(New = "" Or New = Null Or New = "-") Then New = 0 +'' If New < 0 Then New = 0 +' Log(($"new*conversion ${New * conversion} > ${invTotal} = ${((New * conversion) > invTotal)}"$)) +' If((New * conversion) > invTotal) Then +'' Dim maximocajas As Int = invTotal / conversion +' Sender.As(EditText).text = 0 +' New = 0 +'' LogColor("cajas maximas "& maximocajas, Colors.Red) +' pnl.GetView(2).Visible = True +' Log("ponemos en 0") +' End If +' +' Log("--------------->Credito Disponible: "&B4XPages.MainPage.cliente.credito_diponible) +' +' Dim fg As Cursor = Starter.skmt.ExecQuery("Select IFNULL(sum(PE_COSTO_TOT),0) AS COSTO FROM PEDIDO WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND PE_FOLIO = 'PREVENTA_CREDITO'") +' fg.Position = 0 +' If Old = "" Or Old = Null Then New = 0 +' Log(preciocaja &" * "&Old) +' +' Log((fg.GetString("COSTO") + (preciocaja*New)) & " Monto Actual<-------") +' If fg.GetString("COSTO") +((preciocaja*New)) > B4XPages.MainPage.cliente.credito_diponible Then +' laCant2.Text = 0 +' MsgboxAsync("No se puede meter mas venta a credito por que supera el limite del credito","Atencion") +' End If +' +' ' Log($"inventario=${inv}"$) +' Log("inventario total despues de max "& invTotal) +' +' If New = "" Then New = 0 +' If laCant2.Text = "" Then laCant2.Text = 0 +'' LogColor("la cant2 " &laCant2.Text,Colors.Red) +' +' If New > 0 Then +' Log("lo ocultamos") +' panelpiezas.Visible = False +' Else If New = 0 Then +' panelpiezas.Visible = True +' End If +' +'' If laCant.IsInitialized Then +'' totalcajasmaspiezas = laCant.Text + laCant2.Text +'' Else +'' totalcajasmaspiezas = laCant2.Text +'' End If +' Log("InvTotal: " & invTotal) +' +' If Not(Old = "0" And New = "") And laCant2.Text <> Null And laCant2.Text <> "" And etCantHasFocus Then +' If invTotal - (laCant2.Text * conversion) >= 0 Then +' LogColor("validacion inventariio " & (invTotal - (laCant2.Text * conversion)), Colors.Blue) +' Log("actualizamos producto") +' Subs.actualizaProducto2(Subs.traeAlmacen, preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1) +' cuentaProds +' Else +' Private totalcajaspermi As Int = invTotal / conversion +' laCant2.Text = totalcajaspermi +' Log("cajas permitidas total por guerra "& totalcajaspermi) +' End If +' End If +' LogColor("la cant2 " & laCant2.Text,Colors.Green) +' +' +'' If New <> "" And New.SubString2(0,0) = "0" Then +'' New.SubString(1) +'' End If +'' If New <> "" And New.SubString(1) <> "" Then +'' Log(New.SubString(1)) +'' New = New.SubString(1) +'' laCant.Text = New.SubString(1) +'' Log(laCant.Text) +'' End If +' +' If 1 = 1 Then +' Private cs As CSBuilder +' cs.Initialize +' Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$) +' Private invActualizado As String = "0" +'' If o.RowCount > 0 Then +' o.Position = 0 +' invActualizado = Subs.traeinventario(id) +' Log(Subs.traeinventario(id)) +'' End If +' +' If New = "" Then New = 0 +' Log(clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float)&" Precio caja") +' Log(clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int)& " Conversion" ) +' If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then +' Private maxcajas2 As Int = 0 +' Log("cajas a 0") +' Else +' Private maxcajas2 As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion") +' Log("cajas no a 0") +' End If +' lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & (Subs.traeinventario(id))).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas2}"$).Popall +' End If +' End If +'End Sub \ No newline at end of file diff --git a/B4A/C_RespaldoDiario.bas b/B4A/C_RespaldoDiario.bas index 86f893e..f505c7a 100644 --- a/B4A/C_RespaldoDiario.bas +++ b/B4A/C_RespaldoDiario.bas @@ -41,6 +41,7 @@ Public Sub Initialize As Object agregaColumna2(rkmt,"pedidos","PE_DESCRAGA","text") agregaColumna2(rkmt,"pedidos","PE_CONFIRMADO","text") agregaColumna2(rkmt,"pedidos","pe_bcajas","text") + agregaColumna2(rkmt,"pedidos","PE_FOLIOFAC","text") Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna en la tabla Private c As Cursor = rkmt.ExecQuery($"SELECT COUNT(*) AS fCol FROM pragma_table_info('pedidos') WHERE name='pe_envio_ok'"$) c.Position = 0 @@ -89,7 +90,7 @@ Sub respaldaPedido Log("copiando pedidos ...") rkmt.BeginTransaction rkmt.ExecNonQuery($"delete from pedidos where substr(pe_fecha, 1, 10) = '${fechaHoy}'"$) - rkmt.ExecNonQuery($"insert into pedidos (pe_folio, pe_desc, pe_costo_sin, pe_ruta, pe_cedis, pe_costo_tot, pe_costou, pe_cant, pe_pronombre, pe_proid, pe_cliente, pe_fecha, pe_usuario, pe_envio_ok,pe_cantc,pe_bcajas, PE_CONFIRMADO, PE_DESCRAGA) select * from skmt1.pedido where substr(pe_fecha, 1, 10) = '${fechaHoy}'"$) + rkmt.ExecNonQuery($"insert into pedidos (pe_folio, pe_desc, pe_costo_sin, pe_ruta, pe_cedis, pe_costo_tot, pe_costou, pe_cant, pe_pronombre, pe_proid, pe_cliente, pe_fecha, pe_usuario, pe_envio_ok,pe_cantc,pe_bcajas, PE_CONFIRMADO, PE_DESCRAGA,PE_FOLIOFAC) select * from skmt1.pedido where substr(pe_fecha, 1, 10) = '${fechaHoy}'"$) rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!! rkmt.EndTransaction ' Log(((DateTime.Now - inicio)/1000) & " segs") diff --git a/B4A/Files/amigos.jpg b/B4A/Files/amigos.jpg index 4c9f8b822dfb2660327fade40834f7f4ad61abbf..9b4dddd4b8fdb1d5838af8cb3df1c7a3e7fffb79 100644 GIT binary patch literal 20501 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 UUiI>UyQRQ&FS=5de^M*|*-+K|6#xJL literal 24823 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%0D#IZx)q}6uq%Q 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 delta 1213 zcmYk*T}V@59LMozbCWT*8njH?biOq+Q`6>3dvk7;b6MLoSL(LhG&9Sz=nbk7MZ}_6 zoVzS?kWhmz+AJ@Mk}PN!5iBa9f?||VCKQHtVf0_Q^}G0<^Ev0?Ifv)roZ#i8p=rKU z$QaY7Feaw+p*zwR9_Qt~2(|Nz_}ooFfU^tBL`gJctu8I#9;7bjo(dazu8=ZW!Sg8S zzLLtIGAR|61`-};}=G#!`seYQ-@Fr7vw z3QxCxcPd-%ma2|K0QTZlE}7OzZYHyM9ViPMr4MyW#Ll{cq}gv%1KsJk1xw(M1Hq)$ delta 49 zcmca;d&zb~7`KEd0|SGWf^$x0YF*w>fyV*5KNkYZUe0SgXecyZE_dehE z-gn!uqA1#9it+^B+c6%;h~;g4QMa#c0o~_LCM~sG)~pD4@uHT$GHhOrc2gj3&X>&v zqcFT++orK1w$GJWnbWMxBCXj|^O`lU$`;9jZs)YCwole&ZG>zxH#MG$k4(i=$unac zz(`NUV;L~xsS&RCrPUd&w4xm5I_F&?SXEr-E<`Tz_R&PrUrTcf!_l)%3OW!}Z|6)(3?_O`uZ&vT2yPGqa z`>F6bD>`uF)Q8`9-1@}~0zOI=cDN?LavAU{wO|W`WQ48GaU+`=v?qkP$oyE; zD>~xgri-ejtA^cAQzdQIW;)qsnaWFg!7kEtQPby&HWiDikuRE-*lRgjLegx}ov7D)zOK>^?k}PDnwZPtr9TZvmBw!77J?YCZgrq_X%Om}8YE3YL?LwqgjhWN<0_(%!eC@ft@hrs_ZxvZ(rbKw`%vd3Kk;oEn6S2oDB^=^q(!pCKRKSB>REQle z!EzJMb0jd7=Usx6PJ-F-0w0`4Uc^IO-vy!?(QcQ`i1uKtV>mBiglN-=ad~-pFF6?U z>)eMI6_l4T!Xb&BhvT^-&ix3EAiyoXNCXNBzk<;vcn~%Z4=++L90v~xoF=QlVB!En zLe>w!N7;K52+td_#NhdBADHF&umD3qTL7j9;+`uFfJs9}fT3^|7{U|;<^ymZ3=CuS za1>z1!I8aBfbhKWEP*LsPDoEhE4wBCfI)t%aQKn;u$vJ|D zm)DX^EG20_^u}vHM=4BoDK{Dnf_Ds@uyUMIEETW%UL%KkuVYA)^z!HpF1?AzNfM{< z@aoFfy4c05tqYDjiO5=$3f<|pE}HWq@hpM4QlT+WPK6GG61?Led@v<2t%WHGZdhpm z7Na_i5#fz-219P5v*e`k5FELS;J6vC265z$K^)J46IKMxkf1pNMk6$Fi3*wwyE!z! zfh3!z|DK%2T+GaZ5KOtTlwol1nHb3bZOati| z{9<0MXXLQnYR_mB?+e(fwiq4)ZyIa??~4#$8@%tpQk!^BLiG{h{T8-bQ@m-g1-##e z_}bvjN@)}COHh48c)x?K))a3VYyt0gA-*DF@kS@;V-4yDOTluaIQi}2q!C=;y literal 0 HcmV?d00001 diff --git a/B4A/Files/principal.bal b/B4A/Files/principal.bal index dfd41908cb918cfba7fc8ef7a0656de5884e982d..bdcd9e71afa5fba900d90228faa94e5e517d2408 100644 GIT binary patch delta 2850 zcmajhdrVVT7y$5lEfiXwE#)DCm6w9x#!Cfp!`hWnakR7uf=Y{uFJ2Da)*(`KZaQ?6 z`Y{kt6m^@#8F0invpH8CiI~h-jZ4%7r*6xVJ;W^8{#eNNoeLMgW+rR$wZHTH?m73i zr!Chd?T;h@-WzP$pC_FGjsCufrB;*Hsw*sU?oIad!SY(`_Ns=h>zto$QU+pC zyS&6|GH45|T7yn+1XENPWbuK%UK34eLwS6tL>RZca&1*jdiKyNuV!ATFij4*>%A(8 zO>C;HtEx#$mx_F*jH$ZJp?ql`&$q!rp8*ArJ*QzPF$6=dZ@41@OVcsJF_I=sechI zUUVvP+LRp}mp)bCxD4V<;`zi2&xFv60wBTtsXpwoKR|tiG5utROBSE+t+`Tt-|@ zyoz`=@fzX^eEy~$5G!f05myqgC0<9op16v51Mx=UO`_TT-z*mJa|>}baSd@TaUF3z z@mAv3h#QEvp&jDaV>@Yh9W6fLZ=l7m)|+VY`)x6x0gSfq2XmQ)S(c*3DAwEKU6y1w)4C6S4IJOTh&Upf@!U)BPz>s4MNdr&u z4u9;f-tUWLj`QM%oyG!5TJUga{ohGH#rB&!#x0sXC(eX>2i>|}k+9*DFC;zd4IiJs z57y$blZVghyv~f|7^{fSDm6=yt%15y7tq`yQ6zJw@Y>7%D(*V#_~l8 zp$)g96{CWAMu$?M4EqT{0Cr!y;K#3U->oP{Bi5S0eP@JOa?I zgeMneFgT*(&G7JQB;;;ULR+T{j=5zqo3J-KR)uMWv}TXAMKI#d;lG4)gN7(FJI6(_ zG#J9O&+|}uBphsIa=3S=lD7y8QDdVpqs3!J6P7#|at4BXgoVhvu}xS=EV#Z)hw2MC zu%tW!Y?qe6<&XSf=i>^#7?+SDT)yL|EM@?6cwT<7M=}ezuFMWufpyu~Q~D3SguR;! z?u5*saIP-|tk;rb*>Aq*+E#jGH1QBKUma35l~T-+gLi8o47ADo*zbw3pAkGf O)z1N2s~pCD2>utbn9imE delta 1869 zcmYk+eN0VZ90%~{c5`c`_qQwMmWYZXE`?sDyxgQ*CFQ-#P0`DZUZj&K)ur4{A=+Yj z*_2|pVrWgtR%0`>u=NLFEz7XskBs@;?8F3k&su{sm-V(F?)86XqtL#t#M-ffs}Q!ArA^YH$R2%|CO7y^Mr`DDYbFI`De%2CxDg4c-Wj0dHcA zn|k_K7>EOJ1}ni^!13S&@K$glc-xez{z+2}#*)F?!8^b^!Mnh_!F#}a!6{&s!G`@e zY{5Pl*bi2NQ^5zoY2bA5LGU4P2AIo)MiyCktFy_%=cFOaC~lM-%3;b8N-j7LoDVJl z9|adqnwz-LF&HQU8>%DRtQdS8Tmn7;J_#-bmw`{w`^UXN5v+wtr@?2yRp4sy zS+I^QRIY|BRFo%A{FDrzSgp{YV;%S$`8?$UrJf?3e32|%^b*;YVyADiY!h)3nj_Pi zQU_zktWWoBeQ&6JsY7ml8geyPbdG7r$d9+eHx$c{}$Wu za(2m!TVio<;mDBr$iv2~s#lM;71Wf8jX(Bh#kIcntsToO9vzt9EO(Z4#@cj;S$g)o zVt)R+EC$(KQ+ew;_j{e3mHlCBwKg&QetnAhhp6Q2)K7u(h1HJ(oQ88WKcgF4v|k7P zle%vFu5vW#>I?hQJr*r%PrqIH?Zca{AMG7ws$3^=gw>LJ 0 Then + + + + Log("----->1<--------------") + c.Position=0 + Private antCant As Int = 0 + If IsNumber(c.GetInt("PE_CANT")) Then antCant=c.GetInt("PE_CANT") + Private difCant As Int = cant - antCant + + + B4XPages.MainPage.skmt.ExecNonQuery($"update pedido set pe_cant = ${cant}, pe_costo_tot = ${0}, PE_CANTC = ${cantc}, PE_BCAJAS = ${bcajas} where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' AND PE_FOLIO = '${B4XPages.MainPage.tipo_venta}'"$) +' If B4XPages.MainPage.tipo_venta = "VENTA" Then +' B4XPages.MainPage.skmt.ExecNonQuery($"update ${Starter.tabla} set cat_gp_almacen = cat_gp_almacen - (${difCant}) where cat_gp_id = '${prodId}' "$) +' Else +' B4XPages.MainPage.skmt.ExecNonQuery($"update CAT_GUNAPROD set cat_gp_almacen = cat_gp_almacen - (${difCant}) where cat_gp_id = '${prodId}' "$) +' B4XPages.MainPage.skmt.ExecNonQuery($"update CAT_GUNAPROD4 set cat_gp_almacen = cat_gp_almacen - (${difCant}) where cat_gp_id = '${prodId}' "$) +' End If + + Log("aQUI") + Log(cant) + Log(antCant) + Log(difCant) + B4XPages.MainPage.skmt.ExecNonQuery($"update CAT_GUNAPROD2 set cat_gp_almacen = cat_gp_almacen + (${difCant}) where cat_gp_id = '${prodId}' "$) +' Log($"CANT=${cant}"$) + If cant = 0 Then + Log("BORRAMOS PROD") + B4XPages.MainPage.skmt.ExecNonQuery($"delete from pedido where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' AND PE_FOLIO = '${B4XPages.MainPage.tipo_venta}'"$) + Private pe As Cursor = B4XPages.MainPage.skmt.ExecQuery("select count(pe_cliente) as cuantosPedidos from pedido where pe_cliente In (select cuenta from cuentaa)") + pe.Position=0 + If pe.GetString("cuantosPedidos") = 0 Then B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") + End If + + Else + Log("----->2<--------------") + 'INSERTAMOS + Log(cant) + + If cant <> 0 Then guardaProductoSinGestion3(cedis, costoU, cant, nombre, prodId, clienteId, fecha, usuario, rutaV, precioSin, tipoVenta,cantc,bcajas) + End If + c.Close + + + + + + + + +End Sub + Sub traeTotalCliente As Double Private sumaTotal As Double Private cursorprueba As Cursor = B4XPages.MainPage.skmt.ExecQuery("Select PE_COSTO_TOT from pedido where PE_CLIENTE <> 0 ") diff --git a/B4A/TG.b4a b/B4A/TG.b4a index 954af4c..f5fbd30 100644 --- a/B4A/TG.b4a +++ b/B4A/TG.b4a @@ -1,528 +1,529 @@ Build1=Default,tguerraras.keymon.com.mx File1=abordo.png File10=celltitle.bal -File100=marker-azul-17.png -File101=marker-azul-18.png -File102=marker-azul-19.png -File103=marker-azul-2.png -File104=marker-azul-20.png -File105=marker-azul-21.png -File106=marker-azul-22.png -File107=marker-azul-23.png -File108=marker-azul-24.png -File109=marker-azul-25.png +File100=marker-azul-16.png +File101=marker-azul-17.png +File102=marker-azul-18.png +File103=marker-azul-19.png +File104=marker-azul-2.png +File105=marker-azul-20.png +File106=marker-azul-21.png +File107=marker-azul-22.png +File108=marker-azul-23.png +File109=marker-azul-24.png File11=cliente.bal -File110=marker-azul-26.png -File111=marker-azul-27.png -File112=marker-azul-28.png -File113=marker-azul-29.png -File114=marker-azul-3.png -File115=marker-azul-30.png -File116=marker-azul-31.png -File117=marker-azul-32.png -File118=marker-azul-33.png -File119=marker-azul-34.png +File110=marker-azul-25.png +File111=marker-azul-26.png +File112=marker-azul-27.png +File113=marker-azul-28.png +File114=marker-azul-29.png +File115=marker-azul-3.png +File116=marker-azul-30.png +File117=marker-azul-31.png +File118=marker-azul-32.png +File119=marker-azul-33.png File12=clientes.bal -File120=marker-azul-35.png -File121=marker-azul-36.png -File122=marker-azul-37.png -File123=marker-azul-38.png -File124=marker-azul-39.png -File125=marker-azul-4.png -File126=marker-azul-40.png -File127=marker-azul-41.png -File128=marker-azul-42.png -File129=marker-azul-43.png +File120=marker-azul-34.png +File121=marker-azul-35.png +File122=marker-azul-36.png +File123=marker-azul-37.png +File124=marker-azul-38.png +File125=marker-azul-39.png +File126=marker-azul-4.png +File127=marker-azul-40.png +File128=marker-azul-41.png +File129=marker-azul-42.png File13=Cobranza.bal -File130=marker-azul-44.png -File131=marker-azul-45.png -File132=marker-azul-46.png -File133=marker-azul-47.png -File134=marker-azul-48.png -File135=marker-azul-49.png -File136=marker-azul-5.png -File137=marker-azul-50.png -File138=marker-azul-51.png -File139=marker-azul-52.png -File14=datoscliente.bal -File140=marker-azul-53.png -File141=marker-azul-54.png -File142=marker-azul-55.png -File143=marker-azul-56.png -File144=marker-azul-57.png -File145=marker-azul-58.png -File146=marker-azul-59.png -File147=marker-azul-6.png -File148=marker-azul-60.png -File149=marker-azul-61.png -File15=desvanecido.png -File150=marker-azul-62.png -File151=marker-azul-63.png -File152=marker-azul-64.png -File153=marker-azul-65.png -File154=marker-azul-66.png -File155=marker-azul-67.png -File156=marker-azul-68.png -File157=marker-azul-69.png -File158=marker-azul-7.png -File159=marker-azul-70.png -File16=engrane.jpg -File160=marker-azul-71.png -File161=marker-azul-72.png -File162=marker-azul-73.png -File163=marker-azul-74.png -File164=marker-azul-75.png -File165=marker-azul-76.png -File166=marker-azul-77.png -File167=marker-azul-78.png -File168=marker-azul-79.png -File169=marker-azul-8.png -File17=engrane_gris.png -File170=marker-azul-80.png -File171=marker-azul-81.png -File172=marker-azul-82.png -File173=marker-azul-83.png -File174=marker-azul-84.png -File175=marker-azul-85.png -File176=marker-azul-86.png -File177=marker-azul-87.png -File178=marker-azul-88.png -File179=marker-azul-89.png -File18=folioabono.bal -File180=marker-azul-9.png -File181=marker-azul-90.png -File182=marker-azul-91.png -File183=marker-azul-92.png -File184=marker-azul-93.png -File185=marker-azul-94.png -File186=marker-azul-95.png -File187=marker-azul-96.png -File188=marker-azul-97.png -File189=marker-azul-98.png -File19=fondo_kmt.jpg -File190=marker-azul-99.png -File191=marker-rojo-0.png -File192=marker-rojo-1.png -File193=marker-rojo-10.png -File194=marker-rojo-100.png -File195=marker-rojo-101.png -File196=marker-rojo-102.png -File197=marker-rojo-103.png -File198=marker-rojo-104.png -File199=marker-rojo-105.png +File130=marker-azul-43.png +File131=marker-azul-44.png +File132=marker-azul-45.png +File133=marker-azul-46.png +File134=marker-azul-47.png +File135=marker-azul-48.png +File136=marker-azul-49.png +File137=marker-azul-5.png +File138=marker-azul-50.png +File139=marker-azul-51.png +File14=cuentamerma.bal +File140=marker-azul-52.png +File141=marker-azul-53.png +File142=marker-azul-54.png +File143=marker-azul-55.png +File144=marker-azul-56.png +File145=marker-azul-57.png +File146=marker-azul-58.png +File147=marker-azul-59.png +File148=marker-azul-6.png +File149=marker-azul-60.png +File15=datoscliente.bal +File150=marker-azul-61.png +File151=marker-azul-62.png +File152=marker-azul-63.png +File153=marker-azul-64.png +File154=marker-azul-65.png +File155=marker-azul-66.png +File156=marker-azul-67.png +File157=marker-azul-68.png +File158=marker-azul-69.png +File159=marker-azul-7.png +File16=desvanecido.png +File160=marker-azul-70.png +File161=marker-azul-71.png +File162=marker-azul-72.png +File163=marker-azul-73.png +File164=marker-azul-74.png +File165=marker-azul-75.png +File166=marker-azul-76.png +File167=marker-azul-77.png +File168=marker-azul-78.png +File169=marker-azul-79.png +File17=engrane.jpg +File170=marker-azul-8.png +File171=marker-azul-80.png +File172=marker-azul-81.png +File173=marker-azul-82.png +File174=marker-azul-83.png +File175=marker-azul-84.png +File176=marker-azul-85.png +File177=marker-azul-86.png +File178=marker-azul-87.png +File179=marker-azul-88.png +File18=engrane_gris.png +File180=marker-azul-89.png +File181=marker-azul-9.png +File182=marker-azul-90.png +File183=marker-azul-91.png +File184=marker-azul-92.png +File185=marker-azul-93.png +File186=marker-azul-94.png +File187=marker-azul-95.png +File188=marker-azul-96.png +File189=marker-azul-97.png +File19=folioabono.bal +File190=marker-azul-98.png +File191=marker-azul-99.png +File192=marker-rojo-0.png +File193=marker-rojo-1.png +File194=marker-rojo-10.png +File195=marker-rojo-100.png +File196=marker-rojo-101.png +File197=marker-rojo-102.png +File198=marker-rojo-103.png +File199=marker-rojo-104.png File2=alert2.png -File20=gps20.png -File200=marker-rojo-106.png -File201=marker-rojo-107.png -File202=marker-rojo-108.png -File203=marker-rojo-109.png -File204=marker-rojo-11.png -File205=marker-rojo-110.png -File206=marker-rojo-111.png -File207=marker-rojo-112.png -File208=marker-rojo-113.png -File209=marker-rojo-114.png -File21=Hacer pedido.jpg -File210=marker-rojo-115.png -File211=marker-rojo-116.png -File212=marker-rojo-117.png -File213=marker-rojo-118.png -File214=marker-rojo-119.png -File215=marker-rojo-12.png -File216=marker-rojo-120.png -File217=marker-rojo-121.png -File218=marker-rojo-122.png -File219=marker-rojo-123.png -File22=hacerpedido30.jpg -File220=marker-rojo-124.png -File221=marker-rojo-125.png -File222=marker-rojo-126.png -File223=marker-rojo-127.png -File224=marker-rojo-128.png -File225=marker-rojo-129.png -File226=marker-rojo-13.png -File227=marker-rojo-130.png -File228=marker-rojo-131.png -File229=marker-rojo-132.png -File23=hacerpedido30.png -File230=marker-rojo-133.png -File231=marker-rojo-134.png -File232=marker-rojo-135.png -File233=marker-rojo-136.png -File234=marker-rojo-137.png -File235=marker-rojo-138.png -File236=marker-rojo-139.png -File237=marker-rojo-14.png -File238=marker-rojo-140.png -File239=marker-rojo-141.png -File24=intmex_logo_192x192_old.jpg -File240=marker-rojo-142.png -File241=marker-rojo-143.png -File242=marker-rojo-144.png -File243=marker-rojo-145.png -File244=marker-rojo-146.png -File245=marker-rojo-147.png -File246=marker-rojo-148.png -File247=marker-rojo-149.png -File248=marker-rojo-15.png -File249=marker-rojo-150.png -File25=itembuttonblue.png -File250=marker-rojo-16.png -File251=marker-rojo-17.png -File252=marker-rojo-18.png -File253=marker-rojo-19.png -File254=marker-rojo-2.png -File255=marker-rojo-20.png -File256=marker-rojo-21.png -File257=marker-rojo-22.png -File258=marker-rojo-23.png -File259=marker-rojo-24.png -File26=kmt.db -File260=marker-rojo-25.png -File261=marker-rojo-26.png -File262=marker-rojo-27.png -File263=marker-rojo-28.png -File264=marker-rojo-29.png -File265=marker-rojo-3.png -File266=marker-rojo-30.png -File267=marker-rojo-31.png -File268=marker-rojo-32.png -File269=marker-rojo-33.png -File27=login.bal -File270=marker-rojo-34.png -File271=marker-rojo-35.png -File272=marker-rojo-36.png -File273=marker-rojo-37.png -File274=marker-rojo-38.png -File275=marker-rojo-39.png -File276=marker-rojo-4.png -File277=marker-rojo-40.png -File278=marker-rojo-41.png -File279=marker-rojo-42.png -File28=logo_izca.jpg -File280=marker-rojo-43.png -File281=marker-rojo-44.png -File282=marker-rojo-45.png -File283=marker-rojo-46.png -File284=marker-rojo-47.png -File285=marker-rojo-48.png -File286=marker-rojo-49.png -File287=marker-rojo-5.png -File288=marker-rojo-50.png -File289=marker-rojo-51.png -File29=logo_keymon.png -File290=marker-rojo-52.png -File291=marker-rojo-53.png -File292=marker-rojo-54.png -File293=marker-rojo-55.png -File294=marker-rojo-56.png -File295=marker-rojo-57.png -File296=marker-rojo-58.png -File297=marker-rojo-59.png -File298=marker-rojo-6.png -File299=marker-rojo-60.png +File20=fondo_kmt.jpg +File200=marker-rojo-105.png +File201=marker-rojo-106.png +File202=marker-rojo-107.png +File203=marker-rojo-108.png +File204=marker-rojo-109.png +File205=marker-rojo-11.png +File206=marker-rojo-110.png +File207=marker-rojo-111.png +File208=marker-rojo-112.png +File209=marker-rojo-113.png +File21=gps20.png +File210=marker-rojo-114.png +File211=marker-rojo-115.png +File212=marker-rojo-116.png +File213=marker-rojo-117.png +File214=marker-rojo-118.png +File215=marker-rojo-119.png +File216=marker-rojo-12.png +File217=marker-rojo-120.png +File218=marker-rojo-121.png +File219=marker-rojo-122.png +File22=Hacer pedido.jpg +File220=marker-rojo-123.png +File221=marker-rojo-124.png +File222=marker-rojo-125.png +File223=marker-rojo-126.png +File224=marker-rojo-127.png +File225=marker-rojo-128.png +File226=marker-rojo-129.png +File227=marker-rojo-13.png +File228=marker-rojo-130.png +File229=marker-rojo-131.png +File23=hacerpedido30.jpg +File230=marker-rojo-132.png +File231=marker-rojo-133.png +File232=marker-rojo-134.png +File233=marker-rojo-135.png +File234=marker-rojo-136.png +File235=marker-rojo-137.png +File236=marker-rojo-138.png +File237=marker-rojo-139.png +File238=marker-rojo-14.png +File239=marker-rojo-140.png +File24=hacerpedido30.png +File240=marker-rojo-141.png +File241=marker-rojo-142.png +File242=marker-rojo-143.png +File243=marker-rojo-144.png +File244=marker-rojo-145.png +File245=marker-rojo-146.png +File246=marker-rojo-147.png +File247=marker-rojo-148.png +File248=marker-rojo-149.png +File249=marker-rojo-15.png +File25=intmex_logo_192x192_old.jpg +File250=marker-rojo-150.png +File251=marker-rojo-16.png +File252=marker-rojo-17.png +File253=marker-rojo-18.png +File254=marker-rojo-19.png +File255=marker-rojo-2.png +File256=marker-rojo-20.png +File257=marker-rojo-21.png +File258=marker-rojo-22.png +File259=marker-rojo-23.png +File26=itembuttonblue.png +File260=marker-rojo-24.png +File261=marker-rojo-25.png +File262=marker-rojo-26.png +File263=marker-rojo-27.png +File264=marker-rojo-28.png +File265=marker-rojo-29.png +File266=marker-rojo-3.png +File267=marker-rojo-30.png +File268=marker-rojo-31.png +File269=marker-rojo-32.png +File27=kmt.db +File270=marker-rojo-33.png +File271=marker-rojo-34.png +File272=marker-rojo-35.png +File273=marker-rojo-36.png +File274=marker-rojo-37.png +File275=marker-rojo-38.png +File276=marker-rojo-39.png +File277=marker-rojo-4.png +File278=marker-rojo-40.png +File279=marker-rojo-41.png +File28=login.bal +File280=marker-rojo-42.png +File281=marker-rojo-43.png +File282=marker-rojo-44.png +File283=marker-rojo-45.png +File284=marker-rojo-46.png +File285=marker-rojo-47.png +File286=marker-rojo-48.png +File287=marker-rojo-49.png +File288=marker-rojo-5.png +File289=marker-rojo-50.png +File29=logo_izca.jpg +File290=marker-rojo-51.png +File291=marker-rojo-52.png +File292=marker-rojo-53.png +File293=marker-rojo-54.png +File294=marker-rojo-55.png +File295=marker-rojo-56.png +File296=marker-rojo-57.png +File297=marker-rojo-58.png +File298=marker-rojo-59.png +File299=marker-rojo-6.png File3=alerta_amarilla.png -File30=logo_mariana.jpeg -File300=marker-rojo-61.png -File301=marker-rojo-62.png -File302=marker-rojo-63.png -File303=marker-rojo-64.png -File304=marker-rojo-65.png -File305=marker-rojo-66.png -File306=marker-rojo-67.png -File307=marker-rojo-68.png -File308=marker-rojo-69.png -File309=marker-rojo-7.png -File31=logosamiizca.jpg -File310=marker-rojo-70.png -File311=marker-rojo-71.png -File312=marker-rojo-72.png -File313=marker-rojo-73.png -File314=marker-rojo-74.png -File315=marker-rojo-75.png -File316=marker-rojo-76.png -File317=marker-rojo-77.png -File318=marker-rojo-78.png -File319=marker-rojo-79.png -File32=logosamiizca2.jpg -File320=marker-rojo-8.png -File321=marker-rojo-80.png -File322=marker-rojo-81.png -File323=marker-rojo-82.png -File324=marker-rojo-83.png -File325=marker-rojo-84.png -File326=marker-rojo-85.png -File327=marker-rojo-86.png -File328=marker-rojo-87.png -File329=marker-rojo-88.png -File33=MainPage.bal -File330=marker-rojo-89.png -File331=marker-rojo-9.png -File332=marker-rojo-90.png -File333=marker-rojo-91.png -File334=marker-rojo-92.png -File335=marker-rojo-93.png -File336=marker-rojo-94.png -File337=marker-rojo-95.png -File338=marker-rojo-96.png -File339=marker-rojo-97.png -File34=Malo.jpg -File340=marker-rojo-98.png -File341=marker-rojo-99.png -File342=marker-verde-0.png -File343=marker-verde-1.png -File344=marker-verde-10.png -File345=marker-verde-100.png -File346=marker-verde-101.png -File347=marker-verde-102.png -File348=marker-verde-103.png -File349=marker-verde-104.png -File35=mapa_cliente.bal -File350=marker-verde-105.png -File351=marker-verde-106.png -File352=marker-verde-107.png -File353=marker-verde-108.png -File354=marker-verde-109.png -File355=marker-verde-11.png -File356=marker-verde-110.png -File357=marker-verde-111.png -File358=marker-verde-112.png -File359=marker-verde-113.png -File36=mapa_rutas.bal -File360=marker-verde-114.png -File361=marker-verde-115.png -File362=marker-verde-116.png -File363=marker-verde-117.png -File364=marker-verde-118.png -File365=marker-verde-119.png -File366=marker-verde-12.png -File367=marker-verde-120.png -File368=marker-verde-121.png -File369=marker-verde-122.png -File37=mariana_ico.png -File370=marker-verde-123.png -File371=marker-verde-124.png -File372=marker-verde-125.png -File373=marker-verde-126.png -File374=marker-verde-127.png -File375=marker-verde-128.png -File376=marker-verde-129.png -File377=marker-verde-13.png -File378=marker-verde-130.png -File379=marker-verde-131.png -File38=mariana_logo_192x192.jpg -File380=marker-verde-132.png -File381=marker-verde-133.png -File382=marker-verde-134.png -File383=marker-verde-135.png -File384=marker-verde-136.png -File385=marker-verde-137.png -File386=marker-verde-138.png -File387=marker-verde-139.png -File388=marker-verde-14.png -File389=marker-verde-140.png -File39=marker-amarillo.png -File390=marker-verde-141.png -File391=marker-verde-142.png -File392=marker-verde-143.png -File393=marker-verde-144.png -File394=marker-verde-145.png -File395=marker-verde-146.png -File396=marker-verde-147.png -File397=marker-verde-148.png -File398=marker-verde-149.png -File399=marker-verde-15.png +File30=logo_keymon.png +File300=marker-rojo-60.png +File301=marker-rojo-61.png +File302=marker-rojo-62.png +File303=marker-rojo-63.png +File304=marker-rojo-64.png +File305=marker-rojo-65.png +File306=marker-rojo-66.png +File307=marker-rojo-67.png +File308=marker-rojo-68.png +File309=marker-rojo-69.png +File31=logo_mariana.jpeg +File310=marker-rojo-7.png +File311=marker-rojo-70.png +File312=marker-rojo-71.png +File313=marker-rojo-72.png +File314=marker-rojo-73.png +File315=marker-rojo-74.png +File316=marker-rojo-75.png +File317=marker-rojo-76.png +File318=marker-rojo-77.png +File319=marker-rojo-78.png +File32=logosamiizca.jpg +File320=marker-rojo-79.png +File321=marker-rojo-8.png +File322=marker-rojo-80.png +File323=marker-rojo-81.png +File324=marker-rojo-82.png +File325=marker-rojo-83.png +File326=marker-rojo-84.png +File327=marker-rojo-85.png +File328=marker-rojo-86.png +File329=marker-rojo-87.png +File33=logosamiizca2.jpg +File330=marker-rojo-88.png +File331=marker-rojo-89.png +File332=marker-rojo-9.png +File333=marker-rojo-90.png +File334=marker-rojo-91.png +File335=marker-rojo-92.png +File336=marker-rojo-93.png +File337=marker-rojo-94.png +File338=marker-rojo-95.png +File339=marker-rojo-96.png +File34=MainPage.bal +File340=marker-rojo-97.png +File341=marker-rojo-98.png +File342=marker-rojo-99.png +File343=marker-verde-0.png +File344=marker-verde-1.png +File345=marker-verde-10.png +File346=marker-verde-100.png +File347=marker-verde-101.png +File348=marker-verde-102.png +File349=marker-verde-103.png +File35=Malo.jpg +File350=marker-verde-104.png +File351=marker-verde-105.png +File352=marker-verde-106.png +File353=marker-verde-107.png +File354=marker-verde-108.png +File355=marker-verde-109.png +File356=marker-verde-11.png +File357=marker-verde-110.png +File358=marker-verde-111.png +File359=marker-verde-112.png +File36=mapa_cliente.bal +File360=marker-verde-113.png +File361=marker-verde-114.png +File362=marker-verde-115.png +File363=marker-verde-116.png +File364=marker-verde-117.png +File365=marker-verde-118.png +File366=marker-verde-119.png +File367=marker-verde-12.png +File368=marker-verde-120.png +File369=marker-verde-121.png +File37=mapa_rutas.bal +File370=marker-verde-122.png +File371=marker-verde-123.png +File372=marker-verde-124.png +File373=marker-verde-125.png +File374=marker-verde-126.png +File375=marker-verde-127.png +File376=marker-verde-128.png +File377=marker-verde-129.png +File378=marker-verde-13.png +File379=marker-verde-130.png +File38=mariana_ico.png +File380=marker-verde-131.png +File381=marker-verde-132.png +File382=marker-verde-133.png +File383=marker-verde-134.png +File384=marker-verde-135.png +File385=marker-verde-136.png +File386=marker-verde-137.png +File387=marker-verde-138.png +File388=marker-verde-139.png +File389=marker-verde-14.png +File39=mariana_logo_192x192.jpg +File390=marker-verde-140.png +File391=marker-verde-141.png +File392=marker-verde-142.png +File393=marker-verde-143.png +File394=marker-verde-144.png +File395=marker-verde-145.png +File396=marker-verde-146.png +File397=marker-verde-147.png +File398=marker-verde-148.png +File399=marker-verde-149.png File4=amigos.jpg -File40=marker-azul-0.png -File400=marker-verde-150.png -File401=marker-verde-16.png -File402=marker-verde-17.png -File403=marker-verde-18.png -File404=marker-verde-19.png -File405=marker-verde-2.png -File406=marker-verde-20.png -File407=marker-verde-21.png -File408=marker-verde-22.png -File409=marker-verde-23.png -File41=marker-azul-1.png -File410=marker-verde-24.png -File411=marker-verde-25.png -File412=marker-verde-26.png -File413=marker-verde-27.png -File414=marker-verde-28.png -File415=marker-verde-29.png -File416=marker-verde-3.png -File417=marker-verde-30.png -File418=marker-verde-31.png -File419=marker-verde-32.png -File42=marker-azul-10.png -File420=marker-verde-33.png -File421=marker-verde-34.png -File422=marker-verde-35.png -File423=marker-verde-36.png -File424=marker-verde-37.png -File425=marker-verde-38.png -File426=marker-verde-39.png -File427=marker-verde-4.png -File428=marker-verde-40.png -File429=marker-verde-41.png -File43=marker-azul-100.png -File430=marker-verde-42.png -File431=marker-verde-43.png -File432=marker-verde-44.png -File433=marker-verde-45.png -File434=marker-verde-46.png -File435=marker-verde-47.png -File436=marker-verde-48.png -File437=marker-verde-49.png -File438=marker-verde-5.png -File439=marker-verde-50.png -File44=marker-azul-101.png -File440=marker-verde-51.png -File441=marker-verde-52.png -File442=marker-verde-53.png -File443=marker-verde-54.png -File444=marker-verde-55.png -File445=marker-verde-56.png -File446=marker-verde-57.png -File447=marker-verde-58.png -File448=marker-verde-59.png -File449=marker-verde-6.png -File45=marker-azul-102.png -File450=marker-verde-60.png -File451=marker-verde-61.png -File452=marker-verde-62.png -File453=marker-verde-63.png -File454=marker-verde-64.png -File455=marker-verde-65.png -File456=marker-verde-66.png -File457=marker-verde-67.png -File458=marker-verde-68.png -File459=marker-verde-69.png -File46=marker-azul-103.png -File460=marker-verde-7.png -File461=marker-verde-70.png -File462=marker-verde-71.png -File463=marker-verde-72.png -File464=marker-verde-73.png -File465=marker-verde-74.png -File466=marker-verde-75.png -File467=marker-verde-76.png -File468=marker-verde-77.png -File469=marker-verde-78.png -File47=marker-azul-104.png -File470=marker-verde-79.png -File471=marker-verde-8.png -File472=marker-verde-80.png -File473=marker-verde-81.png -File474=marker-verde-82.png -File475=marker-verde-83.png -File476=marker-verde-84.png -File477=marker-verde-85.png -File478=marker-verde-86.png -File479=marker-verde-87.png -File48=marker-azul-105.png -File480=marker-verde-88.png -File481=marker-verde-89.png -File482=marker-verde-9.png -File483=marker-verde-90.png -File484=marker-verde-91.png -File485=marker-verde-92.png -File486=marker-verde-93.png -File487=marker-verde-94.png -File488=marker-verde-95.png -File489=marker-verde-96.png -File49=marker-azul-106.png -File490=marker-verde-97.png -File491=marker-verde-98.png -File492=marker-verde-99.png -File493=nota.bal -File494=noventa.bal -File495=nuevocliente.bal -File496=nuevocliente.jpg -File497=nuevo-cliente20.png -File498=Nvo Cliente.jpg -File499=palomita_verde.png +File40=marker-amarillo.png +File400=marker-verde-15.png +File401=marker-verde-150.png +File402=marker-verde-16.png +File403=marker-verde-17.png +File404=marker-verde-18.png +File405=marker-verde-19.png +File406=marker-verde-2.png +File407=marker-verde-20.png +File408=marker-verde-21.png +File409=marker-verde-22.png +File41=marker-azul-0.png +File410=marker-verde-23.png +File411=marker-verde-24.png +File412=marker-verde-25.png +File413=marker-verde-26.png +File414=marker-verde-27.png +File415=marker-verde-28.png +File416=marker-verde-29.png +File417=marker-verde-3.png +File418=marker-verde-30.png +File419=marker-verde-31.png +File42=marker-azul-1.png +File420=marker-verde-32.png +File421=marker-verde-33.png +File422=marker-verde-34.png +File423=marker-verde-35.png +File424=marker-verde-36.png +File425=marker-verde-37.png +File426=marker-verde-38.png +File427=marker-verde-39.png +File428=marker-verde-4.png +File429=marker-verde-40.png +File43=marker-azul-10.png +File430=marker-verde-41.png +File431=marker-verde-42.png +File432=marker-verde-43.png +File433=marker-verde-44.png +File434=marker-verde-45.png +File435=marker-verde-46.png +File436=marker-verde-47.png +File437=marker-verde-48.png +File438=marker-verde-49.png +File439=marker-verde-5.png +File44=marker-azul-100.png +File440=marker-verde-50.png +File441=marker-verde-51.png +File442=marker-verde-52.png +File443=marker-verde-53.png +File444=marker-verde-54.png +File445=marker-verde-55.png +File446=marker-verde-56.png +File447=marker-verde-57.png +File448=marker-verde-58.png +File449=marker-verde-59.png +File45=marker-azul-101.png +File450=marker-verde-6.png +File451=marker-verde-60.png +File452=marker-verde-61.png +File453=marker-verde-62.png +File454=marker-verde-63.png +File455=marker-verde-64.png +File456=marker-verde-65.png +File457=marker-verde-66.png +File458=marker-verde-67.png +File459=marker-verde-68.png +File46=marker-azul-102.png +File460=marker-verde-69.png +File461=marker-verde-7.png +File462=marker-verde-70.png +File463=marker-verde-71.png +File464=marker-verde-72.png +File465=marker-verde-73.png +File466=marker-verde-74.png +File467=marker-verde-75.png +File468=marker-verde-76.png +File469=marker-verde-77.png +File47=marker-azul-103.png +File470=marker-verde-78.png +File471=marker-verde-79.png +File472=marker-verde-8.png +File473=marker-verde-80.png +File474=marker-verde-81.png +File475=marker-verde-82.png +File476=marker-verde-83.png +File477=marker-verde-84.png +File478=marker-verde-85.png +File479=marker-verde-86.png +File48=marker-azul-104.png +File480=marker-verde-87.png +File481=marker-verde-88.png +File482=marker-verde-89.png +File483=marker-verde-9.png +File484=marker-verde-90.png +File485=marker-verde-91.png +File486=marker-verde-92.png +File487=marker-verde-93.png +File488=marker-verde-94.png +File489=marker-verde-95.png +File49=marker-azul-105.png +File490=marker-verde-96.png +File491=marker-verde-97.png +File492=marker-verde-98.png +File493=marker-verde-99.png +File494=nota.bal +File495=noventa.bal +File496=nuevocliente.bal +File497=nuevocliente.jpg +File498=nuevo-cliente20.png +File499=Nvo Cliente.jpg File5=amigos21.jpg -File50=marker-azul-107.png -File500=PANEL_PICK_CIEGO.bal -File501=pedido.bal -File502=principal.bal -File503=proditem.bal -File504=proditem1.bal -File505=proditem2.bal -File506=proditempromo.bal -File507=productos.bal -File508=productosdev.bal -File509=promociones.bal -File51=marker-azul-108.png -File510=resdia.bal -File511=ResDia.jpg -File512=resdia20.png -File513=resumendia.jpg -File514=scrollpromos.bal -File515=senial.jpg -File516=sync.png -File517=tabulador.bal -File518=tache_rojo.png -File519=Ticket dia.jpg -File52=marker-azul-109.png -File520=ticketdia20.jpg -File521=ticketdia20.png -File522=ticketsdia.bal -File523=Tiendita.jpg -File524=verde.png -File53=marker-azul-11.png -File54=marker-azul-110.png -File55=marker-azul-111.png -File56=marker-azul-112.png -File57=marker-azul-113.png -File58=marker-azul-114.png -File59=marker-azul-115.png +File50=marker-azul-106.png +File500=palomita_verde.png +File501=PANEL_PICK_CIEGO.bal +File502=pedido.bal +File503=principal.bal +File504=proditem.bal +File505=proditem1.bal +File506=proditem2.bal +File507=proditempromo.bal +File508=productos.bal +File509=productosdev.bal +File51=marker-azul-107.png +File510=promociones.bal +File511=resdia.bal +File512=ResDia.jpg +File513=resdia20.png +File514=resumendia.jpg +File515=scrollpromos.bal +File516=senial.jpg +File517=sync.png +File518=tabulador.bal +File519=tache_rojo.png +File52=marker-azul-108.png +File520=Ticket dia.jpg +File521=ticketdia20.jpg +File522=ticketdia20.png +File523=ticketsdia.bal +File524=Tiendita.jpg +File525=verde.png +File53=marker-azul-109.png +File54=marker-azul-11.png +File55=marker-azul-110.png +File56=marker-azul-111.png +File57=marker-azul-112.png +File58=marker-azul-113.png +File59=marker-azul-114.png File6=anterior.jpg -File60=marker-azul-116.png -File61=marker-azul-117.png -File62=marker-azul-118.png -File63=marker-azul-119.png -File64=marker-azul-12.png -File65=marker-azul-120.png -File66=marker-azul-121.png -File67=marker-azul-122.png -File68=marker-azul-123.png -File69=marker-azul-124.png +File60=marker-azul-115.png +File61=marker-azul-116.png +File62=marker-azul-117.png +File63=marker-azul-118.png +File64=marker-azul-119.png +File65=marker-azul-12.png +File66=marker-azul-120.png +File67=marker-azul-121.png +File68=marker-azul-122.png +File69=marker-azul-123.png File7=bus-ar.png -File70=marker-azul-125.png -File71=marker-azul-126.png -File72=marker-azul-127.png -File73=marker-azul-128.png -File74=marker-azul-129.png -File75=marker-azul-13.png -File76=marker-azul-130.png -File77=marker-azul-131.png -File78=marker-azul-132.png -File79=marker-azul-133.png +File70=marker-azul-124.png +File71=marker-azul-125.png +File72=marker-azul-126.png +File73=marker-azul-127.png +File74=marker-azul-128.png +File75=marker-azul-129.png +File76=marker-azul-13.png +File77=marker-azul-130.png +File78=marker-azul-131.png +File79=marker-azul-132.png File8=C_CuentasXCobrar.bal -File80=marker-azul-134.png -File81=marker-azul-135.png -File82=marker-azul-136.png -File83=marker-azul-137.png -File84=marker-azul-138.png -File85=marker-azul-139.png -File86=marker-azul-14.png -File87=marker-azul-140.png -File88=marker-azul-141.png -File89=marker-azul-142.png +File80=marker-azul-133.png +File81=marker-azul-134.png +File82=marker-azul-135.png +File83=marker-azul-136.png +File84=marker-azul-137.png +File85=marker-azul-138.png +File86=marker-azul-139.png +File87=marker-azul-14.png +File88=marker-azul-140.png +File89=marker-azul-141.png File9=carrito.png -File90=marker-azul-143.png -File91=marker-azul-144.png -File92=marker-azul-145.png -File93=marker-azul-146.png -File94=marker-azul-147.png -File95=marker-azul-148.png -File96=marker-azul-149.png -File97=marker-azul-15.png -File98=marker-azul-150.png -File99=marker-azul-16.png +File90=marker-azul-142.png +File91=marker-azul-143.png +File92=marker-azul-144.png +File93=marker-azul-145.png +File94=marker-azul-146.png +File95=marker-azul-147.png +File96=marker-azul-148.png +File97=marker-azul-149.png +File98=marker-azul-15.png +File99=marker-azul-150.png FileGroup1=Default Group FileGroup10=Default Group FileGroup100=Default Group @@ -996,6 +997,7 @@ FileGroup521=Default Group FileGroup522=Default Group FileGroup523=Default Group FileGroup524=Default Group +FileGroup525=Default Group FileGroup53=Default Group FileGroup54=Default Group FileGroup55=Default Group @@ -1115,7 +1117,7 @@ Module6=C_Cuestionario Module7=C_Historico Module8=C_Mapas Module9=C_Nota -NumberOfFiles=524 +NumberOfFiles=525 NumberOfLibraries=34 NumberOfModules=32 Version=12.8 diff --git a/B4A/TG.b4a.meta b/B4A/TG.b4a.meta index f873fbb..4b68aa8 100644 --- a/B4A/TG.b4a.meta +++ b/B4A/TG.b4a.meta @@ -21,7 +21,7 @@ ModuleBookmarks26= ModuleBookmarks27= ModuleBookmarks28= ModuleBookmarks29= -ModuleBookmarks3= +ModuleBookmarks3=1 ModuleBookmarks30= ModuleBookmarks31= ModuleBookmarks32= @@ -69,9 +69,9 @@ ModuleClosedNodes1= ModuleClosedNodes10= ModuleClosedNodes11= ModuleClosedNodes12= -ModuleClosedNodes13= +ModuleClosedNodes13=13 ModuleClosedNodes14= -ModuleClosedNodes15=1,3 +ModuleClosedNodes15= ModuleClosedNodes16= ModuleClosedNodes17= ModuleClosedNodes18= @@ -91,12 +91,12 @@ ModuleClosedNodes3= ModuleClosedNodes30= ModuleClosedNodes31= ModuleClosedNodes32= -ModuleClosedNodes4=2 +ModuleClosedNodes4= ModuleClosedNodes5= ModuleClosedNodes6= ModuleClosedNodes7= ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=B4XMainPage,B4XPage_Created,147,0,Main,Globals,23,0,Main,Process_Globals,20,0,C_Productosdev,Class_Globals,0,0,Diseñador Visual,productos.bal,-100,2,Diseñador Visual,productosdev.bal,-100,1,C_Cliente,MODS,0,0,C_Cliente,Button1_Click,3014,1,C_Productosdev,B4XPage_Created,137,0,C_Productosdev,B4XPage_Appear,141,2 +NavigationStack=C_Principal,Class_Globals,50,1,C_Principal,Envioinfo,1135,0,Diseñador Visual,Cobranza.bal,-100,1,C_Principal,connecta_Click,2544,0,Diseñador Visual,principal.bal,-100,6,C_Principal,CreateListItem,768,2,Diseñador Visual,cuentamerma.bal,-100,5,C_Principal,CreateListItem2,785,0,C_Principal,MapFragment1_LongClick,706,0,C_Principal,Subir_Click,730,6,C_Principal,b_terpc_Click,3709,1 SelectedBuild=0 -VisibleModules=1,2,3,4,31,15,14 +VisibleModules=1,2,3,4,31,15,14,13,5,17