<?php
/**
 * Template to display a View of create Eods.
 *
 * @package voidempo
 */
if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

?>

<?php
if ( ! is_user_logged_in() ) {
	wp_safe_redirect( wp_login_url() );
	exit;
}
$voidempo_user_id = get_current_user_id();
check_ajax_referer( 'voidempo_dashboard_nonce', 'security' );

$voidempo_cache_key       = 'voidempo_my_projects_' . $voidempo_user_id;
$voidempo_my_projectsdata = wp_cache_get( $voidempo_cache_key, 'voidempo_projects' );

if ( false === $voidempo_my_projectsdata ) {
	// phpcs:ignore WordPress.DB.DirectDatabaseQuery.NoCaching -- Caching is applied above
	$voidempo_my_projectsdata = $wpdb->get_results(
		$wpdb->prepare(
			"
        SELECT * FROM {$wpdb->prefix}voidempo_task 
        WHERE (
            FIND_IN_SET(%s, user_id) OR FIND_IN_SET(%s, manager_id)
        ) 
        AND is_delete = '0' 
        AND status = 'Inprogress'
        ORDER BY project_id
        ",
			$voidempo_user_id,
			$voidempo_user_id
		)
	);

	wp_cache_set( $voidempo_cache_key, $voidempo_my_projectsdata, 'voidempo_projects', 600 );
}

$voidempo_all_eodsproj         = array();
$voidempo_isanymanagerexist    = 0;
$voidempo_projectsonlyhavetask = array();
foreach ( $voidempo_my_projectsdata as $voidempo_data ) {
	$voidempo_members_ids      = explode( ',', $voidempo_data->user_id );
	$voidempo_members_status   = explode( ',', $voidempo_data->members_status );
	$voidempo_members_idstatus = array_combine( $voidempo_members_ids, $voidempo_members_status );
	$voidempo_project_id       = isset( $voidempo_data->project_id ) ? absint( $voidempo_data->project_id ) : 0;
	$voidempo_current_user_id  = absint( get_current_user_id() );
	$voidempo_is_manager       = voidempo_fn_check_is_manager_( $voidempo_project_id , $voidempo_current_user_id );

	if ( 'is_manager' === $voidempo_is_manager ) {
		$voidempo_isanymanagerexist += 1;
	}

	$voidempo_data->is_manager = $voidempo_is_manager;

	if ( 'Completed' !== $member_status || ( 'is_manager' === $voidempo_is_manager && 'Completed' !== $voidempo_whole_task_status ) ) {
		$voidempo_all_eodsproj[ $voidempo_project_id ][] = $voidempo_data;
	}

	$voidempo_projectsonlyhavetask[ $voidempo_project_id ] = $voidempo_project_id;
}

?>
<div class="row d-flex justify-content-end border-bottom p-2" style="background-color: #f3f3f3; border-radius: 0px 0px 10px 10px; width:100%; margin-left:0%;
box-shadow: 0 10px 12px rgb(0 0 0 / 20%);">
<?php
	$voidempo_classdiv = 'col-md-12';
