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

$a_ArBanco = new ArBancoFN();
$a_ArBanco->setEliminado(-1);
$a_ArBancoFN = $a_ArBanco->select();

$a_ArCuenta = new ArCuentaFN();
$a_ArCuenta->setEliminado(-1);
$a_ArCuentaFN = $a_ArCuenta->select();

$o_BalanceDiaNew = new BalanceDiaBean();
$o_BalanceDiaNew->setIdColaboradorPermitido($a_Colaborador); 
$o_BalanceDiaNew->setIdSucursal($Idsucursal); 


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

if($fechaBalanceAbierto != $fecha) exit("No se puede hacer esta operacion.");

$o_ArArqueoDetalleDepositoFN = new ArArqueoDetalleDepositoFN();
$o_ArArqueoDetalleDepositoFN->setIdclase($Idclase);
$o_ArArqueoDetalleDepositoFN->setIdsucursal($Idsucursal);
$o_ArArqueoDetalleDepositoFN->setIdmercado($Idmercado);
$o_ArArqueoDetalleDepositoFN->setIdcolaborador($Idcolaborador);
$o_ArArqueoDetalleDepositoFN->setFecha($fecha);
$o_ArArqueoDetalleDepositoFN->setIdcliente($Idcliente);
$o_ArArqueoDetalleDepositoFN->setIdprestamo($Idprestamo);
$a_o_ArArqueoDetalleDepositoBN = $o_ArArqueoDetalleDepositoFN->selectByPK();

$o_ArArqueoCabeceraFN = new ArArqueoCabeceraFN();
$o_ArArqueoCabeceraFN->setIdclase($idClase);
$o_ArArqueoCabeceraFN->setIdsucursal($IdSucursal);
$o_ArArqueoCabeceraFN->setIdmercado($IdMercado);
$o_ArArqueoCabeceraFN->setIdcolaborador($idColaborador);
$o_ArArqueoCabeceraFN->setFecha($fecha);
$o_ArArqueoCabeceraBN = $o_ArArqueoCabeceraFN->selectByPK();
$Idgastoreferencia = $o_ArArqueoCabeceraBN->getIdgastoreferencia();


//print_r($a_o_ArArqueoDetalleDepositoBN);

?>

<script>

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

runProcess = 
{
  returnSelectedAutocomplete: function(text, li)
  {
    var sCodigoItem = li.readAttribute('id').trim();
    var sNombreCompleto = li.readAttribute('name').trim();
    sCodigoItem = sCodigoItem.trim();
    sNombreCompleto = sNombreCompleto.trim();
	//alert(sCodigoItem);
	//alert(sNombreCompleto);
    $('CodigoItem').value = sCodigoItem;
    $('orderLine_itemNumber').value = sNombreCompleto;
    buscarDetallePrestamo(sCodigoItem);
    //buscarLoteSetxItemCod(sCodigoItem, 'gridPagos2_LoteSet', '');
  }
}

function hola(){
	alert('ok');
}
function cargandoImagenSerch(){
	disabledWin.setPathImage('/images/common/progress.gif');
	disabledWin.show(true,true,'resultGrtid');
}

function buscarDetallePrestamo(idCliente){
	url = "<?=buildUrl('arqueo/gridPrestamo', "block=".$block)?>";
	var pars = $('form1').serialize();
	var str = pars+'&idcliente='+idCliente;
	var myAjax  = new Ajax.Updater(
    	"resultGrtid",
    	url,
    	{
    		asynchronous:	true,
    		method			: 'get',
    		parameters	: str,
    		evalScripts	: true,
    		onLoading   : cargandoImagenSerch(),
    		onComplete	: function(){
    			//objMainTab.showMenu();
    		}
    	})
	
}
	
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 selct	= a_contentValues[2];
	      	  if( selct == 'selected'){
	      	  	alert('xxxxxxxxxxxxxxxxxxxxxx'+value);
	  	      	var option	= new Option(text,value,"defauldSelected");
	      	  }else{
	      	  	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();
	      }
	    }
	  }
	}
	
	function limpiarDatos(){
		$('resultGrtid').innerHTML='';
		$('CodigoItem').value='';
	}
	
</script>
<?php
//echo myUser::getUser()->getRoleId();
//error_reporting(E_ALL);
//ini_set('display_errors','On'); //PARA PRODUCCION "Off"

