Skip to content

Instantly share code, notes, and snippets.

@fmontes
Created October 3, 2019 19:08
Show Gist options
  • Save fmontes/e5a1707f6f7daa5c2d0ae931c5cb7807 to your computer and use it in GitHub Desktop.
Save fmontes/e5a1707f6f7daa5c2d0ae931c5cb7807 to your computer and use it in GitHub Desktop.
[WIP]: Find the payments lines in the BAC pinpad statement, group by date and sum
const full = `
============================================================================================================
|Fecha |Suc |Lote |Liquidaci�n|Descripci�n |D�bitos |Cr�ditos |Pagar |
============================================================================================================
|06/09/2019|00248|98077|00000000000|FACTURACION | |100,050.00| |
|06/09/2019|00248|98077|00000000000|COMISION |2,251.13| | |
|06/09/2019|00248|98077|92572103961|MANTENIMIENTO DE CUENTA |2,312.00| | |
|06/09/2019|00248|98077|92572103961|PAGO EN BANCO SAN JOSE | | | 95,486.88|
|07/09/2019|00248|45262|00000000000|FACTURACION | |387,250.00| |
|07/09/2019|00248|45262|00000000000|COMISION |8,713.13| | |
|07/09/2019|00248|45262|92572103970|PAGO EN BANCO SAN JOSE | | |378,536.88|
|07/09/2019|00248|67663|00000000000|FACTURACION | |139,925.00| |
|07/09/2019|00248|67663|00000000000|COMISION |3,148.31| | |
|07/09/2019|00248|67663|92572103988|PAGO EN BANCO SAN JOSE | | |136,776.69|
|07/09/2019|00248|82938|00000000000|FACTURACION | | 12,450.00| |
|07/09/2019|00248|82938|00000000000|COMISION | 280.13| | |
|07/09/2019|00248|82938|92572103996|PAGO EN BANCO SAN JOSE | | | 12,169.88|
|07/09/2019|00248|91131|00000000000|FACTURACION | | 10,650.00| |
|07/09/2019|00248|91131|00000000000|COMISION | 239.63| | |
|07/09/2019|00248|91131|92572104003|PAGO EN BANCO SAN JOSE | | | 10,410.38|
|10/09/2019|00248|68940|00000000000|FACTURACION | |291,400.00| |
|10/09/2019|00248|68940|00000000000|COMISION |6,556.50| | |
|10/09/2019|00248|68940|92594443049|PAGO EN BANCO SAN JOSE | | |284,843.50|
|10/09/2019|00248|82909|00000000000|FACTURACION | |206,850.00| |
|10/09/2019|00248|82909|00000000000|COMISION |4,654.13| | |
|10/09/2019|00248|82909|92594443057|PAGO EN BANCO SAN JOSE | | |202,195.88|
|10/09/2019|00248|97430|00000000000|FACTURACION | | 49,050.00| |
|10/09/2019|00248|97430|00000000000|COMISION |1,103.63| | |
|10/09/2019|00248|97430|92594443065|PAGO EN BANCO SAN JOSE | | | 47,946.38|
|11/09/2019|00248|14698|00000000000|FACTURACION | | 96,175.00| |
|11/09/2019|00248|14698|00000000000|COMISION |2,163.94| | |
|11/09/2019|00248|14698|92605369903|PAGO EN BANCO SAN JOSE | | | 94,011.07|
|11/09/2019|00248|45825|00000000000|FACTURACION | |245,100.00| |
|11/09/2019|00248|45825|00000000000|COMISION |5,514.75| | |
|11/09/2019|00248|45825|92605369911|PAGO EN BANCO SAN JOSE | | |239,585.25|
|12/09/2019|00248|60998|00000000000|FACTURACION | | 81,700.00| |
|12/09/2019|00248|60998|00000000000|COMISION |1,838.25| | |
|12/09/2019|00248|60998|92616147880|PAGO EN BANCO SAN JOSE | | | 79,861.75|
|12/09/2019|00248|94556|00000000000|FACTURACION | |225,375.00| |
|12/09/2019|00248|94556|00000000000|COMISION |5,070.94| | |
|12/09/2019|00248|94556|92616147899|PAGO EN BANCO SAN JOSE | | |220,304.07|
|12/09/2019|00248|98264|00000000000|FACTURACION | | 2,400.00| |
|12/09/2019|00248|98264|00000000000|COMISION | 54.00| | |
|12/09/2019|00248|98264|92616147902|PAGO EN BANCO SAN JOSE | | | 2,346.00|
|13/09/2019|00248|07292|00000000000|FACTURACION | | 68,250.00| |
|13/09/2019|00248|07292|00000000000|COMISION |1,535.63| | |
|13/09/2019|00248|07292|92647130170|PAGO EN BANCO SAN JOSE | | | 66,714.38|
|13/09/2019|00248|32067|00000000000|FACTURACION | |218,325.00| |
|13/09/2019|00248|32067|00000000000|COMISION |4,912.31| | |
|13/09/2019|00248|32067|92647130188|PAGO EN BANCO SAN JOSE | | |213,412.69|
|13/09/2019|00248|44063|00000000000|FACTURACION | | 26,025.00| |
|13/09/2019|00248|44063|00000000000|COMISION | 585.56| | |
|13/09/2019|00248|44063|92647130196|PAGO EN BANCO SAN JOSE | | | 25,439.44|
|14/09/2019|00248|56432|00000000000|FACTURACION | | 63,000.00| |
|14/09/2019|00248|56432|00000000000|COMISION |1,417.50| | |
|14/09/2019|00248|56432|92647130200|PAGO EN BANCO SAN JOSE | | | 61,582.50|
|14/09/2019|00248|73913|00000000000|FACTURACION | |173,725.00| |
|14/09/2019|00248|73913|00000000000|COMISION |3,908.81| | |
|14/09/2019|00248|73913|92647130218|PAGO EN BANCO SAN JOSE | | |169,816.19|
|14/09/2019|00248|98911|00000000000|FACTURACION | | 52,800.00| |
|14/09/2019|00248|98911|00000000000|COMISION |1,188.00| | |
|14/09/2019|00248|98911|92647130226|PAGO EN BANCO SAN JOSE | | | 51,612.00|
|16/09/2019|00248|72712|00000000000|FACTURACION | |345,600.00| |
|16/09/2019|00248|72712|00000000000|COMISION |7,776.00| | |
|16/09/2019|00248|72712|92658777604|PAGO EN BANCO SAN JOSE | | |337,824.00|
|17/09/2019|00248|25617|00000000000|FACTURACION | |371,775.00| |
|17/09/2019|00248|25617|00000000000|COMISION |8,364.94| | |
|17/09/2019|00248|25617|92669532859|PAGO EN BANCO SAN JOSE | | |363,410.07|
|17/09/2019|00248|84987|00000000000|FACTURACION | |119,400.00| |
|17/09/2019|00248|84987|00000000000|COMISION |2,686.50| | |
|17/09/2019|00248|84987|92669532867|PAGO EN BANCO SAN JOSE | | |116,713.50|
|18/09/2019|00248|29167|00000000000|FACTURACION | | 65,350.00| |
|18/09/2019|00248|29167|00000000000|COMISION |1,470.38| | |
|18/09/2019|00248|29167|92670278320|PAGO EN BANCO SAN JOSE | | | 63,879.63|
|18/09/2019|00248|62905|00000000000|FACTURACION | |273,100.00| |
|18/09/2019|00248|62905|00000000000|COMISION |6,144.75| | |
|18/09/2019|00248|62905|92670278338|PAGO EN BANCO SAN JOSE | | |266,955.25|
|19/09/2019|00248|10395|00000000000|FACTURACION | |295,500.00| |
|19/09/2019|00248|10395|00000000000|COMISION |6,648.75| | |
|19/09/2019|00248|10395|92681021070|PAGO EN BANCO SAN JOSE | | |288,851.25|
|19/09/2019|00248|75848|00000000000|FACTURACION | |128,950.00| |
|19/09/2019|00248|75848|00000000000|COMISION |2,901.38| | |
|19/09/2019|00248|75848|92681021088|PAGO EN BANCO SAN JOSE | | |126,048.63|
|20/09/2019|00248|24557|00000000000|FACTURACION | |120,325.00| |
|20/09/2019|00248|24557|00000000000|COMISION |2,707.31| | |
|20/09/2019|00248|24557|92711940415|PAGO EN BANCO SAN JOSE | | |117,617.69|
|20/09/2019|00248|59812|00000000000|FACTURACION | |298,875.00| |
|20/09/2019|00248|59812|00000000000|COMISION |6,724.69| | |
|20/09/2019|00248|59812|92711940423|PAGO EN BANCO SAN JOSE | | |292,150.32|
|21/09/2019|00248|00077|00000000000|FACTURACION | | 42,300.00| |
|21/09/2019|00248|00077|00000000000|COMISION | 951.75| | |
|21/09/2019|00248|00077|92711940431|PAGO EN BANCO SAN JOSE | | | 41,348.25|
|21/09/2019|00248|02466|00000000000|FACTURACION | | 550.00| |
|21/09/2019|00248|02466|00000000000|COMISION | 12.38| | |
|21/09/2019|00248|02466|92711940440|PAGO EN BANCO SAN JOSE | | | 537.63|
|21/09/2019|00248|10781|00000000000|FACTURACION | | 1,825.00| |
|21/09/2019|00248|10781|00000000000|COMISION | 41.06| | |
|21/09/2019|00248|10781|92711940458|PAGO EN BANCO SAN JOSE | | | 1,783.94|
|21/09/2019|00248|73264|00000000000|FACTURACION | | 97,000.00| |
|21/09/2019|00248|73264|00000000000|COMISION |2,182.50| | |
|21/09/2019|00248|73264|92711940466|PAGO EN BANCO SAN JOSE | | | 94,817.50|
|21/09/2019|00248|82242|00000000000|FACTURACION | | 79,175.00| |
|21/09/2019|00248|82242|00000000000|COMISION |1,781.44| | |
|21/09/2019|00248|82242|92711940474|PAGO EN BANCO SAN JOSE | | | 77,393.57|
|21/09/2019|00248|84203|00000000000|FACTURACION | | 26,425.00| |
|21/09/2019|00248|84203|00000000000|COMISION | 594.56| | |
|21/09/2019|00248|84203|92711940482|PAGO EN BANCO SAN JOSE | | | 25,830.44|
|23/09/2019|00248|84006|00000000000|FACTURACION | |264,025.00| |
|23/09/2019|00248|84006|00000000000|COMISION |5,940.56| | |
|23/09/2019|00248|84006|92723578649|COBRO POR FALLBACK |1,713.00| | |
|23/09/2019|00248|84006|92723578649|PAGO EN BANCO SAN JOSE | | |256,371.44|
|23/09/2019|00248|84249|00000000000|FACTURACION | | 550.00| |
|23/09/2019|00248|84249|00000000000|COMISION | 12.38| | |
|23/09/2019|00248|84249|92723578657|PAGO EN BANCO SAN JOSE | | | 537.63|
|24/09/2019|00248|24642|00000000000|FACTURACION | |254,500.00| |
|24/09/2019|00248|24642|00000000000|COMISION |5,726.25| | |
|24/09/2019|00248|24642|92734347940|PAGO EN BANCO SAN JOSE | | |248,773.75|
|24/09/2019|00248|93668|00000000000|FACTURACION | | 92,775.00| |
|24/09/2019|00248|93668|00000000000|COMISION |2,087.44| | |
|24/09/2019|00248|93668|92734347959|PAGO EN BANCO SAN JOSE | | | 90,687.57|
|25/09/2019|00248|40967|00000000000|FACTURACION | | 79,600.00| |
|25/09/2019|00248|40967|00000000000|COMISION |1,791.00| | |
|25/09/2019|00248|40967|92745100289|PAGO EN BANCO SAN JOSE | | | 77,809.00|
|25/09/2019|00248|71704|00000000000|FACTURACION | |298,200.00| |
|25/09/2019|00248|71704|00000000000|COMISION |6,709.50| | |
|25/09/2019|00248|71704|92745100297|PAGO EN BANCO SAN JOSE | | |291,490.50|
|25/09/2019|00248|74676|00000000000|FACTURACION | | 1,000.00| |
|25/09/2019|00248|74676|00000000000|COMISION | 22.50| | |
|25/09/2019|00248|74676|92745100300|PAGO EN BANCO SAN JOSE | | | 977.50|
|26/09/2019|00248|17319|00000000000|FACTURACION | |278,125.00| |
|26/09/2019|00248|17319|00000000000|COMISION |6,257.81| | |
|26/09/2019|00248|17319|92755847080|PAGO EN BANCO SAN JOSE | | |271,867.19|
|26/09/2019|00248|86967|00000000000|FACTURACION | | 90,100.00| |
|26/09/2019|00248|86967|00000000000|COMISION |2,027.25| | |
|26/09/2019|00248|86967|92755847099|PAGO EN BANCO SAN JOSE | | | 88,072.75|
|27/09/2019|00248|33760|00000000000|FACTURACION | | 66,375.00| |
|27/09/2019|00248|33760|00000000000|COMISION |1,493.44| | |
|27/09/2019|00248|33760|92786770604|PAGO EN BANCO SAN JOSE | | | 64,881.57|
|27/09/2019|00248|65962|00000000000|FACTURACION | |249,250.00| |
|27/09/2019|00248|65962|00000000000|COMISION |5,608.13| | |
|27/09/2019|00248|65962|92786770612|PAGO EN BANCO SAN JOSE | | |243,641.88|
|28/09/2019|00248|03227|00000000000|FACTURACION | |154,125.00| |
|28/09/2019|00248|03227|00000000000|COMISION |3,467.81| | |
|28/09/2019|00248|03227|92786770620|PAGO EN BANCO SAN JOSE | | |150,657.19|
|28/09/2019|00248|21028|00000000000|FACTURACION | | 24,700.00| |
|28/09/2019|00248|21028|00000000000|COMISION | 555.75| | |
|28/09/2019|00248|21028|92786770639|PAGO EN BANCO SAN JOSE | | | 24,144.25|
|28/09/2019|00248|81635|00000000000|FACTURACION | | 76,200.00| |
|28/09/2019|00248|81635|00000000000|COMISION |1,714.50| | |
|28/09/2019|00248|81635|92786770647|PAGO EN BANCO SAN JOSE | | | 74,485.50|
|30/09/2019|00248|94937|00000000000|FACTURACION | |269,075.00| |
|30/09/2019|00248|94937|00000000000|COMISION |6,054.19| | |
|30/09/2019|00248|94937|92808489521|PAGO EN BANCO SAN JOSE | | |263,020.82|
============================================================================================================
======================================================================================
|C�digo|Movimiento |D�bitos |Cr�ditos |Pagar |
======================================================================================
|879 |FACTURACION | |6,915,250.00| |
|830 |COMISION |155,593.18| | |
|708 |AJUSTES COBRADOS | 4,025.00| | |
|105 |PAGO EN BANCO SAN JOSE | | |6,755,632.02|
| |Totales |159,618.18|6,915,250.00|6,755,632.02|
======================================================================================
`;
const flipDate = date => {
const [d, m, y] = date.split('/');
return `${m}/${d}/${y}`;
};
let payments = full.match(/^.*(PAGO EN BANCO SAN JOSE).*/gm);
payments.pop();
const transs = payments
.map(item => item.split('|').filter(item => item.length))
.map(line => [flipDate(line[0]), parseFloat(line.pop().replace(',', ''))])
.reduce((acc, line) => {
let result = line;
const lastItem = acc[acc.length - 1];
if (lastItem && lastItem[0] === line[0]) {
acc[acc.length - 1][1] = line[1] + lastItem[1];
return acc;
}
return [...acc, ...[result]];
}, []);
let results = [];
let itemsCount = 0;
for (let i = 1; i < 31; i++) {
const genStringDate = `09/${i < 10 ? '0' + i : i}/2019`;
const date = new Date(genStringDate).getTime();
const itemDate = new Date(transs[itemsCount][0]).getTime();
if (date === itemDate) {
results.push(transs[itemsCount]);
itemsCount += 1;
} else {
results = [...results, [genStringDate, 0]];
}
}
console.log(results.map(item => item[1]).join('\n'));
@fmontes
Copy link
Author

fmontes commented Oct 3, 2019

The code is really ugly but it works :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment