diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index 497f694..5eae53a 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -198,8 +198,10 @@ Private Sub B4XPage_Created (Root1 As B4XView) Subs.agregaColumna("HIST_ENCUESTA", "HE_LON", "TEXT") Subs.agregaColumna("kmt_info3", "encuesta", "TEXT") Subs.agregaColumna("kmt_info3", "CAT_CL_TIPOCLIENTE", "TEXT") + Subs.agregaColumna("kmt_info3", "CAT_CL_LIMITECREDITO", "TEXT") Subs.agregaColumna("kmt_info3", "CAT_CL_BCREDITO", "TEXT") '########################## CODIGO PARA CREDITOS #################### Subs.agregaColumna("CAT_GUNAPROD", "CAT_PA_BSEGMENTA", "TEXT") + Subs.agregaColumna("CAT_GUNAPROD", "CAT_LISTAPRECIO", "TEXT") Subs.agregaColumna("CAT_GUNAPROD", "CAT_PA_SEGMENTAV", "TEXT") Subs.agregaColumna("CAT_GUNAPROD2", "CAT_PA_BSEGMENTA", "TEXT") Subs.agregaColumna("CAT_GUNAPROD2", "CAT_PA_SEGMENTAV", "TEXT") @@ -822,7 +824,7 @@ End Sub Sub i_engrane_Click p_appUpdate.Left = (Root.Width/2) - (p_appUpdate.Width/2) lv_server.Clear - lv_server.AddSingleLine("http://keymon.lat:1782") + lv_server.AddSingleLine("http://keymon.net:1782") If user.Text = "KMTS1" Then lv_server.AddSingleLine("http://10.0.0.205:1782") l_server.Text = Starter.server et_server.Text = Starter.server diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index 3be8ffc..f4d0c5d 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -461,6 +461,8 @@ Sub Class_Globals Private lv_comentarios As ListView Private ImageView4 As ImageView Private p_cliente_ As Panel + Private l_limite As Label + Private l_credito As Label End Sub 'You can add more parameters here. @@ -538,7 +540,8 @@ Sub B4XPage_Appear que_modulo = 1 dentroDeGeocerca = False indicePregunta = 0 - + l_credito.Visible = False + l_limite.Visible = False pnlPlanLealtad.Top = 0 pnlPlanLealtad.Left = 0 pnlPlanLealtad.Width = Root.Width @@ -1184,6 +1187,19 @@ Sub B4XPage_Appear If fac.GetString("PC_FACTURA") <> Null And IsNumber(fac.GetString("PC_FACTURA")) Then factura = fac.GetString("PC_FACTURA") If factura = "1" Then CH_FACTURA.Checked = True +' If l_credito.IsInitialized Then + c=B4XPages.MainPage.skmt.ExecQuery("select IFNULL(CAT_CL_BCREDITO,0) AS CAT_CL_BCREDITO, CAT_CL_LIMITECREDITO from kmt_info3 where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + c.Position = 0 + If c.GetInt("CAT_CL_BCREDITO") = 1 Then + l_credito.Visible = True + l_limite.Visible = True + l_limite.Text = c.GetInt("CAT_CL_LIMITECREDITO") + Else If c.GetInt("CAT_CL_BCREDITO") = 0 Then + l_credito.Visible = False + l_limite.Visible = False + End If +' End If + End Sub Sub GPS_LocationChanged (Location1 As Location) @@ -1385,6 +1401,7 @@ Sub GPS_LocationChanged (Location1 As Location) ' If distance > 100 Then ToastMessageShow("Fuera de rango GPS", False) + B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_GPS") B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE, HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps)) CallSubDelayed(Tracker, "CreateLocationRequest") @@ -2566,27 +2583,6 @@ Sub b_mapa_Click B4XPages.ShowPage("mapas") End Sub -Sub Printer1_Connected (Success As Boolean) -' If Logger Then Log("Printer1_Connected") - If Success Then - ToastMessageShow("Impresora conectada", False) - skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("MACIMP")) - skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP",Starter.mac_impresora)) - LogColor("Impresora conectada", Colors.Green) -' B_IMP2.Enabled = True - impresoraConectada = True - Else -' Msgbox(Printer1.ConnectedErrorMsg, "Error connecting.") 'ignore -' ToastMessageShow("Error conectando la impresora", False) - LogColor("Error conectando la impresora", Colors.Red) - errorImpresora = errorImpresora + 1 - If errorImpresora > 1 Then - Starter.MAC_IMPRESORA = "0" - errorImpresora = 0 - End If - End If -End Sub - Sub B_IMP_Click ' Printer1.Connect2 ' c=Starter.skmt.ExecQuery2("select count(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL")) @@ -2633,28 +2629,26 @@ Sub Impresion2 ProgressDialogShow("Imprimiendo, un momento ...") Printer1.DisConnect If Not(Printer1.IsConnected) Then - Log("Conectando a impresora ...") +' If logger Then Log("conectando 1") Printer1.Connect Private cont As Int = 0 Do While Not(impresoraConectada) Sleep(1000) - Log("++++++ " & cont) cont = cont + 1 - If cont = 2 Then Printer1.Connect 'Tratamos de reconectar - If cont > 3 Then impresoraConectada = True + If cont = 7 Then Printer1.Connect 'Tratamos de reconectar + If cont > 15 Then impresoraConectada = True Loop Sleep(500) impresoraConectada = False Else - Log("conectando 2") +' If logger Then Log("conectando 2") Printer1.Connect Private cont As Int = 0 Do While Not(impresoraConectada) Or Not(Printer1.IsConnected) Sleep(1000) - Log("****** " & cont) cont = cont + 1 If cont = 2 Then Printer1.Connect - If cont > 3 Then impresoraConectada = True + If cont > 4 Then impresoraConectada = True Loop Sleep(500) impresoraConectada = False @@ -2835,28 +2829,26 @@ Sub Impresion ProgressDialogShow("Imprimiendo, un momento ...") Printer1.DisConnect If Not(Printer1.IsConnected) Then - Log("Conectando a impresora ...") +' If logger Then Log("conectando 1") Printer1.Connect Private cont As Int = 0 Do While Not(impresoraConectada) Sleep(1000) - Log("++++++ " & cont) cont = cont + 1 - If cont = 2 Then Printer1.Connect 'Tratamos de reconectar - If cont > 3 Then impresoraConectada = True + If cont = 7 Then Printer1.Connect 'Tratamos de reconectar + If cont > 15 Then impresoraConectada = True Loop Sleep(500) impresoraConectada = False Else - Log("conectando 2") +' If logger Then Log("conectando 2") Printer1.Connect Private cont As Int = 0 Do While Not(impresoraConectada) Or Not(Printer1.IsConnected) Sleep(1000) - Log("****** " & cont) cont = cont + 1 If cont = 2 Then Printer1.Connect - If cont > 3 Then impresoraConectada = True + If cont > 4 Then impresoraConectada = True Loop Sleep(500) impresoraConectada = False @@ -2896,16 +2888,17 @@ Sub Impresion Printer1.WriteString("-----------PREVENTA-----------" & CRLF) ' aqui es donde esta el pedo de julieta de los descuentos quitar el precio2 pero meter un if para saber si es ruta especial o es normal o que show. - s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_CEDIS <> ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String("DUR")) +' s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_CEDIS <> ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String("DUR")) + s=skmt.ExecQuery2("select PE_PRONOMBRE, SUM(PE_CANT) AS PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,SUM(PE_CANT) * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_CEDIS <> ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) AND PE_COSTOU > 0.01 GROUP by PE_PROID", Array As String("DUR")) If S.RowCount>0 Then For i=0 To S.RowCount -1 S.Position=i - If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then +' If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then Printer1.WriteString(s.GetString("PE_PRONOMBRE") & CRLF) - Else +' Else - Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF) +' Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF) TAMANO = s.GetLong("L_CANT") + TAMANO TAMANO = s.GetLong("L_COSTOU") + TAMANO TAMANO = s.GetLong("L_COSTO_TOT") + TAMANO @@ -2919,22 +2912,24 @@ Sub Impresion TAMANO = 0 ESPACIO = 21 BLANCO = " " - End If +' End If Next End If s.Close Printer1.WriteString(" " & CRLF) - s=skmt.ExecQuery("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE LENGTH(PE_CEDIS) > 3 AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP ) AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_COSTOU") +' s=skmt.ExecQuery("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE LENGTH(PE_CEDIS) > 3 AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP ) AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_COSTOU") + s=skmt.ExecQuery2("select PE_PRONOMBRE, SUM(PE_CANT) AS PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,SUM(PE_CANT) * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_CEDIS <> ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) AND PE_COSTOU = 0.01 GROUP by PE_PROID", Array As String("DUR")) + If S.RowCount>0 Then - Printer1.WriteString("------------PROMOS------------" & CRLF) + Printer1.WriteString("--------BONIFICACIONES--------" & CRLF) For i=0 To S.RowCount -1 S.Position=i - If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then +' If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then Printer1.WriteString(s.GetString("PE_PRONOMBRE") & CRLF) - Else +' Else - Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF) +' Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF) TAMANO = s.GetLong("L_CANT") + TAMANO TAMANO = s.GetLong("L_COSTOU") + TAMANO TAMANO = s.GetLong("L_COSTO_TOT") + TAMANO @@ -2948,7 +2943,7 @@ Sub Impresion TAMANO = 0 ESPACIO = 21 BLANCO = " " - End If +' End If Next Printer1.WriteString(" " & CRLF) End If @@ -3058,12 +3053,38 @@ End Sub '' printer.Close 'End Sub +Sub Printer1_Connected (Success As Boolean) +' If Logger Then Log("Printer1_Connected") + If Success Then + ToastMessageShow("Impresora conectada", False) + Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("MACIMP")) + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP",Starter.mac_impresora)) +' If logger Then LogColor("Impresora conectada", Colors.Green) +' B_IMP2.Enabled = True + impresoraConectada = True + Else +' Msgbox(Printer1.ConnectedErrorMsg, "Error connecting.") 'ignore +' ToastMessageShow("Error conectando la impresora", False) + LogColor("Error conectando la impresora", Colors.Red) + errorImpresora = errorImpresora + 1 + If errorImpresora > 1 Then + Starter.MAC_IMPRESORA = "0" + errorImpresora = 0 + End If + End If +End Sub + +Sub Printer1_Error + Log("error printer") +End Sub + Sub Printer_Connected (Success As Boolean) If Success Then - B_IMP.Enabled = True +' B_IMP.Enabled = True +' PASA_IMP = "1" Else - B_IMP.Enabled = False - If Msgbox2("", "Printer Error","Reprint","Cancel","",Null) = DialogResponse.POSITIVE Then 'Ignore +' B_IMP.Enabled = False + If Msgbox2("", "Printer Error","Reprint","Cancel","",Null) = DialogResponse.POSITIVE Then 'ignore StartPrinter End If End If @@ -3071,37 +3092,39 @@ End Sub Sub StartPrinter Dim PairedDevices As Map - Dim L As List + Dim L1 As List Dim resimp As Int ToastMessageShow("Printing.....",True) PairedDevices.Initialize Try PairedDevices = cmp20.GetPairedDevices Catch - Msgbox("Getting Paired Devices","Printer Error") 'Ignore + Msgbox("Getting Paired Devices","Printer Error") 'ignore printer.Close cmp20.Disconnect End Try + If PairedDevices.Size = 0 Then - Msgbox("Error Connecting to Printer - Printer Not Found","") 'Ignore + Msgbox("Error Connecting to Printer - Printer Not Found","") 'ignore Return End If + If PairedDevices.Size = 1 Then Try - cmp20.ConnectInsecure(btAdmin,PairedDevices.Get(PairedDevices.GetKeyAt(0)),1) + cmp20.Connect(PairedDevices.Get(PairedDevices.GetKeyAt(0))) Catch - Msgbox("Connecting","Printer Error") 'Ignore + Msgbox("Connecting","Printer Error") 'ignore printer.Close cmp20.Disconnect End Try Else - L.Initialize + L1.Initialize For i = 0 To PairedDevices.Size - 1 - L.Add(PairedDevices.GetKeyAt(i)) + L1.Add(PairedDevices.GetKeyAt(i)) Next - resimp = InputList(L, "Choose device", -1) 'Ignore + resimp = InputList(L1, "Choose device", -1) 'ignore If resimp <> DialogResponse.CANCEL Then - cmp20.Connect(PairedDevices.Get(L.Get(resimp))) + cmp20.Connect(PairedDevices.Get(L1.Get(resimp))) End If End If End Sub diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index ce7a853..c28dd45 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -1390,10 +1390,11 @@ Sub JobDone(Job As HttpJob) Dim CAT_CL_MTOCOMPRA As String = records(RESULT.Columns.Get("CAT_CL_MTOCOMPRA")) Dim CAT_CL_NUM_SERIEFISICO As String = records(RESULT.Columns.Get("CAT_CL_NUM_SERIEFISICO")) Dim CAT_CL_TIPOCLIENTE As String = records(RESULT.Columns.Get("CAT_CL_TIPOCLIENTE")) + Dim CAT_CL_LIMITECREDITO As String = records(RESULT.Columns.Get("CAT_CL_LIMITECREDITO")) '########################## INICIA CODIGO PARA CREDITOS #################### Dim CAT_CL_BCREDITO As String = records(RESULT.Columns.Get("CAT_CL_BCREDITO")) - B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info3(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO, gestion,CAT_CL_BCREDITO,CAT_CL_TIPOCLIENTE,FOTO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,?,?,?)", Array As Object (CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BCREDITO,CAT_CL_TIPOCLIENTE,CAT_CL_FOTO)) + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info3(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO, gestion,CAT_CL_BCREDITO,CAT_CL_TIPOCLIENTE,FOTO,CAT_CL_LIMITECREDITO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,?,?,?,?)", Array As Object (CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BCREDITO,CAT_CL_TIPOCLIENTE,CAT_CL_FOTO,CAT_CL_LIMITECREDITO)) '########################## TERMINA CODIGO PARA CREDITOS #################### B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_STAY_STORE(HSS_CODIGO, HSS_IN , HSS_OUT , HSS_TOT) VALUES (?,0,0,0)", Array As Object (CAT_CL_CODIGO)) Next @@ -1758,9 +1759,11 @@ 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_GP_TIPOPROD")) Dim CAT_GP_INICIATIVA As Int = records(RESULT.Columns.Get("CAT_GP_INICIATIVA")) + Dim CAT_LISTAPRECIO As Int = records(RESULT.Columns.Get("CAT_LISTAPRECIO")) + Dim CAT_LISTAPRECIO As Int = 10 ' 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)) - B4XPages.MainPage.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_TIPOPROD,CAT_GP_INICIATIVA) 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)) + B4XPages.MainPage.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_TIPOPROD,CAT_GP_INICIATIVA,CAT_LISTAPRECIO) 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_LISTAPRECIO)) Next Listo2=1 If PB2.Progress = 0 Then diff --git a/B4A/C_Productos.bas b/B4A/C_Productos.bas index e94d0ca..ddb9153 100644 --- a/B4A/C_Productos.bas +++ b/B4A/C_Productos.bas @@ -1080,6 +1080,9 @@ Sub B4XPage_Appear PCLV.B4XSeekBar1.mBase.Height=clv_prods_ll.AsView.Height PCLV.pnlOverlay.Height = clv_prods_ll.AsView.Height PCLV.B4XSeekBar1.Update + + + End Sub Sub PCLV_AddProds @@ -2423,6 +2426,7 @@ Sub LlenaProdsLL(p As ResultSet) If hayPedido Then 'Si hay pedido obtenemos las cantidades de los productos para agregarlos al CLV. Dim cantsMap As Map cantsMap.Initialize + Dim pe As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select PE_PROID, PE_CANT from PEDIDO where PE_CLIENTE = '${clienteId}' and PE_CEDIS = '${Subs.traeAlmacen}' and PE_FOLIO = '${B4XPages.MainPage.tipo_venta}'"$) ' LogColor("Ponemos productos de pedido anterior: "&pe.RowCount, Colors.red) Do While pe.NextRow @@ -2449,13 +2453,26 @@ Sub LlenaProdsLL(p As ResultSet) ' Dim p As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select distinct CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD from ${Starter.tabla} LEFT JOIN PEDIDO ON CAT_GP_ID = PE_PROID where CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN > 0 And CAT_GP_CLASIF <> 'PROMOS' union all select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD from ${Starter.tabla} LEFT JOIN PEDIDO ON CAT_GP_ID = PE_PROID where CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN = 0 And CAT_GP_CLASIF <> 'PROMOS' and cat_gp_id in (select pe_proid from pedido where pe_cliente in (select cuenta from cuentaa)) order by 2"$) - Dim p As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select distinct CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG, CAT_GP_TIPOPROD, CAT_GP_INICIATIVA from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_TIPO <> 'PROMOS' and CAT_GP_TIPO <> 'PROMOCION' + If Subs.traeTipoCliente = "4" Then + Dim p As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select distinct CAT_GP_ID, CAT_GP_NOMBRE, CAT_LISTAPRECIO, CAT_GP_ALMACEN, CAT_GP_IMG, CAT_GP_TIPOPROD, CAT_GP_INICIATIVA from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_TIPO <> 'PROMOS' and CAT_GP_TIPO <> 'PROMOCION' order by Case CAT_GP_TIPOPROD when 'PRIORITARIO' THEN 0 WHEN 'ESTRATEGICO' THEN 1 WHEN 'COMPLEMENTARIO' then 2 Else 3 End, CAT_GP_NOMBRE"$) + Else + Dim p As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select distinct CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG, CAT_GP_TIPOPROD, CAT_GP_INICIATIVA from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_TIPO <> 'PROMOS' and CAT_GP_TIPO <> 'PROMOCION' + order by + Case CAT_GP_TIPOPROD when 'PRIORITARIO' THEN 0 + WHEN 'ESTRATEGICO' THEN 1 + WHEN 'COMPLEMENTARIO' then 2 + Else 3 + End, CAT_GP_NOMBRE"$) + End If + + + End If ' Do While p.NextRow @@ -2478,11 +2495,28 @@ Sub LlenaProdsLL(p As ResultSet) Log(p.GetString("CAT_GP_ID")) cant = cantsMap.Get(p.GetString("CAT_GP_ID")) End If - - If p.GetString("CAT_GP_ID") <> "GUN141" And p.GetString("CAT_GP_ID") <> "GUN142" Then + If Subs.traeTipoCliente = "4" Then + If p.GetString("CAT_GP_ID") <> "GUN141" And p.GetString("CAT_GP_ID") <> "GUN142" Then ' Log(p.GetString("CAT_GP_NOMBRE")) - ' ¡Importante! Crear un NUEVO mapa en cada iteración. - Dim tempMap As Map = CreateMap( _ + ' ¡Importante! Crear un NUEVO mapa en cada iteración. + Dim tempMap As Map = CreateMap( _ + "prod": p.GetString("CAT_GP_NOMBRE"), _ + "precio": p.GetString("CAT_LISTAPRECIO"), _ + "prioridad": p.GetString("CAT_GP_TIPOPROD"), _ + "almacen": p.GetString("CAT_GP_ALMACEN"), _ + "id": p.GetString("CAT_GP_ID"), _ + "cant": cant, _ + "conversion": 1, _ + "precio_caja": 0, _ + "b_caja": 0 _ + ) + listaProds.Add(tempMap) ' Agregar el nuevo mapa a la lista + End If + Else + If p.GetString("CAT_GP_ID") <> "GUN141" And p.GetString("CAT_GP_ID") <> "GUN142" Then +' Log(p.GetString("CAT_GP_NOMBRE")) + ' ¡Importante! Crear un NUEVO mapa en cada iteración. + Dim tempMap As Map = CreateMap( _ "prod": p.GetString("CAT_GP_NOMBRE"), _ "precio": p.GetString("CAT_GP_PRECIO"), _ "prioridad": p.GetString("CAT_GP_TIPOPROD"), _ @@ -2493,8 +2527,10 @@ Sub LlenaProdsLL(p As ResultSet) "precio_caja": 0, _ "b_caja": 0 _ ) - listaProds.Add(tempMap) ' Agregar el nuevo mapa a la lista + listaProds.Add(tempMap) ' Agregar el nuevo mapa a la lista + End If End If + Loop ' p.Close ' Log(listaProds) diff --git a/B4A/C_Promos.bas b/B4A/C_Promos.bas index 4a33c97..e7f5e99 100644 --- a/B4A/C_Promos.bas +++ b/B4A/C_Promos.bas @@ -997,9 +997,6 @@ Private Sub b_terminar1_Click ' B4XPages.MainPage.productos.prodsMap.Put(estaPromo&"|"&prodsIds2.Get(o), tmpMap) ' Next ' LogColor(B4XPages.MainPage.productos.prodsMap, Colors.red) - - Subs.agrupaProdsPromo(Subs.traeCliente) - lv_prodsFijos.Clear B4XPages.MainPage.bTerminarClicked = True B4XPages.ShowPage("productos") @@ -1038,9 +1035,6 @@ Private Sub b_continuar_Click prodspage.lv_promos.Visible = False prodspage.clv_productos.AsView.Visible = False End If - - Subs.agrupaProdsPromo(Subs.traeCliente) - B4XPages.MainPage.bTerminarClicked = True B4XPages.ShowPage("productos") End Sub diff --git a/B4A/Files/cliente.bal b/B4A/Files/cliente.bal index 5c9a311..44587ee 100644 Binary files a/B4A/Files/cliente.bal and b/B4A/Files/cliente.bal differ diff --git a/B4A/Guna Vistas V3.1.b4a b/B4A/Guna Vistas V3.1.b4a index 1944fd0..4ca0b79 100644 --- a/B4A/Guna Vistas V3.1.b4a +++ b/B4A/Guna Vistas V3.1.b4a @@ -284,7 +284,7 @@ Version=12.8 #Region Project Attributes #ApplicationLabel: Guna Preventa #VersionCode: 1 - #VersionName: 5.05.07 + #VersionName: 5.06.10 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: portrait #CanInstallToExternalStorage: False diff --git a/B4A/Guna Vistas V3.1.b4a.meta b/B4A/Guna Vistas V3.1.b4a.meta index b7df309..cfb0cca 100644 --- a/B4A/Guna Vistas V3.1.b4a.meta +++ b/B4A/Guna Vistas V3.1.b4a.meta @@ -82,6 +82,6 @@ ModuleClosedNodes6= ModuleClosedNodes7=6,8,9,10,11 ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=C_Productos,B4XPage_Appear,1064,0,Diseñador Visual,promociones.bal,-100,1,C_Promos,b_promoMas_Click,953,0,C_Promos,b_continuar_Click,1035,5,C_Promos,b_terminar1_Click,994,0,Subs,traeTablaProds,1810,0,Subs,guardaProductoSinGestion,1794,0,Subs,revisaMaxPromosProdsVariablesPorInventario,2130,0,Subs,agrupaProdsPromo,2199,6 +NavigationStack=Diseñador Visual,cliente.bal,-100,4,C_Cliente,GPS_LocationChanged,1382,6,C_Cliente,B4XPage_Appear,537,0,C_Cliente,b_mapa_Click,2577,0,C_Cliente,Printer1_Connected,3079,0,C_Cliente,StartPrinter,3123,0,C_Cliente,Printer_Connected,3077,0,C_Cliente,Impresion,2820,0,C_Principal,Subir_Click,536,0,C_Principal,JobDone,1382,0,C_Principal,cargar_Click,1121,0 SelectedBuild=0 -VisibleModules=25,2,14,26,5,10,11,16,15 +VisibleModules=25,2,14,26,5,10,11,20,19,16 diff --git a/B4A/Starter.bas b/B4A/Starter.bas index 4487614..005009c 100644 --- a/B4A/Starter.bas +++ b/B4A/Starter.bas @@ -19,7 +19,7 @@ Sub Process_Globals Public FLP As FusedLocationProvider ' Private flpStarted As Boolean Dim reqManager As DBRequestManager - Dim server As String = "http://187.189.244.154:1782" + Dim server As String = "http://keymon.net:1782" ' Dim server As String = "http://10.0.0.205:1782" Dim Timer1 As Timer Dim Interval As Int = 300 diff --git a/B4A/Subs.bas b/B4A/Subs.bas index eb113d3..82cdf03 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -1814,7 +1814,7 @@ End Sub 'Regresa la tabla de productos (cat_gunaprod o cat_gunaprod2) dependiendo del tipo de venta. Sub traeTablaProds(tipoventa As String) As String -' Log(tipoventa) + Log(tipoventa) Private tablaProds As String = "cat_gunaprod2" If tipoventa = "ABORDO" Or tipoventa = "PREVENTA" Then tablaProds = "cat_gunaprod" ' LogColor($"Tipo= ${tipoventa}, tabla=${tablaProds}"$, Colors.RGB(200,136,0)) @@ -1933,10 +1933,10 @@ Sub traeTipoCliente As Int x = Starter.skmt.ExecQuery($"select IFNULL(cat_cl_tipocliente,3) AS CAT_CL_TIPOCLIENTE from kmt_info3 where cat_cl_codigo in (select cuenta from cuentaa)"$) If x.RowCount > 0 Then x.Position = 0 - Log("ESTO LO HIZO GUERRA ------> "&x.GetInt("CAT_CL_TIPOCLIENTE")) +' Log("ESTO LO HIZO GUERRA ------> "&x.GetInt("CAT_CL_TIPOCLIENTE")) tc = x.GetInt("CAT_CL_TIPOCLIENTE") End If - Log("ESTO LO HIZO GUERRA X2------> "&tc) +' Log("ESTO LO HIZO GUERRA X2------> "&tc) Return tc End Sub @@ -2189,118 +2189,4 @@ Sub alcanzanLosVariablesParaPromo(promoMap As Map, inventarioSinFijos As Map) As End If ' Log(res) Return res -End Sub - - -' Agrupa los productos de las promociones, porque si tenemos un producto fijo a precio x y un producto variabe al mismo precio -' y las mismas cantidades, el pasarInfoMovil las detecta como duplicados y las tira, con esta funcion en lugar de dos registros, -' solo va uno con cantidades y totales sumados. -Sub agrupaProdsPromo(cliente As String) - ' Obtener la estructura de la tabla pedido con tipos de datos - Dim rs As ResultSet = Starter.skmt.ExecQuery("PRAGMA table_info(pedido)") - Dim columns As List - columns.Initialize - Dim columnTypes As Map - columnTypes.Initialize - - ' Obtener nombres y tipos de columnas - Do While rs.NextRow - Dim colName As String = rs.GetString("name") - Dim colType As String = rs.GetString("type") - columns.Add(colName) - columnTypes.Put(colName, colType) - Loop - rs.Close - - ' Construir la sentencia CREATE TABLE dinámica con tipos correctos - Dim createTableSQL As StringBuilder - createTableSQL.Initialize - createTableSQL.Append("CREATE TEMP TABLE IF NOT EXISTS PEDIDO_AGRUPADOR (") - - For i = 0 To columns.Size - 1 - Dim columnName As String = columns.Get(i) - If i > 0 Then createTableSQL.Append(", ") - createTableSQL.Append(columnName).Append(" ") - - ' Determinar el tipo de dato adecuado - Dim detectedType As String = columnTypes.Get(columnName) - If detectedType.Contains("INT") Then - createTableSQL.Append("INTEGER") - Else If detectedType.Contains("CHAR") Or detectedType.Contains("TEXT") Then - createTableSQL.Append("TEXT") - Else If detectedType.Contains("REAL") Or detectedType.Contains("FLOA") Or detectedType.Contains("DOUB") Then - createTableSQL.Append("REAL") - Else If detectedType.Contains("BLOB") Then - createTableSQL.Append("BLOB") - Else - ' Por defecto usar TEXT si no se reconoce el tipo - createTableSQL.Append("TEXT") - End If - Next - - createTableSQL.Append(")") - - ' Crear la tabla temporal con los tipos correctos - Starter.skmt.ExecNonQuery(createTableSQL.ToString) - - Log("########################################################################") - Log(createTableSQL.ToString) - Log("########################################################################") - - ' Identificar columnas que deben sumarse (basado en nombre o tipo) - Dim sumColumns As List - sumColumns.Initialize - sumColumns.Add("PE_CANT") ' Estas son las que sabemos que deben sumarse - sumColumns.Add("PE_COSTO_TOT") - - ' Construir la lista de columnas para el GROUP BY (excluyendo las que se sumarán) - Dim groupByColumns As List - groupByColumns.Initialize - For Each col As String In columns - If sumColumns.IndexOf(col) = -1 Then ' Si no es una columna a sumar - groupByColumns.Add(col) - End If - Next - - ' Construir la consulta SELECT dinámica - Dim selectSQL As StringBuilder - selectSQL.Initialize - selectSQL.Append("INSERT INTO PEDIDO_AGRUPADOR SELECT ") - - For i = 0 To columns.Size - 1 - Dim columnName As String = columns.Get(i) - If i > 0 Then selectSQL.Append(", ") - - If sumColumns.IndexOf(columnName) > -1 Then - ' Columnas que requieren SUM() - selectSQL.Append("SUM(").Append(columnName).Append(") As ").Append(columnName) - Else - ' Otras columnas - selectSQL.Append(columnName) - End If - Next - - selectSQL.Append(" FROM pedido WHERE PE_CLIENTE = '").Append(cliente).Append("' GROUP BY ") - - For i = 0 To groupByColumns.Size - 1 - If i > 0 Then selectSQL.Append(", ") - selectSQL.Append(groupByColumns.Get(i)) - Next - - ' Ejecutar la transacción - Starter.skmt.BeginTransaction - - ' Vaciar la tabla temporal - Starter.skmt.ExecNonQuery("DELETE FROM PEDIDO_AGRUPADOR") - - ' Insertar datos agrupados - Starter.skmt.ExecNonQuery(selectSQL.ToString) - - ' Reemplazar los datos originales - Starter.skmt.ExecNonQuery($"DELETE FROM PEDIDO WHERE PE_CLIENTE = '${cliente}'"$) - Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO_AGRUPADOR") - - Starter.skmt.TransactionSuccessful - Starter.skmt.EndTransaction - Log("LISTO!!") End Sub \ No newline at end of file