<?php use_helper('UrlFunctions'); 
use_helper('UtilFunctionsPlanilla'); 
?>
<script>

acutalizarEspecialidad = function(destino,elm){
  $(destino).options.length = 1;
  var url = '<?=buildUrl('ajax/request')?>';
  var pars = 'type=getEspecialidad&nombreElm='+destino+'&value='+elm.value;
  
	var myAjax = new Ajax.Request(
                            		url, 
                            		{
                            			method: 'get', 
                            			parameters: pars, 
                            			onComplete: actualizaJSON
                            		});
}

</script>
<script>
actualizaJSON = function(request, json){
  var numeroElementos = json.length;
  for (var i = 0; i < numeroElementos; i++){
    if($(json[i][0])){
  	  switch ($(json[i][0]).tagName){
  	    case 'TD'      : Element.update(json[i][0], json[i][1]); break;
  	    case 'INPUT'   : $(json[i][0]).value=json[i][1]; break;
  	    case 'SELECT'  : 
  	      var objDDL = $(json[i][0]);
  	      if(typeof(cont) == 'undefined'){
  	        var cont = 0;
  	        objDDL.options.length = 1;
  	      }
  	      var a_contentValues = json[i][1].split("_;_");
      		var value	= a_contentValues[0];
      		var text	= a_contentValues[1];
  	      var option	= new Option(text,value);
      		try{
      			objDDL.add(option,null);
      		}catch (e){
      			objDDL.add(option,-1);
      		}
  	      cont++;
  	    break;
  	  }
    }else{
      if(json[i][0].indexOf("function") > -1){
        eval("scriptEval = "+json[i][0]);
        scriptEval();
      }
    }
  }
}

actualizarMontoTardanza = function(destino,elm){
  var url = '<?=buildUrl('ajax/request')?>';
  var pars = 'type=getMontoTardanza&nombreElm='+destino+'&value='+elm.value;
  
	var myAjax = new Ajax.Request(
                            		url, 
                            		{
                            			method: 'get', 
                            			parameters: pars, 
                            			onComplete: actualizaJSON
                            		});
 
  destino = 'FechaTardanza';
  var url = '<?=buildUrl('ajax/request')?>';
  var pars = 'type=getFechaAbiertaAS&nombreElm='+destino+'&value='+elm.value;
  
	var myAjax = new Ajax.Request(
                            		url, 
                            		{
                            			method: 'get', 
                            			parameters: pars, 
                            			onComplete: actualizaJSON
                            		});
}
</script>
<?php
//Obtener Dia Abierto del balance diario

$o_ConceptosFN = new CrPlanillaConceptoFN();
$o_ConceptosFN->setEstado('A');
$o_ConceptosFN->setUbicacion('OTR');
$a_o_ConceptosFN = $o_ConceptosFN->select(); 
	

//Separar por ubicacion y ordenado por su numero de posicion

if(is_array($a_o_ConceptosFN)){
	foreach ($a_o_ConceptosFN as $key => $o_ConceptosFN){
		$a_Conceptos[$o_ConceptosFN->getCodigo()] = $o_ConceptosFN->getIdConcepto();
		$a_con_otros[$o_ConceptosFN->getPosicionPlanilla()] = $o_ConceptosFN;
	}
}


$o_ConceptosFN = new CrPlanillaConceptoFN();
$o_ConceptosFN->setEstado('A');
$o_ConceptosFN->setVisualizarPlanilla('1');
$a_o_ConceptosFN = $o_ConceptosFN->select(); 
	

//Separar por ubicacion y ordenado por su numero de posicion

if(is_array($a_o_ConceptosFN)){
	foreach ($a_o_ConceptosFN as $key => $o_ConceptosFN){
		$a_Conceptos[$o_ConceptosFN->getCodigo()] = $o_ConceptosFN->getIdConcepto();
		switch($o_ConceptosFN->getUbicacion()){
			case "ING":
				$a_con_ingresos[$o_ConceptosFN->getPosicionPlanilla()] = $o_ConceptosFN;
				break;
			case "DES":
				$a_con_descuentos[$o_ConceptosFN->getPosicionPlanilla()] = $o_ConceptosFN;	
				break;
			case "APO":
				$a_con_aportes[$o_ConceptosFN->getPosicionPlanilla()] = $o_ConceptosFN;	
				break;
			
		}
	}
}
ksort($a_con_ingresos);
echo "<pre>";
//print_r($a_con_ingresos);	
echo "</pre>";	

