Browse Source

Merge remote-tracking branch 'origin/dev-mysql' into dev-mysql

suntg 8 years ago
parent
commit
ecd2f1a9a1

+ 2 - 2
src/main/java/com/uas/platform/b2b/controller/SaleInquiryController.java

@@ -566,8 +566,8 @@ public class SaleInquiryController {
 	 */
 	@RequestMapping(value = "/{id}/info", method = RequestMethod.GET)
 	@ResponseBody
-	public List<PurchaseInquiryItem> getReceivedPurchaseOrderItemById(@PathVariable("id") Long id) {
-		return purchaseInquiryService.findById(id);
+	public List<PurchaseInquiryDetail> getReceivedPurchaseOrderItemById(@PathVariable("id") Long id) {
+		return detailService.findById(id);
 	}
 
 	/**

+ 12 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseInquiryDetailDao.java

@@ -3,12 +3,24 @@ package com.uas.platform.b2b.dao;
 import com.uas.platform.b2b.model.PurchaseInquiryDetail;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 import javax.transaction.Transactional;
+import java.util.List;
 
 @Repository
 @Transactional
 public interface PurchaseInquiryDetailDao extends JpaSpecificationExecutor<PurchaseInquiryDetail>, JpaRepository<PurchaseInquiryDetail, Long> {
 
+    /**
+     * 按卖家企业ID和询价主记录ID查找
+     *
+     * @param vendUU 供应商UU
+     * @param inquiryId 明细id
+     * @return
+     */
+    @Query("from PurchaseInquiryDetail d where d.vendUU = :vendUU and d.inquiry.id = :inquiryId")
+    List<PurchaseInquiryDetail> findByVendUUAndInquiry(@Param("vendUU") Long vendUU, @Param("inquiryId") Long inquiryId);
 }

+ 1 - 1
src/main/java/com/uas/platform/b2b/dao/PurchaseInquiryItemDao.java

@@ -211,5 +211,5 @@ public interface PurchaseInquiryItemDao extends JpaSpecificationExecutor<Purchas
 	 * @param userUU
 	 */
 	@Procedure(procedureName = "inquiryitems_readstatus")
-	void setReadStatus(Long id, Long useruu);
+	void setReadStatus(Long id, Long userUU);
 }

+ 5 - 16
src/main/java/com/uas/platform/b2b/model/PurchaseNotice.java

@@ -1,23 +1,12 @@
 package com.uas.platform.b2b.model;
 
-import java.io.Serializable;
-import java.util.Date;
-
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.OneToOne;
-import javax.persistence.SequenceGenerator;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.Status;
 
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
 /**
  * 平台里面,以供应商的角度来查看客户送货提醒
  * 
@@ -88,7 +77,7 @@ public class PurchaseNotice implements Serializable {
 	/**
 	 * 处理状态(已回复、未回复),全部发货后改为已回复
 	 */
-	@Column(name = "pn_status", insertable = false, updatable = false)
+	@Column(name = "pn_status")
 	private Short status;
 
 	/**

+ 1 - 1
src/main/java/com/uas/platform/b2b/model/SaleSendItem.java

@@ -20,7 +20,7 @@ import java.util.Set;
 public class SaleSendItem {
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.AUTO)
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
 	@Column(name = "si_id")
 	private Long id;
 

+ 10 - 0
src/main/java/com/uas/platform/b2b/service/PurchaseInquiryDetailService.java

@@ -6,6 +6,8 @@ import com.uas.platform.core.model.PageInfo;
 import com.uas.search.b2b.model.SPage;
 import org.springframework.data.domain.Page;
 
+import java.util.List;
+
 public interface PurchaseInquiryDetailService {
 
 	/**
@@ -45,4 +47,12 @@ public interface PurchaseInquiryDetailService {
      * @return
      */
     SPage<PurchaseInquiryDetail> findTodoByPageInfo(PageInfo pageInfo, String keyword, SearchFilter filter);
+
+	/**
+	 * 通过id查询详情
+	 *
+	 * @param id 明细id
+	 * @return
+	 */
+	List<PurchaseInquiryDetail> findById(Long id);
 }

+ 4 - 29
src/main/java/com/uas/platform/b2b/service/impl/PubInquiryServiceImpl.java

