1
0
Fork 0
mirror of synced 2025-04-20 01:21:01 +00:00

Rebase master (#132)

* Payment status fix
* fix error during installation when orders count equals zero (#130)
* Fixed module installation error when there are no orders
* New module structure (refactoring)
* simple serializer and deserializer with models, new architecture
* move logic to strategies
* datetime strategy, some changes in order to make subtype parsing possible
* fallback to array casting for internal objects
* serializer now supports typed arrays and formatted DateTime
* models, prevent hangup from circular serialization of empty entities, improve compatibility with JMS Serializer (to simplify usage), (de)serialization callbacks
* fuser repository & correct annotations
* correct naming for proxy
* move several helper methods to the new structure
* customizable customer building
* more models, api corporate customer builder & bitrix customer builder
* AbstractApiModel shoudn't implement Traversable
* check if user exists in the order before building corporate customer
* don't check _rc cookie; it's untestable for now
* better structure + service locator, cookie extraction should be testable now
* enable forgotten domaincollector cookie extraction
* partial api client facade implementation (full implementation is not necessary for now)
* remove unimportant assert in tests, move utils to service
* move identifierspair to correct directory
* move CookieExtractor assert to a single test
* more models & ClientAdapter
* fix DateTimeConverter test compatibility with lower php versions
* update test date format
* finish customer-related methods in the client facade, fixes in models
* minor tweaks for (de)serializer, compatibility layer for models which implement types without full functionality
* make model's getters nullable
* better logic for AbstractSerializableModel
* different logic for AbstractSerializableModel
* ability to create filled AbstractSerializableModel by passing primary key value
* reuse logic from repositories for passing primary as constructor parameter for AbstractSerializableModel
* Loyalty feature installer (#118)
* fixes for crash during the installation
* add LP activate option
* add custom fields
* add events hadler and bonus pay system
* add check for the existence of an event and add orm tomodule
* add any repository and new-style models
* included class files in install.php
* delete annotation generator
* fix unserialize problem on step 4
This commit is contained in:
Pavel 2020-09-03 17:33:17 +03:00 committed by Павел
parent de7873c3a9
commit 027369a24b
4 changed files with 24 additions and 4 deletions

View file

@ -260,7 +260,7 @@ class RCrmActions
public static function fromJSON($str)
{
/** @var \Intaro\RetailCrm\Service\Utils $utils */
$utils = ServiceLocator::get(\Intaro\RetailCrm\Service\Utils::class);
$utils = ServiceLocator::getOrCreate(\Intaro\RetailCrm\Service\Utils::class);
return $utils->fromUTF8($str);
}

View file

@ -54,6 +54,7 @@ class intaro_retailcrm extends CModule
['EVENT_NAME' => 'OnSaleOrderDeleted', 'FROM_MODULE' => 'sale'],
['EVENT_NAME' => 'OnSaleComponentOrderOneStepProcess', 'FROM_MODULE' => 'sale'],
];
public const V5 = 'v5';
public $MODULE_ID = 'intaro.retailcrm';
public $OLD_MODULE_ID = 'intaro.intarocrm';
@ -242,6 +243,26 @@ class intaro_retailcrm extends CModule
return false;
}
include($this->INSTALL_PATH . '/../lib/model/bitrix/abstractmodelproxy.php');
include($this->INSTALL_PATH . '/../lib/model/bitrix/orderprops.php');
include($this->INSTALL_PATH . '/../lib/model/bitrix/tomodule.php');
include($this->INSTALL_PATH . '/../lib/repository/abstractrepository.php');
include($this->INSTALL_PATH . '/../lib/repository/orderpropsrepository.php');
include($this->INSTALL_PATH . '/../lib/repository/persontyperepository.php');
include($this->INSTALL_PATH . '/../lib/repository/tomodulerepository.php');
include($this->INSTALL_PATH . '/../lib/model/bitrix/orm/tomodule.php');
$this->CopyFiles();
$this->addBonusPaySystem();
$this->addLPUserFields();
$this->addLPEvents();
try {
$this->addLPOrderProps();
} catch (ObjectPropertyException | ArgumentException | SystemException $e) {
return false;
}
if ($step == 11) {
$arResult['arSites'] = RCrmActions::SitesList();
if (count($arResult['arSites']) < 2) {
@ -1292,7 +1313,7 @@ class intaro_retailcrm extends CModule
public function CopyFiles(): void
{
$pathFrom = $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/' . $this->MODULE_ID . '/install';
$pathFrom = $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/' . $this->MODULE_ID . '/install';
CopyDirFiles(
$pathFrom . '/export',

View file

@ -103,7 +103,7 @@ class ConfigProvider
/** @var bool|null|string $loyaltyProgramStatus */
protected static $loyaltyProgramStatus;
/**
* @return bool|string|null
*/

View file

@ -105,7 +105,6 @@ class ServiceLocator
return $service;
}
/**
* Get or create service (instantiates service if it wasn't created earlier; $name must be FQN).
*