ksort($a_con_descuentos);
echo "<pre>";
//print_r($a_con_descuentos);	
echo "</pre>";	

$o_colaborador = new ColaboradorBean();
$a_rol[] = 'sys.res';
$a_rol[] = 'sys.ope';
$a_rol[] = 'sys.sup';
$a_rol[] = 'sys.sec';
$a_rol[] = 'sys.cen';
$a_rol[] = 'sys.ger';

//$o_colaborador->tamPag = 9999;
//$o_colaborador->sortType   = $sortType;
 
$o_colaborador->setFiltroColaborador($a_rol);
if( myUser::getUser()->getRoleId() == "sys.res"){ 
	$o_colaborador->setIdPadre(myUser::getUser()->getIdColaborador());
}elseif($cboSucursal){
	$SucursalBean = new SucursalBean();
	$SucursalBean->setIdSucursal($cboSucursal);
	
	$cboSucursalDP = new SucursalDP($SucursalBean);
	$a_cboSucursalDP = $cboSucursalDP->select();
	if(is_array($a_cboSucursalDP)){
		foreach ($a_cboSucursalDP as $key => $o_cboSucursalDP){
			$idAdministrador = $o_cboSucursalDP->getIdAdministrador();
		}
		if($idAdministrador) $o_colaborador->setIdPadre($idAdministrador);
	}
	
	
		
}
//$o_colaborador->setEstado('A');
$o_colaborador->sortCampos = 'IdRol';
$o_colaborador->sortType   = '2';

$o_SucursalBean = new SucursalBean();
$o_SucursalBL = new SucursalBL();
$a_Sucursal = $o_SucursalBL->busquedaSucursal($o_SucursalBean);

$o_colaboradorDP = new ColaboradorDP($o_colaborador);
$a_Colaborador_1 = $o_colaboradorDP->select();

//Administrador
$o_colaborador = new ColaboradorBean();
$a_rol[] = 'sys.res';
$a_rol[] = 'sys.ope';
$a_rol[] = 'sys.sup';
$a_rol[] = 'sys.sec';

//$o_colaborador->tamPag = 9999;
//$o_colaborador->sortType   = $sortType;
 
$o_colaborador->setFiltroColaborador($a_rol);
if( myUser::getUser()->getRoleId() == "sys.res"){ 
	$o_colaborador->setIdColaborador(myUser::getUser()->getIdColaborador());
	//$o_colaborador->setEstado('A');
	$o_colaborador->sortCampos = 'IdRol';
	$o_colaborador->sortType   = '2';
	
	$o_colaboradorDP = new ColaboradorDP($o_colaborador);
	$a_Colaborador_2 = $o_colaboradorDP->select();
}else{
	if(!$cboSucursal){
		$a_Colaborador_2 = array();
	}else{
		$o_colaborador->setIdColaborador($idAdministrador);
		//$o_colaborador->setEstado('A');
		$o_colaborador->sortCampos = 'IdRol';
		$o_colaborador->sortType   = '2';
		
		$o_colaboradorDP = new ColaboradorDP($o_colaborador);
		$a_Colaborador_2 = $o_colaboradorDP->select();
	}
}

$a_Colaborador = array_merge($a_Colaborador_1,$a_Colaborador_2);



reset($a_Colaborador);
$o_planillaColaborador = new CrPlanillaDP();
$o_planillaColaborador->setPeriodo($periodo);
foreach ($a_Colaborador as $key =>$o_Colaborador){
	$o_planillaColaborador->setIdColaborador($o_Colaborador->getIdColaborador());
	$a_planilla_Col_valor[$o_Colaborador->getIdColaborador()] = $o_planillaColaborador->getPlanilla($a_con_ingresos,$a_con_descuentos,$a_con_aportes,$a_con_otros);
}

