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



<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>

function abrirperiodo(fecha,idcolaborador,nombre){
	if(confirm('Esta seguro de cerrar el periodo de pedidos '+fecha+' para '+nombre)){
		$('fecha').value=fecha;
		$('idcolaborador').value=idcolaborador;
		$('metodo').value='1';
		$('form1').submit();
	}
}


function cerrarperiodo(fecha,idcolaborador,nombre){
	if(confirm('Esta seguro de cerrar el periodo de pedidos '+fecha+' para '+nombre)){
		$('fecha').value=fecha;
		$('idcolaborador').value=idcolaborador;
		$('metodo').value='2';
		$('form1').submit();
	}
}

function cerrarperiodototal(fecha){
	if(confirm('Esta seguro de cerrar el periodo de pedidos '+fecha)){
		$('fecha').value=fecha;
		$('metodo').value='4';
		$('form1').submit();
	}
	
}
</script>
<?

$o_sucursalBL = new SucursalBL();
$o_SucursalBean = new SucursalBean();
$o_SucursalBean->setIdAdministrador(myUser::getUser()->getIdColaborador());
$a_o_sucursales = $o_sucursalBL->busquedaSucursal($o_SucursalBean);

foreach ($a_o_sucursales as $iKey => $o_sucursales){ 
		$idsucursal = $o_sucursales->getIdSucursal();
		$descripcionSucursal = $o_sucursales->getDescripcion();
}

$o_CierrePedidoBean = new CierrePedidoBean();

$o_CierrePedidoDP = new CierrePedidoDP(new CierrePedidoBean());
$a_representantes = $o_CierrePedidoDP->mostrarColaboradores($idsucursal);

$fecha = $o_CierrePedidoDP->obtenerFechaCierrePeriodo($idsucursal);

/**/
$o_CierrePedidoBean = new CierrePedidoBean();

$o_CierrePedidoDP = new CierrePedidoDP(new CierrePedidoBean());
$a_representantes = $o_CierrePedidoDP->mostrarColaboradores($idsucursal);

$fecha = $o_CierrePedidoDP->obtenerFechaCierrePeriodo($idsucursal);

$o_BalanceDiaNew = new BalanceDiaBean();
$o_BalanceDiaNew->setIdColaboradorPermitido($a_Colaborador); 
$o_BalanceDiaNew->setIdAdministrador(myUser::getUser()->getIdColaborador()); 
$o_BalanceDiaNew->setIdSucursal($idsucursal); 


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

