| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- <?php
- namespace app\api\controller;
- use app\common\model\StockConfig;
- use app\api\service\StockService;
- use app\common\model\StockLog;
- use think\exception\ValidateException;
- use app\api\validate\Stock as StockValidate;
- use think\facade\Db;
- class Inventory extends Base
- {
- //品种包装箱/出入库列表
- public function stockList(StockConfig $stockConfig)
- {
- $type_id = $this->request->post('type_id', 'variety_name');
- if(!in_array($type_id, [$stockConfig::VarietyName, $stockConfig::PackingBox, $stockConfig::Material])) $this->error(__('参数错误'));
- $list = $stockConfig::where('type_id', $type_id)->field('id,title,field_name,unit')->select();
- $this->success('ok', $list);
- }
- //添加出入库
- public function stock(StockLog $stockLog, StockService $stockService)
- {
- $data = $this->request->post();
- $result = false;
- Db::startTrans();
- try {
-
- validate(StockValidate::class)->scene('add')->check($data);
-
- $resData = $stockService::setGoOutStock($this->userinfo['id'], $data);
-
- $result = $stockLog->saveAll($resData);
- Db::commit();
- }catch (ValidateException $e) {
-
- return $this->error($e->getError());
- } catch (\Exception $e) {
- Db::rollback();
- $this->error($e->getMessage());
- }
- if ($result === false) {
- $this->error(__('没有新增任何数据'));
- }
- $this->success();
- }
- //出入库记录
- public function stocklog(StockLog $stockLog)
- {
- $where = [];
- $type = $this->request->post('type/s', '');
- $type_id = $this->request->post('type_id/s', '');
- $spec_id = $this->request->post('spec/s', '');
- $limit = $this->request->post('limit/d', 15); //条数
- $time = $this->request->post('create_time/s'); //日期
- if(!empty($type)) $where[] = ['a.type', '=', $type];
- if(!empty($type_id)) $where[] = ['a.type_id', '=',$type_id];
- if(!empty($spec_id)) $where[] = ['a.variety_id', '=',$spec_id];
- if(!empty($time)){
- $arr = explode(',', $time);
- $where[] = ['a.createtime', '>=', strtotime($arr[0])];
- $where[] = ['a.createtime', '<=', strtotime($arr[1])];
- }
- $list = $stockLog::alias('a')
- ->leftjoin('stock_config b', 'a.variety_id = b.id')
- ->where('a.user_id', $this->userinfo['id'])
- ->where($where)
- ->field('a.*,b.title')
- ->order('a.id desc')
- ->paginate($limit);
- $this->success('ok', $list);
- }
-
-
- }
|