Skip to content

Commit

Permalink
Merge pull request #39 from RafaelCamposs/duplicate
Browse files Browse the repository at this point in the history
Adiciona método para gerar 2ª via de boletos de faturas do Iugu
  • Loading branch information
marivaldojr committed Dec 17, 2021
2 parents dbaa8c0 + 68ddf7f commit bff96ea
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 4 deletions.
14 changes: 13 additions & 1 deletion README.md
Expand Up @@ -404,7 +404,19 @@ Para reembolsar uma fatura utilize o método `refund`:
// Iugu aceita cobranças em centavos
$user->refund($invoiceId);
```

### Gerar Segunda Via de Fatura (Apenas BOLETO)
Para gerar uma segunda via de boleto de uma fatura utilize o método `duplicate`
```php
// Envie o id da fatura e as configurações
$config = [
'due_date' => "2021-12-16",
'keep_early_payment_discount' => true,
'current_fines_option' => true,
'ignore_canceled_email' => true,
'ignore_due_email' => true
];
$user->duplicate($invoiceId, $config);
```

## Clientes e métodos de Pagamento (Cartões)

Expand Down
2 changes: 1 addition & 1 deletion composer.json
Expand Up @@ -11,7 +11,7 @@
],
"require": {
"php": ">=5.6",
"iugu/iugu": "1.0.6",
"iugu/iugu": "dev-master",
"dompdf/dompdf": "^0.8.0"
},
"require-dev": {
Expand Down
17 changes: 15 additions & 2 deletions src/GuPaymentTrait.php
Expand Up @@ -567,8 +567,21 @@ public function updateCard($token)
*/
public function refund($id)
{
$iuguInovice = $this->findInvoice($id)->asIuguInvoice();
$iuguInvoice = $this->findInvoice($id)->asIuguInvoice();

return $iuguInovice->refund();
return $iuguInvoice->refund();
}

/**
* Duplicate an in progress invoice
* @param string $id the invoice id
* @param array $config configuration of the duplicate
* @return \Symfony\Component\HttpFoundation\Response
*/
public function duplicate($id,$config)
{
$iuguInvoice = $this->findInvoice($id)->asIuguInvoice();

return $iuguInvoice->duplicate($config);
}
}
32 changes: 32 additions & 0 deletions tests/GuPaymentTest.php
Expand Up @@ -763,6 +763,38 @@ public function testCanRetrieveSoftDeletedUser()
$this->assertInstanceOf(User::class, $subscription->user);
}

public function testDuplicateInvoice()
{
$user = $this->createUser();

$user->createAsIuguCustomer($token = $this->getTestToken());

$options = ['payer' => [
'cpf_cnpj' => '169.893.520-00',
'address' => [
'zip_code' => '41150-120',
'number' => '1'
],
'name' => $user->name
]];

$invoice = $user->createInvoice(100, Carbon::now(), 'Um item', $options);

$config = [
'due_date' => Carbon::now()->addDays(3),
'keep_early_payment_discount' => true
];

$invoiceDuplicate = $user->duplicate($invoice->id,$config);
$canceledInvoice = $user->findInvoice($invoice->id);
$this->assertEquals($canceledInvoice->status, 'canceled');
$this->assertEquals($invoiceDuplicate->status,'pending');
$this->assertEquals($canceledInvoice->total_cents, $invoiceDuplicate->total_cents);
$this->assertEquals($invoiceDuplicate->logs[0]->notes, "Segunda via gerada da FATURA # ".$canceledInvoice->id);
$this->assertEquals(count($canceledInvoice->items),count($invoiceDuplicate->items));

}

protected function createUser()
{
return User::create([
Expand Down

0 comments on commit bff96ea

Please sign in to comment.