Skip to content

Commit

Permalink
Merge branch 'pu/ps/sentry/10759' into '2024.11'
Browse files Browse the repository at this point in the history
tweak(Sales/Document): prevent "__clone method called on non-object"

See merge request tine20/tine20!6576
  • Loading branch information
pschuele committed Feb 12, 2025
2 parents 1c97836 + e7b58f8 commit 36bdd80
Showing 1 changed file with 17 additions and 6 deletions.
23 changes: 17 additions & 6 deletions tine20/Sales/Controller/Document/Abstract.php
Original file line number Diff line number Diff line change
Expand Up @@ -128,8 +128,10 @@ protected function _inspectCategoryDebitor(Sales_Model_Document_Abstract $_recor
}
$orgDebitor = $_record->{Sales_Model_Document_Abstract::FLD_DEBITOR_ID} = Sales_Controller_Debitor::getInstance()->search(
Tinebase_Model_Filter_FilterGroup::getFilterForModel(Sales_Model_Debitor::class, [
[TMFA::FIELD => Sales_Model_Debitor::FLD_CUSTOMER_ID, TMFA::OPERATOR => TMFA::OP_EQUALS, TMFA::VALUE => $customerId],
[TMFA::FIELD => Sales_Model_Debitor::FLD_DIVISION_ID, TMFA::OPERATOR => TMFA::OP_EQUALS, TMFA::VALUE => $divisionId],
[TMFA::FIELD => Sales_Model_Debitor::FLD_CUSTOMER_ID, TMFA::OPERATOR => TMFA::OP_EQUALS,
TMFA::VALUE => $customerId],
[TMFA::FIELD => Sales_Model_Debitor::FLD_DIVISION_ID, TMFA::OPERATOR => TMFA::OP_EQUALS,
TMFA::VALUE => $divisionId],
]))->getFirstRecord();

if (null === $_record->{Sales_Model_Document_Abstract::FLD_DEBITOR_ID}) {
Expand All @@ -139,18 +141,27 @@ protected function _inspectCategoryDebitor(Sales_Model_Document_Abstract $_recor
Sales_Model_Debitor::FLD_NAME => '-',
], true));
$customer = Sales_Controller_Customer::getInstance()->update($customer);
$orgDebitor = $_record->{Sales_Model_Document_Abstract::FLD_DEBITOR_ID} = $customer->{Sales_Model_Customer::FLD_DEBITORS}->find(Sales_Model_Debitor::FLD_DIVISION_ID, $divisionId);
$orgDebitor = $_record->{Sales_Model_Document_Abstract::FLD_DEBITOR_ID} =
$customer->{Sales_Model_Customer::FLD_DEBITORS}->find(Sales_Model_Debitor::FLD_DIVISION_ID,
$divisionId);
}
}

if (!$_record->{Sales_Model_Document_Abstract::FLD_PAYMENT_MEANS} || 0 === $_record->{Sales_Model_Document_Abstract::FLD_PAYMENT_MEANS}->count()) {
if (!$_record->{Sales_Model_Document_Abstract::FLD_PAYMENT_MEANS} ||
0 === $_record->{Sales_Model_Document_Abstract::FLD_PAYMENT_MEANS}->count()
) {
if (null === $orgDebitor) {
$orgDebitor = Sales_Controller_Debitor::getInstance()->get($orgDebitorId);
}
$_record->{Sales_Model_Document_Abstract::FLD_PAYMENT_MEANS} = clone $orgDebitor->{Sales_Model_Debitor::FLD_PAYMENT_MEANS};
if (is_object($orgDebitor->{Sales_Model_Debitor::FLD_PAYMENT_MEANS})) {
$_record->{Sales_Model_Document_Abstract::FLD_PAYMENT_MEANS} =
clone $orgDebitor->{Sales_Model_Debitor::FLD_PAYMENT_MEANS};
}
}

if (1 !== $_record->{Sales_Model_Document_Abstract::FLD_PAYMENT_MEANS}->filter(Sales_Model_PaymentMeans::FLD_DEFAULT, true)->count()) {
if (1 !== $_record->{Sales_Model_Document_Abstract::FLD_PAYMENT_MEANS}
->filter(Sales_Model_PaymentMeans::FLD_DEFAULT, true)->count()
) {
throw new Tinebase_Exception_UnexpectedValue('payment means need to have one default record');
}
}
Expand Down

0 comments on commit 36bdd80

Please sign in to comment.