Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/fb/sales/divisions' into 2024.11
Browse files Browse the repository at this point in the history
  • Loading branch information
paulmhh committed Jan 11, 2024
2 parents e95c7ae + 64b3b7e commit 05e030d
Show file tree
Hide file tree
Showing 137 changed files with 4,077 additions and 1,470 deletions.
8 changes: 1 addition & 7 deletions tests/tine20/Crm/JsonTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -422,7 +422,7 @@ public function testRelatedModlog()
$diff = new Tinebase_Record_Diff(json_decode($modifications->getFirstRecord()->new_value, true));
$changedAttributes = Tinebase_Timemachine_ModificationLog::getModifiedAttributes($modifications);

$this->assertEquals(4, count($changedAttributes), 'expected 3 modifications: ' . print_r($modifications->toArray(), TRUE));
$this->assertEquals(3, count($changedAttributes), 'expected 3 modifications: ' . print_r($modifications->toArray(), TRUE));
foreach ($changedAttributes as $attribute) {
switch ($attribute) {
case 'customfields':
Expand All @@ -443,12 +443,6 @@ public function testRelatedModlog()
$this->assertEquals(0, count($diffSet->removed));
$this->assertEquals(0, count($diffSet->modified), 'tags modified mismatch: ' . print_r($diffSet->toArray(), TRUE));
break;
case 'tasks':
$diffSet = new Tinebase_Record_RecordSetDiff($diff->diff['tasks']);
$this->assertEquals(0, count($diffSet->added));
$this->assertEquals(0, count($diffSet->removed));
$this->assertEquals(1, count($diffSet->modified), 'tasks modified mismatch: ' . print_r($diffSet->toArray(), TRUE));
break;
default:
$this->fail('Invalid modification: ' . print_r($diff->toArray(), TRUE));
}
Expand Down
2 changes: 1 addition & 1 deletion tests/tine20/ExampleApplication/JsonTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ protected function tearDown(): void
$className = get_class($record);
$configuration = $record->getConfiguration();
foreach ($configuration->getAutoincrementFields() as $fieldDef) {
$numberable = Tinebase_Numberable::getNumberable($className, $fieldDef['fieldName'], $fieldDef);
$numberable = Tinebase_Numberable::getNumberable($record, $className, $fieldDef['fieldName'], $fieldDef);
$numberable->free($record->{$fieldDef['fieldName']});
}
}
Expand Down
19 changes: 14 additions & 5 deletions tests/tine20/Inventory/JsonTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
* @author Michael Spahn <[email protected]>
*/

use Tinebase_Model_Filter_Abstract as TMFA;

/**
* Test class for Inventory_JsonTest
*/
Expand Down Expand Up @@ -199,19 +201,26 @@ public function testSearchByCustomfield()
*/
public function testCostCenterFilter()
{
$cc = Tinebase_Controller_CostCenter::getInstance()->create(new Tinebase_Model_CostCenter(
array('name' => 'test123qwe', 'number' => 123)
));
$dimension = Tinebase_Controller_EvaluationDimension::getInstance()->search(Tinebase_Model_Filter_FilterGroup::getFilterForModel(Tinebase_Model_EvaluationDimension::class, [
[TMFA::FIELD => Tinebase_Model_EvaluationDimension::FLD_NAME, TMFA::OPERATOR => TMFA::OP_EQUALS, TMFA::VALUE => Tinebase_Model_EvaluationDimension::COST_CENTER],
]))->getFirstRecord();
$dimension->{Tinebase_Model_EvaluationDimension::FLD_ITEMS} = new Tinebase_Record_RecordSet(Tinebase_Model_EvaluationDimensionItem::class,
[new Tinebase_Model_EvaluationDimensionItem([
Tinebase_Model_EvaluationDimensionItem::FLD_NAME => 'test123qwe',
Tinebase_Model_EvaluationDimensionItem::FLD_NUMBER => 123,
], true)]);
$dimension = Tinebase_Controller_EvaluationDimension::getInstance()->update($dimension);
$ccId = $dimension->{Tinebase_Model_EvaluationDimension::FLD_ITEMS}->getFirstRecord()->getId();

$inventoryItem = $this->_getInventoryItem();
$inventoryItem->costcenter = $cc->getId();
$inventoryItem->eval_dim_cost_center = $ccId;

$this->_json->saveInventoryItem($inventoryItem->toArray());

$inventoryItem = $this->_getInventoryItem();
$this->_json->saveInventoryItem($inventoryItem->toArray());

$filter = Zend_Json::decode('[{"condition":"OR","filters":[{"condition":"AND","filters":[{"field":"costcenter","operator":"AND","value":[{"field":":id","operator":"equals","value":"'.$cc->getId().'"}],"id":"ext-record-2"}],"id":"ext-comp-1135","label":"test"}]}]');
$filter = Zend_Json::decode('[{"condition":"OR","filters":[{"condition":"AND","filters":[{"field":"eval_dim_cost_center","operator":"AND","value":[{"field":":id","operator":"equals","value":"'.$ccId.'"}],"id":"ext-record-2"}],"id":"ext-comp-1135","label":"test"}]}]');

$result = $this->_json->searchInventoryItems($filter, array());

Expand Down
41 changes: 39 additions & 2 deletions tests/tine20/Sales/ControllerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -187,14 +187,13 @@ public function testResolveVirtualFields()
'locality' => 'Munich',
'region' => 'Bavaria',
'countryname' => 'DE',
'custom1' => 'de-234',
'type' => 'billing',
);

