瀏覽代碼

BUG修复:订单管理-搜索重复复核导致订单重复
新增需求:客户管理-允许关联项目

Zhouzhendong 5 年之前
父節點
當前提交
d8a71c1b41

+ 9 - 1
app/Http/Controllers/CustomerBaseController.php

@@ -20,7 +20,15 @@ class CustomerBaseController extends Controller
     {
         if(!Gate::allows('客户-查询')){ return redirect('denied');  }
         $customers = app('CustomerService')->paginate($request->input(),["owners.contracts.files"]);
-        return response()->view('customer.customer.index',compact("customers"));
+        $owners = app("OwnerService")->getIntersectPermitting(['id','name','customer_id']);
+        $ownerMap = [[]];
+        foreach ($owners as $owner){
+            if (!$owner->customer_id){
+                $ownerMap[0][] = $owner->id; //TODO
+            }
+            if (isset($ownerMap[$owner->customer_id]));
+        }
+        return response()->view('customer.customer.index',compact("customers","owners"));
     }
 
     /**

+ 3 - 4
app/Http/Controllers/OwnerController.php

@@ -173,9 +173,8 @@ class OwnerController extends Controller
 
     public function get(Request $request)
     {
-        $params = [
-            "customer_id" => $request->input("customer_id"),
-        ];
-        return ["success"=>true,"data"=>app("OwnerService")->get($params)];
+        $params = [];
+        if ($request->has("customer_id"))$params["customer_id"] = $request->input("customer_id");
+        return ["success"=>true,"data"=>app("OwnerService")->get($params,null,false)];
     }
 }

+ 9 - 25
app/Http/Controllers/TestController.php

@@ -65,6 +65,7 @@ use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\Cache;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Storage;
 use Illuminate\Support\Str;
 use Maatwebsite\Excel\Facades\Excel;
 use Ramsey\Collection\Collection;
@@ -104,34 +105,17 @@ class TestController extends Controller
             app(BatchUpdateService::class)->batchUpdate('inventory_accounts',$updateParams);
         }
     }
-    public function zzd()
+    public function zzd(Request $request)
     {
-        foreach (StoreItems::query()->with(["depository","store"])->where("store_id",0)->cursor() as  $flight){
-            $sql = <<<sql
- select ASNNO from DOC_ASN_DETAILS left join bas_sku on DOC_ASN_DETAILS.SKU= BAS_SKU.SKU 
- WHERE asnlineno = ? AND skudescrc = ? 
- AND BAS_SKU.sku = ? AND alternate_sku1 = ? AND expectedqty_each = ? and LINESTATUS = '99'
-sql;
-            $param = [$flight->asn_line_code,$flight->name,$flight->sku,$flight->barcode,$flight->amount];
-if ($flight->depository)$sql.= " AND LOTATT05 = '".$flight->depository->code."' ";
-else $sql .="  AND LOTATT05 IS NULL";
-            $r = DB::connection("oracle")->select(DB::raw($sql),$param);
-            $dd = [];
-            foreach ($r as $data){
-                $store = Store::query()->where("asn_code",$data->asnno)->where("stored_method","快速入库")->first();
-                if ($store){
-                    $dd[] = $store->id;
-                }
-            }
-            if($dd){
-                if (count($dd) == 1){
-                    StoreItems::query()->where("id",$flight->id)->where("store_id",0)->update(["store_id"=>$dd[0]]);
-                    echo "更改ID“".$flight->id."”的store_id为:".$dd[0]."<br>";
-                }
-            }
-        }
+        Storage::download("test.jpg");
+        return 123;
     }
 
+    public function zzd1()
+    {
+        echo \request()->input("name");
+        exit();
+    }
     public function mergeCarrier(){
         $carriers = Carrier::query()->get();
         $logistics = [];

+ 9 - 5
app/Services/OrderService.php

@@ -331,14 +331,18 @@ class OrderService
          *  相同则为指定下标map类型数组追加一个键值对属性来记录同类数量,如N条,每次追加属性时先看属性是否存在,存在+1
          * */
         foreach ($orders as $index=>$order){
-            if (isset($commodities[$order->orderno])){
-                array_push($commodities[$order->orderno],
-                    ["sku"=>$order->sku,"alternate_sku1"=>$order->alternate_sku1,"descr_c"=>$order->descr_c,"qtyordered"=>$order->qtyordered
-                        ,"lotnum"=>$order->lotnum,"checktime"=>$order->checktime,"orderdetailcodename"=>$order->orderdetailcodename]);
+            $key = $order->orderno;
+            if (isset($commodities[$key])){
+                if (!isset($signs[$order->orderlineno]))
+                    array_push($commodities[$key],
+                        ["sku"=>$order->sku,"alternate_sku1"=>$order->alternate_sku1,"descr_c"=>$order->descr_c,"qtyordered"=>$order->qtyordered
+                            ,"lotnum"=>$order->lotnum,"checktime"=>$order->checktime,"orderdetailcodename"=>$order->orderdetailcodename]);
                 unset($orders[$index]);
                 continue;
             }
-            $commodities[$order->orderno]=[["sku"=>$order->sku,"alternate_sku1"=>$order->alternate_sku1,
+            $signs=[];
+            $signs[$order->orderlineno] = true;
+            $commodities[$key]=[["sku"=>$order->sku,"alternate_sku1"=>$order->alternate_sku1,
                 "descr_c"=>$order->descr_c,"qtyordered"=>$order->qtyordered,"lotnum"=>$order->lotnum,"checktime"=>$order->checktime,"orderdetailcodename"=>$order->orderdetailcodename]];
             $orderNos .= ",'".$order->orderno."'";
         }

+ 3 - 3
app/Services/OwnerService.php

@@ -266,12 +266,12 @@ Class OwnerService
         $wms = DB::connection("oracle")->selectOne(DB::raw("SELECT CUSTOMERID FROM BAS_CUSTOMER WHERE CUSTOMER_TYPE = ? AND CUSTOMERID = ?"),["OW",$owner->code]);
         if (!$wms && $owner->code){
             $query = DB::raw(<<<sql
-    INSERT INTO BAS_CUSTOMER(CUSTOMERID,CUSTOMER_TYPE,DESCR_C,ADDTIME,EDITTIME)
-        VALUES(?,?,?,TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'))
+    INSERT INTO BAS_CUSTOMER(CUSTOMERID,CUSTOMER_TYPE,DESCR_C,ADDTIME,EDITTIME,ADDWHO)
+        VALUES(?,?,?,TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),?)
 sql
             );
             $date = date('Y-m-d H:i:s');
-            DB::connection("oracle")->insert($query,[$owner->code,'OW',$owner->name,$date,$date]);
+            DB::connection("oracle")->insert($query,[$owner->code,'OW',$owner->name,$date,$date,'WAS-'.(Auth::user() ? Auth::user()['name'] : 'SYSTEM')]);
         }
         return true;
     }

+ 1 - 1
database/migrations/2020_12_15_095959_add_customer_phone_address.php

@@ -23,7 +23,7 @@ class AddCustomerPhoneAddress extends Migration
         Schema::table('customers', function (Blueprint $table) {
             $table->string('invoice_address')->nullable()->comment('发票地址');
             $table->string('contact_man')->index()->nullable()->comment('联系人');
-            $table->integer('phone')->index()->nullable()->comment('联系电话');
+            $table->string('phone')->nullable()->comment('联系电话');
             $table->string('remark')->nullable()->comment('公司备注');
         });
     }

+ 26 - 0
resources/views/customer/customer/_relatedOwner.blade.php

@@ -0,0 +1,26 @@
+<div class="modal fade" tabindex="-1" role="dialog" id="relatedOwner">
+    <div class="modal-dialog modal-lg modal-dialog-centered">
+        <div class="modal-content">
+            <div class="modal-header">
+                <button type="button" class="close" data-dismiss="modal">&times;</button>
+            </div>
+            <div class="modal-body">
+                <div class="container-fluid">
+                    <div class="row">
+                        <label for="ownerSelectpicker">选择货主</label>
+                        <select id="ownerSelectpicker" class="selectpicker" multiple data-live-search="true" title="项目(多选)" {{--v-model="ownerIds[customers[index]['id']]"--}}>
+                            <option>1</option>
+                            <option v-for="owner in ownerMap" :value="owner.id">@{{ owner.name }}</option>
+                        </select>
+                        <select{{--v-model="ownerIds[customers[index]['id']]"--}}>
+                            <option v-for="owner in ownerMap" disabled="true" :value="owner.id">@{{ owner.name }}</option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-success" @click="submitContract()">提交</button>
+            </div>
+        </div>
+    </div>
+</div>

+ 32 - 0
resources/views/customer/customer/index.blade.php

@@ -14,6 +14,7 @@
             @endif
             @include("customer.customer._customerLog")
             @include("customer.customer._addContract")
+            @include("customer.customer._relatedOwner")
             <table class="table table-striped table-hover text-nowrap">
                 <tr>
                     <th>序号</th>
@@ -45,6 +46,7 @@
                     <td>
                         @can("客户-编辑")
                             <button class="btn btn-sm btn-outline-success" @click="addContract(i)">新建合同</button>
+                            <button class="btn btn-sm btn-outline-primary" @click="relatedOwner(i)">关联项目</button>
                             <a :href="'{{url('customer/customer')}}/'+customer.id+'/edit'"><button class="btn btn-sm btn-outline-info">改</button></a>
                         @endcan
                         @can("客户-删除")<button class="btn btn-sm btn-outline-danger" @click="destroy(customer.id,i,customer.name)">删</button>@endcan
@@ -69,6 +71,9 @@
                 contractIds:[],
                 owners:[],
                 files:[],
+                ownerMap:null,
+                ownerIds:[],
+                ownerNames:[],
             },
             mounted(){
                 $('#container').removeClass('d-none');
@@ -86,6 +91,33 @@
                 }).init();
             },
             methods:{
+                relatedOwner(index){
+                    this.index = index;
+                    this.customers.forEach(customer=>{
+                        if (!this.ownerIds[customer.id]){
+                            this.ownerIds[customer.id] = [];
+                            this.ownerNames[customer.id] = [];
+                        }
+                    });
+                    if (!this.ownerMap){
+                        let url = "{{url("maintenance/owner/get")}}";
+                        window.tempTip.postBasicRequest(url,{},(res)=> {
+                            this.ownerMap = res;
+                            if (res)res.forEach(owner=>{
+                                if (this.ownerIds[owner.customer_id]){
+                                    this.ownerIds[owner.customer_id].push(owner.id);
+                                    this.ownerNames[owner.customer_id].push(owner.name);
+                                }
+                            });
+                            console.log(this.ownerMap);
+                            this.$forceUpdate();
+                            $("#relatedOwner").modal('show');
+                        });
+                    }
+                    setTimeout(function () {
+                        $("#ownerSelectpicker").selectpicker('render');
+                    },2000);
+                },
                 selectFile(){
                     $("#files").click();
                 },