Skip to content

Commit 67c1ccf

Browse files
committed
modulo veicular concluido
1 parent 515e242 commit 67c1ccf

3 files changed

Lines changed: 109 additions & 6 deletions

File tree

src/controllers/garagem.js

Lines changed: 74 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,16 @@ class ExtrasController {
5050
static async getAllSolicitacoes(req, res) {
5151
const { idEntidade } = req.params;
5252
const { rows } = await database.query(SQL.getAllSolicitacoes, [idEntidade]);
53-
return ResponseController(res, httpStatus.OK, T_PT.capturado, rows);
53+
54+
return ResponseController(
55+
res,
56+
httpStatus.OK,
57+
T_PT.capturado,
58+
rows.sort((solicitacao) => {
59+
if (solicitacao.status == "Pendente") return -1;
60+
else return 1;
61+
}),
62+
);
5463
}
5564

5665
static async concluirViagem(req, res) {
@@ -62,31 +71,93 @@ class ExtrasController {
6271
return date.toISOString().slice(0, 19).replace("T", " ");
6372
}
6473

74+
await database.query(SQL.disponibilizaVeiculo, [idViagem]);
75+
await database.query(SQL.concluiSolicitacao, [idViagem]);
76+
6577
await database.query(SQL.concluirViagem, [
6678
datetimeLocalToBrazil(data.DATA),
6779
data.CHEGADA,
6880
idViagem,
6981
]);
70-
return ResponseController(res, httpStatus.OK, T_PT.capturado, null);
82+
return ResponseController(res, httpStatus.OK, T_PT.atualizado, null);
7183
}
7284

7385
static async createSolicitacao(req, res) {
7486
const { idEntidade, idUnidade } = req.params;
7587
const data = req.body;
7688
const id = uuid();
7789

90+
function datetimeLocalToBrazil(dateTimeLocal) {
91+
const date = new Date(dateTimeLocal);
92+
return date.toISOString().slice(0, 19).replace("T", " ");
93+
}
94+
7895
await database.query(SQL.createSolicitacao, [
7996
id,
8097
data.ID_VEICULO,
81-
data.DATA_VIAGEM,
98+
datetimeLocalToBrazil(data.DATA_VIAGEM),
8299
data.RESPONSAVEL,
83100
data.MOTIVO,
84101
idUnidade,
85102
idEntidade,
86103
"7c92f4cf-f76b-4333-ac06-6b60bf2b2518",
104+
data.TELEFONE_RESPONSAVEL,
105+
data.RESUMO,
106+
]);
107+
return ResponseController(res, httpStatus.CREATED, T_PT.cadastrado, id);
108+
}
109+
110+
static async getDetalheSolicitcao(req, res) {
111+
const { idSolicitacao } = req.params;
112+
const { rows } = await database.query(SQL.getSolicitacao, [idSolicitacao]);
113+
return ResponseController(res, httpStatus.OK, T_PT.capturado, rows[0]);
114+
}
115+
116+
static async liberaSolicitacao(req, res) {
117+
const { idSolicitacao, idUnidade } = req.params;
118+
const data = req.body;
119+
const id = uuid();
120+
121+
await database.query(SQL.liberarSolicitacao, [idSolicitacao]);
122+
await database.query(SQL.indisponibilizaVeiculo, [data.ID_VEICULO]);
123+
await database.query(SQL.createViagem, [
124+
id,
125+
data.ID_VEICULO,
126+
idUnidade,
127+
idSolicitacao,
128+
idSolicitacao,
129+
null,
130+
null,
131+
idSolicitacao,
132+
data.DATA,
87133
]);
134+
88135
return ResponseController(res, httpStatus.CREATED, T_PT.cadastrado, id);
89136
}
137+
138+
static async iniciaViagem(req, res) {
139+
const { idViagem } = req.params;
140+
const data = req.body;
141+
142+
function datetimeLocalToBrazil(dateTimeLocal) {
143+
const date = new Date(dateTimeLocal);
144+
return date.toISOString().slice(0, 19).replace("T", " ");
145+
}
146+
147+
await database.query(SQL.iniciarViagem, [
148+
data.MOTORISTA,
149+
data.KM_INICIAL,
150+
datetimeLocalToBrazil(new Date()),
151+
idViagem,
152+
]);
153+
154+
return ResponseController(
155+
res,
156+
httpStatus.CREATED,
157+
T_PT.atualizado,
158+
idViagem,
159+
);
160+
}
90161
}
91162

92163
module.exports = ExtrasController;