if(isset($control)){
	
	$o_crPlanillaFN = new CrPlanillaPeriodoFN();
	$o_crPlanillaFN->setPeriodo($periodo);
	$o_crPlanillaFN->setActivo('1');
	$o_crPlanillaFN->setEstado('C');
	$a_o_crPlanillaFN = $o_crPlanillaFN->select();
	if(is_array($a_o_crPlanillaFN)) exit("El periodo ".$periodo." ya esta cerrado");
	
	
	//Genera adelanto para el siguiente periodo
	if(is_array($adelantos)){
		foreach ($adelantos as $idColaborador_t => $montoAdelanto){
			if($montoAdelanto < 0 ){
				$siguientePeriodo 	= siguientePeriodo($periodo);
				$fechaBalanceAbierto = $siguientePeriodo."-01";
				
				$o_AdelantoBean = new AdelantoBean();
				
				$o_AdelantoBean->setIdColaborador($idColaborador_t);
				$o_AdelantoBean->setMonto($montoAdelanto*-1);
				$o_AdelantoBean->setFechaAdelanto($fechaBalanceAbierto);
				$o_AdelantoBean->setEstado('A');
				$o_AdelantoBean->setEliminado("0");
				$o_AdelantoBean->setFechaCreacion(date("Y-m-d H:i:s"));
				$o_AdelantoBean->setUsuarioCreacion('sys.planilla');
				
				$o_AdelantoSystemClass = new AdelantoSystemClass($o_AdelantoBean);
				$bResult = $o_AdelantoSystemClass->insertAdelanto();
			  
			}
		}
	}
	
	
	
	$montoIngreso = 0;
	$montoDescuento = 0;
	foreach ($a_Colaborador as $key =>$o_Colaborador){
	 	$montoSubtotal = 0;
	 	//Guradar los detalles
	 	foreach ($a_con_ingresos as $key =>$o_con_ingresos){
			$monto = $a_planilla_Col_valor[$o_Colaborador->getIdColaborador()][$o_con_ingresos->getCodigo()];
			$montoIngresos += $monto;
			$montoIngreso += $monto;
			$o_PlanillaDP = new CrPlanillaDP();
			$o_PlanillaDP->setPeriodo($periodo);
			$o_PlanillaDP->setIdColaborador($o_Colaborador->getIdColaborador());
			$o_PlanillaDP->setIdConcepto($a_Conceptos[$o_con_ingresos->getCodigo()]);
			$o_PlanillaDP->setValor($monto);
			$o_PlanillaDP->setFechaCreacion(date('Y-m-d H:i:s'));
			$o_PlanillaDP->setUsuarioCreacion(myUser::getUser()->getUserId());
			$o_PlanillaDP->save();
		}
		foreach ($a_con_descuentos as $key =>$o_con_descuentos){
			$monto = $a_planilla_Col_valor[$o_Colaborador->getIdColaborador()][$o_con_descuentos->getCodigo()];
			$montoDescuentos += $monto;
			$montoDescuento += $monto;
			$o_PlanillaDP = new CrPlanillaDP();
			$o_PlanillaDP->setPeriodo($periodo);
			$o_PlanillaDP->setIdColaborador($o_Colaborador->getIdColaborador());
			$o_PlanillaDP->setIdConcepto($a_Conceptos[$o_con_descuentos->getCodigo()]);
			$o_PlanillaDP->setValor($monto);
			$o_PlanillaDP->setFechaCreacion(date('Y-m-d H:i:s'));
			$o_PlanillaDP->setUsuarioCreacion(myUser::getUser()->getUserId());
			$o_PlanillaDP->save();
			
		}	
		
		

		foreach ($a_con_aportes as $key =>$o_con_aportes){
			$monto = $a_planilla_Col_valor[$o_Colaborador->getIdColaborador()][$o_con_aportes->getCodigo()];
			$montoAportes += $monto;
			$o_PlanillaDP = new CrPlanillaDP();
			$o_PlanillaDP->setPeriodo($periodo);
			$o_PlanillaDP->setIdColaborador($o_Colaborador->getIdColaborador());
			$o_PlanillaDP->setIdConcepto($a_Conceptos[$o_con_aportes->getCodigo()]);
			$o_PlanillaDP->setValor($monto);
			$o_PlanillaDP->setFechaCreacion(date('Y-m-d H:i:s'));
			$o_PlanillaDP->setUsuarioCreacion(myUser::getUser()->getUserId());
			$o_PlanillaDP->save();
			
		}	
		foreach ($a_con_otros as $key =>$o_con_otros){
			$monto = $a_planilla_Col_valor[$o_Colaborador->getIdColaborador()][$o_con_otros->getCodigo()];
			$o_PlanillaDP = new CrPlanillaDP();
			$o_PlanillaDP->setPeriodo($periodo);
			$o_PlanillaDP->setIdColaborador($o_Colaborador->getIdColaborador());
			$o_PlanillaDP->setIdConcepto($a_Conceptos[$o_con_otros->getCodigo()]);
			$o_PlanillaDP->setValor($monto);
			$o_PlanillaDP->setFechaCreacion(date('Y-m-d H:i:s'));
			$o_PlanillaDP->setUsuarioCreacion(myUser::getUser()->getUserId());
			$o_PlanillaDP->save();
			
		}	
	}
	//Guradar la cabecera
 	$o_PlanillaPeirodoDP = new CrPlanillaPeriodoDP();
 	$o_PlanillaPeirodoDP->setPeriodo($periodo);
 	$o_PlanillaPeirodoDP->setFechaCierre(date('Y-m-d H:i:s'));
	$o_PlanillaPeirodoDP->setTotalIngresos($montoIngresos);
	$o_PlanillaPeirodoDP->setTotalDescuentos($montoDescuentos);
	$o_PlanillaPeirodoDP->setTotalAportes($montoAportes);
	$o_PlanillaPeirodoDP->setNeto($montoIngresos - $montoDescuentos);
	$o_PlanillaPeirodoDP->setEstado('C');
	$o_PlanillaPeirodoDP->update();	
	
	
	$o_PlanillaConceptoPerDP = new CrPlanillaConceptoPerDP();
	$o_PlanillaConceptoPerDP->setPeriodo($periodo);
	$o_PlanillaConceptoPerDP->saveCP();
	
	$bResult = 1;

 	if($bResult){
	    ?>
	    <script language="JavaScript">
	    parent.objMainTab.reqBody('<?=buildUrl('planilla/list')?>','&block=002&insert=1');
	    parent.objMainTab.windowsCloseAll();
	    </script>
	    <?
	}else{
    	$url = buildUrl('planilla/add', "block=".$block."&error=1");
  	}
  	exit;
}
 
 
 

 ?>
 <script>
	function consultaSucursal(){
		var periodo = $('periodo').value;
		var sucursal = $('cboSucursal').value;
		
		var cadSucursal = '/periodo/'+periodo
		
		if(sucursal){
			cadSucursal = cadSucursal + '/cboSucursal/'+sucursal	
		}
		
		location.href='<?=buildUrl('planilla/add','&block=001')?>'+cadSucursal;
	}