if($metodo){
	if($fecha > $fechaBalanceAbierto){
		exit('Error');
	}
	//Abrir - cierre de periodo del colaborador
	$o_CierrePedidoDP = new CierrePedidoDP(new CierrePedidoBean());
		
	switch ($metodo){
		
		case '1' : 
		case '2' :
					if($metodo == 2){
						$estado = 'P';
						//Existe Pedidos Pendientes Aprobados y Rechazados
						$a_existeP = $o_CierrePedidoDP->existePedidosPendientes($fecha,$idsucursal,$idcolaborador);
						if(is_array($a_existeP)){
							if(is_null($a_existeP['P']) && ($a_existeP['A'] || $a_existeP['R'])){
								//Ver cuantos pedidos estan entregados
								$cantidadPedidosEntregados = $o_CierrePedidoDP->existePedidosEntregados($fecha,$idsucursal,$idcolaborador);
								if($cantidadPedidosEntregados == $a_existeP['A']){
									$o_CierrePedidoDP->operacionPeriodoParcial($metodo,$fecha,$idsucursal,$idcolaborador);
									$o_PedidoCabeceraDP = new CrPedidocabeceraDP();
									$o_PedidoCabeceraDP->setEstado('C');
									$o_PedidoCabeceraDP->setIdSucursal($idsucursal);
									$o_PedidoCabeceraDP->setIdcolaboradorrepresentante($idcolaborador);
									$o_PedidoCabeceraDP->setFechaoperacion($fecha);
									$o_PedidoCabeceraDP->updateTotales();
									$o_PedidoCabeceraDP->cierreCabecera();
									
									$cadena = "cierre realizado";
								}else{
									if($a_existeP['P']){
										$cadena = "No se puede hacer el cierre porque hay pendientes ".$a_existeP['P']." de ".$a_existeP['A']." pedido(s) aprobados pero solo se genero ".$cantidadPedidosEntregados." prestamos.";	
									}else{
										$cadena = "No se puede hacer el cierre porque hay pendientes ".$cantidadPedidosEntregados." entregados de ".$a_existeP['A']." pedido(s) aprobados pero solo se genero ".$cantidadPedidosEntregados." prestamos.";	
									}
								}
							}else{
								$cadena = "No se puede hacer el cierre porque hay ".$a_existeP['P']." pedido pendiente";	
							}
						}else{
							$o_CierrePedidoDP->operacionPeriodoParcial($metodo,$fecha,$idsucursal,$idcolaborador);
							$cadena = "cierre realizado";	
						}
					}else{
						$cadena = "apertura realizado";
						$o_CierrePedidoDP->operacionPeriodoParcial($metodo,$fecha,$idsucursal,$idcolaborador);
					}
					
					echo "<font color='#f00'>metodo ".$cadena."</font>";
					break;
				
		//Apertura - Cierre total de la fecha de la sucursal para la fecha determinada
		case '3' : 
		case '4' : 
					//Validacion para el cierre de periodo
					$NoAlmacenar = 0;
					if($metodo == '3') $estado = 'P';
					if($metodo == '4'){
						$estado = 'C';
						if(is_array($a_representantes)){
							foreach ($a_representantes as $key => $o_colaboradort){
									$a_existeP = $o_CierrePedidoDP->existePedidosPendientes($fecha,$idsucursal,$o_colaboradort->getIdcolaborador());
									if(is_array($a_existeP)){
										if(is_null($a_existeP['P']) && ($a_existeP['A'] || $a_existeP['R'])){
											//Ver cuantos pedidos estan entregados
											$cantidadPedidosEntregados = $o_CierrePedidoDP->existePedidosEntregados($fecha,$idsucursal,$o_colaboradort->getIdcolaborador());
											if($cantidadPedidosEntregados == $a_existeP['A']){
												
											}else{
												$NoAlmacenar = 1;
												if($a_existeP['P']){
													$cadena = "No se puede hacer el cierre porque hay ".$a_existeP['P']." de ".$a_existeP['A']." pedido(s) aprobados pero solo se genero ".$cantidadPedidosEntregados." entregados + no entregados.";	
												}else{
													$cadena = "No se puede hacer el cierre porque hay ".$cantidadPedidosEntregados." entregados  de ".$a_existeP['A']." pedido(s) aprobados pero solo se genero ".$cantidadPedidosEntregados." entregados + no entregados.";	
												}
											}
									}
								}
							}
						}
					}
					if(!$NoAlmacenar){
						$o_CierrePedidoDP->operacionPeriodoTotal($metodo,$fecha,$idsucursal,$idcolaborador);
						$o_PedidoCabeceraDP = new CrPedidocabeceraDP();
						$o_PedidoCabeceraDP->setEstado($estado);
						$o_PedidoCabeceraDP->setIdSucursal($idsucursal);
						$o_PedidoCabeceraDP->setFechaoperacion($fecha);
						
						$o_PedidoCabeceraDP->updateTotales();
						$o_PedidoCabeceraDP->cierreCabecera();
						?>
					    <script language="JavaScript">
						    parent.objMainTab.reqBody('<?=buildUrl('cierrepedido/list_res')?>','&block=001&insert=1');
						    parent.objMainTab.windowsCloseAll();
					    </script>
					    <?php 
					}else{
						if($metodo == '4' && !$cadena){
							$cadena = "cierre no realizado";
						}
						echo "<font color='#f00'>metodo ".$cadena."</font>";
						
					}
					break;
					
					
					
	}
	
}
?>


