Refactor task status handling and update styles for task views; add support for 'faktury' status

This commit is contained in:
2024-12-15 11:11:47 +01:00
parent 65d366cc7d
commit 8c42e65d57
12 changed files with 89 additions and 28 deletions

View File

@@ -197,20 +197,20 @@
"layout": {
"style.css": {
"type": "-",
"size": 17428,
"lmtime": 1733687831935,
"size": 17483,
"lmtime": 1733781023546,
"modified": false
},
"style.css.map": {
"type": "-",
"size": 31290,
"lmtime": 1733687831935,
"size": 31297,
"lmtime": 1733781023546,
"modified": false
},
"style.scss": {
"type": "-",
"size": 21703,
"lmtime": 1733687831811,
"size": 21708,
"lmtime": 1733781023371,
"modified": false
}
},

View File

@@ -87,14 +87,16 @@ class Cron
$days_reminder = explode( ',', $row['reminders_interval'] );
$max_days_reminder = max( $days_reminder );
if ( $row['status'] != 2 ) {
if ( $row['status'] != 2 )
$status = $row['status'];
} else {
$status = 0;
}
else
$status = 5;
$task_users = $mdb -> select( 'task_user', 'user_id', ['task_id' => $row['id']] );
if ( in_array( 6, $task_users ) )
$status = 6;
$new_task_id = \factory\Tasks::task_save(
null, $row['id'], $row['created_by'], $row['name'], $row['text'], $new_date_start, $new_date_end, $row['project_id'], $row['client_id'], $row['pay_rate'], $row['reminders_interval'], $row['recursively'] ? 'on' : 'off', $row['frequency'], $row['period'], $task_users, $row['date_end_month_day'], $row['date_start_month_day'], null, $row['task_change_status'], true, $status
);

View File

@@ -36,37 +36,43 @@ class Tasks
'tasks_new' => \Tpl::view( 'tasks/main_view_by_ajax', [
'tasks' => \factory\Tasks::get_tasks( 0, $user['id'], $projects ),
'user' => $user,
'statuses' => \factory\Tasks::$statuses,
'statuses' => \factory\Tasks::get_statuses(),
'open_task_id' => $open_task_id
] ),
'tasks_to_review' => \Tpl::view( 'tasks/main_view_by_ajax', [
'tasks' => \factory\Tasks::get_tasks( 1, $user['id'], $projects ),
'user' => $user,
'statuses' => \factory\Tasks::$statuses,
'statuses' => \factory\Tasks::get_statuses(),
'open_task_id' => $open_task_id
] ),
'tasks_closed' => \Tpl::view( 'tasks/main_view_by_ajax', [
'tasks' => $show_tasks_closed == 'hide' ? null : \factory\Tasks::get_tasks( 2, $user['id'], $projects ),
'user' => $user,
'statuses' => \factory\Tasks::$statuses,
'statuses' => \factory\Tasks::get_statuses(),
'open_task_id' => $open_task_id
] ),
'tasks_bulk' => \Tpl::view( 'tasks/main_view_by_ajax', [
'tasks' => \factory\Tasks::get_tasks( 3, $user['id'], $projects ),
'user' => $user,
'statuses' => \factory\Tasks::$statuses,
'statuses' => \factory\Tasks::get_statuses(),
'open_task_id' => $open_task_id
] ),
'tasks_suspended' => \Tpl::view( 'tasks/main_view_by_ajax', [
'tasks' => \factory\Tasks::get_tasks( 4, $user['id'], $projects ),
'user' => $user,
'statuses' => \factory\Tasks::$statuses,
'statuses' => \factory\Tasks::get_statuses(),
'open_task_id' => $open_task_id
] ),
'tasks_to_do' => \Tpl::view( 'tasks/main_view_by_ajax', [
'tasks' => \factory\Tasks::get_tasks( 5, $user['id'], $projects ),
'user' => $user,
'statuses' => \factory\Tasks::$statuses,
'statuses' => \factory\Tasks::get_statuses(),
'open_task_id' => $open_task_id
] ),
'tasks_fvat' => \Tpl::view( 'tasks/main_view_by_ajax', [
'tasks' => \factory\Tasks::get_tasks( 6, $user['id'], $projects ),
'user' => $user,
'statuses' => \factory\Tasks::get_statuses(),
'open_task_id' => $open_task_id
] )
] );
@@ -100,8 +106,9 @@ class Tasks
'tasks_bulk' => \factory\Tasks::get_tasks( 3, $user['id'], \S::get_session( 'selected_projects' ) ), // opłaty
'tasks_suspended' => \factory\Tasks::get_tasks( 4, $user['id'], \S::get_session( 'selected_projects' ) ), // projektowe
'tasks_to_do' => \factory\Tasks::get_tasks( 5, $user['id'], \S::get_session( 'selected_projects' ) ), // do zrobienia
'tasks_fvat' => \factory\Tasks::get_tasks( 6, $user['id'], \S::get_session( 'selected_projects' ) ), // faktury
'user' => $user,
'statuses' => \factory\Tasks::$statuses,
'statuses' => \factory\Tasks::get_statuses(),
'open_task_id' => \factory\Tasks::get_open_task_id( $user['id'] ),
'projects' => \factory\Projects::user_projects( $user['id'] ),
'selected_projects' => \S::get_session( 'selected_projects' ),
@@ -223,11 +230,13 @@ class Tasks
{
$task = \factory\Tasks::task_details( $task_id );
$statuses = \factory\Tasks::get_statuses();
if ( $task['status_change_mail'] )
\S::send_email(
'jacek.pyziak@project-pro.pl',
'crmPRO - zmieniono status zadania',
'<p>Witaj<br/>zmieniono status zadania <b>' . $task['name'] . ' - ' . \factory\Crm::get_client_name( (int)$task['client_id'] ) . '</b> na <b>' . \factory\Tasks::$statuses[ $task['status'] ] . '</b>.</p>'
'<p>Witaj<br/>zmieniono status zadania <b>' . $task['name'] . ' - ' . \factory\Crm::get_client_name( (int)$task['client_id'] ) . '</b> na <b>' . $statuses[ $task['status'] ] . '</b>.</p>'
);
}
@@ -337,7 +346,7 @@ class Tasks
echo \Tpl::view( 'tasks/task_popup', [
'task' => \factory\Tasks::task_details( \S::get( 'task_id' ), $user['id'] ),
'user' => $user,
'statuses' => \factory\Tasks::$statuses
'statuses' => \factory\Tasks::get_statuses()
] );
exit;
}