if(isset($control)){
	
  	//print_r($_POST);
  	
  	//print_r($a_o_ArArqueoDetalleDepositoBN);
  	$montoTotalAnterior = $a_o_ArArqueoDetalleDepositoBN->getSubtotal();
  	$idPrestamo = $a_o_ArArqueoDetalleDepositoBN->getIdprestamo();
  	$idPago = $a_o_ArArqueoDetalleDepositoBN->getIdpagoreferencia();
  	
  	$o_PrestamoBean = new PrestamoBean();
  	$o_PrestamoBean->setIdPrestamo($idPrestamo);
  	
  	$o_PrestamoDP = new PrestamoDP($o_PrestamoBean);
  	$a_o_PrestamoDP = $o_PrestamoDP->select();
  	if(is_array($a_o_PrestamoDP)){
  		foreach ($a_o_PrestamoDP as $key => $o_PrestamoDP){
  			$saldoPrestamo = $o_PrestamoDP->getSaldoPrestamo();
  			$MontoTotalPrestamo = $o_PrestamoDP->getMontoTotal();
  		}
  	}else{
  		exit("No se encuentar prestamo valido");
  	}
  	
  	if($montoActual <= 0){
  		exit("El monto debe ser mayor a 0.00");
  	}
  	
  	if(!$Idcliente){
  		exit("No se puede realizar esta operacion no hay cliente");
  	}
  	//Verificar o validar si con el pago en el Prestamo no rebasa
  	
	if($montoTotalAnterior < $montoActual){
		if($saldoPrestamo < ($montoActual - $montoTotalAnterior)  ){
			exit("No se puede porque el pago excede el saldo del prestamo");
		}
	}
  	//PAso las validaciones asi que se guardara el log
	if($montoActual){
		
		$o_ArArqueoDetalleDepositoDP = new ArArqueoDetalleDepositoDP();
		$o_ArArqueoDetalleDepositoDP->setIdclase($a_o_ArArqueoDetalleDepositoBN->getIdclase());
		$o_ArArqueoDetalleDepositoDP->setIdsucursal($a_o_ArArqueoDetalleDepositoBN->getIdsucursal());
		$o_ArArqueoDetalleDepositoDP->setIdmercado($a_o_ArArqueoDetalleDepositoBN->getIdmercado());
		$o_ArArqueoDetalleDepositoDP->setIdcolaborador($a_o_ArArqueoDetalleDepositoBN->getIdcolaborador());
		$o_ArArqueoDetalleDepositoDP->setFecha($a_o_ArArqueoDetalleDepositoBN->getFecha());
		$o_ArArqueoDetalleDepositoDP->setIdcliente($a_o_ArArqueoDetalleDepositoBN->getIdcliente());
		$o_ArArqueoDetalleDepositoDP->setIdprestamo($a_o_ArArqueoDetalleDepositoBN->getIdprestamo());
		$o_ArArqueoDetalleDepositoDP->setSubtotal($a_o_ArArqueoDetalleDepositoBN->getSubtotal());
		$o_ArArqueoDetalleDepositoDP->setIdBanco($a_o_ArArqueoDetalleDepositoBN->getIdBanco());
		$o_ArArqueoDetalleDepositoDP->setIdCuenta($a_o_ArArqueoDetalleDepositoBN->getIdCuenta());
		$o_ArArqueoDetalleDepositoDP->setIdpagoreferencia($a_o_ArArqueoDetalleDepositoBN->getIdpagoreferencia());
		$o_ArArqueoDetalleDepositoDP->setNumeroboucher($a_o_ArArqueoDetalleDepositoBN->getNumeroboucher());
		$o_ArArqueoDetalleDepositoDP->setNumerocuenta($a_o_ArArqueoDetalleDepositoBN->getNumerocuenta());
		$o_ArArqueoDetalleDepositoDP->setBanco($a_o_ArArqueoDetalleDepositoBN->getBanco());
		$o_ArArqueoDetalleDepositoDP->setNombrecliente($a_o_ArArqueoDetalleDepositoBN->getNombrecliente());
		$o_ArArqueoDetalleDepositoDP->setFechadeposito($a_o_ArArqueoDetalleDepositoBN->getFechadeposito);
		$o_ArArqueoDetalleDepositoDP->setFecharegistro($a_o_ArArqueoDetalleDepositoBN->getFecharegistro());
		$o_ArArqueoDetalleDepositoDP->setUsuarioregistro($a_o_ArArqueoDetalleDepositoBN->getUsuarioregistro());
		$o_ArArqueoDetalleDepositoDP->savelog();
		
		
		$o_ArArqueoDetalleDepositoDP = new ArArqueoDetalleDepositoDP();
		$o_ArArqueoDetalleDepositoDP->setIdclase($Idclase);
		$o_ArArqueoDetalleDepositoDP->setIdsucursal($Idsucursal);
		$o_ArArqueoDetalleDepositoDP->setIdmercado($Idmercado);
		$o_ArArqueoDetalleDepositoDP->setIdcolaborador($Idcolaborador);
		$o_ArArqueoDetalleDepositoDP->setFecha($fecha);
		$o_ArArqueoDetalleDepositoDP->setIdcliente($Idcliente);
		$o_ArArqueoDetalleDepositoDP->setIdprestamo($Idprestamo);
		$o_ArArqueoDetalleDepositoDP->setSubtotal($montoActual);
		$o_ArArqueoDetalleDepositoDP->setIdBanco($IdBanco);
		$o_ArArqueoDetalleDepositoDP->setIdCuenta($IdCuenta);
		$o_ArArqueoDetalleDepositoDP->setNumeroboucher($boucher);
		$o_ArArqueoDetalleDepositoDP->setNumerocuenta($NombreCuenta);
		$o_ArArqueoDetalleDepositoDP->setBanco($NombreBanco);
		$o_ArArqueoDetalleDepositoDP->setFechadeposito($FechaOperacion);
		$o_ArArqueoDetalleDepositoDP->setFecharegistro(date("Y-m-d H:i:s"));
		$o_ArArqueoDetalleDepositoDP->setUsuarioregistro(myUser::getUser()->getUserId());
		$o_ArArqueoDetalleDepositoDP->update();
		
		//Ahora se consulta los detalles de´para actualizar el total
		$o_ArArqueoDetalleDepositoFN = new ArArqueoDetalleDepositoFN();
		$o_ArArqueoDetalleDepositoFN->setIdclase($Idclase);
		$o_ArArqueoDetalleDepositoFN->setIdsucursal($Idsucursal);
		$o_ArArqueoDetalleDepositoFN->setIdmercado($Idmercado);
		$o_ArArqueoDetalleDepositoFN->setIdcolaborador($Idcolaborador);
		$o_ArArqueoDetalleDepositoFN->setFecha($fecha);
  		$a_o_ArArqueoDetalleDepositoFN = $o_ArArqueoDetalleDepositoFN->select();
		if(is_array($a_o_ArArqueoDetalleDepositoFN)){
			foreach ($a_o_ArArqueoDetalleDepositoFN as $key => $o_ArArqueoDetalleDepositoFN){
			    
				$nuevoMontoTotal += $o_ArArqueoDetalleDepositoFN->getSubtotal();
			}
		}
  		//Ahora actualiza el total de la cabecera
		$o_ArArqueoCabeceraDP = new ArArqueoCabeceraDP();
		$o_ArArqueoCabeceraDP->setIdclase($Idclase);
		$o_ArArqueoCabeceraDP->setIdsucursal($Idsucursal);
		$o_ArArqueoCabeceraDP->setIdmercado($Idmercado);
		$o_ArArqueoCabeceraDP->setIdcolaborador($Idcolaborador);
		$o_ArArqueoCabeceraDP->setFecha($fecha);
		$o_ArArqueoCabeceraDP->setTotal($nuevoMontoTotal);
		$o_ArArqueoCabeceraDP->update();
		//Actualizar el Pago
		$o_PagoBean = new PagoBean();
		$o_PagoBean->setIdPago($idPago);
		$o_PagoBean->setMontoPago($montoActual);
		$o_PagoBean->setFechaModificacion(date('Y-m-d H:i:s'));
		$o_PagoBean->setUsuarioModificacion(myUser::getUser()->getUserId());
		$o_PagoDP = new PagoDP($o_PagoBean);
		$o_PagoDP->update();
		
		//Actualizar el Pago
		$o_PagoBean = new PagoBean();
		$o_PagoBean->setIdPrestamo($idPrestamo);
		$o_PagoDP = new PagoDP($o_PagoBean);
		$a_o_PagoBN = $o_PagoDP->select();
		if(is_array($a_o_PagoBN)){
			foreach ($a_o_PagoBN as $key => $o_PagoBN){
				$SumaMontoPago += $o_PagoBN->getMontoPago();
			}
		}
		
		$saldoActual = $MontoTotalPrestamo - $SumaMontoPago;
		// Actualizar el Saldo del Prestamo
		$o_PrestamoBean = new PrestamoBean();
		$o_PrestamoBean->setIdPrestamo($idPrestamo);
		$o_PrestamoBean->setSaldoPrestamo($saldoActual);
		if($saldoActual==0) $o_PrestamoBean->setEstado("C");
		else $o_PrestamoBean->setEstado("P"); 
		$o_PrestamoBean->setUsuarioModificacion(myUser::getUser()->getUserId());
		$o_PrestamoBean->setFechaModificacion(date('Y-m-d H:i:s'));
		$o_PrestamoDP = new PrestamoDP($o_PrestamoBean);
		$bResult = $o_PrestamoDP->update();
		
		if($Idgastoreferencia>0){
            $o_GastosGeneralesBean = new GastosGeneralesBean();
            $o_GastosGeneralesBean->setMonto($nuevoMontoTotal);
    	    $o_GastosGeneralesBean->setIdGasto($Idgastoreferencia);
    	    $o_GastosGeneralesBean->setFechaModificacion(date("Y-m-d H:i:s"));
    	    $o_GastosGeneralesBean->setUsuarioModificacion(myUser::getUser()->getUserId());
    	    $o_GastosGeneralesSystemClass = new GastosGeneralesDP($o_GastosGeneralesBean);
    	    $bResult = $o_GastosGeneralesSystemClass->update();
    	}
  	}  	
  	$id_key = "Idclase=".$Idclase."&Idsucursal=".$Idsucursal."&Idmercado=".$Idmercado."&Idcolaborador=".$Idcolaborador."&fecha=".$fecha."&Idcolaborador=".$Idcolaborador;
  	
    if(1)
    {
           ?>
            <script language="JavaScript">
             parent.recarga();
             parent.objMainTab.windowsCloseAll(); 
    		 //parent.objMainTab.windowsCloseAll();
    		 //parent.window.location='<?=buildUrl('arqueo/editDeposito','<?php echo $id_key?>')?>';
            </script>
            <?
        
        
    }
    else
    {
        //$url = buildUrl('cli/add', "block=".$block."&error=1");
        echo '<div class="ui-widget" style="margin: 2px;"><div class="ui-state-error ui-corner-all" style="padding: 0 .7em;"><p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span><strong>Error:</strong>Error en actualizar el cliente.</p></div></div>';
    }
}


