Commit c5223c69cf8cf0bc4e1f10045cf774d2b050c9c1

Authored by José Maria Villac Pinheiro
1 parent a918b4ca
Exists in master

20-10-2016 - GeoSan 7.4.0 - Implementação de funcionalidade para associar rapidamente mais de

uma ligação a um ramal selecionado pelo usuário. Estas ligações vem das coordenadas GPS do
coletor do GSAN.
install/GeraSetupGeoSan/ArquivosInstGeoSan/GeoSan.exe
No preview for this file type
install/GeraSetupGeoSan/Codigo Gerador Instalador Geosan com TerraComponents.iss
1 1 #define SetupBaseName "SetupGeoSan-v."
2   -#define AppVersionFile "07.03.03"
  2 +#define AppVersionFile "07.04.00"
3 3  
4 4 [Setup]
5 5 AppName=GeoSan
... ...
install/GeraSetupGeoSan/Output/SetupGeoSan-v.07.04.00.exe 0 → 100644
No preview for this file type
trunk/Forms/frmCanvas.frm
... ... @@ -205,27 +205,87 @@ Dim conexao As New ADODB.connection
205 205 Dim cConsumidor As New clsConsumidorControler
206 206 Dim object_id_consumidorSelecionado As Long 'referente ao cadastro de ligações com GPS em campo é a seleção do consumidor que será utilizado para ligar ao ramal
207 207 Dim object_id_redeSelecionada As Long 'referente ao trecho de rede selecionado ao qual serão criados os ramais e ligados os consumidores
  208 +Dim object_id_ramalAddConsumerSelecionado As Long 'referente ao ramal que foi selecionado, para que os outros consumidores sejam adicionados ao mesmo
  209 +Dim object_id_ramalAddConsumerConsumidorSelecionado As Long 'referente ao consumidor selecionado pelo usuário, o qual será adicionado ao ramal já existente
