From a918b4cae9e650d4ab9c449782aaa1403d0b115f Mon Sep 17 00:00:00 2001 From: José Maria Villac Pinheiro Date: Wed, 19 Oct 2016 07:47:25 -0200 Subject: [PATCH] 18-10-2016 - GeoSan 7.3.3 - Finalizada funcionalidade para cadastro automático de ramais a partir de ligações levantadas pelo coletor GPS (celular) do GSAN. O usuário seleciona o trecho de rede e em seguida seleciona as ligações, quando as mesmas são automaticamente associadas as redes unindo o cadastro comercial do GSAN ao cadastro GIS de redes de água. --- install/GeraSetupGeoSan/ArquivosInstGeoSan/GeoSan.exe | Bin 3997696 -> 0 bytes install/GeraSetupGeoSan/Codigo Gerador Instalador Geosan com TerraComponents.iss | 2 +- trunk/Forms/frmCanvas.frm | 70 ++++++++++++++++++++++++++++++++++------------------------------------ trunk/GeoSan.exe | Bin 4001792 -> 0 bytes trunk/GeoSan.vbp | 2 +- trunk/GeoSan.vbw | 6 +++--- trunk/Modules/Global.bas | 2 +- 7 files changed, 40 insertions(+), 42 deletions(-) diff --git a/install/GeraSetupGeoSan/ArquivosInstGeoSan/GeoSan.exe b/install/GeraSetupGeoSan/ArquivosInstGeoSan/GeoSan.exe index 0486b82..1ec941d 100644 Binary files a/install/GeraSetupGeoSan/ArquivosInstGeoSan/GeoSan.exe and b/install/GeraSetupGeoSan/ArquivosInstGeoSan/GeoSan.exe differ diff --git a/install/GeraSetupGeoSan/Codigo Gerador Instalador Geosan com TerraComponents.iss b/install/GeraSetupGeoSan/Codigo Gerador Instalador Geosan com TerraComponents.iss index ba65ac1..6aa09e1 100644 --- a/install/GeraSetupGeoSan/Codigo Gerador Instalador Geosan com TerraComponents.iss +++ b/install/GeraSetupGeoSan/Codigo Gerador Instalador Geosan com TerraComponents.iss @@ -1,5 +1,5 @@ #define SetupBaseName "SetupGeoSan-v." -#define AppVersionFile "07.03.01" +#define AppVersionFile "07.03.03" [Setup] AppName=GeoSan diff --git a/trunk/Forms/frmCanvas.frm b/trunk/Forms/frmCanvas.frm index 78a7d62..e7f0f74 100644 --- a/trunk/Forms/frmCanvas.frm +++ b/trunk/Forms/frmCanvas.frm @@ -260,7 +260,7 @@ Private Sub InsereRamalLigacaoGPS(object_id_ligacaoGPS As Long, object_id_rede A Dim strApagaGeometriaDaLigacaoGpsCadastrada As String Dim retornoPontoDoRamalInserido As Long Dim geomIdRamal As Integer - Dim objectIdRamal As String +' Dim objectIdRamal As String Dim volumeFaturado As Double Dim numeroDaLigacaoComDV As String @@ -288,8 +288,6 @@ Private Sub InsereRamalLigacaoGPS(object_id_ligacaoGPS As Long, object_id_rede A On Error GoTo Trata_Erro '2 - Adiciona geometria da linha de ramal de água debugCodigoErro = "1" - 'TCanvas.object_id = object_id_ramal 'acho que pode tirar esta linha 'Aqui é crucial, pois é onde ele fala para o Canvas qual é o número o OBJECT_ID, para quando ele criar as geometrias, criar com este OBJECT_ID - retornoPontoGPS = TeDatabase1.setCurrentLayer("NXGS_V_LIG_COMERCIAL_GPS") TeDatabase1.getCenterGeometry 0, stringObject_id_ligacaoGPS, TypeGeometry.points, coordX_pontoGPS, coordY_pontoGPS retornoPontoGPS = TeDatabase1.setCurrentLayer("WATERLINES") @@ -299,33 +297,32 @@ Private Sub InsereRamalLigacaoGPS(object_id_ligacaoGPS As Long, object_id_rede A linhaRamalX(1) = coordX_pontoGPS linhaRamalY(1) = coordY_pontoGPS retornoPontoGPS = TeDatabase1.setCurrentLayer("RAMAIS_AGUA") - retornoAdicionaLinhaRamal = TeDatabase1.addLine(objIdRamalTemporarioDoUsuario, linhaRamalX(0), linhaRamalY(0), 2) + retornoAdicionaLinhaRamal = TeDatabase1.addLine(idUnicoRamaisAgua, linhaRamalX(0), linhaRamalY(0), 2) '3 - obtem o geoId máximo da tabela de geometria de linhas, último entrado - debugCodigoErro = "2" - On Error GoTo Transacao_Erro - Conn.BeginTrans - Set rsConsultaMaximoGeoId = New ADODB.Recordset - strConsultaMaxGeoIdLinhaRamal = "SELECT Max ([geom_id]) From LINES7 WHERE object_id = '" + objIdRamalTemporarioDoUsuario + "'" - rsConsultaMaximoGeoId.Open strConsultaMaxGeoIdLinhaRamal, Conn, adOpenForwardOnly, adLockOptimistic - If rsConsultaMaximoGeoId.EOF = False Then - Dim valorMaximo As Integer - valorMaximo = rsConsultaMaximoGeoId.Fields(0).value - geomIdRamal = valorMaximo - objectIdRamal = CStr(geomIdRamal) - End If - rsConsultaMaximoGeoId.Close - Conn.CommitTrans +' debugCodigoErro = "2" +' On Error GoTo Transacao_Erro +' Conn.BeginTrans +' Set rsConsultaMaximoGeoId = New ADODB.Recordset +' strConsultaMaxGeoIdLinhaRamal = "SELECT Max ([geom_id]) From LINES7 WHERE object_id = '" + objIdRamalTemporarioDoUsuario + "'" +' rsConsultaMaximoGeoId.Open strConsultaMaxGeoIdLinhaRamal, Conn, adOpenForwardOnly, adLockOptimistic +' If rsConsultaMaximoGeoId.EOF = False Then +' Dim valorMaximo As Integer +' valorMaximo = rsConsultaMaximoGeoId.Fields(0).value +' geomIdRamal = valorMaximo +' objectIdRamal = CStr(geomIdRamal) +' End If +' rsConsultaMaximoGeoId.Close +' Conn.CommitTrans On Error GoTo Trata_Erro '4 - Adiciona geometria do ponto ao ramail debugCodigoErro = "3" - retornoPontoDoRamalInserido = TeDatabase1.addPoint(objectIdRamal, coordX_pontoGPS, coordY_pontoGPS) + retornoPontoDoRamalInserido = TeDatabase1.addPoint(idUnicoRamaisAgua, coordX_pontoGPS, coordY_pontoGPS) ' 4 - Atualiza os dados de RAMAIS_AGUA inclusive com o OBJECT_ID do trecho de rede e OBJECT_ID do ramal 'BOM, até agora ele criou uma linha em RAMAIS_AGUA, e inseriu as geometrias de linha (LINES7) e ponto (POINTS7) do ramal. Então tem agora que atualizar a linha recem inserida em RAMAIS_AGUA com os dados do ramal Set rsAtualizaDadosDoRamal = New ADODB.Recordset - strAtualizaObjIdRamal = "SELECT * FROM RAMAIS_AGUA WHERE OBJECT_ID_ = '" + objIdRamalTemporarioDoUsuario + "'" debugCodigoErro = "4" On Error GoTo Transacao_Erro @@ -333,29 +330,30 @@ Private Sub InsereRamalLigacaoGPS(object_id_ligacaoGPS As Long, object_id_rede A rsAtualizaDadosDoRamal.Open strAtualizaObjIdRamal, Conn, adOpenKeyset, adLockOptimistic, adCmdText 'Inicia a atualização de RAMAIS_AGUA com todos os dados If rsAtualizaDadosDoRamal.EOF = False Then 'Tem que encontrar a linha em RAMAIS_AGUA que acabou de ser inserida - rsAtualizaDadosDoRamal!Object_id_ = objectIdRamal 'Agora coloca o OBJECT_ID do ramal correto, o anterior tinha o nome do usuário-data-hora + rsAtualizaDadosDoRamal!Object_id_ = idUnicoRamaisAgua 'ID autonumérico da tabela Ramais 'Agora coloca o OBJECT_ID do ramal correto, o anterior tinha o nome do usuário-data-hora rsAtualizaDadosDoRamal!USUARIO_LOG = strUser 'Salva o nome do usuário rsAtualizaDadosDoRamal.Update End If rsAtualizaDadosDoRamal.Close Conn.CommitTrans On Error GoTo Trata_Erro + '5 - Atualiza Lines7 - debugCodigoErro = "5" - Set rsAtualizaDadosLinhaRamal = New ADODB.Recordset +' debugCodigoErro = "5" +' Set rsAtualizaDadosLinhaRamal = New ADODB.Recordset +' strAtualizaDadosDaLinhaRamal = "SELECT * FROM LINES7 WHERE OBJECT_ID = '" + objIdRamalTemporarioDoUsuario + "'" +' On Error GoTo Transacao_Erro +' Conn.BeginTrans +' rsAtualizaDadosLinhaRamal.Open strAtualizaDadosDaLinhaRamal, Conn, adOpenKeyset, adLockOptimistic, adCmdText +' 'Inicia a atualização de RAMAIS_AGUA com todos os dados +' If rsAtualizaDadosLinhaRamal.EOF = False Then 'Tem que encontrar a linha em RAMAIS_AGUA que acabou de ser inserida +' rsAtualizaDadosLinhaRamal!object_id = objectIdRamal 'Agora coloca o OBJECT_ID do ramal correto, o anterior tinha o nome do usuário-data-hora +' rsAtualizaDadosLinhaRamal.Update +' End If +' rsAtualizaDadosLinhaRamal.Close +' Conn.CommitTrans +' On Error GoTo Trata_Erro - strAtualizaDadosDaLinhaRamal = "SELECT * FROM LINES7 WHERE OBJECT_ID = '" + objIdRamalTemporarioDoUsuario + "'" - On Error GoTo Transacao_Erro - Conn.BeginTrans - rsAtualizaDadosLinhaRamal.Open strAtualizaDadosDaLinhaRamal, Conn, adOpenKeyset, adLockOptimistic, adCmdText - 'Inicia a atualização de RAMAIS_AGUA com todos os dados - If rsAtualizaDadosLinhaRamal.EOF = False Then 'Tem que encontrar a linha em RAMAIS_AGUA que acabou de ser inserida - rsAtualizaDadosLinhaRamal!object_id = objectIdRamal 'Agora coloca o OBJECT_ID do ramal correto, o anterior tinha o nome do usuário-data-hora - rsAtualizaDadosLinhaRamal.Update - End If - rsAtualizaDadosLinhaRamal.Close - Conn.CommitTrans - On Error GoTo Trata_Erro ' 6 - Insere em RAMAIS_AGUA_LIGACAO a ligação selecionada pelo usuário On Error GoTo Transacao_Erro Conn.BeginTrans @@ -370,7 +368,7 @@ Private Sub InsereRamalLigacaoGPS(object_id_ligacaoGPS As Long, object_id_rede A numeroDaLigacaoComDV = rsInsereRamaisAguaLigacao!NRO_LIGACA End If strInsereLigacao = "INSERT INTO RAMAIS_AGUA_LIGACAO (OBJECT_ID_,NRO_LIGACAO,CONSUMO_LPS) " - strInsereLigacao = strInsereLigacao & "VALUES ('" & objectIdRamal & "','" & numeroDaLigacaoComDV & "', " & volumeFaturado & ")" + strInsereLigacao = strInsereLigacao & "VALUES ('" & idUnicoRamaisAgua & "','" & numeroDaLigacaoComDV & "', " & volumeFaturado & ")" Conn.execute (strInsereLigacao) rsInsereRamaisAguaLigacao.Close diff --git a/trunk/GeoSan.exe b/trunk/GeoSan.exe index 94b2d89..1ec941d 100644 Binary files a/trunk/GeoSan.exe and b/trunk/GeoSan.exe differ diff --git a/trunk/GeoSan.vbp b/trunk/GeoSan.vbp index 8c7e8dc..0dc7658 100644 --- a/trunk/GeoSan.vbp +++ b/trunk/GeoSan.vbp @@ -151,7 +151,7 @@ HelpContextID="0" CompatibleMode="0" MajorVer=7 MinorVer=3 -RevisionVer=1 +RevisionVer=3 AutoIncrementVer=0 ServerSupportFiles=0 VersionCompanyName="NEXUS GeoEngenharia e Com. Ltda." diff --git a/trunk/GeoSan.vbw b/trunk/GeoSan.vbw index 3ef4d62..e206933 100644 --- a/trunk/GeoSan.vbw +++ b/trunk/GeoSan.vbw @@ -1,11 +1,11 @@ -Global = 178, 111, 1297, 843, C +Global = 178, 111, 1297, 843, Z calcDetecta = 0, 0, 0, 0, C FrmCreatTextForLayer = 0, 0, 0, 0, C, 132, 132, 1251, 864, C frmAbout = 0, 0, 0, 0, C, 154, 154, 1273, 886, C FrmTypes = 0, 0, 0, 0, C, 176, 176, 1295, 908, C FrmMain = 37, 14, 1267, 632, C, 44, 44, 1163, 776, C FrmAssociation = 39, 209, 1277, 778, C, 220, 220, 1339, 952, C -FrmCadastroRamal = 18, 19, 1408, 748, Z, 45, 39, 1164, 771, C +FrmCadastroRamal = 18, 19, 1408, 748, , 45, 39, 1164, 771, C frmCadastroRamalFiltro = 100, 100, 1246, 731, C, 264, 264, 1383, 996, C frmCanvas = -74, 93, 1045, 858, , 110, 110, 1229, 842, C frmConsumidoresDesabastecidos = 110, 110, 1229, 842, C, 308, 308, 1427, 1040, C @@ -33,7 +33,7 @@ FrmSelectTypes = 0, 0, 0, 0, C, 22, 22, 1141, 754, C FrmSubTypes = 0, 0, 0, 0, C, 44, 44, 1163, 776, C FrmSuppliers = 0, 0, 0, 0, C, 66, 66, 1185, 798, C FrmSuppliersSub = 0, 0, 0, 0, C, 88, 88, 1207, 820, C -clsTerraLib = 56, 35, 1052, 839, +clsTerraLib = 56, 35, 1052, 839, C clsEPACurves = 0, 0, 0, 0, C clsEPAPatterns = 0, 0, 0, 0, C clsGeoReference = 132, 132, 1251, 864, C diff --git a/trunk/Modules/Global.bas b/trunk/Modules/Global.bas index c37c264..4636f5a 100644 --- a/trunk/Modules/Global.bas +++ b/trunk/Modules/Global.bas @@ -200,7 +200,7 @@ Public Sub Main() End If 'Configura a versão atual do GeoSan Versao_Geo = App.Major & "." & App.Minor & "." & App.Revision - Versao_Geo = "07.03.01" + Versao_Geo = "07.03.03" glo.diretorioGeoSan = App.path 'salva globalmente o caminho onde encontra-se o GeoSan.exe SaveLoadGlobalData glo.diretorioGeoSan + "/controles/variaveisGlobais.txt", True 'salva em um arquivo todas as variáveis globais para poderem ser acessadas por outras aplicações connn = "" -- libgit2 0.21.2