<?php
//error_reporting(E_ALL);
//ini_set('display_errors', 1);

require "racs.php";
//require "vtshowsBBB.php";
require "salesstyles.php";
session_start();
if(!isset($_SESSION['titles']) || !isset($_SESSION['positions'])|| !isset($_SESSION['usernames'])){
header("location:index.php");}
?>

<html>
<title>Tonnage-Performance</title>

<head>
<link rel="stylesheet" type="text/css" media="all" href="jsDatePick_ltr.min.css" />
<link rel="stylesheet" type="text/css" media="all" href="jsDatePick_ltr.css" />
<script type="text/javascript" src="jsDatePick.min.1.3.js"></script>
<script src="datesps.js"></script>
<link rel="stylesheet" type="text/css" href="vtxstyles.css">

<script>

function scopys(pr)
{
var dts=document.getElementById("dt");

var sels=window.getSelection();
sels.removeAllRanges();
var ranges=document.createRange();
ranges.selectNodeContents(dts);
sels.addRange(ranges);
document.execCommand("copy");
alert("Copied - successfull");
sels.removeAllRanges();
}


function srgs(pr)
{
var sv=document.getElementById('srctxt').value.toLowerCase();
var dt=document.getElementById('dt');
var rn=dt.rows.length;

for(var cnt=1;cnt<rn-1;cnt++){
tvl=dt.rows[cnt].cells[0].innerText.toLowerCase();
rvl=dt.rows[cnt].cells[1].innerText.toLowerCase();
if(sv.length>1 && (tvl.indexOf(sv)>=0 || rvl.indexOf(sv)>=0)){
dt.rows[cnt].style.display='table-row';}
else{
dt.rows[cnt].style.display='none';}
if(sv.length<=1){
dt.rows[cnt].style.display='table-row';}	
}

}
</script>
</head>
<body style='font-family:calibri;font-size:small;'>
<div style='width=30%;height:100%%;'>
<?php
$flt=racs(1);
if($flt=="access failed"){
printf("<div style='font-color:red;'>>Access failed\Contact Sales and Marketing division</div>");
}
else{
$conn=mysqli_connect("localhost","primarysales","S5L7lF01EQZvQrGK","primarysales_dianaold");

if(isset($_REQUEST['starts'])){
$starts=$_REQUEST['starts'];}
else{
$starts=date('Y-m-01');}

if(isset($_REQUEST['ends'])){
$ends=$_REQUEST['ends'];}
else{
$ends=date('Y-m-t');}

if(isset($_REQUEST['chanell'])){
$chanell=$_REQUEST['chanell'];}
else{
$chanell='all';}

if(isset($_REQUEST['zones'])){
$zones=$_REQUEST['zones'];}
else{
$zones='all';}

if(isset($_REQUEST['regions'])){
$regions=$_REQUEST['regions'];}
else{
$regions='all';}

if(isset($_REQUEST['agents'])){
$agents=$_REQUEST['agents'];}
else{
$agents='all';}

if(isset($_REQUEST['terrys'])){
$terrys=$_REQUEST['terrys'];}
else{
$terrys='all';}

if(isset($_REQUEST['subregions'])){
$subregions=$_REQUEST['subregions'];}
else{
$subregions='all';}

if(isset($_REQUEST['agenttypes'])){
$agenttypes=$_REQUEST['agenttypes'];}
else{
$agenttypes='all';}

if(isset($_REQUEST['items'])){
$items=$_REQUEST['items'];}
else{
$items='all';}

if(isset($_REQUEST['ranges'])){
$ranges=$_REQUEST['ranges'];}
else{
$ranges='all';}

if(isset($_REQUEST['subranges'])){
$subranges=$_REQUEST['subranges'];}
else{
$subranges='all';}

#$flt=racs(1);

if(strtolower($chanell)!='all'){
$flt=$flt." and chanell='".$chanell."' ";}
if(strtolower($zones)!='all'){
$flt=$flt." and zones='".$zones."' ";}
if(strtolower($regions)!='all'){
$flt=$flt." and regions='".$regions."' ";}
if(strtolower($subregions)!='all'){
$flt=$flt." and sub_regions='".$subregions."' ";}
if(strtolower($agents)!='all'){
$flt=$flt." and agent_names='".$agents."' ";}
if(strtolower($agenttypes)!='all'){
$flt=$flt." and agent_types='".$agenttypes."' ";}
if(strtolower($terrys)!='all'){
$flt=$flt." and territory_names='".$terrys."' ";}
if(strtolower($items)!='all'){
$flt=$flt." and item_names='".$items."' ";}
if(strtolower($ranges)!='all'){
$flt=$flt." and item_ranges='".$ranges."' ";}
if(strtolower($subranges)!='all'){
$flt=$flt." and sub_ranges='".$subranges."' ";}

stps(1);
printf("<div class='sds'>");
rdentrysalestondash(1);
printf("</div>");

printf("<div class='mnf'>");
printf("<div style='font-size:16;color:#006699;border-bottom:1px solid silver;width:30%%;'>TONNAGE-PERFORMANCE $starts - $ends</div>");

$tv=0;
$tz=0;
$arr=array();

printf("<BR>");
$sprt="&zones=".$zones."&regions=".$regions."&subregions=".$subregions."&agents=".$agents."&agenttypes=".$agenttypes."&terrys=".$terrys."&ranges=".$ranges."&items=".$items."&subranges=".$subranges;

$sqlst="select rgs from (select distinct zone_orders as rds,regions as rgs from rc_invoices union select distinct zone_orders,regions from rc_targets order by rds) as sbs";
$qry=mysqli_query($conn,$sqlst);

printf("<div style='width:100%%;height:5%%;border:0px solid silver;border-radius:2px;display:table;vertical-align:middle;'>");

printf("<form method='post' action='executivemtreport.php?actp=rpt%s'><table style='width:100%%;font-size:13;'>",$sprt);
printf("<tr><td width=5%%><input type='text' id='inputField' value='%s' name='starts' size=8 style='font-size:13;background:#CACACA;border:1px solid #006699;border-radius:1px;font-family:calibri;color:#006699;'></td><td width=1%%>-</td><td width=5%%><input type='text' id='inputField2' value='%s' name='ends' size=8 style='font-size:13;background:#CACACA;border:1px solid #006699;border-radius:1px;font-family:calibri;color:#006699;'></td>
<td width=20%%><select name='zones' style='width:95%%;font-size:13;background:#CACACA;border:1px solid #006699;border-radius:1px;font-family:calibri;color:#006699;'><option>%s</option><option>All</option>",$starts,$ends,$zones);
while($rst=mysqli_fetch_row($qry)){
printf("<option>%s</option>",$rst[0]);}	
printf("</select></td><td><input type='submit' value='Go' style='font-size:13;background:#CACACA;color:#006699;border:1.5px solid #006699;border-radius:1pxfont-size:13;'></td></form>",$starts,$ends);

printf("<td width=38%% align='right' style='color:grey;'>Search</td><td width=20%%>
<input type='text' id='srctxt' size=28 style='font-family:calibri;font-size:14;border:1px solid silver;border-radius:1.5px;' onkeyup=\"srgs(event)\"></td><td style='font-size:12;color:green;text-align:center;background:silver;border:1px solid white;' onclick=\"scopys(1)\">Copy</td></tr>");
printf("</table>");
//<td style='border:1px solid white;text-align:center;'>Order(with Cancel)</td>
printf("<table id='dt' style='width:100%%;font-size:13;border-collapse:collapse;color:#006699;'>
<tr style='background:silver;border:1px solid white;text-align:right;'>
<td style='border:1px solid white;text-align:center;width:5%%;'>Area</td>
<td style='border:1px solid white;text-align:center;width:5%%;'>Target Kg</td>
<td style='border:1px solid white;text-align:center;width:5%%;'>Order Kg</td>
<td style='border:1px solid white;text-align:center;width:5%%;'>Primary Kg</td>
<td style='border:1px solid white;text-align:center;width:2%%;'>Pri:%%</td>
<td style='border:1px solid white;text-align:center;width:5%%;'>Primary Difict</td>
<td style='border:1px solid white;text-align:center;width:5%%;'>RD-Kg</td>
<td style='border:1px solid white;text-align:center;width:2%%;'>Rd:%%</td>
<td style='border:1px solid white;text-align:center;width:4%%;'>P-Calls</td>
<td style='border:1px solid white;text-align:center;width:4%%;'>W-Days</td>
<td style='background:silver;border:1px solid white;width:2%%;' align='center'>View</td>
<td style='background:silver;border:1px solid white;width:2%%;' align='center'>View</td>
</tr>");

//$sqlst="select mzones,tgvl,acvl,odvl,rdvl,odvlc,pcls,rdavgday,wdays,strd,stpri,optstk,stfree,acvldir from (select distinct rgs as mzones from (select distinct zone_orders as rds,regions as rgs from rc_invoices ".$flt." and dates>='".$starts."' and dates<='".$ends."' and chanell='GENERAL TRADE' union select distinct zone_orders,regions from rc_targets ".$flt."  and dates>='".$starts."' and dates<='".$ends."' union select distinct zone_orders,regions from rc_freeinvoices ".$flt."  and dates>='".$starts."' and dates<='".$ends."' union select distinct zone_orders,regions from rc_orders ".$flt."  and dates>='".$starts."' and dates<='".$ends."' and chanell='GENERAL TRADE' order by rds,rgs) as zns) as ags

//left join (select regions,sum(box_qty*packets_per_box*packet_weights/1000000) as tgvl from rc_targets ".$flt." and dates>='".$starts."' and dates<='".$ends."' group by regions) as tgs on tgs.regions=mzones 

//left join (select regions,sum(box_qty*packets_per_box*packet_weights/1000000) as acvl from rc_invoices ".$flt." and dates>='".$starts."' and dates<='".$ends."' group by regions) 
//as acs on acs.regions=mzones

//left join (select regions,sum(box_qty*packets_per_box*packet_weights/1000000) as odvl from rc_orders ".$flt." and dates>='".$starts."' and dates<='".$ends."' and order_status<>'CANCELLED' group by regions) 
//as acss on acss.regions=mzones 

//left join (select regions,sum(box_qty*packets_per_box*packet_weights/1000000) as odvlc from rc_orders ".$flt." and dates>='".$starts."' and dates<='".$ends."' group by regions) 
//as acssod on acssod.regions=mzones 

//left join (select regions,sum(pcs_qty*pcs_price) as rdvl,sum(pcalls) as pcls,sum(pcs_qty*pcs_price)/count(distinct(invoice_number))*count(distinct(agent_names)) as rdavgday,count(distinct(invoice_number)) as wdays from rd_saleinv ".$flt." and dates>='".$starts."' and dates<='".$ends."' group by regions) 
//as rds on rds.regions=mzones

//left join (select regions,sum(pcs_qty*pcs_price+free_qtys*pcs_price) as strd from rd_saleinv ".$flt." and dates>='2021-04-19' and dates<='".$ends."' group by regions) 
//as strdd on strdd.regions=mzones

//left join (select regions,sum(box_qty*box_price) as stpri from rc_invoices ".$flt." and dates>='2021-04-19' and dates<='".$ends."' and chanell='GENERAL TRADE' and agent_types='AGENCY' group by regions) 
//as stprd on stprd.regions=mzones

//left join (select regions,sum(pcs_qty*pcs_price) as stfree from rc_freeinvoices ".$flt." and dates>='2021-04-19' and dates<='".$ends."' and chanell='GENERAL TRADE' and agent_types='AGENCY' group by regions) 
//as stfrees on stfrees.regions=mzones

//left join (select regions,sum(pcs_qty*pcs_price) as optstk from rd_db_stocks ".$flt." and dates>='2021-04-19' and dates<='".$ends."' and agent_types='AGENCY' group by regions) 
//as optks on optks.regions=mzones

//left join (select regions,sum(box_qty*box_price) as acvldir from rc_invoices ".$flt." and dates>='".$starts."' and dates<='".$ends."' and agent_types='DIRECT' and chanell='GENERAL TRADE' group by regions) 
//as acsdr on acsdr.regions=mzones";

////////////////////////////without stock///////////////////////


/////////////////////Wihout Stock Start Below ////////////////////////////

$sqlst="select mzones,tgvl,acvl,odvl,rdvl,pcls,wdays,acvldir from (select distinct rgs as mzones from (select distinct zone_orders as rds,executive_names as rgs from rc_invoices ".$flt." and dates>='".$starts."' and dates<='".$ends."' and executive_names<>'' and chanell='GENERAL TRADE' union select distinct zone_orders,executive_names from rc_targets ".$flt."  and dates>='".$starts."' and dates<='".$ends."' and executive_names<>'' union select distinct zone_orders,executive_names from rc_orders ".$flt."  and dates>='".$starts."' and dates<='".$ends."' and chanell='GENERAL TRADE' and executive_names<>'' order by rds,rgs) as zns) as ags 

left join (select executive_names,sum(box_qty*packets_per_box*packet_weights/1000) as tgvl from rc_targets ".$flt." and dates>='".$starts."' and dates<='".$ends."' group by executive_names) as tgs on tgs.executive_names=mzones 

left join (select executive_names,sum(box_qty*packets_per_box*packet_weights/1000) as acvl from rc_invoices ".$flt." and dates>='".$starts."' and dates<='".$ends."' group by executive_names) 
as acs on acs.executive_names=mzones

left join (select executive_names,sum(box_qty*packets_per_box*packet_weights/1000) as odvl from rc_orders ".$flt." and dates>='".$starts."' and dates<='".$ends."' and order_status<>'CANCELLED' group by executive_names) 
as acss on acss.executive_names=mzones 

left join (select executive_names,sum(pcs_qty*packet_weights/1000) as rdvl,sum(pcalls) as pcls,count(distinct(invoice_number)) as wdays from rd_saleinv ".$flt." and dates>='".$starts."' and dates<='".$ends."' group by executive_names) 
as rds on rds.executive_names=mzones

left join (select executive_names,sum(box_qty*packets_per_box*packet_weights/1000) as acvldir from rc_invoices ".$flt." and dates>='".$starts."' and dates<='".$ends."' and agent_types='DIRECT' and chanell='GENERAL TRADE' group by executive_names) 
as acsdr on acsdr.executive_names=mzones";
 
 
/////////////////////Wihout Stock End //////////////////////////// 
 
$tgv=0;
$acv=0;
$tgw=0;
$acw=0;
$odv=0;
$rdv=0;
$pcl=0;
$odvlc=0;
$rdavgday=0;
$wdays=0;
$sttot=0;
 
//mzones,1tgvl,2acvl,3odvl,4rdvl,5pcls,6wdays,7acvldir
 
$qry=mysqli_query($conn,$sqlst);
while($rst=mysqli_fetch_row($qry)){
$tgv=$tgv+$rst[1];
$odv=$odv+$rst[3];
$acv=$acv+$rst[2];
$rdv=$rdv+$rst[4]+$rst[7];
$pcl=$pcl+$rst[5];
//$odvlc=$odvlc+$rst[5];
//$rdavgday=$rdavgday+$rst[7];
$wdays=$wdays+$rst[6];
//$sttot=$sttot+$rst[10]+$rst[11]+$rst[12]-$rst[9];

if($rst[1]==0){
$pcs=0;}
else{
$pcs=$rst[2]*100/$rst[1];}

if($rst[1]==0){
$rdss=0;}
else{
$rdss=($rst[4]+$rst[7])*100/$rst[1];}

$regionst=$rst[0];

printf("<tr style='border-bottom:1px solid silver;'>
<td>%s</td>
<td align='right'>%s</td>
<td align='right' style='color:black'>%s</td>
<td align='right' style='color:red'>%s</td>
<td align='right'style='color:522109'bgcolor='#DAF7A6'>%s%%</td>
<td align='right' style='color:black'bgcolor='#D6EAF8'>%s</td>
<td align='right' style='color:purple'>%s</td>
<td align='right' style='color:black'bgcolor='#DAF7A6'>%s%%</td>
<td align='right' style='color:green'>%s</td>
<td align='right' style='color:orange'>%s</td>
<td align='center'><a href='rpmrangenewtonn.php?starts=%s&ends=%s&regions=%s' target='_blank'>Range</a></td>
<td align='center'><a href='rpmtgttitemwisetgsummarytonq.php?starts=%s&ends=%s&regions=%s' target='_blank'>items</a></td></tr>",
$rst[0],
number_format($rst[1],2,'.',','),
number_format($rst[3],2,'.',','),
number_format($rst[2],2,'.',','),
number_format($pcs,0,'.',','),
number_format($rst[2]-$rst[1],2,'.',','),
number_format($rst[4]+$rst[7],2,'.',','),
number_format($rdss,0,'.',','),
number_format($rst[5],0,'.',','),
number_format($rst[6],0,'.',','),
$starts,$ends,$rst[0],$starts,$ends,$rst[0]);
}


//mzones,1tgvl,2acvl,3odvl,4rdvl,5pcls,6wdays,7acvldir

printf("<tr style='border-bottom:1px solid silver;font-weight:bold;'>
<td>Total</td>
<td align='right'>%s</td>
<td align='right'>%s</td>
<td align='right'>%s</td>
<td align='right'bgcolor='#DAF7A6'>%s%%</td>
<td align='right'bgcolor='#D6EAF8'>%s</td>
<td align='right'>%s</td>
<td align='right'bgcolor='#DAF7A6'>%s%%</td>
<td align='right'>%s</td>
<td align='right'>%s</td>

<td align='center'><a href='rpmrangenewtonn.php?starts=%s&ends=%s&regions=%s' target='_blank'>Range</a></td>
<td align='center'><a href='rpmtgttitemwisetgsummarytonq.php?starts=%s&ends=%s&regions=%s' target='_blank'>items</a></td>
</tr></table>",
number_format($tgv,2,'.',','),
number_format($odv,2,'.',','),
number_format($acv,2,'.',','),
number_format($acv/$tgv*100,2,'.',','),
number_format($tgv-$acv,2,'.',','),
number_format($rdv,2,'.',','),
number_format($rdv/$tgv*100,2,'.',','),
number_format($pcl,0,'.',','),
number_format($wdays,0,',',','),
$starts,$ends,$regionst,$starts,$ends,$regionst);

$monthdate=date('t');
$datess=cal_days_in_month(CAL_GREGORIAN, 9, 2020);
$prevdatestart=date('Y-m-d', strtotime('-1 month', strtotime($starts)));
$prevdateend=date('Y-m-d', strtotime('-1 month', strtotime($ends)));;

//echo cal_days_in_month(CAL_GREGORIAN, 9, 2020);
//print('Next Date ' . date('Y-m-d', strtotime('-1 month', strtotime($ends))));

printf("<BR>");

}
$myTime = strtotime("2/1/2021");  // Use whatever date format you want
$daysInMonth = cal_days_in_month(CAL_GREGORIAN, 2, 2021); // 31
$workDays = 0;

while($daysInMonth > 0)
{
    $day = date("D", $myTime); // Sun - Sat
   // if($day != "Sun" && $day != "Sat")
      if($day !="Sun" && $day != "$holidays")
        $workDays++;

    $daysInMonth--;
    $myTime += 86400; // 86,400 seconds = 24 hrs.
}

//echo "There are $workDays work days this month!";


///////////////////////sample holiday counts////////////////

printf("<BR>");
printf("<BR>");
printf("<BR>");

function getWorkingDays($startDate,$endDate,$holidays) {
    // do strtotime calculations just once
    $endDate = strtotime($endDate);
    $startDate = strtotime($startDate);


    //The total number of days between the two dates. We compute the no. of seconds and divide it to 60*60*24
    //We add one to inlude both dates in the interval.
    $days = ($endDate - $startDate) / 86400 + 1;

    $no_full_weeks = floor($days / 7);
    $no_remaining_days = fmod($days, 7);

    //It will return 1 if it's Monday,.. ,7 for Sunday
    $the_first_day_of_week = date("N", $startDate);
    $the_last_day_of_week = date("N", $endDate);

    //---->The two can be equal in leap years when february has 29 days, the equal sign is added here
    //In the first case the whole interval is within a week, in the second case the interval falls in two weeks.
    if ($the_first_day_of_week <= $the_last_day_of_week) {
        if ($the_first_day_of_week <= 6 && 6 <= $the_last_day_of_week) $no_remaining_days--;
        if ($the_first_day_of_week <= 7 && 7 <= $the_last_day_of_week) $no_remaining_days--;
    }
    else {
        // (edit by Tokes to fix an edge case where the start day was a Sunday
        // and the end day was NOT a Saturday)

        // the day of the week for start is later than the day of the week for end
        if ($the_first_day_of_week == 7) {
            // if the start date is a Sunday, then we definitely subtract 1 day
            $no_remaining_days--;

            if ($the_last_day_of_week == 6) {
                // if the end date is a Saturday, then we subtract another day
                $no_remaining_days--;
            }
        }
        else {
            // the start date was a Saturday (or earlier), and the end date was (Mon..Fri)
            // so we skip an entire weekend and subtract 2 days
            $no_remaining_days -= 2;
        }
    }

//The no. of business days is: (number of weeks between the two dates) * (5 working days) + the remainder
//---->february in none leap years gave a remainder of 0 but still calculated weekends between first and last day, this is one way to fix it
   $workingDays = $no_full_weeks * 5;
    if ($no_remaining_days > 0 )
    {
      $workingDays += $no_remaining_days;
    }

    //We subtract the holidays
    foreach($holidays as $holiday){
        $time_stamp=strtotime($holiday);
        //If the holiday doesn't fall in weekend
        if ($startDate <= $time_stamp && $time_stamp <= $endDate && date("N",$time_stamp) != 6 && date("N",$time_stamp) != 7)
            $workingDays--;
    }

    return $workingDays;
}

//Example:

$holidays=array("2021-02-01","2021-02-28");

//echo getWorkingDays("2021-02-01","2021-02-28",$holidays)

// => will return 7

///////////////holiday count sample end////////////////////


?>

</div>
</body>
</html>