@banco-br/nodejs-cnab
Advanced tools
Comparing version 0.0.2 to 0.1.0
@@ -9,4 +9,6 @@ "use strict"; | ||
exports.parseRemessaCnab = retorno_1.parseRemessaCnab; | ||
var helperGenerateRemessaCNAB_1 = require("./helperGenerateRemessaCNAB"); | ||
exports.helperGenerateRemessaCNAB240 = helperGenerateRemessaCNAB_1.helperGenerateRemessaCNAB240; | ||
var helperGenerateRemessaCNAB240_1 = require("./helperGenerateRemessaCNAB240"); | ||
exports.helperGenerateRemessaCNAB240 = helperGenerateRemessaCNAB240_1.helperGenerateRemessaCNAB240; | ||
var helperGenerateRemessaCNAB400_1 = require("./helperGenerateRemessaCNAB400"); | ||
exports.helperGenerateRemessaCNAB400 = helperGenerateRemessaCNAB400_1.helperGenerateRemessaCNAB400; | ||
//# sourceMappingURL=nodejs-cnab.js.map |
@@ -61,3 +61,3 @@ "use strict"; | ||
var out = regexPicture(/9\((\w+?)\)/g, picture); | ||
return formatCurrency(value, Number(out[0]), Number(out[1])); | ||
return formatCurrency(Number(value), Number(out[0]), Number(out[1])); | ||
} | ||
@@ -67,3 +67,3 @@ else if (picture.startsWith('9')) { | ||
if (item.date_format) { | ||
return formatDate(value, out[0]); // , item.date_format | ||
return formatDate(value, out[0], item.date_format); // , item.date_format | ||
} | ||
@@ -100,6 +100,3 @@ else { | ||
var formatText = function (value, size) { | ||
while (value.length < size) { | ||
value = value + ' '; | ||
} | ||
return value; | ||
return pad(value.slice(0, size), size, ' '); | ||
}; | ||
@@ -113,3 +110,2 @@ /* Numérico (picture 9): alinhado à direita com zeros à esquerda e os campos não utilizados deverão ser preenchidos | ||
var formatNumber = function (value, size) { | ||
// value = value.replace(/[^0-9]/g, "") | ||
while (value.length < size) { | ||
@@ -120,22 +116,32 @@ value = '0' + value; | ||
}; | ||
var formatDate = function (value, size) { | ||
// if(!value){ | ||
// return new Date() | ||
// } | ||
// value = value.replace(/[^0-9]/g, "") | ||
var formatDate = function (value, size, dateFormat) { | ||
switch (dateFormat) { | ||
case '%d%m%Y': | ||
value = value.slice(0, 8); | ||
break; | ||
case '%d%m%y': | ||
value = value.slice(0, 4) + value.slice(6, 8); | ||
break; | ||
default: | ||
throw new Error('dateFormat inválido: ' + dateFormat); | ||
} | ||
while (value.length < size) { | ||
value = '0' + value; | ||
} | ||
// date_format: '%d%m%y' | ||
return value; | ||
}; | ||
function formatCurrency(value, integer, decimal) { | ||
if (value === void 0) { value = ''; } | ||
if (value === void 0) { value = 0; } | ||
if (integer === void 0) { integer = 0; } | ||
if (decimal === void 0) { decimal = 0; } | ||
value = value ? value.toString().replace(/[.R$]/g, '') : ''; | ||
var vals = value.split(','); | ||
value = Number(value); | ||
if (typeof value !== 'number') { | ||
throw new Error('formatCurrency: ' + value + integer + decimal); | ||
} | ||
// Efetua o arredondamento | ||
var vals = value.toFixed(decimal).split('.'); | ||
vals[1] = vals[1] || ''; | ||
vals[0] = pad(Number(integer), vals[0].toString(), '0'); | ||
vals[1] = pad(vals[1].toString(), Number(decimal), '0'); | ||
// Limita os caracteres | ||
vals[0] = pad(Number(integer), vals[0].toString().slice(0, integer), '0'); | ||
vals[1] = pad(vals[1].toString().slice(0, decimal), Number(decimal), '0'); | ||
return vals.join(''); | ||
@@ -142,0 +148,0 @@ } |
@@ -117,3 +117,3 @@ var CNAB_YAML_DIR = './node_modules/@banco-br/cnab_yaml'; | ||
var out = regexPicture(/9\((\w+?)\)/g, picture); | ||
return formatCurrency(value, Number(out[0]), Number(out[1])); | ||
return formatCurrency(Number(value), Number(out[0]), Number(out[1])); | ||
} | ||
@@ -123,3 +123,3 @@ else if (picture.startsWith('9')) { | ||
if (item.date_format) { | ||
return formatDate(value, out[0]); // , item.date_format | ||
return formatDate(value, out[0], item.date_format); // , item.date_format | ||
} | ||
@@ -156,6 +156,3 @@ else { | ||
var formatText = function (value, size) { | ||
while (value.length < size) { | ||
value = value + ' '; | ||
} | ||
return value; | ||
return pad(value.slice(0, size), size, ' '); | ||
}; | ||
@@ -169,3 +166,2 @@ /* Numérico (picture 9): alinhado à direita com zeros à esquerda e os campos não utilizados deverão ser preenchidos | ||
var formatNumber = function (value, size) { | ||
// value = value.replace(/[^0-9]/g, "") | ||
while (value.length < size) { | ||
@@ -176,22 +172,32 @@ value = '0' + value; | ||
}; | ||
var formatDate = function (value, size) { | ||
// if(!value){ | ||
// return new Date() | ||
// } | ||
// value = value.replace(/[^0-9]/g, "") | ||
var formatDate = function (value, size, dateFormat) { | ||
switch (dateFormat) { | ||
case '%d%m%Y': | ||
value = value.slice(0, 8); | ||
break; | ||
case '%d%m%y': | ||
value = value.slice(0, 4) + value.slice(6, 8); | ||
break; | ||
default: | ||
throw new Error('dateFormat inválido: ' + dateFormat); | ||
} | ||
while (value.length < size) { | ||
value = '0' + value; | ||
} | ||
// date_format: '%d%m%y' | ||
return value; | ||
}; | ||
function formatCurrency(value, integer, decimal) { | ||
if (value === void 0) { value = ''; } | ||
if (value === void 0) { value = 0; } | ||
if (integer === void 0) { integer = 0; } | ||
if (decimal === void 0) { decimal = 0; } | ||
value = value ? value.toString().replace(/[.R$]/g, '') : ''; | ||
var vals = value.split(','); | ||
value = Number(value); | ||
if (typeof value !== 'number') { | ||
throw new Error('formatCurrency: ' + value + integer + decimal); | ||
} | ||
// Efetua o arredondamento | ||
var vals = value.toFixed(decimal).split('.'); | ||
vals[1] = vals[1] || ''; | ||
vals[0] = pad(Number(integer), vals[0].toString(), '0'); | ||
vals[1] = pad(vals[1].toString(), Number(decimal), '0'); | ||
// Limita os caracteres | ||
vals[0] = pad(Number(integer), vals[0].toString().slice(0, integer), '0'); | ||
vals[1] = pad(vals[1].toString().slice(0, decimal), Number(decimal), '0'); | ||
return vals.join(''); | ||
@@ -406,3 +412,63 @@ } | ||
export { BANK, generateRemessaCnab, helperGenerateRemessaCNAB240, parseRemessaCnab }; | ||
// tslint:disable:variable-name | ||
var _a$1 = require('brazilian-values'), isCNPJ$1 = _a$1.isCNPJ, isCPF$1 = _a$1.isCPF; | ||
var dayjs$1 = require('dayjs'); | ||
var sumBy = require('lodash').sumBy; | ||
function helperGenerateRemessaCNAB400(dadosGeracao, bankCode) { | ||
var Return = []; | ||
var numero_sequencial = 0; | ||
/** | ||
* Header - Arquivo | ||
*/ | ||
numero_sequencial++; | ||
var header_arquivo = { | ||
codigo_convenio: dadosGeracao.codigo_convenio, | ||
nome_empresa: dadosGeracao.nome_empresa, | ||
data_geracao: dayjs$1(dadosGeracao.data_geracao).format('DDMMYYYY'), | ||
numero_sequencial: Number(numero_sequencial) | ||
}; | ||
Return.push({ header_arquivo: header_arquivo }); | ||
/** | ||
* Detalhe Segmento | ||
*/ | ||
dadosGeracao.detalhe_segmento.forEach(function (detalhe_segmento) { | ||
numero_sequencial++; | ||
var sacado_codigo_inscricao = 99; | ||
if (isCPF$1(detalhe_segmento.sacado_numero_inscricao)) | ||
sacado_codigo_inscricao = 1; | ||
if (isCNPJ$1(detalhe_segmento.sacado_numero_inscricao)) | ||
sacado_codigo_inscricao = 2; | ||
var detalhe = { | ||
codigo_convenio: dadosGeracao.codigo_convenio, | ||
uso_empresa: detalhe_segmento.uso_empresa, | ||
mensagem: detalhe_segmento.mensagem, | ||
numero_documento: detalhe_segmento.numero_documento, | ||
vencimento: dayjs$1(detalhe_segmento.vencimento).format('DDMMYYYY'), | ||
valor_titulo: detalhe_segmento.valor_titulo, | ||
data_emissao: dayjs$1(detalhe_segmento.data_emissao).format('DDMMYYYY'), | ||
sacado_codigo_inscricao: sacado_codigo_inscricao, | ||
sacado_numero_inscricao: detalhe_segmento.sacado_numero_inscricao, | ||
nome: detalhe_segmento.nome, | ||
logradouro: detalhe_segmento.logradouro, | ||
bairro: detalhe_segmento.bairro, | ||
cep: detalhe_segmento.cep, | ||
cidade: detalhe_segmento.cidade, | ||
estado: detalhe_segmento.estado, | ||
numero_sequencial: Number(numero_sequencial) | ||
}; | ||
Return.push({ detalhe: detalhe }); | ||
}); | ||
/** | ||
* Trailler Arquivo | ||
*/ | ||
numero_sequencial++; | ||
var trailer_arquivo = { | ||
valor_total: sumBy(dadosGeracao.detalhe_segmento, function (Row) { return Number(Row.valor_titulo); }), | ||
numero_sequencial: Number(numero_sequencial) | ||
}; | ||
Return.push({ trailer_arquivo: trailer_arquivo }); | ||
return Return.map(function (Row) { return generateRemessaCnab(Row, 400, bankCode); }).join('\n'); | ||
} | ||
export { BANK, generateRemessaCnab, helperGenerateRemessaCNAB240, helperGenerateRemessaCNAB400, parseRemessaCnab }; | ||
//# sourceMappingURL=nodejs-cnab.es5.js.map |
@@ -123,3 +123,3 @@ (function (global, factory) { | ||
var out = regexPicture(/9\((\w+?)\)/g, picture); | ||
return formatCurrency(value, Number(out[0]), Number(out[1])); | ||
return formatCurrency(Number(value), Number(out[0]), Number(out[1])); | ||
} | ||
@@ -129,3 +129,3 @@ else if (picture.startsWith('9')) { | ||
if (item.date_format) { | ||
return formatDate(value, out[0]); // , item.date_format | ||
return formatDate(value, out[0], item.date_format); // , item.date_format | ||
} | ||
@@ -162,6 +162,3 @@ else { | ||
var formatText = function (value, size) { | ||
while (value.length < size) { | ||
value = value + ' '; | ||
} | ||
return value; | ||
return pad(value.slice(0, size), size, ' '); | ||
}; | ||
@@ -175,3 +172,2 @@ /* Numérico (picture 9): alinhado à direita com zeros à esquerda e os campos não utilizados deverão ser preenchidos | ||
var formatNumber = function (value, size) { | ||
// value = value.replace(/[^0-9]/g, "") | ||
while (value.length < size) { | ||
@@ -182,22 +178,32 @@ value = '0' + value; | ||
}; | ||
var formatDate = function (value, size) { | ||
// if(!value){ | ||
// return new Date() | ||
// } | ||
// value = value.replace(/[^0-9]/g, "") | ||
var formatDate = function (value, size, dateFormat) { | ||
switch (dateFormat) { | ||
case '%d%m%Y': | ||
value = value.slice(0, 8); | ||
break; | ||
case '%d%m%y': | ||
value = value.slice(0, 4) + value.slice(6, 8); | ||
break; | ||
default: | ||
throw new Error('dateFormat inválido: ' + dateFormat); | ||
} | ||
while (value.length < size) { | ||
value = '0' + value; | ||
} | ||
// date_format: '%d%m%y' | ||
return value; | ||
}; | ||
function formatCurrency(value, integer, decimal) { | ||
if (value === void 0) { value = ''; } | ||
if (value === void 0) { value = 0; } | ||
if (integer === void 0) { integer = 0; } | ||
if (decimal === void 0) { decimal = 0; } | ||
value = value ? value.toString().replace(/[.R$]/g, '') : ''; | ||
var vals = value.split(','); | ||
value = Number(value); | ||
if (typeof value !== 'number') { | ||
throw new Error('formatCurrency: ' + value + integer + decimal); | ||
} | ||
// Efetua o arredondamento | ||
var vals = value.toFixed(decimal).split('.'); | ||
vals[1] = vals[1] || ''; | ||
vals[0] = pad(Number(integer), vals[0].toString(), '0'); | ||
vals[1] = pad(vals[1].toString(), Number(decimal), '0'); | ||
// Limita os caracteres | ||
vals[0] = pad(Number(integer), vals[0].toString().slice(0, integer), '0'); | ||
vals[1] = pad(vals[1].toString().slice(0, decimal), Number(decimal), '0'); | ||
return vals.join(''); | ||
@@ -412,5 +418,66 @@ } | ||
// tslint:disable:variable-name | ||
var _a$1 = require('brazilian-values'), isCNPJ$1 = _a$1.isCNPJ, isCPF$1 = _a$1.isCPF; | ||
var dayjs$1 = require('dayjs'); | ||
var sumBy = require('lodash').sumBy; | ||
function helperGenerateRemessaCNAB400(dadosGeracao, bankCode) { | ||
var Return = []; | ||
var numero_sequencial = 0; | ||
/** | ||
* Header - Arquivo | ||
*/ | ||
numero_sequencial++; | ||
var header_arquivo = { | ||
codigo_convenio: dadosGeracao.codigo_convenio, | ||
nome_empresa: dadosGeracao.nome_empresa, | ||
data_geracao: dayjs$1(dadosGeracao.data_geracao).format('DDMMYYYY'), | ||
numero_sequencial: Number(numero_sequencial) | ||
}; | ||
Return.push({ header_arquivo: header_arquivo }); | ||
/** | ||
* Detalhe Segmento | ||
*/ | ||
dadosGeracao.detalhe_segmento.forEach(function (detalhe_segmento) { | ||
numero_sequencial++; | ||
var sacado_codigo_inscricao = 99; | ||
if (isCPF$1(detalhe_segmento.sacado_numero_inscricao)) | ||
sacado_codigo_inscricao = 1; | ||
if (isCNPJ$1(detalhe_segmento.sacado_numero_inscricao)) | ||
sacado_codigo_inscricao = 2; | ||
var detalhe = { | ||
codigo_convenio: dadosGeracao.codigo_convenio, | ||
uso_empresa: detalhe_segmento.uso_empresa, | ||
mensagem: detalhe_segmento.mensagem, | ||
numero_documento: detalhe_segmento.numero_documento, | ||
vencimento: dayjs$1(detalhe_segmento.vencimento).format('DDMMYYYY'), | ||
valor_titulo: detalhe_segmento.valor_titulo, | ||
data_emissao: dayjs$1(detalhe_segmento.data_emissao).format('DDMMYYYY'), | ||
sacado_codigo_inscricao: sacado_codigo_inscricao, | ||
sacado_numero_inscricao: detalhe_segmento.sacado_numero_inscricao, | ||
nome: detalhe_segmento.nome, | ||
logradouro: detalhe_segmento.logradouro, | ||
bairro: detalhe_segmento.bairro, | ||
cep: detalhe_segmento.cep, | ||
cidade: detalhe_segmento.cidade, | ||
estado: detalhe_segmento.estado, | ||
numero_sequencial: Number(numero_sequencial) | ||
}; | ||
Return.push({ detalhe: detalhe }); | ||
}); | ||
/** | ||
* Trailler Arquivo | ||
*/ | ||
numero_sequencial++; | ||
var trailer_arquivo = { | ||
valor_total: sumBy(dadosGeracao.detalhe_segmento, function (Row) { return Number(Row.valor_titulo); }), | ||
numero_sequencial: Number(numero_sequencial) | ||
}; | ||
Return.push({ trailer_arquivo: trailer_arquivo }); | ||
return Return.map(function (Row) { return generateRemessaCnab(Row, 400, bankCode); }).join('\n'); | ||
} | ||
exports.BANK = BANK; | ||
exports.generateRemessaCnab = generateRemessaCnab; | ||
exports.helperGenerateRemessaCNAB240 = helperGenerateRemessaCNAB240; | ||
exports.helperGenerateRemessaCNAB400 = helperGenerateRemessaCNAB400; | ||
exports.parseRemessaCnab = parseRemessaCnab; | ||
@@ -417,0 +484,0 @@ |
import { BANK } from './const'; | ||
import { generateRemessaCnab } from './remessa'; | ||
import { parseRemessaCnab } from './retorno'; | ||
import { helperGenerateRemessaCNAB240 } from './helperGenerateRemessaCNAB'; | ||
export { generateRemessaCnab, parseRemessaCnab, BANK, helperGenerateRemessaCNAB240 }; | ||
import { helperGenerateRemessaCNAB240 } from './helperGenerateRemessaCNAB240'; | ||
import { helperGenerateRemessaCNAB400 } from './helperGenerateRemessaCNAB400'; | ||
export { generateRemessaCnab, parseRemessaCnab, BANK, helperGenerateRemessaCNAB240, helperGenerateRemessaCNAB400 }; |
@@ -6,3 +6,3 @@ export declare function makeLine(layout: any, data: any): any; | ||
}; | ||
export declare function formatCurrency(value?: string, integer?: number, decimal?: number): string; | ||
export declare function formatCurrency(value?: number, integer?: number, decimal?: number): string; | ||
export declare function readYaml(filename: string): any; |
{ | ||
"name": "@banco-br/nodejs-cnab", | ||
"version": "0.0.2", | ||
"version": "0.1.0", | ||
"description": "Nodejs Library for Cnab files", | ||
@@ -89,2 +89,3 @@ "keywords": [], | ||
"@types/js-yaml": "^3.12.1", | ||
"@types/lodash": "^4.14.142", | ||
"@types/node": "^12.7.3", | ||
@@ -124,8 +125,9 @@ "@types/pad": "^1.0.2", | ||
"dependencies": { | ||
"@banco-br/cnab_yaml": "^2.0.2", | ||
"@banco-br/cnab_yaml": "^2.0.3", | ||
"brazilian-values": "^0.5.1", | ||
"dayjs": "^1.8.16", | ||
"js-yaml": "^3.13.1", | ||
"lodash": "^4.17.15", | ||
"pad": "^3.2.0" | ||
} | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
135301
28
1523
6
37
+ Addedlodash@^4.17.15
+ Addedlodash@4.17.21(transitive)
Updated@banco-br/cnab_yaml@^2.0.3