ソースを参照

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

huangx 7 年 前
コミット
0facd81c51

+ 2 - 1
applications/document/document-server/src/main/resources/mapper/BankinformationMapper.xml

@@ -23,6 +23,7 @@
     <result column="bk_text3" property="bk_text3" jdbcType="VARCHAR" />
     <result column="bk_text4" property="bk_text4" jdbcType="VARCHAR" />
     <result column="bk_text5" property="bk_text5" jdbcType="VARCHAR" />
+    <result column="bk_remark" property="bk_remark" jdbcType="VARCHAR" />
   </resultMap>
   <resultMap id="ResultMapWithBLOBs" type="com.usoftchina.saas.document.entities.Bankinformation" extends="BaseResultMap" >
     <result column="bk_remark" property="bk_remark" jdbcType="LONGVARCHAR" />
@@ -30,7 +31,7 @@
   <sql id="Base_Column_List" >
     bk_id, bk_bankcode, bk_bankname, bk_date, bk_type, bk_beginamount, bk_thisamount, 
     bk_status, bk_statuscode, bk_recorderid, bk_recorder, bk_recorddate, bk_ym, companyid, 
-    updaterId, updateTime, bk_text1, bk_text2, bk_text3, bk_text4, bk_text5
+    updaterId, updateTime, bk_text1, bk_text2, bk_text3, bk_text4, bk_text5, bk_remark
   </sql>
   <sql id="Blob_Column_List" >
     bk_remark

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

@@ -96,7 +96,7 @@
             <if test="companyId != null">
               and   purchase.companyId = #{companyId}
             </if>
-        </where>  order by pu_id desc,pd_detno desc
+        </where>  order by pu_date desc
     </select>
 
     <select id="selectPurchaseBycondition"  resultMap="BaseResultMap">

+ 1 - 1
applications/sale/sale-server/src/main/resources/mapper/SaleListMapper.xml

@@ -91,7 +91,7 @@
             <if test="companyId != null">
                 and   sale.companyId = #{companyId}
             </if>
-        </where>  order by sd_detno desc
+        </where>  order by sa_date desc
     </select>
 
     <select id="selectSaleByCondition" resultMap="BaseResultMap">

+ 19 - 0
applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/report/ProdinoutCountView.java

@@ -10,4 +10,23 @@ import java.io.Serializable;
  */
 @Data
 public class ProdinoutCountView implements Serializable{
+
+    private String  pwm_yearmonth;
+    private String pr_kind;
+    private String pr_code;
+    private String pr_detail;
+    private String pr_spec;
+    private String pr_unit;
+    private String wh_description;
+    private Double pwm_beginqty;
+    private Double pwm_beginamount;
+    private Double pwm_nowinqty;
+    private Double pwm_nowinamount;
+    private Double pwm_nowoutqty;
+    private Double pwm_nowoutamount;
+    private Double pwm_endqty;
+    private Double pwm_endamount;
+    private Integer companyid;
+
+
 }

+ 23 - 3
applications/storage/storage-server/src/main/resources/mapper/ProdInOutReportMapper.xml

@@ -22,6 +22,27 @@
   </resultMap>
 
 
+  <resultMap id="ProdinoutCountMap" type="com.usoftchina.saas.storage.po.report.ProdinoutCountView">
+    <result column="pwm_yearmonth" jdbcType="VARCHAR" property="pwm_yearmonth" />
+    <result column="pr_kind" jdbcType="VARCHAR" property="pr_kind" />
+    <result column="pr_code" jdbcType="VARCHAR" property="pr_code" />
+    <result column="pr_detail" jdbcType="VARCHAR" property="pr_detail" />
+    <result column="pr_spec" jdbcType="VARCHAR" property="pr_spec" />
+    <result column="pr_unit" jdbcType="VARCHAR" property="pr_unit" />
+    <result column="wh_description" jdbcType="VARCHAR" property="wh_description" />
+    <result column="pwm_beginqty" jdbcType="DOUBLE" property="pwm_beginqty" />
+    <result column="pwm_beginamount" jdbcType="DOUBLE" property="pwm_beginamount" />
+    <result column="pwm_nowinqty" jdbcType="DOUBLE" property="pwm_nowinqty" />
+    <result column="pwm_nowinamount" jdbcType="DOUBLE" property="pwm_nowinamount" />
+    <result column="pwm_nowoutqty" jdbcType="DOUBLE" property="pwm_nowoutqty" />
+    <result column="pwm_nowoutamount" jdbcType="DOUBLE" property="pwm_nowoutamount" />
+    <result column="pwm_endqty" jdbcType="DOUBLE" property="pwm_endqty" />
+    <result column="pwm_endamount" jdbcType="DOUBLE" property="pwm_endamount" />
+    <result column="companyid" jdbcType="INTEGER" property="companyid" />
+  </resultMap>
+
+
+
 
   <select id="selectProdiodetailByCondition" resultMap="ProdiodetailMap">
     select  *  from prodiodetail_view
