2020-07-22 15:11:27 +03:00
|
|
|
<?php
|
2020-09-28 13:02:03 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Class RetailCrmService
|
|
|
|
*/
|
2020-07-22 15:11:27 +03:00
|
|
|
class RetailCrmService
|
|
|
|
{
|
2020-09-28 13:02:03 +03:00
|
|
|
/**
|
|
|
|
* @param $order
|
|
|
|
*
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
public static function unsetIntegrationDeliveryFields(array $order): array
|
2020-07-22 15:11:27 +03:00
|
|
|
{
|
2021-11-16 10:48:26 +03:00
|
|
|
$integrationDelivery = RetailcrmConfigProvider::getCrmIntegrationDelivery();
|
2020-09-28 13:02:03 +03:00
|
|
|
if (isset($order['delivery']['code'])) {
|
|
|
|
$deliveryCode = $order['delivery']['code'];
|
2021-04-19 15:38:09 +03:00
|
|
|
|
2020-09-28 13:02:03 +03:00
|
|
|
if (!empty($integrationDelivery[$deliveryCode])
|
|
|
|
&& $integrationDelivery[$deliveryCode] !== 'sdek'
|
|
|
|
&& $integrationDelivery[$deliveryCode] !== 'dpd'
|
|
|
|
&& $integrationDelivery[$deliveryCode] !== 'newpost'
|
|
|
|
) {
|
|
|
|
unset($order['weight']);
|
|
|
|
unset($order['firstName']);
|
|
|
|
unset($order['lastName']);
|
|
|
|
unset($order['phone']);
|
|
|
|
unset($order['delivery']['cost']);
|
|
|
|
unset($order['paymentType']);
|
|
|
|
unset($order['shipmentStore']);
|
|
|
|
unset($order['delivery']['address']);
|
|
|
|
unset($order['delivery']['data']);
|
|
|
|
}
|
2021-04-19 15:38:09 +03:00
|
|
|
|
2020-07-22 15:11:27 +03:00
|
|
|
switch ($integrationDelivery[$deliveryCode]) {
|
|
|
|
case "sdek":
|
2020-09-28 13:02:03 +03:00
|
|
|
unset($order['weight']);
|
2020-07-22 15:11:27 +03:00
|
|
|
unset($order['length']);
|
|
|
|
unset($order['width']);
|
2020-09-28 13:02:03 +03:00
|
|
|
unset($order['height']);
|
|
|
|
unset($order['phone']);
|
|
|
|
unset($order['delivery']['cost']);
|
|
|
|
unset($order['paymentType']);
|
|
|
|
unset($order['shipmentStore']);
|
|
|
|
unset($order['number']);
|
|
|
|
unset($order['delivery']['address']);
|
|
|
|
unset($order['delivery']['data']);
|
2020-07-22 15:11:27 +03:00
|
|
|
break;
|
|
|
|
case "dpd":
|
2020-09-28 13:02:03 +03:00
|
|
|
unset($order['weight']);
|
2020-07-22 15:11:27 +03:00
|
|
|
unset($order['manager']);
|
2020-09-28 13:02:03 +03:00
|
|
|
unset($order['phone']);
|
2020-07-22 15:11:27 +03:00
|
|
|
unset($order['firstName']);
|
|
|
|
unset($order['lastName']);
|
2020-09-28 13:02:03 +03:00
|
|
|
unset($order['delivery']['cost']);
|
|
|
|
unset($order['paymentType']);
|
|
|
|
unset($order['shipmentStore']);
|
|
|
|
unset($order['delivery']['address']);
|
|
|
|
unset($order['delivery']['data']);
|
2020-07-22 15:11:27 +03:00
|
|
|
break;
|
|
|
|
case "newpost":
|
2020-09-28 13:02:03 +03:00
|
|
|
unset($order['weight']);
|
2020-07-22 15:11:27 +03:00
|
|
|
unset($order['customer']);
|
2020-09-28 13:02:03 +03:00
|
|
|
unset($order['phone']);
|
|
|
|
unset($order['shipmentStore']);
|
|
|
|
unset($order['paymentType']);
|
|
|
|
unset($order['delivery']['cost']);
|
|
|
|
unset($order['delivery']['address']);
|
|
|
|
unset($order['delivery']['data']);
|
2020-07-22 15:11:27 +03:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
2021-04-19 15:38:09 +03:00
|
|
|
|
2020-07-22 15:11:27 +03:00
|
|
|
return $order;
|
|
|
|
}
|
2021-04-19 15:38:09 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @param array $data
|
|
|
|
*
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
public static function selectIntegrationDeliveries(array $data): array
|
|
|
|
{
|
|
|
|
$result = [];
|
|
|
|
|
|
|
|
foreach ($data as $elem) {
|
|
|
|
if (!empty($elem['integrationCode'])) {
|
|
|
|
$result[$elem['code']] = $elem['integrationCode'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param array $data
|
|
|
|
*
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
public static function selectIntegrationPayments(array $data): array
|
|
|
|
{
|
|
|
|
$result = [];
|
|
|
|
|
|
|
|
foreach ($data as $elem) {
|
|
|
|
if (!empty($elem['integrationModule'])) {
|
|
|
|
$result[] = $elem['code'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return $result;
|
|
|
|
}
|
2021-09-08 13:00:50 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @param int|null $paySystemId
|
|
|
|
*
|
|
|
|
* @return bool
|
|
|
|
*/
|
|
|
|
public static function isIntegrationPayment(?int $paySystemId): bool {
|
|
|
|
return in_array(
|
|
|
|
RetailcrmConfigProvider::getPaymentTypes()[$paySystemId] ?? null,
|
|
|
|
RetailcrmConfigProvider::getIntegrationPaymentTypes(),
|
|
|
|
true
|
|
|
|
);
|
|
|
|
}
|
2020-07-22 15:11:27 +03:00
|
|
|
}
|