83 lines
2.0 KiB
PHP
83 lines
2.0 KiB
PHP
<?php
|
|
/**
|
|
* Created by Pensare Software.
|
|
* User: Theo Weijmer
|
|
* Date: 21/12/2017
|
|
* Time: 18:05
|
|
*/
|
|
|
|
|
|
class Offer extends BaseModel {
|
|
|
|
protected $table = "offers";
|
|
|
|
public function payments()
|
|
{
|
|
return $this->hasMany( 'Payment' );
|
|
}
|
|
|
|
public function project()
|
|
{
|
|
return $this->belongsTo( 'Project' );
|
|
}
|
|
|
|
public function customer()
|
|
{
|
|
return $this->belongsTo( 'Customer' );
|
|
}
|
|
|
|
public static function getAllOffers( $projectID, $archive = 'F', $search, $order, $direction )
|
|
{
|
|
$offers = Offer::selectRAW('offers.*')
|
|
->join('customers AS CUS', 'CUS.id', '=', 'offers.customer_id')
|
|
->with( 'customer' )
|
|
->with( 'project' )
|
|
->where('offernumber', 'LIKE', "%{$search}%")
|
|
->orderBy($order, $direction);
|
|
|
|
if ( $projectID ) $offers = $offers->whereProjectId( $projectID );
|
|
|
|
if ( $archive == 'F' ) $offers = $offers->where( 'offers.archive', '=', 'F' );
|
|
|
|
$offers = $offers->get();
|
|
|
|
return $offers;
|
|
}
|
|
|
|
public static function getOffersWithoutProject( )
|
|
{
|
|
$offersWithoutProject = Offer::orderBy('startdate')
|
|
->whereNull('rejectdate')
|
|
->whereNull('project_id')
|
|
->get();
|
|
|
|
return $offersWithoutProject;
|
|
}
|
|
|
|
public static function saveOffer( $offerID, $offer )
|
|
{
|
|
$offer = (array) $offer;
|
|
|
|
$offer['startdate'] = date2mysql( $offer['startdate'] );
|
|
$offer['accepteddate'] = date2mysql( $offer['accepteddate'] );
|
|
$offer['rejectdate'] = date2mysql( $offer['rejectdate'] );
|
|
|
|
if ( $offerID == 0 )
|
|
{
|
|
$offer = Offer::create( $offer );
|
|
|
|
$offerID = $offer['id'];
|
|
}
|
|
else
|
|
{
|
|
Offer::whereId( $offerID )->update( $offer );
|
|
}
|
|
|
|
return $offerID;
|
|
}
|
|
|
|
public static function removeOffer( $offerID )
|
|
{
|
|
Offer::whereId( $offerID )->delete();
|
|
}
|
|
} |