@@ -37,8 +58,8 @@
   </select>
 
 
-  <select id="selectProdinoutCountByCondition"  resultMap="ProdiodetailMap">
-    select  *  from prodinout
+  <select id="selectProdinoutCountByCondition"  resultMap="ProdinoutCountMap">
+    select  *  from prodinoutcount_view
     <where>
       <if test="con != null">
         ${con}
@@ -47,7 +68,6 @@
         and  companyid = #{companyId}
       </if>
     </where>
-    order by pi_id
   </select>
 
 

+ 2 - 0
frontend/saas-web/app/view/document/bom/FormPanel.js

@@ -63,6 +63,7 @@ Ext.define('saas.view.document.bom.FormPanel', {
         xtype: 'textfield',
         name: 'bo_mothername',
         fieldLabel: '产品名称',
+        reddOnly:true,
         allowBlank: false
     },{
         xtype: 'textfield',
@@ -74,6 +75,7 @@ Ext.define('saas.view.document.bom.FormPanel', {
         xtype: 'textfield',
         name: 'bo_status',
         fieldLabel: '产品状态',
+        reddOnly:true
 
     },{
         xtype: 'hidden',

+ 1 - 0
frontend/saas-web/app/view/main/Navigation.js

@@ -115,6 +115,7 @@ Ext.define('saas.view.main.Navigation', {
                         menu.updateLayout();
 
                         view.el.dom.addEventListener('mouseenter', function (e) {
+                            menu.show();
                             menu.navItem.classList.add(menu.navView.overItemCls);
                         });
 

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

@@ -20,7 +20,7 @@ Ext.define('saas.view.purchase.report.PurchasePay', {
         columnWidth: 0.25
     }, {
         xtype: 'condatefield',
-        name: 'pu_date',
+        name: 'pb_recorddate',
         fieldLabel: '单据日期',
         columnWidth: 0.5
     }],

+ 20 - 91
frontend/saas-web/app/view/stock/appropriationInOut/FormPanel.js

@@ -21,32 +21,18 @@ Ext.define('saas.view.stock.appropriationInOut.FormPanel', {
     _auditUrl:'/api/storage/prodinout/audit',
     _unAuditUrl: '/api/storage/prodinout/unAudit/',
     _deleteUrl:'/api/storage/prodinout/delete/',
-
-
-    // _relationColumn: 'pd_piid',
-    // _readUrl:'http://localhost:9000/prodinout/read/',
-    // _saveUrl:'http://localhost:9000/prodinout/save',
-    // _auditUrl:'http://localhost:9000/prodinout/audit',
-    // _deleteUrl:'http://localhost:9000/prodinout/delete/',
-
-
-
-
     initId:0,
 
     toolBtns: [],
-
     defaultItems: [{
         xtype: 'hidden',
         name: 'id',
-        bind: '{id}',
         fieldLabel: 'id',
         allowBlank: true,
         columnWidth: 0
     },{
         xtype : "textfield", 
         name : "pi_class", 
-        bind : "{pi_class}", 
         fieldLabel : "单据类型", 
         readOnly:true,
         allowBlank : true, 
@@ -54,61 +40,42 @@ Ext.define('saas.view.stock.appropriationInOut.FormPanel', {
     }, {
         xtype : "hidden", 
         name : "pi_vendid", 
-        bind : "{pi_vendid}", 
         fieldLabel : "供应商ID", 
         allowBlank : true, 
         columnWidth : 0.0
     },{
         xtype: 'hidden',
         name: 'pi_vendcode',
-        bind: '{pi_vendcode}',
         fieldLabel: '供应商编号'
     }, {
         xtype: 'dbfindtrigger',
         name: 'pi_vendname',
-        bind: '{pi_vendname}',
         fieldLabel: '供应商名称'
     },{
         xtype : "hidden", 
         name : "pi_custid", 
-        bind : "{pi_custid}", 
         fieldLabel : "客户ID", 
         allowBlank : true, 
         columnWidth : 0.0
     },{
         xtype: 'hidden',
         name: 'pi_custcode',
-        bind: '{pi_custcode}',
         fieldLabel: '客户编号'
     }, {
         xtype: 'dbfindtrigger',
         name: 'pi_custname',
-        bind: '{pi_custname}',
         fieldLabel: '客户名称'
     },{
         xtype : "datefield", 
         name : "pi_date", 
-        bind : "{pi_date}", 
         fieldLabel : "单据日期", 
         allowBlank : false, 
         columnWidth : 0.25,
         defaultValue: new Date()
-    }
-    // ,{
-    //     xtype : "textfield", 
-    //     name : "pi_total", 
-    //     bind : "{pi_total}", 
-    //     fieldLabel : "总额", 
-    //     allowBlank : true,
-    //     readOnly: true,
-    //     columnWidth : 0.25
-    // }
-    ,
-     {
+    }, {
         name : "detailGridField", 
         xtype : "detailGridField",
         storeModel:'saas.model.purchase.ProdIODetail',
-        // deleteDetailUrl:'http://localhost:9000/prodinout/deleteDetail/',
         deleteDetailUrl:'/api/storage/prodinout/deleteDetail/',
         detnoColumn:  'pd_pdno',
         columns : [
@@ -254,69 +221,31 @@ Ext.define('saas.view.stock.appropriationInOut.FormPanel', {
                     xtype : "dbfindtrigger"
                 }
             }
-        //     ,
-        //     {
-        //         text : "单价", 
-        //         dataIndex : "pd_orderprice",
-        //         editor : {
-        //             xtype : "numberfield"
-        //         },   
-        //         width : 120.0, 
-        //         xtype : "numbercolumn", 
-        //         items : null
-        //     }, 
-        //    {
-        //         text : "含税金额", 
-        //         dataIndex : "pd_total", 
-        //         width : 120.0, 
-        //         xtype : "numbercolumn"
-        //     }, {
-        //         text : "税率", 
-        //         dataIndex : "pd_taxrate",
-        //         editor : {
-        //             xtype : "numberfield"
-        //         },   
-        //         width : 120.0, 
-        //         xtype : "numbercolumn", 
-        //         items : null
-        //     },
-        //     {
-        //         text : "未税金额", 
-        //         dataIndex : "pd_nettotal", 
-        //         xtype : "numbercolumn"
-        //     }
         ]
     }, {
-        xtype : "datefield", 
-        name : "createTime", 
-        bind : "{createTime}", 
-        fieldLabel : "录入日期", 
-        allowBlank : true, 
-        columnWidth : 0.25
+        xtype : "textfield", 
+        name : "pi_remark", 
+        fieldLabel : "备注", 
+        columnWidth : 0.75
+    }, {
+        xtype : "textfield", 
+        name : "pi_recordman", 
+        fieldLabel : "录入人", 
+        readOnly:true
     }, {
         xtype : "datefield", 
-        name : "updateTime", 
-        bind : "{updateTime}", 
-        fieldLabel : "更新日期", 
-        allowBlank : true, 
-        columnWidth : 0.25
+        name : "pi_recorddate", 
+        fieldLabel : "录入日期",
+        readOnly:true
     }, {
         xtype : "textfield", 
-        readOnly : true, 
-        editable : false, 
-        name : "pi_status", 
-        bind : "{pi_status}", 
-        fieldLabel : "单据状态", 
-        allowBlank : true, 
-        columnWidth : 0.25
+        name : "pi_auditman", 
+        fieldLabel : "审核人", 
+        readOnly:true
     }, {
-        xtype : "hidden", 
-        readOnly : true, 
-        editable : false, 
-        name : "pi_statuscode", 
-        bind : "{pi_statuscode}", 
-        fieldLabel : "单据状态码", 
-        allowBlank : true, 
-        columnWidth : 0.0
+        xtype : "datefield", 
+        name : "pi_auditdate", 
+        fieldLabel : "审核日期",
+        readOnly:true
     }]
 });

+ 1 - 29
frontend/saas-web/app/view/stock/appropriationInOut/QueryPanel.js

@@ -10,28 +10,24 @@ Ext.define('saas.view.stock.appropriationInOut.QueryPanel', {
     queryFormItems: [{
         xtype: 'hidden',
         name: 'id',
-        bind: '{id}',
         fieldLabel: 'ID',
         allowBlank: true,
         columnWidth: 0
     }, {
         xtype: 'textfield',
         name: 'pi_inoutno',
-        bind: '{pi_inoutno}',
         fieldLabel: '单据编号',
         allowBlank: true,
         columnWidth: 0.25
     }, {
         xtype: 'condatefield',
         name: 'pi_date',
-        bind: '{pi_date}',
         fieldLabel: '单据日期',
         allowBlank: true,
         columnWidth: 0.5
     }, {
         xtype: 'textfield',
         name: 'pi_vendcode',
-        bind: '{pi_vendcode}',
         fieldLabel: '供应商编号',
         allowBlank: true,
         hidden:true,
@@ -39,26 +35,22 @@ Ext.define('saas.view.stock.appropriationInOut.QueryPanel', {
     }, {
         xtype: 'textfield',
         name: 'pi_vendname',
-        bind: '{pi_vendname}',
         fieldLabel: '供应商名称',
         allowBlank: true,
         columnWidth: 0.25
     }, {
         xtype: 'dbfindtrigger',
         name: 'pd_prodcode',
-        bind: '{pd_prodcode}',
         fieldLabel: '物料编号',
         showDetail: true
     }, {
         xtype: 'textfield',
         name: 'pr_detail',
-        bind: '{pr_detail}',
         fieldLabel: '物料名称',
         showDetail: true
     }, {
         xtype: 'combobox',
         name: 'pi_statuscode',
-        bind: '{pi_statuscode}',
         fieldLabel: '审核状态',
         allowBlank: true,
         columnWidth: 0.25,
@@ -81,26 +73,7 @@ Ext.define('saas.view.stock.appropriationInOut.QueryPanel', {
             }
         }
     }],
-    moreQueryFormItems: [{
-        xtype: 'textfield',
-        name: 'pu_buyername',
-        bind: '{pu_buyername}',
-        fieldLabel: '采购员',
-        allowBlank: true
-    }, {
-        xtype: 'textfield',
-        name: 'pu_total',
-        bind: '{pu_total}',
-        fieldLabel: '金额',
-        allowBlank: true
-    }, {
-        xtype: 'condatefield',
-        name: 'pu_delivery',
-        bind: '{pu_delivery}',
-        fieldLabel: '交货日期',
-        allowBlank: true,
-        columnWidth: 1
-    }],
+    moreQueryFormItems: [],
     queryGridConfig: {
         idField:'id',
         codeField:'pi_inoutno',
@@ -108,7 +81,6 @@ Ext.define('saas.view.stock.appropriationInOut.QueryPanel', {
         addXtype:'stock-appropriationinout-formpanel',
         defaultCondition:' pi_class = \'调拨单\'',
         baseVastUrl:'/api/storage/prodinout/',
-        // baseVastUrl:"http://localhost:9000/prodinout/",
         baseColumn: [{
             text: 'id',
             dataIndex: 'id',

+ 105 - 0
frontend/saas-web/app/view/stock/report/ProdinoutCount.js

@@ -0,0 +1,105 @@
+Ext.define('saas.view.stock.report.ProdinoutCount', {
+    extend: 'saas.view.core.report.ReportPanel',
+    xtype: 'stock-report-prodinoutCount',
+
+    controller: 'stock-report-prodinoutCount',
+    viewModel: 'stock-report-prodinoutCount',
+
+    viewName: 'stock-report-prodinoutCount',
+    //按物料分组
+    groupField: null,
+    listUrl: '/api/stock/report/prodinoutCount',
+    defaultCondition: null,
+    reportTitle: '物料收发汇总表',
+    QueryWidth:0.25,
+    //筛选:仓库、物料、物料类型、时间			
+    searchItems: [{		
+        xtype: 'dbfindtrigger',
+        name: 'pd_whcode',
+        fieldLabel: '仓库编号',
+        columnWidth: 0.25
+    }, {		
+        xtype: 'dbfindtrigger',
+        name: 'pd_prodcode',
+        fieldLabel: '物料编号',
+        columnWidth: 0.25
+    }, {		
+        xtype: 'remotecombo',
+        editable:false,
+        name: 'pd_prodcode',
+        fieldLabel: '物料类型',
+        columnWidth: 0.25,
+        storeUrl:'/api/document/producttype/getCombo',
+        addHandler:function(b){
+            var document = Ext.create('saas.view.document.kind.Kind',{});
+            var form = this.ownerCmp.ownerCt;
+            this.dialog = form.getController().getView().add({
+                xtype: 'document-kind-childwin',
+                bind: {
+                    title: '新增物料类型'
+                },
+                dataKind:'productkind',
+                belong:document.etc['productkind'],
+                _parent:form,
+                _combo:this.ownerCmp,
+                record:null,
+                session: true
+            });
+            this.dialog.show();
+        }
+    }, {
+        xtype: 'condatefield',
+        name: 'pi_date',
+        fieldLabel: '单据日期',
+        columnWidth: 0.5
+    }],
+    reportColumns: [{
+        text: '物料类型',
+        dataIndex: 'pr_kind'
+    }, {
+        text: '物料编号',
+        dataIndex: 'pr_code',
+        width: 200
+    }, {
+        text: '物料名称',
+        dataIndex: 'pr_detail',
+        width: 200
+    }, {
+        text: '物料规格',
+        dataIndex: 'pr_spec'
+    }, {
+        text: '单位',
+        dataIndex: 'pr_unit'
+    }, {
+        text: '仓库',
+        dataIndex:'pd_whcode'
+    }, {
+        text: '期初',
+        columns: [{
+            text: '数量'
+        },{
+            text: '成本'
+        }]
+    }, {
+        text: '入库合计',
+        columns: [{
+            text: '数量'
+        },{
+            text: '成本'
+        }]
+    }, {
+        text: '出库合计',
+        columns: [{
+            text: '数量'
+        },{
+            text: '成本'
+        }]
+    }, {
+        text: '结存',
+        columns: [{
+            text: '数量'
+        },{
+            text: '成本'
+        }]
+    }]
+});

+ 177 - 0
frontend/saas-web/app/view/stock/report/ProdinoutCountController.js

@@ -0,0 +1,177 @@
+Ext.define('saas.view.stock.report.ProdinoutCountController', {
+    extend: 'saas.view.core.report.ReportPanelController',
+    alias: 'stock-report-prodinoutCount',
+    init: function (form) {
+        this.control({
+           //放大镜赋值关系 以及 tpl模板
+           'dbfindtrigger[name=pd_prodcode]':{
+                beforerender:function(f){
+                    Ext.apply(f,{
+                        dataUrl:'/api/document/product/list',
+                        addXtype: 'document-product-formpanel',
+                        addTitle: '物料资料',
+                        dbfinds:[
+                        {
+                            from:'pr_code',to:'pd_prodcode'
+                        }, {
+                            from:'pr_detail',to:'pr_detail'
+                        }, {
+                            from:'pr_spec',to:'pr_spec'
+                        }],
+                        dbtpls:[{
+                            field:'pr_code',width:100
+                        },{
+                            field:'pr_detail',width:100
+                        }],
+                        defaultCondition: "pr_statuscode='OPEN'",
+                        dbSearchFields:[{
+                            emptyText:'输入物料编号、名称或规格',
+                            xtype : "textfield", 
+                            name : "search", 
+                            width: 200,
+                            getCondition: function(v) {
+                                return "(upper(pr_spec) like '%" + v.toUpperCase()+"%' or upper(pr_code) like '%"+v.toUpperCase()+"%' or upper(pr_detail) like '%"+v.toUpperCase()+"%')";
+                            },
+                            allowBlank : true, 
+                            columnWidth : 0.25
+                        }],
+                        dbColumns:[{
+                            "text": "物料ID",
+                            "hidden": true,
+                            "dataIndex": "id",
+                        }, {
+                            "text": "物料编号",       
+                            "dataIndex": "pr_code",
+                            "width": 200,
+                        }, {
+                            "text": "物料名称",
+                            "width": 200,
+                            "dataIndex": "pr_detail",
+                        }, {
+                            "text": "规格",
+                            "dataIndex": "pr_spec",
+                            "width": 100,
+                        }, {
+                            "text": "单位",
+                            "dataIndex": "pr_unit",
+                            "width": 100,
+                        },{
+                            "text": "仓库id",
+                            "dataIndex": "pr_whid",
+                            "hidden": true,
+                        },{
+                            "text": "仓库编号",
+                            "dataIndex": "pr_whcode",
+                            "hidden": true,
+                        },{
+                            "text": "仓库",
+                            "dataIndex": "pr_whname",
+                            "width": 200,
+                        },{
+                            "text": "总库存数",
+                            "dataIndex": "po_onhand",
+                            "width": 100,
+                            align:'right'
+                        },{
+                            "text": "类型",
+                            "dataIndex": "pr_kind",
+                            "width": 100,
+                        },{
+                            "text": "型号",
+                            "dataIndex": "pr_orispeccode",
+                            "width": 100,
+                        },{
+                            "text": "品牌",
+                            "dataIndex": "pr_brand",
+                            "width": 100,
+                        },{
+                            "text": "供应商",
+                            "dataIndex": "pr_vendname",
+                            "width": 100,
+                        },{
+                            "text": "最小包装",
+                            "dataIndex": "pr_zxbzs",
+                            "width": 100,
+                            align:'right'
+                        },{
+                            "text": "L/T",
+                            "dataIndex": "pr_leadtime",
+                            "width": 100,
+                        }]
+                    }) ;   
+
+                }
+            },
+            'dbfindtrigger[name=pd_whcode]':{
+                beforerender:function(f){
+                    Ext.apply(f,{
+                        conditionCode:'wh_code',
+                        dataUrl:'/api/document/warehouse/list',
+                        addXtype: 'other-storeinformation',
+                        addTitle: '仓库资料',
+                        dbfinds:[{
+                            from:'id',to:'id',ignore:true 
+                        }, { 
+                            from:'wh_code',to:'pd_whcode'
+                        }, {
+                            from:'wh_description',to:'wh_description'
+                        }],
+                        dbtpls:[{
+                            field:'wh_code',width:100
+                        },{
+                            field:'wh_description',width:100
+                        }],
+                        defaultCondition: "wh_statuscode='OPEN'",
+                        dbSearchFields:[{
+                            emptyText:'输入物料编号、名称或规格',
+                            xtype : "textfield", 
+                            name : "search", 
+                            width: 200,
+                            getCondition: function(v) {
+                                return "(upper(wh_code) like '%" + v.toUpperCase()+"%' or upper(wh_description) like '%"+v.toUpperCase()+"%')";
+                            },
+                            allowBlank : true, 
+                            columnWidth : 0.25
+                        }],
+                        dbColumns:[{
+                            "text": "仓库ID",
+                            "flex": 0,
+                            "dataIndex": "id",
+                            "width": 0,
+                            "xtype": "",
+                            "items": null
+                        },{
+                            "text": "仓库编号",
+                            "flex": 1,
+                            "dataIndex": "wh_code",
+                            "width": 100,
+                            "xtype": "",
+                            "items": null
+                        }, {
+                            "text": "仓库名称",
+                            "flex": 1,
+                            "dataIndex": "wh_description",
+                            "xtype": "",
+                            "items": null
+                        }, {
+                            "text": "仓库类型",
+                            "flex": 0,
+                            "dataIndex": "wh_type",
+                            "width": 200,
+                            "xtype": "",
+                            "items": null
+                        }, {
+                            "text": "仓库状态",
+                            "flex": 0,
+                            "dataIndex": "wh_status",
+                            "width": 200,
+                            "xtype": "",
+                            "items": null
+                        }]
+                    }) ;   
+
+                }
+            }
+         });
+        }
+});

+ 4 - 0
frontend/saas-web/app/view/stock/report/ProdinoutCountModel.js

@@ -0,0 +1,4 @@
+Ext.define('saas.view.stock.report.ProdinoutCountModel', {
+    extend: 'saas.view.core.report.ReportPanelModel',
+    alias: 'stock-report-prodinoutCount'
+});

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

@@ -0,0 +1,138 @@
+Ext.define('saas.view.stock.report.Prodiodetail', {
+    extend: 'saas.view.core.report.ReportPanel',
+    xtype: 'stock-report-prodiodetail',
+
+    controller: 'stock-report-prodiodetail',
+    viewModel: 'stock-report-prodiodetail',
+
+    viewName: 'stock-report-prodiodetail',
+  //  按物料分组
+    groupField: 'pd_prodcode',
+    listUrl: '/api/stock/report/prodiodetail',
+    defaultCondition: null,
+    reportTitle: '物料出入库明细表',
+    QueryWidth:0.25,
+    //筛选:单据类型、物料、日期
+    searchItems: [{
+        xtype: 'multicombo',
+        name: 'pi_class',
+        fieldLabel: '单据类型',
+        allowBlank: true,
+        columnWidth: 0.25,
+        datas: [
+            ["采购验收单", "采购验收单"],
+            ["采购验退单", "采购验退单"],
+            ["出货单", "出货单"],
+            ["销售退货单", "销售退货单"],
+            ["完工入库单", "完工入库单"],
+            ["生产领料单", "生产领料单"],
+            ["其它入库单", "其它入库单"],
+            ["其它出库单", "其它出库单"],
+            ["调拨单", "调拨单"],
+            ["库存初始化","库存初始化"]
+        ]
+    }, {		
+        xtype: 'dbfindtrigger',
+        name: 'pd_prodcode',
+        fieldLabel: '物料编号',
+        columnWidth: 0.25
+    }, {
+        xtype: 'condatefield',
+        name: 'pi_date',
+        fieldLabel: '单据日期',
+        columnWidth: 0.5
+    }],
+  //  单号	单据类型	客户/供应商编号	客户/供应商名称	单据日期	序号	
+  //物料类型	物料编号	物料名称	物料规格	单位	入库数量	出库数量	成本单价	备注
+    reportColumns: [{
+        text: 'id',
+        dataIndex: 'id',
+        hidden: true
+    }, {
+        text: '单号',
+        dataIndex: 'pi_inoutno',
+        width: 200
+    }, {
+        text: '单据类型',
+        dataIndex: 'pi_class',
+        width: 200
+    }, {
+        text: '客户/供应商编号',
+        dataIndex: 'bizcode',
+        width: 200
+    }, {
+        text: '客户/供应商名称',
+        dataIndex: 'bizname',
+        width: 200
+    }, {
+        text: '日期',
+        dataIndex: 'pi_date',
+        xtype: 'datecolumn'
+    }, {
+        text: '序号',
+        dataIndex: 'pd_pdno'
+    }, {
+        text: '物料类型',
+        dataIndex: 'pr_kind'
+    }, {
+        text: '物料编号',
+        dataIndex: 'pd_prodcode',
+        width: 200
+    }, {
+        text: '物料名称',
+        dataIndex: 'pr_detail',
+        width: 200
+    }, {
+        text: '物料规格',
+        dataIndex: 'pr_spec'
+    }, {
+        text: '单位',
+        dataIndex: 'pd_unit'
+    }, {
+        text: '入库数量',
+        dataIndex: 'inqty',
+        renderer : function(v) {
+            var arr = (v + '.').split('.');
+            var xr = (new Array(arr[1].length)).fill('0');
+            var format = '0.' + xr.join();
+            return Ext.util.Format.number(v, format);
+        },
+        summaryType: 'sum',
+        summaryRenderer: function(v) {
+            var arr = (v + '.').split('.');
+            var xr = (new Array(arr[1].length)).fill('0');
+            var format = '0.' + xr.join();
+            return Ext.util.Format.number(v, format);
+        }
+    }, {
+        text: '出库数量',
+        dataIndex: 'outqty',
+        renderer : function(v) {
+            var arr = (v + '.').split('.');
+            var xr = (new Array(arr[1].length)).fill('0');
+            var format = '0.' + xr.join();
+            return Ext.util.Format.number(v, format);
+        },
+        summaryType: 'sum',
+        summaryRenderer: function(v) {
+            var arr = (v + '.').split('.');
+            var xr = (new Array(arr[1].length)).fill('0');
+            var format = '0.' + xr.join();
+            return Ext.util.Format.number(v, format);
+        }
+    }, {
+        text: '成本单价',
+        dataIndex: 'pd_price',
+        renderer : function(v) {
+            var arr = (v + '.').split('.');
+            var xr = (new Array(arr[1].length)).fill('0');
+            var format = '0,000.' + xr.join();
+            return Ext.util.Format.number(v, format);
+        }
+    }, {
+        text: '备注',
+        dataIndex: 'pd_remark',
+        width: 250
+    }]
+
+});

+ 107 - 0
frontend/saas-web/app/view/stock/report/ProdiodetailController.js

@@ -0,0 +1,107 @@
+Ext.define('saas.view.stock.report.ProdiodetailController', {
+    extend: 'saas.view.core.report.ReportPanelController',
+    alias: 'stock-report-prodiodetail',
+    init: function (form) {
+        this.control({
+            //放大镜赋值关系 以及 tpl模板
+            'dbfindtrigger[name=pd_prodcode]':{
+                beforerender:function(f){
+                    Ext.apply(f,{
+                        dataUrl:'/api/document/product/list',
+                        addXtype: 'document-product-formpanel',
+                        addTitle: '物料资料',
+                        dbfinds:[
+                        {
+                            from:'pr_code',to:'pd_prodcode'
+                        }, {
+                            from:'pr_detail',to:'pr_detail'
+                        }, {
+                            from:'pr_spec',to:'pr_spec'
+                        }],
+                        dbtpls:[{
+                            field:'pr_code',width:100
+                        },{
+                            field:'pr_detail',width:100
+                        }],
+                        defaultCondition: "pr_statuscode='OPEN'",
+                        dbSearchFields:[{
+                            emptyText:'输入物料编号、名称或规格',
+                            xtype : "textfield", 
+                            name : "search", 
+                            width: 200,
+                            getCondition: function(v) {
+                                return "(upper(pr_spec) like '%" + v.toUpperCase()+"%' or upper(pr_code) like '%"+v.toUpperCase()+"%' or upper(pr_detail) like '%"+v.toUpperCase()+"%')";
+                            },
+                            allowBlank : true, 
+                            columnWidth : 0.25
+                        }],
+                        dbColumns:[{
+                            "text": "物料ID",
+                            "hidden": true,
+                            "dataIndex": "id",
+                        }, {
+                            "text": "物料编号",       
+                            "dataIndex": "pr_code",
+                            "width": 200,
+                        }, {
+                            "text": "物料名称",
+                            "width": 200,
+                            "dataIndex": "pr_detail",
+                        }, {
+                            "text": "规格",
+                            "dataIndex": "pr_spec",
+                            "width": 100,
+                        }, {
+                            "text": "单位",
+                            "dataIndex": "pr_unit",
+                            "width": 100,
+                        },{
+                            "text": "仓库id",
+                            "dataIndex": "pr_whid",
+                            "hidden": true,
+                        },{
+                            "text": "仓库编号",
+                            "dataIndex": "pr_whcode",
+                            "hidden": true,
+                        },{
+                            "text": "仓库",
+                            "dataIndex": "pr_whname",
+                            "width": 200,
+                        },{
+                            "text": "总库存数",
+                            "dataIndex": "po_onhand",
+                            "width": 100,
+                            align:'right'
+                        },{
+                            "text": "类型",
+                            "dataIndex": "pr_kind",
+                            "width": 100,
+                        },{
+                            "text": "型号",
+                            "dataIndex": "pr_orispeccode",
+                            "width": 100,
+                        },{
+                            "text": "品牌",
+                            "dataIndex": "pr_brand",
+                            "width": 100,
+                        },{
+                            "text": "供应商",
+                            "dataIndex": "pr_vendname",
+                            "width": 100,
+                        },{
+                            "text": "最小包装",
+                            "dataIndex": "pr_zxbzs",
+                            "width": 100,
+                            align:'right'
+                        },{
+                            "text": "L/T",
+                            "dataIndex": "pr_leadtime",
+                            "width": 100,
+                        }]
+                    }) ;   
+
+                }
+            }
+         });
+        }
+});

+ 4 - 0
frontend/saas-web/app/view/stock/report/ProdiodetailModel.js

@@ -0,0 +1,4 @@
+Ext.define('saas.view.stock.report.ProdiodetailModel', {
+    extend: 'saas.view.core.report.ReportPanelModel',
+    alias: 'stock-report-prodiodetail'
+});