<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>Cierre de pedidos</li>
            <span class="subtitle"><I>Nuevo cierre de pedido</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">
      	<input type="hidden" name="fecha" id="fecha" value="">
      	<input type="hidden" name="idcolaborador" id="idcolaborador" value="">
      	<input type="hidden" name="idsucursal" id="idsucursal" value="<?=$idsucursal?>">
      	<input type="hidden" name="metodo" id="metodo" value=""> 
      	
        <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" cellspacing="6" cellpadding="0">
								<tr>
									<td nowrap="nowrap" width="10%"><label class="label" for="txtRepresentante" >Sucursal:</label></td>
									<td nowrap="nowrap" ><label class="label req"><?=$descripcionSucursal."  ".$idsucursal?></label></td>
								</tr>
							    <tr>
									<td nowrap="nowrap" width="10%"><label class="label" for="txtRepresentante" >Fecha:</label></td>
									<td nowrap="nowrap"><label class="label req"><?=$fecha?></label></td>
							   </tr>
							</table>    					
    					</td>
                	</tr>
      			</table>
		    </td>
		  </tr>
		</table>
		<table hspace="20px">
			<tr>
				<td><label class="label">Lista de Representantes</label></td>
			</tr>
		</table>
		<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="1" cellspacing="0" cellpadding="0" >
								<tr>
									<th nowrap="nowrap" width="40%"><label class="label">Representante</label></th>
									<th nowrap="nowrap" width="8%"><label class="label">#Ped.</label></th>
									<th nowrap="nowrap" width="8%"><label class="label">#Apr.</label></th>
									<th nowrap="nowrap" width="8%"><label class="label">#Rech.</label></th>
									<th nowrap="nowrap" width="8%"><label class="label">#Pend.</label></th>
									<th nowrap="nowrap" width="8%"><label class="label">#P.Entr.</label></th>
									<th nowrap="nowrap" width="8%"><label class="label">#P.No.Entr.</label></th>
									<th nowrap="nowrap" width="8%"><label class="label">M.Aprobado</label></th>
									<th nowrap="nowrap" width="8%"><label class="label">M.Rechazado</label></th>
									<th nowrap="nowrap" width="8%"><label class="label">M.Pendiente</label></th>
									<th nowrap="nowrap" width="8%"><label class="label">M.Entregado</label></th>
									<th nowrap="nowrap" width="10%"><label class="label">Estado</label></th>
									<th nowrap="nowrap" width="14%"><label class="label">Opciones</label></th>
								</tr>
							    <?php if(is_array($a_representantes)){
							    		$o_CierrePedidoBeanT = new CierrePedidoBean();
								    	foreach ($a_representantes as $key => $o_representante){
								    		//Buscar Pedidos por cada representante	
								    		//Existe un cierre para este colaborador en esa fecha
								    		$o_CierrePedidoDP = new CierrePedidoDP($o_CierrePedidoBeanT);
								    		
								    		$fechaCol = $o_CierrePedidoDP->obtenerFechaCierrePeriodo($idsucursal,$o_representante->getIdColaborador());
								    		
								    		if($fechaCol > $fecha){
								    			$estado = "Cerrado";
								    		}else{
								    			$estado = "Abierto";
								    		}
								    		$n_pedidos_a = '0';
								    		$n_pedidos_r = '0';
								    		$n_pedidos_p = '0';
								    		$n_pedidos_e = '0';
								    		$n_pedidos_ne = '0';
								    		$montoAprobado = '0';
								    		$montoRechazado = '0';
								    		$montoPendiente = '0';
								    		$montoentregado = '0';
								    		$montonoentregado = '0';
								    		$o_pedidoCabeceraFN = new CrPedidocabeceraFN();
								    		
								    		$o_pedidoCabeceraFN->setFechaoperacion($fecha);
										    $o_pedidoCabeceraFN->setIdcolaboradorrepresentante($o_representante->getIdColaborador());
										    
										    $a_pedidoCabecera = $o_pedidoCabeceraFN->select();
										  
										    if(is_array($a_pedidoCabecera)){
										    	foreach ($a_pedidoCabecera as $key => $o_pedidoCabecera){
										    		$idpedidocabecera = $o_pedidoCabecera->getIdpedidocabecera();
										    		
											    	$o_pedidoDetalleFN = new CrPedidodetalleFN();
												    $o_pedidoDetalleFN->setIdpedidocabecera($idpedidocabecera);
												    
												    $a_pedidoDetalle = $o_pedidoDetalleFN->select();
										    	
												    if(is_array($a_pedidoDetalle)){
												    	/*echo "<pre>";
													    print_r($a_pedidoDetalle);
													    echo "</pre>";*/
										    			foreach ($a_pedidoDetalle as $key => $o_pedidoDetalle){
												    		
												    		//Pedidos Aprobados
												    		if($o_pedidoDetalle->getEstado() == "A"){
												    			$n_pedidos_a++; 
												    			$montoAprobado +=$o_pedidoDetalle->getMontoPrestado();
												    		}
												    		//Cantidad de pedidos rechazados
												    		if($o_pedidoDetalle->getEstado() == "R"){
												    			$n_pedidos_r++; 
												    			$montoRechazado +=$o_pedidoDetalle->getMontoPrestado();
												    		}
												    		//Cantidad de pedidos pendientes
												    		if($o_pedidoDetalle->getEstado() == "P"){
												    			$n_pedidos_p++; 
												    			$montoPendiente+=$o_pedidoDetalle->getMontoPrestado();
												    		}
												    		if($o_pedidoDetalle->getEntregado() > 0){
												    			$n_pedidos_e++; 
												    			$montoentregado+=$o_pedidoDetalle->getMontoPrestado();
												    		}
												    		//echo $n_pedidos_ne;
												    		if($o_pedidoDetalle->getEntregado() == -1){
												    			$n_pedidos_ne++; 
												    			$montonotregado+=$o_pedidoDetalle->getMontoPrestado();
												    		}
										    			}
												    }
										    	}
										    }
										   
									    	?>
									    	<tr nowrap="nowrap" width="10%" <?if($n_pedidos_p || ($n_pedidos_a && ($n_pedidos_e + $n_pedidos_ne != $n_pedidos_a))) echo "style='color:#f00;'"?>>
										    	<td><label class="label"><?=$o_representante->getNombreCompleto()?></label></td>
										    	<td align="center"><label class="label"><?php echo $n_pedidos_a + $n_pedidos_r + $n_pedidos_p;  $s_n_totales += $n_pedidos_a + $n_pedidos_r + $n_pedidos_p?></label></td>
										    	<td align="center"><label class="label"><?php echo $n_pedidos_a;  $s_n_pedidos_a +=$n_pedidos_a?></label></td>
										    	<td align="center"><label class="label"><?php echo $n_pedidos_r; $s_n_pedidos_r +=$n_pedidos_r;//."-".$o_representante->getIdColaborador()?></label></td>
										    	<td align="center"><label class="label"><?php echo $n_pedidos_p; $s_n_pedidos_p +=$n_pedidos_p?></label></td>
										    	<td align="center"><label class="label"><?php echo $n_pedidos_e; $s_n_pedidos_e +=$n_pedidos_e?></label></td>
										    	<td align="center"><label class="label"><?php echo $n_pedidos_ne; $s_n_pedidos_ne +=$n_pedidos_ne?></label></td>
										    	<td align="right"><label class="label"><?php echo number_format($montoAprobado,2,".",""); $s_montoAprobado +=number_format($montoAprobado,2,".","")?></label></td>
										    	<td align="right"><label class="label"><?php echo number_format($montoRechazado,2,".",""); $s_montoRechazado +=number_format($montoRechazado,2,".","")?></label></td>
										    	
										    	
										    	<td align="right"><label class="label"><?php echo number_format($montoPendiente,2,".",""); $s_montoPendiente +=number_format($montoPendiente,2,".","")?></label></td>
										    	<td align="right"><label class="label"><?php echo number_format($montoentregado,2,".","");$s_montoentregado +=number_format($montoentregado,2,".","")?></label></td>
										    	<td><label class="label"><?=$estado;//$fechaCol?></label></td>
										    	<td align="center">
										    		<?php if($estado == "Abierto"){?><input type="button" class="button" value="Cerrar" onclick="cerrarperiodo('<?=$fecha?>','<?=$o_representante->getIdColaborador()?>','<?=$o_representante->getNombreCompleto()?>')"><?php }?>
										    		<?php if($estado == "Cerrado"){?><input type="button" class="button" value="Abrir" onclick="abrirperiodo('<?=$fecha?>','<?=$o_representante->getIdColaborador()?>','<?=$o_representante->getNombreCompleto()?>')"><?php }?>
										    	</td>
									    	</tr>
								    <?php }?>
									    	<tr>
									    		<td nowrap="nowrap" align="right"><label class="label">Totales</label></td>
												<td nowrap="nowrap" align="center"><label class="label"><?=$s_n_totales?></label></td>
												<td nowrap="nowrap" align="center"><label class="label"><?=$s_n_pedidos_a?></label></td>
												<td nowrap="nowrap" align="center"><label class="label"><?=$s_n_pedidos_r?></label></td>
												<td nowrap="nowrap" align="center"><label class="label"><?=$s_n_pedidos_p?></label></td>
												<td nowrap="nowrap" align="center"><label class="label"><?=$s_n_pedidos_e?></label></td>
												<td nowrap="nowrap" align="center"><label class="label"><?=$s_n_pedidos_ne?></label></td>
												<td nowrap="nowrap" align="right"><label class="label"><?=number_format($s_montoAprobado,2,".","")?></label></td>
												<td nowrap="nowrap" align="right"><label class="label"><?=number_format($s_montoRechazado,2,".","")?></label></td>
												<td nowrap="nowrap" align="right"><label class="label"><?=number_format($s_montoPendiente,2,".","")?></label></td>
												<td nowrap="nowrap" align="right"><label class="label"><?=number_format($s_montoentregado,2,".","")?></label></td>
												<td nowrap="nowrap" colspan="2"></td>
											</tr>
							  		<?php  }?>
							</table>    					
    					</td>
                	</tr>
      			</table>
		    </td>
		  </tr>
		</table>
		<table align="center" width="100%">
			<tr>
			<td align="center" colspan="5">
			 <input type="hidden" name="typeSubmit" id="typeSubmit">
			 <?php if($fecha <= $fechaBalanceAbierto){?>
			  <input class="button" type="button" value="Cierre Total" onclick="cerrarperiodototal('<?=$fecha?>')">
			    <?php } ?>
			  <input class="button" type="button" value="Cancelar" onclick="parent.objMainTab.windowsCloseAll();"/>
			</td>
			</tr>
			<tr>
			<td height="10" colspan="5">&nbsp;</td>
			</tr>
		</table>
 </form>
<script type="text/javascript">
	var valid = new Validation('form1', {immediate : true});
</script>