Browse Source

Merge branch 'dev' of ssh://10.10.100.21/source/saas-platform into dev

hy 7 years ago
parent
commit
35bf237c3d
33 changed files with 283 additions and 266 deletions
  1. 1 1
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/ShareController.java
  2. 4 1
      applications/commons/commons-server/src/main/resources/application.yml
  3. 1 0
      applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/ProdInOutDTO.java
  4. 2 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/ProdInOut.java
  5. 2 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/ProdInOutList.java
  6. 2 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/PurchaseList.java
  7. 1 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/ProdInOutServiceImpl.java
  8. 2 1
      applications/purchase/purchase-server/src/main/resources/mapper/ProdInOutListMapper.xml
  9. 11 1
      applications/purchase/purchase-server/src/main/resources/mapper/ProdInOutMapper.xml
  10. 1 0
      applications/purchase/purchase-server/src/main/resources/mapper/PurchaseListMapper.xml
  11. 5 0
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java
  12. 6 1
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/controller/AccountController.java
  13. 1 0
      base-servers/account/account-server/src/main/resources/mapper/CompanyMapper.xml
  14. 4 2
      base-servers/sms/sms-server/src/main/java/com/usoftchina/saas/sms/controller/SmsController.java
  15. 1 1
      base-servers/sms/sms-server/src/main/resources/config/application-docker-test.yml
  16. 1 1
      frontend/saas-web/app/model/report/SaleRec.js
  17. 1 1
      frontend/saas-web/app/model/sale/Saledetail.js
  18. 2 2
      frontend/saas-web/app/view/core/dbfind/types/ProductAddMultiDbfindTrigger.js
  19. 2 2
      frontend/saas-web/app/view/core/dbfind/types/ProductDbfindTrigger.js
  20. 2 2
      frontend/saas-web/app/view/core/dbfind/types/ProductMultiDbfindTrigger.js
  21. 20 19
      frontend/saas-web/app/view/document/product/BasePanel.js
  22. 7 5
      frontend/saas-web/app/view/document/product/FormPanel.js
  23. 1 3
      frontend/saas-web/app/view/home/charts/KeyData.js
  24. 1 0
      frontend/saas-web/app/view/money/othreceipts/QueryPanel.js
  25. 3 0
      frontend/saas-web/app/view/money/othspendings/QueryPanel.js
  26. 1 1
      frontend/saas-web/app/view/purchase/purchase/FormPanelController.js
  27. 12 29
      frontend/saas-web/app/view/purchase/purchase/QueryPanel.js
  28. 17 27
      frontend/saas-web/app/view/purchase/purchaseIn/QueryPanel.js
  29. 165 164
      frontend/saas-web/app/view/purchase/purchaseOut/QueryPanel.js
  30. 1 1
      frontend/saas-web/app/view/sale/sale/FormPanelController.js
  31. 1 0
      frontend/saas-web/app/view/stock/otherIn/QueryPanel.js
  32. 1 0
      frontend/saas-web/app/view/stock/otherOut/QueryPanel.js
  33. 1 1
      frontend/saas-web/app/view/stock/report/Prodiodetail.js

+ 1 - 1
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/ShareController.java

