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

if(myUser::getUser()->getIdPadre() == "1"){
  	$o_ColaboradorBean_Temp = new ColaboradorBean();
  	$o_ColaboradorBean_Temp->setIdColaborador(myUser::getUser()->getIdColaborador()); 
  	$o_ColaboradorBL_Temp = new ColaboradorBL();
  	$o_ColaboradorBeanResult = $o_ColaboradorBL_Temp->busquedaColaborador($o_ColaboradorBean_Temp);
  	 	
  	$IdPadre = $o_ColaboradorBeanResult[0]->getIdPadre();
  	
  	$o_ColaboradorBean = new ColaboradorBean();
	$o_ColaboradorBean->setIdPadre($IdPadre);
	$o_ColaboradorBL = new ColaboradorBL();	
  	
  	$a_o_Colaborador = $o_ColaboradorBL->busquedaColaborador($o_ColaboradorBean);
  	
	if(is_array($a_o_Colaborador)){
		foreach ($a_o_Colaborador as $key => $o_colaborador){
			$a_Colaborador[] = $o_colaborador->getIdColaborador();
		}
	}
	
}else{//Solo los Hijos del Colaborador
  	$IdPadre = myUser::getUser()->getIdColaborador();
  	 	
  	$o_ColaboradorBean = new ColaboradorBean();
	$o_ColaboradorBean->setIdPadre($IdPadre);
	$o_ColaboradorBL = new ColaboradorBL();	
  	
  	$a_o_Colaborador = $o_ColaboradorBL->busquedaColaborador($o_ColaboradorBean);
	if(is_array($a_o_Colaborador)){
		foreach ($a_o_Colaborador as $key => $o_colaborador){
			$a_Colaborador[] = $o_colaborador->getIdColaborador();
		}
	}
}

//Sacar el nombre de la sucursal
$o_SucursalBean = new SucursalBean();
$o_SucursalBean->setIdAdministrador($IdPadre);

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

foreach ($a_o_sucursal as $key => $o_sucursal){
	$IdSucursal 	= $o_sucursal->getIdSucursal();
	$NombreSucursal = $o_sucursal->getDescripcion();
}

$o_BalanceDiaNew = new BalanceDiaBean();
$o_BalanceDiaNew->setIdColaboradorPermitido($a_Colaborador); 
$o_BalanceDiaNew->setIdAdministrador($IdPadre); 
$o_BalanceDiaNew->setIdSucursal($IdSucursal); 


$o_BalanceDiaNewDP 		= new BalanceDiaDP($o_BalanceDiaNew);
$fechaBalanceAbierto  	= $o_BalanceDiaNewDP->ObtenerDiaAbierto();
$a_ResumenColaborador 	= $o_BalanceDiaNewDP->ObtenerColaboradoresNewBalance($fechaBalanceAbierto);

//Obtener el nombre del Adminitrador
$idAdministrador = $IdPadre;
$o_ColaboradorAdmin = new ColaboradorBean();
$o_ColaboradorAdmin->setIdColaborador($idAdministrador);

$o_ColaboradorAdminBL = new ColaboradorBL();
$a_o_Colaborador = $o_ColaboradorAdminBL->busquedaColaborador($o_ColaboradorAdmin);
foreach ($a_o_Colaborador as $key => $o_Colaborador){
	$NombreAdministrador = $o_Colaborador->getNombreCompleto();
}