</script>
 
<img src="/images/common/spacer.gif" width="10">
<table class="cuerpo" width="98%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td height="0">
      <table border="0" cellpadding="0" cellspacing="0" width="100%">
        <tr>
          <td class="titleBody">
            <li>Planilla</li>
            <span class="subtitle"><I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:::&nbsp;Cierre de Planilla</I></span></td>
          <td align="right" valign="baseline">&nbsp;</td>
        </tr>
      </table>
    </td>
  </tr>
     
  <tr>
    <td valign="top">
      <form id="form1" name="form1" method="POST">
      <input type="hidden" name="control" value="1">
        <table hspace="20px" class="marco" width="99%">
          <tr>
            <td valign="top">
              <table width="100%" border="0" cellpadding="5" cellspacing="0" style="background: #E3E9E2">
          		<tr>
    				  <td height="0">
    				  <fieldset>
    					<legend class="fielsettex"><I>Datos Generales</I></legend>
    					 <table width="100%" border="0" cellspacing="6" cellpadding="0">
							  <tr>
                  					<td nowrap="nowrap" width="10%" class="cabecera"><label class="label req" for="txtAdministrador" >Periodo</label></td>
  								 	<td nowrap="nowrap"><label class="label req" for="txtAdministrador" ><?=$periodo?></label></td>
									<input type="hidden" name="periodo" id="periodo" value="<?=$periodo?>">
					          </tr>
							    <?php if( myUser::getUser()->getRoleId() != "sys.res"){ ?>
							  <tr>
                  					<td nowrap="nowrap" width="10%" class="cabecera"><label class="label req" for="txtAdministrador" >Sucursal</label></td>
  								 	<td nowrap="nowrap"><select name="cboSucursal" id="cboSucursal" type="text" class="combo" onchange="consultaSucursal();"/> 
							 	            <option value="" > - Seleccionar - </option>
					                        <?php foreach ($a_Sucursal as $iKey => $o_SucursalBean){ ?>
					                        <option <? if($o_SucursalBean->getIdSucursal() == $cboSucursal) echo " SELECTED "?>" value="<?=$o_SucursalBean->getIdSucursal()?>">
					                          <?=$o_SucursalBean->getDescripcion()?>
					                        </option>
					                        <?php } ?> 
						              </select>
						              </td>
					          </tr>
							    <?php }?>
						</table>
						
						<table width="100%" border="1" cellspacing="0" cellpadding="2">
						
							  <tr>
                  					<td nowrap="nowrap" colspan="2" class="cabecera" width="30%"></td>
  								 	<td nowrap="nowrap" align="center" colspan="<?=count($a_con_ingresos)?>"><label class="label" >Ingresos (S/.)</label></td>
  								 	<td nowrap="nowrap" align="center" colspan="<?=count($a_con_descuentos)?>"><label class="label" >Descuentos (S/.)</label></td>
  								 	
  								 	<td nowrap="nowrap"><label class="label" ></label></td>
  								 	<td nowrap="nowrap" align="center" colspan="<?=count($a_con_aportes)?>"><label class="label" >Aportes (S/.)</label></td>
					          </tr>
					          <tr>
                  					<td nowrap="nowrap" colspan="2" class="cabecera"></td>
							 		<?php
							 		reset($a_con_ingresos);
							 		foreach ($a_con_ingresos as $key =>$o_con_ingresos){?>
							 			<td nowrap="nowrap" align="center"><label class="label" ><?=$o_con_ingresos->getDescripcionPlanilla()?></label></td>
							 		<?}?>
							 		<?foreach ($a_con_descuentos as $key =>$o_con_descuentos){?>
							 			<td nowrap="nowrap" align="center"><label class="label" ><?=$o_con_descuentos->getDescripcionPlanilla()?></label></td>
							 		<?}?>
							 		
  								 	<td nowrap="nowrap" align="center"><label class="label" >Pago</label></td>
  								 	<?foreach ($a_con_aportes as $key =>$o_con_aportes){?>
							 			<td nowrap="nowrap" align="center"><label class="label" ><?=$o_con_aportes->getDescripcionPlanilla()?></label></td>
							 		<?}?>
					          </tr>
					          <?php
					          reset($a_Colaborador);
					          foreach ($a_Colaborador as $key =>$o_Colaborador){?>
					           <tr>
  								 	<td nowrap="nowrap"><label class="label" ><?=$key+1?></label></td>
  								 	<td nowrap="nowrap"><label class="label" ><?=$o_Colaborador->getNombreCompleto()?></label></td>
  								 	<?php
  								 	$montoSubtotal = 0;
  								 	foreach ($a_con_ingresos as $key =>$o_con_ingresos){?>
							 			<td nowrap="nowrap" align="center"><label class="label" ><?php 
							 			$monto = $a_planilla_Col_valor[$o_Colaborador->getIdColaborador()][$o_con_ingresos->getCodigo()];
							 			echo number_format($monto,2); 
							 			$montoSubtotal +=$monto;
							 			$a_montoISubtotal[$o_con_ingresos->getCodigo()] +=$monto;
							 			?>
							 			</label>
							 			</td>
							 		<?php }?>
							 		<?php foreach ($a_con_descuentos as $key =>$o_con_descuentos){?>
							 			<td nowrap="nowrap" align="center"><label class="label" ><?php 
							 			$monto = $a_planilla_Col_valor[$o_Colaborador->getIdColaborador()][$o_con_descuentos->getCodigo()];
							 			echo number_format($monto,2);
							 			$montoSubtotal -=$monto;
							 			$a_montoSSubtotal[$o_con_descuentos->getCodigo()] +=$monto;
							 			?></label>
							 			
							 			</td>
							 		<?php }?>
							 		
							 		<td  align="right"><label class="label Req" ><?php 
							 		echo number_format($montoSubtotal,2);
							 		$montoTotalV += $montoSubtotal;
							 		
							 		?>
						 			<?php 
						 				//Genera adelanto para el siguiente periodo
						 				if($montoSubtotal < 0 ){
						 					?>
						 					<input type="hidden" name="adelantos[<?php echo $o_Colaborador->getIdColaborador()?>]" value="<?php echo round($montoSubtotal,2);?>">
						 					<?php
						 				}
						 			?>
							 		</td>
							 		</label>
							 		<?php foreach ($a_con_aportes as $key =>$o_con_aportes){?>
							 			<td nowrap="nowrap" align="center"><label class="label" ><?php 
							 			$monto = $a_planilla_Col_valor[$o_Colaborador->getIdColaborador()][$o_con_aportes->getCodigo()];
							 			echo number_format($monto,2);
							 				
							 			$a_montoASubtotal[$o_con_aportes->getCodigo()] +=$monto;
							 			?></label></td>
							 		<?php }?>
							 		
					          </tr>
					          <?}?>
					          
					           <tr>
                  					<td nowrap="nowrap" colspan="2" class="cabecera" width="30%" align="right">Totales</td>
  								 	<?php
							 		reset($a_con_ingresos);
							 		foreach ($a_con_ingresos as $key =>$o_con_ingresos){?>
							 			<td nowrap="nowrap" align="center"><label class="label" ><?=number_format($a_montoISubtotal[$o_con_ingresos->getCodigo()],2)?></label></td>
							 		<?}?>
							 		<?foreach ($a_con_descuentos as $key =>$o_con_descuentos){?>
							 			<td nowrap="nowrap" align="center"><label class="label" ><?=number_format($a_montoSSubtotal[$o_con_descuentos->getCodigo()],2)?></label></td>
							 		<?}?>
							 		
  								 	<td nowrap="nowrap"  align="right"><label class="label req"><?=number_format($montoTotalV,2)?></label></td>
  								 	<?foreach ($a_con_aportes as $key =>$o_con_aportes){?>
							 			<td nowrap="nowrap" align="center"><label class="label" ><?=number_format($a_montoASubtotal[$o_con_aportes->getCodigo()],2)?></label></td>
							 		<?}?>
					          </tr>
						</table>
						
						 <table width="100%" border="0" cellspacing="0" cellpadding="0">
							  <tr>
								 <td><img src="/images/common/spacer.gif" width="10"></td>
							  </tr>
							  <tr>
								<td align="center">
								  <input type="hidden" name="typeSubmit" id="typeSubmit">
								  <!--<input class="button" type="submit" value="Grabar y Nuevo" onclick="$('typeSubmit').value='add';"/>-->
								  <?php if((myUser::getUser()->getRoleId() == "sys.gen" || myUser::getUser()->getRoleId() == "sys.cen") && !$cboSucursal){?>
								 	 <input class="button" type="submit" value="Grabar" onclick="$('typeSubmit').value='list';">
								  <?php }?>
								  <input class="button" type="button" value="Cancelar" onclick="location.href='<?=buildUrl('planilla/list','&block=002')?>'"/>
								</td>
							  </tr>
							
							</table>
    					</fieldset>				
    				</td>
                </tr>
      </table>
      </form>
			<script type="text/javascript">
				var valid = new Validation('form1', {immediate : true});
			</script>
    </td>
  </tr>
</table>