src/models/garagem.js

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ module.exports = {
1818
`,
1919

2020
getAllViagensUnidade: `
21-
SELECT uv.id, v.nome as veiculo, v.placa, u.nome as unidade, uv.saida, uv.chegada, uv.motivo, uv.motorista, uv.responsavel, uv.km_inicial, uv.km_final
21+
SELECT uv.id, uv.liberacao, v.nome as veiculo, v.placa, u.nome as unidade, uv.saida, uv.chegada, uv.motivo, uv.motorista, uv.responsavel, uv.km_inicial, uv.km_final
2222
from utilizacao_veicular uv
2323
join veiculos v on uv.id_veiculo = v.id
2424
join unidade u on uv.unidade = u.id
@@ -35,18 +35,36 @@ module.exports = {
3535
order by uv.saida, uv.chegada asc;
3636
`,
3737

38+
createViagem: `INSERT INTO UTILIZACAO_VEICULAR (ID, ID_VEICULO, UNIDADE, ID_SOLICITACAO, MOTIVO, MOTORISTA, KM_INICIAL, RESPONSAVEL, LIBERACAO) VALUES ($1,$2,$3,$4,(select motivo from solicitacao_veicular where id = $5),$6,$7,(select responsavel from solicitacao_veicular where id = $8), $9);`,
39+
40+
iniciarViagem: `UPDATE UTILIZACAO_VEICULAR SET MOTORISTA = $1, KM_INICIAL = $2, SAIDA = $3 WHERE ID = $4;`,
41+
3842
getAllSolicitacoes: `
39-
SELECT sv.id, v.placa, v.nome as veiculo, sv.data_viagem, sv.responsavel, sv.motivo, s.nome as status
43+
SELECT sv.id, v.placa, v.nome as veiculo, sv.data_viagem, sv.responsavel, s.nome as status, sv.resumo
4044
FROM solicitacao_veicular sv
4145
join veiculos v on sv.id_veiculo = v.id
4246
join status_solicitacao s on sv.id_status = s.id
4347
where sv.id_orgao = $1
4448
order by sv.data_viagem asc;
4549
`,
4650

51+
indisponibilizaVeiculo: `UPDATE VEICULOS SET STATUS = 2 WHERE ID = $1;`,
52+
disponibilizaVeiculo: `UPDATE VEICULOS SET STATUS = 1 WHERE ID = (select id_veiculo from utilizacao_veicular where id = $1);`,
53+
concluiSolicitacao: `UPDATE SOLICITACAO_VEICULAR SET ID_STATUS = 'd7e3227d-854b-41e5-a4db-94cadf994d78' WHERE ID = (SELECT ID_SOLICITACAO FROM UTILIZACAO_VEICULAR WHERE ID = $1);`,
54+
55+
getSolicitacao: `
56+
SELECT sv.id, sv.id_unidade, sv.resumo, sv.telefone_responsavel, v.placa, v.nome as veiculo, sv.data_viagem, sv.responsavel, sv.motivo, s.nome as status
57+
FROM solicitacao_veicular sv
58+
join veiculos v on sv.id_veiculo = v.id
59+
join status_solicitacao s on sv.id_status = s.id
60+
where sv.id = $1;
61+
`,
62+
4763
createSolicitacao: `
48-
INSERT INTO SOLICITACAO_VEICULAR (id, id_veiculo, data_viagem, responsavel, motivo, id_unidade, id_orgao, id_status) values ($1,$2,$3,$4,$5,$6,$7,$8);
64+
INSERT INTO SOLICITACAO_VEICULAR (id, id_veiculo, data_viagem, responsavel, motivo, id_unidade, id_orgao, id_status,telefone_responsavel,resumo) values ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10);
4965
`,
5066

5167
concluirViagem: `UPDATE UTILIZACAO_VEICULAR SET CHEGADA = $1, KM_FINAL = $2 WHERE ID = $3;`,
68+
69+
liberarSolicitacao: `UPDATE SOLICITACAO_VEICULAR SET ID_STATUS = 'd915a72e-09ae-49af-926d-a0c399fd1aba' where id =$1;`,
5270
};

src/routes/garagem.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,16 @@ router.post(
2525
InterceptError(controller.createSolicitacao, req, res, next),
2626
);
2727

28+
router.post(
29+
"/garagem/viajens/liberacao/:idSolicitacao/:idUnidade",
30+
(req, res, next) =>
31+
InterceptError(controller.liberaSolicitacao, req, res, next),
32+
);
33+
34+
router.put("/garagem/viajens/liberacao/:idViagem", (req, res, next) =>
35+
InterceptError(controller.iniciaViagem, req, res, next),
36+
);
37+
2838
router.get("/garagem/viajens/solicitacoes/:idEntidade", (req, res, next) =>
2939
InterceptError(controller.getAllSolicitacoes, req, res, next),
3040
);
@@ -37,4 +47,8 @@ router.post("/garagem/veiculos/:idEntidade", (req, res, next) =>
3747
InterceptError(controller.createVeiculo, req, res, next),
3848
);
3949

50+
router.get("/garagem/viajens/solicitacao/:idSolicitacao", (req, res, next) =>
51+
InterceptError(controller.getDetalheSolicitcao, req, res, next),
52+
);
53+
4054
module.exports = router;

0 commit comments

Comments
 (0)