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, ]; } }