Skip to content

Commit

Permalink
feat: adicionar pedidos de venda
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexandreBellas committed Dec 8, 2023
1 parent 40d9247 commit e1d9174
Show file tree
Hide file tree
Showing 32 changed files with 1,384 additions and 1 deletion.
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"exceptions": "Error"
},
"cSpell.words": [
"aliquota",
"Amazônia",
"borderô",
"Borderos",
Expand All @@ -20,9 +21,11 @@
"ICMS",
"ICMSST",
"ICRT",
"intermediador",
"nfces",
"Parcelada",
"pickone",
"Rastreamento",
"sublimite",
"SUFRAMA"
]
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ As entidades atualmente permitidas para interação são:
- [x] Notas Fiscais Eletrônicas (`.nfes`)
- [x] Notificações (`.notificacoes`)
- [x] Pedidos - Compras (`.pedidosCompras`)
- [ ] Pedidos - Vendas (`.pedidosVendas`)
- [x] Pedidos - Vendas (`.pedidosVendas`)
- [ ] Produtos (`.produtos`)
- [ ] Produtos - Estruturas (`.produtosEstruturas`)
- [ ] Produtos - Fornecedores (`.produtosFornecedores`)
Expand Down
7 changes: 7 additions & 0 deletions src/bling.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import { Nfes } from './entities/nfes'
import { Nfses } from './entities/nfses'
import { Notificacoes } from './entities/notificacoes'
import { PedidosCompras } from './entities/pedidosCompras'
import { PedidosVendas } from './entities/pedidosVendas'

const chance = Chance()

Expand Down Expand Up @@ -169,4 +170,10 @@ describe('Bling main module', () => {
PedidosCompras
)
})

