-Fix cp1251 to utf-8 decode
This commit is contained in:
miroman-afk
2022-01-29 02:10:47 +03:00
parent fb3a28e74e
commit de0e951ca1
9 changed files with 112 additions and 9 deletions

View File

@@ -20,6 +20,7 @@ class POSTRestoreShift extends HRCCommand implements HRCCommandInterface {
protected $signature = 'postrestoreshift';
public function command($input, $output = null) {
function dirDel($dir) {
$d = opendir($dir);
while (($entry = readdir($d)) !== false) {
@@ -40,7 +41,41 @@ class POSTRestoreShift extends HRCCommand implements HRCCommandInterface {
$nowTime = time();
$update = true;
$alph = [
"А",
"Б",
"В",
"Г",
"Д",
"Е",
"Ё",
"Ж",
"З",
"И",
"Й",
"К",
"Л",
"М",
"Н",
"О",
"П",
"Р",
"С",
"Т",
"У",
"Ф",
"Х",
"Ц",
"Ч",
"Ш",
"Щ",
"Ъ",
"Ы",
"Ь",
"Э",
"Ю",
"Я",
];
$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();
@@ -106,7 +141,45 @@ 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"];
$shift_online_order->place_name = $exchange_order["place_name"];
$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->presale = $exchange_order["presale"];
$shift_online_order->sale_sum = $exchange_order["sale_sum"];
$shift_online_order->self = $exchange_order["self"];
@@ -176,6 +249,7 @@ class POSTRestoreShift extends HRCCommand implements HRCCommandInterface {
$shift_online_deleted_item->units_id = $exchange_deleted_item["units_id"];
$shift_online_deleted_item->save();
}
$exc_time = time();
$diff_time = $exc_time - $nowTime;
$terminal_online = TerminalUpdate::where('method', 'online')->where('terminal_id', $exchange_shifts['terminal_id'])->first();