2024-09-19 11:32:39 +08:00
< ? php
2024-12-19 19:20:27 +08:00
namespace common\models\oldDb ;
2024-09-19 11:32:39 +08:00
use yii\behaviors\TimestampBehavior ;
use yii\db\ActiveRecord ;
2024-12-19 19:20:27 +08:00
class Ledger extends \common\modelsgii\oldDb\Ledger
2024-09-19 11:32:39 +08:00
{
public function behaviors ()
{
return [
[
'class' => TimestampBehavior :: class ,
'attributes' => [
ActiveRecord :: EVENT_BEFORE_INSERT => [ 'created_at' , 'updated_at' ],
ActiveRecord :: EVENT_BEFORE_UPDATE => [ 'updated_at' ],
],
],
];
}
//账户
public function getCashAccount ()
{
return $this -> hasOne ( CashAccount :: class ,[ 'user_id' => 'user_id' ]);
}
//产品订单
public function getProductOrder ()
{
return $this -> hasOne ( ProductOrder :: class ,[ 'id' => 'order_id' ]);
}
//药品
public function getDrug ()
{
return $this -> hasOne ( Drug :: class ,[ 'id' => 'drug_id' ]);
}
//挂号
public function getRegister ()
{
return $this -> hasOne ( Register :: class ,[ 'id' => 'order_id' ]);
}
//导出结算记录
public static function inventory ( $params , $store_id )
{
$where = $andWhere = [];
$where [ 'status' ] = [ 0 , 1 ];
//统计时间范围
if ( ! empty ( $params [ 'start_time' ]) && ! empty ( $params [ 'end_time' ])) {
$start_time = strtotime ( $params [ 'start_time' ]);
$end_time = strtotime ( $params [ 'end_time' ]);
$andWhere = [ 'between' , 'created_at' , $start_time , $end_time ];
}
if ( $store_id ){
$where [ 'user_id' ] = $store_id ;
}
$list = Ledger :: find () -> select ( 'id,order_id,sum(money) as total_money,order_type,status,created_at' ) -> where ( $where ) -> andWhere ( $andWhere ) -> groupBy ( 'order_id,order_type' ) -> asArray () -> all ();
//把结果按照显示顺序存到返回的数组中
if ( ! empty ( $list )){
foreach ( $list as $key => $value ){
//订单类型
if ( $value [ 'order_type' ] == 1 ){
$order = ProductOrder :: find () -> where ([ 'id' => $value [ 'order_id' ]]) -> one ();
$inventory [ $key ][ 'order_no' ] = $order -> order_no ;
$inventory [ $key ][ 'order_type' ] = '产品订单' ;
} else {
$order = Register :: find () -> where ([ 'id' => $value [ 'order_id' ]]) -> one ();
$inventory [ $key ][ 'order_no' ] = $order -> order_no ;
$inventory [ $key ][ 'order_type' ] = '挂号订单' ;
}
$user = User :: find () -> where ([ 'id' => $order -> user_id ]) -> one ();
$inventory [ $key ][ 'nickname' ] = $user -> nickname ;
$inventory [ $key ][ 'money' ] = $value [ 'total_money' ];
$inventory [ $key ][ 'status' ] = $value [ 'status' ] == 0 ? '待结算' : '已结算' ;
$inventory [ $key ][ 'created_at' ] = date ( 'Y-m-d H:i:s' , $value [ 'created_at' ]); //下单时间
}
} else {
$inventory [ 0 ][ 'prescription_no' ] = '无数据导出' ;
}
return $inventory ;
}
}