Skip to content

Commit 6643a67

Browse files
authored
Merge pull request #75 from Spreeuw/PurchaseInvoicePayment
add PurchaseInvoicePayment
2 parents 7edf25a + 3dfb91d commit 6643a67

File tree

5 files changed

+81
-27
lines changed

5 files changed

+81
-27
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?php namespace Picqer\Financials\Moneybird\Entities\Generic;
2+
3+
use Picqer\Financials\Moneybird\Model;
4+
5+
/**
6+
* Class InvoicePayment
7+
* @package Picqer\Financials\Moneybird\Entities\Generic
8+
*/
9+
abstract class InvoicePayment extends Model {
10+
11+
/**
12+
* @var array
13+
*/
14+
protected $fillable = [
15+
'id',
16+
'invoice_type',
17+
'invoice_id',
18+
'financial_account_id',
19+
'user_id',
20+
'payment_transaction_id',
21+
'price',
22+
'price_base',
23+
'payment_date',
24+
'credit_invoice_id',
25+
'financial_mutation_id',
26+
'created_at',
27+
'updated_at',
28+
];
29+
30+
/**
31+
* @var string
32+
*/
33+
protected $namespace = 'payment';
34+
}

src/Picqer/Financials/Moneybird/Entities/PurchaseInvoice.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,4 +72,26 @@ class PurchaseInvoice extends Model
7272
'type' => self::NESTING_TYPE_ARRAY_OF_OBJECTS,
7373
],
7474
];
75+
76+
/**
77+
* Register a payment for the current purchase invoice
78+
*
79+
* @param PurchaseInvoicePayment $purchaseInvoicePayment (payment_date and price are required)
80+
* @throws ApiException
81+
*/
82+
public function registerPayment(PurchaseInvoicePayment $purchaseInvoicePayment)
83+
{
84+
if (! isset($purchaseInvoicePayment->payment_date)) {
85+
throw new ApiException('Required [payment_date] is missing');
86+
}
87+
88+
if (! isset($purchaseInvoicePayment->price)) {
89+
throw new ApiException('Required [price] is missing');
90+
}
91+
92+
$this->connection()->patch($this->endpoint . '/' . $this->id . '/register_payment',
93+
$purchaseInvoicePayment->jsonWithNamespace()
94+
);
95+
}
96+
7597
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?php namespace Picqer\Financials\Moneybird\Entities;
2+
3+
use Picqer\Financials\Moneybird\Entities\Generic\InvoicePayment;
4+
5+
/**
6+
* Class SalesInvoicePayment
7+
* @package Picqer\Financials\Moneybird\Entities
8+
*/
9+
class PurchaseInvoicePayment extends InvoicePayment
10+
{
11+
}
Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,11 @@
11
<?php namespace Picqer\Financials\Moneybird\Entities;
22

3-
use Picqer\Financials\Moneybird\Model;
3+
use Picqer\Financials\Moneybird\Entities\Generic\InvoicePayment;
44

55
/**
66
* Class SalesInvoicePayment
77
* @package Picqer\Financials\Moneybird\Entities
88
*/
9-
class SalesInvoicePayment extends Model {
10-
11-
/**
12-
* @var array
13-
*/
14-
protected $fillable = [
15-
'id',
16-
'invoice_type',
17-
'invoice_id',
18-
'financial_account_id',
19-
'user_id',
20-
'payment_transaction_id',
21-
'price',
22-
'price_base',
23-
'payment_date',
24-
'credit_invoice_id',
25-
'financial_mutation_id',
26-
'created_at',
27-
'updated_at',
28-
];
29-
30-
/**
31-
* @var string
32-
*/
33-
protected $namespace = 'payment';
34-
}
9+
class SalesInvoicePayment extends InvoicePayment
10+
{
11+
}

src/Picqer/Financials/Moneybird/Moneybird.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
use Picqer\Financials\Moneybird\Entities\Product;
1818
use Picqer\Financials\Moneybird\Entities\PurchaseInvoice;
1919
use Picqer\Financials\Moneybird\Entities\PurchaseInvoiceDetail;
20+
use Picqer\Financials\Moneybird\Entities\PurchaseInvoicePayment;
2021
use Picqer\Financials\Moneybird\Entities\Receipt;
2122
use Picqer\Financials\Moneybird\Entities\RecurringSalesInvoice;
2223
use Picqer\Financials\Moneybird\Entities\Note;
@@ -224,6 +225,15 @@ public function purchaseInvoiceDetail($attributes = [])
224225
return new PurchaseInvoiceDetail($this->connection, $attributes);
225226
}
226227

228+
/**
229+
* @param array $attributes
230+
* @return PurchaseInvoicePayment
231+
*/
232+
public function purchaseInvoicePayment($attributes = [])
233+
{
234+
return new PurchaseInvoicePayment($this->connection, $attributes);
235+
}
236+
227237
/**
228238
* @param array $attributes
229239
* @return Receipt

0 commit comments

Comments
 (0)