Skip to content

Commit

Permalink
Arquivos iniciais
Browse files Browse the repository at this point in the history
  • Loading branch information
douglasralmeida committed Apr 3, 2020
1 parent dc88bb4 commit 9047b56
Show file tree
Hide file tree
Showing 64 changed files with 2,229 additions and 0 deletions.
116 changes: 116 additions & 0 deletions balcarga/balcarga.dpr
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
{
BALANCEAMENTO DE CARGA
Este programa irá procurar pelo arquivo Plenus.trp para
configurar o IP de acesso do emulador Plenus ao servidor
CV3 da Dataprev usando balanceamento de carga.
O programa lerá os IPs disponíveis do arquivo cv3.ip. Em
seguida sorterará um IP aleatóriamente para salvar no
arquivo de transportes do Plenus (plenus.trp).
Ele espera encontrar duas linhas do arquivo que começam
com a expressão Host=. Então adicionará o IP de acesso nas
linhas encontradas.
O CV3 possui dois IPs para acesso. Com o sorterio aleatório,
espera-se que 50% das instalações usem o IP 1 e os 50% demais
utilizem o IP 2.
}

program balcarga;

{$APPTYPE CONSOLE}
{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}

{$R *.res}

uses
System.SysUtils, System.Classes, System.StrUtils;

const
TransportePlenus = 'plenus.trp';

var
PlenusIP: Array of String;
QuantidadeIPs: Integer;

procedure AbrirArquivoIPs;
var
I: Integer;
ArquivoIP: TStringList;
NomeArquivoIP: String;
begin
NomeArquivoIP := ParamStr(1);
if not FileExists(NomeArquivoIP) then
raise Exception.Create('Arquivo de IPs do Plenus CV3 não encontrado.');
ArquivoIP := TStringList.Create;
ArquivoIP.LoadFromFile(NomeArquivoIP);
QuantidadeIPs := ArquivoIP.Count;
if QuantidadeIPs = 0 then
raise Exception.Create('Arquivo de IPs está vazio.');
SetLength(PlenusIP, QuantidadeIPs);
for I := 0 to QuantidadeIPs - 1 do
PlenusIP[I] := ArquivoIP[I];
ArquivoIP.Free;
end;

function EscolherIP: String;
var
I: Integer;
begin
Randomize;
I := Random(100) mod QuantidadeIPs;
Result := PlenusIP[I];
end;

procedure ProcessarConfiguracao;
var
I: Integer;
QuantidadeLinhas: Integer;
ArquivoTransporte: TStringList;
IPEscolhido: String;
begin
if not FileExists(TransportePlenus) then
raise Exception.Create('Arquivo de Transporte do Plenus CV3 não encontrado.');
ArquivoTransporte := TStringList.Create;
ArquivoTransporte.LoadFromFile(TransportePlenus, TEncoding.ANSI);
QuantidadeLinhas := ArquivoTransporte.Count;
if QuantidadeLinhas = 0 then
raise Exception.Create('Arquivo de Tranporte do Plenus CV3 está vazio.');
IPEscolhido := EscolherIP;
for I := 0 to QuantidadeLinhas - 1 do
if StartsStr('Host=', ArquivoTransporte[I]) then
ArquivoTransporte[I] := 'Host=' + IPEscolhido;
ArquivoTransporte.SaveToFile(TransportePlenus, TEncoding.ANSI);
ArquivoTransporte.Free;
end;

procedure ExibirTitulo;
const
stringUso = 'Uso: %s <nomearquivoips>';

begin
WriteLn('CONFIGURADOR DO ENDEREÇO IP DE ACESSO AO PLENUS 1.0.0');
WriteLn('=====================================================');
WriteLn('');
WriteLn(Format(stringUso, [ParamStr(0)]));
end;