@@ -1,30 +1,9 @@
 package com.uas.platform.b2b.service.impl;
 
 import com.uas.platform.b2b.core.util.ThreadUtils;
-import com.uas.platform.b2b.dao.AttachDao;
-import com.uas.platform.b2b.dao.CommonDao;
-import com.uas.platform.b2b.dao.EnterpriseDao;
-import com.uas.platform.b2b.dao.ProductDao;
-import com.uas.platform.b2b.dao.PublicInquiryDao;
-import com.uas.platform.b2b.dao.PublicInquiryInfoDao;
-import com.uas.platform.b2b.dao.PublicInquiryItemDao;
-import com.uas.platform.b2b.dao.PublicInquiryItemInfoDao;
-import com.uas.platform.b2b.dao.PublicInquiryReplyDao;
-import com.uas.platform.b2b.dao.PurcInquiryItemDao;
-import com.uas.platform.b2b.dao.RoleDao;
-import com.uas.platform.b2b.dao.VendorDao;
+import com.uas.platform.b2b.dao.*;
 import com.uas.platform.b2b.erp.model.Inquiry;
-import com.uas.platform.b2b.model.Attach;
-import com.uas.platform.b2b.model.Enterprise;
-import com.uas.platform.b2b.model.FileUpload;
-import com.uas.platform.b2b.model.Product;
-import com.uas.platform.b2b.model.PublicInquiry;
-import com.uas.platform.b2b.model.PublicInquiryItem;
-import com.uas.platform.b2b.model.PublicInquiryItemInfo;
-import com.uas.platform.b2b.model.PublicInquiryReply;
-import com.uas.platform.b2b.model.PurcInquiry;
-import com.uas.platform.b2b.model.PurcInquiryItem;
-import com.uas.platform.b2b.model.SearchFilter;
+import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.ps.InquiryUtils;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.AttachService;
@@ -51,11 +30,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.ui.ModelMap;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 /**
  * 公共询价方法实现层
@@ -562,7 +537,7 @@ public class PubInquiryServiceImpl implements PubInquiryService {
     @Override
     public ModelMap refuseInquiry(Long id) throws Exception {
         ModelMap map = new ModelMap();
-        InquiryUtils.decide(id, Constant.YES);
+        InquiryUtils.decide(id, Constant.NO);
         map.put("success", "操作成功");
         return map;
     }

+ 13 - 7
src/main/java/com/uas/platform/b2b/service/impl/PurchaseInquiryDetailServiceImpl.java

@@ -5,6 +5,7 @@ import com.uas.platform.b2b.model.PurchaseInquiryDetail;
 import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.PurchaseInquiryDetailService;
+import com.uas.platform.b2b.support.SPageUtils;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.PageInfo;
@@ -94,7 +95,6 @@ public class PurchaseInquiryDetailServiceImpl implements PurchaseInquiryDetailSe
     @Override
 	public SPage<PurchaseInquiryDetail> findByPageInfo(final PageInfo pageInfo, final String keyword,
 			final SearchFilter filter) {
-		SPage<PurchaseInquiryDetail> items = new SPage<PurchaseInquiryDetail>();
 		Page<PurchaseInquiryDetail> inquiryitems = inquiryDetailDao
 				.findAll(new Specification<PurchaseInquiryDetail>() {
 			public Predicate toPredicate(Root<PurchaseInquiryDetail> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
@@ -120,12 +120,7 @@ public class PurchaseInquiryDetailServiceImpl implements PurchaseInquiryDetailSe
 				return query.where(pageInfo.getPredicates(root, query, builder)).getRestriction();
 			}
 		}, pageInfo);
-		items.setContent(inquiryitems.getContent());
-		items.setPage(inquiryitems.getNumber());
-		items.setSize(inquiryitems.getSize());
-		items.setTotalElement(inquiryitems.getTotalElements());
-		items.setTotalPage(inquiryitems.getTotalPages());
-		return items;
+		return SPageUtils.covertSPage(inquiryitems);
 	}
 
 	@Override
@@ -158,4 +153,15 @@ public class PurchaseInquiryDetailServiceImpl implements PurchaseInquiryDetailSe
 			}
 		}, pageInfo);
 	}
+
+	/**
+	 * 通过id查询详情
+	 *
+	 * @param id 明细id
+	 * @return
+	 */
+	@Override
+	public List<PurchaseInquiryDetail> findById(Long id) {
+		return inquiryDetailDao.findByVendUUAndInquiry(SystemSession.getUser().getEnterprise().getUu(), id);
+	}
 }

