combine.js 11.1 KB
(function () {
    "use strict";

    //需求方物料主页
    var  combineIndexController = function ($scope,dialogService,customizationService,SystemService,FoundationService,MasterService) {
        $scope.$emit('navShow',2);
        $scope.createRequest ={
            network:{},
            supplychainStoreBatchCreateRequest:{
                supplychainStoreList:[]
            },
            supplychainRoomBatchCreateRequest:{
                supplychainRequestList:[]
            }
        };

        

        $scope.network = {
            id:"",
            supplyTenantId:"",
            supplyTenantNumber:"",
            supplyTenantName:"",
            supplyIsActive:true,
            supplyUserId:"",
            supplyUserName:"",
            demandTenantId:"",
            demandTenantNumber:"",
            demandTenantName:"",
            demandIsActive:true,
            demandUserId:"",
            demandUserName:"",
            supplierId:"",
            supplierName:""
        };

        $scope.store ={
            supplychainNetworkId:"",
            supplyTenantId :"",
            supplyStoreId:"",
            supplyStoreName:"",
            supplyOperatingUnitId:"",
            supplyOperatingUnitName:"",
            supplyId:"",
            supplyName:"",
            supplyIsActive:"",
            demandTenantId :"",
            demandStoreId:"",
            demandStoreName:"",
            demandOperatingUnitId:"",
            demandOperatingUnitName:"",
            demandName:"",
            demandIsActive:""
        };

        $scope.showPersonMessage = true;
        //获取委托方
        $scope.getDemand = function () {
            SystemService.getTenant({}).success(function (data) {
                if(data.errors === null || data.errors.length > 0){
                    dialogService.tip(data.errors);
                }else{
                    $scope.demand = data.tenant;
                    $scope.vm = {
                        code:"oms.supplier.tenant.number",
                        level:"TENANT",
                        operatingUnitId:$scope.demand.id
                    };
                    $scope.getSupply();
                    $scope.store.demandName = $scope.demand.name;
                    $scope.store.demandTenantId = $scope.demand.id;
                    $scope.store.demandIsActive =  true;
                    $scope.network.demandIsActive = true;
                }
            })
        };
        $scope.getDemand();
        //获取供应方
        $scope.getSupply = function () {
            customizationService.apiCustomizationGetSetting($scope.vm).success(function (data) {
                if(data.errors === null || data.errors.length > 0){
                    dialogService.tip(data.errors);
                }else{
                    $scope.value = data.value;
                    if($scope.value !=""){
                        MasterService.apiMasterTenantFind({number:$scope.value}).success(function (data) {
                            if(data.errors === null || data.errors.length>0){
                                dialogService.tip(data.errors);
                            }else{
                                $scope.supply = data.result[0];
                                $scope.store.supplyName = $scope.supply.name;
                                $scope.store.supplyTenantId = $scope.supply.id;
                                $scope.store.supplyisActive =  true;
                                $scope.network.supplyIsActive = true;
                            }
                        })
                    }
                    
                }
            })
        };

        //第一次下一步
        $scope.firstNext = function () {
            if($scope.value==""){
                dialogService.tip([{"message":"供应方不存在,请在配置项中配置再操作。"}]);
                return;
            }
            $scope.network.demandTenantId = $scope.demand.id;
            $scope.network.demandTenantName = $scope.demand.name;
            $scope.network.demandTenantNumber = $scope.demand.number;
            $scope.network.supplyTenantId = $scope.supply.id;
            $scope.network.supplyTenantName = $scope.supply.name;
            $scope.network.supplyTenantNumber = $scope.supply.number;

            $scope.showPersonMessage= false;
            $scope.showSupplyMessage = true;
            $scope.showStoreMessage  =false;
            $scope.showRoomMessage = false;

            $scope.personText = false;
            $scope.supplyText =true;
            $scope.storeText = false;
            $scope.roomText = false;

            $scope.personMainLine = true;
            $scope.supplyMainLine = true;
            $scope.storeLine = false;
            $scope.roomLine = false;

        };
        
        $scope.secondNext = function () {
            if($scope.network.suppllyId == ""){
                dialogService.tip([{"message":"请选择供应商"}]);
                return;
            }
            $scope.createRequest.network =$scope.network;

            $scope.showPersonMessage= false;
            $scope.showSupplyMessage = false;
            $scope.showStoreMessage  =true;
            $scope.showRoomMessage = false;

            $scope.personText = false;
            $scope.supplyText =false;
            $scope.storeText = true;
            $scope.roomText = false;

            $scope.personMainLine = true;
            $scope.supplyMainLine = true;
            $scope.storeLine = true;
            $scope.roomLine = false;
        };
        
        $scope.thirdNext = function () {
            $scope.supplyStoreList = [];
            angular.forEach($scope.storeList,function (store) {
                if(store.state){
                    var newStore =  $scope.newStore(store);
                    $scope.supplyStoreList.push(newStore);
                }
            });
            if($scope.supplyStoreList.length == 0) {
                dialogService.tip([{"message":"请选择店铺"}]);
                return;
            }
            $scope.createRequest.supplychainStoreBatchCreateRequest.supplychainStoreList = $scope.supplyStoreList;
            
            $scope.showPersonMessage= false;
            $scope.showSupplyMessage = false;
            $scope.showStoreMessage  =false;
            $scope.showRoomMessage = true;

            $scope.personText = false;
            $scope.supplyText =false;
            $scope.storeText = false;
            $scope.roomText = true;

            $scope.personMainLine = true;
            $scope.supplyMainLine = true;
            $scope.storeLine = true;
            $scope.roomLine = true;
            $scope.getStoreroomList();
        };


        //初始化$scope.store
        $scope.newStore = function(store){
            var newStore ={
                supplychainNetworkId:"",
                supplyTenantId :$scope.supply.id,
                supplyStoreId:"",
                supplyStoreName:"",
                supplyOperatingUnitId:"",
                supplyOperatingUnitName:"",
                supplyId:"",
                supplyName:$scope.supply.name,
                supplyIsActive:true,
                demandTenantId :$scope.demand.id,
                demandStoreId:store.id,
                demandStoreName:store.name,
                demandOperatingUnitId:store.operatingUnitId,
                demandOperatingUnitName:store.operatingUnitName,
                demandName:$scope.demand.name,
                demandIsActive:true
            };
            return newStore;
        };

        $scope.supplierList = [];
        $scope.getSupplierList = function () {
            MasterService.apiMasterSupplierFind({pageSize:0,isActive: true,type: "STANDARD",}).success(function (data) {
                if(data.errors === null || data.errors.length>0){
                    dialogService.tip(data.errors);
                }else{
                    $scope.supplierList = data.result;
                }
            })
        };
        $scope.getSupplierList();

        $scope.storeList = [];
        $scope.getStoreList = function () {
            MasterService.apiMasterStoreFind({pageSize:0}).success(function (data) {
                if(data.errors === null || data.errors.length >0){
                    dialogService.tip(data.errors);
                }else{
                    $scope.storeList = data.result;
                }
            })
        };
        $scope.getStoreList();
        
        $scope.changeSupplier = function (supplier) {
            if(supplier != null ){
                $scope.network.supplierId = supplier.id.split("-")[0];
                $scope.network.supplierName=supplier.id.split("-")[1];
            }else {
                $scope.network.supplierId = "";
                $scope.network.supplierName="";
            }
        };


        $scope.getStoreroomList = function () {
            $scope.storeroomList = [];
            $scope.operatingUnitIdList = [];
            angular.forEach($scope.supplyStoreList,function (store) {
                $scope.operatingUnitIdList.push(store.demandOperatingUnitId);
            });
            MasterService.apiMasterStoreroomFind({pageSize:0,operatingUnitIdList:$scope.operatingUnitIdList,isActive:true}).success(function (data) {
                if(data.errors === null || data.errors.length >0){
                    dialogService.tip(data.errors);
                }else{
                    $scope.storeroomList = data.result;
                    angular.forEach($scope.storeroomList,function (storeroom) {
                        storeroom.state = "self";
                    })
                }
            })
        };


        //保存
        $scope.doSave = function () {
            //保存库房
            angular.forEach($scope.storeroomList, function (storeroom) {
                storeroom.storeRoomId = storeroom.id;
                storeroom.storeRoomName = storeroom.name;
                storeroom.storeHouseId = storeroom.storehouseId;
                if (storeroom.state == "entrust") { //托管仓
                    storeroom.type = "SUPPLIER";
                    storeroom.ownerType = "SELF";
                } else if (storeroom.state == "supply") {  //委托仓
                    storeroom.type = "SUPPLIER";
                    storeroom.ownerType = "DELEGATE";
                } else { //自用仓
                    storeroom.type = "STANDARD";
                    storeroom.ownerType = "SELF";
                }
            });
            $scope.createRequest.supplychainRoomBatchCreateRequest.supplychainRequestList = $scope.storeroomList;

            customizationService.apiCustomizationCombineCreate($scope.createRequest).success(function (data) {
                if(data.errors === null || data.errors.length>0){
                    dialogService.tip(data.errors);
                }else{
                    dialogService.tip([{"message":"绑定成功"}],"/customization/setting.htm");
                }
            })
        }
    };
    angular.module("xn.page", [])
     .controller("CombineIndexController",["$scope","dialogService","CustomizationService","SystemService","FoundationService","MasterService",combineIndexController])
})();