//if(is_array($a_ObjectBean)){
if(1){
  //while(list($key,$o_ObjectBean) = each($a_ObjectBean)){
  	
  	
  	
	
?>
<table class="cuerpo" width="100%" border="0" cellpadding="0" cellspacing="0">
	
	<tr>
		<td valign="top">
			 <form id="form1" name="form1" method="POST">
				<input type="hidden" name="control" value="1">
				<input type="hidden" name="CodigoItem"  id="CodigoItem" value="">
			  
                        <?php
                        $s_Param = '';
                        if( isset( $id ) )
                        {
                            $s_Param = 'id='.$id;
                        }
                        ?>
			  
                        <table border="0" cellpadding="0" cellspacing="0" width="100%">
							<tr>
							  <td class="titleBody"><li>&nbsp;&nbsp;Editar Deposito</li></td>
							  <td align="right" valign="baseline">
							    
							  </td>
							</tr>
						</table>
			  
                        <table width="100%" cellspacing="2" cellpadding="2" border="0" class="marco">
                            <tr>
                                <td nowrap="nowrap">
                                    
                                        
                                    	<table width="100%">
                                    	
                                            <tr>
                                                <td >
    
                                                    <table width="100%" cellpadding="5" border="0" align="left">
                                                    	<tr>
                                                          <td align="left" width="10%"><label class="label">Banco</label></td>
                                                          <td align="left" id="">
                                                          	<select class="combo validate-selection" name="IdBanco" id="IdBanco" onchange="actualizarCuenta('IdCuenta',this)" >
							                  				  <option value="" > - Seleccionar - </option>
							                 				  <?php foreach ($a_ArBancoFN as $iKey => $o_ArBancoFN){ ?>
							                  				  	<option value="<?=$o_ArBancoFN->getIdbanco()?>" <?php if($a_o_ArArqueoDetalleDepositoBN->getIdBanco()==$o_ArBancoFN->getIdbanco()) echo " selected"?>>
							                    			 	<?=$o_ArBancoFN->getDescripcion()?>
							                   	              	</option>
							                  					<?php } ?>
							                				</select>
                                                          </td>
                                                        </tr>
														<tr>
                                                          <td align="left" id=""><label class="label">#Cuenta</label></td>
                                                          <td align="left" id="">
                                                          <select class="combo validate-selection " name="IdCuenta" id="IdCuenta" >
							                  				  <option value="" > - Seleccionar - </option>
							                  				   <?php foreach ($a_ArCuentaFN as $iKey => $o_ArCuentaFN){ ?>
							                  				  	<option value="<?=$o_ArCuentaFN->getIdcuenta()?>" <?php if($a_o_ArArqueoDetalleDepositoBN->getIdcuenta()==$o_ArCuentaFN->getIdcuenta()) echo " selected"?>>
							                    			 	<?=$o_ArCuentaFN->getNumero()?>
							                   	              	</option>
							                  					<?php } ?>
							                				</select></td>
                                                        </tr>	
                                                        <tr>
                                                          <td align="left" id=""><label class="label">Monto</label></td>
                                                          <td align="left" id=""><input type="text" class="text required" name="montoActual" id="montoActual" value="<?php echo $a_o_ArArqueoDetalleDepositoBN->getSubtotal()?>"></td>
                                                        </tr>
                                                        <tr>
                                                          <td align="left" id=""><label class="label">F.Operacion</label></td>
                                                          <td align="left" id=""><input class="text required"  readonly  type="text" name="FechaOperacion" id="FechaOperacion" ondblclick="this.value=''" size="8" value="<?php echo $a_o_ArArqueoDetalleDepositoBN->getFechadeposito()?>"/><button type="button" onclick="return false" id="btnFechaOperacion">...</button>
															   <script type="text/javascript">
															     document.getElementById("btnFechaOperacion").disabled = false;
															     Calendar.setup({
															     inputField : "FechaOperacion",
															     ifFormat : "%Y-%m-%d",
															     daFormat : "%Y-%m-%d",
															     button   : "btnFechaOperacion"
															     });
															  </script></td>
                                                        </tr>
                                                        <tr>
                                                          <td align="left" id=""><label class="label">Boucher</label></td>
                                                          <td align="left" id=""><input type="text" class="text required" name="boucher" id="boucher" value="<?php echo $a_o_ArArqueoDetalleDepositoBN->getNumeroboucher()?>"></td>
                                                        </tr>
                                                        <tr>
                                                          <td align="left" id=""><label class="label">Cliente</label></td>
                                                          <td align="left" id=""><label class="label"><?php echo $a_o_ArArqueoDetalleDepositoBN->getNombrecliente()?></label>
                                                          
														</td>
                                                        </tr>
                                                      	<tr>
														    <td align="center" colspan="2">
																<input type="hidden" name="typeSubmit" id="typeSubmit">
																<input class="button" type="submit" value="Grabar" onclick="$('typeSubmit').value='ok';">
																<input class="button" type="button" value="Cancelar" onclick=" parent.objMainTab.windowsCloseAll();"/>
														    </td>
														</tr>
                                                        
                                                    </table>
                                                        
                                                </td>
                                                
                                               
                                            </tr>
                                            
                                    	</table>
                                    	
                                    	               
                                    
									
                                	
                                </td>
                            </tr>
                        </table>
                        
                        
                        
                        
				
			</form>
				<script type="text/javascript">
					
					
					
					Validation.add('validate-MontoAmortizado', 'El monto es mayor al saldo.', function(v) {     
 
								  			 
					    var okdni = false;
					    var valorAcumulado = 0;
					    var f = $$('.montoSaldos');
					    var fm = $$('.montos');
						
					    
											    
						
						for(var i=0; i<f.length; i++){
							
							valorSaldo = parseFloat(f[i].value);
							
							valorMonto = parseFloat(fm[i].value);
							//alert('vs '+valorSaldo)
							//alert('vm '+valorMonto)
							if(valorMonto > valorSaldo){
								//alert('ok');
								//alert('Un pago no es valido para el saldo '+valorSaldo+' y pago '+valorMonto);
								return false;
							}
							
						    //console.log("En el índice " + indice + " hay este valor: " + valor);
						}
						
						
						
						return true;				 
					    
					});
					var valid = new Validation('form1', {immediate : false});
					
				</script>
		</td>
	</tr>
</table>


<?php
  //}
}
?>