if($control){//cuando se hizo el submit
  
   //Crear Objeto Balance Dia 
  
  if(is_array($a_ResumenColaborador)){
  	foreach ($a_ResumenColaborador as $key => $a_ResesumenDiario) {
	  $o_BalanceDiaSave = new BalanceDiaBean();
	  $o_BalanceDiaSave->setIdSucursal($IdSucursal);
	  $o_BalanceDiaSave->setNombreSucursal($NombreSucursal);
	  $o_BalanceDiaSave->setFechaBalance($fechaBalanceAbierto);
	  $o_BalanceDiaSave->setIdColaborador($a_ResesumenDiario['IdColaborador']);
	  $o_BalanceDiaSave->setNombreColaborador($a_ResesumenDiario['NombreCompleto']);
	  $o_BalanceDiaSave->setTotalCaja(round($a_ResesumenDiario['TotalCaja'],2));
	  $o_BalanceDiaSave->setTotalPrestamos(round($a_ResesumenDiario['TotalPrestamo'],2));
	  $o_BalanceDiaSave->setTotalPartesPrestamos(round($a_ResesumenDiario['TotalPartesPrestamo'],2));
	  $o_BalanceDiaSave->setSaldoPrestamos(round($a_ResesumenDiario['TotalSaldo'],2));
	  $o_BalanceDiaSave->setIndicePagos(round($a_ResesumenDiario['IndicePagos'],2));
	  $o_BalanceDiaSave->setTotalPagos(round($a_ResesumenDiario['TotalPago'],2));
	  $o_BalanceDiaSave->setTotalSobrantes(round($a_ResesumenDiario['TotalSobrantes'],2));
	  $o_BalanceDiaSave->setTotalGastoOperativo(round($a_ResesumenDiario['TotalGastoOperativo'],2));
	  $o_BalanceDiaSave->setTotalFaltantes(round($a_ResesumenDiario['TotalFaltantes'],2));
	  $o_BalanceDiaSave->setTotalGastoAdministrativo(round($a_ResesumenDiario['TotalGastoAdmin'],2));
	  $o_BalanceDiaSave->setTotalGastoOperativo(round($a_ResesumenDiario['TotalGastoOperativo'],2));
	  $o_BalanceDiaSave->setFechaCreacion(date('Y-m-d H:i:s'));
	  $o_BalanceDiaSave->setUsuarioCreacion(myUser::getUser()->getUserId());
	  $Total += round($a_ResesumenDiario['TotalCaja'],2) +
	  			round($a_ResesumenDiario['TotalPago'],2) 
	  			- round($a_ResesumenDiario['TotalPrestamo'],2) 
	  			+ round($a_ResesumenDiario['TotalGastoAdmin'],2) 
	  			+ round($a_ResesumenDiario['TotalSobrantes'],2) 
	  			- round($a_ResesumenDiario['TotalFaltantes'],2) 
	  			-round($a_ResesumenDiario['TotalGastoOperativo'],2)
	  			-round($a_ResesumenDiario['TotalPartesPrestamo'],2);
	  
	  $o_BalanceDiaNewDP = new BalanceDiaDP($o_BalanceDiaSave);
	  $o_BalanceDiaNewDP->save();
  	}
  	$o_BalanceDiaSave->setIdAdministrador($idAdministrador);
	$o_BalanceDiaSave->setNombreAdministrador($NombreAdministrador);
  	$o_BalanceDiaSave->setComentario($comentario);
  	$o_BalanceDiaSave->setFechaCreacion(date('Y-m-d H:i:s'));
	$o_BalanceDiaSave->setUsuarioCreacion(myUser::getUser()->getUserId());
	$o_BalanceDiaSave->setSumaTotal($Total);
	$o_BalanceDiaNewDP = new BalanceDiaDP($o_BalanceDiaSave);
  	$bResult = $o_BalanceDiaNewDP->saveHeader();
  }
   
  if($bResult){
    ?>
      <script language="JavaScript">
      parent.objMainTab.reqBody('<?=buildUrl('bdi/'.$typeSubmit)?>','&block=001&insert=1');
      parent.objMainTab.windowsCloseAll();
      </script>
    <?
  }
}

?>

<script>
validateControls = function(){
  var errOutput               = { error:false, msg:"" };
   
   if(valueTipo.value == ""){
    errOutput.error = true;
    errOutput.msg   += "Debe de seleccionar el tipo.\n";
  }
  return errOutput;
}

acutalizarEspecialidad = function(destino,elm){
  $(destino).options.length = 1;
  var url = '<?=buildUrlComplet('mnt.php/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 type="text/javascript" src="<?php echo Constantes::ROOT_DIR_APP?>/web/js/objectForm.js"></script>

<script type="text/javascript">
  validatePass = function(){
    valid.onSubmit = false;
  }
</script>

<script>
actualizarElementos = function(elmValue, elmDestino,type){
  var url = '<?=buildUrl('ajax/request')?>';
  var pars = 'type=name&typeFind='+type+'&nombreElm='+elmDestino+'&value='+elmValue;
  
	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();
      }
    }
  }
}
</script>


