其中的save2為入庫核心邏輯,save3為出庫核心邏輯
~~~
<?php
namespace app\admin\controller;
use app\common\model\Stock as StockModel;
use app\common\controller\AdminBase;
use think\Db;
use think\Session;
use think\Request;
class Stock extends AdminBase
{
protected $stock_model;
protected function _initialize()
{
parent::_initialize();
$this->stock_model = new StockModel();
$stock_list = $this->stock_model->order(['in_time' => 'DESC', 'id' => 'desc'])->paginate(9,false,['query' => request()->param()]);
$this->assign('stock_list', $stock_list);
}
//明細列表
public function index($is_out= 2)
{
if($is_out==0||$is_out==1){
$stock_list = $this->stock_model->where('is_out',$is_out)->order(['in_time' => 'DESC', 'id' => 'desc'])->paginate(9,false,['query' => request()->param()]);
$this->assign('stock_list', $stock_list);
}
return $this->fetch();
}
//出入庫1-1
public function instock()
{
/* $alist= db('parts')->where('number',$number)->select();
$this->assign('alist',$alist);*/
return $this->fetch();
}
//出入庫1-2
public function outstock()
{
/* $alist= db('parts')->where('number',$number)->select();
$this->assign('alist',$alist);*/
return $this->fetch();
}
//出入庫更新1-1-入庫
public function save2()
{
$status=0;
$message="操作失敗";
$data = $this->request->param();
$arr=array($data['parts_id'],$data['number'],$data['price'],$data['remarks']);//二維數組
$num=count($arr[0]);//插入數量
for($i=0;$i<$num;){//二維數組長度
$arr2 = array_column($arr,$i);//獲取二維數組一列并組成新的一維數組
$map=array();//新建初始一維數組
foreach ($arr2 as $k =>$v){//改變索引數組改為鍵值數組
switch($k){
case 0:
$k='parts_id';
break;
case 1:
$k='number';
break;
case 2:
$k='price';
break;
case 3:
$k='remarks';
break;
}
$map[$k]=$v;
}
$map['in_time']=time();//map為新組合的一維數組
$map['is_out']=0;
$arr3[$i]=$map;//新組合的二維數組
$i=$i+1;
}
$this->stock_model->allowField(true)->saveAll($arr3);//批量插入
$status = 1;
$message = "入庫成功";
return ['status'=>$status, 'message'=>$message];
}
//出入庫更新1-2-出庫
public function save3()
{
$status=0;
$message="操作失敗";
$data = $this->request->param();
$arr=array($data['parts_id'],$data['number'],$data['price'],$data['remarks']);//二維數組
$num=count($arr[0]);//插入數量
for($i=0;$i<$num;){//
$arr2 = array_column($arr,$i);//獲取二維數組一列并組成新的一維數組
$map=array();//新建初始一維數組
foreach ($arr2 as $k =>$v){//改變索引數組改為鍵值數組
switch($k){
case 0:
$k='parts_id';
break;
case 1:
$k='number';
break;
case 2:
$k='price';
break;
case 3:
$k='remarks';
break;
}
$map[$k]=$v;
}
$map['in_time']=time();//map為新組合的一維數組
$map['is_out']=1;
$parts_id=$map['parts_id'];
$number=$map['number'];
//1.判斷是否有庫存,2.判斷庫存數量是否大于出庫數量
$res = getStockNum($parts_id);
if($res > 0){
if($res>=$number){
$iserror=0;
}else{
$iserror=1;
}
}else{
$iserror=1;
}
//放在判斷庫存的結果
$arr4[$i]=$iserror;
$arr3[$i]=$map;//新組合的二維數組
$i=$i+1;
}
if(in_array(1,$arr4)){//檢查數組中某個值是否存在
$status = 0;
$message = "出庫失敗,選中配件沒有庫存或者庫存量不足,請先入庫";
}else{
$this->stock_model->allowField(true)->saveAll($arr3);//批量插入
$status = 1;
$message = "出庫成功";
}
return ['status'=>$status, 'message'=>$message];
}
//更新1-1
public function edit($id)
{
$data=db('stock')->find($id);
$this->assign('data',$data);
return $this->fetch();
}
//更新1-2
public function update()
{
$data = $this->request->param();
if($this->stock_model->allowField(true)->save($data,['id'=>$data['id']])){
$this->success('更新成功');
}else{
$this->success('更新失敗');
}
}
//刪除
public function del($id = 0, $ids = [])
{
$id = $ids ? $ids : $id;
if ($id) {
if ($this->stock_model->destroy($id)) {
$this->success('刪除成功');
} else {
$this->error('刪除失敗');
}
} else {
$this->error('請選擇需要刪除的信息');
}
}
}
~~~
- 心靈筆記
- tp5在編輯器一行一個添加信息
- 出庫入庫處理
- 出庫
- 入庫
- 后臺控制器
- tp5加載更多-流加載
- 配件列表
- Parts.php
- add.html
- edit.html
- 圖片管理
- controller
- 1.imgfile.php
- 2.imgfiletag.php
- view
- imgfile
- 1.index.html
- 2.show.html
- 3.simple.html
- 4.more.html
- 5.edit.html
- 6.deittag.html
- imgfiletag
- add.htm
- edit.htm
- model
- imgfile.php
- imgfiletag.php
- api
- upload.php
- js
- admin.js
- tp5整合百度編輯器多圖上傳
- 1.html代碼
- 2.js代碼
- 3.api代碼
- 4.extend中的拓展代碼
- tp5刪除圖片同時刪除服務器圖片
- 實用字段的的添加更新
- 根據時間戳獲取未來幾天星期幾
- curl
- 城市按字母排版
- 聚合查詢及渲染,處理產品首頁
- 過濾字段
- 風控
- 查詢id是否在數組里
- 判斷更新還是新增操作
- tp5使用引入php文件