Обновлен перенос клиента из группы в группу
Обновлен метод восстановления смены
Добавлен метод загрузки меню 1с из облака
This commit is contained in:
miroman-afk
2022-07-25 23:26:44 +03:00
parent 9c3b633098
commit 1af2b267f5
14 changed files with 1848 additions and 309 deletions

View File

@@ -15,6 +15,7 @@ use App\Component\Models\Shifts;
use App\Component\Models\TerminalUpdate;
use App\Console\Commands\HRCCommand;
use App\Console\Commands\HRCCommandInterface;
use Illuminate\Support\Facades\Log;
class POSTRestoreShift extends HRCCommand implements HRCCommandInterface {
protected $signature = 'postrestoreshift';
@@ -37,45 +38,65 @@ class POSTRestoreShift extends HRCCommand implements HRCCommandInterface {
}
$shift_id = $input['shift_id'];
$cache_dir = __DIR__ . "\\..\\..\\..\\Cache\\";
dirDel($cache_dir);
$nowTime = time();
$update = true;
$alph = [
"А",
"Б",
"В",
"Г",
"Д",
"Е",
"Ё",
"Ж",
"З",
"И",
"Й",
"К",
"Л",
"М",
"Н",
"О",
"П",
"Р",
"С",
"Т",
"У",
"Ф",
"Х",
"Ц",
"Ч",
"Ш",
"Щ",
"Ъ",
"Ы",
"Ь",
"Э",
"Ю",
"Я",
];
function decode_text($data) {
$alph = [
"А", "Б", "В", "Г", "Д",
"Е", "Ё", "Ж", "З", "И",
"Й", "К", "Л", "М", "Н",
"О", "П", "Р", "С", "Т",
"У", "Ф", "Х", "Ц", "Ч",
"Ш", "Щ", "Ъ", "Ы", "Ь",
"Э", "Ю", "Я",
"а", "б", "в", "г", "д",
"е", "ё", "ж", "з", "и",
"й", "к", "л", "м", "н",
"о", "п", "р", "с", "т",
"у", "ф", "х", "ц", "ч",
"ш", "щ", "ъ", "ы", "ь",
"э", "ю", "я",
];
foreach ($alph as $key => $letter) {
$haystack = mb_convert_encoding($data, "CP1251", "UTF-8");
$needle = $letter;
$pos = strripos($haystack, $needle);
if ($pos === false) {
$after_conv = false;
} else {
$after_conv = true;
break;
}
}
if (!$after_conv) {
foreach ($alph as $key => $letter) {
$haystack = $data;
$needle = $letter;
$pos = strripos($haystack, $needle);
if ($pos === false) {
$before_conv = false;
} else {
$before_conv = true;
break;
}
}
}
if ($after_conv) {
$retval = mb_convert_encoding($data, "CP1251", "UTF-8");
} elseif ($before_conv) {
$retval = $data;
} else {
$retval = $data;
}
return $retval;
}
$exchange_shifts = ExchangeShifts::where('id', '=', $shift_id)->first();
$exchange_orders = ExchangeOrders::where('shift_id', '=', $shift_id)->get();
$exchange_items = ExchangeItems::where('shift_id', '=', $shift_id)->get();
@@ -109,6 +130,7 @@ class POSTRestoreShift extends HRCCommand implements HRCCommandInterface {
//clear shift_online_orders
ShiftOnlineOrders::truncate();
Log::debug('ShiftOnlineOrders cleaned');
foreach ($exchange_orders as $key => $exchange_order) {
$shift_online_order = new ShiftOnlineOrders;
$shift_online_order->cash = $exchange_order["cash"];
@@ -141,45 +163,8 @@ class POSTRestoreShift extends HRCCommand implements HRCCommandInterface {
$shift_online_order->opened = $exchange_order["opened"];
$shift_online_order->order_sum = $exchange_order["order_sum"];
$shift_online_order->params_code = $exchange_order["params_id"];
$place_name_bd = $exchange_order["place_name"];
$place_name_d = mb_convert_encoding($place_name_bd, "CP1251", "UTF-8");
foreach ($alph as $key => $letter) {
$haystack = $place_name_d;
$needle = $letter;
$pos = strripos($haystack, $needle);
if ($pos === false) {
$after_conv = false;
} else {
$after_conv = true;
break;
}
}
if (!$after_conv) {
foreach ($alph as $key => $letter) {
$haystack = $place_name_bd;
$needle = $letter;
$pos = strripos($haystack, $needle);
if ($pos === false) {
$before_conv = false;
} else {
$before_conv = true;
break;
}
}
}
if ($after_conv) {
$place_name_decoded = $place_name_d;
} elseif ($before_conv) {
$place_name_decoded = $place_name_bd;
} else {
$place_name_decoded = $place_name_bd;
}
$shift_online_order->place_name = $place_name_decoded;
$shift_online_order->place_name = mb_convert_encoding(decode_text($exchange_order["place_name"]), 'UTF-8', 'UTF-8');
log::debug(decode_text($exchange_order["place_name"]));
$shift_online_order->presale = $exchange_order["presale"];
$shift_online_order->sale_sum = $exchange_order["sale_sum"];
$shift_online_order->self = $exchange_order["self"];
@@ -193,6 +178,7 @@ class POSTRestoreShift extends HRCCommand implements HRCCommandInterface {
}
ShiftOnlineItems::truncate();
Log::debug('ShiftOnlineItems cleaned');
foreach ($exchange_items as $key => $exchange_item) {
$shift_online_item = new ShiftOnlineItems;
$shift_online_item->code = $exchange_item["code"];
@@ -218,6 +204,7 @@ class POSTRestoreShift extends HRCCommand implements HRCCommandInterface {
}
ShiftOnlineActions::truncate();
Log::debug('ShiftOnlineActions cleaned');
foreach ($exchange_actions as $key => $exchange_action) {
$shift_online_action = new ShiftOnlineActions;
$shift_online_action->type_action = $exchange_action["action_type"];
@@ -235,6 +222,7 @@ class POSTRestoreShift extends HRCCommand implements HRCCommandInterface {
}
ShiftOnlineDeleted::truncate();
Log::debug('ShiftOnlineDeleted cleaned');
foreach ($exchange_deleted as $key => $exchange_deleted_item) {
$shift_online_deleted_item = new ShiftOnlineDeleted;
$shift_online_deleted_item->code = $exchange_deleted_item["code"];
@@ -253,6 +241,7 @@ class POSTRestoreShift extends HRCCommand implements HRCCommandInterface {
$exc_time = time();
$diff_time = $exc_time - $nowTime;
$terminal_online = TerminalUpdate::where('method', 'online')->where('terminal_id', $exchange_shifts['terminal_id'])->first();
dirDel($cache_dir);
return [
'status' => 'success',
'message' => 'Данные автоматически синхронизируются с POS-системой ' . $terminal_online['next_at'],