From f30f3e3d084dab199a2b5edf54da65cdb390cdf2 Mon Sep 17 00:00:00 2001 From: Vitor Gabriel Sgobbi Date: Wed, 19 Jun 2019 15:30:23 -0300 Subject: [PATCH 01/11] Updated segments and slip for charge Update feature. --- febraban/cnab240/itau/charge/slip/segmentP.py | 21 +++++++++++++++++++ febraban/cnab240/itau/charge/slip/segmentQ.py | 7 +++++++ febraban/cnab240/itau/charge/slip/slip.py | 11 ++++++++++ 3 files changed, 39 insertions(+) diff --git a/febraban/cnab240/itau/charge/slip/segmentP.py b/febraban/cnab240/itau/charge/slip/segmentP.py index 420c364..4b1f2e4 100644 --- a/febraban/cnab240/itau/charge/slip/segmentP.py +++ b/febraban/cnab240/itau/charge/slip/segmentP.py @@ -90,3 +90,24 @@ def setOverdueLimit(self, overdueLimit): (224, 226, 2, numeric, overdueLimit), # Quantidade de dias após o vencimento para baixa automática ] self.content = Row.setStructs(structs=structs, content=self.content) + + def chargeUpdateAmount(self, amount): + structs = [ + (15, 17, 2, numeric, "31"), # Indica alteracao + (85, 100, 15, numeric, amount), # Alteracao valor + ] + self.content = Row.setStructs(structs=structs, content=self.content) + + def chargeUpdateDueDate(self, dueDate): + structs = [ + (15, 17, 2, numeric, "06"), # Indica alteracao + (77, 85, 8, numeric, dueDate), # Alteracao vencimento + ] + self.content = Row.setStructs(structs=structs, content=self.content) + + def chargeUpdateFine(self): + structs = [ + (15, 17, 2, numeric, "49"), # Indica alteracao de multa + + ] + self.content = Row.setStructs(structs=structs, content=self.content) diff --git a/febraban/cnab240/itau/charge/slip/segmentQ.py b/febraban/cnab240/itau/charge/slip/segmentQ.py index e9f6ad7..a73db25 100644 --- a/febraban/cnab240/itau/charge/slip/segmentQ.py +++ b/febraban/cnab240/itau/charge/slip/segmentQ.py @@ -60,3 +60,10 @@ def setGuarantor(self, user): (169, 199, 30, alphaNumeric, user.name) # Nome do Sacador Avalista ] self.content = Row.setStructs(structs=structs, content=self.content) + + def chargeUpdateFine(self): + structs = [ + (15, 17, 2, numeric, "49"), # Indica alteracao de multa + + ] + self.content = Row.setStructs(structs=structs, content=self.content) diff --git a/febraban/cnab240/itau/charge/slip/slip.py b/febraban/cnab240/itau/charge/slip/slip.py index 294fbc4..9d7058c 100644 --- a/febraban/cnab240/itau/charge/slip/slip.py +++ b/febraban/cnab240/itau/charge/slip/slip.py @@ -66,3 +66,14 @@ def setCancel(self): self.segmentP.setCancel() self.segmentQ.setCancel() self.segmentR.setCancel() + + def chargeUpate(self, amount=None, fine=None, dueDate=None, fineDate=None): + if amount: + self.segmentP.chargeUpdateAmount(amount) + if fine: + self.segmentP.chargeUpdateFine() + self.segmentQ.chargeUpdateFine() + self.segmentR.setFine(date=fineDate.strftime("%d%m%Y"), fine=fine) + if dueDate: + self.segmentP.chargeUpdateDueDate(dueDate.strftime("%d%m%Y")) + From 2b08a00d55a846160f5124c07fff07cf5b705c6e Mon Sep 17 00:00:00 2001 From: Vitor Gabriel Sgobbi Date: Wed, 19 Jun 2019 17:08:02 -0300 Subject: [PATCH 02/11] Created slip for charge Update and unittest cases --- .../cnab240/tests/itau/charge/updateTest.py | 185 ++++++++++++++++++ sample-slip-charge-update.py | 101 ++++++++++ 2 files changed, 286 insertions(+) create mode 100644 febraban/cnab240/tests/itau/charge/updateTest.py create mode 100644 sample-slip-charge-update.py diff --git a/febraban/cnab240/tests/itau/charge/updateTest.py b/febraban/cnab240/tests/itau/charge/updateTest.py new file mode 100644 index 0000000..b28d5c3 --- /dev/null +++ b/febraban/cnab240/tests/itau/charge/updateTest.py @@ -0,0 +1,185 @@ +from unittest.case import TestCase +from febraban.cnab240.itau.charge import SegmentP, SegmentQ, SegmentR +from febraban.cnab240.user import User, UserBank, UserAddress +from febraban.cnab240.itau.charge import Slip, File +from datetime import datetime, timedelta + +orignalDate = datetime(day=20, month=07, year=2019) +now = datetime.now() +expiration = now + timedelta(days=1) + +bank = UserBank( + bankId="341", + branchCode="1234", + accountNumber="1234567", + accountVerifier="8" +) + +address = UserAddress( + streetLine1="AV PAULISTA 1000", + city="SAO PAULO", + stateCode="SP", + zipCode="01310000" +) + +payer = User( + name="ARYA STARK", + identifier="12345678901", + address=UserAddress( + streetLine1="AV PAULISTA 1234", + district="BELA VISTA", + city="SAO PAULO", + stateCode="SP", + zipCode="01348002" + ) +) + +guarantor = User( + name="SACADOR", + identifier="09876543210", + bank=UserBank( + bankId="341", + branchCode="7307", + accountNumber="14446", + accountVerifier="4", + bankName="BANCO ITAU SA" + ), + address=UserAddress( + streetLine1="AV PAULISTA 1000", + streetLine2="CJ 601", + city="SAO PAULO", + stateCode="SP", + zipCode="01310000" + ) +) + + +class UpdateTest(TestCase): + + def testSegmentPlengh(self): + string = SegmentP().content + self.assertEqual(len(string), 240) + + def testSegmentPdefaultValues(self): + content = SegmentP().content + self.assertEqual(content[3:7], "0001") + self.assertEqual(content[7:8], "3") + self.assertEqual(content[13:14], "P") + self.assertEqual(content[15:17], "01") + self.assertEqual(content[37:40], "109") + self.assertEqual(content[106:108], "99") + self.assertEqual(content[108:109], "A") + + def testSegmentPsets(self): + segment = SegmentP() + segment.setPositionInLot(1) + segment.setSenderBank(bank) + segment.setAmountInCents(22500) + segment.setExpirationDate("14062019") + segment.setIssueDate("12062019") + segment.setBankIdentifier(identifier="99999", dac="7") + segment.setIdentifier("VITAO") + segment.setOverdueLimit(overdueLimit=59) + segment.chargeUpdateAmount(amount=22500) + response = "3410001300001P 3101234 000001234567 8109000999997 00000 1406201900000000002250000000099A12062019000000000000000000000000000000000000000000000000000000000000000000000000000000VITAO 0001590000000000000 " + self.assertEquals(segment.content, response) + + def testSegmentQsets(self): + segment = SegmentQ() + segment.setPositionInLot(1) + segment.setSenderBank(bank) + segment.setPayer(payer) + segment.setPayerAddress(address) + segment.setGuarantor(guarantor) + segment.setCancel() + response = "3410001300001Q 021000012345678901ARYA STARK AV PAULISTA 1000 01310000SAO PAULO SP1000009876543210SACADOR 000 " + self.assertEquals(segment.content, response) + + def testSegmentRsets(self): + segment = SegmentR() + segment.setPositionInLot(1) + segment.setSenderBank(bank) + segment.setCancel() + segment.setFine(date="14062019", fine=2) # Tests with fine + response = "3410001300001R 02000000000000000000000000000000000000000000000000214062019000000000000002 0000000000000000 000000000000 0 " + self.assertEqual(segment.content, response) + + def testUpdateAmount(self): + # Update Amount Test + file = File() + file.setSender(guarantor) + file.setIssueDate(now) + slip = Slip() + slip.setSender(guarantor) + slip.setPayer(payer) + slip.setExpirationDate(orignalDate) + slip.setBankIdentifier( + identifier="2613", + branch=bank.branchCode, + accountNumber=bank.accountNumber, + wallet="109" + ) + slip.setIdentifier("PRD-5701383420379136") + slip.chargeUpate(amount=125) + file.add(register=slip) + responseP = "3410001300001P 3107307 000000014446 4109000026130 00000 2007201900000000000012500000099A19062019000000000000000000000000000000000000000000000000000000000000000000000000000000PRD-5701383420379136 0001000000000000000 " + responseQ = "3410001300002Q 011000012345678901ARYA STARK AV PAULISTA 1234 BELA VISTA 01348002SAO PAULO SP0000000000000000 000 " + responseR = "3410001300003R 010000000000000000000000000000000000000000000000000 0000000000000000 000000000000 0 " + self.assertIn(responseP, file.toString()) + self.assertIn(responseQ, file.toString()) + self.assertIn(responseR, file.toString()) + + def testUpdatedueDate(self): + # Update dueDate Test + file = File() + file.setSender(guarantor) + file.setIssueDate(now) + slip = Slip() + slip.setSender(guarantor) + slip.setAmountInCents("100") + slip.setPayer(payer) + slip.setIssueDate(now) + slip.setExpirationDate(orignalDate) + slip.setBankIdentifier( + identifier="2643", + branch=bank.branchCode, + accountNumber=bank.accountNumber, + wallet="109" + ) + slip.setIdentifier("PRD-5207112409939968") + slip.setFineAndInterest(datetime=expiration, fine="0", interest="0") + slip.setOverdueLimit("3") + slip.chargeUpate(dueDate=expiration) + file.add(register=slip) + responseP = "3410001300001P 0607307 000000014446 4109000026437 00000 2006201900000000000010000000099A19062019020062019000000000000000000000000000000000000000000000000000000000000000000000PRD-5207112409939968 0001030000000000000 " + responseQ = "3410001300002Q 011000012345678901ARYA STARK AV PAULISTA 1234 BELA VISTA 01348002SAO PAULO SP0000000000000000 000 " + responseR = "3410001300003R 01000000000000000000000000000000000000000000000000020062019000000000000000 0000000000000000 000000000000 0 " + self.assertIn(responseP, file.toString()) + self.assertIn(responseQ, file.toString()) + self.assertIn(responseR, file.toString()) + + def testUpdateFine(self): + # Update Fine Test + file = File() + file.setSender(guarantor) + file.setIssueDate(now) + slip = Slip() + slip.setSender(guarantor) + slip.setAmountInCents("100") + slip.setPayer(payer) + slip.setExpirationDate(orignalDate) + slip.setBankIdentifier( + identifier="2647", + branch=bank.branchCode, + accountNumber=bank.accountNumber, + wallet="109" + ) + slip.setIdentifier("PRD-5917955804102656") + slip.chargeUpate(fine=50, fineDate=expiration) + responseP = "3410001300001P 4907307 000000014446 4109000026478 00000 2007201900000000000010000000099A19062019000000000000000000000000000000000000000000000000000000000000000000000000000000PRD-5917955804102656 0001000000000000000 " + responseQ = "3410001300002Q 491000012345678901ARYA STARK AV PAULISTA 1234 BELA VISTA 01348002SAO PAULO SP0000000000000000 000 " + responseR = "3410001300003R 01000000000000000000000000000000000000000000000000220062019000000000000050 0000000000000000 000000000000 0 " + file.add(register=slip) + self.assertIn(responseP, file.toString()) + self.assertIn(responseQ, file.toString()) + self.assertIn(responseR, file.toString()) diff --git a/sample-slip-charge-update.py b/sample-slip-charge-update.py new file mode 100644 index 0000000..58f4e0a --- /dev/null +++ b/sample-slip-charge-update.py @@ -0,0 +1,101 @@ +# coding: utf-8 + +from datetime import datetime, timedelta +from febraban.cnab240.itau.charge import Slip, File +from febraban.cnab240.user import User, UserAddress, UserBank + + +myself = User( + name="YOUR COMPANY NAME", + identifier="123456789012345", + bank=UserBank( + bankId="341", + branchCode="1234", + accountNumber="33333", + accountVerifier="4", + bankName="BANCO ITAU SA" + ), + address=UserAddress( + streetLine1="AV PAULISTA 1000", + streetLine2="CJ 601", + city="SAO PAULO", + stateCode="SP", + zipCode="01310000" + ) +) + +payer = User( + name="PAYER NAME", + identifier="12345678901", + address=UserAddress( + streetLine1="AV PAULISTA 1000", + district="BELA VISTA", + city="SAO PAULO", + stateCode="SP", + zipCode="01310000" + ) +) +now = datetime.now() +#expiration = now + timedelta(days=1) +expiration = datetime(day=22, month=07, year=2019) +orignalDate = datetime(day=20, month=07, year=2019) +file = File() +file.setSender(myself) +file.setIssueDate(now) + +# # Update dueDate +# slip1 = Slip() +# slip1.setSender(myself) +# slip1.setAmountInCents("113") +# slip1.setPayer(payer) +# #slip1.setIssueDate(now) +# #slip1.setExpirationDate(expiration) +# slip1.setBankIdentifier( +# identifier="2643", +# branch=myself.bank.branchCode, +# accountNumber=myself.bank.accountNumber, +# wallet="109" +# ) +# slip1.setIdentifier("PRD-5207112409939968") +# #slip1.setFineAndInterest(datetime=expiration, fine="0", interest="0") +# #slip1.setOverdueLimit("3") +# slip1.chargeUpate(dueDate=expiration) + + +# Update Fine +slip2 = Slip() +slip2.setSender(myself) +slip2.setAmountInCents("133") +slip2.setPayer(payer) +slip2.setExpirationDate(orignalDate) +slip2.setBankIdentifier( + identifier="2644", + branch=myself.bank.branchCode, + accountNumber=myself.bank.accountNumber, + wallet="109" +) +slip2.setIdentifier("PRD-5917955804102656") +slip2.chargeUpate(fine=50, fineDate=expiration) + + +# # Update amount +# slip3 = Slip() +# slip3.setSender(myself) +# slip3.setPayer(payer) +# # slip3.setIssueDate(now) +# slip3.setExpirationDate(orignalDate) +# slip3.setBankIdentifier( +# identifier="2613", +# branch=myself.bank.branchCode, +# accountNumber=myself.bank.accountNumber, +# wallet="109" +# ) +# slip3.setIdentifier("PRD-5701383420379136") +# slip3.chargeUpate(amount=125) + +# Create slips +# file.add(register=slip1) +file.add(register=slip2) +# file.add(register=slip3) + +file.output(fileName="update5.REM", path="/../../") From 4c57f818bd23665f523536d4239e4c3c3365025b Mon Sep 17 00:00:00 2001 From: Vitor Gabriel Sgobbi Date: Tue, 25 Jun 2019 14:31:22 -0300 Subject: [PATCH 03/11] Refactor chargeUpdate --- febraban/cnab240/itau/charge/file/header.py | 10 +++++-- .../cnab240/itau/charge/file/headerLot.py | 10 +++++-- febraban/cnab240/itau/charge/slip/segmentP.py | 16 ++++++++-- febraban/cnab240/itau/charge/slip/segmentQ.py | 30 ++++++++++++++++--- febraban/cnab240/itau/charge/slip/segmentR.py | 6 ++++ febraban/cnab240/itau/charge/slip/slip.py | 27 +++++++++++++---- sample-slip-charge-update.py | 19 ++++++------ 7 files changed, 91 insertions(+), 27 deletions(-) diff --git a/febraban/cnab240/itau/charge/file/header.py b/febraban/cnab240/itau/charge/file/header.py index 53b74ed..589b293 100644 --- a/febraban/cnab240/itau/charge/file/header.py +++ b/febraban/cnab240/itau/charge/file/header.py @@ -1,3 +1,4 @@ +from datetime import datetime from ....row import Row from ....characterType import numeric, alphaNumeric @@ -15,10 +16,13 @@ def defaultValues(self): ] self.content = Row.setStructs(structs=structs, content=self.content) - def setGeneratedFileDate(self, datetime): + def setGeneratedFileDate(self, dateAndTime): + if dateAndTime is None: + dateAndTime = datetime.now() + structs = [ - (143, 151, 8, numeric, datetime.strftime("%d%m%Y")), # Dia que o arquivo foi gerado - (151, 157, 6, numeric, datetime.strftime("%H%M%S")), # Horario que o arquivo foi gerado + (143, 151, 8, numeric, dateAndTime.strftime("%d%m%Y")), # Dia que o arquivo foi gerado + (151, 157, 6, numeric, dateAndTime.strftime("%H%M%S")), # Horario que o arquivo foi gerado ] self.content = Row.setStructs(structs=structs, content=self.content) diff --git a/febraban/cnab240/itau/charge/file/headerLot.py b/febraban/cnab240/itau/charge/file/headerLot.py index 14f74d3..9a54502 100644 --- a/febraban/cnab240/itau/charge/file/headerLot.py +++ b/febraban/cnab240/itau/charge/file/headerLot.py @@ -1,3 +1,4 @@ +from datetime import datetime from ....row import Row from ....characterType import numeric, alphaNumeric @@ -18,10 +19,13 @@ def defaultValues(self): ] self.content = Row.setStructs(structs=structs, content=self.content) - def setGeneratedFileDate(self, datetime): + def setGeneratedFileDate(self, dateAndTime): + if dateAndTime is None: + dateAndTime = datetime.now() + structs = [ - (191, 199, 8, numeric, datetime.strftime("%d%m%Y")), # Data de gravacao - (199, 207, 8, numeric, datetime.strftime("%d%m%Y")), # Data de credito + (191, 199, 8, numeric, dateAndTime.strftime("%d%m%Y")), # Data de gravacao + (199, 207, 8, numeric, dateAndTime.strftime("%d%m%Y")), # Data de credito ] self.content = Row.setStructs(structs=structs, content=self.content) diff --git a/febraban/cnab240/itau/charge/slip/segmentP.py b/febraban/cnab240/itau/charge/slip/segmentP.py index 4b1f2e4..b59e195 100644 --- a/febraban/cnab240/itau/charge/slip/segmentP.py +++ b/febraban/cnab240/itau/charge/slip/segmentP.py @@ -91,14 +91,24 @@ def setOverdueLimit(self, overdueLimit): ] self.content = Row.setStructs(structs=structs, content=self.content) - def chargeUpdateAmount(self, amount): + def setNullValues(self): structs = [ - (15, 17, 2, numeric, "31"), # Indica alteracao - (85, 100, 15, numeric, amount), # Alteracao valor + (109, 117, 8, numeric, "0"), # Data de emissao do boleto nula + (77, 85, 8, numeric, "0"), # Data de vencimento do boleto nula + (223, 224, 1, numeric, "0"), + (224, 226, 2, numeric, "0"), # Quantidade de dias após o vencimento nulo + ] + self.content = Row.setStructs(structs=structs, content=self.content) + + def setOccurrence(self, occurence): + structs = [ + (15, 17, 2, numeric, occurence) + ] self.content = Row.setStructs(structs=structs, content=self.content) def chargeUpdateDueDate(self, dueDate): + self.setNullValues() structs = [ (15, 17, 2, numeric, "06"), # Indica alteracao (77, 85, 8, numeric, dueDate), # Alteracao vencimento diff --git a/febraban/cnab240/itau/charge/slip/segmentQ.py b/febraban/cnab240/itau/charge/slip/segmentQ.py index a73db25..ed7c796 100644 --- a/febraban/cnab240/itau/charge/slip/segmentQ.py +++ b/febraban/cnab240/itau/charge/slip/segmentQ.py @@ -55,15 +55,37 @@ def setPayerAddress(self, address): def setGuarantor(self, user): structs = [ - (153, 154, 1, numeric, "1" if len(user.identifier) == 11 else "2"), # 1 - CPF/ 2 - CNPJ - (154, 169, 15, numeric, user.identifier), # CPF/CNPJ do Sacador Avalista - (169, 199, 30, alphaNumeric, user.name) # Nome do Sacador Avalista + (153, 154, 1, numeric, "1" if len(user.identifier) == 11 else "2"), # 1 - CPF/ 2 - CNPJ + (154, 169, 15, numeric, user.identifier), # CPF/CNPJ do Sacador Avalista + (169, 199, 30, alphaNumeric, user.name) # Nome do Sacador Avalista + ] + self.content = Row.setStructs(structs=structs, content=self.content) + + def setNullValues(self): + structs = [ + (17, 18, 1, numeric, "0"), # 1 - CPF/ 2 - CNPJ nulo + (18, 33, 15, numeric, "0"), # CPF/CNPJ do Pagador nulo + (33, 63, 30, alphaNumeric, " "), # Nome do Pagador nulo + (73, 113, 40, alphaNumeric, " "), # Endereco pagador nulo + (113, 128, 15, alphaNumeric, " "), + (128, 136, 8, numeric, "0"), + (136, 151, 15, alphaNumeric, " "), + (151, 153, 2, alphaNumeric, " ") + ] + self.content = Row.setStructs(structs=structs, content=self.content) + + def setOccurrence(self, occurence): + structs = [ + (15, 17, 2, numeric, occurence) + ] self.content = Row.setStructs(structs=structs, content=self.content) def chargeUpdateFine(self): + self.setNullValues() structs = [ (15, 17, 2, numeric, "49"), # Indica alteracao de multa - ] self.content = Row.setStructs(structs=structs, content=self.content) + + diff --git a/febraban/cnab240/itau/charge/slip/segmentR.py b/febraban/cnab240/itau/charge/slip/segmentR.py index 9ea74d3..bbbe91d 100644 --- a/febraban/cnab240/itau/charge/slip/segmentR.py +++ b/febraban/cnab240/itau/charge/slip/segmentR.py @@ -44,3 +44,9 @@ def setFine(self, date, fine): ] self.content = Row.setStructs(structs=structs, content=self.content) + def setOccurrence(self, ocurrence): + structs = [ + (15, 17, 2, numeric, ocurrence), + ] + self.content = Row.setStructs(structs=structs, content=self.content) + diff --git a/febraban/cnab240/itau/charge/slip/slip.py b/febraban/cnab240/itau/charge/slip/slip.py index 9d7058c..55e4b63 100644 --- a/febraban/cnab240/itau/charge/slip/slip.py +++ b/febraban/cnab240/itau/charge/slip/slip.py @@ -41,7 +41,10 @@ def setExpirationDate(self, datetime): self.segmentP.setExpirationDate(datetime.strftime("%d%m%Y")) def setIssueDate(self, datetime): - self.segmentP.setIssueDate(datetime.strftime("%d%m%Y")) + date = "00000000" + if datetime is not None: + date = datetime.strftime("%d%m%Y") + self.segmentP.setIssueDate(date) def setBankIdentifier(self, identifier, branch, accountNumber, wallet): dac = DAC.calculate( @@ -67,13 +70,27 @@ def setCancel(self): self.segmentQ.setCancel() self.segmentR.setCancel() - def chargeUpate(self, amount=None, fine=None, dueDate=None, fineDate=None): + def chargeUpate(self, amount=None, fine=None, dueDate=None, fineDate=None, interest=None): if amount: - self.segmentP.chargeUpdateAmount(amount) + self.segmentP.setOccurrence(occurence="31") + self.segmentP.setAmountInCents(amount=amount) + self.segmentP.setNullValues() + self.segmentQ.setNullValues() if fine: - self.segmentP.chargeUpdateFine() - self.segmentQ.chargeUpdateFine() + self.segmentP.setOccurrence(occurence="49") + self.segmentP.setNullValues() + self.segmentQ.setNullValues() self.segmentR.setFine(date=fineDate.strftime("%d%m%Y"), fine=fine) + self.segmentR.setOccurrence(ocurrence="49") if dueDate: + self.segmentP.setNullValues() + self.segmentP.setOccurrence(occurence="06") self.segmentP.chargeUpdateDueDate(dueDate.strftime("%d%m%Y")) + self.segmentQ.setOccurrence(occurence="06") + if interest: + self.segmentP.setNullValues() + self.segmentP.setOccurrence(occurence="31") + self.segmentP.setInterest(date=fineDate, interest=interest) + self.segmentQ.setOccurrence(occurence="31") + self.segmentQ.setNullValues() diff --git a/sample-slip-charge-update.py b/sample-slip-charge-update.py index 58f4e0a..58bdeea 100644 --- a/sample-slip-charge-update.py +++ b/sample-slip-charge-update.py @@ -41,8 +41,8 @@ orignalDate = datetime(day=20, month=07, year=2019) file = File() file.setSender(myself) -file.setIssueDate(now) - +file.setIssueDate(datetime=None) +# # # Update dueDate # slip1 = Slip() # slip1.setSender(myself) @@ -57,7 +57,6 @@ # wallet="109" # ) # slip1.setIdentifier("PRD-5207112409939968") -# #slip1.setFineAndInterest(datetime=expiration, fine="0", interest="0") # #slip1.setOverdueLimit("3") # slip1.chargeUpate(dueDate=expiration) @@ -67,7 +66,7 @@ slip2.setSender(myself) slip2.setAmountInCents("133") slip2.setPayer(payer) -slip2.setExpirationDate(orignalDate) +#slip2.setExpirationDate(orignalDate) slip2.setBankIdentifier( identifier="2644", branch=myself.bank.branchCode, @@ -81,9 +80,9 @@ # # Update amount # slip3 = Slip() # slip3.setSender(myself) -# slip3.setPayer(payer) +# #slip3.setPayer(payer) # # slip3.setIssueDate(now) -# slip3.setExpirationDate(orignalDate) +# #slip3.setExpirationDate(orignalDate) # slip3.setBankIdentifier( # identifier="2613", # branch=myself.bank.branchCode, @@ -91,11 +90,13 @@ # wallet="109" # ) # slip3.setIdentifier("PRD-5701383420379136") -# slip3.chargeUpate(amount=125) +# slip3.chargeUpate(amount=135) # Create slips -# file.add(register=slip1) +file.add(register=slip1) file.add(register=slip2) # file.add(register=slip3) -file.output(fileName="update5.REM", path="/../../") +print(file.toString()) + +file.output(fileName="update9.REM", path="/../../") From 3a9f9ab9154b19874e9735dc0d10a8ebf17a4f76 Mon Sep 17 00:00:00 2001 From: Vitor Gabriel Sgobbi Date: Tue, 25 Jun 2019 16:32:25 -0300 Subject: [PATCH 04/11] Refactor update data and added interest update --- febraban/cnab240/itau/charge/slip/slip.py | 16 +++-- sample-slip-charge-update.py | 79 +++++++++++++---------- 2 files changed, 55 insertions(+), 40 deletions(-) diff --git a/febraban/cnab240/itau/charge/slip/slip.py b/febraban/cnab240/itau/charge/slip/slip.py index 55e4b63..1c58a3d 100644 --- a/febraban/cnab240/itau/charge/slip/slip.py +++ b/febraban/cnab240/itau/charge/slip/slip.py @@ -76,21 +76,23 @@ def chargeUpate(self, amount=None, fine=None, dueDate=None, fineDate=None, inter self.segmentP.setAmountInCents(amount=amount) self.segmentP.setNullValues() self.segmentQ.setNullValues() + self.segmentQ.setOccurrence(occurence="31") if fine: self.segmentP.setOccurrence(occurence="49") self.segmentP.setNullValues() self.segmentQ.setNullValues() + self.segmentQ.setOccurrence(occurence="49") self.segmentR.setFine(date=fineDate.strftime("%d%m%Y"), fine=fine) self.segmentR.setOccurrence(ocurrence="49") - if dueDate: - self.segmentP.setNullValues() - self.segmentP.setOccurrence(occurence="06") - self.segmentP.chargeUpdateDueDate(dueDate.strftime("%d%m%Y")) - self.segmentQ.setOccurrence(occurence="06") if interest: self.segmentP.setNullValues() self.segmentP.setOccurrence(occurence="31") - self.segmentP.setInterest(date=fineDate, interest=interest) + self.segmentP.setInterest(date=fineDate.strftime("%d%m%Y"), interest=interest) self.segmentQ.setOccurrence(occurence="31") self.segmentQ.setNullValues() - + if dueDate: + self.segmentP.setNullValues() + self.segmentP.setOccurrence(occurence="06") + self.segmentP.chargeUpdateDueDate(dueDate.strftime("%d%m%Y")) + self.segmentQ.setNullValues() + self.segmentQ.setOccurrence(occurence="06") diff --git a/sample-slip-charge-update.py b/sample-slip-charge-update.py index 58bdeea..6b54ac0 100644 --- a/sample-slip-charge-update.py +++ b/sample-slip-charge-update.py @@ -42,30 +42,30 @@ file = File() file.setSender(myself) file.setIssueDate(datetime=None) -# -# # Update dueDate -# slip1 = Slip() -# slip1.setSender(myself) -# slip1.setAmountInCents("113") + + +# Update dueDate +slip1 = Slip() +slip1.setSender(myself) +slip1.setAmountInCents("113") # slip1.setPayer(payer) -# #slip1.setIssueDate(now) -# #slip1.setExpirationDate(expiration) -# slip1.setBankIdentifier( -# identifier="2643", -# branch=myself.bank.branchCode, -# accountNumber=myself.bank.accountNumber, -# wallet="109" -# ) -# slip1.setIdentifier("PRD-5207112409939968") -# #slip1.setOverdueLimit("3") -# slip1.chargeUpate(dueDate=expiration) +#slip1.setIssueDate(now) +#slip1.setExpirationDate(expiration) +slip1.setBankIdentifier( + identifier="2643", + branch=myself.bank.branchCode, + accountNumber=myself.bank.accountNumber, + wallet="109" +) +slip1.setIdentifier("PRD-5207112409939968") +#slip1.setOverdueLimit("3") +slip1.chargeUpate(dueDate=expiration) # Update Fine slip2 = Slip() slip2.setSender(myself) slip2.setAmountInCents("133") -slip2.setPayer(payer) #slip2.setExpirationDate(orignalDate) slip2.setBankIdentifier( identifier="2644", @@ -76,27 +76,40 @@ slip2.setIdentifier("PRD-5917955804102656") slip2.chargeUpate(fine=50, fineDate=expiration) +# Update Interest +slip3 = Slip() +slip3.setSender(myself) +slip3.setAmountInCents("133") +#slip2.setExpirationDate(orignalDate) +slip3.setBankIdentifier( + identifier="2644", + branch=myself.bank.branchCode, + accountNumber=myself.bank.accountNumber, + wallet="109" +) +slip3.setIdentifier("PRD-5917955804102656") +slip3.chargeUpate(interest=2, fineDate=expiration) -# # Update amount -# slip3 = Slip() -# slip3.setSender(myself) -# #slip3.setPayer(payer) -# # slip3.setIssueDate(now) -# #slip3.setExpirationDate(orignalDate) -# slip3.setBankIdentifier( -# identifier="2613", -# branch=myself.bank.branchCode, -# accountNumber=myself.bank.accountNumber, -# wallet="109" -# ) -# slip3.setIdentifier("PRD-5701383420379136") -# slip3.chargeUpate(amount=135) +# Update amount +slip4 = Slip() +slip4.setSender(myself) +# slip3.setIssueDate(now) +# slip3.setExpirationDate(orignalDate) +slip4.setBankIdentifier( + identifier="2613", + branch=myself.bank.branchCode, + accountNumber=myself.bank.accountNumber, + wallet="109" +) +slip4.setIdentifier("PRD-5701383420379136") +slip4.chargeUpate(amount=135) # Create slips file.add(register=slip1) file.add(register=slip2) -# file.add(register=slip3) +file.add(register=slip3) +file.add(register=slip4) print(file.toString()) -file.output(fileName="update9.REM", path="/../../") +file.output(fileName="update10.REM", path="/../../") From 03c96ce3bfd86839a5a03285fb8cbffb1a09d731 Mon Sep 17 00:00:00 2001 From: Vitor Gabriel Sgobbi Date: Tue, 25 Jun 2019 18:40:22 -0300 Subject: [PATCH 05/11] refactor updates --- febraban/cnab240/itau/charge/slip/slip.py | 6 ++-- sample-slip-charge-update.py | 39 ++++++++++++----------- 2 files changed, 22 insertions(+), 23 deletions(-) diff --git a/febraban/cnab240/itau/charge/slip/slip.py b/febraban/cnab240/itau/charge/slip/slip.py index 1c58a3d..231cbd8 100644 --- a/febraban/cnab240/itau/charge/slip/slip.py +++ b/febraban/cnab240/itau/charge/slip/slip.py @@ -70,7 +70,7 @@ def setCancel(self): self.segmentQ.setCancel() self.segmentR.setCancel() - def chargeUpate(self, amount=None, fine=None, dueDate=None, fineDate=None, interest=None): + def chargeUpate(self, amount=None, fine=None, dueDate=None, fineDate=None, interest=None, interestDate=None): if amount: self.segmentP.setOccurrence(occurence="31") self.segmentP.setAmountInCents(amount=amount) @@ -87,12 +87,10 @@ def chargeUpate(self, amount=None, fine=None, dueDate=None, fineDate=None, inter if interest: self.segmentP.setNullValues() self.segmentP.setOccurrence(occurence="31") - self.segmentP.setInterest(date=fineDate.strftime("%d%m%Y"), interest=interest) - self.segmentQ.setOccurrence(occurence="31") + self.segmentP.setInterest(date=interestDate.strftime("%d%m%Y"), interest=interest) self.segmentQ.setNullValues() if dueDate: self.segmentP.setNullValues() self.segmentP.setOccurrence(occurence="06") self.segmentP.chargeUpdateDueDate(dueDate.strftime("%d%m%Y")) self.segmentQ.setNullValues() - self.segmentQ.setOccurrence(occurence="06") diff --git a/sample-slip-charge-update.py b/sample-slip-charge-update.py index 6b54ac0..1fb4741 100644 --- a/sample-slip-charge-update.py +++ b/sample-slip-charge-update.py @@ -37,7 +37,8 @@ ) now = datetime.now() #expiration = now + timedelta(days=1) -expiration = datetime(day=22, month=07, year=2019) +expiration = datetime(day=25, month=07, year=2019) +interestDate = datetime(day=26, month=07, year=2019) orignalDate = datetime(day=20, month=07, year=2019) file = File() file.setSender(myself) @@ -47,17 +48,17 @@ # Update dueDate slip1 = Slip() slip1.setSender(myself) -slip1.setAmountInCents("113") +slip1.setAmountInCents("133") # slip1.setPayer(payer) #slip1.setIssueDate(now) #slip1.setExpirationDate(expiration) slip1.setBankIdentifier( - identifier="2643", + identifier="2644", branch=myself.bank.branchCode, accountNumber=myself.bank.accountNumber, wallet="109" ) -slip1.setIdentifier("PRD-5207112409939968") +slip1.setIdentifier("PRD-5917955804102656") #slip1.setOverdueLimit("3") slip1.chargeUpate(dueDate=expiration) @@ -74,7 +75,7 @@ wallet="109" ) slip2.setIdentifier("PRD-5917955804102656") -slip2.chargeUpate(fine=50, fineDate=expiration) +slip2.chargeUpate(fine=300, fineDate=expiration) # 3% # Update Interest slip3 = Slip() @@ -88,27 +89,27 @@ wallet="109" ) slip3.setIdentifier("PRD-5917955804102656") -slip3.chargeUpate(interest=2, fineDate=expiration) +slip3.chargeUpate(interest=10, interestDate=interestDate) # 10 cents/day # Update amount -slip4 = Slip() -slip4.setSender(myself) -# slip3.setIssueDate(now) -# slip3.setExpirationDate(orignalDate) -slip4.setBankIdentifier( - identifier="2613", - branch=myself.bank.branchCode, - accountNumber=myself.bank.accountNumber, - wallet="109" -) -slip4.setIdentifier("PRD-5701383420379136") -slip4.chargeUpate(amount=135) +# slip4 = Slip() +# # slip4.setSender(myself) +# # slip3.setIssueDate(now) +# # slip3.setExpirationDate(orignalDate) +# slip4.setBankIdentifier( +# identifier="2644", +# branch=myself.bank.branchCode, +# accountNumber=myself.bank.accountNumber, +# wallet="109" +# ) +# slip4.setIdentifier("PRD-5917955804102656") +# slip4.chargeUpate(amount=135) # Create slips file.add(register=slip1) file.add(register=slip2) file.add(register=slip3) -file.add(register=slip4) +#file.add(register=slip4) print(file.toString()) From 71c62736387fd067ff8d6b2a0e08119eeb1ca7e6 Mon Sep 17 00:00:00 2001 From: Vitor Gabriel Sgobbi Date: Tue, 25 Jun 2019 18:53:51 -0300 Subject: [PATCH 06/11] Rafactor charge Update --- sample-slip-charge-update.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sample-slip-charge-update.py b/sample-slip-charge-update.py index 1fb4741..13aa840 100644 --- a/sample-slip-charge-update.py +++ b/sample-slip-charge-update.py @@ -49,8 +49,6 @@ slip1 = Slip() slip1.setSender(myself) slip1.setAmountInCents("133") -# slip1.setPayer(payer) -#slip1.setIssueDate(now) #slip1.setExpirationDate(expiration) slip1.setBankIdentifier( identifier="2644", @@ -59,7 +57,6 @@ wallet="109" ) slip1.setIdentifier("PRD-5917955804102656") -#slip1.setOverdueLimit("3") slip1.chargeUpate(dueDate=expiration) @@ -91,6 +88,7 @@ slip3.setIdentifier("PRD-5917955804102656") slip3.chargeUpate(interest=10, interestDate=interestDate) # 10 cents/day + # Update amount # slip4 = Slip() # # slip4.setSender(myself) From 2cf37de5730f320718a14ebc7352ebe31d0421d7 Mon Sep 17 00:00:00 2001 From: Vitor Gabriel Sgobbi Date: Tue, 25 Jun 2019 19:04:45 -0300 Subject: [PATCH 07/11] rafactor sample --- sample-slip-charge-update.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sample-slip-charge-update.py b/sample-slip-charge-update.py index 13aa840..5edd5dc 100644 --- a/sample-slip-charge-update.py +++ b/sample-slip-charge-update.py @@ -56,7 +56,7 @@ accountNumber=myself.bank.accountNumber, wallet="109" ) -slip1.setIdentifier("PRD-5917955804102656") +slip1.setIdentifier("1917955804102656") slip1.chargeUpate(dueDate=expiration) @@ -71,7 +71,7 @@ accountNumber=myself.bank.accountNumber, wallet="109" ) -slip2.setIdentifier("PRD-5917955804102656") +slip2.setIdentifier("1917955804102656") slip2.chargeUpate(fine=300, fineDate=expiration) # 3% # Update Interest @@ -85,7 +85,7 @@ accountNumber=myself.bank.accountNumber, wallet="109" ) -slip3.setIdentifier("PRD-5917955804102656") +slip3.setIdentifier("1917955804102656") slip3.chargeUpate(interest=10, interestDate=interestDate) # 10 cents/day From a4e646de923e32453561796659eda96a6fc9d842 Mon Sep 17 00:00:00 2001 From: Vitor Gabriel Sgobbi Date: Wed, 26 Jun 2019 22:07:39 -0300 Subject: [PATCH 08/11] Fixing charge update in segments --- febraban/cnab240/itau/charge/slip/slip.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/febraban/cnab240/itau/charge/slip/slip.py b/febraban/cnab240/itau/charge/slip/slip.py index 231cbd8..e0e4f11 100644 --- a/febraban/cnab240/itau/charge/slip/slip.py +++ b/febraban/cnab240/itau/charge/slip/slip.py @@ -73,20 +73,23 @@ def setCancel(self): def chargeUpate(self, amount=None, fine=None, dueDate=None, fineDate=None, interest=None, interestDate=None): if amount: self.segmentP.setOccurrence(occurence="31") - self.segmentP.setAmountInCents(amount=amount) self.segmentP.setNullValues() + self.segmentP.setAmountInCents(amount=amount) self.segmentQ.setNullValues() - self.segmentQ.setOccurrence(occurence="31") if fine: self.segmentP.setOccurrence(occurence="49") self.segmentP.setNullValues() + self.segmentP.setAmountInCents(amount=0) self.segmentQ.setNullValues() self.segmentQ.setOccurrence(occurence="49") self.segmentR.setFine(date=fineDate.strftime("%d%m%Y"), fine=fine) self.segmentR.setOccurrence(ocurrence="49") + self.segmentP.setAmountInCents(amount=0) + if interest: self.segmentP.setNullValues() self.segmentP.setOccurrence(occurence="31") + self.segmentP.setAmountInCents(amount=0) self.segmentP.setInterest(date=interestDate.strftime("%d%m%Y"), interest=interest) self.segmentQ.setNullValues() if dueDate: From e9f95f7f5ee04fadfcd92d37f7cf2b96af44a927 Mon Sep 17 00:00:00 2001 From: Vitor Gabriel Sgobbi Date: Fri, 5 Jul 2019 20:46:22 -0300 Subject: [PATCH 09/11] Added return occurrence codes and refactor segmentQ --- febraban/cnab240/itau/charge/result/parser.py | 3 +++ febraban/cnab240/itau/charge/slip/segmentQ.py | 10 ++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/febraban/cnab240/itau/charge/result/parser.py b/febraban/cnab240/itau/charge/result/parser.py index 7565c58..19cd106 100644 --- a/febraban/cnab240/itau/charge/result/parser.py +++ b/febraban/cnab240/itau/charge/result/parser.py @@ -7,6 +7,7 @@ class SlipResponseStatus: registered = "registered" paid = "paid" canceled = "canceled" + updated = "updated" overdue = "overdue" failed = "failed" unknown = "unknown" @@ -34,6 +35,8 @@ def status(self): return SlipResponseStatus.paid if self.occurrence == "09": return SlipResponseStatus.canceled + if self.occurrence in ["04", "14"]: + return SlipResponseStatus.updated return SlipResponseStatus.unknown def contentText(self, breakLine="\n"): diff --git a/febraban/cnab240/itau/charge/slip/segmentQ.py b/febraban/cnab240/itau/charge/slip/segmentQ.py index ed7c796..7a35699 100644 --- a/febraban/cnab240/itau/charge/slip/segmentQ.py +++ b/febraban/cnab240/itau/charge/slip/segmentQ.py @@ -63,10 +63,10 @@ def setGuarantor(self, user): def setNullValues(self): structs = [ - (17, 18, 1, numeric, "0"), # 1 - CPF/ 2 - CNPJ nulo - (18, 33, 15, numeric, "0"), # CPF/CNPJ do Pagador nulo - (33, 63, 30, alphaNumeric, " "), # Nome do Pagador nulo - (73, 113, 40, alphaNumeric, " "), # Endereco pagador nulo + (17, 18, 1, numeric, "0"), # 1 - CPF/ 2 - CNPJ nulo + (18, 33, 15, numeric, "0"), # CPF/CNPJ do Pagador nulo + (33, 63, 30, alphaNumeric, " "), # Nome do Pagador nulo + (73, 113, 40, alphaNumeric, " "), # Endereco pagador nulo (113, 128, 15, alphaNumeric, " "), (128, 136, 8, numeric, "0"), (136, 151, 15, alphaNumeric, " "), @@ -87,5 +87,3 @@ def chargeUpdateFine(self): (15, 17, 2, numeric, "49"), # Indica alteracao de multa ] self.content = Row.setStructs(structs=structs, content=self.content) - - From 3a5530705d615396aa17d2eb873c97f59f8bfde0 Mon Sep 17 00:00:00 2001 From: Vitor Gabriel Sgobbi Date: Tue, 16 Jul 2019 16:45:20 -0300 Subject: [PATCH 10/11] Refactor to remove updateFine and updateInterest --- febraban/cnab240/itau/charge/slip/segmentP.py | 7 ------- febraban/cnab240/itau/charge/slip/segmentQ.py | 7 ------- febraban/cnab240/itau/charge/slip/slip.py | 18 +----------------- 3 files changed, 1 insertion(+), 31 deletions(-) diff --git a/febraban/cnab240/itau/charge/slip/segmentP.py b/febraban/cnab240/itau/charge/slip/segmentP.py index b59e195..1130d0e 100644 --- a/febraban/cnab240/itau/charge/slip/segmentP.py +++ b/febraban/cnab240/itau/charge/slip/segmentP.py @@ -114,10 +114,3 @@ def chargeUpdateDueDate(self, dueDate): (77, 85, 8, numeric, dueDate), # Alteracao vencimento ] self.content = Row.setStructs(structs=structs, content=self.content) - - def chargeUpdateFine(self): - structs = [ - (15, 17, 2, numeric, "49"), # Indica alteracao de multa - - ] - self.content = Row.setStructs(structs=structs, content=self.content) diff --git a/febraban/cnab240/itau/charge/slip/segmentQ.py b/febraban/cnab240/itau/charge/slip/segmentQ.py index 7a35699..d88b52f 100644 --- a/febraban/cnab240/itau/charge/slip/segmentQ.py +++ b/febraban/cnab240/itau/charge/slip/segmentQ.py @@ -80,10 +80,3 @@ def setOccurrence(self, occurence): ] self.content = Row.setStructs(structs=structs, content=self.content) - - def chargeUpdateFine(self): - self.setNullValues() - structs = [ - (15, 17, 2, numeric, "49"), # Indica alteracao de multa - ] - self.content = Row.setStructs(structs=structs, content=self.content) diff --git a/febraban/cnab240/itau/charge/slip/slip.py b/febraban/cnab240/itau/charge/slip/slip.py index e0e4f11..e8c6128 100644 --- a/febraban/cnab240/itau/charge/slip/slip.py +++ b/febraban/cnab240/itau/charge/slip/slip.py @@ -70,28 +70,12 @@ def setCancel(self): self.segmentQ.setCancel() self.segmentR.setCancel() - def chargeUpate(self, amount=None, fine=None, dueDate=None, fineDate=None, interest=None, interestDate=None): + def chargeUpate(self, amount=None, dueDate=None): if amount: self.segmentP.setOccurrence(occurence="31") self.segmentP.setNullValues() self.segmentP.setAmountInCents(amount=amount) self.segmentQ.setNullValues() - if fine: - self.segmentP.setOccurrence(occurence="49") - self.segmentP.setNullValues() - self.segmentP.setAmountInCents(amount=0) - self.segmentQ.setNullValues() - self.segmentQ.setOccurrence(occurence="49") - self.segmentR.setFine(date=fineDate.strftime("%d%m%Y"), fine=fine) - self.segmentR.setOccurrence(ocurrence="49") - self.segmentP.setAmountInCents(amount=0) - - if interest: - self.segmentP.setNullValues() - self.segmentP.setOccurrence(occurence="31") - self.segmentP.setAmountInCents(amount=0) - self.segmentP.setInterest(date=interestDate.strftime("%d%m%Y"), interest=interest) - self.segmentQ.setNullValues() if dueDate: self.segmentP.setNullValues() self.segmentP.setOccurrence(occurence="06") From 9e2824ccff63d5654c3dca45a0fc3eaa96fb7774 Mon Sep 17 00:00:00 2001 From: Vitor Gabriel Sgobbi Date: Wed, 17 Jul 2019 20:07:09 -0300 Subject: [PATCH 11/11] Fixed tests for charge update --- .../cnab240/tests/itau/charge/updateTest.py | 47 ++++++------------- 1 file changed, 14 insertions(+), 33 deletions(-) diff --git a/febraban/cnab240/tests/itau/charge/updateTest.py b/febraban/cnab240/tests/itau/charge/updateTest.py index b28d5c3..4170ea1 100644 --- a/febraban/cnab240/tests/itau/charge/updateTest.py +++ b/febraban/cnab240/tests/itau/charge/updateTest.py @@ -80,8 +80,8 @@ def testSegmentPsets(self): segment.setBankIdentifier(identifier="99999", dac="7") segment.setIdentifier("VITAO") segment.setOverdueLimit(overdueLimit=59) - segment.chargeUpdateAmount(amount=22500) - response = "3410001300001P 3101234 000001234567 8109000999997 00000 1406201900000000002250000000099A12062019000000000000000000000000000000000000000000000000000000000000000000000000000000VITAO 0001590000000000000 " + print(segment.content) + response = "3410001300001P 0101234 000001234567 8109000999997 00000 1406201900000000002250000000099A12062019000000000000000000000000000000000000000000000000000000000000000000000000000000VITAO 0001590000000000000 " self.assertEquals(segment.content, response) def testSegmentQsets(self): @@ -122,9 +122,15 @@ def testUpdateAmount(self): slip.setIdentifier("PRD-5701383420379136") slip.chargeUpate(amount=125) file.add(register=slip) - responseP = "3410001300001P 3107307 000000014446 4109000026130 00000 2007201900000000000012500000099A19062019000000000000000000000000000000000000000000000000000000000000000000000000000000PRD-5701383420379136 0001000000000000000 " - responseQ = "3410001300002Q 011000012345678901ARYA STARK AV PAULISTA 1234 BELA VISTA 01348002SAO PAULO SP0000000000000000 000 " + + responseP = "3410001300001P 3107307 000000014446 4109000026130 00000 0000000000000000000012500000099A16072019000000000000000000000000000000000000000000000000000000000000000000000000000000PRD-5701383420379136 0000000000000000000 " + responseQ = "3410001300002Q 010000000000000000 00000000 0000000000000000 000 " responseR = "3410001300003R 010000000000000000000000000000000000000000000000000 0000000000000000 000000000000 0 " + + print(file.toString()) + print("") + print(responseP) + self.assertIn(responseP, file.toString()) self.assertIn(responseQ, file.toString()) self.assertIn(responseR, file.toString()) @@ -151,35 +157,10 @@ def testUpdatedueDate(self): slip.setOverdueLimit("3") slip.chargeUpate(dueDate=expiration) file.add(register=slip) - responseP = "3410001300001P 0607307 000000014446 4109000026437 00000 2006201900000000000010000000099A19062019020062019000000000000000000000000000000000000000000000000000000000000000000000PRD-5207112409939968 0001030000000000000 " - responseQ = "3410001300002Q 011000012345678901ARYA STARK AV PAULISTA 1234 BELA VISTA 01348002SAO PAULO SP0000000000000000 000 " - responseR = "3410001300003R 01000000000000000000000000000000000000000000000000020062019000000000000000 0000000000000000 000000000000 0 " - self.assertIn(responseP, file.toString()) - self.assertIn(responseQ, file.toString()) - self.assertIn(responseR, file.toString()) - - def testUpdateFine(self): - # Update Fine Test - file = File() - file.setSender(guarantor) - file.setIssueDate(now) - slip = Slip() - slip.setSender(guarantor) - slip.setAmountInCents("100") - slip.setPayer(payer) - slip.setExpirationDate(orignalDate) - slip.setBankIdentifier( - identifier="2647", - branch=bank.branchCode, - accountNumber=bank.accountNumber, - wallet="109" - ) - slip.setIdentifier("PRD-5917955804102656") - slip.chargeUpate(fine=50, fineDate=expiration) - responseP = "3410001300001P 4907307 000000014446 4109000026478 00000 2007201900000000000010000000099A19062019000000000000000000000000000000000000000000000000000000000000000000000000000000PRD-5917955804102656 0001000000000000000 " - responseQ = "3410001300002Q 491000012345678901ARYA STARK AV PAULISTA 1234 BELA VISTA 01348002SAO PAULO SP0000000000000000 000 " - responseR = "3410001300003R 01000000000000000000000000000000000000000000000000220062019000000000000050 0000000000000000 000000000000 0 " - file.add(register=slip) + responseP = "3410001300001P 0607307 000000014446 4109000026437 00000 1707201900000000000010000000099A16072019017072019000000000000000000000000000000000000000000000000000000000000000000000PRD-5207112409939968 0000000000000000000 " + responseQ = "3410001300002Q 010000000000000000 00000000 0000000000000000 000 " + responseR = "3410001300003R 01000000000000000000000000000000000000000000000000017072019000000000000000 0000000000000000 000000000000 0 " + print(file.toString()) self.assertIn(responseP, file.toString()) self.assertIn(responseQ, file.toString()) self.assertIn(responseR, file.toString())