Skip to content

Commit

Permalink
v0.6.1-testes
Browse files Browse the repository at this point in the history
  • Loading branch information
FeroxGraxaim committed Dec 2, 2024
1 parent 20a3153 commit aa6eb5e
Show file tree
Hide file tree
Showing 31 changed files with 5,428 additions and 3,646 deletions.
18 changes: 14 additions & 4 deletions GraxaimBanca.lpi
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,12 @@
</General>
<VersionInfo>
<UseVersionInfo Value="True"/>
<MinorVersionNr Value="5"/>
<BuildNr Value="25"/>
<MinorVersionNr Value="6"/>
<RevisionNr Value="1"/>
<BuildNr Value="28"/>
<Language Value="0416"/>
<StringTable CompanyName="Ferox Graxaim" ProductVersion="0.5"/>
<Attributes pvaPreRelease="True"/>
<StringTable CompanyName="Ferox Graxaim" ProductVersion="0.6"/>
</VersionInfo>
<MacroValues Count="1">
<Macro1 Name="LCLWidgetType" Value="gtk2"/>
Expand Down Expand Up @@ -214,12 +216,20 @@
<ResourceBaseClass Value="Form"/>
<UnitName Value="untBoasVindas"/>
</Unit>
<Unit>
<Filename Value="include/untconfig.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="formConfig"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="untConfig"/>
</Unit>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<Target>
<Filename Value="GraxaimBanca"/>
<Filename Value="graxaimbanca"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
Expand Down
3 changes: 2 additions & 1 deletion GraxaimBanca.lpr
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
Forms, tachartlazaruspkg, lazdbexport, untMain, untApostas, untDatabase,
untNA, untPainel, untSobre, untSplash, untUpdate, untControleMetodos,
untControleTimes, untPaises, untContrComp, untEditSimples, untEditMult,
untSalvarDados, untBoasVindas;
untSalvarDados, untBoasVindas, untConfig;

{$R *.res}

Expand All @@ -30,6 +30,7 @@
Application.CreateForm(TformEditMult, formEditMult);
Application.CreateForm(TformSalvarDados, formSalvarDados);
Application.CreateForm(TformBoasVindas, formBoasVindas);
Application.CreateForm(TformConfig, formConfig);
Application.Run;
end.

101 changes: 84 additions & 17 deletions datafiles/atualizarbd.sql
Original file line number Diff line number Diff line change
@@ -1,6 +1,41 @@
DROP TABLE IF EXISTS "ConfigPrograma";

CREATE TABLE IF NOT EXISTS "ConfigPrograma" (
"ExibirTelaBoasVindas" BOOLEAN DEFAULT 1
"ExibirTelaBoasVindas" BOOLEAN DEFAULT 1,
"GestaoVariavel" BOOLEAN DEFAULT 0,
"PreRelease" BOOLEAN DEFAULT 0
);

CREATE TABLE "NovaBanca" (
"Mês" INTEGER,
"Ano" INTEGER,
"Valor_Inicial" NUMERIC(9, 2) DEFAULT 0,
"Aporte" NUMERIC(9, 2) DEFAULT 0
);
INSERT INTO NovaBanca SELECT * FROM Banca;
DROP TABLE Banca;
ALTER TABLE NovaBanca RENAME TO Banca;

CREATE TABLE "NovaApostas" (
"Cod_Aposta" INTEGER,
"Selecao" BOOLEAN DEFAULT 0,
"Data" DATE,
"Múltipla" BOOLEAN DEFAULT 0,
"Odd" NUMERIC(9, 2),
"Valor_Aposta" NUMERIC(9, 2),
"Status" VARCHAR,
"Tipo" BOOLEAN DEFAULT 0,
"Cashout" BOOLEAN DEFAULT 0,
"Retorno" NUMERIC(9, 2) DEFAULT 0,
"Lucro" NUMERIC(9, 2) DEFAULT 0,
"Banca_Final" NUMERIC(9, 2) DEFAULT 0,
"Anotacoes" VARCHAR,
PRIMARY KEY("Cod_Aposta" AUTOINCREMENT)
);
INSERT INTO NovaApostas SELECT * FROM Apostas;
DROP TABLE Apostas;
ALTER TABLE NovaApostas RENAME TO Apostas;