<script>
insertOptionDefault = function(){
  
  var table = $('tableContent');
  var countRows = table.rows.length;
  
  var tr = table.rows[countRows-1];
  var td = tr.cells[1];
  var idSelect = td.firstChild.id;
  
  values = [[idSelect,'alm_;_Alumno']];
  
  
  actualizaJSON('', values);
  
}
</script>

<script>
events = function(type){
  oReturn = validateControls();
  if(!oReturn.error){
    switch (type){
      case 'submit':
         $('form1').submit();
      break;
      case 'insert':
        grid.insert();
        insertOptionDefault();
      break;
      case 'delete':
        grid.deletes();
      break;
    }
  }else{
    alert(oReturn.msg);
    return false;
  }
}
</script>

<script>
buscaDetalle = function(e,elm){
  var charCode;
  if (navigator.appName == "Mozilla" || navigator.appName == "Netscape"){
    charCode = e.keyCode;
  }else{
    charCode = event.keyCode;
  }
  if (charCode == 114){
    
    var parentTr      = elm.parentNode.parentNode.id;
    var valueSelect   = $(parentTr + "_td_1_tipo[]").value;
    var url           = "";
    
    if(valueSelect != ""){
      switch (valueSelect){
        case 'doc':
          url = '<?=buildUrlComplet('mnt.php/doc/listFind')?>iframe/contentResultxx/nameElm/'+elm.id+'/value/'+elm.value;
          tit = 'Docente';
        break;
        case 'alm':
          url = '<?=buildUrlComplet('mnt.php/alm/listFind')?>iframe/contentResultxx/nameElm/'+elm.id+'/value/'+elm.value;
          tit = 'Alumno';
        break;
        case 'ext':
          url = '<?=buildUrlComplet('mnt.php/ext/listFind')?>iframe/contentResultxx/nameElm/'+elm.id+'/value/'+elm.value;
          tit = 'Externo';
        break;
      }
      parent.objMainTab.modalDialog(url,{title:'Busqueda de '+ tit,width:600,height:420});
    }else{
      elementLoad.show(undefined,'&nbsp;&nbsp;&nbsp;Seleccione el tipo para el ListFind.'); setTimeout('elementLoad.hide()', 1000);
    }
  }
}
</script>

<script>
actionSelect = function(elm){
  
  var parentTr      = elm.parentNode.parentNode.id;
  
  $(parentTr + "_td_2_codigo[]").value = "";
  $(parentTr + "_td_3").innerHTML = "&nbsp;";
  $(parentTr + "_td_4_part[]").value = "";
  
}

