<?php
/* $Id: index.php 6941 2014-10-26 23:18:08Z daintree $*/
error_reporting(E_ALL & ~E_NOTICE);
$PageSecurity=0;

include('includes/session.inc');
$Title=_('ERP Home');
include('includes/newheader.php');
$userid = $_SESSION['UserID'];


$userid = $_SESSION['UserID'];
if ($userid =='admin'||$userid =='maazil'||$userid =='mosheed'|| $userid =='zubia' || $userid =='nitika'|| $userid =='ravinesh' || $userid =='sharukh'|| $userid =='ravneet' || $userid =='mere' || $userid =='Avishek'  || $userid =='Priti' || $userid =='zibran' || $userid == 'saula' || $userid =='shaireen'  ){
 

?>


      <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/dt/jszip-2.5.0/dt-1.10.16/b-1.5.1/b-flash-1.5.1/b-html5-1.5.1/b-print-1.5.1/datatables.min.css"/>
 <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/buttons/1.5.1/css/buttons.dataTables.min.css"/>
 <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css"/>
 
   <script type="text/javascript" src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>
    <script type="text/javascript" src="https://cdn.datatables.net/buttons/1.5.1/js/dataTables.buttons.min.js"></script>
	<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.5.1/js/buttons.flash.min.js"></script>
	<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/pdfmake.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/vfs_fonts.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.5.1/js/buttons.html5.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.5.1/js/buttons.print.min.js"></script>
     
		<script language="JavaScript" type="text/javascript"src="js/Chart.js"></script>
 <!-- Latest compiled and minified CSS -->



	<div class="row">
									
						
<h4 class="m-widget24__title">
<?php

// All your PHP data-fetching code above remains as is...
// Assume you have $totalsales, $debtors, $overduedebtors, $percentagedue, $monthsname, $receivable, $overduereceviable, etc.
?>

<!-- Dashboard Header -->
<div class="container-fluid my-4">
    <div class="row mb-2 align-items-center">
        <div class="col-auto">
            <h2 class="fw-bold mb-0">📊 YTD Debtors Dashboard — <?= $currentyear ?></h2>
            <small class="text-muted">Last updated: <?= date("d M Y, h:i a") ?></small>
        </div>
        <div class="col-auto ms-auto">
            <button class="btn btn-outline-primary btn-sm">Export Data</button>
        </div>
    </div>

    <!-- KPI Cards Row -->
    <div class="row g-4 mb-4">
        <div class="col-md-3">
            <div class="card shadow rounded-3 text-center border-success h-100">
                <div class="card-body">
                    <img src="debtors/dashboard/9321666.png" style="width:32px;" alt="Sales" class="mb-2">
                    <h4 class="fw-bold text-success"><?= '$' . number_format($totalsales,2) ?></h4>
                    <div class="text-muted small">Total Sales</div>
                    <!-- Trend Example -->
                    <span class="badge bg-light text-success"><i class="bi bi-arrow-up"></i> +5% vs. last month</span>
                </div>
            </div>
        </div>
        <div class="col-md-3">
            <div class="card shadow rounded-3 text-center border-info h-100">
                <div class="card-body">
                    <img src="debtors/dashboard/10842908.png" style="width:32px;" alt="Receivables" class="mb-2">
                    <h4 class="fw-bold text-info"><?= '$' . number_format($debtors,2) ?></h4>
                    <div class="text-muted small">Accounts Receivable</div>
                </div>
            </div>
        </div>
        <div class="col-md-3">
            <div class="card shadow rounded-3 text-center border-warning h-100">
                <div class="card-body">
                    <img src="debtors/dashboard/4334537.png" style="width:32px;" alt="Overdue" class="mb-2">
                    <h4 class="fw-bold text-warning"><?= '$' . number_format($overduedebtors,2) ?></h4>
                    <div class="text-muted small">Overdue Receivable</div>
                    <?php if($percentagedue > 30): // Alert if >30% overdue ?>
                        <span class="badge bg-danger mt-2">⚠ High Overdue!</span>
                    <?php endif; ?>
                </div>
            </div>
        </div>
        <div class="col-md-3">
            <div class="card shadow rounded-3 text-center border-danger h-100">
                <div class="card-body">
                    <img src="debtors/dashboard/commission-currency-percentage-percent-sales-512.webp" style="width:32px;" alt="Overdue%" class="mb-2">
                    <h4 class="fw-bold text-danger"><?= round($percentagedue,2) . '%' ?></h4>
                    <div class="text-muted small">% Overdue Receivable</div>
                </div>
            </div>
        </div>
    </div>

    <!-- Charts Section -->
    <div class="row mb-4">
        <div class="col-md-8">
            <div class="card p-3 shadow rounded-3">
                <h5 class="mb-3">Monthly Receivable Overview</h5>
                <canvas id="finalchart"></canvas>
            </div>
        </div>
        <div class="col-md-4">
            <div class="card p-3 shadow rounded-3">
                <h6 class="mb-3">Receivables Breakdown</h6>
                <canvas id="piechart"></canvas>
                <ul class="mt-3 mb-0 small">
                    <li>Total Receivables: <b><?= '$' . number_format($debtors,2) ?></b></li>
                    <li>Overdue: <b><?= '$' . number_format($overduedebtors,2) ?></b></li>
                    <li>On Time: <b><?= '$' . number_format($debtors - $overduedebtors,2) ?></b></li>
                </ul>
            </div>
        </div>
    </div>

    <!-- Snippets Section -->
    <div class="row">
        <div class="col-md-6">
            <div class="card shadow rounded-3 p-3 mb-3">
                <h6>📝 Quick Stats</h6>
                <ul class="small">
                    <li>Top 5 Debtors: <a href="#" class="link-primary">View List</a></li>
                    <li>Biggest Payment this Month: <span class="fw-bold">$12,000</span></li>
                    <li>Unallocated Receipts: <span class="fw-bold text-danger">$1,500</span></li>
                </ul>
            </div>
        </div>
        <div class="col-md-6">
            <div class="card shadow rounded-3 p-3 mb-3">
                <h6>🔔 Alerts</h6>
                <?php if($percentagedue > 30): ?>
                    <div class="alert alert-danger p-2 mb-2">Overdue receivables are above 30% of total. Immediate action recommended.</div>
                <?php else: ?>
                    <div class="alert alert-success p-2 mb-2">Receivables are within acceptable range.</div>
                <?php endif; ?>
            </div>
        </div>
    </div>
</div>

<!-- Chart.js -->
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
var ctx = document.getElementById('finalchart').getContext('2d');
var chart = new Chart(ctx, {
    type: 'bar',
    data: {
        labels: <?= json_encode($monthsname); ?>,
        datasets: [
            {
                label: "Receivables",
                backgroundColor: "rgba(123, 239, 178, 1)",
                data: <?= json_encode($receivable); ?>,
            },
            {
                label: "Overdue Receivables",
                backgroundColor: "#f39c12",
                data: <?= json_encode($overduereceviable); ?>,
            }
        ]
    },
    options: {
        responsive: true,
        plugins: {
            legend: {display: true, position: 'top'},
            title: {display: true, text: "Sales, Receivable & Overdue Receivable"},
        }
    }
});

// Pie/Donut Chart for Receivables Breakdown
var piectx = document.getElementById('piechart').getContext('2d');
var piechart = new Chart(piectx, {
    type: 'doughnut',
    data: {
        labels: ["On Time", "Overdue"],
        datasets: [{
            data: [<?= $debtors - $overduedebtors ?>, <?= $overduedebtors ?>],
            backgroundColor: ["#27ae60", "#e74c3c"],
        }]
    },
    options: {
        responsive: true,
        plugins: {
            legend: {position: 'bottom'}
        }
    }
});
</script>

<!-- Optionally, include Bootstrap 5 (if not already loaded) -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">
							
											
										

										<!--end::Total Profit-->
									</div>
		
		
		
		
	
	
	
</div>
	<?php


echo '<div class="col-sm-12">';
					

	 
	
									
									
									
									
									
									
echo '</div>';
echo '</div>';

echo '</div>';


}
else{
	
	echo "you dont have permission to access this section";
	
}

			  
 	echo '</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;
}
	
