Files
admin-php-module/commands/POSTPrinters.php
miroman-afk d24bba305f v.2.24
1. POSTBonus in/out
2. POSTPresale in/out
3. Переработана форма гостя
2022-12-14 12:42:39 +03:00

71 lines
4.0 KiB
PHP

<?php
namespace App\Commands;
use App\Component\Models\Printer;
use App\Component\Models\PrinterSettings;
use App\Component\Models\Tasks;
use App\Component\Models\Terminal;
use App\Console\Commands\HRCCommand;
use App\Console\Commands\HRCCommandInterface;
class POSTPrinters extends HRCCommand implements HRCCommandInterface {
protected $signature = 'postprinters';
public function command($input, $output = null) {
$terminals = Terminal::select('id', 'work_code', 'work_group')->where('key', '=', $input['terminal'])->get();
foreach ($terminals as $terminal) {
$terminal_data = array('id' => $terminal['id'], 'work_code' => $terminal['work_code'], 'work_group' => $terminal['work_group']);
}
$first_printer_data = PrinterSettings::where('id', '=', $input['id'])->get();
foreach ($first_printer_data as $old_printer_data) {
}
$printer_name = Printer::where('code', '=', $input['group'])->get();
foreach ($printer_name as $group_name) {
}
if ($input['group'] == 0) {
$group_name['name'] = $input['name'];
}
if ($input['type'] == 'COM') {
$task[] = "UPDATE main.printers SET `name`='" . urldecode($group_name['name']) . "', `IP`=NULL, `port`=NULL, `COMport`='" . $input['com_port'] . "', `type`='" . $input['type'] . "', `size`=" . $input['size'] . ", `speed`=" . $input['speed'] . ", `driver`=NULL, `workcode`=" . $terminal_data['work_code'] . ", `workgroup`=" . $terminal_data['work_group'] . ",`printer_group`=" . $input['group'] . ", `template`='" . $input['template'] . "', `more`='" . urldecode($input['more']) . "' WHERE `name`='" . $old_printer_data['name'] . "' AND `workcode`=" . $terminal_data['work_code'] . " AND `workgroup`=" . $terminal_data['work_group'] . ";";
$task = base64_encode(json_encode(array('queries' => $task), TRUE));
$add_task = new Tasks;
$add_task->terminal_id = $terminal_data['id'];
$add_task->next_at = date("Y-m-d H:i:s");
$add_task->method = 'runquery';
$add_task->period = 0;
$add_task->is_cycle = 0;
$add_task->more = $task;
$add_task->save();
}
if ($input['type'] == 'LAN') {
$task[] = "UPDATE main.printers SET `name`='" . urldecode($group_name['name']) . "', `IP`='" . $input['ip_address'] . "', `port`=9100, `COMport`=NULL, `type`='" . $input['type'] . "', `size`=" . $input['size'] . ", `speed`=NULL, `driver`=NULL, `workcode`=" . $terminal_data['work_code'] . ", `workgroup`=" . $terminal_data['work_group'] . ",`printer_group`=" . $input['group'] . ", `template`='" . $input['template'] . "', `more`='" . urldecode($input['more']) . "' WHERE `name`='" . $old_printer_data['name'] . "' AND `workcode`=" . $terminal_data['work_code'] . " AND `workgroup`=" . $terminal_data['work_group'] . ";";
$task = base64_encode(json_encode(array('queries' => $task)));
$add_task = new Tasks;
$add_task->terminal_id = $terminal_data['id'];
$add_task->next_at = date("Y-m-d H:i:s");
$add_task->method = 'runquery';
$add_task->period = 0;
$add_task->is_cycle = 0;
$add_task->more = $task;
$add_task->save();
}
if ($input['type'] == 'Windows') {
$task[] = "UPDATE main.printers SET `name`='" . urldecode($group_name['name']) . "', `IP`=NULL, `port`=NULL, `COMport`=NULL, `type`='" . $input['type'] . "', `size`=" . $input['size'] . ", `speed`=NULL, `driver`='" . urldecode($input['driver']) . "', `workcode`=" . $terminal_data['work_code'] . ", `workgroup`=" . $terminal_data['work_group'] . ",`printer_group`=" . $input['group'] . ", `template`='" . $input['template'] . "', `more`='" . urldecode($input['more']) . "' WHERE `name`='" . $old_printer_data['name'] . "' AND `workcode`=" . $terminal_data['work_code'] . " AND `workgroup`=" . $terminal_data['work_group'] . ";";
$task = base64_encode(json_encode(array('queries' => $task)));
$add_task = new Tasks;
$add_task->terminal_id = $terminal_data['id'];
$add_task->next_at = date("Y-m-d H:i:s");
$add_task->method = 'runquery';
$add_task->period = 0;
$add_task->is_cycle = 0;
$add_task->more = $task;
$add_task->save();
}
return [
'status' => 'success',
'input' => $input,
'task' => $task,
];
}
}