修复bug
This commit is contained in:
@@ -544,54 +544,53 @@ class FinanceController extends BaseAdminController
|
||||
*/
|
||||
public function actionSaleMoney()
|
||||
{
|
||||
$get = \Yii::$app->request->get();
|
||||
$admin = \Yii::$app->user->identity;
|
||||
$role = $admin->role;
|
||||
$timeType = \Yii::$app->request->get('time_type');
|
||||
$month = [];
|
||||
$week = [];
|
||||
$day = [];
|
||||
|
||||
switch ($timeType) {
|
||||
case 1:
|
||||
$startTime = strtotime(date('Y-m-1 00:00:00'));
|
||||
$endTime = strtotime(date('Y-m-d H:i:s'));
|
||||
$week = $this->getWeekList($startTime, $endTime);
|
||||
$day = $this->getDayList($startTime, $endTime);
|
||||
break;
|
||||
case 2:
|
||||
$startTime = strtotime(date('Y-1-1 00:00:00'));
|
||||
$endTime = strtotime(date('Y-m-d H:i:s'));
|
||||
$month = $this->getMonthsList($startTime, $endTime);
|
||||
break;
|
||||
case 3:
|
||||
$thisYear = date('Y');
|
||||
$lastYear = $thisYear - 1;
|
||||
$startTime = strtotime($lastYear . '-01-01 00:00:00');
|
||||
$endTime = strtotime($lastYear . '-12-31 23:59:59');
|
||||
$month = $this->getMonthsList($startTime, $endTime);
|
||||
break;
|
||||
case 4:
|
||||
$startTime = strtotime('2023-01-01 00:00:00');
|
||||
$endTime = time();
|
||||
$month = $this->getMonthsList($startTime, $endTime);
|
||||
break;
|
||||
default:
|
||||
throw new Exception('参数错误');
|
||||
$startTime = strtotime($get['start_time']. ' 00:00:00');
|
||||
$endTime = strtotime($get['end_time']. ' 23:59:59');
|
||||
$day = $this->getDayList($startTime, $endTime);
|
||||
$month = $this->getMonthsList($startTime, $endTime);
|
||||
if (count($day) > 60) {
|
||||
$day = [];
|
||||
}
|
||||
// switch ($timeType) {
|
||||
// case 1:
|
||||
// $startTime = strtotime(date('Y-m-1 00:00:00'));
|
||||
// $endTime = strtotime(date('Y-m-d H:i:s'));
|
||||
// $week = $this->getWeekList($startTime, $endTime);
|
||||
// $day = $this->getDayList($startTime, $endTime);
|
||||
// break;
|
||||
// case 2:
|
||||
// $startTime = strtotime(date('Y-1-1 00:00:00'));
|
||||
// $endTime = strtotime(date('Y-m-d H:i:s'));
|
||||
// $month = $this->getMonthsList($startTime, $endTime);
|
||||
// break;
|
||||
// case 3:
|
||||
// $thisYear = date('Y');
|
||||
// $lastYear = $thisYear - 1;
|
||||
// $startTime = strtotime($lastYear . '-01-01 00:00:00');
|
||||
// $endTime = strtotime($lastYear . '-12-31 23:59:59');
|
||||
// $month = $this->getMonthsList($startTime, $endTime);
|
||||
// break;
|
||||
// case 4:
|
||||
// $startTime = strtotime('2023-01-01 00:00:00');
|
||||
// $endTime = time();
|
||||
// $month = $this->getMonthsList($startTime, $endTime);
|
||||
// break;
|
||||
// default:
|
||||
// throw new Exception('参数错误');
|
||||
// }
|
||||
$where = $this->getFinanceWhere($role, $admin);
|
||||
$result = $this->getSleMoney($startTime, $endTime, $month, $week, $day, $where);
|
||||
$result = $this->getSleMoney($startTime, $endTime, $month, [], $day, $where);
|
||||
|
||||
// $year = date('Y');
|
||||
// $week = array_map(function ($v) use($year) {
|
||||
// return $year.'-第' . $v . '周';
|
||||
// }, $week);
|
||||
return [
|
||||
'line' => [
|
||||
// 'month' => !empty($month) ? $month : $week,
|
||||
'month' => !empty($month) ? $month : $day,
|
||||
'month' => !empty($day) ? $day : $month,
|
||||
'sale_money' => $result['sale_money'],
|
||||
'legend' => $result['line_legend'],
|
||||
// 'buy_money' => $result['buy_money'],
|
||||
],
|
||||
'drug' => [
|
||||
'data' => $result['drug_data']
|
||||
@@ -685,10 +684,7 @@ class FinanceController extends BaseAdminController
|
||||
// 总金额
|
||||
$totalMoney = 0;
|
||||
// TODO 暂时不统计供货价
|
||||
// $buyMoney = [];
|
||||
// 判断获取时间方法
|
||||
// $dateStr = !empty($week) ? 'W' : 'Y-m';
|
||||
// $dateArr = !empty($week) ? $week : $month;
|
||||
$dateStr = !empty($day) ? 'm-d' : 'Y-m';
|
||||
$dateArr = !empty($day) ? $day : $month;
|
||||
|
||||
@@ -696,7 +692,6 @@ class FinanceController extends BaseAdminController
|
||||
$thisMonth = date($dateStr, $v['created_at']);
|
||||
$saleMoney[$thisMonth] = bcadd($saleMoney[$thisMonth] ?? '0', $v['total_price'], 2);
|
||||
$totalMoney = bcadd($totalMoney, $v['total_price'], 2);
|
||||
// $buyMoney[$thisMonth] = bcadd($buyMoney[$thisMonth]?? '0', $v['total_buy_price'], 3);
|
||||
|
||||
// 药品
|
||||
if (!isset($drugSaleMoney[$v['drug_type']])) {
|
||||
@@ -710,16 +705,13 @@ class FinanceController extends BaseAdminController
|
||||
}
|
||||
foreach ($dateArr as $v) {
|
||||
if (!isset($saleMoney[$v])) $saleMoney[$v] = '0.00';
|
||||
// if (!isset($buyMoney[$v])) $buyMoney[$v] = '0.00';
|
||||
}
|
||||
|
||||
|
||||
return [
|
||||
'sale_money' => $this->getArrValues($saleMoney),
|
||||
// 'buy_money' => $this->getArrValues($buyMoney),
|
||||
'total_money' => $totalMoney,
|
||||
'line_legend' => ['销售金额'],
|
||||
// 药品类型统计
|
||||
'drug_data' => $this->getArrValues($drugSaleMoney),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -33,17 +33,19 @@ class HomeController extends BaseAdminController
|
||||
*/
|
||||
public function actionHomeCount()
|
||||
{
|
||||
$storeCount = Store::find()->where(['is_delete' => 0]);
|
||||
$userCount = User::find();
|
||||
$orderCount = ProductOrder::find()->where(['is_pay' => 1]);
|
||||
$totalPrice = Reconciliation::find()->where(['status' => 1]);
|
||||
$drugCount = Drug::find();
|
||||
$inventoryWarning = DrugStoreDrug::find()->where(['<', 'stock', 100]);
|
||||
$inventoryWarningByStore = DrugStoreRelations::find()->where(['<', 'stock', 100]);
|
||||
$get = \Yii::$app->request->get();
|
||||
$whereTime = $this->getWhereTime($get['start_time'], $get['end_time']);
|
||||
$storeCount = Store::find()->where(['is_delete' => 0])->andWhere($whereTime);
|
||||
$userCount = \common\models\User::find()->where($whereTime);
|
||||
$orderCount = ProductOrder::find()->where(['is_pay' => 1])->andWhere($whereTime);
|
||||
$totalPrice = Reconciliation::find()->where(['status' => 1])->andWhere($whereTime);
|
||||
$drugCount = Drug::find()->where($whereTime);
|
||||
$inventoryWarning = DrugStoreDrug::find()->where(['<', 'stock', 100])->andWhere($whereTime);
|
||||
$inventoryWarningByStore = DrugStoreRelations::find()->where(['<', 'stock', 100])->andWhere($whereTime);
|
||||
// 处方订单
|
||||
$prescriptionCount = Prescription::find()->where(['status' => 1]);
|
||||
$prescriptionCount = Prescription::find()->where(['status' => 1])->andWhere($whereTime);
|
||||
// 挂号人数
|
||||
$registerCount = Register::find()->where(['in', 'status', [2,3]]);
|
||||
$registerCount = Register::find()->where(['in', 'status', [2,3]])->andWhere($whereTime);
|
||||
return [
|
||||
'store' => intval($storeCount->count()),
|
||||
'user' => intval($userCount->count()),
|
||||
@@ -66,6 +68,8 @@ class HomeController extends BaseAdminController
|
||||
*/
|
||||
public function actionHomeCountByStore()
|
||||
{
|
||||
$get = \Yii::$app->request->get();
|
||||
$whereTime = $this->getWhereTime($get['start_time'], $get['end_time']);
|
||||
$admin = \Yii::$app->user->identity;
|
||||
$orderCount = ProductOrder::find()->where(['is_pay' => 1]);
|
||||
$totalPrice = Reconciliation::find()->where(['status' => 1]);
|
||||
@@ -105,12 +109,12 @@ class HomeController extends BaseAdminController
|
||||
break;
|
||||
}
|
||||
if (!empty($where)) {
|
||||
$orderCount->andWhere($where);
|
||||
$totalPrice->andWhere($where);
|
||||
$inventoryWarning->andWhere($where);
|
||||
$drug->where($where);
|
||||
$registerCount->andWhere($where);
|
||||
$prescriptionCount->andWhere($where);
|
||||
$orderCount->andWhere($where)->andWhere($whereTime);
|
||||
$totalPrice->andWhere($where)->andWhere($whereTime);
|
||||
$inventoryWarning->andWhere($where)->andWhere($whereTime);
|
||||
$drug->where($where)->andWhere($whereTime);
|
||||
$registerCount->andWhere($where)->andWhere($whereTime);
|
||||
$prescriptionCount->andWhere($where)->andWhere($whereTime);
|
||||
}
|
||||
$totalPriceArr = 0;
|
||||
$totalPriceSum = $totalPrice->select(['total_price'])->asArray()->all();
|
||||
@@ -129,6 +133,24 @@ class HomeController extends BaseAdminController
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取时间筛选条件
|
||||
* @param $startTime
|
||||
* @param $endTime
|
||||
* @return array
|
||||
*/
|
||||
public function getWhereTime($startTime, $endTime, $field = 'created_at')
|
||||
{
|
||||
if (!empty($startTime) && !empty($endTime)) {
|
||||
$where = ['between', $field, strtotime(date('Y-m-d 00:00:00', strtotime($startTime))), strtotime(date('Y-m-d 23:59:59', strtotime($endTime)))];
|
||||
} else {
|
||||
$time = time();
|
||||
$where = ['between', $field, $time - 86400 * 7, $time];
|
||||
}
|
||||
return $where;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取销售量Top10的药品
|
||||
* @return array|ActiveRecord[]
|
||||
@@ -136,11 +158,15 @@ class HomeController extends BaseAdminController
|
||||
*/
|
||||
public function actionTopDrugs()
|
||||
{
|
||||
$get = \Yii::$app->request->get();
|
||||
$whereTime = $this->getWhereTime($get['start_time'], $get['end_time'], 'rec.created_at');
|
||||
// 通过yii_reconciliation表统计出前10的药品
|
||||
$query = Reconciliation::find()
|
||||
->alias('rec')
|
||||
->with(['drug' => function ($query) {
|
||||
$query->select(['id', 'drug_name', 'drug_number', 'type', 'image']);
|
||||
}])
|
||||
->where($whereTime)
|
||||
->select(['drug_id', 'sum(number) as number', 'sum(total_price) as total_price'])
|
||||
->groupBy('drug_id')
|
||||
->orderBy(['total_price' => SORT_DESC])
|
||||
@@ -234,6 +260,7 @@ class HomeController extends BaseAdminController
|
||||
*/
|
||||
public function storeLowStock()
|
||||
{
|
||||
return [];
|
||||
$selectStore = $this->request->get('store_id');
|
||||
$query = DrugStoreRelations::find()
|
||||
->with(['drug' => function ($query) {
|
||||
@@ -294,11 +321,14 @@ class HomeController extends BaseAdminController
|
||||
*/
|
||||
public function actionTopStore()
|
||||
{
|
||||
$get = \Yii::$app->request->get();
|
||||
$whereTime = $this->getWhereTime($get['start_time'], $get['end_time']);
|
||||
return CashAccount::find()
|
||||
->with(['store' => function ($query) {
|
||||
$query->select(['id', 'name']);
|
||||
}])
|
||||
->where(['user_type' => 1])
|
||||
->andWhere($whereTime)
|
||||
->select(['user_id', 'total_cash'])
|
||||
->orderBy(['total_cash' => SORT_DESC])
|
||||
->limit(5)
|
||||
@@ -323,7 +353,7 @@ class HomeController extends BaseAdminController
|
||||
},
|
||||
])
|
||||
->where(['between', 'por.created_at', strtotime('-7 day'), time()])
|
||||
->andWhere(['status' => 0])
|
||||
->andWhere(['por.status' => 0])
|
||||
// ->where(['por.status' => 0])
|
||||
->orderBy(['id' => SORT_DESC])
|
||||
->asArray();
|
||||
|
||||
@@ -12,13 +12,16 @@ use common\models\DrugStoreDrug;
|
||||
use common\models\DrugStoreRelations;
|
||||
use common\models\ExpressCompanies;
|
||||
use common\models\ExpressNos;
|
||||
use common\models\FundWater;
|
||||
use common\models\Log;
|
||||
use common\models\ProductOrder;
|
||||
use common\models\Store;
|
||||
use common\services\ExportService;
|
||||
use GuzzleHttp\Client;
|
||||
use moonland\phpexcel\Excel;
|
||||
use yii\db\Exception;
|
||||
use yii\helpers\Json;
|
||||
use yii\web\Response;
|
||||
use yii\web\UploadedFile;
|
||||
|
||||
/**
|
||||
@@ -696,6 +699,30 @@ class WareController extends BaseAdminController
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @doc-name 导出药品价格
|
||||
*/
|
||||
public function actionExportDrugByWareStore()
|
||||
{
|
||||
\Yii::$app->response->format = Response::FORMAT_RAW;
|
||||
$params = \Yii::$app->request->post();
|
||||
$parameter['header'] = ['药品ID', '药品名称', '供货价', '建议零售价', '销售价格'];
|
||||
$parameter['data'] = DrugStoreRelations::inventory($params, \Yii::$app->user->identity->store_id);
|
||||
ExportService::ExportByCors($parameter);
|
||||
}
|
||||
/**
|
||||
* @doc-name 导出药品价格
|
||||
*/
|
||||
public function actionExportDrugByWare()
|
||||
{
|
||||
\Yii::$app->response->format = Response::FORMAT_RAW;
|
||||
$params = \Yii::$app->request->post();
|
||||
$parameter['header'] = ['药品ID', '药品名称', '供货价', '建议零售价'];
|
||||
$parameter['data'] = DrugStoreDrug::inventory($params, \Yii::$app->user->identity->store_id);
|
||||
ExportService::ExportByCors($parameter);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @doc-name 仓库药品列表 - 门店
|
||||
* @doc-param int status 状态1下架2上架 / optional
|
||||
|
||||
@@ -34,7 +34,7 @@ class ImportForm extends BaseModel
|
||||
//首拼
|
||||
public function shoupin($name)
|
||||
{
|
||||
return ArrayHelper::shouzimu($name);
|
||||
return ArrayHelper::shouzimu($name);
|
||||
}
|
||||
|
||||
//西药导入
|
||||
@@ -60,25 +60,25 @@ class ImportForm extends BaseModel
|
||||
$model->setAttribute('drug_alias', trim($item['商品名']));
|
||||
$model->setAttribute('pinyin_simple', (new Pinyin())->abbr(trim($item['药名'])));
|
||||
$model->setAttribute('drug_number', trim($item['编号']));
|
||||
$model->setAttribute('bar_code',trim( $item['条形码']));
|
||||
$model->setAttribute('bar_code', trim($item['条形码']));
|
||||
$model->setAttribute('specification', trim($item['规格']));
|
||||
$model->setAttribute('guozi_no', trim($item['国字准号']));
|
||||
$model->setAttribute('status',trim( $item['药品状态']));
|
||||
$model->setAttribute('status', trim($item['药品状态']));
|
||||
$model->setAttribute('function', trim($item['功能主治']));
|
||||
$model->setAttribute('source', trim($item['厂家']));
|
||||
$model->setAttribute('status', trim($item['状态']));
|
||||
$model->setAttribute('is_otc', trim($item['是否处方药']));
|
||||
$model->setAttribute('time_id', trim($item['服用时间']));
|
||||
$model->setAttribute('type_id', trim($item['服用方法']));
|
||||
$model->setAttribute('frequency_id',trim( $item['使用频率']));
|
||||
$model->setAttribute('frequency_id', trim($item['使用频率']));
|
||||
$model->setAttribute('unit_id', trim($item['用量单位']));
|
||||
$model->setAttribute('usage', trim($item['用法']));
|
||||
$model->setAttribute('type', '2');
|
||||
$model->setAttribute('created_at', time());
|
||||
if (!$model->save()) {
|
||||
$errorsMsg = array_values($model->getFirstErrors());
|
||||
$errors[] = '条形码:' . $item['条形码'] . ',国子准号:' . $item['国字准号'] . '的西药导入失败,原因:保存失败;'.$errorsMsg[0];
|
||||
}else{
|
||||
$errors[] = '条形码:' . $item['条形码'] . ',国子准号:' . $item['国字准号'] . '的西药导入失败,原因:保存失败;' . $errorsMsg[0];
|
||||
} else {
|
||||
$success[] = '条形码:' . $item['条形码'] . ',国子准号:' . $item['国字准号'] . '的西药导入成功';
|
||||
}
|
||||
} else {
|
||||
@@ -158,19 +158,19 @@ class ImportForm extends BaseModel
|
||||
if (!$drug) {
|
||||
$model = new Drug();
|
||||
$model->setAttribute('drug_name', trim($item['药名']));
|
||||
$model->setAttribute('pinyin_simple',(new Pinyin())->abbr(trim($item['药名'])));
|
||||
$model->setAttribute('pinyin_simple', (new Pinyin())->abbr(trim($item['药名'])));
|
||||
$model->setAttribute('drug_number', trim($item['编号']));
|
||||
$model->setAttribute('drug_alias', trim($item['别名']));
|
||||
$model->setAttribute('place', trim($item['产地']));
|
||||
$model->setAttribute('source',trim( $item['厂家']));
|
||||
$model->setAttribute('source', trim($item['厂家']));
|
||||
$model->setAttribute('status', trim($item['状态']));
|
||||
$model->setAttribute('is_otc', trim($item['是否处方药']));
|
||||
$model->setAttribute('type', '3');
|
||||
$model->setAttribute('created_at', time());
|
||||
if (!$model->save()) {
|
||||
$errorsMsg = array_values($model->getFirstErrors());
|
||||
$errors[] = '编号:' . $item['编号'] . '导入失败,原因:保存失败;'.$errorsMsg[0];
|
||||
}else{
|
||||
$errors[] = '编号:' . $item['编号'] . '导入失败,原因:保存失败;' . $errorsMsg[0];
|
||||
} else {
|
||||
$success[] = '编号:' . $item['编号'] . '的颗粒配方导入成功';
|
||||
}
|
||||
} else {
|
||||
@@ -208,18 +208,18 @@ class ImportForm extends BaseModel
|
||||
])->one();
|
||||
if (!$drug) {
|
||||
$model = new Drug();
|
||||
$model->setAttribute('drug_name',trim( $item['药名']));
|
||||
$model->setAttribute('drug_name', trim($item['药名']));
|
||||
$model->setAttribute('drug_alias', trim($item['别名']));
|
||||
$model->setAttribute('pinyin_simple', (new Pinyin())->abbr(trim($item['药名'])));
|
||||
$model->setAttribute('drug_number', trim($item['编号']));
|
||||
$model->setAttribute('bar_code', trim($item['条形码']));
|
||||
$model->setAttribute('specification', trim($item['规格']));
|
||||
$model->setAttribute('guozi_no',trim( $item['国字准号']));
|
||||
$model->setAttribute('guozi_no', trim($item['国字准号']));
|
||||
$model->setAttribute('function', trim($item['功能主治']));
|
||||
$model->setAttribute('source',trim( $item['厂家']));
|
||||
$model->setAttribute('source', trim($item['厂家']));
|
||||
$model->setAttribute('status', trim($item['状态']));
|
||||
$model->setAttribute('is_otc',trim( $item['是否处方药']));
|
||||
$model->setAttribute('time_id',trim( $item['服用时间']));
|
||||
$model->setAttribute('is_otc', trim($item['是否处方药']));
|
||||
$model->setAttribute('time_id', trim($item['服用时间']));
|
||||
$model->setAttribute('type_id', trim($item['服用方法']));
|
||||
$model->setAttribute('frequency_id', trim($item['使用频率']));
|
||||
$model->setAttribute('unit_id', trim($item['用量单位']));
|
||||
@@ -228,8 +228,8 @@ class ImportForm extends BaseModel
|
||||
$model->setAttribute('created_at', time());
|
||||
if (!$model->save()) {
|
||||
$errorsMsg = array_values($model->getFirstErrors());
|
||||
$errors[] = '条形码:' . $item['条形码'] . ',国子准号:' . $item['国字准号'] . '的中成药导入失败,原因:保存失败;'.$errorsMsg[0];
|
||||
}else{
|
||||
$errors[] = '条形码:' . $item['条形码'] . ',国子准号:' . $item['国字准号'] . '的中成药导入失败,原因:保存失败;' . $errorsMsg[0];
|
||||
} else {
|
||||
$success[] = '条形码:' . $item['条形码'] . ',国子准号:' . $item['国字准号'] . '的中成药导入成功';
|
||||
}
|
||||
} else {
|
||||
@@ -317,7 +317,7 @@ class ImportForm extends BaseModel
|
||||
if (empty($data)) {
|
||||
throw new Exception('导入数据为空');
|
||||
} else {
|
||||
$t=\Yii::$app->db->beginTransaction();
|
||||
$t = \Yii::$app->db->beginTransaction();
|
||||
try {
|
||||
foreach ($data as $item) {
|
||||
$DrugStoreDrug = DrugStoreDrug::find()->where(['drug_id' => trim($item['药品ID']), 'type' => trim($item['类别'])])->one();
|
||||
@@ -332,15 +332,15 @@ class ImportForm extends BaseModel
|
||||
$model->setAttribute('stock', trim($item['库存']));
|
||||
if (!$model->save()) {
|
||||
$errorsMsg = array_values($model->getFirstErrors());
|
||||
$errors[] = $item['药品ID'] . '导入失败,原因:保存失败;'.$errorsMsg[0];
|
||||
}else{
|
||||
$errors[] = $item['药品ID'] . '导入失败,原因:保存失败;' . $errorsMsg[0];
|
||||
} else {
|
||||
$success[] = $item['药品ID'] . '导入成功!';
|
||||
}
|
||||
} else {
|
||||
$errors[] = $item['药品ID'] . '导入失败,原因:重复导入';
|
||||
}
|
||||
}
|
||||
$t->commit();
|
||||
$t->commit();
|
||||
} catch (\Exception $e) {
|
||||
$t->rollBack();
|
||||
$errors[] = $e->getMessage();
|
||||
@@ -354,7 +354,7 @@ class ImportForm extends BaseModel
|
||||
if (empty($data)) {
|
||||
throw new Exception('导入数据为空');
|
||||
} else {
|
||||
$t=\Yii::$app->db->beginTransaction();
|
||||
$t = \Yii::$app->db->beginTransaction();
|
||||
try {
|
||||
foreach ($data as $item) {
|
||||
if (empty(trim($item['药品ID']))) {
|
||||
@@ -362,27 +362,32 @@ class ImportForm extends BaseModel
|
||||
continue;
|
||||
}
|
||||
if (empty(trim($item['销售价格']))) {
|
||||
$errors[] = $item['药品ID'] . '导入失败,原因:药品价格为空【'. $item['销售价格'].'】';
|
||||
$errors[] = $item['药品ID'] . '导入失败,原因:药品价格为空【' . $item['销售价格'] . '】';
|
||||
continue;
|
||||
}
|
||||
$DrugStoreDrug = DrugStoreDrug::find()->where(['drug_id' => trim($item['药品ID'])])->one();
|
||||
|
||||
if ($DrugStoreDrug) {
|
||||
$DrugStoreDrug->setAttribute('drug_id', trim($item['药品ID']));
|
||||
$DrugStoreDrug->setAttribute('market_price', trim($item['销售价格']));
|
||||
$DrugStoreDrug->updated_at = time();
|
||||
if ($DrugStoreDrug->price == trim($item['销售价格']) && $DrugStoreDrug->market_price == trim($item['供货价'])) {
|
||||
$errors[] = $item['药品ID'] . '导入失败,原因:价格未改变';
|
||||
} else {
|
||||
$DrugStoreDrug->setAttribute('market_price', trim($item['供货价']));
|
||||
$DrugStoreDrug->setAttribute('price', trim($item['建议零售价']));
|
||||
$DrugStoreDrug->updated_at = time();
|
||||
|
||||
if (!$DrugStoreDrug->save()) {
|
||||
$errorsMsg = array_values($DrugStoreDrug->getFirstErrors());
|
||||
$errors[] = $item['药品ID'] . '导入失败,原因:保存失败;'.$errorsMsg[0];
|
||||
}else{
|
||||
$success[] = $item['药品ID'] . '导入成功!';
|
||||
if (!$DrugStoreDrug->save()) {
|
||||
$errorsMsg = array_values($DrugStoreDrug->getFirstErrors());
|
||||
$errors[] = $item['药品ID'] . '导入失败,原因:保存失败;' . $errorsMsg[0];
|
||||
} else {
|
||||
$success[] = $item['药品ID'] . '导入成功!';
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
$errors[] = $item['药品ID'] . '导入失败,原因:未找到对应药品';
|
||||
}
|
||||
}
|
||||
$t->commit();
|
||||
$t->commit();
|
||||
} catch (\Exception $e) {
|
||||
$t->rollBack();
|
||||
$errors[] = $e->getMessage();
|
||||
@@ -396,27 +401,30 @@ class ImportForm extends BaseModel
|
||||
if (empty($data)) {
|
||||
throw new Exception('导入数据为空');
|
||||
} else {
|
||||
$t=\Yii::$app->db->beginTransaction();
|
||||
$t = \Yii::$app->db->beginTransaction();
|
||||
try {
|
||||
foreach ($data as $item) {
|
||||
$DrugStoreDrug = DrugStoreRelations::find()->where(['drug_id' => trim($item['药品ID']), 'store_id' => $storeId])->one();
|
||||
|
||||
if ($DrugStoreDrug) {
|
||||
$DrugStoreDrug->setAttribute('drug_id', trim($item['药品ID']));
|
||||
$DrugStoreDrug->setAttribute('price', trim($item['销售价格']));
|
||||
$DrugStoreDrug->updated_at = date('Y-m-d H:i:s');
|
||||
if ($DrugStoreDrug->price == trim($item['销售价格'])) {
|
||||
$errors[] = $item['药品ID'] . '导入失败,原因:价格未改变';
|
||||
} else {
|
||||
$DrugStoreDrug->setAttribute('price', trim($item['销售价格']));
|
||||
$DrugStoreDrug->updated_at = date('Y-m-d H:i:s');
|
||||
|
||||
if (!$DrugStoreDrug->save()) {
|
||||
$errorsMsg = array_values($DrugStoreDrug->getFirstErrors());
|
||||
$errors[] = $item['药品ID'] . '导入失败,原因:保存失败;'.$errorsMsg[0];
|
||||
}else{
|
||||
$success[] = $item['药品ID'] . '导入成功!';
|
||||
if (!$DrugStoreDrug->save()) {
|
||||
$errorsMsg = array_values($DrugStoreDrug->getFirstErrors());
|
||||
$errors[] = $item['药品ID'] . '导入失败,原因:保存失败;' . $errorsMsg[0];
|
||||
} else {
|
||||
$success[] = $item['药品ID'] . '导入成功!';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$errors[] = $item['药品ID'] . '导入失败,原因:未找到对应药品';
|
||||
}
|
||||
}
|
||||
$t->commit();
|
||||
$t->commit();
|
||||
} catch (\Exception $e) {
|
||||
$t->rollBack();
|
||||
$errors[] = $e->getMessage();
|
||||
|
||||
@@ -31,4 +31,19 @@ class DrugStoreDrug extends \common\modelsgii\DrugStoreDrug
|
||||
{
|
||||
return $this->hasOne(Drug::class,['id' => 'drug_id']);
|
||||
}
|
||||
|
||||
|
||||
public static function inventory($params, $storeId)
|
||||
{
|
||||
$list = self::find()->with(['drug'])->asArray()->all();
|
||||
$result = [];
|
||||
foreach ($list as $k => $v) {
|
||||
$result[$k]['drug_id'] = $v['drug_id'];
|
||||
$result[$k]['drug_name'] = $v['drug']['drug_name'];
|
||||
$result[$k]['market_price'] = $v['market_price'];
|
||||
$result[$k]['price'] = $v['price'];
|
||||
}
|
||||
return $result;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,4 +26,22 @@ class DrugStoreRelations extends \common\modelsgii\DrugStoreRelations
|
||||
{
|
||||
return $this->hasOne(Store::class,['id' => 'store_id']);
|
||||
}
|
||||
|
||||
public static function inventory($params, $storeId)
|
||||
{
|
||||
$list = self::find()->with(['drugStoreDrug', 'drug'])->where(['store_id' => $storeId])->select([
|
||||
'drug_id',
|
||||
'price',
|
||||
])->asArray()->all();
|
||||
$result = [];
|
||||
foreach ($list as $k => $v) {
|
||||
$result[$k]['drug_id'] = $v['drug_id'];
|
||||
$result[$k]['drug_name'] = $v['drug']['drug_name'];
|
||||
$result[$k]['market_price'] = $v['drugStoreDrug']['market_price'];
|
||||
$result[$k]['test_price'] = $v['drugStoreDrug']['price'];
|
||||
$result[$k]['price'] = $v['price'];
|
||||
}
|
||||
return $result;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user