Files
crm.e5.pl/modules/EcmProductReports/CreateXLS.php
2024-04-27 09:23:34 +02:00

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);
?>