This commit is contained in:
Jaybe
2025-03-05 14:02:29 +09:00
commit 247a7808d3
357 changed files with 161196 additions and 0 deletions
@@ -0,0 +1,219 @@
<?php
namespace App\Controllers\HumanResource;
use App\Controllers\BaseController;
use App\Models\HumanResource\HumanResourceModel;
use CodeIgniter\API\ResponseTrait;
use App\Libraries\Douzone\Douzone;
use App\Libraries\Douzone\DouzoneModel;
class HumanResourceController extends BaseController
{
use ResponseTrait;
protected $hr;
public function __construct()
{
$this->hr = model(HumanResourceModel::class);
}
public function humanResource()
{
return view('humanResource/humanresource');
}
private function getDayOff()
{ //연차
$douzone = new Douzone();
$list = $douzone->getDayOff();
return $list;
}
public function getMemberList()
{
$lists = $this->hr->getMemberList();
foreach($lists as $row) $data[] = [$row['nickname'],$row['division'],$row['secret']];
foreach ($lists as $row) $data[] = [$row['nickname'], $row['division'], $row['secret']];
dd($data);
return $lists;
}
public function updateUsersByDouzone()
{
$douzone = new Douzone();
$list = $douzone->getMemberList();
$total = count($list);
if (!$total) return null;
if (!$total) return null;
$i = 1;
foreach ($list as $row) {
foreach ($list as $row) {
$result = $this->hr->updateUserByEmail($row);
if ($result) $i++;
if ($result) $i++;
}
if ($result == $i) return true;
if ($result == $i) return true;
return false;
}
}
private function getHourTicketUse()
{
$hourticket = $this->hr->getHourTicketUse();
return $hourticket;
}
public function getTodayDayOff($date = null)
{
$date = $date ? date('Y-m-d', strtotime($date)) : date('Y-m-d');
$list = $this->getDayOff();
$data = [];
foreach ($list as $row) {
if (isset($row['start']) && date('Y-m-d', strtotime($row['start'])) >= $date) {
$data['day'][] = $row;
}
}
$list = $this->getHourTicketUse($date);
foreach ($list as $row) {
if (isset($row['date']) && date('Y-m-d', strtotime($row['date'])) >= $date) {
$data['hour'][] = $row;
}
}
$result = $this->setMessageData($data);
return $result;
}
public function gwData(){
$result = $this->hr->gwData();
return $result;
}
public function getGwData(){
if ($this->request->isAJAX() && strtolower($this->request->getMethod()) === 'post') {
$input = $this->request->getBody();
$data = json_decode($input, true);
$result = $this->hr->getGwData($data);
return json_encode($result);
} else {
return $this->fail("잘못된 요청");
}
}
public function issueProc()
{
if ($this->request->isAJAX() && strtolower($this->request->getMethod()) === 'post') {
$data = $this->request->getRawInput();
$result = $this->hr->issueProc($data);
return json_encode($result);
} else {
return $this->fail("잘못된 요청");
}
}
public function hourTicketConfirm()
{
if ($this->request->isAJAX() && strtolower($this->request->getMethod()) === 'post') {
$input = $this->request->getBody();
$data = json_decode($input, true);
$result = $this->hr->hourTicketConfirm($data);
return json_encode($result);
} else {
return $this->fail("잘못된 요청");
}
}
public function hourTicketReg()
{
if ($this->request->isAJAX() && strtolower($this->request->getMethod()) === 'post') {
$input = $this->request->getBody();
$data = json_decode($input, true);
$result = $this->hr->HourTicketReg($data);
return json_encode($result);
} else {
return $this->fail("잘못된 요청");
}
}
public function getHourTicketAll()
{
if ($this->request->isAJAX() && strtolower($this->request->getMethod()) === 'post') {
$input = $this->request->getBody();
$data = json_decode($input, true);
$result = $this->hr->getHourTicketAll($data);
return json_encode($result);
} else {
return $this->fail("잘못된 요청");
}
}
public function getHourTicketIssue()
{
if ($this->request->isAJAX() && strtolower($this->request->getMethod()) === 'post') {
$input = $this->request->getBody();
$data = json_decode($input, true);
$result = $this->hr->getHourTicketIssue($data);
return json_encode($result);
} else {
return $this->fail("잘못된 요청");
}
}
public function getHourTicketUseNew()
{
if ($this->request->isAJAX() && strtolower($this->request->getMethod()) === 'post') {
$input = $this->request->getBody();
$data = json_decode($input, true);
$result = $this->hr->getHourTicketUseNew($data);
return json_encode($result);
} else {
return $this->fail("잘못된 요청");
}
}
private function setMessageData($lists)
{
$data = [];
foreach ($lists as $type => $list) {
foreach ($list as $row) {
$user = $this->hr->getUserByEmail($row['email']);
if (empty($user)) continue;
$type = isset($row['type']) ? $row['type'] : '시차';
$start = isset($row['start']) ? date('Y-m-d', strtotime($row['start'])) : date('Y-m-d H:m', strtotime($row['date'] . " " . $row['time']));
$end = isset($row['end']) ? date('Y-m-d', strtotime($row['end'])) : date('Y-m-d H:m', strtotime($row['date'] . " " . $row['time'] . " +{$row['hour_ticket']} hours"));
$term = isset($row['used']) ? $row['used'] : $row['hour_ticket'];
$total_remain = isset($row['total']['remain']) ? $row['total']['remain'] : $row['remain'];
$total_used = isset($row['total']['used']) ? $row['total']['used'] : '';
$datetime = isset($row['reg_datetime']) ? $row['reg_datetime'] : $row['rep_dt'];
$data[] = [
'type' => $type,
'name' => $user['nickname'],
'division' => $user['division'],
'team' => $user['team'],
'position' => $user['position'],
'term' => $term,
'total_used' => $total_used,
'total_remain' => $total_remain,
'start' => $start,
'end' => $end,
'datetime' => $datetime
];
}
}
return $data;
}
}