actionCod = function(elm){

  elm       = $(elm);
  elm.value = elm.value.trim();
  var elmValue = elm.value;
  
  parentTr = elm.parentNode.parentNode.id;
  
  elmDestino = parentTr + "_td_3";
  
  if(elmValue != ""){
    
    if(!grid.validateByColumn(1, elm, 'INPUT')){
    
      var parentTr      = elm.parentNode.parentNode.id;
      var valueSelect   = $(parentTr + "_td_1_tipo[]").value;
      
      $(elmDestino).innerHTML = "&nbsp;";
      formItem.loadProcess(parentTr + "_td_3");
      actualizarElementos(elmValue, elmDestino, valueSelect);
      
    }else{
      
      elm.value = "";
      elementLoad.show(undefined,'&nbsp;&nbsp;&nbsp;El Código ya fue Ingresado'); setTimeout('elementLoad.hide()', 1000);
      $(elmDestino).innerHTML = "&nbsp;";
      
    }
    
  }
  
}
</script>
<img src="/images/common/spacer.gif" width="10">
<form id="form1" name="form1" method="POST">
<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>Balance del D&iacute;a</li>
            <span class="subtitle"><I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:::&nbsp;Listado</I></span></td>
          <td align="right" valign="baseline">&nbsp;</td>
        </tr>
      </table>
    </td>
  </tr>
      <script type="text/javascript">
        validatePass = function(){
          
            valid.onSubmit = false;
          
        }
      </script>
  <tr>
    <td valign="top">
      <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">
          		<tr>
    				<td height="0">
    					<table width="100%" border="0" cellpadding="5" cellspacing="0">
    						<?php if( myUser::getUser()->getRoleId() == "sys.gen"){?>
    						<tr>
    							<td width="10%"><label class="label">Sucursal</label></td>	
    							<td><label class="label">&nbsp;:&nbsp;<?=$NombreSucursal?></label></td>	
    						</tr>
    						<?php }?>
    						<tr>
    							<td width="10%"><label class="label">Fecha</label></td>	
    							<td><label class="label">&nbsp;:&nbsp;<?=$fechaBalanceAbierto?></label></td>	
    						</tr>
    						
    					</table>
    					<table width="100%" border="1" cellpadding="5" cellspacing="0">
          					<tr>
          						<td align="left"><label class="label">Nombre</label></td>		
          						<td align="center"><label class="label">T.Caja</label></td>		
          						<td align="center"><label class="label">T.Part.Prest.</label></td>	
          						<td align="center"><label class="label">T.Prestamos</label></td>		
          							
          						<td align="center"><label class="label">T.Pagos</label></td>
          						<td align="center"><label class="label">Sobrantes</label></td>
          						<td align="center"><label class="label">Faltante</label></td>			
          						<td align="center"><label class="label">T.G.Admin.</label></td>		
          						<td align="center"><label class="label">T.G.Oper.</label></td>		
          						<td align="center"><label class="label">Total</label></td>
          					</tr>
	    				<?
	    					if(is_array($a_ResumenColaborador)){
	    						foreach ($a_ResumenColaborador as $key => $a_ResesumenDiario) {
									?>
									<tr>
		          						<td><label class="label"><?php echo $a_ResesumenDiario['NombreCompleto']?></label></td>		
		          						<td align="right"><label class="label"><?php $TotalCaja += $a_ResesumenDiario['TotalCaja'];echo number_format(round($a_ResesumenDiario['TotalCaja'],2),2)?></label></td>		
		          						<td align="right"><label class="label"><?php $TotalPartesPrestamo += $a_ResesumenDiario['TotalPartesPrestamo'];echo number_format(round($a_ResesumenDiario['TotalPartesPrestamo'],2),2)?></label></td>		
		          						<td align="right"><label class="label"><?php $TotalPrestamo += $a_ResesumenDiario['TotalPrestamo'];echo number_format(round($a_ResesumenDiario['TotalPrestamo'],2),2)?></label></td>		
		          						<td align="right"><label class="label"><?php $TotalPago += $a_ResesumenDiario['TotalPago'];echo number_format(round($a_ResesumenDiario['TotalPago'],2),2)?></label></td>
		          						<td align="right"><label class="label"><?php $TotalSobrantes += $a_ResesumenDiario['TotalSobrantes'];echo number_format(round($a_ResesumenDiario['TotalSobrantes'],2),2)?></label></td>
		          						<td align="right"><label class="label"><?php $TotalFaltantes += $a_ResesumenDiario['TotalFaltantes'];echo number_format(round($a_ResesumenDiario['TotalFaltantes'],2),2)?></label></td>				
		          						<td align="right"><label class="label"><?php $TotalGastoAdmin += $a_ResesumenDiario['TotalGastoAdmin']; echo number_format(round($a_ResesumenDiario['TotalGastoAdmin'],2),2)?></label></td>		
		          						<td align="right"><label class="label"><?php $TotalGastoOperativo += $a_ResesumenDiario['TotalGastoOperativo']; echo number_format(round($a_ResesumenDiario['TotalGastoOperativo'],2),2)?></label></td>		
		          						<td align="right"><label class="label">
		          						<?php $Total += round($a_ResesumenDiario['TotalCaja'],2) - 
		          																round($a_ResesumenDiario['TotalPartesPrestamo'],2) +
		          																round($a_ResesumenDiario['TotalPago'],2) - 
		          																round($a_ResesumenDiario['TotalGastoOperativo'],2) - 
		          																round($a_ResesumenDiario['TotalPrestamo'],2) + 
		          																round($a_ResesumenDiario['TotalGastoAdmin'],2) + 
		          																round($a_ResesumenDiario['TotalSobrantes'],2)-
		          																round($a_ResesumenDiario['TotalFaltantes'],2);
		          														echo number_format(
		          																
		          																round($a_ResesumenDiario['TotalCaja'],2) - 
		          																round($a_ResesumenDiario['TotalPartesPrestamo'],2) +
		          																round($a_ResesumenDiario['TotalPago'],2) - 
		          																round($a_ResesumenDiario['TotalGastoOperativo'],2) - 
		          																round($a_ResesumenDiario['TotalPrestamo'],2) + 
		          																round($a_ResesumenDiario['TotalGastoAdmin'],2) + 
		          																round($a_ResesumenDiario['TotalSobrantes'],2)-
		          																round($a_ResesumenDiario['TotalFaltantes'],2)
		          																,2)?></label>
		          					   </td>		
		          					</tr>
									<?php    							
	    						}
	    					}
	    				?>  
	    					<tr>
          						<td align="right"><label class="label">&nbsp;Totales:</label></td>		
          						<td align="right"><label class="label"><b><?=number_format(round($TotalCaja,2),2)?></b></label></td>		
          						<td align="right"><label class="label"><b><?=number_format(round($TotalPartesPrestamo,2),2)?></b></label></td>		
          						<td align="right"><label class="label"><b><?=number_format(round($TotalPrestamo,2),2)?></b></label></td>		
          						<td align="right"><label class="label"><b><?=number_format(round($TotalPago,2),2)?></b></label></td>		
          						<td align="right"><label class="label"><b><?=number_format(round($TotalSobrantes,2),2)?></b></label></td>
          						<td align="right"><label class="label"><b><?=number_format(round($TotalFaltantes,2),2)?></b></label></td>
          						<td align="right"><label class="label"><b><?=number_format(round($TotalGastoAdmin,2),2)?></b></label></td>		
          						<td align="right"><label class="label"><b><?=number_format(round($TotalGastoOperativo,2),2)?></b></label></td>		
          						<td align="right"><label class="label"><b><?=number_format(round($Total,2),2)?></b></label></td>		
          					</tr>
	    				</table>
	    				<table width="100%">
	    					<tr>
	    						<td align="right"><input type="button" value="Recalcular" onclick="window.location.reload()" class="button"></td>
	    					</tr>
	    				</table>
	    						
    				</td>
                </tr>
      </table>
       
            
      
    </td>
  </tr>
