diff --git a/application/controllers/projects/ProjectsController.php b/application/controllers/projects/ProjectsController.php index c553f25..f441088 100644 --- a/application/controllers/projects/ProjectsController.php +++ b/application/controllers/projects/ProjectsController.php @@ -317,7 +317,7 @@ class ProjectsController extends MY_Controller { if ( $removeReservation->getAllowDelete() === FALSE ) return $this->json( ['result' => FALSE] ); - Forecast::removeReservation( $reservationID ); + Reservation::removeReservation( $reservationID ); $this->json( ['result' => TRUE] ); } diff --git a/application/controllers/reports/ReservationsController.php b/application/controllers/reports/ReservationsController.php new file mode 100644 index 0000000..eb96895 --- /dev/null +++ b/application/controllers/reports/ReservationsController.php @@ -0,0 +1,52 @@ +db->query( $sql ); + + $results = $query->result(); + + foreach ( $results as $result ) + { + if ( ! isset( $projects[ $result->projectID ] ) ) + { + $projects[ $result->projectID ] = [ + 'projectnumber' => $result->projectnumber, + 'reservation' => 0, + 'payed' => 0, + 'saldo' => 0, + 'customers' => [] + ]; + } + + $projects[ $result->projectID ]['reservation'] += $result->reservation; + $projects[ $result->projectID ]['payed'] += $result->payed; + $projects[ $result->projectID ]['saldo'] += $result->saldo; + + $projects[ $result->projectID ]['externals'][] = [ + 'external' => $result->contactperson, + 'reservation' => $result->reservation, + 'payed' => $result->payed, + 'saldo' => $result->saldo + ]; + } + + $this->json( $projects ); + } + +} \ No newline at end of file diff --git a/application/libraries/validation/inputValidations/ReservationValidation.php b/application/libraries/validation/inputValidations/ReservationValidation.php index 7b72c54..c029a43 100644 --- a/application/libraries/validation/inputValidations/ReservationValidation.php +++ b/application/libraries/validation/inputValidations/ReservationValidation.php @@ -17,6 +17,10 @@ class ReservationValidation extends BaseValidation { 'validations' => 'required|integer', 'fieldname' => 'project' ], + 'external_id' =>[ + 'validations' => 'required|integer', + 'fieldname' => 'onderaannemer' + ], 'reservationamount' => [ 'validations' => 'number', 'fieldname' => 'bedrag' diff --git a/application/models/eloquent/External.php b/application/models/eloquent/External.php index e35b75d..d5ed07e 100644 --- a/application/models/eloquent/External.php +++ b/application/models/eloquent/External.php @@ -11,6 +11,11 @@ class External extends BaseModel { protected $table = "externals"; + public function reservations() + { + return $this->hasMany( 'Reservation' ); + } + public static function getAllExternals( $archive ) { $externals = External::orderBy( 'name' ); @@ -24,24 +29,24 @@ class External extends BaseModel { public static function saveExternal( $externalID, $external ) { - $external = (array)$external; + $external = (array) $external; - if( $externalID == 0) + if ( $externalID == 0 ) { - $external = External::create($external); + $external = External::create( $external ); $externalID = $external['id']; } else { - External::whereId($externalID)->update($external); + External::whereId( $externalID )->update( $external ); } return $externalID; } - public static function removeExternal($externalID) + public static function removeExternal( $externalID ) { - External::whereId($externalID)->delete(); + External::whereId( $externalID )->delete(); } diff --git a/application/models/eloquent/Reservation.php b/application/models/eloquent/Reservation.php index d3f6c49..9fa3481 100644 --- a/application/models/eloquent/Reservation.php +++ b/application/models/eloquent/Reservation.php @@ -13,6 +13,11 @@ class Reservation extends BaseModel { return $this->belongsTo( 'Project' ); } + public function external() + { + return $this->belongsTo( 'External' ); + } + public static function saveReservation( $reservationID, $reservation ) { $reservation = (array) $reservation; diff --git a/application/models/eloquent/queries/ReservationTotals.php b/application/models/eloquent/queries/ReservationTotals.php new file mode 100644 index 0000000..05ea508 --- /dev/null +++ b/application/models/eloquent/queries/ReservationTotals.php @@ -0,0 +1,42 @@ + te betalen -
| + | bedrag | - betaald + klant | |
|---|---|---|---|
| + | @@ -28,13 +28,20 @@ data-bind="textInput:reservationamount, visible:inEdit, event:{change:$root.saveReservation,keyup:$root.validateNumber.bind($data, 'reservationamount')}"/> | -- - + | + + |