208 lines
8.5 KiB
PHP
Executable File
208 lines
8.5 KiB
PHP
Executable File
<?php
|
|
include_once("modules/EcmProductReports/vtigerConnector.php");
|
|
|
|
$vc=new vtigerConnector();
|
|
if($_POST['where'])$vc->where=$_POST['where'];
|
|
if(!$_POST['start'])$vc->limit="0,".$vc->pp;
|
|
else $vc->limit=$_POST['start'].",".$vc->pp;
|
|
if($_POST['order_by'])$vc->order_by=$_POST['order_by'];
|
|
else $vc->order_by="purchaseorder.duedate";
|
|
if($_POST['sorder'])$vc->sorder=$_POST['sorder'];
|
|
else $vc->sorder="desc";
|
|
|
|
$vc->getData();
|
|
$vc->getCount();
|
|
$data=$vc->data=$_SESSION['EcmProductReportsData'];
|
|
|
|
set_include_path('include/PHPExcel/');
|
|
|
|
include 'PHPExcel.php';
|
|
include 'PHPExcel/Writer/Excel2007.php';
|
|
include 'PHPExcel/IOFactory.php';
|
|
|
|
$objPHPExcel = new PHPExcel();
|
|
$objPHPExcel->getProperties()->setCreator("E5 CRM");
|
|
$objPHPExcel->getProperties()->setLastModifiedBy("E5 CRM");
|
|
$objPHPExcel->getProperties()->setTitle("Office 2007 PRICEBOOK");
|
|
$objPHPExcel->getProperties()->setSubject("Office 2007 PRICEBOOK");
|
|
$objPHPExcel->getProperties()->setDescription("PRICEBOOK");
|
|
|
|
$objPHPExcel->getActiveSheet()->duplicateStyleArray(
|
|
array(
|
|
'fill' => array(
|
|
'type' => PHPExcel_Style_Fill::FILL_SOLID,
|
|
'color' => array('argb' => 'FFCCFFCC')
|
|
),
|
|
'borders' => array(
|
|
'bottom' => array('style' => PHPExcel_Style_Border::BORDER_THIN),
|
|
'right' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM)
|
|
)
|
|
),
|
|
"A1:N1"
|
|
);
|
|
|
|
$alf="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|
|
|
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
|
|
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
|
|
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);
|
|
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);
|
|
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(20);
|
|
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(20);
|
|
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(20);
|
|
$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(20);
|
|
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('A1','Product');
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('B1','Code');
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('C1','Order Id');/*
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('D1','Avg price last 3 m');
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('E1','Avg price last 6 m');
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('F1','Qty last 3 m');
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('G1','Qty last 6 m');*/
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('D1','Quantity');
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('E1','Inventory');
|
|
//$objPHPExcel->getActiveSheet()->SetCellValue('J1','Inv value');
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('F1','CBM');
|
|
//$objPHPExcel->getActiveSheet()->SetCellValue('L1','Status');
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('G1','Due Date');
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('H1','Delivery Time');
|
|
//$objPHPExcel->getActiveSheet()->SetCellValue('O1','List Price');
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('I1','Tracking No');
|
|
$j=0;
|
|
for($i=0;$i<count($data);$i++){
|
|
if(!$_REQUEST['check'][$i])continue;
|
|
|
|
|
|
$sale30=0;
|
|
$qty30=0;
|
|
$aq30=array();
|
|
$sale90=0;
|
|
$qty90=0;
|
|
$aq90=array();
|
|
$sale180=0;
|
|
$qty180=0;
|
|
$aq180=array();
|
|
|
|
|
|
$id=$vc->getIdByCode($data[$i]['productcode']);
|
|
$duedate=$data[$i]['duedate'];
|
|
$exp=explode("-",$duedate);
|
|
$dtime=date("Y-m-d",@mktime(0,0,0,$exp[1],$exp[2],$exp[0])+37*24*3600);
|
|
|
|
$w=mysql_query("select ecmproducts_fk_list.price as price,ecmproducts_fk_list.quantity as quantity,ecmproducts_fk_list.no as no,ecmproducts_fk_list.date as date from ecmproducts_fk_list where ecmproducts_fk_list.code like '".$data[$i]['productcode']."'");
|
|
//echo mysql_num_rows();mysql_error();die();
|
|
while($r=mysql_fetch_array($w)){
|
|
$sale+=$r['price']*$r['quantity'];
|
|
$qty+=$r['quantity'];
|
|
$aq[$r['no']]+=$r['quantity'];
|
|
|
|
$date=date("Y-m");
|
|
$m=(int)date("m");
|
|
$date1=date("Y-m",mktime(0,0,0,($m-1),1,date("Y")));
|
|
$date2=date("Y-m",mktime(0,0,0,($m-2),1,date("Y")));
|
|
$date3=date("Y-m",mktime(0,0,0,($m-3),1,date("Y")));
|
|
$date4=date("Y-m",mktime(0,0,0,($m-4),1,date("Y")));
|
|
$date5=date("Y-m",mktime(0,0,0,($m-5),1,date("Y")));
|
|
$date6=date("Y-m",mktime(0,0,0,($m-6),1,date("Y")));
|
|
|
|
$d=explode("-",$r['date']);
|
|
|
|
$dd=$d[0]."-".$d[1];
|
|
|
|
if($dd==$date || $dd==$date1){
|
|
$sale30+=$r['price']*$r['quantity'];
|
|
$qty30+=$r['quantity'];
|
|
$aq30[$r['no']]+=$r['quantity'];
|
|
}
|
|
if($dd==$date || $dd==$date1 || $dd==$date2 || $dd==$date3){
|
|
$sale90+=$r['price']*$r['quantity'];
|
|
$qty90+=$r['quantity'];
|
|
$aq390[$r['no']]+=$r['quantity'];
|
|
}
|
|
if($dd==$date || $dd==$date1 || $dd==$date2 || $dd==$date3 || $dd==$date4 || $dd==$date5 || $dd==$date6){
|
|
$sale180+=$r['price']*$r['quantity'];
|
|
$qty180+=$r['quantity'];
|
|
$aq180[$r['no']]+=$r['quantity'];
|
|
}
|
|
}
|
|
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('A'.($j+2),$data[$i]['productname']);
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('B'.($j+2),$data[$i]['productcode']);
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('C'.($j+2),$data[$i]['purchaseorderid']);
|
|
if($qty90>0){
|
|
$saleqtysum90+=($sale90/$qty90);
|
|
$v=number_format(($sale90/$qty90),2,",",".");
|
|
}
|
|
//$objPHPExcel->getActiveSheet()->SetCellValue('D'.($j+2),$v);
|
|
if($qty180>0){
|
|
$saleqtysum180+=($sale180/$qty180);
|
|
$v=number_format(($sale180/$qty180),2,",",".");
|
|
}
|
|
//$objPHPExcel->getActiveSheet()->SetCellValue('E'.($j+2),$v);
|
|
|
|
|
|
//$objPHPExcel->getActiveSheet()->SetCellValue('F'.($j+2),number_format(($qty90/3),2,",","."));
|
|
$qtysum90+=($qty90/3);
|
|
//$objPHPExcel->getActiveSheet()->SetCellValue('G'.($j+2),number_format(($qty180/6),2,",","."));
|
|
$qtysum180+=($qty180/6);
|
|
|
|
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('D'.($j+2),number_format($data[$i]['quantity'],0,"",""));
|
|
$qtyo+=$data[$i]['quantity'];
|
|
$rrrr=mysql_fetch_array(mysql_query("select ems_qty_in_stock,ems_price,carton_volume_meter,pieces_per_carton from ecmproducts where code='".$data[$i]['productcode']."'"));
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('E'.($j+2),number_format($rrrr['ems_qty_in_stock'],0,"",""));
|
|
$emsqtyinstock+=$rrrr['ems_qty_in_stock'];
|
|
//$objPHPExcel->getActiveSheet()->SetCellValue('J'.($j+2),number_format(($rrrr['ems_price']*$rrrr['ems_qty_in_stock']),2,",","."));
|
|
$emsqtyinstockinv+=($rrrr['ems_price']*$rrrr['ems_qty_in_stock']);
|
|
|
|
|
|
if($rrrr['pieces_per_carton']>0)$cbmv=number_format((($rrrr['ems_qty_in_stock']*$rrrr['carton_volume_meter'])/$rrrr['pieces_per_carton']),2,",",".");
|
|
else $cbmv="0,00";
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('F'.($j+2),$cbmv);
|
|
if($rrrr['pieces_per_carton']>0)$cbm+=(($rrrr['ems_qty_in_stock']*$rrrr['carton_volume_meter'])/$rrrr['pieces_per_carton']);
|
|
|
|
//$objPHPExcel->getActiveSheet()->SetCellValue('L'.($j+2),$data[$i]['postatus']);
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('G'.($j+2),$vc->timeDate($duedate));
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('H'.($j+2),$vc->timeDate($dtime));
|
|
//$objPHPExcel->getActiveSheet()->SetCellValue('O'.($j+2),$vc->formatNumber($data[$i]['listprice']));
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('I'.($j+2),$data[$i]['tracking_no']);
|
|
$listprice+=$data[$i]['listprice'];
|
|
$j++;
|
|
}
|
|
|
|
$objPHPExcel->getActiveSheet()->duplicateStyleArray(
|
|
array(
|
|
'fill' => array(
|
|
'type' => PHPExcel_Style_Fill::FILL_SOLID,
|
|
'color' => array('argb' => 'E6E6E6')
|
|
),
|
|
),
|
|
"A".($j+2).":N".($j+2)
|
|
);
|
|
|
|
$cnt=count($data);
|
|
|
|
//$objPHPExcel->getActiveSheet()->SetCellValue('D'.($j+2),number_format($saleqtysum90/$cnt,2,",","."));
|
|
//$objPHPExcel->getActiveSheet()->SetCellValue('E'.($j+2),number_format($saleqtysum180/$cnt,2,",","."));
|
|
//$objPHPExcel->getActiveSheet()->SetCellValue('F'.($j+2),number_format($qtysum90/$cnt,2,",","."));
|
|
//$objPHPExcel->getActiveSheet()->SetCellValue('G'.($j+2),number_format($qtysum180/$cnt,2,",","."));
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('D'.($j+2),number_format($qtyo,0,"",""));
|
|
$objPHPExcel->getActiveSheet()->SetCellValue('E'.($j+2),number_format($emsqtyinstock,0,"",""));
|
|
//$objPHPExcel->getActiveSheet()->SetCellValue('J'.($j+2),number_format($emsqtyinstockinv,2,",","."));
|
|
//$objPHPExcel->getActiveSheet()->SetCellValue('F'.($j+2),number_format($cbm,2,",","."));
|
|
|
|
|
|
//$objPHPExcel->getActiveSheet()->SetCellValue('N'.($j+2),number_format($listprice/$cnt,2,",","."));
|
|
|
|
$objPHPExcel->getActiveSheet()->setTitle('Simple');
|
|
$objPHPExcel->setActiveSheetIndex(0);
|
|
|
|
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
|
|
chmod("cache/upload",0777);
|
|
$microtime=str_replace(".","",str_replace(" ","",microtime()));
|
|
$name="cache/upload/ProductReport".$microtime.".xlsx";
|
|
$objWriter->save($name);
|
|
chmod($name,0777);
|
|
|
|
header("Location: ".$name);
|
|
?>
|