Browse Source

serviço de cadastro de encomenda e items

master
jailton 3 years ago
parent
commit
e3da2b718c
4 changed files with 87 additions and 3 deletions
  1. +23
    -0
      server/services/netunovendas/cliente/list/get.js
  2. +29
    -3
      server/services/netunovendas/cliente/post.js
  3. +0
    -0
      server/services/netunovendas/encomenda/list/post.js
  4. +35
    -0
      server/services/netunovendas/encomenda/post.js

+ 23
- 0
server/services/netunovendas/cliente/list/get.js View File

@ -0,0 +1,23 @@
const dbClientes = _db.query(`
SELECT
cliente.nome AS cliente_nome, cliente.email, cliente.uid, pais.nome AS pais_nome
FROM cliente
INNER JOIN pais ON pais.id = cliente.pais_id
`);
const clientes = _val.list();
for (dbCliente of dbClientes) {
clientes.add(
_val.map()
.set("nome", dbCliente.getString("cliente_nome"))
.set("email", dbCliente.getString("email"))
.set("uid", dbCliente.getString("uid"))
.set("pais", dbCliente.getString("pais_nome"))
)
};
_out.json(
_val.map()
.set("results",clientes)
)

+ 29
- 3
server/services/netunovendas/cliente/post.js View File

@ -3,19 +3,45 @@ const email = _req.getString("email");
const telefone = _req.getString("telefone");
const pais = _req.getString("pais");
const emailExists = _db.query(
`SELECT CASE WHEN COUNT(1) > 0 THEN TRUE ELSE FALSE END FROM cliente WHERE email = ?::varchar`,
const emailExists = _db.queryFirst(
`SELECT CASE WHEN COUNT(1) > 0 THEN TRUE ELSE FALSE END AS result FROM cliente WHERE email = ?::varchar`,
_val.init()
.add(email)
);
if (emailExists) {
if (emailExists.getBoolean("result")) {
_header.status(400);
_out.json(
_val.map()
.set("error",true)
.set("message","email already exists!")
)
_exec.stop();
};
const dbPais = _db.queryFirst(`SELECT id FROM pais WHERE uid = ?::uuid`,pais);
if(dbPais == null){
_header.status(400);
_out.json(
_val.map()
.set("error", true)
.set("message","country not exists!")
);
_exec.stop();
}
_db.execute(`
INSERT INTO cliente
(nome, email, telefone, pais_id)
VALUES
(?::varchar, ?::varchar, ?::varchar, ?::int)
`,nome, email, telefone, dbPais.getInt("id"));
_header.status(201);
_out.json(
_val.map()
.set("result", true)
)

+ 0
- 0
server/services/netunovendas/encomenda/list/post.js View File


+ 35
- 0
server/services/netunovendas/encomenda/post.js View File

@ -0,0 +1,35 @@
const cliente = _req.getString("cliente");
const itens = _req.getList("itens",_val.list());
const valor = _req.getFloat("valor",0.0);
if(itens.length == 0) {
_header.status(400);
_out.json(
_val.map()
.set("error",true)
.set("message","items list are empty!")
)
_exec.stop();
}
const id = _db.insert(
'encomenda',
_val.map()
.set('cliente_uid', cliente)
.set("valor", valor)
)
for(const item of itens) {
_db.insert(
'encomenda_item',
_val.map()
.set("encomenda_id",id)
.set("produto_uid", item.getString("produto"))
.set("quantidade", item.getInt("quantidade"))
)
}
_out.json(
_val.map()
.set("result",true)
)

Loading…
Cancel
Save