<?php 
class eventclass_movimiento_caja  extends eventsBase
{ 
	function eventclass_movimiento_caja()
	{
	// fill list of events
		$this->events["BeforeQueryList"]=true;

		$this->events["AfterAdd"]=true;

		$this->events["BeforeProcessAdd"]=true;

		$this->events["AfterEdit"]=true;



//	onscreen events


	}
// Captchas functions	

//	handlers

		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
				// List page: Before SQL query
function BeforeQueryList(&$strSQL,&$strWhereClause,&$strOrderBy,&$pageObject)
{

		$usuario = $_SESSION["UserName"];
//**********  Check if specific record exists  ************
global $conn;
$strSQLExists = "select * from usuario where nick='$usuario'";
$rsExists = db_query($strSQLExists,$conn);
$data=db_fetch_array($rsExists);
//=============================
$idusuario = $data['idusuario'];
$strWhereClause = "idusuario=$idusuario";
// Place event code here.
// Use "Add Action" button to add code snippets.
;		
} // function BeforeQueryList

		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		

		
		
		
		
		
		
		
		
		
		
		
				// After record added
function AfterAdd(&$values,&$keys,$inline,&$pageObject)
{

		//**********  Redirect to another page  ************
header("Location: movimiento_caja_list.php?status=success");
exit();

// Place event code here.
// Use "Add Action" button to add code snippets.
;		
} // function AfterAdd

		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		

		
		
				// Add page: Before process
function BeforeProcessAdd(&$conn,&$pageObject)
{

		$usuario = $_SESSION["UserName"];
//**********  Check if specific record exists  ************
global $conn;
$strSQLExists = "select * from usuario where nick='$usuario'";
$rsExists = db_query($strSQLExists,$conn);
$data=db_fetch_array($rsExists);
//=============================
$idusuario = $data['idusuario'];
//echo $idusuario;exit();
$sql_movimiento = "select * from movimiento_caja where idusuario=$idusuario and estado = 'ABIERTO'";
$result = db_query($sql_movimiento,$conn);
$linea=db_fetch_array($result);
if($linea){
	header("Location: movimiento_caja_list.php?status=info");
	exit();
}

// Place event code here.
// Use "Add Action" button to add code snippets.
;		
} // function BeforeProcessAdd

		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		

		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
				// After record updated
function AfterEdit(&$values,$where,&$oldvalues,&$keys,$inline,&$pageObject)
{

		// Validar que el nuevo estado sea "CERRADO" 
// (PHPRunner es sensible a mayúsculas y minúsculas en los nombres de campos)
if ($values["estado"] == "CERRADO") {

    global $conn;
    
    // 1. Obtener el idmovimiento afectado a partir del array $keys
    $idmovimiento = intval($keys["idmovimiento"]);
    
    if ($idmovimiento > 0) {
        
        // 2. Actualizar el detalle de movimientos (det_movimiento)
        // Se cambia el estado a CERRADO y se estampa la fecha/hora actual de cierre
        $sqlDetail = "UPDATE det_movimiento 
                      SET estado = 'CERRADO', 
                          fecha_cierre = NOW() 
                      WHERE idmovimiento = " . $idmovimiento;
                      
        db_exec($sqlDetail, $conn);
        
        // 3. Cerrar las cuentas bancarias o de caja asociadas al detalle de este movimiento
        // Identifica las cuentas que participaron en este movimiento específico 
        // a través de det_movimiento y actualiza su estado a 'CERRADA' y desvincula el usuario
        $sqlCuentas = "UPDATE cuenta 
                       SET estado = 'CERRADA', 
                           idusuario = 0 
                       WHERE idcuenta IN (
                           SELECT DISTINCT idcuenta 
                           FROM det_movimiento 
                           WHERE idmovimiento = " . $idmovimiento . "
                       )";
                       
        db_exec($sqlCuentas, $conn);
    }
}



//if ($values["observacion"] != $oldvalues["observacion"]) {
    // continua


/*if ($values["estado"] == 'CERRADO') {
		global $conn;
		$strSQLInsert = "update det_movimiento set estado = 'CERRADO',fecha_cierre = now() where idmovimiento = ".$values["idmovimiento"];
		db_exec($strSQLInsert,$conn);

		//********** Redirect to another page  ************
    header("Location: movimiento_caja_list.php?status=success2");
    exit();
}*/
;		
} // function AfterEdit

		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		

		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
//	onscreen events

} 
?>