@@ -136,7 +136,7 @@ public class ShareController {
         SmsCache smsCache = SmsCache.of(mobile);
         smsCache.set(validCode, 60 * 5);
         Result result = smsApi.sendMsg(smsDTO);
-        return Result.success();
+        return Result.success(result.getData());
     }
 
     /**

+ 4 - 1
applications/commons/commons-server/src/main/resources/application.yml

@@ -71,4 +71,7 @@ mybatis:
   type-aliases-package: com.usoftchina.saas.commons.po
   mapper-locations: classpath:mapper/*.xml
 auth:
-  public-key: auth/pub.key
+  public-key: auth/pub.key
+ribbon:
+  ReadTimeout: 5000
+  ConnectTimeout: 5000

+ 1 - 0
applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/ProdInOutDTO.java

@@ -81,4 +81,5 @@ public class ProdInOutDTO extends CommonBaseDTO implements Serializable {
 
     private String pi_prstatuscode;
 
+    private String pi_currency;
 }

+ 2 - 0
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/ProdInOut.java

@@ -76,4 +76,6 @@ public class ProdInOut extends CommonBaseEntity implements Serializable {
     private String pi_prstatus;
 
     private String pi_prstatuscode;
+
+    private String pi_currency;
 }

+ 2 - 0
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/ProdInOutList.java

@@ -68,6 +68,8 @@ public class ProdInOutList extends CommonBaseEntity{
 
     private String pi_remark;
 
+    private String pi_currency;
+
     private Long pd_piid;
 
     private String pd_inoutno;

+ 2 - 0
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/PurchaseList.java

@@ -75,6 +75,8 @@ public class PurchaseList extends CommonBaseEntity implements Serializable {
 
     private String pu_sacode;
 
+    private String pu_currency;
+
     //从表字段
     private Long pd_id;
 

+ 1 - 0
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/ProdInOutServiceImpl.java

@@ -464,6 +464,7 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         targetPi.setPi_pucode(sourcePi.getPi_pucode());
         targetPi.setPi_ioid(sourcePi.getId());
         targetPi.setPi_iocode(sourcePi.getPi_inoutno());
+        targetPi.setPi_currency(sourcePi.getPi_currency());
         //设置付款状态
         targetPi.setPi_prstatus(Status.PAYNONE.getDisplay());
         targetPi.setPi_prstatuscode(Status.PAYNONE.name());

+ 2 - 1
applications/purchase/purchase-server/src/main/resources/mapper/ProdInOutListMapper.xml

@@ -30,6 +30,7 @@
     <result column="pi_auditman" jdbcType="VARCHAR" property="pi_auditman" />
     <result column="pi_address" jdbcType="VARCHAR" property="pi_address" />
     <result column="pi_remark" jdbcType="VARCHAR" property="pi_remark" />
+    <result column="pi_currency" jdbcType="VARCHAR" property="pi_currency" />
     <result column="pd_piid" jdbcType="INTEGER" property="pd_piid" />
     <result column="pd_inoutno" jdbcType="VARCHAR" property="pd_inoutno" />
     <result column="pd_piclass" jdbcType="VARCHAR" property="pd_piclass" />
@@ -196,7 +197,7 @@
 
   <sql id="Prodinout_Column_List" >
     prodinout.pi_id pi_id,prodinout.pi_inoutno pi_inoutno,prodinout.pi_class pi_class,prodinout.pi_date pi_date,prodinout.pi_vendid pi_vendid,prodinout.pi_vendcode pi_vendcode,prodinout.pi_vendname pi_vendname,prodinout.pi_custid pi_custid,prodinout.pi_custcode pi_custcode,prodinout.pi_custname pi_custname,prodinout.pi_puid pi_puid,prodinout.pi_pucode pi_pucode,prodinout.pi_said pi_said,prodinout.pi_sacode pi_sacode,prodinout.pi_total pi_total,prodinout.pi_address pi_address,prodinout.pi_ioid pi_ioid,prodinout.pi_status pi_status,prodinout.pi_statuscode pi_statuscode,prodinout.pi_printstatus pi_printstatus,prodinout.pi_printstatuscode pi_printstatuscode,prodinout.companyid companyid,prodinout.updaterId updaterId,prodinout.updatetime updatetime,prodinout.pi_text1 pi_text1,prodinout.pi_text2 pi_text2,prodinout.pi_text3 pi_text3,prodinout.pi_text4 pi_text4,prodinout.pi_text5 pi_text5,prodinout.pi_nettotal pi_nettotal,prodinout.pi_auditdate pi_auditdate,prodinout.pi_auditman pi_auditman,prodinout.pi_remark pi_remark,
-prodinout.creatorName creatorName,prodinout.creatorId creatorId,prodinout.createTime createTime,prodinout.updaterName updaterName,prodinout.pi_macode pi_macode,prodinout.pi_maid pi_maid,prodinout.pi_prstatuscode pi_prstatuscode,prodinout.pi_prstatus pi_prstatus,prodinout.pi_iocode pi_iocode,
+prodinout.creatorName creatorName,prodinout.creatorId creatorId,prodinout.createTime createTime,prodinout.updaterName updaterName,prodinout.pi_macode pi_macode,prodinout.pi_maid pi_maid,prodinout.pi_prstatuscode pi_prstatuscode,prodinout.pi_prstatus pi_prstatus,prodinout.pi_iocode pi_iocode,prodinout.pi_currency pi_currency
   </sql>
   <sql id="Prodiodetail_Column_List" >
     prodiodetail.pd_id pd_id,prodiodetail.pd_piid pd_piid,prodiodetail.pd_inoutno pd_inoutno,prodiodetail.pd_piclass pd_piclass,prodiodetail.pd_pdno pd_pdno,prodiodetail.pd_ordercode pd_ordercode,prodiodetail.pd_orderdetno pd_orderdetno,prodiodetail.pd_prodid pd_prodid,prodiodetail.pd_prodcode pd_prodcode,prodiodetail.pd_unit pd_unit,prodiodetail.pd_inqty pd_inqty,prodiodetail.pd_outqty pd_outqty,prodiodetail.pd_orderprice pd_orderprice,prodiodetail.pd_sendprice pd_sendprice,prodiodetail.pd_price pd_price,prodiodetail.pd_total pd_total,prodiodetail.pd_taxrate pd_taxrate,prodiodetail.pd_netprice pd_netprice,prodiodetail.pd_nettotal pd_nettotal,prodiodetail.pd_whid pd_whid,prodiodetail.pd_whcode pd_whcode,prodiodetail.pd_whname pd_whname,prodiodetail.pd_inwhid pd_inwhid,prodiodetail.pd_inwhcode pd_inwhcode,prodiodetail.pd_inwhname pd_inwhname,prodiodetail.pd_orderid pd_orderid,prodiodetail.pd_sdid pd_sdid,prodiodetail.pd_status pd_status,prodiodetail.pd_remark pd_remark,prodiodetail.pd_text1 pd_text1,prodiodetail.pd_text2 pd_text2,prodiodetail.pd_text3 pd_text3,

+ 11 - 1
applications/purchase/purchase-server/src/main/resources/mapper/ProdInOutMapper.xml

@@ -40,6 +40,7 @@
     <result column="pi_iocode" jdbcType="VARCHAR" property="pi_iocode" />
     <result column="pi_prstatus" jdbcType="VARCHAR" property="pi_prstatus" />
     <result column="pi_prstatuscode" jdbcType="VARCHAR" property="pi_prstatuscode" />
+    <result column="pi_currency" jdbcType="VARCHAR" property="pi_currency" />
   </resultMap>
   <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.usoftchina.saas.purchase.po.ProdInOut">
     <result column="pi_address" jdbcType="LONGVARCHAR" property="pi_address" />
@@ -51,7 +52,7 @@
     pi_id, pi_inoutno, pi_class, pi_date, pi_vendid, pi_vendcode, pi_vendname, pi_custid, 
     pi_custcode, pi_custname, pi_puid, pi_pucode, pi_said, pi_sacode, pi_total, pi_status, pi_statuscode, pi_printstatus, pi_printstatuscode,
     companyid, updaterid,updaterName,updatetime,creatorid,creatorName,createtime, pi_text1, pi_text2, pi_text3, pi_text4, pi_text5,pi_auditdate,
-    pi_auditman,pi_remark,pi_ioid,pi_iocode,pi_prstatus,pi_prstatuscode
+    pi_auditman,pi_remark,pi_ioid,pi_iocode,pi_prstatus,pi_prstatuscode,pi_currency
   </sql>
   <sql id="Blob_Column_List">
     pi_address
@@ -192,6 +193,9 @@
       <if test="pi_prstatuscode != null">
         pi_prstatuscode,
       </if>
+      <if test="pi_currency != null">
+        pi_currency,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
 
@@ -311,6 +315,9 @@
       <if test="pi_prstatuscode != null">
         #{pi_prstatuscode,jdbcType=VARCHAR},
       </if>
+      <if test="pi_currency != null">
+        #{pi_currency,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
 
@@ -407,6 +414,9 @@
       <if test="pi_remark != null">
         pi_remark = #{pi_remark,jdbcType=VARCHAR},
       </if>
+      <if test="pi_currency != null">
+        pi_currency = #{pi_currency,jdbcType=VARCHAR},
+      </if>
     </set>
     where pi_id = #{id,jdbcType=INTEGER}
   </update>

+ 1 - 0
applications/purchase/purchase-server/src/main/resources/mapper/PurchaseListMapper.xml

@@ -36,6 +36,7 @@
         <result column="pu_text5" property="pu_text5" jdbcType="VARCHAR" />
         <result column="pu_said" property="pu_said" jdbcType="INTEGER" />
         <result column="pu_sacode" property="pu_sacode" jdbcType="VARCHAR" />
+        <result column="pu_currency" property="pu_currency" jdbcType="VARCHAR" />
         <result column="PD_ID" property="pd_id" jdbcType="INTEGER" />
         <result column="PD_PUID" property="pd_puid" jdbcType="INTEGER" />
         <result column="PD_CODE" property="pd_code" jdbcType="VARCHAR" />

+ 5 - 0
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java

@@ -156,6 +156,11 @@ public class SaleServiceImpl implements SaleService{
             messageLogService.save(baseDTO);
             return baseDTO;
         }
+        //验证是否关闭
+        String code = saleMapper.validateCloseStatus(sa_id);
+        if (null != code) {
+            throw new BizException(BizExceptionCode.SALE_CLOSE.getCode(),String.format(BizExceptionCode.SALE_CLOSE.getMessage(),"修改"));
+        }
         //更新操作
         saleMapper.updateByPrimaryKeySelective(sale);
         //添加从表传输对象

+ 6 - 1
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/controller/AccountController.java

@@ -19,6 +19,7 @@ import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.sms.api.SmsApi;
 import com.usoftchina.saas.utils.BeanMapper;
 import com.usoftchina.saas.utils.CollectionUtils;
+import com.usoftchina.saas.utils.ObjectUtils;
 import com.usoftchina.saas.utils.RegexpUtils;
 import com.usoftchina.sso.api.SsoUserApi;
 import com.usoftchina.sso.api.SsoUserSpaceApi;
@@ -141,7 +142,11 @@ public class AccountController {
         if (ssoCheckMobile.isHasRegister()){
             map.put("hasRegister", true);
             Account account = accountService.findByMobile(mobile);
-            map.put("username", account.getRealname());
+            if (ObjectUtils.isEmpty(account)){
+                map.put("username", null);
+            }else {
+                map.put("username", account.getRealname());
+            }
             if (account != null){
                 List<CompanyBaseVO> companyBaseVOList = companyService.findBaseByAccountId(account.getId());
                 for (CompanyBaseVO companyBaseVO : companyBaseVOList){

+ 1 - 0
base-servers/account/account-server/src/main/resources/mapper/CompanyMapper.xml

@@ -145,6 +145,7 @@
     <select id="selectBaseByAccountId" parameterType="java.lang.Long" resultMap="BaseResultMap">
         select ac_company.id,ac_company.name,ac_company.logo_url,ac_company.dc_name from ac_account_company,ac_company
         where ac_account_company.company_id=ac_company.id and ac_account_company.account_id=#{accountId,jdbcType=BIGINT}
+        and ac_account_company.status = 1
     </select>
     <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
         delete from ac_company where id=#{id,jdbcType=BIGINT}

+ 4 - 2
base-servers/sms/sms-server/src/main/java/com/usoftchina/saas/sms/controller/SmsController.java

@@ -1,5 +1,6 @@
 package com.usoftchina.saas.sms.controller;
 
+import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
 import com.aliyuncs.exceptions.ClientException;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.exception.BizException;
@@ -21,12 +22,13 @@ public class SmsController {
 
     @PostMapping("/msg/send")
     public Result sendRegisterMsg(@RequestBody SmsDTO smsDTO){
+        SendSmsResponse sendSmsResponse = null;
         try {
-            smsService.sendMessage(smsConfig, smsDTO);
+            sendSmsResponse = smsService.sendMessage(smsConfig, smsDTO);
         } catch (ClientException e) {
             return Result.error(new BizException(Integer.parseInt(e.getErrCode()), e.getMessage()));
         }
-        return Result.success();
+        return Result.success(sendSmsResponse.getMessage());
     }
 
 }

+ 1 - 1
base-servers/sms/sms-server/src/main/resources/config/application-docker-test.yml

@@ -9,4 +9,4 @@ spring:
   rabbitmq:
     virtual-host: test
 server:
-  port: 8700
+  port: 8705

+ 1 - 1
frontend/saas-web/app/model/report/SaleRec.js

@@ -15,7 +15,7 @@ Ext.define('saas.model.report.SaleRec', {
         { name: 'rb_backrate', type: 'float' },
         { name: 'pi_total-pi_nettotal', type: 'float',
             convert: function(v, rec) {
-                var t = (rec.get('sd_total') || 0.0) - (rec.get('sd_nettotal') || 0.0);
+                var t = (rec.get('pi_total') || 0.0) - (rec.get('pi_nettotal') || 0.0);
                 return Number(saas.util.BaseUtil.numberFormat(t, 2, false));
             },
             depends: ['pi_total', 'pi_nettotal']

+ 1 - 1
frontend/saas-web/app/model/sale/Saledetail.js

@@ -10,7 +10,7 @@ Ext.define('saas.model.sale.Saledetail', {
         { name: 'pr_orispeccode', type: 'string' }, // 型号
         { name: 'pr_spec', type: 'string' }, // 规格
         { name: 'sd_qty', type: 'float' }, // 数量
-        { name: 'pr_unit', type: 'float' }, // 单位
+        { name: 'pr_unit', type: 'string' }, // 单位
         { name: 'sd_netprice', type: 'float', // 单价
         },
         { name: 'sd_price', type: 'float', // 含税单价

+ 2 - 2
frontend/saas-web/app/view/core/dbfind/types/ProductAddMultiDbfindTrigger.js

@@ -61,11 +61,11 @@ Ext.define('saas.view.core.dbfind.types.ProductAddMultiDbfindTrigger', {
     },{
         text: "类型",
         dataIndex: "pr_kind",
-        width: 110
+        width: 100
     },{
         text: "库存",
         dataIndex: "po_onhand",
-        width: 110,
+        width: 100,
         xtype: 'numbercolumn',
         renderer : function(v) {
             var arr = (v + '.').split('.');

+ 2 - 2
frontend/saas-web/app/view/core/dbfind/types/ProductDbfindTrigger.js

@@ -56,11 +56,11 @@ Ext.define('saas.view.core.dbfind.types.ProductDbfindTrigger', {
     },{
         text: "类型",
         dataIndex: "pr_kind",
-        width: 110
+        width: 100
     },{
         text: "库存",
         dataIndex: "po_onhand",
-        width: 110,
+        width: 100,
         xtype: 'numbercolumn',
         renderer : function(v) {
             var arr = (v + '.').split('.');

+ 2 - 2
frontend/saas-web/app/view/core/dbfind/types/ProductMultiDbfindTrigger.js

@@ -63,11 +63,11 @@ Ext.define('saas.view.core.dbfind.types.ProductMultiDbfindTrigger', {
     },{
         text: "类型",
         dataIndex: "pr_kind",
-        width: 110
+        width: 100
     },{
         text: "库存",
         dataIndex: "po_onhand",
-        width: 110,
+        width: 100,
         xtype: 'numbercolumn',
         renderer : function(v) {
             var arr = (v + '.').split('.');

+ 20 - 19
frontend/saas-web/app/view/document/product/BasePanel.js

@@ -33,6 +33,7 @@ Ext.define('saas.view.document.product.BasePanel', {
         fieldLabel : '状态',
         emptyText: '全部',
         editable:false,
+        defaultValue:'ENABLE',
         store: Ext.create('Ext.data.ArrayStore', {
         fields: ['pr_statuscode', 'pr_status'],
         data: [
@@ -77,32 +78,28 @@ Ext.define('saas.view.document.product.BasePanel', {
         },{
             text : "品牌", 
             dataIndex : "pr_brand", 
-            width : 150.0
+            width : 100.0
         }, {
-            text : "名称", 
+            text : "物料名称", 
             dataIndex : "pr_detail", 
-            width : 200.0
+            width : 150.0
         }, {
             text : "型号", 
             dataIndex : "pr_orispeccode", 
-            width : 150.0
+            width : 200.0
         }, {
             text : "规格", 
             dataIndex : "pr_spec", 
-            width : 150.0
-        },{
-            text : "单位", 
-            dataIndex : "pr_unit", 
-            width : 80.0 
+            width : 200.0
         }, {
             text : "类型", 
             dataIndex : "pr_kind", 
-            width : 110.0
-        },{
+            width:100
+        }, {
             text : "库存", 
             dataIndex : "po_onhand",
             xtype: 'numbercolumn',
-            width : 120.0,
+            width : 100.0,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
@@ -110,26 +107,30 @@ Ext.define('saas.view.document.product.BasePanel', {
                 return Ext.util.Format.number(v, format);
             }
         }, {
-            text : "标准单价(元)", 
+            text : "单位", 
+            dataIndex : "pr_unit", 
+            width : 65.0 
+        }, {
+            text : "标准定价(元)", 
             dataIndex : "pr_standardprice",
             xtype: 'numbercolumn',
-            width : 120.0,
+            width : 110.0,
             renderer : function(v) {
                 return saas.util.BaseUtil.numberFormat(v, 4, true);
             }
         },  {
-            text : "最新购价(元)", 
+            text : "最新购价(元)", 
             dataIndex : "pr_purcprice",
             xtype: 'numbercolumn',
-            width : 120.0,
+            width : 110.0,
             renderer : function(v) {
                 return saas.util.BaseUtil.numberFormat(v, 4, true);
             }
         }, {
-            text : "最新出货单价(元)", 
+            text : "最新价(元)", 
             dataIndex : "pr_saleprice",
             xtype: 'numbercolumn',
-            width : 130.0,
+            width : 110.0,
             renderer : function(v) {
                 return saas.util.BaseUtil.numberFormat(v, 4, true);
             }
@@ -140,7 +141,7 @@ Ext.define('saas.view.document.product.BasePanel', {
         }, {
             text : "状态", 
             dataIndex : "pr_status",
-            width : 90.0
+            width : 80.0
         }]
     },
 

+ 7 - 5
frontend/saas-web/app/view/document/product/FormPanel.js

@@ -125,7 +125,7 @@ Ext.define('saas.view.document.product.FormPanel', {
     },{
         xtype : "numberfield", 
         name : "pr_standardprice", 
-        fieldLabel : "标准价(元)", 
+        fieldLabel : "标准价(元)", 
         allowBlank : true, 
         columnWidth : 0.25,
         decimalPrecision: 4,
@@ -177,7 +177,7 @@ Ext.define('saas.view.document.product.FormPanel', {
         readOnly:true,
         xtype : "numberfield", 
         name : "pr_purcprice", 
-        fieldLabel : "最新价(元)", 
+        fieldLabel : "最新购价(元)", 
         allowBlank : true, 
         columnWidth : 0.25,
         decimalPrecision: 4,
@@ -193,7 +193,7 @@ Ext.define('saas.view.document.product.FormPanel', {
         readOnly:true,
         xtype : "numberfield", 
         name : "pr_saleprice", 
-        fieldLabel : "最新出货单价(元)", 
+        fieldLabel : "最新价(元)", 
         decimalPrecision: 4,
         minValue:0,
         renderer: function (v) {
@@ -228,6 +228,7 @@ Ext.define('saas.view.document.product.FormPanel', {
         fieldLabel: '期初设置',
         name: 'qcsz',
         ignore: true,
+        defaultValue:true,
         bind: {
             disabled: '{qcsz_disabled}'
         },
@@ -238,6 +239,7 @@ Ext.define('saas.view.document.product.FormPanel', {
         xtype : "detailGridField", 
         storeModel:'saas.model.document.ProductDetail',
         detnoColumn: 'pd_detno',
+        emptyRows: 1,
         showCount: true,
         allowEmpty:true,
         // hidden: true,
@@ -311,7 +313,7 @@ Ext.define('saas.view.document.product.FormPanel', {
             }
         },
         {
-            text : "单位成本", 
+            text : "单位成本(元)", 
             dataIndex : "pd_price", 
             // xtype: 'numbercolumn',
             align: 'end',
@@ -334,7 +336,7 @@ Ext.define('saas.view.document.product.FormPanel', {
             },
         },
         {
-            text : "期初总价", 
+            text : "期初金额(元)", 
             dataIndex : "pd_amount", 
             // xtype: 'numbercolumn',
             align: 'end',

+ 1 - 3
frontend/saas-web/app/view/home/charts/KeyData.js

@@ -19,7 +19,7 @@ Ext.define('saas.view.home.charts.KeyData', {
                     '<div class="x-title">{label}</div>',
                     '<div class="x-contain">',
                         '<div class="x-icon x-icon-{icon}"></div>',
-                        '<div class="x-value">{value}元</div>',
+                        '<div class="x-value">{value}元</div>',
                     '</div>',
                 '</div>',
             '</div>',
@@ -77,8 +77,6 @@ Ext.define('saas.view.home.charts.KeyData', {
             data: me.cards,
             updateValue: function(datas) {
                 this.each(function(r, index) {
-                    // var v = datas[r.get('name')];
-                    // var d = saas.util.BaseUtil.formatAmount(v);
                     var d = Ext.util.Format.number(datas[r.get('name')], '0,000.00');
                     r.set('value', d);
                 });

+ 1 - 0
frontend/saas-web/app/view/money/othreceipts/QueryPanel.js

@@ -180,6 +180,7 @@ Ext.define('saas.view.money.othreceipts.QueryPanel', {
             width: 110
         } ,{
             text: '明细金额(元)',
+            xtype: 'numbercolumn',
             dataIndex: 'ord_nowbalance',
             width: 110
         } ,{

+ 3 - 0
frontend/saas-web/app/view/money/othspendings/QueryPanel.js

@@ -116,6 +116,7 @@ Ext.define('saas.view.money.othspendings.QueryPanel', {
             width: 150
         },{
             text: '付款金额(元)',
+            xtype: 'numbercolumn',
             dataIndex: 'os_amount',
             width: 110,
             renderer : function(v) {
@@ -158,6 +159,7 @@ Ext.define('saas.view.money.othspendings.QueryPanel', {
             width: 150
         },{
             text: '付款金额(元)',
+            xtype: 'numbercolumn',
             dataIndex: 'os_amount',
             width: 110,
             renderer : function(v) {
@@ -177,6 +179,7 @@ Ext.define('saas.view.money.othspendings.QueryPanel', {
             width: 110
         }, {
             text: '明细金额(元)',
+            xtype: 'numbercolumn',
             dataIndex: 'osd_nowbalance',
             width: 110
         },{

+ 1 - 1
frontend/saas-web/app/view/purchase/purchase/FormPanelController.js

@@ -60,7 +60,7 @@ Ext.define('saas.view.purchase.purchase.FormPanelController', {
                         },{
                             from: 'pr_unit', to: 'pr_unit'
                         }, {
-                            from:'pr_purcprice',to:'pd_price'
+                            from:'pr_purcprice',to:'pd_taxprice'
                         },{
                             from:'pr_zxbzs',to:'pr_zxbzs'
                         }],

+ 12 - 29
frontend/saas-web/app/view/purchase/purchase/QueryPanel.js

@@ -120,10 +120,7 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
             xtype: 'numbercolumn',
             width: 110,
             renderer : function(v) {
-                var arr = (v + '.').split('.');
-                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-                var format = '0,000.' + xr.join('');
-                return Ext.util.Format.number(v, format);
+                return saas.util.BaseUtil.numberFormat(v, 2, true);
             }
         }, {
             text: '价税合计(元)',
@@ -131,11 +128,12 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
             xtype: 'numbercolumn',
             width: 110,
             renderer : function(v) {
-                var arr = (v + '.').split('.');
-                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-                var format = '0,000.' + xr.join('');
-                return Ext.util.Format.number(v, format);
+                return saas.util.BaseUtil.numberFormat(v, 2, true);
             }
+        },{
+            text: '币别',
+            dataIndex: 'pu_currency',
+            width: 65
         }, {
             text: '审核状态',
             align: 'center',
@@ -204,15 +202,12 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
             dataIndex: 'pr_spec',
             width: 200
         },{
-            text: '采购数量',
+            text: '数量',
             dataIndex: 'pd_qty',
             xtype: 'numbercolumn',
             width: 110,
             renderer : function(v) {
-                var arr = (v + '.').split('.');
-                var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                var format = '0,000.' + xr.join('');
-                return Ext.util.Format.number(v, format);
+                return saas.util.BaseUtil.numberFormat(v, 3, true);
             }
         }, {
             text: '单位',
@@ -224,10 +219,7 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
             xtype: 'numbercolumn',
             width: 110,
             renderer : function(v) {
-                var arr = (v + '.').split('.');
-                var xr = (new Array(arr[1].length > 4 ? 4 : arr[1].length)).fill('0');
-                var format = '0,000.' + xr.join('');
-                return Ext.util.Format.number(v, format);
+                return saas.util.BaseUtil.numberFormat(v, 4, true);
             }
         },{
             text: '金额(元)',
@@ -235,10 +227,7 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
             xtype: 'numbercolumn',
             width: 110,
             renderer : function(v) {
-                var arr = (v + '.').split('.');
-                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-                var format = '0,000.' + xr.join('');
-                return Ext.util.Format.number(v, format);
+                return saas.util.BaseUtil.numberFormat(v, 2, true);
             }
         },{
             text: '税额(元)',
@@ -247,10 +236,7 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
             width: 110,
             renderer : function(v,g,r) {
                 v = (r.data["pd_total"]||0.0) - (r.data["pd_taxtotal"]||0.0);
-                var arr = (v + '.').split('.');
-                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-                var format = '0,000.' + xr.join('');
-                return Ext.util.Format.number(v, format);
+                return saas.util.BaseUtil.numberFormat(v, 2, true);
             }
         },{
             text: '价税合计(元)',
@@ -258,10 +244,7 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
             xtype: 'numbercolumn',
             width: 110,
             renderer : function(v) {
-                var arr = (v + '.').split('.');
-                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-                var format = '0,000.' + xr.join('');
-                return Ext.util.Format.number(v, format);
+                return saas.util.BaseUtil.numberFormat(v, 2, true);
             }
         }, {
             text: '关联销售单号',

+ 17 - 27
frontend/saas-web/app/view/purchase/purchaseIn/QueryPanel.js

@@ -123,12 +123,20 @@ Ext.define('saas.view.purchase.purchaseIn.QueryPanel', {
             width: 150
         },{
             text: '金额(元)',
+            xtype: 'numbercolumn',
             dataIndex: 'pi_nettotal',
-            width: 110
+            width: 110,
+            renderer : function(v) {
+                return saas.util.BaseUtil.numberFormat(v, 2, true);
+            }
         },{
             text: '价税合计(元)',
+            xtype: 'numbercolumn',
             dataIndex: 'pi_total',
-            width: 110
+            width: 110,
+            renderer : function(v) {
+                return saas.util.BaseUtil.numberFormat(v, 2, true);
+            }
         },{
             text: '审核状态',
             align: 'center',
@@ -197,15 +205,12 @@ Ext.define('saas.view.purchase.purchaseIn.QueryPanel', {
             dataIndex: 'pd_whname',
             width: 150
         }, {
-            text: '验收数量',
+            text: '数量',
             dataIndex: 'pd_inqty',
             xtype:'numbercolumn',
             width: 110,
             renderer : function(v) {
-                var arr = (v + '.').split('.');
-                var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                var format = '0,000.' + xr.join('');
-                return Ext.util.Format.number(v, format);
+                return saas.util.BaseUtil.numberFormat(v, 3, true);
             },
         }, {
             text: '单位',
@@ -216,10 +221,7 @@ Ext.define('saas.view.purchase.purchaseIn.QueryPanel', {
             dataIndex: 'pd_netprice',
             xtype:'numbercolumn',
             renderer : function(v) {
-                var arr = (v + '.').split('.');
-                var xr = (new Array(arr[1].length > 4 ? 4 : arr[1].length)).fill('0');
-                var format = '0,000.' + xr.join('');
-                return Ext.util.Format.number(v, format);
+                return saas.util.BaseUtil.numberFormat(v, 4, true);
             },            
             width: 110
         }, {
@@ -227,10 +229,7 @@ Ext.define('saas.view.purchase.purchaseIn.QueryPanel', {
             dataIndex: 'pd_orderprice',
             xtype:'numbercolumn',
             renderer : function(v) {
-                var arr = (v + '.').split('.');
-                var xr = (new Array(arr[1].length > 4 ? 4 : arr[1].length)).fill('0');
-                var format = '0,000.' + xr.join('');
-                return Ext.util.Format.number(v, format);
+                return saas.util.BaseUtil.numberFormat(v, 4, true);
             },            
             width: 110
         },{
@@ -239,10 +238,7 @@ Ext.define('saas.view.purchase.purchaseIn.QueryPanel', {
             xtype:'numbercolumn',
             width: 110,
             renderer : function(v) {
-                var arr = (v + '.').split('.');
-                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-                var format = '0,000.' + xr.join('');
-                return Ext.util.Format.number(v, format);
+                return saas.util.BaseUtil.numberFormat(v, 2, true);
             },
         },{
             text: '税额(元)',
@@ -251,10 +247,7 @@ Ext.define('saas.view.purchase.purchaseIn.QueryPanel', {
             width: 110,
             renderer : function(v,g,r) {
                 v = (r.data["pd_ordertotal"]||0.0) - (r.data["pd_nettotal"]||0.0);
-                var arr = (v + '.').split('.');
-                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-                var format = '0,000.' + xr.join('');
-                return Ext.util.Format.number(v, format);
+                return saas.util.BaseUtil.numberFormat(v, 2, true);
             }
         },{
             text: '价税合计(元)',
@@ -262,10 +255,7 @@ Ext.define('saas.view.purchase.purchaseIn.QueryPanel', {
             xtype:'numbercolumn',
             width: 110,
             renderer : function(v) {
-                var arr = (v + '.').split('.');
-                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-                var format = '0,000.' + xr.join('');
-                return Ext.util.Format.number(v, format);
+                return saas.util.BaseUtil.numberFormat(v, 2, true);
             },
         }, {
             text: '关联采购单号',

+ 165 - 164
frontend/saas-web/app/view/purchase/purchaseOut/QueryPanel.js

@@ -10,9 +10,9 @@ Ext.define('saas.view.purchase.purchaseOut.QueryPanel', {
     queryFormItems: [{
         xtype: 'textfield',
         name: 'pi_inoutno',
-        emptyText:'请输入单号或供应商',
-        getCondition: function(value) {
-            return  ' (pi_inoutno like\'%' + value + '%\' or pi_vendcode like \'%'+value+'%\' or pi_vendname like \'%'+value+'%\') ';
+        emptyText: '请输入单号或供应商',
+        getCondition: function (value) {
+            return ' (pi_inoutno like\'%' + value + '%\' or pi_vendcode like \'%' + value + '%\' or pi_vendname like \'%' + value + '%\') ';
         }
     }, {
         xtype: 'condatefield',
@@ -24,12 +24,12 @@ Ext.define('saas.view.purchase.purchaseOut.QueryPanel', {
         xtype: 'productDbfindTrigger',
         name: 'pr_detail',
         fieldLabel: '物料',
-        emptyText:'输入物料编号或名称',
+        emptyText: '输入物料编号或名称',
         showDetail: true,
-        getCondition: function(value) {
-            if(!value) {
+        getCondition: function (value) {
+            if (!value) {
                 return '1=1';
-            }else {
+            } else {
                 return ' pr_detail = \'' + value + '\' ';
             }
         }
@@ -38,8 +38,8 @@ Ext.define('saas.view.purchase.purchaseOut.QueryPanel', {
         name: 'pi_statuscode',
         fieldLabel: '单据状态',
         allowBlank: true,
-        emptyText :'全部',
-        editable:false,
+        emptyText: '全部',
+        editable: false,
         queryMode: 'local',
         displayField: 'pi_status',
         valueField: 'pi_statuscode',
@@ -51,10 +51,10 @@ Ext.define('saas.view.purchase.purchaseOut.QueryPanel', {
                 ["UNAUDITED", "未审核"]
             ]
         }),
-        getCondition: function(value) {
-            if(value == 'ALL') {
+        getCondition: function (value) {
+            if (value == 'ALL') {
                 return '1=1';
-            }else {
+            } else {
                 return 'pi_statuscode=\'' + value + '\'';
             }
         }
@@ -62,7 +62,7 @@ Ext.define('saas.view.purchase.purchaseOut.QueryPanel', {
         xtype: 'multicombo',
         name: 'pi_prstatuscode',
         fieldLabel: '付款状态',
-        emptyText :'全部',
+        emptyText: '全部',
         datas: [
             ["PAYNONE", "未付款"],
             ["PAYPART", "部分付款"],
@@ -72,12 +72,12 @@ Ext.define('saas.view.purchase.purchaseOut.QueryPanel', {
         xtype: 'warehouseDbfindTrigger',
         name: 'pd_whname',
         fieldLabel: '仓库',
-        emptyText:'请输入仓库编号或名称',
+        emptyText: '请输入仓库编号或名称',
         showDetail: true,
-        getCondition: function(value) {
-            if(!value) {
+        getCondition: function (value) {
+            if (!value) {
                 return '1=1';
-            }else {
+            } else {
                 return 'prodiodetail.pd_whname like\'%' + value + '%\'';
             }
         }
@@ -90,11 +90,11 @@ Ext.define('saas.view.purchase.purchaseOut.QueryPanel', {
         xtype: 'accountDbfindTrigger',
         name: 'creatorName',
         fieldLabel: '录入人',
-        emptyText:'请输入账户名称或姓名',
-        getCondition: function(value) {
-            if(!value) {
+        emptyText: '请输入账户名称或姓名',
+        getCondition: function (value) {
+            if (!value) {
                 return '1=1';
-            }else {
+            } else {
                 return 'prodinout.creatorName like\'%' + value + '%\'';
             }
         }
@@ -102,52 +102,54 @@ Ext.define('saas.view.purchase.purchaseOut.QueryPanel', {
         xtype: 'accountDbfindTrigger',
         name: 'pi_auditman',
         fieldLabel: '审核人',
-        emptyText:'请输入账户名称或姓名'
+        emptyText: '请输入账户名称或姓名'
     }],
     queryGridConfig: {
-        idField:'id',
-        codeField:'pi_inoutno',
-        addTitle:'采购验退单',
-        addXtype:'purchase-purchaseout-formpanel',
-        defaultCondition:' pi_class = \'采购验退单\'',
-        baseVastUrl:'/api/purchase/prodinout/',
-        caller:'PurchaseOut',
+        idField: 'id',
+        codeField: 'pi_inoutno',
+        addTitle: '采购验退单',
+        addXtype: 'purchase-purchaseout-formpanel',
+        defaultCondition: ' pi_class = \'采购验退单\'',
+        baseVastUrl: '/api/purchase/prodinout/',
+        caller: 'PurchaseOut',
         baseColumn: [{
             text: 'id',
             dataIndex: 'id',
-            hidden:true,
+            hidden: true,
             xtype: 'numbercolumn'
         }, {
             text: '验退单号',
             dataIndex: 'pi_inoutno',
             width: 150
-        },{
+        }, {
             text: '单据类型',
             dataIndex: 'pi_class',
             width: 0
-        },{
+        }, {
             text: '单据日期',
             dataIndex: 'pi_date',
-            xtype:'datecolumn',
+            xtype: 'datecolumn',
             width: 110
-        },{
+        }, {
             text: '供应商名称',
             dataIndex: 'pi_vendname',
             width: 150
         }, {
             text: '金额(元)',
+            xtype: 'numbercolumn',
             dataIndex: 'pi_nettotal',
             width: 110
         }, {
             text: '价税合计(元)',
+            xtype: 'numbercolumn',
             dataIndex: 'pi_total',
             width: 110
-        },{
+        }, {
             text: '审核状态',
             align: 'center',
             dataIndex: 'pi_status',
             width: 80
-        },{
+        }, {
             text: '付款状态',
             align: 'center',
             dataIndex: 'pi_prstatus',
@@ -161,133 +163,132 @@ Ext.define('saas.view.purchase.purchaseOut.QueryPanel', {
             dataIndex: 'pi_remark',
             width: 250
         }],
-        relativeColumn: [
-            {
-                text: 'id',
-                dataIndex: 'pu_id',
-                xtype: 'numbercolumn',
-                hidden:true
-            }, {
-                text: '验退单号',
-                dataIndex: 'pi_inoutno',
-                width: 150
-            }, {
-                text: '单据日期',
-                dataIndex: 'pi_date',
-                xtype:'datecolumn',
-                width: 110
-            },{
-                text: '供应商名称',
-                dataIndex: 'pi_vendname',
-                width: 200
-            },{
-                text: '审核状态',
-                align: 'center',
-                dataIndex: 'pi_status',
-                width: 80
-            }, {
-                text: '物料编号',
-                dataIndex: 'pd_prodcode',
-                width: 150
-            }, {
-                text: '品牌',
-                dataIndex: 'pr_brand',
-                width: 100
-            },{
-                text: '物料名称',
-                dataIndex: 'pr_detail',
-                width: 150
-            },{
-                text: '型号',
-                dataIndex: 'pr_orispeccode',
-                width: 200
-            },{
-                text: '规格',
-                dataIndex: 'pr_spec',
-                width: 200
-            },{
-                text: '仓库',
-                dataIndex: 'pd_whname',
-                width: 80
-            },{
-                text: '验退数量',
-                dataIndex: 'pd_outqty',
-                xtype:'numbercolumn',
-                width: 110,
-                renderer : function(v) {
-                    var arr = (v + '.').split('.');
-                    var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                    var format = '0,000.' + xr.join('');
-                    return Ext.util.Format.number(v, format);
-                },
-            }, {
-                text: '单位',
-                dataIndex: 'pr_unit',
-                width: 65
-            }, {
-                text: '单价(元)',
-                dataIndex: 'pd_netprice',
-                xtype:'numbercolumn',
-                renderer : function(v) {
-                    var arr = (v + '.').split('.');
-                    var xr = (new Array(arr[1].length > 4 ? 4 : arr[1].length)).fill('0');
-                    var format = '0,000.' + xr.join('');
-                    return Ext.util.Format.number(v, format);
-                },            
-                width: 110
-            }, {
-                text: '含税单价(元)',
-                dataIndex: 'pd_netprice',
-                xtype:'numbercolumn',
-                renderer : function(v) {
-                    var arr = (v + '.').split('.');
-                    var xr = (new Array(arr[1].length > 4 ? 4 : arr[1].length)).fill('0');
-                    var format = '0,000.' + xr.join('');
-                    return Ext.util.Format.number(v, format);
-                },            
-                width: 110
-            }, {
-                text: '金额(元)',
-                dataIndex: 'pd_nettotal',
-                xtype:'numbercolumn',
-                width: 110,
-                renderer : function(v) {
-                    var arr = (v + '.').split('.');
-                    var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-                    var format = '0,000.' + xr.join('');
-                    return Ext.util.Format.number(v, format);
-                },
-            }, {
-                text: '税额(元)',
-                dataIndex: 'pd_taxamount',
-                xtype:'numbercolumn',
-                width: 110,
-                renderer : function(v,g,r) {
-                    v = (r.data["pd_ordertotal"]||0.0) - (r.data["pd_nettotal"]||0.0);
-                    var arr = (v + '.').split('.');
-                    var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-                    var format = '0,000.' + xr.join('');
-                    return Ext.util.Format.number(v, format);
-                }
-            }, {
-                text: '价税合计(元)',
-                dataIndex: 'pd_ordertotal',
-                xtype:'numbercolumn',
-                width: 110,
-                renderer : function(v) {
-                    var arr = (v + '.').split('.');
-                    var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-                    var format = '0,000.' + xr.join('');
-                    return Ext.util.Format.number(v, format);
-                },
-            }, {
-                text: '关联验收单号',
-                dataIndex: 'pi_iocode',
-                width: 150
-            }, {
-                text: '备注',
-                dataIndex: 'iodetno',
-                width: 250
-            }]
+        relativeColumn: [{
+            text: 'id',
+            dataIndex: 'pu_id',
+            xtype: 'numbercolumn',
+            hidden: true
+        }, {
+            text: '验退单号',
+            dataIndex: 'pi_inoutno',
+            width: 150
+        }, {
+            text: '单据日期',
+            dataIndex: 'pi_date',
+            xtype: 'datecolumn',
+            width: 110
+        }, {
+            text: '供应商名称',
+            dataIndex: 'pi_vendname',
+            width: 200
+        }, {
+            text: '审核状态',
+            align: 'center',
+            dataIndex: 'pi_status',
+            width: 80
+        }, {
+            text: '物料编号',
+            dataIndex: 'pd_prodcode',
+            width: 150
+        }, {
+            text: '品牌',
+            dataIndex: 'pr_brand',
+            width: 100
+        }, {
+            text: '物料名称',
+            dataIndex: 'pr_detail',
+            width: 150
+        }, {
+            text: '型号',
+            dataIndex: 'pr_orispeccode',
+            width: 200
+        }, {
+            text: '规格',
+            dataIndex: 'pr_spec',
+            width: 200
+        }, {
+            text: '仓库',
+            dataIndex: 'pd_whname',
+            width: 80
+        }, {
+            text: '验退数量',
+            dataIndex: 'pd_outqty',
+            xtype: 'numbercolumn',
+            width: 110,
+            renderer: function (v) {
+                var arr = (v + '.').split('.');
+                var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
+                var format = '0,000.' + xr.join('');
+                return Ext.util.Format.number(v, format);
+            },
+        }, {
+            text: '单位',
+            dataIndex: 'pr_unit',
+            width: 65
+        }, {
+            text: '单价(元)',
+            dataIndex: 'pd_netprice',
+            xtype: 'numbercolumn',
+            renderer: function (v) {
+                var arr = (v + '.').split('.');
+                var xr = (new Array(arr[1].length > 4 ? 4 : arr[1].length)).fill('0');
+                var format = '0,000.' + xr.join('');
+                return Ext.util.Format.number(v, format);
+            },
+            width: 110
+        }, {
+            text: '含税单价(元)',
+            dataIndex: 'pd_netprice',
+            xtype: 'numbercolumn',
+            renderer: function (v) {
+                var arr = (v + '.').split('.');
+                var xr = (new Array(arr[1].length > 4 ? 4 : arr[1].length)).fill('0');
+                var format = '0,000.' + xr.join('');
+                return Ext.util.Format.number(v, format);
+            },
+            width: 110
+        }, {
+            text: '金额(元)',
+            dataIndex: 'pd_nettotal',
+            xtype: 'numbercolumn',
+            width: 110,
+            renderer: function (v) {
+                var arr = (v + '.').split('.');
+                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
+                var format = '0,000.' + xr.join('');
+                return Ext.util.Format.number(v, format);
+            },
+        }, {
+            text: '税额(元)',
+            dataIndex: 'pd_taxamount',
+            xtype: 'numbercolumn',
+            width: 110,
+            renderer: function (v, g, r) {
+                v = (r.data["pd_ordertotal"] || 0.0) - (r.data["pd_nettotal"] || 0.0);
+                var arr = (v + '.').split('.');
+                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
+                var format = '0,000.' + xr.join('');
+                return Ext.util.Format.number(v, format);
+            }
+        }, {
+            text: '价税合计(元)',
+            dataIndex: 'pd_ordertotal',
+            xtype: 'numbercolumn',
+            width: 110,
+            renderer: function (v) {
+                var arr = (v + '.').split('.');
+                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
+                var format = '0,000.' + xr.join('');
+                return Ext.util.Format.number(v, format);
+            },
+        }, {
+            text: '关联验收单号',
+            dataIndex: 'pi_iocode',
+            width: 150
+        }, {
+            text: '备注',
+            dataIndex: 'iodetno',
+            width: 250
+        }]
     }
 });

+ 1 - 1
frontend/saas-web/app/view/sale/sale/FormPanelController.js

@@ -58,7 +58,7 @@ Ext.define('saas.view.sale.sale.FormPanelController', {
                         dbfinds: [{
                             from: 'pr_code', to: 'sd_prodcode'
                         }, {
-                            from: 'pr_saleprice', to: 'sd_price'
+                            from: 'pr_saleprice', to: 'sd_netprice'
                         }, {
                             from: 'pr_detail', to: 'pr_detail'
                         }, {

+ 1 - 0
frontend/saas-web/app/view/stock/otherIn/QueryPanel.js

@@ -112,6 +112,7 @@ Ext.define('saas.view.stock.otherIn.QueryPanel', {
             width: 200
         }, {
             text: '金额(元)',
+            xtype: 'numbercolumn',
             dataIndex: 'pi_nettotal',
             width: 110
         }, {

+ 1 - 0
frontend/saas-web/app/view/stock/otherOut/QueryPanel.js

@@ -112,6 +112,7 @@ Ext.define('saas.view.stock.otherOut.QueryPanel', {
             width: 200
         }, {
             text: '金额(元)',
+            xtype: 'numbercolumn',
             dataIndex: 'pi_nettotal',
             width: 110
         }, {

+ 1 - 1
frontend/saas-web/app/view/stock/report/Prodiodetail.js

@@ -128,7 +128,7 @@ Ext.define('saas.view.stock.report.Prodiodetail', {
     },  {
         text: '仓库',
         dataIndex: 'pd_whname',
-        width: 80
+        width: 150
     }, {
         text: '往来单位',
         dataIndex: 'bizname',