add collection changes

This commit is contained in:
2015-11-04 08:59:20 +01:00
parent 931b83040b
commit ed9c1e77cd
12 changed files with 210 additions and 326 deletions

View File

@@ -503,25 +503,18 @@ class Transfer extends \common\models\BaseFitnessActiveRecord
if ( $mode == 'created_at'){
$query->andFilterWhere([ '>=', 'transfer.created_at' , $start] );
$query->andFilterWhere([ '<' , 'transfer.created_at' , $end ] );
self::inInterval($query, 'transfer.created_at', $start, $end);
}else if ( $mode == 'paid_at'){
$query->andFilterWhere([ '>=', 'transfer.paid_at' , $start ] );
$query->andFilterWhere([ '<' , 'transfer.paid_at' , $end ] );
self::inInterval($query, 'transfer.paid_at' , $start, $end);
}else if ( $mode == 'created_at_not_paid'){
$query->andFilterWhere([ "transfer.status" => Transfer::STATUS_NOT_PAID ] );
$query->andFilterWhere([ '>=', 'transfer.created_at' , $start ] );
$query->andFilterWhere([ '<' , 'transfer.created_at' , $end ] );
self::notPaid($query, 'transfer.paid_at', $start, $end);
self::inInterval($query, 'transfer.created_at', $start, $end);
}else if ( $mode == 'created_at_paid'){
$query->andFilterWhere([ "transfer.status" => Transfer::STATUS_PAID ] );
$query->andFilterWhere([ '>=', 'transfer.created_at' , $start ] );
$query->andFilterWhere([ '<' , 'transfer.created_at' , $end ] );
self::inInterval($query, 'transfer.created_at', $start, $end);
self::inInterval($query, 'transfer.paid_at', $start, $end);
}else if ( $mode == 'paid_at_not_created_at'){
$query->andFilterWhere([ "transfer.status" => Transfer::STATUS_PAID ] );
$query->andFilterWhere([ '>=', 'transfer.paid_at' , $start ] );
$query->andFilterWhere([ '<' , 'transfer.paid_at' , $end ] );
$query->andFilterWhere( ['or', [ '<', 'transfer.created_at' , isset( $start ) ? $start : '1900-01-01' ] ,[ '>=' , 'transfer.created_at' , $end ] ] );
self::inInterval($query, 'transfer.paid_at' , $start, $end);
self::notInInterval($query, 'transfer.created_at', $start, $end);
}
$query->groupBy('transfer.id_account');
@@ -531,6 +524,18 @@ class Transfer extends \common\models\BaseFitnessActiveRecord
}
public static function notInInterval($query ,$field , $start,$end ){
$query->andFilterWhere( ['or', [ '<', $field , isset( $start ) ? $start : '1900-01-01' ] ,[ '>=' , $field , isset($end) ? $end : '3000-01-01' ] ] );
}
public static function notPaid($query ,$field , $start,$end ){
$query->andFilterWhere( ['or', [ '<', $field , isset( $start ) ? $start : '1900-01-01' ] ,[ '>=' , $field , isset($end) ? $end : '3000-01-01' ] ,[ "transfer.status" => Transfer::STATUS_NOT_PAID ] ] );
}
public static function inInterval($query ,$field , $start,$end ){
$query->andFilterWhere([ '>=', $field , $start ] );
$query->andFilterWhere([ '<' , $field , $end ] );
}