if ( $voidempo_isanymanagerexist > 0 ) {
	$voidempo_classdiv = 'col-md-6';
	?>
	<div class="<?php echo esc_attr( $voidempo_classdiv ); ?>">
		<div class="form-group">
			<label><strong>Task filter</strong></label>
			<select class="form-control" id="myprojtaskwisefilter" style="max-width: unset;">
				<option value="0">Show all</option>
				<option value="1">Show my tasks</option>
				<option value="2">Show completed tasks by members</option>
			</select>
		</div>
	</div>
	<?php } ?>
	<div class="<?php echo esc_attr( $voidempo_classdiv ); ?>">
		<div class="form-group">
			<label><i class="fas fa-tasks" style="color: #FF5733;"> &nbsp;</i><b>Project filter</b></label>
			<select class="form-control" id="myprojfiltersel" style="max-width: unset;">
				<option value="0">Show all</option>
				<?php
				foreach ( $voidempo_projectsonlyhavetask as $voidempo_pid ) {
					$voidempo_ptitle = get_post( $voidempo_pid )->post_title;
					?>
					<option value="<?php echo esc_attr( $voidempo_pid ); ?>"><?php echo esc_attr( $voidempo_ptitle ); ?></option>
					<?php } ?>
				</select>
			</div>
		</div>
	</div>
	
	<div class="" style="margin-top: 40px;">
		<?php
		if ( ! empty( $voidempo_my_projectsdata ) ) {
			$voidempo_i        = 1;
			$voidempo_proj_cnt = array();
			foreach ( $voidempo_all_eodsproj as $voidempo_key => $voidempo_my_projects ) {
				$voidempo_is_manager = $voidempo_my_projects[0]->is_manager;
				?>
				<div class="main_project_div main_project_div<?php echo esc_attr( get_post( $voidempo_key )->ID ); ?>"style="background: #f3f3f3; border-radius: 10px;box-shadow: 0 6px 12px rgb(0 0 0 / 29%); padding:12px;margin-bottom: 15px;" 
				data-projectid="<?php echo esc_attr( get_post( $voidempo_key )->ID ); ?>">
				<div class="d-flex justify-content-center mt-3">
					<h5><strong><u><?php echo esc_attr( get_post( $voidempo_key )->post_title ); ?></u></strong></h5></div>
					<div class="row" style="align-items: flex-end;margin:0px 10px;">
						<div class="col-md-3">
							<label for=""><strong>Task Title</strong></label>
						</div><div class="col-md-2">
							<label for=""><strong>Task Description</strong></label>
						</div>
						<div class="col-md-1">
							<label for=""><strong>Hours</strong></label>
						</div>
						<?php
						$voidempo_note_div = 'col-md-3';
						if ( 'is_manager' === $voidempo_is_manager ) {
							$voidempo_note_div = 'col-md-2';
						}
						?>
						<div class="<?php echo esc_attr( $voidempo_note_div ); ?>">
							<label for=""><strong>Notes</strong></label>
						</div>
						<div class="col-md-1">
							<label for=""><strong>Estimated Hours</strong></label>
						</div>
						<div class="col-md-1">
							<label for=""><strong>Actual Hours</strong></label>
						</div>
						<div class="col-md-1">
							<label for=""><strong>Mark as Complete</strong></label>
						</div>
						<?php
						if ( 'is_manager' === $voidempo_is_manager ) {
							?>
						<div class="col-md-1">
							<label for=""><strong>Reopen</strong></label>
						</div>
						<?php } ?>
					</div> 
					<?php
					foreach ( $voidempo_my_projects as $voidempo_myproject ) {
						$voidempo_members        = explode( ',', $voidempo_myproject->user_id );
						$voidempo_is_taskmembers= 'no';
						$voidempo_current_user_id = get_current_user_id();
						if ( in_array( $voidempo_current_user_id, $voidempo_members ) ) {
							$voidempo_is_taskmembers= 'yes';
						}
						$voidempo_project_id_select = $voidempo_myproject->project_id;
						$voidempo_whole_task_status = $voidempo_myproject->status;
						$voidempo_date_wise         = gmdate( 'Y-m-d' );
						if ( ! empty( sanitize_text_field( wp_unslash( $_POST['date'] ) ) ) ) {
							$voidempo_date_wise = gmdate( 'Y-m-d', strtotime( sanitize_text_field( wp_unslash( $_POST['date'] ) ) ) );
						}
						$voidempo_task_id       = $voidempo_myproject->id;
						$voidempo_project_title = get_post( $voidempo_project_id_select )->post_title;
						$voidempo_proj_cnt[]    = 1;

						$voidempo_cache_key            = 'voidempo_eod_' . $voidempo_project_id_select . '_' . $voidempo_task_id . '_' . $voidempo_current_user_id . '_' . $voidempo_date_wise;
						$voidempo_get_current_date_eod = wp_cache_get( $voidempo_cache_key, 'voidempo_projects' );

						if ( false === $voidempo_get_current_date_eod ) {
							// phpcs:ignore WordPress.DB.DirectDatabaseQuery.NoCaching -- Caching is applied above
							$voidempo_get_current_date_eod = $wpdb->get_results(
								$wpdb->prepare(
									"
									SELECT * FROM {$wpdb->prefix}voidempo_eod 
									WHERE project_id = %d 
									AND task_id = %d 
									AND user_id = %d 
									AND date_created = %s 
									AND is_delete != '1'
									",
									$voidempo_project_id_select,
									$voidempo_task_id,
									$voidempo_current_user_id,
									$voidempo_date_wise
								)
							);

							wp_cache_set( $voidempo_cache_key, $voidempo_get_current_date_eod, 'voidempo_projects', 600 );
						}

						$voidempo_is_currenteod_disabled     = '';
						$voidempo_current_eod_disabled_color = '';
						if ( count( $voidempo_get_current_date_eod ) > 0 ) {
							$voidempo_is_currenteod_disabled     = 'disabled="disabled"';
							$voidempo_current_eod_disabled_color = '#ccc';
						}
						?>
					<div class="mb-4 mt-4"></div>
					<div class="border mt-2 mb-2 p-3 addeodtaskdiv" data-projectid="<?php echo esc_attr( $voidempo_project_id_select ); ?>" data-task_id="<?php echo esc_attr( $voidempo_task_id ); ?>" data-istaskmember="<?php echo esc_attr( $voidempo_is_taskmembers); ?>" style="background-color:<?php echo esc_attr( $voidempo_current_eod_disabled_color ); ?>;position:relative;">
						<?php
						global $wpdb;
						// phpcs:ignore WordPress.DB.DirectDatabaseQuery.NoCaching -- Caching is applied above
						$voidempo_actual_hours = $wpdb->get_results(
							$wpdb->prepare(
								"
							SELECT hours 
							FROM {$wpdb->prefix}voidempo_eod 
							WHERE project_id = %d 
							AND task_id = %d 
							AND is_delete != '1'
							",
								$voidempo_project_id_select,
								$voidempo_task_id
							)
						);

						$voidempo_total = 0;
						foreach ( $voidempo_actual_hours as $voidempo_element ) {
							$voidempo_temp   = explode( ':', $voidempo_element->hours );
							$voidempo_total += (int) $voidempo_temp[0] * 3600;
							$voidempo_total += (int) $voidempo_temp[1] * 60;
							$voidempo_total += (int) $voidempo_temp[2];
						}
						$voidempo_actual_hours = sprintf( '%02d:%02d', ( $voidempo_total / 3600 ), ( $voidempo_total / 60 % 60 ) );

						$voidempo_estimated_hours = $voidempo_myproject->estimated_hours;
						$voidempo_words           = explode( ' ', $voidempo_myproject->task_description );

						if ( strlen( $voidempo_words[0] ) > 30 ) {
							$voidempo_cutoff = substr( $voidempo_words[0], 0, 30 );
						} else {
							$voidempo_cutoff = array_shift( $voidempo_words );
							while ( strlen( $voidempo_cutoff . ' ' . $voidempo_words[0] ) <= 30 ) {
								$voidempo_cutoff .= ' ' . array_shift( $voidempo_words );
							}
						}
						if ( strlen( trim( $voidempo_myproject->task_description ) ) >= 30 ) {
							$voidempo_cutoff = $voidempo_cutoff . '...';
						}
						?>
						<div class="row">
							<div class="col-md-3">
								<div class="form-group" style="text-align: left; padding: 0px 6px;">
									<div class=""><?php echo esc_html( $voidempo_myproject->task_title ); ?></div>
									<input name="voidempo_eod_task[<?php echo esc_attr( $voidempo_project_id_select ); ?>][<?php echo esc_attr( $voidempo_myproject->id ); ?>][eod_title]" 
									type="hidden" class="form-control" readonlyvalue="<?php echo esc_attr( $voidempo_myproject->task_title ); ?>"/>
								</div>
							</div>
							<div class="col-md-2 trrepdesc" data-id="<?php echo esc_attr( $voidempo_task_id ); ?>">
								<div class="divshortdes<?php echo esc_attr( $voidempo_task_id ); ?>"><?php echo esc_html( $voidempo_cutoff ); ?></div>
								<div class="divlongdes<?php echo esc_attr( $voidempo_task_id ); ?>" style="display: none;">
									<?php echo esc_html( $voidempo_myproject->task_description ); ?>
								</div>
							</div>

							<div class="col-md-1">
								<div class="form-group">
									<?php
									$voidempo_rand = wp_rand();
									?>
									<input placeholder="00:00" type="text" class="form-control voidempo_eod_hours_all" <?php echo esc_attr( $voidempo_is_currenteod_disabled ); ?> name="voidempo_eod_hours[<?php echo esc_attr( $voidempo_project_id_select ); ?>][<?php echo esc_attr( $voidempo_myproject->id ); ?>][eod_hours]" data-rand="<?php echo esc_attr( $voidempo_rand ); ?>" />
									<small style="color:red;font-size: 9px;" class="invalidhrformat<?php echo esc_attr( $voidempo_rand ); ?>"style="padding: 6px 6px !important;"></small>
								</div>
							</div>
							<?php
							$voidempo_note_div = 'col-md-3';
							if ( 'is_manager' === $voidempo_is_manager ) {
									$voidempo_note_div = 'col-md-2';
							}
							?>
							<div class="<?php echo esc_attr( $voidempo_note_div ); ?>">
								<div class="form-group">
									<textarea class="form-control" rows="1" <?php echo esc_attr( $voidempo_is_currenteod_disabled ); ?> id="voidempo_task_note" class="voidempo_task_note" name="voidempo_task_note[<?php echo esc_attr( $voidempo_project_id_select ); ?>][<?php echo esc_attr( $voidempo_myproject->id ); ?>][eod_notes]"></textarea>
								</div>
							</div>
							<div class="col-md-1">
								<div class="form-group">
									<input readonly name="" type="text" class="form-control eod_estimated_hours" readonly value="<?php echo esc_attr( $voidempo_estimated_hours ); ?>"/>
								</div>
							</div>
							<div class="col-md-1">
								<div class="form-group">
									<input readonly name="" type="text" class="form-control eod_actual_hours" readonly value="<?php echo esc_attr( $voidempo_actual_hours ); ?>"/>
								</div>
							</div>
						
							<div class="col-md-1">
								<div class="form-group">
									<input 
									type="checkbox" 
									name="voidempo_task_mac[<?php echo esc_attr( $voidempo_project_id_select ); ?>][<?php echo esc_attr( $voidempo_myproject->id ); ?>][mark_as_complete]" 
									class="mark-as-complete"
									value="on"
									<?php echo ( 'Completed' === $voidempo_myproject->status || ! empty( $voidempo_myproject->complete_date ) ) ? 'checked' : ''; ?>
									<?php echo esc_attr( $voidempo_is_currenteod_disabled ); ?>
									style="background-color: <?php echo esc_attr( $voidempo_current_eod_disabled_color ); ?>;"> 
								</div>
							</div>
							<?php if ( 'is_manager' === $voidempo_is_manager ) { ?>
							<div class="col-md-1">
								<div class="form-group">
									<input <?php echo esc_attr( $voidempo_is_currenteod_disabled ); ?> type="checkbox"  rows="2" id="voidempo_task_mac" name="voidempo_taskreopen[<?php echo esc_attr( $voidempo_project_id_select ); ?>][<?php echo esc_attr( $voidempo_myproject->id ); ?>][task_reopen]">
								</div>
							</div>
							<?php } ?>
						</div>
						<?php
						if ( 'is_manager' === $voidempo_is_manager ) {
							?>
							<div class="">
								<?php
								$voidempo_user_id        = explode( ',', $voidempo_myproject->user_id );
								$voidempo_members_status = explode( ',', $voidempo_myproject->members_status );
								$voidempo_combine_status = array_combine( $voidempo_user_id, $voidempo_members_status );
								foreach ( $voidempo_combine_status as $voidempo_ids => $status ) {
									$voidempo_nm         = voidempo_user_by_id_( $voidempo_ids );
									$voidempo_cache_key  = 'voidempo_eod_last_' . $voidempo_project_id_select . '_' . $voidempo_task_id . '_' . $voidempo_ids;
									$voidempo_getlasteod = wp_cache_get( $voidempo_cache_key, 'voidempo_projects' );

									if ( false === $voidempo_getlasteod ) {
										// phpcs:ignore WordPress.DB.DirectDatabaseQuery.NoCaching -- Caching is applied above
										$voidempo_getlasteod = $wpdb->get_results(
											$wpdb->prepare(
												"
										SELECT * FROM {$wpdb->prefix}voidempo_eod 
										WHERE project_id = %d 
										AND task_id = %d 
										AND user_id = %d 
										AND status = %s 
										ORDER BY id 
										LIMIT 1
										",
												$voidempo_project_id_select,
												$voidempo_task_id,
												$voidempo_ids,
												'Completed'
											)
										);

										wp_cache_set( $voidempo_cache_key, $voidempo_getlasteod, 'voidempo_projects', 600 );
									}

									$voidempo_on_click = 'readonly onclick="return false"';
									$voidempo_current_user_id = absint( get_current_user_id() );
									if ( $voidempo_current_user_id !== $voidempo_ids ) {
										?>
											<label for=""  class="task_status_eod">
												<strong>
													<?php echo esc_html( $voidempo_nm ); ?> task status 
													<?php
													if ( 'Completed' === $status && ! empty( $voidempo_getlasteod[0]->date_created ) ) {
														echo ' (' . esc_html( $voidempo_getlasteod[0]->date_created ) . ') ';
													}
													?>
												</strong>
													<input <?php echo esc_attr( $voidempo_is_currenteod_disabled ); ?> type="checkbox" <?php echo esc_attr( $voidempo_on_click ); ?> class=" voidempo_task_mac_members" rows="2" 
													<?php
													if ( 'Completed' === $status ) {
														echo 'checked';}
													?>
													id="voidempo_task_mac_members" name="voidempo_task_mac_members[<?php echo esc_attr( $voidempo_project_id_select ); ?>][<?php echo esc_attr( $voidempo_myproject->id ); ?>][mark_as_complete][<?php echo esc_attr( $voidempo_ids ); ?>]">
											</label>
										<?php
									}
								}
								?>
							</div>
						<?php } ?>
					</div>
						<?php
						++$voidempo_i;
					}
					?>
			</div>
				<?php
			}

			if ( count( $voidempo_proj_cnt ) === 0 ) {
				?>
		<div class="alert alert-danger">
			No task added yet or task not approved please contact manager for task apporval
		</div>
				<?php
			}
		} else {
			?>
	<div class="alert alert-danger">
		No task added yet or task not approved please contact manager for task apporval
	</div>
			<?php
		}
		?>
</div>
<?php
if ( ! empty( $voidempo_proj_cnt ) ) {
	if ( count( $voidempo_proj_cnt ) > 0 ) {
		?>
	<div id="eod_status"></div> 
	<button type="submit" name="voidempo_eod_submit_but" id="submit_eod" class="btn btn-primary voidempo_eod_submit_but">Submit EOD</button>
		<?php
	}
}
?>
</div>
</form>

