<?php
session_start(); 
$ruta = '../../';
require_once("../class_folder/covensol_siv_c_inventario.php");
$objsiv=new covensol_siv_c_inventario('');
$objsiv->cargar_seguridad("SIV","sigesp_siv_r_articuloxalmacen.php");
//$objscc->cargar_seguridad("SCC","covensol_scc_d_movimiento.php");
/* PHPExcel */
include($ruta.'shared/PHPExcel/Classes/PHPExcel.php');

$fecha_actual = date("d/m/Y");


class reporte extends PHPExcel{
		
			
		function encabezado(){
				
				global $ancho,$i,$objRichText;
				
				$this->getActiveSheet()->getStyle('A'.$i)->getFill()->getStartColor()->setARGB('FFFFFFCC');
				$this->getActiveSheet()->getStyle('A'.$i.':'.'I'.$i)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('FFFFFFCC');
				
				//$objPHPExcel->getActiveSheet()->getStyle('A'.$i)->getFont()->getColor()->setARGB("FFFFFF66");
				$this->setActiveSheetIndex(0)->setCellValue('A'.$i, 'NRO');
				$this->getActiveSheet()->getStyle('A'.$i)->getFont()->setBold(true);
				$this->getActiveSheet()->getStyle('A'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
				$this->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
				
				$this->setActiveSheetIndex(0)->setCellValue('B'.$i, 'CODALM');
				$this->getActiveSheet()->getStyle('B'.$i)->getFont()->setBold(true);
				$this->getActiveSheet()->getStyle('B'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
				$this->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
				
				$this->setActiveSheetIndex(0)->setCellValue('C'.$i, 'CODART');
				$this->getActiveSheet()->getStyle('C'.$i)->getFont()->setBold(true);
				$this->getActiveSheet()->getStyle('C'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
				$this->getActiveSheet()->getColumnDimension('C')->setAutoSize(true);
				
				$this->setActiveSheetIndex(0)->setCellValue('D'.$i, 'DENOM');
				$this->getActiveSheet()->getStyle('D'.$i)->getFont()->setBold(true);
				$this->getActiveSheet()->getStyle('D'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
				$this->getActiveSheet()->getColumnDimension('D')->setAutoSize(true);
				
				$this->setActiveSheetIndex(0)->setCellValue('E'.$i, 'EXIST');
				$this->getActiveSheet()->getStyle('E'.$i)->getFont()->setBold(true);
				$this->getActiveSheet()->getStyle('E'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
				$this->getActiveSheet()->getColumnDimension('E')->setAutoSize(true);
				
				$this->setActiveSheetIndex(0)->setCellValue('F'.$i, 'COSPRO');
				$this->getActiveSheet()->getStyle('F'.$i)->getFont()->setBold(true);
				$this->getActiveSheet()->getStyle('F'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
				$this->getActiveSheet()->getColumnDimension('F')->setAutoSize(true);
				
				
				$this->setActiveSheetIndex(0)->setCellValue('G'.$i, 'ULTCOS');
				$this->getActiveSheet()->getStyle('G'.$i)->getFont()->setBold(true);
				$this->getActiveSheet()->getStyle('G'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
				$this->getActiveSheet()->getColumnDimension('G')->setAutoSize(true);	
				
				$this->setActiveSheetIndex(0)->setCellValue('H'.$i, 'SUBTOT (CP)');
				$this->getActiveSheet()->getStyle('H'.$i)->getFont()->setBold(true);
				$this->getActiveSheet()->getStyle('H'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
				$this->getActiveSheet()->getColumnDimension('H')->setAutoSize(true);		
				
				$this->setActiveSheetIndex(0)->setCellValue('I'.$i, 'SUBTOT (UC)');
				$this->getActiveSheet()->getStyle('I'.$i)->getFont()->setBold(true);
				$this->getActiveSheet()->getStyle('I'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
				$this->getActiveSheet()->getColumnDimension('I')->setAutoSize(true);
				$i++;	
				
		}
		
		function encabezado_tit($datos){
				
				global $ancho,$i,$objRichText;
				
				$this->getActiveSheet()->getStyle('A'.$i)->getFill()->getStartColor()->setARGB('FFCCCCCC');
				$this->getActiveSheet()->getStyle('A'.$i.':'.'I'.$i)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('FFCCCCCC');
				
				$this->setActiveSheetIndex(0)->setCellValue('C'.$i, " ".$datos['codalm']);
				$this->getActiveSheet()->getStyle('C'.$i)->getFont()->setBold(true);				
				$this->getActiveSheet()->getStyle('C'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);				
				$this->getActiveSheet()->getColumnDimension('D')->setAutoSize(true);
				
				$this->setActiveSheetIndex(0)->setCellValue('D'.$i, $datos['nomfisalm']);
				$this->getActiveSheet()->getStyle('D'.$i)->getFont()->setBold(true);
				$this->getActiveSheet()->getStyle('D'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
				$this->getActiveSheet()->getColumnDimension('D')->setAutoSize(true);
				$i++;	
				
		}
		
		function fila($datos){
		
				global $ancho,$i,$objRichText;
				$datos['nro']=number_format($datos['nro'],0,',','.');
				$this->setActiveSheetIndex(0)->setCellValue('A'.$i, utf8_encode($datos['nro']));    
				$this->getActiveSheet()->getStyle('A'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
				
				$this->setActiveSheetIndex(0)->setCellValue('B'.$i, " ".$datos['codalm']);
				$this->getActiveSheet()->getStyle('B'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
				
				$this->getActiveSheet()->getStyle('C'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
				$this->setActiveSheetIndex(0)->setCellValue('C'.$i, $datos['codart']);
				
				$this->setActiveSheetIndex(0)->setCellValue('D'.$i, $datos['denart']);
				$this->getActiveSheet()->getStyle('D'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
				
				$this->setActiveSheetIndex(0)->setCellValue('E'.$i, $datos['existencia']);
				$this->getActiveSheet()->getStyle('E'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
					
				$this->setActiveSheetIndex(0)->setCellValue('F'.$i, $datos['ultcosart']);
				$this->getActiveSheet()->getStyle('F'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
				
				$this->setActiveSheetIndex(0)->setCellValue('G'.$i, $datos['cosproart']);
				$this->getActiveSheet()->getStyle('G'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
				
				$this->getActiveSheet()->getStyle('H'.$i)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
				$this->setActiveSheetIndex(0)->setCellValue('H'.$i, $datos['subtotcp']);
				
				$this->getActiveSheet()->getStyle('I'.$i)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
				$this->setActiveSheetIndex(0)->setCellValue('I'.$i, $datos['subtotuc']);
				$i++;
		
		}
		
		
		function totales($totcant,$totcp,$totuc,$titulo){
		
			global $ancho,$i,$objRichText;
			$this->getActiveSheet()->getStyle('A'.$i)->getFill()->getStartColor()->setARGB('FFCCCCCC');
			$this->getActiveSheet()->getStyle('E'.$i.':'.'I'.$i)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('FFCCCCCC');

			$this->setActiveSheetIndex(0)->setCellValue('D'.$i, $titulo.":");
			$this->getActiveSheet()->getStyle('D'.$i)->getFont()->setBold(true);
			$this->getActiveSheet()->getStyle('D'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
			
			$this->getActiveSheet()->getStyle('E'.$i)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
			$this->getActiveSheet()->getStyle('E'.$i)->getFont()->setBold(true);
			$this->setActiveSheetIndex(0)->setCellValue('E'.$i, $totcant);
			
			$this->getActiveSheet()->getStyle('H'.$i)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
			$this->getActiveSheet()->getStyle('H'.$i)->getFont()->setBold(true);
			$this->setActiveSheetIndex(0)->setCellValue('H'.$i, $totcp);
			
			$this->getActiveSheet()->getStyle('I'.$i)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
			$this->getActiveSheet()->getStyle('I'.$i)->getFont()->setBold(true);
			$this->setActiveSheetIndex(0)->setCellValue('I'.$i, $totuc);
			$i++;
		}
}


$param = $_GET;	
$param['criterio']='por_codigo';

// Create new PHPExcel object
$objPHPExcel = new reporte();
$objPHPExcel->getProperties()->setCreator($_SESSION["la_logusr"])
							 ->setLastModifiedBy($_SESSION["la_logusr"])
							 ->setTitle("EXISTENCIA EN ALMACÉN")
							 ->setSubject("EXISTENCIA EN ALMACÉN")
							 ->setDescription("EXISTENCIA EN ALMACÉN");



$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setTitle('REXISTENCIA EN ALMACÉN');

$objRichText = new PHPExcel_RichText();

$ancho['B']=30;
$ancho['G']=70;
$i=2;

if($param['codart']){
		$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$i, 'CÓDIGO DE ARTICULO:');
		$objPHPExcel->getActiveSheet()->getStyle('A'.$i)->getFont()->setBold(true);
		$objPHPExcel->getActiveSheet()->getStyle('A'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
		$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
		
		$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$i,$param['codart']);
		$objPHPExcel->getActiveSheet()->getStyle('B'.$i)->getFont()->setBold(false);
		$objPHPExcel->getActiveSheet()->getStyle('B'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
		$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
		$i++;
}

if($param['codalm']){
	$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$i, 'CÓDIGO DE ALMACÉN:');
	$objPHPExcel->getActiveSheet()->getStyle('A'.$i)->getFont()->setBold(true);
	$objPHPExcel->getActiveSheet()->getStyle('A'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
	$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
	
	$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$i,$param['codalm']);
	$objPHPExcel->getActiveSheet()->getStyle('B'.$i)->getFont()->setBold(false);
	$objPHPExcel->getActiveSheet()->getStyle('B'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
	$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth($ancho['B']);
	$i++;
}

if($param['codtipart']){
	$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$i, 'TIPO DE ARTÍCULO:');
	$objPHPExcel->getActiveSheet()->getStyle('A'.$i)->getFont()->setBold(true);
	$objPHPExcel->getActiveSheet()->getStyle('A'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
	$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
	
	$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$i,$param['codtipart']);
	$objPHPExcel->getActiveSheet()->getStyle('B'.$i)->getFont()->setBold(false);
	$objPHPExcel->getActiveSheet()->getStyle('B'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
	$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth($ancho['B']);
	$i++;
}

if($param['tipsubtot']){
    $TIPSUBTOT = $_GET['tipsubtot']=='CP'?'COSTO PROMEDIO':'ÚLTIMO COSTO';
	$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$i, 'SUBTOTALIZAR POR:');
	$objPHPExcel->getActiveSheet()->getStyle('A'.$i)->getFont()->setBold(true);
	$objPHPExcel->getActiveSheet()->getStyle('A'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
	$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
	
	$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$i,$TIPSUBTOT);
	$objPHPExcel->getActiveSheet()->getStyle('B'.$i)->getFont()->setBold(false);
	$objPHPExcel->getActiveSheet()->getStyle('B'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
	$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth($ancho['B']);
	$i++;
}

$i++;

$param['criterio']='por_listado';
$rsalm = $objsiv->SelectAlmacenes($param);
if(!$rsalm->RecordCount()){
	$objsiv->io_mensajes->message("No se encontraron almacenes creados para este criterio");
	exit();
}

$i++;
$totalcp=0;
$totaluc=0;
$totalcant=0;

foreach($rsalm as $almacen){
	
	 $datos['nro']=1;
	 $almacen['codart'] = $_GET['codart'];
	 $almacen['codtipart'] = $_GET['codtipart'];
	 $almacen['orderalm'] = $_GET['orderalm'];
	 $almacen['ordenart'] = $_GET['ordenart'];
	 $rsart = $objsiv->SelectArticulosAlmacen($almacen);
	 if($rsart===false){break; exit();}
	 $subtotuc=0;
	 $subtotcp=0;
	 $totcanalm=0;	
	 if(!$rsart->RecordCount()){continue;}
	 $objPHPExcel->encabezado_tit($almacen);
	 $objPHPExcel->encabezado(); 
	 foreach($rsart as $fila){
	    $fila['nro']=$datos['nro'];
		
		$totcanalm = $totcanalm + $fila['existencia'];
		$totalcant = $totalcant + $fila['existencia'];
		$subtotuc = $subtotuc + ($fila['existencia']*$fila['ultcosart']);
		$subtotcp = $subtotcp + ($fila['existencia']*$fila['cosproart']);
		$totalcp =  $totalcp + ($fila['existencia']*$fila['cosproart']);
		$totaluc =  $totalcp + ($fila['existencia']*$fila['ultcosart']);
		$fila['subtotcp'] = $fila['existencia']*$fila['cosproart'];
		$fila['subtotuc'] = $fila['existencia']*$fila['ultcosart'];
		$fila['cosproart']=number_format($fila['cosproart'],2,'.','');
        $objPHPExcel->fila($fila);
		$datos['nro']++;		 
	 }
	 $objPHPExcel->totales($totcanalm,$subtotcp,$subtotuc,"SUB.TOT");	
	 $i++;
}

$objPHPExcel->getActiveSheet()->getStyle('A'.$i)->getFill()->getStartColor()->setARGB('FFCCCCCC');
$objPHPExcel->getActiveSheet()->getStyle('E'.$i.':'.'I'.$i)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('FFCCCCCC');

$objPHPExcel->totales($totalcant,$totalcp,$totaluc,"TOTALES");

// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="articulos_x_almacen'.date('d_m_Y').'.xls"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit();
