use yii_app\records\ApiCron;
use yii_app\records\Assemblies;
use yii_app\records\Balances;
+use yii_app\records\BouquetComposition;
+use yii_app\records\BouquetCompositionMatrixTypeHistory;
+use yii_app\records\BouquetCompositionProducts;
use yii_app\records\Cashes;
use yii_app\records\CityStore;
use yii_app\records\CreateChecks;
}
if (!empty($result["nomenclature"]["elements"])) {
// Products1c::deleteAll(['and', ['tip' => 'products'], ['view' => 0]]);
+ $bouquets = BouquetComposition::find()->select('guid')->column();
foreach ($result["nomenclature"]["elements"] as $gi => $arr) {
// if (!empty($arr["name"]) && in_array($arr["name"][0], ['ь', 'Ь', 'ъ', 'Ъ'])) { // Не вносим номенклатуру, помеченную на удаление
// continue;
LogService::apiErrorLog(json_encode(["error_id" => 8, "error" => $products1c6->getErrors()], JSON_UNESCAPED_UNICODE));
}
+ if(!empty($arr["components"])) {
+ if(!in_array($arr["id"], $bouquets)) {
+ $newBouquetComp = new BouquetComposition();
+ $newBouquetComp->guid = $arr["id"];
+ $newBouquetComp->name = $arr["name"];
+ $newBouquetComp->created_by = Admin::getAdminAgentId() ?: null;
+ if(!$newBouquetComp->save()) {
+ LogService::apiErrorLog(json_encode(["error_id" => 8.1, "error" => $newBouquetComp->getErrors()], JSON_UNESCAPED_UNICODE));
+ } else {
+ foreach ($arr["components"] as $guid => $quantity) {
+ $newBouquetCompProd = new BouquetCompositionProducts();
+ $newBouquetCompProd->bouquet_id = $newBouquetComp->id;
+ $newBouquetCompProd->product_guid = $guid;
+ $newBouquetCompProd->count = $quantity;
+ $newBouquetCompProd->created_by = Admin::getAdminAgentId() ?: null;
+ if(!$newBouquetCompProd->save()) {
+ LogService::apiErrorLog(json_encode(["error_id" => 8.2, "error" => $newBouquetCompProd->getErrors()], JSON_UNESCAPED_UNICODE));
+ }
+ }
+ $costModels = [];
+ foreach (BouquetComposition::getRegions() as $region_id) {
+ $costModels[$region_id] = $newBouquetComp->getCostModel($region_id, array_keys($arr["components"]), true);
+ }
+ if(empty($costModels)) {
+ LogService::apiErrorLog(json_encode(["error_id" => 8.3, "error" => "Стоимость и цена не подсчитаны"], JSON_UNESCAPED_UNICODE));
+ }
+ $bouquetTypeHistory = new BouquetCompositionMatrixTypeHistory();
+ $bouquetTypeHistory->bouquet_id = $newBouquetComp->id;
+ $bouquetTypeHistory->matrix_type_id = 1;
+ $bouquetTypeHistory->created_by = Admin::getAdminAgentId() ?: null;
+ $bouquetTypeHistory->is_active = 1;
+ $bouquetTypeHistory->date_from = date('Y-m-d H:i:s');
+ if(!$bouquetTypeHistory->save()) {
+ LogService::apiErrorLog(json_encode(["error_id" => 8.4, "error" => $bouquetTypeHistory->getErrors()], JSON_UNESCAPED_UNICODE));
+ }
+ }
+ }
+ }
+
foreach ($arr as $key => $property) {
if (!in_array($key, Products1c::PRODUCT1C_FIELDS)) {
if (empty($property)) continue;