</table>
<table hspace="20px" class="marco" width="99%">
  <tr>
    <td valign="top">Comentario</td>
    <td valign="top"><textarea name="comentario" cols="100" rows="1"></textarea></td>
  </tr>
  <tr>
    <input type="hidden" name="typeSubmit" id="typeSubmit">
    <td valign="top" colspan="2" align="right">
    <?php
   
    if($fechaBalanceAbierto == date('Y-m-d')){
	   	$a_Existe['ok'] = 1;
    }else{
    	$o_sucursalBean = new SucursalBean();
    	$o_sucursalBean->setIdSucursal($IdSucursal);
    	
    	$o_SucursalBL = new SucursalBL();
    	$a_o_sucursal = $o_SucursalBL->busquedaSucursal($o_sucursalBean);
    	
    	foreach ($a_o_sucursal as $key => $o_sucursal){
    		$fechaInicioOperaciones = $o_sucursal->getfechaInicioBalance();
    	}
    	
    	if($fechaInicioOperaciones == $fechaBalanceAbierto){
    		$a_Existe = array();
    	}else{
	    	$o_BalanceGeneralBean = new BalanceGeneralBean();
		    $o_BalanceGeneralBean->setIdSucursal($IdSucursal);
		 
		    $o_BalanceGeneralBean->setFecha((date('Y-m-d',strtotime($fechaBalanceAbierto."-1 days"))));
		    
		    $o_BalanceGeneralDP = new BalanceGeneralDP($o_BalanceGeneralBean);
		    $a_Existe = $o_BalanceGeneralDP->select();
    	}
    }
    if(is_array($a_Existe)){?>	
    	<input type="submit" value="Cierre del D&iacute;a" class="button"  onclick="$('typeSubmit').value='list';"></td>
    <?php }else{
    	echo "Debe de Cerrar el Balance General para la fecha ".date('Y-m-d',strtotime($fechaBalanceAbierto."-1 days"));
    	}
	?>
  </tr>
</table>
</form>
<script type="text/javascript">
	var valid = new Validation('form1', {immediate : true});
</script>