+ 16 - 1
src/main/java/com/uas/platform/b2b/support/SPageUtils.java

@@ -1,7 +1,7 @@
 package com.uas.platform.b2b.support;
 
-import com.uas.sso.support.Page;
 import com.uas.search.b2b.model.SPage;
+import com.uas.sso.support.Page;
 
 
 /**
@@ -25,4 +25,19 @@ public class SPageUtils {
         sPage.setContent(page.getContent());
         return sPage;
     }
+
+    /**
+     * 将Page<T> 转成平台封装的SPage<T>
+     * @param page page信息
+     * @param <T> 实体对象
+     * @return
+     */
+    public static <T> SPage<T> covertSPage(org.springframework.data.domain.Page<T> page) {
+        SPage<T> sPage = new SPage<T>();
+        sPage.setTotalElement(page.getTotalElements());
+        sPage.setSize(page.getSize());
+        sPage.setPage(page.getNumber());
+        sPage.setContent(page.getContent());
+        return sPage;
+    }
 }

+ 21 - 81
src/main/webapp/resources/js/index/app.js

@@ -368,7 +368,10 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
         }).state('sale.quotation.new', {
             url: "/new",
             templateUrl: "static/tpl/index/sale/quotation_new.html",
-            controller: 'SaleQuotationNewCtrl'
+            controller: 'SaleQuotationNewCtrl',
+            params: {
+                'inquiryItem': null
+            }
         }).state('sale.quotation.list', {
             url: "/list",
             templateUrl: "static/tpl/index/sale/quotation_list.html",
@@ -7027,6 +7030,20 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
             }
         };
 