begin
try
if ParamCount < 1 then
begin
ExibirTitulo;
Exit();
end;
WriteLn('Configurando o IP do Plenus CV3...');
AbrirArquivoIPs;
ProcessarConfiguracao;
WriteLn('Operação executada com sucesso.');
except
on E: Exception do
Writeln('Erro: ', E.Message);
end;
end.
646 changes: 646 additions & 0 deletions balcarga/balcarga.dproj

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions balcarga/balcarga.dproj.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<BorlandProject>
<Transactions>
<Transaction>2020/03/28 15:29:35.000.544,C:\Users\dougl\OneDrive\Documentos\Embarcadero\Studio\Projects\Project1.dproj=D:\wplenus\balcarga\balcarga.dproj</Transaction>
</Transactions>
</BorlandProject>
Binary file added balcarga/balcarga.identcache
Binary file not shown.
Binary file added balcarga/balcarga.res
Binary file not shown.
10 changes: 10 additions & 0 deletions balcarga/balcarga.stat
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[Stats]
EditorSecs=125
DesignerSecs=1
InspectorSecs=1
CompileSecs=7977
OtherSecs=24
StartTime=28/03/2020 16:38:15
RealKeys=0
EffectiveKeys=0
DebugSecs=1
Binary file added icons/install.ico
Binary file not shown.
Binary file added setup/setupgrande.bmp
Binary file not shown.
Binary file added setup/setuppequeno.bmp
Binary file not shown.
192 changes: 192 additions & 0 deletions setup/wplenus.iss
Original file line number Diff line number Diff line change
@@ -0,0 +1,192 @@
; Script para o instalador do Plenus para o INSS
; requer InnoSetup

#define MyAppName "Plenus CV3 para INSS"
#define MyAppVersion "1.0.0"
#define MyAppPublisher "Douglas R. Almeida"
#define MyAppURL "https://github.com/douglasralmeida/wpinss"