$i18nTypeString = Tinebase_Translation::getTranslation('Sales')->_('billing');

$result = Sales_Controller_Address::getInstance()->resolveVirtualFields($address);
$this->assertEquals($result['fulltext'], "Meister Eder, Brunnengässla 4, 80331 Munich ($i18nTypeString - de-234)");
$this->assertEquals($result['fulltext'], "Meister Eder, Brunnengässla 4, 80331 Munich ($i18nTypeString)");
}

/**
Expand Down Expand Up @@ -324,6 +323,10 @@ public function testContactUpdatesCustomerPostal()

$customer = Sales_Controller_Customer::getInstance()->create(new Sales_Model_Customer(array(
'name' => Tinebase_Record_Abstract::generateUID(),
Sales_Model_Customer::FLD_DEBITORS => [[
Sales_Model_Debitor::FLD_NAME => '-',
Sales_Model_Debitor::FLD_DIVISION_ID => Sales_Controller_Division::getInstance()->getAll()->getFirstRecord()->getId(),
]],
)));

$relationData = [
Expand Down Expand Up @@ -353,4 +356,38 @@ public function testContactUpdatesCustomerPostal()

self::assertEquals($contact->adr_one_locality, $postal->locality);
}

public function testCustomerBillingAddressSearch()
{
$division1 = Sales_Controller_Division::getInstance()->getAll()->getFirstRecord()->getId();
$division2 = Sales_Controller_Division::getInstance()->create(new Sales_Model_Division([
Sales_Model_Division::FLD_TITLE => 'test',
]))->getId();
Sales_Controller_Customer::getInstance()->create(new Sales_Model_Customer(array(
'name' => Tinebase_Record_Abstract::generateUID(),
Sales_Model_Customer::FLD_DEBITORS => [[
Sales_Model_Debitor::FLD_NAME => '-',
Sales_Model_Debitor::FLD_DIVISION_ID => $division1,
Sales_Model_Debitor::FLD_BILLING => [[
Sales_Model_Address::FLD_LOCALITY => 'loco',
]],
], [
Sales_Model_Debitor::FLD_NAME => '--',
Sales_Model_Debitor::FLD_DIVISION_ID => $division2,
Sales_Model_Debitor::FLD_BILLING => [[
Sales_Model_Address::FLD_LOCALITY => 'lupo',
]],
]],
)));

$deliveries = Sales_Controller_Address::getInstance()->search(Tinebase_Model_Filter_FilterGroup::getFilterForModel(Sales_Model_Address::class, [
['field' => Sales_Model_Address::FLD_TYPE, 'operator' => 'not', 'value' => 'postal'],
['field' => Sales_Model_Address::FLD_DEBITOR_ID, 'operator' => 'definedBy', 'value' => [
['field' => Sales_Model_Debitor::FLD_NAME, 'operator' => 'equals', 'value' => '-'],
]],
]));

$this->assertSame(1, $deliveries->count());
self::assertEquals('loco', $deliveries->getFirstRecord()->locality);
}
}
26 changes: 20 additions & 6 deletions tests/tine20/Sales/CustomersTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -247,20 +247,36 @@ public function testNumberable()
{
$controller = Sales_Controller_Customer::getInstance();

$record = $controller->create(new Sales_Model_Customer(array('name' => 'auto1')));
$record = $controller->create(new Sales_Model_Customer(array('name' => 'auto1',
Sales_Model_Customer::FLD_DEBITORS => [[
Sales_Model_Debitor::FLD_DIVISION_ID => Sales_Controller_Division::getInstance()->getAll()->getFirstRecord()->getId(),
]],
)));

$this->assertEquals(1, $record->number);

$record = $controller->create(new Sales_Model_Customer(array('name' => 'auto2')));
$record = $controller->create(new Sales_Model_Customer(array('name' => 'auto2',
Sales_Model_Customer::FLD_DEBITORS => [[
Sales_Model_Debitor::FLD_DIVISION_ID => Sales_Controller_Division::getInstance()->getAll()->getFirstRecord()->getId(),
]],
)));

$this->assertEquals(2, $record->number);

// set number to 4, should return the formatted number
$record = $controller->create(new Sales_Model_Customer(array('name' => 'manu1', 'number' => 4)));
$record = $controller->create(new Sales_Model_Customer(array('name' => 'manu1', 'number' => 4,
Sales_Model_Customer::FLD_DEBITORS => [[
Sales_Model_Debitor::FLD_DIVISION_ID => Sales_Controller_Division::getInstance()->getAll()->getFirstRecord()->getId(),
]],
)));
$this->assertEquals(4, $record->number);

// the next number should be a number after the manual number
$record = $controller->create(new Sales_Model_Customer(array('name' => 'auto3')));
$record = $controller->create(new Sales_Model_Customer(array('name' => 'auto3',
Sales_Model_Customer::FLD_DEBITORS => [[
Sales_Model_Debitor::FLD_DIVISION_ID => Sales_Controller_Division::getInstance()->getAll()->getFirstRecord()->getId(),
]],
)));
$this->assertEquals(5, $record->number);
}

Expand Down Expand Up @@ -349,12 +365,10 @@ public function testChangeDebitorNumber()
$this->assertEquals(0, count($customer['delivery']));

$customer = $this->_json->getCustomer($customer['id']);
$customer['billing'][0]['custom1'] = '4219832435';
$customer['delivery'] = NULL;
$customer = $this->_json->saveCustomer($customer);

$this->assertEquals(1406708670499, $customer['billing'][0]['id']);
$this->assertEquals('4219832435', $customer['billing'][0]['custom1']);
$this->assertEquals(0, count($customer['delivery']));
}

Expand Down
29 changes: 13 additions & 16 deletions tests/tine20/Sales/Document/Abstract.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,29 +32,26 @@ protected function _createCustomer(): Sales_Model_Customer
'name' => $name,
'cpextern_id' => $this->_personas['sclever']->contact_id,
'bic' => 'SOMEBIC',
'delivery' => new Tinebase_Record_RecordSet(Sales_Model_Address::class,[[
'name' => 'some delivery address for ' . $name,
'type' => 'delivery'
]]),
'billing' => new Tinebase_Record_RecordSet(Sales_Model_Address::class,[[
'name' => 'some billing address for ' . $name,
'type' => 'billing'
]]),
'postal' => new Sales_Model_Address([
'name' => 'some postal address for ' . $name,
'street' => 'teststreet for ' . $name,
'type' => 'postal'
]),
Sales_Model_Customer::FLD_DEBITORS => [[
Sales_Model_Debitor::FLD_NAME => '-',
Sales_Model_Debitor::FLD_DIVISION_ID => Sales_Config::getInstance()->{Sales_Config::DEFAULT_DIVISION},
'delivery' => new Tinebase_Record_RecordSet(Sales_Model_Address::class,[[
'name' => 'some delivery address for ' . $name,
'type' => 'delivery'
]]),
'billing' => new Tinebase_Record_RecordSet(Sales_Model_Address::class,[[
'name' => 'some billing address for ' . $name,
'type' => 'billing'
]]),
]],
]));

$expander = new Tinebase_Record_Expander(Sales_Model_Customer::class, [
Tinebase_Record_Expander::EXPANDER_PROPERTIES => [
'delivery' => [],
'billing' => [],
'postal' => [],
]
]);
$expander->expand(new Tinebase_Record_RecordSet(Sales_Model_Customer::class, [$customer]));
Tinebase_Record_Expander::expandRecord($customer);
return $customer;
}
}
35 changes: 33 additions & 2 deletions tests/tine20/Sales/Document/ControllerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
*
* @package Sales
* @license http://www.gnu.org/licenses/agpl.html
* @copyright Copyright (c) 2021-2022 Metaways Infosystems GmbH (http://www.metaways.de)
* @copyright Copyright (c) 2021-2024 Metaways Infosystems GmbH (http://www.metaways.de)
* @author Paul Mehrer <[email protected]>
*/

