Updates for e-invoicing

This commit is contained in:
David Bomba 2024-09-03 09:02:46 +10:00
parent 8b8a5e3148
commit f85e96c3a6

View File

@ -307,7 +307,7 @@ class Peppol extends AbstractService
if($this->invoice->e_invoice) { if($this->invoice->e_invoice) {
$this->p_invoice = $this->e->decode('Peppol', json_encode($this->invoice->e_invoice), 'json'); $this->p_invoice = $this->e->decode('Peppol', json_encode($this->invoice->e_invoice->Invoice), 'json');
return $this; return $this;
@ -402,7 +402,7 @@ class Peppol extends AbstractService
*/ */
public function toArray(): array public function toArray(): array
{ {
return json_decode($this->toJson(), true); return ['Invoice' => json_decode($this->toJson(), true)];
} }
/** /**
@ -1046,32 +1046,50 @@ class Peppol extends AbstractService
*/ */
public function setInvoiceDefaults(): self public function setInvoiceDefaults(): self
{ {
$settings = [
'AccountingCostCode' => 7,
'AccountingCost' => 7,
'BuyerReference' => 6,
'AccountingSupplierParty' => 1,
'AccountingCustomerParty' => 2,
'PayeeParty' => 1,
'BuyerCustomerParty' => 2,
'SellerSupplierParty' => 1,
'TaxRepresentativeParty' => 1,
'Delivery' => 1,
'DeliveryTerms' => 7,
'PaymentMeans' => 7,
'PaymentTerms' => 7,
];
//only scans for top level props // Stub new invoice with company settings.
foreach($settings as $prop => $visibility) { if($this->_company_settings)
{
if($prop_value = $this->getSetting($prop)) { foreach(get_object_vars($this->_company_settings) as $prop => $value){
$this->p_invoice->{$prop} = $prop_value; $this->p_invoice->{$prop} = $value;
}
} }
} // Overwrite with any client level settings
if($this->_client_settings)
{
foreach (get_object_vars($this->_client_settings) as $prop => $value) {
$this->p_invoice->{$prop} = $value;
}
}
return $this; // Plucks special overriding properties scanning the correct settings level
$settings = [
'AccountingCostCode' => 7,
'AccountingCost' => 7,
'BuyerReference' => 6,
'AccountingSupplierParty' => 1,
'AccountingCustomerParty' => 2,
'PayeeParty' => 1,
'BuyerCustomerParty' => 2,
'SellerSupplierParty' => 1,
'TaxRepresentativeParty' => 1,
'Delivery' => 1,
'DeliveryTerms' => 7,
'PaymentMeans' => 7,
'PaymentTerms' => 7,
];
//only scans for top level props
foreach($settings as $prop => $visibility) {
if($prop_value = $this->getSetting($prop)) {
$this->p_invoice->{$prop} = $prop_value;
}
}
return $this;
} }
/** /**