208 210  
209 211 'Constantes utilizadas na função ConvertTwipsToPixels para converter pixel para milímetro
210 212 Const WU_LOGPIXELSX = 88
211 213 Const WU_LOGPIXELSY = 90
  214 +
  215 +'Insere uma ligação de água do coletor de campo obtida pelo GPS do celular, no ramal selecionado
  216 +'
  217 +'
  218 +'
  219 +Private Sub InsereLigacaoNoRamalSelecionado(object_id_ramalSelecionado As Long, object_id_consumidoreSelecionado As Long)
  220 + Dim debugCodigoErro As String
  221 + Dim rsInsereRamaisAguaLigacao As ADODB.Recordset
  222 + Dim rsApagaLigacaoGpsCadastrada As ADODB.Recordset
  223 + Dim strAbreConexaoInsereRamaisAguaLigacao As String
  224 + Dim volumeFaturado As Double
  225 + Dim numeroDaLigacaoComDV As String
  226 + Dim strApagaGeometriaDaLigacaoGpsCadastrada As String
  227 + Dim strInsereLigacao As String
  228 + Dim strApagaLigacaoGpsCadastrada As String
  229 + On Error GoTo Trata_Erro
  230 +
  231 + '1 - Insere em RAMAIS_AGUA_LIGACAO a ligação selecionada pelo usuário
  232 + On Error GoTo Transacao_Erro
  233 + Conn.BeginTrans
  234 + debugCodigoErro = "0"
  235 + Set rsInsereRamaisAguaLigacao = New ADODB.Recordset
  236 + strAbreConexaoInsereRamaisAguaLigacao = "SELECT NRO_LIGACA, VOL_FATURA FROM NXGS_V_LIG_COMERCIAL_GPS WHERE object_id_331 = " + CStr(object_id_consumidoreSelecionado)
  237 + debugCodigoErro = "1 - Select: " & strAbreConexaoInsereRamaisAguaLigacao
  238 + rsInsereRamaisAguaLigacao.Open strAbreConexaoInsereRamaisAguaLigacao, Conn, adOpenKeyset, adLockOptimistic, adCmdText
  239 + 'Inicia a atualização de RAMAIS_AGUA com todos os dados
  240 + If rsInsereRamaisAguaLigacao.EOF = False Then 'Tem que encontrar a linha em RAMAIS_AGUA que acabou de ser inserida
  241 + volumeFaturado = IIf(IsNull(rsInsereRamaisAguaLigacao!VOL_FATURA), 0, rsInsereRamaisAguaLigacao!VOL_FATURA)
  242 + numeroDaLigacaoComDV = rsInsereRamaisAguaLigacao!NRO_LIGACA
  243 + End If
  244 + strInsereLigacao = "INSERT INTO RAMAIS_AGUA_LIGACAO (OBJECT_ID_,NRO_LIGACAO,CONSUMO_LPS) "
  245 + strInsereLigacao = strInsereLigacao & "VALUES ('" & object_id_ramalSelecionado & "','" & numeroDaLigacaoComDV & "', " & volumeFaturado & ")"
  246 + Conn.execute (strInsereLigacao)
  247 + rsInsereRamaisAguaLigacao.Close
  248 +
  249 + ' 7 - Apaga NX GPS
  250 + debugCodigoErro = "2"
  251 + Set rsApagaLigacaoGpsCadastrada = New ADODB.Recordset
  252 + strApagaLigacaoGpsCadastrada = "SELECT NRO_LIGACA FROM NXGS_V_LIG_COMERCIAL_GPS WHERE object_id_331 = " + CStr(object_id_consumidorSelecionado)
  253 + rsApagaLigacaoGpsCadastrada.Open strAbreConexaoInsereRamaisAguaLigacao, Conn, adOpenKeyset, adLockOptimistic, adCmdText
  254 + strApagaLigacaoGpsCadastrada = "DELETE FROM NXGS_V_LIG_COMERCIAL_GPS WHERE object_id_331 = " + CStr(object_id_consumidorSelecionado)
  255 + Conn.execute (strApagaLigacaoGpsCadastrada)
  256 + debugCodigoErro = "3"
  257 + strApagaGeometriaDaLigacaoGpsCadastrada = "DELETE FROM POINTS331 WHERE object_id = " + CStr(object_id_consumidoreSelecionado)
  258 + Conn.execute (strApagaGeometriaDaLigacaoGpsCadastrada)
  259 + rsApagaLigacaoGpsCadastrada.Close
  260 + Conn.CommitTrans
  261 + On Error GoTo Trata_Erro
  262 + debugCodigoErro = "4"
  263 +
  264 + TCanvas.plotView
  265 + Exit Sub
  266 +
  267 +Trata_Erro:
  268 + If Err.Number = 0 Or Err.Number = 20 Then
  269 + Resume Next
  270 + Else
  271 + ErroUsuario.Registra "frmCanvas", "InsereRamalLigacaoGPS - Código Erro: " & debugCodigoErro, CStr(Err.Number), CStr(Err.Description), True, glo.enviaEmails
  272 + End
  273 + End If
  274 + Exit Sub
  275 +
  276 +Transacao_Erro:
  277 + Conn.RollbackTrans
  278 + Conn.Close
  279 + ErroUsuario.Registra "frmCanvas", "InsereRamalLigacaoGPS - Código Erro: " & debugCodigoErro, CStr(Err.Number), CStr(Err.Description), True, glo.enviaEmails
  280 + End
  281 + Exit Sub
  282 +End Sub
  283 +