[Setup]
AllowUNCPath=False
AppId={{A1C11669-69C6-4BAA-BABC-312796C81E8C}
AppName={#MyAppName}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
ArchitecturesInstallIn64BitMode=x64
ChangesAssociations=True
Compression=lzma
DefaultDirName=C:\WPLENUS\
DefaultGroupName=Plenus CV3
DisableDirPage=yes
DisableProgramGroupPage=yes
DisableWelcomePage=False
OutputBaseFilename=plenusinstala
SetupIconFile=..\icons\install.ico
SolidCompression=yes
ShowLanguageDialog=no
UninstallDisplayName=Plenus CV3
UninstallDisplayIcon={app}\plenus.exe
UninstallDisplaySize=6291456
VersionInfoVersion=1.0.0
VersionInfoProductVersion=1.0
WizardImageFile=setupgrande.bmp
WizardSmallImageFile=setuppequeno.bmp

[Files]
Source: "..\PLENUS\AP32_BPS.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\AP32_COM.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\AP32_HLC.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\AP32_LCW.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\AP32_NET.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\AP32_TCP.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\AP32_TRM.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\AP32_TSK.EXE"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\AP32_XFR.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\BALCARGA.EXE"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\CONFIG.EXE"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\CV3.IP"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\CV3.PLC"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\FPLENUS.FON"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\NTERM32.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\PLENUS.EXE"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\PLENUS.HLP"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\plenus.trp"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\RPCV3.RPC"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\RPLPD.EXE"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\RPRINT.EXE"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\PLENUS\RPRINT.INI"; DestDir: "{app}"; Flags: ignoreversion

[Languages]
Name: "brazilianportuguese"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl"

[Icons]
Name: "{commondesktop}\Plenus CV3"; Filename: "{app}\PLENUS.EXE"; Parameters: "CV3.PLC"; WorkingDir: "{app}"
Name: "{group}\Plenus CV3"; Filename: "{app}\PLENUS.EXE"; Parameters: "CV3.PLC"; WorkingDir: "{app}"
Name: "{group}\Configurador de Transporte"; Filename: "{app}\CONFIG.EXE"; WorkingDir: "{app}"
Name: "{group}\RPrint"; Filename: "{app}\RPRINT.EXE"; WorkingDir: "{app}"

[Registry]
Root: HKLM; Subkey: "Software\Classes\.PLC"; ValueType: string; ValueName: ""; ValueData: "PlenusConfigFile"; Flags: uninsdeletevalue
Root: HKLM; Subkey: "Software\Classes\PlenusConfigFile"; ValueType: string; ValueName: ""; ValueData: "Arquivo de Configurações do Plenus"; Flags: uninsdeletekey
Root: HKLM; Subkey: "Software\Classes\PlenusConfigFile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ PLENUS.EXE,2"
Root: HKLM; Subkey: "Software\Classes\PlenusConfigFile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\PLENUS.EXE"" ""%1"""

; Executa o balanceamento de carga
[Run]
Filename: "{app}\BALCARGA.EXE"; \
Parameters: "CV3.IP"; \
Flags: runhidden; \
StatusMsg: "Definindo configurações de acesso..."

Filename: "{app}\PLENUS.EXE"; \
Description: "Abrir o Plenus CV3 imediatamente."; \
Parameters: "CV3.PLC"; \
Flags: postinstall nowait skipifsilent unchecked

[Code]
var
RotuloExplicacao: TLabel;
RotuloCodigo: TLabel;
RotuloDica: TLabel;
EditCodigoMaquina: TEdit;
CodigoAcesso: String;
function CodigoDadosPage(Page: TWizardPage): Boolean;
begin
Result := True;
if EditCodigoMaquina.Text = '' then
begin
MsgBox('Você deve digitar um código de acesso antes de continuar.', mbError, MB_OK);
//Exit(false);
Result := false;
end;
CodigoAcesso := EditCodigoMaquina.Text;
end;
function CreateCodigoPage(PreviousPageId: Integer): Integer;
var
Page: TWizardPage;
begin
Page := CreateCustomPage(PreviousPageId, 'Código de Acesso',
'Defina um código de acesso único para o Plenus CV3.');
RotuloExplicacao := TLabel.Create(Page);
with RotuloExplicacao do
begin
Parent := Page.Surface;
Caption := 'Para acessar o servidor CV3 da Dataprev, você deve utilizar um código de acesso exclusivo. Caso dois computadores distintos acessem o CV3 com o mesmo código, ambos serão desconectados simultaneamente do servidor.';
Left := ScaleX(16);
Top := ScaleY(0);
Width := ScaleX(400);
Height := ScaleY(40);
WordWrap := true;
end;
RotuloCodigo := TLabel.Create(Page);
with RotuloCodigo do
begin
Parent := Page.Surface;
Caption := '&Código de Acesso:';
Left := ScaleX(16);
Top := ScaleY(100);
Width := ScaleX(100);
Height := ScaleY(40);
WordWrap := true;
end;
EditCodigoMaquina := TEdit.Create(Page);
with EditCodigoMaquina do
begin
Parent := Page.Surface;
Left := ScaleX(124);
Top := ScaleY(96);
Width := ScaleX(257);
Height := ScaleY(25);
TabOrder := 0;
Text := '';
end;
RotuloDica := TLabel.Create(Page);
with RotuloDica do
begin
Parent := Page.Surface;
Caption := 'DICA: Se você estiver acessando de casa, através do teletrabalho, utilize o código HO + o nº do seu CPF. Caso esteja no INSS, utilize o número de tombamento do computador (PIB) como código de acesso. Ou, você pode utilizar uma sequência de letras e números gerados em um gerador aleatório com, pelo menos, oito dígitos.';
Left := ScaleX(16);
Top := ScaleY(172);
Width := ScaleX(400);
Height := ScaleY(40);
WordWrap := true;
end;
with Page do
begin
OnNextButtonClick := @CodigoDadosPage;
end;
Result := Page.ID;
end;
procedure InitializeWizard();
begin
CreateCodigoPage(wpLicense);
end;
procedure CurStepChanged(CurStep: TSetupStep);
var
Configuracoes: TStringList;
begin
if CurStep = ssInstall then
begin
{ Apaga o diretório C:\wplenus }
DelTree('C:\WPLENUS', True, True, True);
end
else if CurStep = ssPostInstall then
begin
{ Configura o código de acesso do Plenus }
Configuracoes := TStringList.Create;
Configuracoes.LoadFromFile(ExpandConstant('{app}\plenus.trp'));
Configuracoes.Strings[9] := 'Nome=' + CodigoAcesso;
Configuracoes.SaveToFile(ExpandConstant('{app}\plenus.trp'));
Configuracoes.Free;
end;
end;
Binary file added src/BBCANCEL.bmp
Binary file not shown.
Binary file added src/BBOK.bmp
Binary file not shown.
Binary file added src/BITMAP24321_1.bmp
Binary file not shown.
Binary file added src/BITMAP24351_1.bmp
Binary file not shown.
Binary file added src/BITMAP24353_1.bmp
Binary file not shown.
Binary file added src/BITMAP32000_1.bmp
Binary file not shown.
Binary file added src/BITMAP32001_1.bmp
Binary file not shown.
Binary file added src/BITMAP4043_1.bmp
Binary file not shown.
Binary file added src/BITMAP4123_1.bmp
Binary file not shown.
Binary file added src/BITMAP4124_1.bmp
Binary file not shown.
Binary file added src/CURSOR24000_1.cur
Binary file not shown.
Loading

0 comments on commit 9047b56

Please sign in to comment.