71 lines
4.0 KiB
PHP
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,
|
|
];
|
|
}
|
|
} |