+        // 根据传入的询价相关的信息封装成报价需要的信息
+        if ($stateParams.inquiryItem != null) {
+            var item = $stateParams.inquiryItem;
+            console.log(item);
+            $scope.item.quotation.cust = item.inquiry.enterprise;
+            $scope.item.quotation.custUser = item.user;
+            $scope.item.quotation.custUserUU = item.userUU;
+            if (item.product == null || item.product.id == null) {
+                toaster.pop('info', '暂未匹配到物料信息,请手动选择');
+            } else {
+                $scope.item.product = item.product;
+            }
+        }
+
         // 保存
         $scope.save = function () {
             var valid = true;
@@ -7042,15 +7059,10 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
                 if (!$scope.item.quotation.code) //新增,设单号
                     $scope.item.quotation.code = 'BJ' + $filter('date')(new Date(), 'yyMMddHHmmss_sss');
                 $scope.item.quotation.custUU = $scope.item.quotation.cust.uu;
-                $scope.item.quotation.custUserUU = $scope.item.quotation.custUser.userUU;
+                if ($scope.item.quotation.custUserUU == null) {
+                    $scope.item.quotation.custUserUU = $scope.item.quotation.custUser.userUU;
+                }
                 $scope.item.productId = $scope.item.product.id;
-                // $scope.item.quotation.status = 100;//在录入
-                // if ($scope.item.quotation.date instanceof Date) {
-                //     $scope.item.quotation.date = $scope.item.quotation.date.getTime();
-                // }
-                // if ($scope.item.quotation.endDate instanceof Date) {
-                //     $scope.item.quotation.endDate = $scope.item.quotation.endDate.getTime();
-                // }
                 Quotation.save({}, $scope.item, function (data) {
                     $scope.loading = false;
                     $scope.item = data;
@@ -7058,7 +7070,6 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
                     if ($stateParams.id)
                         window.location.reload();
                     else
-                    // window.location.hash = '#/sale/quotation/' + data.id;
                         window.location.hash = '#/sale/quotation/list';
                 }, function (response) {
                     $scope.loading = false;
@@ -23477,15 +23488,6 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
             }
         };
 
-        // // 设置阅读状态
-        // $scope.setReadStatus = function(msg) {
-        //     if(!msg.read) {
-        //         PurcInquiry.setStatus({id: msg.inid}, {}, function(data) {
-        //
-        //         });
-        //     }
-        // }
-
         $scope.searchMethod = false;
         var getService = function () {
             return $scope.searchMethod ? PubInquirySearchInfo : PubInquiryNoSearchInfo;
@@ -23513,17 +23515,6 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
                 if ($scope.active == 'overdue') {
                     $scope.active = 'end';
                 }
-                /*getService()[getState($scope.active)].call(null, BaseService.parseParams(pageParams), function (page) {
-                    $scope.loading = false;
-                    if (page) {
-                        params.total(page.totalElement);
-                        $defer.resolve(page.content);
-                        $scope.searchFilterXls = angular.copy(pageParams.searchFilter);//保存当前取值的关键词
-                    }
-                }, function (response) {
-                    $scope.loading = false;
-                    toaster.pop('error', '数据加载失败', response.data);
-                });*/
                 AccountEnterprise.get({}, function(data) {
                     $scope.currentEn = data;
                     publicInquiry.getUrl({}, function(data) {
@@ -23540,7 +23531,6 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
                             if (response) {
                                 params.total(response.totalElements);
                                 $defer.resolve(response.content);
-                                // $scope.keywordXls = angular.copy($scope.keyword); // 保存当前取值的关键词  做导出时需要的字段
                             }
                         }).error(function (err) {
                             $scope.loading = false;
@@ -23551,45 +23541,6 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
             }
         });
 
-        //获得各分类未阅读数量
-        // var getUnreadCount = function () {
-        //     PurcInquiry.getUnreadCount(null, function (data) {
-        //         $scope.unread = data;
-        //     });
-        // };
-        // getUnreadCount();
-
-        // //设置单据已读
-        // $scope.setOrdersRead = function (id) {
-        //     // 如果单据本身已读,则不发送请求修改数据
-        //     if (!$scope.isUnread(id)){
-        //         return;
-        //     }
-        //     var sourceId = [];
-        //     sourceId.push(id);
-        //     PurcInquiry.setRead({}, sourceId, function (message) {
-        //         getUnreadCount();
-        //         removeByValue($scope.unreadCode, id);
-        //     });
-        // };
-
-        // $scope.setOrdersReadByState = function () {
-        //     if (!$scope.unread.replied || $scope.unread.replied == 0) {
-        //         return;
-        //     }
-        //     PurcInquiry.setReadByState({}, function () {
-        //         getUnreadIds();
-        //         getUnreadCount();
-        //     });
-        // };
-
-        // var getUnreadIds = function () {
-        //     PurcInquiry.getUnreadIds({}, "", function (message) {
-        //         $scope.unreadCode = message.content;
-        //     });
-        // };
-        // getUnreadIds();
-
         $scope.isUnread = function (id) {
             for (var i in $scope.unreadCode) {
                 if (id == $scope.unreadCode[i]) {
@@ -24121,17 +24072,6 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
                 if ($scope.active == 'overdue') {
                     $scope.active = 'end';
                 }
-               /* getService()[getState($scope.active)].call(null, BaseService.parseParams(pageParams), function (page) {
-                    $scope.loading = false;
-                    if (page) {
-                        params.total(page.totalElement);
-                        $defer.resolve(page.content);
-                        $scope.searchFilterXls = angular.copy(pageParams.searchFilter);//保存当前取值的关键词
-                    }
-                }, function (response) {
-                    $scope.loading = false;
-                    toaster.pop('error', '数据加载失败', response.data);
-                });*/
                 AccountEnterprise.get({}, function(data) {
                     $scope.currentEn = data;
                     publicInquiry.getUrl({}, function(data) {

+ 0 - 254
src/main/webapp/resources/tpl/index/sale/inquiry_detail.html

@@ -332,260 +332,6 @@
 				</tr>
 				</tbody>
 			</table>
-			<!--<table class="block table table-default table-striped">-->
-				<!--<tbody>-->
-					<!--<tr-->
-						<!--ng-repeat="inquiryItem in newinquiryItems | orderBy:'number'" ng-class="{'scoroll':order.orderItems.length>10}">-->
-						<!--<td width="40">-->
-							<!--&lt;!&ndash; <div ng-bind="::inquiryItem.number">-->
-							<!--</div> &ndash;&gt;-->
-							<!--{{$index + 1}}-->
-						<!--</td>-->
-						<!--<td width="200">-->
-							<!--<div class="text-num text-bold"-->
-								<!--ng-bind="::inquiryItem.product.code"></div>-->
-							<!--<div ng-bind="::inquiryItem.product.title"></div>-->
-							<!--<div class="text-muted" ng-bind="::inquiryItem.product.spec"></div>-->
-							<!--<div ng-if="::inquiryItem.needquantity" class="text-num text-bold">-->
-								<!--需求数量:<span ng-bind="::inquiryItem.needquantity"></span>-->
-							<!--</div>-->
-							<!--<div ng-show="inquiryItem.remark">-->
-								<!--备注:{{::inquiryItem.remark}}-->
-							<!--</div>-->
-							<!--<div ng-if="inquiryItem.attaches.length && !inquiryItem.$editing" class="text-muted">-->
-								<!--附件:<a class="file" ng-repeat="attach in inquiryItem.attaches" href="file/{{attach.id}}">{{::attach.name}}</a>-->
-							<!--</div>-->
-							<!--<div class="form-group" ng-if="inquiryItem.$editing"-->
-								<!--style="width: 180px;">-->
-								<!--<input type="text" class="form-control input-xs"-->
-									<!--ng-model="inquiryItem.brand" placeholder="物料品牌">-->
-							<!--</div>-->
-							<!--<div class="form-group" ng-if="inquiryItem.$editing"-->
-								<!--style="width: 180px;">-->
-								<!--<input type="text" class="form-control input-xs"-->
-									<!--ng-model="inquiryItem.vendorprodcode" placeholder="供应商物料编号">-->
-							<!--</div>-->
-							<!--<div class="form-group" ng-if="inquiryItem.$editing" style="width: 220px;">-->
-								<!--<input type="text" class="form-control input-xs" ng-change="verify(inquiryItem.leadtime,'leadtime')" ng-pattern="/^\+?[1-9]\d*$/"-->
-									   <!--ng-model="inquiryItem.leadtime" placeholder="交货周期(确切天数)" style="display: inline-block;width: 180px;">-->
-								<!--<span ng-if="!inquiryItem.leadtime" class="text-inverse"> 必填*</span>-->
-								<!--<div style="margin-left: 50px;" class="text-bold text-inverse" ng-show="!leadtimeVerify">请填数字!</div>-->
-							<!--</div>-->
-							<!--<div class="input-group form-group" ng-if="inquiryItem.$editing && !inquiryItem.attaches.length" style="width: 300px;">-->
-								<!--<div class="input-group-addon">上传附件:</div>-->
-								<!--<input type="file" ng-model="inquiryItem.myFiles" ng-file-select-->
-									   <!--ng-multiple="false" class="form-control input-sm input-group" name="file">-->
-							<!--</div>-->
-						<!--</td>-->
-						<!--<td class="text-center" width="40">-->
-							<!--<span ng-bind="::inquiryItem.product.unit"></span>-->
-						<!--</td>-->
-						<!--<td class="text-center" width="90">-->
-							<!--<div ng-show="!inquiryItem.$editing">-->
-								<!--<div ng-repeat="reply in inquiryItem.replies">-->
-									<!--<span ng-bind="reply.lapQty"></span>-->
-								<!--</div>-->
-							<!--</div>-->
-							<!--<div style="margin: 0 auto;" ng-if="inquiryItem.$editing">-->
-								<!--<div ng-repeat="reply in inquiryItem.replies">-->
-									<!--<div class="form-group input-group input-group-xs">-->
-										<!--<input type="text" class="form-control input-xs" ng-change="verifylapQty(reply.lapQty,$index, inquiryItem)"-->
-											   <!--ng-model="reply.lapQty" min="{{$index == 0 ? 0 :(inquiryItem.replies[$index - 1].lapQty + 1)}}"-->
-											   <!--ng-Readonly="$index == 0"  placeholder="数量" />-->
-										<!--<span class="input-group-btn" ng-show="$index != 0">-->
-											<!--<button class="btn btn-default" type="button"-->
-													<!--ng-click="removeStep(inquiryItem, $index)">-->
-												<!--<i class="fa fa-trash-o"></i>-->
-											<!--</button>-->
-										<!--</span>-->
-									<!--</div>-->
-									<!--<div class="text-bold text-inverse" style="margin-top:-15px" ng-show="!replylapQtys[$index]">分段数递增!</div>-->
-								<!--</div>-->
-								<!--<a ng-click="addStep(inquiryItem)" class="btn btn-default btn-xs"-->
-								   <!--ng-show="!inquiryItem.custLap">添加分段</a>-->
-							<!--</div>-->
-						<!--</td>-->
-						<!--<td class="text-center br-l" width="100">-->
-							<!--<div ng-show="!inquiryItem.$editing">-->
-								<!--<div ng-repeat="reply in inquiryItem.replies">-->
-									<!--<span ng-bind="reply.price | number:6"></span> <span-->
-										<!--ng-show="reply.price == null" class="text-muted">-</span>-->
-								<!--</div>-->
-								<!--<div class="dropdown">-->
-									<!--<a href="javascript:void(0);" class="dropdown-toggle text-default"-->
-									   <!--ng-mouseover="getHistory(inquiryItem)">历史报价<i-->
-											<!--class="fa fa-fw fa-angle-down"></i></a>-->
-									<!--<div class="dropdown-menu pane" style="width: 270px;">-->
-										<!--<div class="pane-body">-->
-											<!--<ul class="list-unstyled list-menu">-->
-												<!--<li ng-repeat="historyItem in ::inquiryItem.history">-->
-													<!--<div ng-class="{'text-inverse': $index==0}">-->
-														<!--<div class="row row-sm"-->
-															 <!--ng-repeat="historyReply in historyItem.replies">-->
-															<!--<div class="col-xs-5">≥{{historyReply.lapQty}}</div>-->
-															<!--<div class="col-xs-5">价格{{historyReply.price | number:6}}</div>-->
-														<!--</div>-->
-													<!--</div>-->
-													<!--<div class="text-muted">{{historyItem.inquiry.date |-->
-														<!--date:'yyyy-MM-dd'}}{{historyItem.inquiry.enterprise.enName}}-->
-													<!--</div>-->
-												<!--</li>-->
-											<!--</ul>-->
-											<!--<div ng-show="!inquiryItem.history || inquiryItem.history.length == 0"-->
-												 <!--class="text-center text-muted">暂无历史报价</div>-->
-										<!--</div>-->
-									<!--</div>-->
-								<!--</div>-->
-							<!--</div>-->
-							<!--<div style="margin: 0 auto;" ng-if="inquiryItem.$editing">-->
-								<!--<div ng-repeat="reply in inquiryItem.replies">-->
-									<!--<div class="form-group">-->
-										<!--<input type="text" class="form-control input-xs " ng-class="{'input-error': !replyPrices[$index]}" ng-model="reply.price"-->
-											   <!--ng-change="verify(reply.price,$index)" placeholder="单价(必填)"  />-->
-										<!--<div class="text-bold text-inverse" style="margin-bottom:-15px" ng-show="!replyPrices[$index]">请填数字!</div>-->
-									<!--</div>-->
-								<!--</div>-->
-							<!--</div>-->
-						<!--</td>-->
-						<!--<td class="text-center" ng-bind="::inquiryItem.currency" width="50"></td>-->
-						<!--<td class="text-center" width="60">-->
-						<!--<input type="text" ng-pattern="/^\+?[1-9]\d*$/" ng-model="inquiryItem.taxrate" style="width: 25px" ng-readonly="!inquiryItem.$editing">%</td>-->
-						<!--<td class="text-center" width="85">-->
-							<!--<div ng-show="!inquiryItem.$editing">-->
-								<!--<span ng-bind="inquiryItem.minOrderQty"></span> <span-->
-									<!--ng-show="inquiryItem.minOrderQty == null" class="text-muted">-</span>-->
-							<!--</div>-->
-							<!--<div ng-if="inquiryItem.$editing">-->
-								<!--<input type="text" class="form-control input-xs" ng-change="verify(inquiryItem.minOrderQty,'minOrderQty')"-->
-									<!--ng-model="inquiryItem.minOrderQty" placeholder="最小订购">-->
-							<!--</div>-->
-						<!--</td>-->
-						<!--<td class="text-center" width="85">-->
-							<!--<div ng-show="!inquiryItem.$editing">-->
-								<!--<span ng-bind="inquiryItem.minPackQty"></span> <span-->
-									<!--ng-show="inquiryItem.minPackQty == null" class="text-muted">-</span>-->
-							<!--</div>-->
-							<!--<div ng-if="inquiryItem.$editing">-->
-								<!--<input type="text" class="form-control input-xs" ng-change="verify(inquiryItem.minPackQty,'minPackQty')"-->
-									<!--ng-model="inquiryItem.minPackQty" placeholder="最小包装">-->
-							<!--</div>-->
-						<!--</td>-->
-						<!--<td class="text-center" width="120">-->
-							<!--<div ng-show="!inquiryItem.$editing"-->
-								<!--ng-init="parseDate(inquiryItem)">-->
-								<!--<div ng-show="inquiryItem.vendFromDate">-->
-									<!--<span class="text-muted">从 </span><span-->
-										<!--ng-bind="inquiryItem.vendFromDate | date:'yyyy-MM-dd'"></span>-->
-									<!--<span class="text-muted">到 </span><span-->
-										<!--ng-bind="inquiryItem.vendToDate | date:'yyyy-MM-dd'"></span>-->
-								<!--</div>-->
-								<!--<div ng-show="!inquiryItem.vendFromDate">-->
-									<!--<span class="text-muted">-</span>-->
-								<!--</div>-->
-							<!--</div>-->
-							<!--<div ng-if="inquiryItem.$editing">-->
-								<!--<div class="form-group input-group input-group-xs input-trigger">-->
-									<!--<input type="text" ng-model="inquiryItem.vendFromDate"-->
-										<!--class="form-control" placeholder="开始日期"-->
-										<!--datepicker-popup="yyyy-MM-dd"-->
-										<!--is-open="inquiryItem.$fromOpened"-->
-										<!--min-date="getMinDate(inquiryItem)" ng-required="true"-->
-										<!--current-text="今天" clear-text="清除" close-text="关闭"-->
-										<!--datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"-->
-										<!--ng-focus="openDatePicker($event, inquiryItem, '$fromOpened')">-->
-									<!--<span class="input-group-btn">-->
-										<!--<button type="button" class="btn btn-default"-->
-											<!--ng-click="openDatePicker($event, inquiryItem, '$fromOpened')">-->
-											<!--<i class="fa fa-calendar"></i>-->
-										<!--</button>-->
-									<!--</span>-->
-								<!--</div>-->
-								<!--<div class="form-group input-group input-group-xs input-trigger">-->
-									<!--<input type="text" ng-model="inquiryItem.vendToDate"-->
-										<!--class="form-control" placeholder="结束日期"-->
-										<!--datepicker-popup="yyyy-MM-dd" is-open="inquiryItem.$toOpened"-->
-										<!--min-date="inquiryItem.vendFromDate" ng-required="true"-->
-										<!--current-text="今天" clear-text="清除" close-text="关闭"-->
-										<!--datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"-->
-										<!--ng-focus="openDatePicker($event, inquiryItem, '$toOpened')">-->
-									<!--<span class="input-group-btn">-->
-										<!--<button type="button" class="btn btn-default"-->
-											<!--ng-click="openDatePicker($event, inquiryItem, '$toOpened')">-->
-											<!--<i class="fa fa-calendar"></i>-->
-										<!--</button>-->
-									<!--</span>-->
-								<!--</div>-->
-							<!--</div>-->
-						<!--</td>-->
-						<!--<td class="text-center" width="75">-->
-							<!--<div ng-if="inquiryItem.status == 201 && inquiryItem.agreed == null && inquiryItem.invalid != 1" class="block">-->
-								<!--<span class="text-trans warning">已报价</span>-->
-								<!--<div ng-if="inquiryItem.inquiry.overdue == 0 && inquiryItem.inquiry.check != 1" style="padding-top: 50px;">-->
-									<!--<div ng-show="!inquiryItem.$editing">-->
-										<!--<a ng-click="inquiryItem.$editing=!inquiryItem.$editing;getToken()">修改报价</a>-->
-									<!--</div>-->
-									<!--<div ng-show="inquiryItem.$editing">-->
-										<!--<div>-->
-											<!--<a ng-click="inquiryItem.$editing=!inquiryItem.$editing; cancel()">取消</a>-->
-										<!--</div>-->
-										<!--<div>-->
-											<!--<button ng-click="onReplyClick(inquiryItem, true)"-->
-													<!--ng-disabled="!isValid(inquiryItem, true)"-->
-													<!--class="btn btn-link btn-xs text-inverse">-->
-												<!--保存并<br>确认报价-->
-											<!--</button>-->
-										<!--</div>-->
-									<!--</div>-->
-								<!--</div>-->
-								<!--<div ng-if="inquiryItem.inquiry.check == 1" class="text-muted" style="padding-top: 50px;">客户正在<br>审批...</div>-->
-							<!--</div>-->
-							<!--<div ng-if="inquiryItem.status == 201 && inquiryItem.agreed == 1 && inquiryItem.invalid != 1" class="block">-->
-								<!--<span class="text-trans success">已采纳</span>-->
-							<!--</div>-->
-							<!--<div ng-if="inquiryItem.status == 201 && inquiryItem.invalid == 1" class="block">-->
-								<!--<span class="text-trans text-light">已失效</span>-->
-							<!--</div>-->
-							<!--<div ng-if="inquiryItem.status == 314" class="block">-->
-								<!--<span class="text-trans text-light">已作废</span>-->
-							<!--</div>-->
-							<!--<div ng-if="inquiryItem.status == 201 && inquiryItem.agreed == 0" class="block">-->
-								<!--<span class="text-trans error">未采纳</span>-->
-							<!--</div>-->
-							<!--<div ng-if="inquiryItem.status == 200">-->
-								<!--<div ng-if="inquiryItem.inquiry.overdue == 0 && inquiryItem.inquiry.check != 1">-->
-									<!--<div ng-show="!inquiryItem.$editing">-->
-										<!--<a ng-click="inquiryItem.$editing=!inquiryItem.$editing;getToken()">报 价</a>-->
-									<!--</div>-->
-									<!--<div ng-show="inquiryItem.$editing">-->
-										<!--<div>-->
-											<!--<a ng-click="inquiryItem.$editing=!inquiryItem.$editing; cancel()">取消</a>-->
-										<!--</div>-->
-										<!--<div>-->
-											<!--<button ng-click="onReplyClick(inquiryItem)"-->
-													<!--ng-disabled="!isValid(inquiryItem)"-->
-													<!--class="btn btn-link btn-xs text-default">保存</button>-->
-										<!--</div>-->
-										<!--<div>-->
-											<!--<button ng-click="onReplyClick(inquiryItem, true)"-->
-													<!--ng-disabled="!isValid(inquiryItem, true)"-->
-													<!--class="btn btn-link btn-xs text-inverse">-->
-												<!--保存并<br>确认报价-->
-											<!--</button>-->
-										<!--</div>-->
-									<!--</div>-->
-								<!--</div>-->
-								<!--<div ng-if="inquiryItem.inquiry.overdue == 0 && inquiryItem.inquiry.check == 1">-->
-									<!--<span class="text-trans half">未报价</span>-->
-									<!--<div class="text-muted" style="padding-top: 50px;">询价单已<br>被提交...</div>-->
-								<!--</div>-->
-								<!--<div ng-if="inquiryItem.inquiry.overdue == 1" class="block">-->
-									<!--<span class="text-trans error">已过期</span>-->
-								<!--</div>-->
-							<!--</div>-->
-						<!--</td>-->
-					<!--</tr>-->
-				<!--</tbody>-->
-			<!--</table>-->
 		</div>
 	</div>
 </div>

+ 4 - 0
src/main/webapp/resources/tpl/index/sale/pubinquiry.html

@@ -433,6 +433,10 @@
 				<div ng-if="inquiryItem.status == 201 && inquiryItem.agreed == 0" class="block">
 					<span class="text-trans error">未采纳</span>
 				</div>
+				<div ng-if="(inquiryItem.status == 201 && (inquiryItem.agreed == 1 || inquiryItem.agreed == 0)) || isoverdue(inquiryItem.inquiry.endDate) && inquiryItem.checked != 1">
+					<br><br>
+					<a ui-sref="sale.quotation.new({inquiryItem:inquiryItem})">我要报价</a>
+				</div>
 			</td>
 		</tr>
 		</tbody>