View File

@@ -3,7 +3,17 @@ namespace factory;
class Tasks
{
public static $statuses = [ 0 => 'nowe', 3 => 'do rozliczenia', 5 => 'do zrobienia', 4 => 'zawieszone', 1 => 'do sprawdzenia', 2 => 'zamknięte' ];
public static $statuses = [ 0 => 'nowe', 3 => 'do rozliczenia', 5 => 'do zrobienia', 4 => 'zawieszone', 1 => 'do sprawdzenia', 6 => 'faktury', 2 => 'zamknięte' ];
static public function get_statuses()
{
global $user;
if ( $user['id'] == 1 )
return self::$statuses;
else
return [ 0 => 'nowe', 3 => 'do rozliczenia', 5 => 'do zrobienia', 4 => 'zawieszone', 1 => 'do sprawdzenia' ];
}
static public function clear_task_opened( $task_id )
{

View File

@@ -38,8 +38,24 @@ class Users
public static function users_list()
{
global $mdb;
return $mdb -> select( 'users', '*' );
global $mdb, $user;
$users = $mdb -> select( 'users', '*' );
if ( $user['id'] === 1 )
{
return $users;
}
else
{
$users_list = [];
foreach ( $users as $user )
{
if ( $user['id'] != 6 )
$users_list[] = $user;
}
return $users_list;
}
}
public static function settings_save( $user_id, $pushover_api, $pushover_user )

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -301,7 +301,7 @@ body>.top {
.tasks_container {
display: flex;
flex-wrap: wrap;
gap: 20px;
gap: 5px;
.column {
width: 350px;
@@ -328,6 +328,12 @@ body>.top {
}
}
&.tasks_fvat {
h2 {
border-bottom: 5px solid #f7fc00;
}
}
&.tasks_new {
h2 {
border-bottom: 5px solid #ccc;

View File

@@ -43,6 +43,23 @@
<? endforeach;?>
</ul>
</div>
<? if ( $this -> user['id'] === 1 ):?>
<div class="column tasks_fvat">
<h2>Faktury</h2>
<ul>
<? foreach ( $this -> tasks_fvat as $task ):?>
<?
echo \Tpl::view( 'tasks/task_single', [
'task' => $task,
'user' => $this -> user,
'statuses' => $this -> statuses,
'task_open' => $this -> open_task_id == $task['id'] ? true : false
] );
?>
<? endforeach;?>
</ul>
</div>
<? endif;?>
<!-- tasks_suspended -->
<div class="column tasks_suspended">
<h2>Zadania zawieszone (u klienta)</h2>
@@ -143,6 +160,7 @@
$( '.tasks_container .tasks_bulk ul' ).empty().append( data.tasks_bulk );
$( '.tasks_container .tasks_suspended ul' ).empty().append( data.tasks_suspended );
$( '.tasks_container .tasks_to_do ul' ).empty().append( data.tasks_to_do );
$( '.tasks_container .tasks_fvat ul' ).empty().append( data.tasks_fvat );
}
});
}

View File

@@ -91,7 +91,7 @@ if ( is_array( $this -> clients ) )
'name' => 'status',
'id' => 'status',
'value' => $this -> task[ 'status' ],
'values' => \factory\Tasks::$statuses
'values' => \factory\Tasks::get_statuses()
] );?>
<? if ( $this -> user['id'] == 1 ):?>
<?= \Html::input([

View File

@@ -67,7 +67,7 @@
<h3>Status</h3>
<div class="current_status">
<select name="task_status" class="form-control" task_id="<?= $this -> task['id'];?>">
<? foreach ( \factory\Tasks::$statuses as $key => $status ):?>
<? foreach ( \factory\Tasks::get_statuses() as $key => $status ):?>
<option value="<?= $key;?>" <? if ( $this -> task['status'] == $key ):?>selected="selected"<? endif;?>><?= $status;?></option>
<? endforeach;?>
</select>

View File

@@ -27,7 +27,7 @@
Status:<br><strong><?= $this -> statuses[ $this -> task['status'] ];?></strong>
<div class="status_change">
<select name="task_status" task_id="<?= $this -> task['id'];?>">
<? foreach ( \factory\Tasks::$statuses as $key => $status ):?>
<? foreach ( \factory\Tasks::get_statuses() as $key => $status ):?>
<option value="<?= $key;?>" <? if ( $this -> task['status'] == $key ):?>selected="selected"<? endif;?>><?= $status;?></option>
<? endforeach;?>
</select>