This commit is contained in:
Juan Pablo Vial
2025-03-03 14:55:57 -03:00
parent 4aa88d5164
commit ef54c36edc
6 changed files with 104 additions and 7 deletions

View File

@ -42,11 +42,23 @@ class Contract extends Common\Ideal\Repository
[$model->broker->rut, $model->proyecto->id, $model->commission]);
return $model;
}
/**
* @param Common\Define\Model $model
* @param array $new_data
* @return Model\Proyecto\Broker\Contract
* @throws Common\Implement\Exception\EmptyResult
*/
public function edit(Common\Define\Model $model, array $new_data): Model\Proyecto\Broker\Contract
{
return $this->update($model, ['broker_rut', 'proyecto_id', 'commission'], $new_data);
}
/**
* @param int $brokerRut
* @return array
* @throws Common\Implement\Exception\EmptyResult
*/
public function fetchByBroker(int $brokerRut): array
{
$query = $this->connection->getQueryBuilder()
@ -55,6 +67,12 @@ class Contract extends Common\Ideal\Repository
->where('broker_rut = :broker_rut');
return $this->fetchMany($query, ['broker_rut' => $brokerRut]);
}
/**
* @param int $proyecto_id
* @return array
* @throws Common\Implement\Exception\EmptyResult
*/
public function fetchByProject(int $proyecto_id): array
{
$query = $this->connection->getQueryBuilder()
@ -63,6 +81,12 @@ class Contract extends Common\Ideal\Repository
->where('proyecto_id = :proyecto_id');
return $this->fetchMany($query, ['proyecto_id' => $proyecto_id]);
}
/**
* @param int $brokerRut
* @return array
* @throws Common\Implement\Exception\EmptyResult
*/
public function fetchActiveByBroker(int $brokerRut): array
{
$query = $this->connection->getQueryBuilder()
@ -72,6 +96,12 @@ class Contract extends Common\Ideal\Repository
->where('a.broker_rut = :broker_rut AND bcs.state = :state');
return $this->fetchMany($query, ['broker_rut' => $brokerRut, 'state' => Model\Proyecto\Broker\Contract\Type::ACTIVE]);
}
/**
* @param int $proyecto_id
* @return array
* @throws Common\Implement\Exception\EmptyResult
*/
public function fetchActiveByProject(int $proyecto_id): array
{
$query = $this->connection->getQueryBuilder()
@ -81,6 +111,13 @@ class Contract extends Common\Ideal\Repository
->where('a.proyecto_id = :proyecto_id AND bcs.state = :state');
return $this->fetchMany($query, ['proyecto_id' => $proyecto_id, 'state' => Model\Proyecto\Broker\Contract\Type::ACTIVE]);
}
/**
* @param int $proyecto_id
* @param int $brokerRut
* @return Model\Proyecto\Broker\Contract
* @throws Common\Implement\Exception\EmptyResult
*/
public function fetchActiveByProjectAndBroker(int $proyecto_id, int $brokerRut): Model\Proyecto\Broker\Contract
{
$query = $this->connection->getQueryBuilder()