?>


<script>$(document).ready(function() {
   var table = $('#projectreport').DataTable( {
        dom: 'Bfrtip',
	    order: [[ 3, 'desc' ]],
        buttons: [
           
		{
                extend: 'pdfHtml5',
                orientation: 'portrait',
			pageSize: 'A4',
			
			
                customize: function(doc) {
      doc.defaultStyle.fontSize = 12; //<-- set fontsize to 16 instead of 10 
					  
   }  
            },
			{
                extend: 'excelHtml5'},
			
			{
                extend: 'copyHtml5'}
			
			
		],
	   
	    
	   
    } );
		
		
		 
    $('#projectreport tbody').on('click', 'tr', function () {
        $(this).toggleClass('selected');
		  

		
    } );
		   $('#pdfprint').click( function () {
		   
		   var data = table.row( '.selected' ).data();
			//   window.open('PrintStatements.php?FromCust='+data[0]+'&accountnumber='+data[2]);
			   
   		window.location.href = "PrintStatements.php?FromCust="+data[0]+"&accountnumber="+data[2];
 
    } );
		
		 $('#email').click( function () {
		   
		   var data = table.row( '.selected' ).data();
			   
			   $.ajax({
      url:'debtors/EmailStatementsSingle.php',
      method:"POST",
      data:{FromCust:data[2]}
		 
	
     }) 

	  

    } );
		
			 $('#trans').click( function () {
		   
		   var data = table.row( '.selected' ).data();
			   
			   $.ajax({
      url:'debtors/OutstandingTrans.php',
      method:"POST",
      data:{FromCust:data[2]},
		 dataType: 'JSON', 
		
      success:function(response)
     {
		  
	  
		 var len = response.length;
            for(var i=0; i<len; i++){
                var Type = response[i].Type;
                var No = response[i].No;
                var Date = response[i].Date;
                var TotalInvoice= response[i].TotalInvoice;
				
				 var Outstanding= response[i].Outstanding;

                var tr_str = "<tr>" +
                  
                    "<td align='center'>" + Type + "</td>" +
                    "<td align='center'>" + No + "</td>" +
                    "<td align='center'>" + Date + "</td>" +
					 "<td align='center'>" + TotalInvoice + "</td>" +
					 "<td align='center'>" + Outstanding + "</td>" +
                    "</tr>";

                $("#userTable tbody").append(tr_str);
            }

		 
    
      }
     }) 

	   $('#modelWindow').modal('show');

    } );
		   
				 $('#alltrans').click( function () {
		   
		   var data = table.row( '.selected' ).data();
			   
			   $.ajax({
      url:'debtors/AllTrans.php',
      method:"POST",
      data:{FromCust:data[2]},
		 dataType: 'JSON', 
		
      success:function(response)
     {
		  
	  
		 var len = response.length;
            for(var i=0; i<len; i++){
                var Type = response[i].Type;
                var No = response[i].No;
                var Date = response[i].Date;
                var TotalInvoice= response[i].TotalInvoice;
				
				 var Outstanding= response[i].Outstanding;

                var tr_str = "<tr>" +
                  
                    "<td align='center'>" + Type + "</td>" +
                    "<td align='center'>" + No + "</td>" +
                    "<td align='center'>" + Date + "</td>" +
					 "<td align='center'>" + TotalInvoice + "</td>" +
					 "<td align='center'>" + Outstanding + "</td>" +
                    "</tr>";

                $("#userTable tbody").append(tr_str);
            }

		 
    
      }
     }) 

	   $('#modelWindow').modal('show');

    } );
		 $('#close').click( function () {
			 
			 $('#userTable tbody').empty();
		 })
		
		 $('#close1').click( function () {
			 
			 $('#userTable tbody').empty();
		 })
} );
	
	</script>


