<?php
/* $Id: index.php 6941 2014-10-26 23:18:08Z daintree $*/
error_reporting(E_ALL & ~E_NOTICE);
$PageSecurity=0;
ob_start();
include('includes/session.inc');
$Title=_('ERP Home');
include('includes/newheader.php');

include('includes/SQL_CommonFunctions.inc');
include('includes/GetPaymentMethods.php');
include('includes/GetPrice.inc');
?>

		
  					
	<script src="angular/angular.min.js"></script>  
        
 
     
     
		

   
  
 									
									<?php
//this is where you paste. Below paste it:

// assume DB_query, DB_fetch_array, prnMsg, etc. are already available via your app bootstrap

// Map leave types to their tables
$validTypes = [
  'Annual Leave'      => 'leave_register_annual_leave',
  'Sick Leave'        => 'leave_register_sick_leave',
  'Bereavement Leave' => 'leave_register_bereavement_leave',
  'Maternity Leave'   => 'leave_register_maternity_leave'
];

// Get filter inputs
$type = isset($_GET['type']) && isset($validTypes[$_GET['type']])
      ? $_GET['type'] : '';
$table = $type ? $validTypes[$type] : '';

// Build period options for the selected type
$periodOptions = [];
if ($table) {
    $pQ = DB_query("
      SELECT DISTINCT lr.periodid, cm.period
        FROM {$table} lr
        JOIN calendar_management cm ON lr.periodid=cm.id
       ORDER BY lr.periodid
    ");
    while ($p = DB_fetch_array($pQ)) {
        $periodOptions[] = ['id'=>$p['periodid'],'label'=>$p['period']];
    }
}

// Get period‐range
$from = isset($_GET['from']) ? (int)$_GET['from'] : 0;
$to   = isset($_GET['to'])   ? (int)$_GET['to']   : 0;

// Fetch filtered rows if valid
$rows = [];
if ($table && $from && $to && $from <= $to) {
    $rowsQ = DB_query("
      SELECT lr.periodid,
             cm.period,
             lr.employeeid,
             em.first_name,
             em.last_name,
             lr.opening_balance,
             lr.accruals,
             lr.adjustments,
             lr.balance,
             lr.remarks
        FROM {$table} lr
        JOIN calendar_management cm ON lr.periodid = cm.id
        JOIN employeemaster    em ON lr.employeeid = em.employeeid
       WHERE lr.periodid BETWEEN {$from} AND {$to}
       ORDER BY lr.periodid DESC
    ");
    while ($r = DB_fetch_array($rowsQ)) {
        $rows[] = $r;
    }
}
?>
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Filtered Leave Report</title>
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"/>
  <link href="https://cdn.datatables.net/1.13.4/css/jquery.dataTables.min.css" rel="stylesheet"/>
  <link href="https://cdn.datatables.net/buttons/2.3.6/css/buttons.dataTables.min.css" rel="stylesheet"/>
  <link href="https://cdn.datatables.net/responsive/2.5.0/css/responsive.dataTables.min.css" rel="stylesheet"/>
</head>
<body>
<div class="container my-4">
  <h2>Filtered Leave Report</h2>
  <form method="get" class="row g-3 mb-4">
    <div class="col-md-3">
      <label class="form-label">Type</label>
      <select name="type" id="type" class="form-select" onchange="this.form.submit()">
        <option value="">-- Select Type --</option>
        <?php foreach ($validTypes as $label=>$tbl): ?>
          <option value="<?= $label?>" <?= $label=== $type?'selected':''?>>
            <?= $label?>
          </option>
        <?php endforeach; ?>
      </select>
    </div>
    <div class="col-md-3">
      <label class="form-label">Period ID From</label>
      <select name="from" class="form-select">
        <option value="">Any</option>
        <?php foreach ($periodOptions as $opt): ?>
          <option value="<?= $opt['id']?>" <?= $opt['id']===$from?'selected':''?>>
            #<?= $opt['id']?> – <?= htmlspecialchars($opt['label'])?>
          </option>
        <?php endforeach; ?>
      </select>
    </div>
    <div class="col-md-3">
      <label class="form-label">Period ID To</label>
      <select name="to" class="form-select">
        <option value="">Any</option>
        <?php foreach ($periodOptions as $opt): ?>
          <option value="<?= $opt['id']?>" <?= $opt['id']===$to?'selected':''?>>
            #<?= $opt['id']?> – <?= htmlspecialchars($opt['label'])?>
          </option>
        <?php endforeach; ?>
      </select>
    </div>
    <div class="col-md-3 align-self-end">
      <button type="submit" class="btn btn-primary">Filter</button>
      <a href="FilteredLeaveReport.php" class="btn btn-secondary">Reset</a>
    </div>
  </form>

  <?php if ($table && $from && $to && $from <= $to): ?>
  <div class="table-responsive">
    <table id="filteredTable" class="table table-striped nowrap" style="width:100%">
      <thead>
        <tr>
          <th>PeriodID</th>
          <th>Period</th>
          <th>EmployeeID</th>
          <th>Name</th>
          <th>Opening</th>
          <th>Accruals</th>
          <th>Adjustments</th>
          <th>Balance</th>
          <th>Remarks</th>
        </tr>
      </thead>
      <tbody>
        <?php foreach ($rows as $r): ?>
        <tr>
          <td><?= $r['periodid']?></td>
          <td><?= htmlspecialchars($r['period'])?></td>
          <td><?= htmlspecialchars($r['employeeid'])?></td>
          <td><?= htmlspecialchars($r['first_name'].' '.$r['last_name'])?></td>
          <td><?= $r['opening_balance']?></td>
          <td><?= $r['accruals']?></td>
          <td><?= $r['adjustments']?></td>
          <td><?= $r['balance']?></td>
          <td><?= htmlspecialchars($r['remarks'])?></td>
        </tr>
        <?php endforeach; ?>
      </tbody>
    </table>
  </div>
  <?php endif; ?>
</div>

<!-- JS -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdn.datatables.net/1.13.4/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/responsive/2.5.0/js/dataTables.responsive.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.3.6/js/dataTables.buttons.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.0/jszip.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/vfs_fonts.js"></script>
<script src="https://cdn.datatables.net/buttons/2.3.6/js/buttons.html5.min.js"></script>

<script>
$(document).ready(function(){
  $('#filteredTable').DataTable({
    dom: 'Bfrtip',
    buttons: [
      { extend:'excelHtml5', title: 'Filtered Leave Report' },
      { extend:'pdfHtml5',   title: 'Filtered Leave Report', orientation:'landscape', pageSize:'A4' }
    ],
    responsive: true,
    pageLength: 10
  });
});
</script>
</body>
</html>







	<?php		  
 	echo '</div >';
	?>
						

		
					</div>
				</div>
			</div>
					
					

						<!--end:: Widgets/Stats-->

						<!--Begin::Section-->
						

		<!-- end::Quick Sidebar -->

		<!-- begin::Scroll Top -->
		<div id="m_scroll_top" class="m-scroll-top">
			<i class="la la-arrow-up"></i>
		</div>

		<!-- end::Scroll Top -->

		<!-- begin::Quick Nav -->
		

		<!-- begin::Quick Nav -->
<script src="includes/vendors/owl.carousel/dist/owl.carousel.js" type="text/javascript"></script>

		<!--end::Page Scripts -->
	</body>

	<!-- end::Body -->
</html>
 
      
<?php



/*The module link codes are hard coded in a switch statement below to determine the options to show for each tab */
include('includes/MainMenuLinksArray.php');

if (isset($SupplierLogin) AND $SupplierLogin==1){
	echo '<table class="table_index">
			<tr>
			<td class="menu_group_item">
				<p>&bull; <a href="' . $RootPath . '/SupplierTenders.php?TenderType=1">' . _('View or Amend outstanding offers') . '</a></p>
			</td>
			</tr>
			<tr>
			<td class="menu_group_item">
				<p>&bull; <a href="' . $RootPath . '/SupplierTenders.php?TenderType=2">' . _('Create a new offer') . '</a></p>
			</td>
			</tr>
			<tr>
			<td class="menu_group_item">
				<p>&bull; <a href="' . $RootPath . '/SupplierTenders.php?TenderType=3">' . _('View any open tenders without an offer') . '</a></p>
			</td>
			</tr>
		</table>';
	include('includes/footer.inc');
	exit;
} elseif (isset($CustomerLogin) AND $CustomerLogin==1){
	echo '<table class="table_index">
			<tr>
			<td class="menu_group_item">
				<p>&bull; <a href="' . $RootPath . '/CustomerInquiry.php?CustomerID=' . $_SESSION['CustomerID'] . '">' . _('Account Status') . '</a></p>
			</td>
			</tr>
			<tr>
			<td class="menu_group_item">
				<p>&bull; <a href="' . $RootPath . '/SelectOrderItems.php?NewOrder=Yes">' . _('Place An Order') . '</a></p>
			</td>
			</tr>
			<tr>
			<td class="menu_group_item">
				<p>&bull; <a href="' . $RootPath . '/SelectCompletedOrder.php?SelectedCustomer=' . $_SESSION['CustomerID'] . '">' . _('Order Status') . '</a></p>
			</td>
			</tr>
		</table>';

	include('includes/footer.inc');
	exit;
}

if (isset($_GET['Application'])){ /*This is sent by this page (to itself) when the user clicks on a tab */
	$_SESSION['Module'] = $_GET['Application'];
}








//include('includes/footer.inc');

function GetRptLinks($GroupID) {
/*
This function retrieves the reports given a certain group id as defined in /reports/admin/defaults.php
in the acssociative array $ReportGroups[]. It will fetch the reports belonging solely to the group
specified to create a list of links for insertion into a table to choose a report. Two table sections will
be generated, one for standard reports and the other for custom reports.
*/
	global $db, $RootPath, $ReportList;
	require_once('reportwriter/languages/en_US/reports.php');
	require_once('reportwriter/admin/defaults.php');
	$GroupID=$ReportList[$GroupID];
	$Title= array(_('Custom Reports'), _('Standard Reports and Forms'));

	$sql= "SELECT id,
				reporttype,
				defaultreport,
				groupname,
				reportname
			FROM reports
			ORDER BY groupname,
					reportname";
	$Result=DB_query($sql,'','',false,true);
	$ReportList = '';
	while ($Temp = DB_fetch_array($Result)) $ReportList[] = $Temp;

	$RptLinks = '';
	for ($Def=1; $Def>=0; $Def--) {
        $RptLinks .= '<li class="menu_group_headers">';
        $RptLinks .= '<b>' .  $Title[$Def] . '</b>';
        $RptLinks .= '</li>';
		$NoEntries = true;
		if ($ReportList) { // then there are reports to show, show by grouping
			foreach ($ReportList as $Report) {
				if ($Report['groupname']==$GroupID AND $Report['defaultreport']==$Def) {
                    $RptLinks .= '<li class="menu_group_item">';
					$RptLinks .= '<p>&bull; <a href="' . $RootPath . '/reportwriter/ReportMaker.php?action=go&amp;reportid=' . $Report['id'] . '">' . _($Report['reportname']) . '</a></p>';
					$RptLinks .= '</li>';
					$NoEntries = false;
				}
			}
			// now fetch the form groups that are a part of this group (List after reports)
			$NoForms = true;
			foreach ($ReportList as $Report) {
				$Group=explode(':',$Report['groupname']); // break into main group and form group array
				if ($NoForms AND $Group[0]==$GroupID AND $Report['reporttype']=='frm' AND $Report['defaultreport']==$Def) {
                    $RptLinks .= '<li class="menu_group_item">';
					$RptLinks .= '<img src="' . $RootPath . '/css/' . $_SESSION['Theme'] . '/images/folders.gif" width="16" height="13" alt="" />&nbsp;';
					$RptLinks .= '<p>&bull; <a href="' . $RootPath . '/reportwriter/FormMaker.php?id=' . $Report['groupname'] . '"></p>';
					$RptLinks .= $FormGroups[$Report['groupname']] . '</a>';
					$RptLinks .= '</li>';
					$NoForms = false;
					$NoEntries = false;
				}
			}
		}
		if ($NoEntries) $RptLinks .= '<li class="menu_group_item">' . _('There are no reports to show!') . '</li>';
	}
	return $RptLinks;
}
	
?>
<!-- Modal HTML embedded directly into document -->
<div id="ex1" class="modal">
  <p>Thanks for clicking. That felt good.</p>
  <a href="#" rel="modal:close">Close</a>
</div>


<!-- Modal -->
 <div class="modal fade" id="getCodeModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
   <div class="modal-dialog modal-lg">
      <div class="modal-content">
       <div class="modal-header">
         <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
         <h4 class="modal-title" id="myModalLabel"> API CODE </h4>
       </div>
       <div class="modal-body" id="getCode" style="overflow-x: scroll;">
       
          
          
       </div>
    </div>
   </div>
 </div>



<script type="text/javascript">
jQuery(document).on("ready xcrudafterrequest",function(){
    
});
</script>