212 284 'Insere um ramal e a ligação do mesmo, para os consumidores levantados com GPS
213 285 '
214 286 '
215 287 '
216 288 Private Sub InsereRamalLigacaoGPS(object_id_ligacaoGPS As Long, object_id_rede As Long)
217   - ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX FASE 1 - É UM NOVO RAMAL
218   - ' Sequência de operações
219   - ' 1 - Insere linha em RAMAIS_AGUA
220   - ' 2 - Insere a geometria de linha do ramal em LINES7
221   - ' 3 - Insere a geometria do ponto da ligação em POINTS7
222   - ' 4 - Atualiza os dados de RAMAIS_AGUA inclusive com o OBJECT_ID do trecho de rede e OBJECT_ID do ramal
223   - ' 5 - Cria uma string com os números das ligações selecionadas pelo usuário
224   - ' 6 - Insere em RAMAIS_AGUA_LIGACAO as ligações selecionadas pelo usuário
225   - 'Tabelas de água a serem consultadas
226   -' TB_Ramais = "RAMAIS_AGUA" 'Informações sobre os ramais
227   -' TB_Ligacoes = "RAMAIS_AGUA_LIGACAO" 'Informações sobre as ligações de água
228   -' TB_comercial = "NXGS_V_LIG_COMERCIAL" 'Informações sobre os dados das ligações de água. Geralmente uma vista para o sistema comercial
229 289 On Error GoTo Trata_Erro
230 290 Dim debugCodigoErro As String
231 291 Dim objIdRamalTemporarioDoUsuario As String
... ... @@ -260,7 +320,6 @@ Private Sub InsereRamalLigacaoGPS(object_id_ligacaoGPS As Long, object_id_rede A
260 320 Dim strApagaGeometriaDaLigacaoGpsCadastrada As String
261 321 Dim retornoPontoDoRamalInserido As Long
262 322 Dim geomIdRamal As Integer
263   -' Dim objectIdRamal As String
264 323 Dim volumeFaturado As Double
265 324 Dim numeroDaLigacaoComDV As String
266 325  
... ... @@ -286,6 +345,7 @@ Private Sub InsereRamalLigacaoGPS(object_id_ligacaoGPS As Long, object_id_rede A
286 345 rsAdicionaNovoAtributoRamalAgua.Close 'Termina de adicionar a linha do ramal de água com os dados temporários da mesma
287 346 Conn.CommitTrans
288 347 On Error GoTo Trata_Erro
  348 +
289 349 '2 - Adiciona geometria da linha de ramal de água
290 350 debugCodigoErro = "1"
291 351 retornoPontoGPS = TeDatabase1.setCurrentLayer("NXGS_V_LIG_COMERCIAL_GPS")
... ... @@ -299,21 +359,6 @@ Private Sub InsereRamalLigacaoGPS(object_id_ligacaoGPS As Long, object_id_rede A
299 359 retornoPontoGPS = TeDatabase1.setCurrentLayer("RAMAIS_AGUA")
300 360 retornoAdicionaLinhaRamal = TeDatabase1.addLine(idUnicoRamaisAgua, linhaRamalX(0), linhaRamalY(0), 2)
301 361  
302   - '3 - obtem o geoId máximo da tabela de geometria de linhas, último entrado
303   -' debugCodigoErro = "2"
304   -' On Error GoTo Transacao_Erro
305   -' Conn.BeginTrans
306   -' Set rsConsultaMaximoGeoId = New ADODB.Recordset
307   -' strConsultaMaxGeoIdLinhaRamal = "SELECT Max ([geom_id]) From LINES7 WHERE object_id = '" + objIdRamalTemporarioDoUsuario + "'"
308   -' rsConsultaMaximoGeoId.Open strConsultaMaxGeoIdLinhaRamal, Conn, adOpenForwardOnly, adLockOptimistic
309   -' If rsConsultaMaximoGeoId.EOF = False Then
310   -' Dim valorMaximo As Integer
311   -' valorMaximo = rsConsultaMaximoGeoId.Fields(0).value
312   -' geomIdRamal = valorMaximo
313   -' objectIdRamal = CStr(geomIdRamal)
314   -' End If
315   -' rsConsultaMaximoGeoId.Close
316   -' Conn.CommitTrans
317 362 On Error GoTo Trata_Erro
318 363 '4 - Adiciona geometria do ponto ao ramail
319 364 debugCodigoErro = "3"
... ... @@ -337,23 +382,7 @@ Private Sub InsereRamalLigacaoGPS(object_id_ligacaoGPS As Long, object_id_rede A
337 382 rsAtualizaDadosDoRamal.Close
338 383 Conn.CommitTrans
339 384 On Error GoTo Trata_Erro
340   -
341   - '5 - Atualiza Lines7
342   -' debugCodigoErro = "5"
343   -' Set rsAtualizaDadosLinhaRamal = New ADODB.Recordset
344   -' strAtualizaDadosDaLinhaRamal = "SELECT * FROM LINES7 WHERE OBJECT_ID = '" + objIdRamalTemporarioDoUsuario + "'"
345   -' On Error GoTo Transacao_Erro
346   -' Conn.BeginTrans
347   -' rsAtualizaDadosLinhaRamal.Open strAtualizaDadosDaLinhaRamal, Conn, adOpenKeyset, adLockOptimistic, adCmdText
348   -' 'Inicia a atualização de RAMAIS_AGUA com todos os dados
349   -' If rsAtualizaDadosLinhaRamal.EOF = False Then 'Tem que encontrar a linha em RAMAIS_AGUA que acabou de ser inserida
350   -' rsAtualizaDadosLinhaRamal!object_id = objectIdRamal 'Agora coloca o OBJECT_ID do ramal correto, o anterior tinha o nome do usuário-data-hora
351   -' rsAtualizaDadosLinhaRamal.Update
352   -' End If
353   -' rsAtualizaDadosLinhaRamal.Close
354   -' Conn.CommitTrans
355   -' On Error GoTo Trata_Erro
356   -
  385 +
357 386 ' 6 - Insere em RAMAIS_AGUA_LIGACAO a ligação selecionada pelo usuário
358 387 On Error GoTo Transacao_Erro
359 388 Conn.BeginTrans
... ... @@ -995,8 +1024,8 @@ Public Sub Tb_SELECT(ByVal Button As String)
995 1024 TCanvas.Select
996 1025 Tr.TerraEvent = tg_DrawRamalAddConsumer
997 1026 TCanvas.clearEditItens TypeGeometry.Polyguns: TCanvas.clearEditItens TypeGeometry.lines: TCanvas.clearEditItens TypeGeometry.points: TCanvas.clearEditItens TypeGeometry.texts
998   - TCanvas.setCurrentLayer ("NXGS_V_LIG_COMERCIAL_GPS")
999   - FrmMain.sbStatusBar.Panels(1).Text = "Selecione o consumidor a ser adicionado"
  1027 + TCanvas.setCurrentLayer ("RAMAIS_AGUA")
  1028 + FrmMain.sbStatusBar.Panels(1).Text = "Selecione o ramal para adicionar o consumidor"
1000 1029 FrmMain.sbStatusBar.Panels(2).Text = " "
1001 1030 Case "kdrawramalAuto"
1002 1031 TCanvas.Normal ' TCanvas da area normal desmarca item 1, item2, item3, item4 e 128
... ... @@ -1394,12 +1423,12 @@ On Error GoTo Trata_Erro
1394 1423 Dim frm As New FrmAssociation 'formulário para a associação de documentos a pontos no mapa
1395 1424 'este select é para o cadastro de ramais que vem da leitura em campo
1396 1425 Select Case Tr.TerraEvent 'verifica o comando que está sendo executado
1397   - Case tg_DrawRamalAutoSelecionaConsumidor
  1426 + Case tg_DrawRamalAutoSelecionaConsumidor 'aqui o usuário vai selecionando um consumidor após o outro para ligá-los no mesmo trecho de rede selecionado em tg_DrawRamalAuto
1398 1427 object_id_consumidorSelecionado = TCanvas.getSelectObjectId(0, TypeGeometry.points)
1399 1428 FrmMain.sbStatusBar.Panels(2).Text = "Ligação: " & str(object_id_consumidorSelecionado)
1400 1429 InsereRamalLigacaoGPS object_id_consumidorSelecionado, object_id_redeSelecionada
1401 1430  
1402   - Case tg_DrawRamalAuto
  1431 + Case tg_DrawRamalAuto 'aqui o usuário seleciona a rede de água em que serão ligados os ramais
1403 1432 object_id_redeSelecionada = TCanvas.getSelectObjectId(0, TypeGeometry.lines)
1404 1433 TCanvas.Normal ' TCanvas da area normal desmarca item 1, item2, item3, item4 e 128
1405 1434 TCanvas.Select
... ... @@ -1409,8 +1438,22 @@ On Error GoTo Trata_Erro
1409 1438 FrmMain.sbStatusBar.Panels(2).Text = "Rede selecionada: " & str(object_id_redeSelecionada)
1410 1439 FrmMain.sbStatusBar.Panels(1).Text = "Selecione a ligação de água"
1411 1440  
1412   - Case tg_DrawRamalAddConsumer
1413   -
  1441 + Case tg_DrawRamalAddConsumer 'aqui o usuário terminou de selecionar o ramal para poder em seguida adicionar mais consumidores a este ramal
  1442 + object_id_ramalAddConsumerSelecionado = TCanvas.getSelectObjectId(0, TypeGeometry.lines)
  1443 + TCanvas.Normal ' TCanvas da area normal desmarca item 1, item2, item3, item4 e 128
  1444 + TCanvas.Select
  1445 + Tr.TerraEvent = tg_DrawRamalAddConsumerSelecionaConsumidor
  1446 + TCanvas.clearEditItens TypeGeometry.Polyguns: TCanvas.clearEditItens TypeGeometry.lines: TCanvas.clearEditItens TypeGeometry.points: TCanvas.clearEditItens TypeGeometry.texts
  1447 + TCanvas.setCurrentLayer ("NXGS_V_LIG_COMERCIAL_GPS")
  1448 + FrmMain.sbStatusBar.Panels(2).Text = "Ramal selecionado: " & str(object_id_ramalAddConsumerSelecionado)
  1449 + FrmMain.sbStatusBar.Panels(1).Text = "Selecione a ligação de água para ligar no ramal"
  1450 +
  1451 + Case tg_DrawRamalAddConsumerSelecionaConsumidor
  1452 + object_id_ramalAddConsumerConsumidorSelecionado = TCanvas.getSelectObjectId(0, TypeGeometry.points)
  1453 + FrmMain.sbStatusBar.Panels(2).Text = "Ligação: " & str(object_id_ramalAddConsumerConsumidorSelecionado)
  1454 +
  1455 + InsereLigacaoNoRamalSelecionado object_id_ramalAddConsumerSelecionado, object_id_ramalAddConsumerConsumidorSelecionado
  1456 +
1414 1457 Case Else
1415 1458  
1416 1459 End Select
... ...
trunk/Forms/frmMain.frm
... ... @@ -155,12 +155,12 @@ Begin VB.MDIForm FrmMain
155 155 Begin VB.PictureBox pctSfondo
156 156 Align = 4 'Align Right
157 157 BorderStyle = 0 'None
158   - Height = 6615
  158 + Height = 7515
159 159 Left = 6090
160   - ScaleHeight = 6615
  160 + ScaleHeight = 7515
161 161 ScaleWidth = 3945
162 162 TabIndex = 1
163   - Top = 1410
  163 + Top = 510
164 164 Width = 3945
165 165 Begin NxViewManager.ViewManager ViewManager1
166 166 Height = 1095
... ... @@ -320,7 +320,7 @@ Begin VB.MDIForm FrmMain
320 320 AutoSize = 2
321 321 Object.Width = 3519
322 322 MinWidth = 3528
323   - TextSave = "01:25"
  323 + TextSave = "10:54"
324 324 EndProperty
325 325 BeginProperty Panel4 {8E3867AB-8586-11D1-B16A-00C0F0283628}
326 326 AutoSize = 2
... ... @@ -336,13 +336,13 @@ Begin VB.MDIForm FrmMain
336 336 End
337 337 Begin MSComctlLib.Toolbar tbToolBar
338 338 Align = 1 'Align Top
339   - Height = 1410
  339 + Height = 510
340 340 Left = 0
341 341 TabIndex = 7
342 342 Top = 0
343 343 Width = 10035
344 344 _ExtentX = 17701
345   - _ExtentY = 2487
  345 + _ExtentY = 900
346 346 ButtonWidth = 820
347 347 ButtonHeight = 794
348 348 ImageList = "ImageList4"
... ...
trunk/GeoSan.exe
No preview for this file type
trunk/GeoSan.vbp
... ... @@ -150,8 +150,8 @@ Name="GeoSan"
150 150 HelpContextID="0"
151 151 CompatibleMode="0"
152 152 MajorVer=7
153   -MinorVer=3
154   -RevisionVer=3
  153 +MinorVer=4
  154 +RevisionVer=0
155 155 AutoIncrementVer=0
156 156 ServerSupportFiles=0
157 157 VersionCompanyName="NEXUS GeoEngenharia e Com. Ltda."
... ...
trunk/GeoSan.vbw
1   -Global = 178, 111, 1297, 843, Z
  1 +Global = 78, 7, 979, 602, Z
2 2 calcDetecta = 0, 0, 0, 0, C
3 3 FrmCreatTextForLayer = 0, 0, 0, 0, C, 132, 132, 1251, 864, C
4 4 frmAbout = 0, 0, 0, 0, C, 154, 154, 1273, 886, C
5 5 FrmTypes = 0, 0, 0, 0, C, 176, 176, 1295, 908, C
6   -FrmMain = 37, 14, 1267, 632, C, 44, 44, 1163, 776, C
  6 +FrmMain = -209, 52, 1021, 665, C, -107, 100, 1012, 832, C
7 7 FrmAssociation = 39, 209, 1277, 778, C, 220, 220, 1339, 952, C
8   -FrmCadastroRamal = 18, 19, 1408, 748, , 45, 39, 1164, 771, C
  8 +FrmCadastroRamal = -448, 44, 942, 773, C, 45, 39, 1164, 771, C
9 9 frmCadastroRamalFiltro = 100, 100, 1246, 731, C, 264, 264, 1383, 996, C
10 10 frmCanvas = -74, 93, 1045, 858, , 110, 110, 1229, 842, C
11 11 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
33 33 FrmSubTypes = 0, 0, 0, 0, C, 44, 44, 1163, 776, C
34 34 FrmSuppliers = 0, 0, 0, 0, C, 66, 66, 1185, 798, C
35 35 FrmSuppliersSub = 0, 0, 0, 0, C, 88, 88, 1207, 820, C
36   -clsTerraLib = 56, 35, 1052, 839, C
  36 +clsTerraLib = 56, 35, 1052, 839,
37 37 clsEPACurves = 0, 0, 0, 0, C
38 38 clsEPAPatterns = 0, 0, 0, 0, C
39 39 clsGeoReference = 132, 132, 1251, 864, C
... ...
trunk/Modules/Global.bas
... ... @@ -200,7 +200,7 @@ Public Sub Main()
200 200 End If
201 201 'Configura a versão atual do GeoSan
202 202 Versao_Geo = App.Major & "." & App.Minor & "." & App.Revision
203   - Versao_Geo = "07.03.03"
  203 + Versao_Geo = "07.04.00"
204 204 glo.diretorioGeoSan = App.path 'salva globalmente o caminho onde encontra-se o GeoSan.exe
205 205 SaveLoadGlobalData glo.diretorioGeoSan + "/controles/variaveisGlobais.txt", True 'salva em um arquivo todas as variáveis globais para poderem ser acessadas por outras aplicações
206 206 connn = ""
... ...
trunk/classes/clsTerraLib.cls
... ... @@ -42,9 +42,10 @@ Public Enum TypeGeometryEvent
42 42 tg_InsertDoc = 10
43 43 tg_MoveNetWorkVertice = 11
44 44 tg_MoveGpsPoint = 12
45   - tg_DrawRamalAuto = 13
46   - tg_DrawRamalAutoSelecionaConsumidor = 14
47   - tg_DrawRamalAddConsumer = 15
  45 + tg_DrawRamalAuto = 13 'para selecionar o trecho de rede ao qual os ramais serão desenhados
  46 + tg_DrawRamalAutoSelecionaConsumidor = 14 'para selecionar o consumidor que será associado ao ramal que será desenhado
  47 + tg_DrawRamalAddConsumer = 15 'para selecionar o ramal ao qual serão ligados os consumidores
  48 + tg_DrawRamalAddConsumerSelecionaConsumidor = 16 'para selecionar os consumidores quer irão ligar-se aos ramais
48 49 End Enum
49 50  
50 51 Private LayerReference As String, rs As ADODB.Recordset
... ...