diff --git a/nb_account_etl.ipynb b/nb_account_etl.ipynb index 589dc2d..6401117 100644 --- a/nb_account_etl.ipynb +++ b/nb_account_etl.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 6, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -79,6 +79,211 @@ " for row in spamreader:\n", " print(\", \".join(row))" ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[['12/08/2024', '', 'Saldo Anterior', '', '0', '0.00', ''], ['16/08/2024', '', 'Pix - Enviado - 16/08 13:12 Carlos Eduardo De Freitas', '', '81601', '-1000.00', ''], ['16/08/2024', '', 'Pix - Enviado - 16/08 14:05 Marcio De Oliveira Silva', '', '81602', '-20.00', ''], ['16/08/2024', '', 'BB RF Ref DI Mega - BB RF Referenciado DI LP Mega', '', '916', '1020.00', ''], ['19/08/2024', '', 'Pix - Enviado - 19/08 09:17 Franpeso Gas', '', '81901', '-135.00', ''], ['19/08/2024', '', 'BB RF Ref DI Mega - BB RF Referenciado DI LP Mega', '', '916', '135.00', ''], ['20/08/2024', '', 'Recebimento de Proventos - BANCO DO BRASIL S A', '', '2256', '11634.25', ''], ['20/08/2024', '', 'Pagamento de Impostos - RFB-DOC.ARREC.E-SOCIAL', '', '82001', '-444.27', ''], ['20/08/2024', '', 'Pix - Enviado - 20/08 08:39 Jose Reinaldo Da Silva', '', '82002', '-57.00', ''], ['21/08/2024', '', 'Recebimento de Proventos - TRIBUNAL REGIONAL FEDERAL DA 1 REGIAO', '', '81239', '17327.48', ''], ['21/08/2024', '', 'Pix - Enviado - 21/08 07:48 Bruno Dos Santos Rocha', '', '82101', '-187.00', ''], ['21/08/2024', '', 'Vivo Celular - VIVO MOVEL - DF', '', '40929', '-252.23', ''], ['22/08/2024', '', 'Ordem Banc 12 Sec Tes Nac - 036585070001-25 SECRETARIA DO T.R.F. D', '', '4329749000000', '2757.92', ''], ['22/08/2024', '', 'Pix - Enviado - 22/08 19:53 Vibra Energia Sa', '', '82201', '-261.78', ''], ['23/08/2024', '', 'Taxa Compra/Venda Ações', '', '102360800133694', '-0.29', ''], ['23/08/2024', '', 'Compra de Ações', '', '102360800133696', '-5852.00', ''], ['23/08/2024', '', 'Taxa Compra/Venda Ações', '', '102360800133698', '-1.46', ''], ['23/08/2024', '', 'Pix - Enviado - 23/08 09:02 Tatiana Von Paumgartten Va', '', '82301', '-180.00', ''], ['23/08/2024', '', 'Pix - Enviado - 23/08 14:32 Makley Guedes Claudino', '', '82302', '-572.00', ''], ['23/08/2024', '', 'Pagto Energia Elétrica - NEOENERGIA BRASíLIA', '', '40310', '-451.19', ''], ['26/08/2024', '', 'Pix - Enviado - 24/08 11:02 Detran Df', '', '82601', '-104.13', ''], ['26/08/2024', '', 'Pix - Enviado - 26/08 13:28 Chb Centro H Brasilia Ltda', '', '82602', '-400.00', ''], ['26/08/2024', '', 'Pix - Enviado - 26/08 21:34 Livepix', '', '82603', '-50.00', ''], ['26/08/2024', '', 'Pagto cartão crédito - VISA INFINITE', '', '82840286', '-19634.96', ''], ['26/08/2024', '', 'Pagamento de Telefone - VIVO FIXO NACIONAL 13 DIG', '', '11015', '-110.00', ''], ['27/08/2024', '', 'Recebimentos Diversos - PRO/TRF PROGRAMA DE ASSISTENCIA AOS', '', '48285', '349.36', ''], ['27/08/2024', '', 'BB Seguro Auto - SEGURO AUTO BB/MAPFRE', '', '16458', '-299.16', ''], ['28/08/2024', '', 'Cashback automático cc - Cashback Automático', '', '422198659', '196.33', ''], ['28/08/2024', '', 'Pix - Enviado - 28/08 18:53 Jose Reinaldo Da Silva', '', '82801', '-80.00', ''], ['29/08/2024', '', 'Pix - Enviado - 29/08 13:14 Italo Rodrigues Machado', '', '82901', '-50.00', ''], ['29/08/2024', '', 'Pix - Enviado - 29/08 13:21 Au Au Que Visual Pet Shop', '', '82902', '-100.00', ''], ['30/08/2024', '', 'Remuneração sobre ações', '', '102416500013661', '0.91', ''], ['30/08/2024', '', 'Remuneração sobre ações', '', '102416500013661', '0.01', ''], ['30/08/2024', '', 'Remuneração sobre ações', '', '102416500013661', '1.60', ''], ['30/08/2024', '', 'Remuneração sobre ações', '', '102416500013661', '0.03', ''], ['30/08/2024', '', 'Movimento do Dia', '', '102430800152034', '90.36', ''], ['30/08/2024', '', 'Ações - Proventos - Pag Dividendos BBAS3 30/08/2024', '', '102430800152044', '30.37', ''], ['30/08/2024', '', 'Ações - Proventos - Pag Jur Cap Pro BBAS3 30/08/2024', '', '102430800152044', '53.46', ''], ['30/08/2024', '', 'Ações - Proventos - Pag Rendimento BBAS3 30/08/2024', '', '102430800152044', '1.29', ''], ['30/08/2024', '', 'Pagamento de Boleto - PJBANK PAGAMENTOS S A', '', '83001', '-1351.62', ''], ['02/09/2024', '', 'Pix - Enviado - 31/08 09:31 Francina Noleto Aires', '', '90201', '-90.00', ''], ['02/09/2024', '', 'TED Transf.Eletr.Disponiv - 104 2272 28986008149 MARIA ELIENE DE O', '', '90202', '-1481.73', ''], ['03/09/2024', '', 'Recebimentos Diversos - PRO/TRF PROGRAMA DE ASSISTENCIA AOS', '', '188806', '174.68', ''], ['03/09/2024', '', 'Pix - Enviado - 03/09 09:38 Anizia Maria Pinheiro De A', '', '90301', '-120.00', ''], ['03/09/2024', '', 'Pix - Enviado - 03/09 15:51 Vibra Energia Sa', '', '90302', '-237.99', ''], ['03/09/2024', '', 'Pix - Enviado - 03/09 18:30 Manoel Erivan D Da Silva', '', '90303', '-550.00', ''], ['03/09/2024', '', 'BB RF Ref DI Mega - BB RF Referenciado DI LP Mega', '', '916', '300.76', ''], ['05/09/2024', '', 'Pagamento de Boleto - MONI IMOVEIS LTDA', '', '90501', '-6431.37', ''], ['05/09/2024', '', 'Pix - Enviado - 05/09 12:27 Helen Bruna Nascimento Far', '', '90502', '-800.00', ''], ['05/09/2024', '', 'BB RF Ref DI Mega - BB RF Referenciado DI LP Mega', '', '916', '7231.37', ''], ['06/09/2024', '', 'Ordem Banc 12 Sec Tes Nac - 036585070001-25 SECRETARIA DO T.R.F. D', '', '4660161000000', '3093.52', ''], ['09/09/2024', '', 'Pix - Enviado - 09/09 21:53 Natalia Pinheiro Moreira M', '', '90901', '-20.00', ''], ['10/09/2024', '', 'Pagamento de Boleto - INSPIRA MUDANCA PARTICIPACOES S/A', '', '91001', '-3196.00', ''], ['10/09/2024', '', 'Pix - Enviado - 10/09 10:09 Utb Uniao Transporte Brasi', '', '91002', '-300.00', ''], ['10/09/2024', '', 'BB RF Ref DI Mega - BB RF Referenciado DI LP Mega', '', '916', '422.48', ''], ['11/09/2024', '', 'Pagamento de Boleto - INSPIRA MUDANCA PARTICIPACOES S/A', '', '91101', '-900.00', ''], ['11/09/2024', '', 'BB RF Ref DI Mega', '', '916', '900.00', ''], ['12/09/2024', '', 'S A L D O', '', '0', '0.00', '']]\n", + "['12/08/2024', '', 'Saldo Anterior', '', '0', '0.00', '']\n", + "12/08/2024\n", + "['12', '08', '2024']\n", + "12\n", + "['12/08/2024', '', 'Saldo Anterior', '', '0', '0.00', '']\n", + "['16/08/2024', '', 'Pix - Enviado - 16/08 13:12 Carlos Eduardo De Freitas', '', '81601', '-1000.00', '']\n", + "['16/08/2024', '', 'Pix - Enviado - 16/08 14:05 Marcio De Oliveira Silva', '', '81602', '-20.00', '']\n", + "['16/08/2024', '', 'BB RF Ref DI Mega - BB RF Referenciado DI LP Mega', '', '916', '1020.00', '']\n", + "['19/08/2024', '', 'Pix - Enviado - 19/08 09:17 Franpeso Gas', '', '81901', '-135.00', '']\n", + "['19/08/2024', '', 'BB RF Ref DI Mega - BB RF Referenciado DI LP Mega', '', '916', '135.00', '']\n", + "['20/08/2024', '', 'Recebimento de Proventos - BANCO DO BRASIL S A', '', '2256', '11634.25', '']\n", + "['20/08/2024', '', 'Pagamento de Impostos - RFB-DOC.ARREC.E-SOCIAL', '', '82001', '-444.27', '']\n", + "['20/08/2024', '', 'Pix - Enviado - 20/08 08:39 Jose Reinaldo Da Silva', '', '82002', '-57.00', '']\n", + "['21/08/2024', '', 'Recebimento de Proventos - TRIBUNAL REGIONAL FEDERAL DA 1 REGIAO', '', '81239', '17327.48', '']\n", + "['21/08/2024', '', 'Pix - Enviado - 21/08 07:48 Bruno Dos Santos Rocha', '', '82101', '-187.00', '']\n", + "['21/08/2024', '', 'Vivo Celular - VIVO MOVEL - DF', '', '40929', '-252.23', '']\n", + "['22/08/2024', '', 'Ordem Banc 12 Sec Tes Nac - 036585070001-25 SECRETARIA DO T.R.F. D', '', '4329749000000', '2757.92', '']\n", + "['22/08/2024', '', 'Pix - Enviado - 22/08 19:53 Vibra Energia Sa', '', '82201', '-261.78', '']\n", + "['23/08/2024', '', 'Taxa Compra/Venda Ações', '', '102360800133694', '-0.29', '']\n", + "['23/08/2024', '', 'Compra de Ações', '', '102360800133696', '-5852.00', '']\n", + "['23/08/2024', '', 'Taxa Compra/Venda Ações', '', '102360800133698', '-1.46', '']\n", + "['23/08/2024', '', 'Pix - Enviado - 23/08 09:02 Tatiana Von Paumgartten Va', '', '82301', '-180.00', '']\n", + "['23/08/2024', '', 'Pix - Enviado - 23/08 14:32 Makley Guedes Claudino', '', '82302', '-572.00', '']\n", + "['23/08/2024', '', 'Pagto Energia Elétrica - NEOENERGIA BRASíLIA', '', '40310', '-451.19', '']\n", + "['26/08/2024', '', 'Pix - Enviado - 24/08 11:02 Detran Df', '', '82601', '-104.13', '']\n", + "['26/08/2024', '', 'Pix - Enviado - 26/08 13:28 Chb Centro H Brasilia Ltda', '', '82602', '-400.00', '']\n", + "['26/08/2024', '', 'Pix - Enviado - 26/08 21:34 Livepix', '', '82603', '-50.00', '']\n", + "['26/08/2024', '', 'Pagto cartão crédito - VISA INFINITE', '', '82840286', '-19634.96', '']\n", + "['26/08/2024', '', 'Pagamento de Telefone - VIVO FIXO NACIONAL 13 DIG', '', '11015', '-110.00', '']\n", + "['27/08/2024', '', 'Recebimentos Diversos - PRO/TRF PROGRAMA DE ASSISTENCIA AOS', '', '48285', '349.36', '']\n", + "['27/08/2024', '', 'BB Seguro Auto - SEGURO AUTO BB/MAPFRE', '', '16458', '-299.16', '']\n", + "['28/08/2024', '', 'Cashback automático cc - Cashback Automático', '', '422198659', '196.33', '']\n", + "['28/08/2024', '', 'Pix - Enviado - 28/08 18:53 Jose Reinaldo Da Silva', '', '82801', '-80.00', '']\n", + "['29/08/2024', '', 'Pix - Enviado - 29/08 13:14 Italo Rodrigues Machado', '', '82901', '-50.00', '']\n", + "['29/08/2024', '', 'Pix - Enviado - 29/08 13:21 Au Au Que Visual Pet Shop', '', '82902', '-100.00', '']\n", + "['30/08/2024', '', 'Remuneração sobre ações', '', '102416500013661', '0.91', '']\n", + "['30/08/2024', '', 'Remuneração sobre ações', '', '102416500013661', '0.01', '']\n", + "['30/08/2024', '', 'Remuneração sobre ações', '', '102416500013661', '1.60', '']\n", + "['30/08/2024', '', 'Remuneração sobre ações', '', '102416500013661', '0.03', '']\n", + "['30/08/2024', '', 'Movimento do Dia', '', '102430800152034', '90.36', '']\n", + "['30/08/2024', '', 'Ações - Proventos - Pag Dividendos BBAS3 30/08/2024', '', '102430800152044', '30.37', '']\n", + "['30/08/2024', '', 'Ações - Proventos - Pag Jur Cap Pro BBAS3 30/08/2024', '', '102430800152044', '53.46', '']\n", + "['30/08/2024', '', 'Ações - Proventos - Pag Rendimento BBAS3 30/08/2024', '', '102430800152044', '1.29', '']\n", + "['30/08/2024', '', 'Pagamento de Boleto - PJBANK PAGAMENTOS S A', '', '83001', '-1351.62', '']\n", + "['02/09/2024', '', 'Pix - Enviado - 31/08 09:31 Francina Noleto Aires', '', '90201', '-90.00', '']\n", + "['02/09/2024', '', 'TED Transf.Eletr.Disponiv - 104 2272 28986008149 MARIA ELIENE DE O', '', '90202', '-1481.73', '']\n", + "['03/09/2024', '', 'Recebimentos Diversos - PRO/TRF PROGRAMA DE ASSISTENCIA AOS', '', '188806', '174.68', '']\n", + "['03/09/2024', '', 'Pix - Enviado - 03/09 09:38 Anizia Maria Pinheiro De A', '', '90301', '-120.00', '']\n", + "['03/09/2024', '', 'Pix - Enviado - 03/09 15:51 Vibra Energia Sa', '', '90302', '-237.99', '']\n", + "['03/09/2024', '', 'Pix - Enviado - 03/09 18:30 Manoel Erivan D Da Silva', '', '90303', '-550.00', '']\n", + "['03/09/2024', '', 'BB RF Ref DI Mega - BB RF Referenciado DI LP Mega', '', '916', '300.76', '']\n", + "['05/09/2024', '', 'Pagamento de Boleto - MONI IMOVEIS LTDA', '', '90501', '-6431.37', '']\n", + "['05/09/2024', '', 'Pix - Enviado - 05/09 12:27 Helen Bruna Nascimento Far', '', '90502', '-800.00', '']\n", + "['05/09/2024', '', 'BB RF Ref DI Mega - BB RF Referenciado DI LP Mega', '', '916', '7231.37', '']\n", + "['06/09/2024', '', 'Ordem Banc 12 Sec Tes Nac - 036585070001-25 SECRETARIA DO T.R.F. D', '', '4660161000000', '3093.52', '']\n", + "['09/09/2024', '', 'Pix - Enviado - 09/09 21:53 Natalia Pinheiro Moreira M', '', '90901', '-20.00', '']\n", + "['10/09/2024', '', 'Pagamento de Boleto - INSPIRA MUDANCA PARTICIPACOES S/A', '', '91001', '-3196.00', '']\n", + "['10/09/2024', '', 'Pix - Enviado - 10/09 10:09 Utb Uniao Transporte Brasi', '', '91002', '-300.00', '']\n", + "['10/09/2024', '', 'BB RF Ref DI Mega - BB RF Referenciado DI LP Mega', '', '916', '422.48', '']\n", + "['11/09/2024', '', 'Pagamento de Boleto - INSPIRA MUDANCA PARTICIPACOES S/A', '', '91101', '-900.00', '']\n", + "['11/09/2024', '', 'BB RF Ref DI Mega', '', '916', '900.00', '']\n", + "['12/09/2024', '', 'S A L D O', '', '0', '0.00', '']\n" + ] + } + ], + "source": [ + "import csv\n", + "\n", + "with open(\"./documents/extrato_ago_24.csv\", newline=\"\", encoding=\"latin\") as csvfile:\n", + " spamreader = csv.reader(csvfile)\n", + " csv_list = list(spamreader)\n", + "\n", + "print(csv_list[1:])\n", + "print(csv_list[1:][0])\n", + "print(csv_list[1:][0][0])\n", + "print(csv_list[1:][0][0].split(sep=\"/\"))\n", + "print(csv_list[1:][0][0].split(sep=\"/\")[0])\n", + "\n", + "for item in csv_list[1:]:\n", + " print(item)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def build_account_input():\n", + "\n", + " import csv\n", + " import hashlib\n", + " from datetime import date, datetime\n", + " from decimal import Decimal\n", + "\n", + " with open(\"./documents/extrato_ago_24.csv\", newline=\"\", encoding=\"latin\") as csvfile:\n", + " spamreader = csv.reader(csvfile)\n", + " csv_list = list(spamreader)\n", + "\n", + " data_list = csv_list[1:]\n", + "\n", + " insert_bulk = []\n", + "\n", + " for item in data_list:\n", + " dateList = item[0].split(\"/\")\n", + "\n", + " tTdate = str(date(int(dateList[2]), int(dateList[1]), int(dateList[0])))\n", + " tAccount = 1\n", + " tMemo = item[2]\n", + " tCountry = \"BR\"\n", + " tOutflow = None if Decimal(item[5]) > 0 else str(Decimal(item[5]))\n", + " tInflow = None if Decimal(item[5]) < 0 else str(Decimal(item[5]))\n", + " tOwner = 1\n", + " tInstallmentNr = None\n", + " tInstallmentTt = None\n", + " tCreated = str(datetime.now(tz=None))\n", + " tUpdated = None\n", + "\n", + " preHash = str(tTdate) + tMemo + str(tOutflow) + str(tInflow)\n", + " tId = hashlib.sha256(preHash.encode()).hexdigest()\n", + "\n", + " insert_bulk.append(\n", + " (\n", + " tId,\n", + " tTdate,\n", + " tAccount,\n", + " tMemo,\n", + " tCountry,\n", + " tOutflow,\n", + " tInflow,\n", + " tOwner,\n", + " tInstallmentNr,\n", + " tInstallmentTt,\n", + " tCreated,\n", + " tUpdated,\n", + " )\n", + " )\n", + "\n", + " return insert_bulk" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "insert_query = \"INSERT IGNORE INTO default.TRANSACTION (ID, TDATE, ACCOUNTID, MEMO, COUNTRY, OUTFLOW, INFLOW, OWNERID, INSTALLMENT_NR, INSTALLMENT_TT, CREATED, UPDATED) VALUES ( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s )\"" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "def db_insert(insert_bulk: list[tuple]):\n", + " from mysql.connector import connect, Error\n", + "\n", + " try:\n", + " with connect(\n", + " host=\"localhost\",\n", + " user=\"root\",\n", + " password=\"pleasehashapasswordomg\",\n", + " database=\"default\",\n", + " ) as connection:\n", + " print(\"CONNECTED!\", connection)\n", + " with connection.cursor() as cursor:\n", + " cursor.executemany(insert_query, insert_bulk)\n", + " connection.commit()\n", + " print(\"DONE!\")\n", + " except Error as e:\n", + " print(e)\n", + " finally:\n", + " connection.close()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CONNECTED! \n", + "DONE!\n" + ] + } + ], + "source": [ + "db_insert(build_account_input())" + ] } ], "metadata": { diff --git a/nb_lab.ipynb b/nb_lab.ipynb index fe1297b..825c83e 100644 --- a/nb_lab.ipynb +++ b/nb_lab.ipynb @@ -515,6 +515,45 @@ "finally:\n", " connection.close()" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "class DataHolder:\n", + " def __init__(self, name, age, email):\n", + " \"\"\"Initialize the DataHolder with name, age, and email.\"\"\"\n", + " self.name = name\n", + " self.age = age\n", + " self.email = email\n", + "\n", + " def display_info(self):\n", + " \"\"\"Display the information of the DataHolder.\"\"\"\n", + " print(f\"Name: {self.name}\")\n", + " print(f\"Age: {self.age}\")\n", + " print(f\"Email: {self.email}\")\n", + "\n", + " def update_age(self, new_age):\n", + " \"\"\"Update the age of the DataHolder.\"\"\"\n", + " self.age = new_age\n", + " print(f\"Age updated to: {self.age}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from decimal import Decimal\n", + "\n", + "string = \"12.99\"\n", + "test = Decimal(string)\n", + "\n", + "print(test)" + ] } ], "metadata": {