it('should retrieve pedidos - vendas entity', () => {
expect(createBling(chance.word()).pedidosVendas).toBeInstanceOf(
PedidosVendas
)
})
})
10 changes: 10 additions & 0 deletions src/bling.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import { Nfes } from './entities/nfes'
import { Nfses } from './entities/nfses'
import { Notificacoes } from './entities/notificacoes'
import { PedidosCompras } from './entities/pedidosCompras'
import { PedidosVendas } from './entities/pedidosVendas'
import { Newable } from './helpers/types/newable.type'
import { getRepository } from './providers/ioc'
import { IBlingRepository } from './repositories/bling.repository.interface'
Expand Down Expand Up @@ -302,4 +303,13 @@ export default class Bling {
public get pedidosCompras(): PedidosCompras {
return this.getModule(PedidosCompras)
}

/**
* Obtém a instância de interação com pedidos - vendas.
*
* @return {PedidosVendas}
*/
public get pedidosVendas(): PedidosVendas {
return this.getModule(PedidosVendas)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export default null
122 changes: 122 additions & 0 deletions src/entities/pedidosVendas/__tests__/create-response.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
export default {
data: {
id: 12345678,
alertas: [
{
code: 49,
msg: 'Uma ou mais parcelas da venda possuem erros de validação',
element: 'parcelas',
namespace: 'VENDAS',
collection: [
{
index: 1,
code: 12,
msg: 'Id da forma de pagamento inválido.',
element: 'formaPagamento',
namespace: 'VENDAS'
}
]
}
],
rastreamento: {}
}
}

export const createRequestBody = {
numero: 123,
numeroLoja: 'Loja_123',
data: '2023-01-12',
dataSaida: '2023-01-12',
dataPrevista: '2023-01-12',
contato: {
id: 12345678,
tipoPessoa: 'J' as const,
numeroDocumento: '30188025000121'
},
loja: {
id: 12345678
},
numeroPedidoCompra: '123',
outrasDespesas: 2,
observacoes: 'Observações do pedido.',
observacoesInternas: 'Observações internas do pedido.',
desconto: {
valor: 15.45,
unidade: 'REAL' as const
},
categoria: {
id: 12345678
},
tributacao: {
totalICMS: 5.55,
totalIPI: 5.55
},
itens: [
{
id: 12345678,
codigo: 'BLG-5',
unidade: 'UN',
quantidade: 1,
desconto: 2,
valor: 4.9,
aliquotaIPI: 0,
descricao: 'Produto do Bling',
descricaoDetalhada: 'Brinde',
produto: {
id: 12345678
},
comissao: {
base: 10,
aliquota: 2,
valor: 0.2
}
}
],
parcelas: [
{
id: 12345678,
dataVencimento: '2023-01-12',
valor: 123.45,
observacoes: 'Observação da parcela',
formaPagamento: {
id: 12345678
}
}
],
transporte: {
fretePorConta: 0 as const,
frete: 20,
quantidadeVolumes: 1,
pesoBruto: 0.5,
prazoEntrega: 10,
contato: {
id: 12345678,
nome: 'Transportador'
},
etiqueta: {
nome: 'Transportador',
endereco: 'Olavo Bilac',
numero: '914',
complemento: 'Sala 101',
municipio: 'Bento Gonçalves',
uf: 'RS' as const,
cep: '95702-000',
bairro: 'Imigrante',
nomePais: 'BRASIL'
},
volumes: [
{
id: 12345678,
servico: 'ALIAS_123',
codigoRastreamento: 'COD123BR'
}
]
},
vendedor: {
id: 12345678
},
intermediador: {
cnpj: '13921649000197',
nomeUsuario: 'usuario'
}
}
5 changes: 5 additions & 0 deletions src/entities/pedidosVendas/__tests__/delete-many-response.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export default {
data: {
alertas: ['A venda número 123 contém contas a receber...']
}
}
1 change: 1 addition & 0 deletions src/entities/pedidosVendas/__tests__/delete-response.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export default null
111 changes: 111 additions & 0 deletions src/entities/pedidosVendas/__tests__/find-response.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
export default {
data: {
id: 12345678,
numero: 123,
numeroLoja: 'Loja_123',
data: '2023-01-12',
dataSaida: '2023-01-12',
dataPrevista: '2023-01-12',
totalProdutos: 10,
total: 12,
contato: {
id: 12345678,
nome: 'Contato do Bling',
tipoPessoa: 'J' as const,
numeroDocumento: '30188025000121'
},
situacao: {
id: 12345678,
valor: 1 as const
},
loja: {
id: 12345678
},
numeroPedidoCompra: '123',
outrasDespesas: 2,
observacoes: 'Observações do pedido.',
observacoesInternas: 'Observações internas do pedido.',
desconto: {
valor: 15.45,
unidade: 'REAL'
},
categoria: {
id: 12345678
},
notaFiscal: {
id: 12345678
},
tributacao: {
totalICMS: 5.55,
totalIPI: 5.55
},
itens: [
{
id: 12345678,
codigo: 'BLG-5',
unidade: 'UN',
quantidade: 1,
desconto: 2,
valor: 4.9,
aliquotaIPI: 0,
descricao: 'Produto do Bling',
descricaoDetalhada: 'Brinde',
produto: {
id: 12345678
},
comissao: {
base: 10,
aliquota: 2,
valor: 0.2
}
}
],
parcelas: [
{
id: 12345678,
dataVencimento: '2023-01-12',
valor: 123.45,
observacoes: 'Observação da parcela',
formaPagamento: {
id: 12345678
}
}
],
transporte: {
fretePorConta: 0 as const,
frete: 20,
quantidadeVolumes: 1,
pesoBruto: 0.5,
prazoEntrega: 10,
contato: {
id: 12345678,
nome: 'Transportador'
},
etiqueta: {
nome: 'Transportador',
endereco: 'Olavo Bilac',
numero: '914',
complemento: 'Sala 101',
municipio: 'Bento Gonçalves',
uf: 'RS' as const,
cep: '95702-000',
bairro: 'Imigrante',
nomePais: 'BRASIL'
},
volumes: [
{
id: 12345678,
servico: 'ALIAS_123',
codigoRastreamento: 'COD123BR'
}
]
},
vendedor: {
id: 12345678
},
intermediador: {
cnpj: '13921649000197',
nomeUsuario: 'usuario'
}
}
}
27 changes: 27 additions & 0 deletions src/entities/pedidosVendas/__tests__/get-response.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
export default {
data: [
{
id: 12345678,
numero: 123,
numeroLoja: 'Loja_123',
data: '2023-01-12',
dataSaida: '2023-01-12',
dataPrevista: '2023-01-12',
totalProdutos: 10,
total: 12,
contato: {
id: 12345678,
nome: 'Contato do Bling',
tipoPessoa: 'J' as const,
numeroDocumento: '30188025000121'
},
situacao: {
id: 12345678,
valor: 1 as const
},
loja: {
id: 12345678
}
}
]
}
Loading

0 comments on commit e1d9174

Please sign in to comment.