CREATE TABLE "NovaMercados" (
"Cod_Mercado" INTEGER,
"Cod_Jogo" INTEGER,
Expand All @@ -14,29 +49,61 @@ CREATE TABLE "NovaMercados" (
CONSTRAINT "FK_Mercados_Jogo_2" FOREIGN KEY("Cod_Linha") REFERENCES "Linhas"("Cod_Linha"),
CONSTRAINT "FK_Mercados_Linhas_3" FOREIGN KEY("Cod_Metodo") REFERENCES "Métodos"("Cod_Metodo")
);

CREATE TABLE IF NOT EXISTS "BancaInicial" (
"Banca" NUMERIC(9, 2)
);

INSERT INTO NovaMercados SELECT * FROM Mercados;
DROP TABLE Mercados;
ALTER TABLE NovaMercados RENAME TO Mercados;

CREATE TRIGGER "Atualiza Apostas"
DROP TRIGGER IF EXISTS "Atualiza Apostas";
CREATE TRIGGER IF NOT EXISTS "Atualiza Apostas"
AFTER UPDATE ON Mercados
FOR EACH ROW
BEGIN
UPDATE Apostas SET Status = 'Red'
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Cashout = 0
AND EXISTS (SELECT 1 FROM Mercados WHERE Cod_Aposta = NEW.Cod_Aposta AND Mercados.Status = 'Red');

UPDATE Apostas SET Status = 'Green' WHERE Cod_Aposta = NEW.Cod_Aposta AND Cashout = 0
AND NOT EXISTS (SELECT 1 FROM Mercados WHERE Cod_Aposta = NEW.Cod_Aposta AND Mercados.Status = 'Red')
AND NOT EXISTS (SELECT 1 FROM Mercados WHERE Cod_Aposta = NEW.Cod_Aposta AND Mercados.Status = 'Pré-live');

UPDATE Apostas SET Status = 'Pré-live' WHERE Cod_Aposta = NEW.Cod_Aposta AND Cashout = 0
AND NOT EXISTS (SELECT 1 FROM Mercados WHERE Cod_Aposta = NEW.Cod_Aposta AND Mercados.Status = 'Red')
AND EXISTS (SELECT 1 FROM Mercados WHERE Cod_Aposta = NEW.Cod_Aposta AND Mercados.Status = 'Pré-live');

UPDATE Apostas SET Status = 'Red'
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Cashout = 0
AND EXISTS (SELECT 1 FROM Mercados
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Mercados.Status = 'Red');
UPDATE Apostas SET Status = 'Meio Red'
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Cashout = 0
AND EXISTS (SELECT 1 FROM Mercados
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Mercados.Status = 'Meio Red');
UPDATE Apostas SET Status = 'Green'
WHERE Cod_Aposta = NEW.Cod_Aposta AND Cashout = 0
AND NOT EXISTS (SELECT 1 FROM Mercados
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Mercados.Status = 'Red')
AND NOT EXISTS (SELECT 1 FROM Mercados
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Mercados.Status = 'Meio Red')
AND NOT EXISTS (SELECT 1 FROM Mercados
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Mercados.Status = 'Pré-live');
UPDATE Apostas SET Status = 'Pré-live'
WHERE Cod_Aposta = NEW.Cod_Aposta AND Cashout = 0
AND NOT EXISTS (SELECT 1 FROM Mercados
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Mercados.Status = 'Red')
AND EXISTS (SELECT 1 FROM Mercados
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Mercados.Status = 'Pré-live');
END;

ALTER TABLE Banca ADD Aporte DEFAULT 0;
CREATE TRIGGER IF NOT EXISTS "Cashout"
AFTER UPDATE ON Apostas
FOR EACH ROW
BEGIN
UPDATE Apostas
SET Lucro = Retorno - Valor_Aposta
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Cashout = 1;
END;

UPDATE ControleVersao SET Versao = 19;
UPDATE ControleVersao SET Versao = 22;
112 changes: 67 additions & 45 deletions datafiles/criarbd.sql
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ CREATE TABLE IF NOT EXISTS "Banca" (
"Valor_Inicial" NUMERIC(9, 2) DEFAULT 0,
"Aporte" NUMERIC(9, 2) DEFAULT 0
);
CREATE TABLE IF NOT EXISTS "BancaInicial" (
"Banca" NUMERIC(9, 2)
);
CREATE TABLE IF NOT EXISTS "Status_Aposta" (
"Cod_Status" INTEGER,
"Status" VARCHAR,
Expand Down Expand Up @@ -59,30 +62,18 @@ CREATE TABLE IF NOT EXISTS "Competicoes" (
"Total" NUMERIC DEFAULT 0,
PRIMARY KEY("Cod_Comp" AUTOINCREMENT)
);
CREATE TABLE IF NOT EXISTS "Linhas" (
"Cod_Linha" INTEGER NOT NULL,
"Nome" VARCHAR,
"Cod_Metodo" INTEGER,
FOREIGN KEY("Cod_Metodo") REFERENCES "Métodos"("Cod_Metodo"),
PRIMARY KEY("Cod_Linha" AUTOINCREMENT)
);
CREATE TABLE IF NOT EXISTS "Métodos" (
"Cod_Metodo" INTEGER,
"Selecao" BOOLEAN DEFAULT 0,
"Nome" VARCHAR,
PRIMARY KEY("Cod_Metodo" AUTOINCREMENT)
);
CREATE TABLE IF NOT EXISTS "Mercados" (
"Cod_Mercado" INTEGER PRIMARY KEY AUTOINCREMENT,
"Cod_Jogo" INTEGER,
CREATE TABLE IF NOT EXISTS "Linhas" (
"Cod_Linha" INTEGER NOT NULL,
"Nome" VARCHAR,
"Cod_Metodo" INTEGER,
"Cod_Linha" INTEGER,
"Odd" NUMERIC(9, 2),
"Status" VARCHAR,
"Cod_Aposta" INTEGER,
CONSTRAINT "FK_Mercados_Jogo_2" FOREIGN KEY("Cod_Linha") REFERENCES "Linhas"("Cod_Linha"),
CONSTRAINT "FK_Mercados_Linhas_3" FOREIGN KEY("Cod_Metodo") REFERENCES "Métodos"("Cod_Metodo"),
CONSTRAINT "FK_Mercados_Apostas" FOREIGN KEY("Cod_Aposta") REFERENCES "Apostas"("Cod_Aposta")
FOREIGN KEY("Cod_Metodo") REFERENCES "Métodos"("Cod_Metodo"),
PRIMARY KEY("Cod_Linha" AUTOINCREMENT)
);
CREATE TABLE IF NOT EXISTS "Apostas" (
"Cod_Aposta" INTEGER,
Expand All @@ -97,8 +88,21 @@ CREATE TABLE IF NOT EXISTS "Apostas" (
"Retorno" NUMERIC(9, 2) DEFAULT 0,
"Lucro" NUMERIC(9, 2) DEFAULT 0,
"Banca_Final" NUMERIC(9, 2) DEFAULT 0,
"Anotacoes" VARCHAR,
PRIMARY KEY("Cod_Aposta" AUTOINCREMENT)
);
CREATE TABLE IF NOT EXISTS "Mercados" (
"Cod_Mercado" INTEGER PRIMARY KEY AUTOINCREMENT,
"Cod_Jogo" INTEGER,
"Cod_Metodo" INTEGER,
"Cod_Linha" INTEGER,
"Odd" NUMERIC(9, 2),
"Status" VARCHAR,
"Cod_Aposta" INTEGER,
CONSTRAINT "FK_Mercados_Jogo_2" FOREIGN KEY("Cod_Linha") REFERENCES "Linhas"("Cod_Linha"),
CONSTRAINT "FK_Mercados_Linhas_3" FOREIGN KEY("Cod_Metodo") REFERENCES "Métodos"("Cod_Metodo"),
CONSTRAINT "FK_Mercados_Apostas" FOREIGN KEY("Cod_Aposta") REFERENCES "Apostas"("Cod_Aposta")
);
CREATE TABLE IF NOT EXISTS "Jogo" (
"Cod_Jogo" INTEGER NOT NULL,
"Cod_Comp" VARCHAR,
Expand All @@ -113,8 +117,10 @@ CREATE TABLE IF NOT EXISTS "Selecaoionar Mês e Ano" (
"Mês" INTEGER,
"Ano" INTEGER
);
CREATE TABLE "ConfigPrograma" (
"ExibirTelaBoasVindas" BOOLEAN DEFAULT 1
CREATE TABLE IF NOT EXISTS "ConfigPrograma" (
"ExibirTelaBoasVindas" BOOLEAN DEFAULT 1,
"GestaoVariavel" BOOLEAN DEFAULT 0,
"PreRelease" BOOLEAN DEFAULT 0
);
INSERT INTO "Unidades" ("Unidade") VALUES ('0,25 Un'),
('0,5 Un'),
Expand Down Expand Up @@ -522,7 +528,7 @@ INSERT INTO "Times" ("Selecao","Time","País","Mandante","Visitante","Greens","P
(0,'Botafogo SP','Brasil',0,0,0,0,0),
(0,'LDU Quito','Equador',0,0,0,0,0),
(0,'Avaí','Brasil',0,0,0,0,0);
INSERT INTO "ControleVersao" ("Versao") VALUES (19);
INSERT INTO "ControleVersao" ("Versao") VALUES (22);
INSERT INTO "Competicoes" ("Cod_Comp","Selecao","Competicao","País","Mercados","Green","Red","P/L","Total") VALUES (1,'False','Brasileirão Série A','Brasil',32,0,0,0,0),
(2,'False','Brasileirão Série B','Brasil',5,0,0,0,0),
(3,'False','Eurocopa','Europa',2,0,0,0,0),
Expand Down Expand Up @@ -710,33 +716,49 @@ INSERT INTO "Linhas" ("Cod_Linha","Nome","Cod_Metodo") VALUES (30,'Europeu -3',4
(178,'- 2,5 Gols Casa',16),
(179,'- 2,5 Gols Fora',16);
INSERT INTO ConfigPrograma DEFAULT VALUES;
CREATE TRIGGER "Atualiza Banca Final (Delete)" AFTER DELETE ON Apostas FOR EACH ROW BEGIN UPDATE Banca SET Valor_Final = ROUND(COALESCE( (SELECT Banca_Final FROM Apostas WHERE Cod_Aposta = ( SELECT MAX(Cod_Aposta) FROM Apostas WHERE strftime('%m', Apostas.Data) = strftime('%m', OLD.Data) AND strftime('%Y', Apostas.Data) = strftime('%Y', OLD.Data))),0), 2) WHERE Banca.Mês = strftime('%m', OLD.Data) AND Banca.Ano = strftime('%Y', OLD.Data); END;
CREATE TRIGGER "Atualiza Banca Final (Insert)" AFTER INSERT ON Apostas FOR EACH ROW BEGIN UPDATE Banca SET Valor_Final = ROUND(COALESCE( (SELECT Banca_Final FROM Apostas WHERE Cod_Aposta = ( SELECT MAX(Cod_Aposta) FROM Apostas WHERE strftime('%m', Apostas.Data) = strftime('%m', NEW.Data) AND strftime('%Y', Apostas.Data) = strftime('%Y', NEW.Data))),0), 2) WHERE Banca.Mês = strftime('%m', NEW.Data) AND Banca.Ano = strftime('%Y', NEW.Data); END;
CREATE TRIGGER "Atualiza Banca Final (Update)" AFTER UPDATE ON Apostas FOR EACH ROW BEGIN UPDATE Banca SET Valor_Final = ROUND(COALESCE( (SELECT Banca_Final FROM Apostas WHERE Cod_Aposta = ( SELECT MAX(Cod_Aposta) FROM Apostas WHERE strftime('%m', Apostas.Data) = strftime('%m', NEW.Data) AND strftime('%Y', Apostas.Data) = strftime('%Y', NEW.Data))),0), 2) WHERE Banca.Mês = strftime('%m', NEW.Data) AND Banca.Ano = strftime('%Y', NEW.Data); END;
CREATE TRIGGER "Cashout"
AFTER UPDATE ON Apostas
FOR EACH ROW
BEGIN
UPDATE Apostas
SET Lucro = Retorno - Valor_Aposta
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Cashout = 1;
END;

CREATE TRIGGER "Atualiza Apostas"
AFTER UPDATE ON Mercados
FOR EACH ROW
BEGIN
UPDATE Apostas SET Status = 'Red'
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Cashout = 0
AND EXISTS (SELECT 1 FROM Mercados WHERE Cod_Aposta = NEW.Cod_Aposta AND Mercados.Status = 'Red');

UPDATE Apostas SET Status = 'Green' WHERE Cod_Aposta = NEW.Cod_Aposta AND Cashout = 0
AND NOT EXISTS (SELECT 1 FROM Mercados WHERE Cod_Aposta = NEW.Cod_Aposta AND Mercados.Status = 'Red')
AND NOT EXISTS (SELECT 1 FROM Mercados WHERE Cod_Aposta = NEW.Cod_Aposta AND Mercados.Status = 'Pré-live');

UPDATE Apostas SET Status = 'Pré-live' WHERE Cod_Aposta = NEW.Cod_Aposta AND Cashout = 0
AND NOT EXISTS (SELECT 1 FROM Mercados WHERE Cod_Aposta = NEW.Cod_Aposta AND Mercados.Status = 'Red')
AND EXISTS (SELECT 1 FROM Mercados WHERE Cod_Aposta = NEW.Cod_Aposta AND Mercados.Status = 'Pré-live');

UPDATE Apostas SET Status = 'Red'
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Cashout = 0
AND EXISTS (SELECT 1 FROM Mercados
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Mercados.Status = 'Red');
UPDATE Apostas SET Status = 'Meio Red'
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Cashout = 0
AND EXISTS (SELECT 1 FROM Mercados
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Mercados.Status = 'Meio Red');
UPDATE Apostas SET Status = 'Green'
WHERE Cod_Aposta = NEW.Cod_Aposta AND Cashout = 0
AND NOT EXISTS (SELECT 1 FROM Mercados
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Mercados.Status = 'Red')
AND NOT EXISTS (SELECT 1 FROM Mercados
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Mercados.Status = 'Meio Red')
AND NOT EXISTS (SELECT 1 FROM Mercados
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Mercados.Status = 'Pré-live');
UPDATE Apostas SET Status = 'Pré-live'
WHERE Cod_Aposta = NEW.Cod_Aposta AND Cashout = 0
AND NOT EXISTS (SELECT 1 FROM Mercados
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Mercados.Status = 'Red')
AND EXISTS (SELECT 1 FROM Mercados
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Mercados.Status = 'Pré-live');
END;
CREATE TRIGGER "Cashout"
AFTER UPDATE ON Apostas
FOR EACH ROW
BEGIN
UPDATE Apostas
SET Lucro = Retorno - Valor_Aposta
WHERE Cod_Aposta = NEW.Cod_Aposta
AND Cashout = 1;
END;
Loading

0 comments on commit aa6eb5e

Please sign in to comment.