Expand All @@ -22,7 +22,7 @@ public function testInvoiceStorno()
$invoice = Sales_Controller_Document_Invoice::getInstance()->create(new Sales_Model_Document_Invoice([
Sales_Model_Document_Invoice::FLD_CUSTOMER_ID => $customer,
Sales_Model_Document_Invoice::FLD_INVOICE_STATUS => Sales_Model_Document_Invoice::STATUS_PROFORMA,
Sales_Model_Document_Invoice::FLD_RECIPIENT_ID => $customer->postal,
Sales_Model_Document_Invoice::FLD_RECIPIENT_ID => $customer->{Sales_Model_Customer::FLD_DEBITORS}->getFirstRecord()->{Sales_Model_Debitor::FLD_BILLING}->getFirstRecord(),
Sales_Model_Document_Invoice::FLD_POSITIONS => [
new Sales_Model_DocumentPosition_Invoice([
Sales_Model_DocumentPosition_Invoice::FLD_TITLE => 'pos 1',
Expand All @@ -40,6 +40,7 @@ public function testInvoiceStorno()
]));

Tinebase_Record_Expander::expandRecord($invoice);

$invoice->{Sales_Model_Document_Invoice::FLD_INVOICE_STATUS} = Sales_Model_Document_Invoice::STATUS_BOOKED;
$invoice = Sales_Controller_Document_Invoice::getInstance()->update($invoice);

Expand All @@ -61,6 +62,36 @@ public function testInvoiceStorno()
$this->assertSame($invoice->{Sales_Model_Document_Invoice::FLD_RECIPIENT_ID}->{Tinebase_ModelConfiguration_Const::FLD_ORIGINAL_ID}, $storno->{Sales_Model_Document_Invoice::FLD_RECIPIENT_ID}->{Tinebase_ModelConfiguration_Const::FLD_ORIGINAL_ID});
}

public function testCategoryEvalDimensionCopy()
{
$customer = $this->_createCustomer();
$cat = Sales_Controller_Document_Category::getInstance()->getAll()->getFirstRecord();
$cc = Tinebase_Controller_EvaluationDimension::getInstance()->getAll()->find(Tinebase_Model_EvaluationDimension::FLD_NAME, Tinebase_Model_EvaluationDimension::COST_CENTER);
$cc->{Tinebase_Model_EvaluationDimension::FLD_ITEMS} = new Tinebase_Record_RecordSet(Tinebase_Model_EvaluationDimensionItem::class, [
new Tinebase_Model_EvaluationDimensionItem([
Tinebase_Model_EvaluationDimensionItem::FLD_NUMBER => '01',
Tinebase_Model_EvaluationDimensionItem::FLD_NAME => 'foo',
], true),
]);
$cc = Tinebase_Controller_EvaluationDimension::getInstance()->update($cc);

$cat->eval_dim_cost_center = $cc->{Tinebase_Model_EvaluationDimension::FLD_ITEMS}->getFirstRecord()->getId();
Sales_Controller_Document_Category::getInstance()->update($cat);

$order = Sales_Controller_Document_Order::getInstance()->create(new Sales_Model_Document_Order([
Sales_Model_Document_Order::FLD_CUSTOMER_ID => $customer,
Sales_Model_Document_Order::FLD_ORDER_STATUS => Sales_Model_Document_Order::STATUS_RECEIVED,
Sales_Model_Document_Order::FLD_RECIPIENT_ID => $customer->postal,
Sales_Model_Document_Order::FLD_DOCUMENT_CATEGORY => $cat->getId(),
]));

$this->assertSame($cat->eval_dim_cost_center, $order->eval_dim_cost_center->getId());

Tinebase_Record_Expander::expandRecord($order);
$this->assertNotNull($order->{Sales_Model_Document_Abstract::FLD_DEBITOR_ID});
$this->assertSame($customer->{Sales_Model_Customer::FLD_DEBITORS}->getFirstRecord()->getId(), $order->{Sales_Model_Document_Abstract::FLD_DEBITOR_ID}->{Sales_Model_Document_Debitor::FLD_ORIGINAL_ID});
}

public function testCustomerFilterForDocuments()
{
$customer = $this->_createCustomer();
Expand Down
13 changes: 6 additions & 7 deletions tests/tine20/Sales/Document/ExportTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ protected function createExportData()

$customerData = $customer->toArray();
$document = new Sales_Model_Document_Offer([
Sales_Model_Document_Offer::FLD_DOCUMENT_CATEGORY => Sales_Config::DOCUMENT_CATEGORY_DEFAULT,
Sales_Model_Document_Offer::FLD_DOCUMENT_LANGUAGE => 'de',
Sales_Model_Document_Offer::FLD_CUSTOMER_ID => $customerData,
Sales_Model_Document_Offer::FLD_RECIPIENT_ID => $customerData['postal'],
Expand Down Expand Up @@ -79,16 +78,16 @@ public function testExportSimpleDocumentDocxOverwrite()
$doc->generate();
$doc->save($tempfile);
$data = file_get_contents('zip://' . $tempfile . '#word/document.xml');
static::assertStringContainsString('root/STANDARD/de/test.docx', $data);
static::assertStringContainsString('root/Standard/de/test.docx', $data);

rename(__DIR__ . '/files/overwrite/STANDARD/de/test.docx', __DIR__ . '/files/overwrite/STANDARD/de/test.docx1');
rename(__DIR__ . '/files/overwrite/Standard/de/test.docx', __DIR__ . '/files/overwrite/Standard/de/test.docx1');
$pathProp->setValue($doc, __DIR__ . '/files/overwrite/test.docx');
$doc->generate();
$doc->save($tempfile);
$data = file_get_contents('zip://' . $tempfile . '#word/document.xml');
static::assertStringContainsString('root/STANDARD/test.docx', $data);
static::assertStringContainsString('root/Standard/test.docx', $data);

rename(__DIR__ . '/files/overwrite/STANDARD/test.docx', __DIR__ . '/files/overwrite/STANDARD/test.docx1');
rename(__DIR__ . '/files/overwrite/Standard/test.docx', __DIR__ . '/files/overwrite/Standard/test.docx1');
$pathProp->setValue($doc, __DIR__ . '/files/overwrite/test.docx');
$doc->generate();
$doc->save($tempfile);
Expand All @@ -97,8 +96,8 @@ public function testExportSimpleDocumentDocxOverwrite()

} finally {
unlink($tempfile);
@rename(__DIR__ . '/files/overwrite/STANDARD/de/test.docx1', __DIR__ . '/files/overwrite/STANDARD/de/test.docx');
@rename(__DIR__ . '/files/overwrite/STANDARD/test.docx1', __DIR__ . '/files/overwrite/STANDARD/test.docx');
@rename(__DIR__ . '/files/overwrite/Standard/de/test.docx1', __DIR__ . '/files/overwrite/Standard/de/test.docx');
@rename(__DIR__ . '/files/overwrite/Standard/test.docx1', __DIR__ . '/files/overwrite/Standard/test.docx');
}
}

Expand Down
Loading

0 comments on commit 05e030d

Please sign in to comment.