王 垚
2022-11-23 765eb429bdcbffc29df0168966f94a9c5ae92fbd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
 
using Kingdee.BOS.Core.Metadata.EntityElement;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Demo.BillView.PRD
{
    [Description("齐套分析物料明细")]
    [HotUpdate]
    public class ProCompleteAnalysisMateriel : AbstractDynamicFormPlugIn
    {
        bool did = false;
        string FMatrailId = "";
        public override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            if (this.View.OpenParameter.GetCustomParameter("FHMainICMOInterIDr") == null)
            {
                SearchList();
            }
            else
            {
                if (did)
                    return;
                string FHMainICMOInterIDr = this.View.OpenParameter.GetCustomParameter("FHMainICMOInterIDr").ToString();//主生产订单主内码
                FMatrailId = this.View.OpenParameter.GetCustomParameter("FMatrailId").ToString();//物料
               string sql = string.Format(@"
/*dialect*/
SELECT A.*,T6.FNAME,T6.FSPECIFICATION FROM view_JIT_MOMaterReadysBill A  
join t_BD_Material_L t6 on A.FHMATERID = t6.FMATERIALID 
WHERE FHICMOINTERID 
NOT IN (SELECT FID FROM   SC_WORKBILLSORTBILLMAIN WHERE FDOCUMENTSTATUS IN ('E'))
AND FCOMPLETECOUNT1>0 
AND FHMATERID ='{0}'
AND datediff(d,getdate(),A.FPLANDATE)>=0
ORDER BY FPLANDATE ASC,FHLeftQty DESC,FWORKSHOPID
", FMatrailId);
                DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0];
                if (dt.Rows.Count > 0)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        //this.Model.CreateNewEntryRow("FEntity");
                        //this.Model.SetValue("FSEQ", i + 1, i);//序号
                        //this.Model.SetValue("FMateralDetailId", dt.Rows[i]["FHMATERID"], i);//物料ID
                        ////this.Model.SetValue("FMateralDetailNumber", dt.Rows[i]["FNAME"], i);//物料名称
                        ////this.Model.SetValue("FMateralDetailModel", dt.Rows[i]["FSPECIFICATION"], i);//物料规格型号
                        //this.Model.SetValue("FScOrderNoDetail", dt.Rows[i]["FBILLNOs"], i);//生产订单号        
                        //this.Model.SetValue("FOccupyCount", dt.Rows[i]["FCompleteCount1"], i);//     
                        //this.Model.SetValue("FCurrentCount", dt.Rows[i]["FHStockQty"], i);//当前库存情况  
                        //this.Model.SetValue("FOrgId", dt.Rows[i]["FHStockOrgID"], i);//库存组织  
                        //this.Model.SetValue("FOwnerTypeId", dt.Rows[i]["FOwnerTypeId"], i);//货主类型  
                        //this.Model.SetValue("FOwnerId", dt.Rows[i]["FOwnerId"], i);//货主  
                        //this.Model.SetValue("FPlanDate", dt.Rows[i]["FPlanDate"].ToString(), i);//日计划日期   
                        ////this.Model.SetValue("FStockId", dt.Rows[i]["FSTOCKID"], i);//仓库 
                        ////this.Model.SetValue("FWorkShopId", dt.Rows[i]["FWORKSHOPID"], i);//车间 
 
                        this.Model.CreateNewEntryRow("FEntity");
                        this.Model.SetValue("FSEQ", i + 1, i);//序号
                        this.Model.SetValue("FMateralDetailId", dt.Rows[i]["FHMATERID"], i);//物料ID
                        this.Model.SetValue("FMateralDetailNumber", dt.Rows[i]["FNUMBER"], i);//物料编码
                        this.Model.SetValue("FMateralDetailNAME", dt.Rows[i]["FNAME"], i);//物料名称
                        this.Model.SetValue("FMateralDetailModel", dt.Rows[i]["FSPECIFICATION"], i);//物料规格型号
                        this.Model.SetValue("FScOrderNoDetail", dt.Rows[i]["FPRDBILLNO"], i);//生产订单号
                        this.Model.SetValue("FSalorderNo", dt.Rows[i]["FSALEORDERNO"].ToString(), i);//销售订单号   
                        this.Model.SetValue("FOccupyCount", dt.Rows[i]["FCompleteCount1"], i);//占用数量 = 齐套数量 
                        this.Model.SetValue("FOccupyPickedCount", dt.Rows[i]["FOccupyPickedCount"], i);//领料占用数量
                        this.Model.SetValue("FCurrentCount", dt.Rows[i]["FHLeftQty"], i);//当前计算库存情况  
                        this.Model.SetValue("FOrgId", dt.Rows[i]["FHStockOrgID"], i);//库存组织  
                        this.Model.SetValue("FOwnerTypeId", dt.Rows[i]["FOwnerTypeId"], i);//货主类型  
                        this.Model.SetValue("FOwnerId", dt.Rows[i]["FOwnerId"], i);//货主  
                        this.Model.SetValue("FPlanDate", dt.Rows[i]["FPlanDate"].ToString(), i);//日计划日期   
                        this.Model.SetValue("FWorkShopId", dt.Rows[i]["FWORKSHOPID"], i);//车间 
                        this.Model.SetValue("FStockId", dt.Rows[i]["FSTOCKID"], i);//仓库 
                    }
                }
                did = true;
            }
        }
 
        /// <summary>
        /// 查询事件
        /// </summary>
        public void SearchList()
        {
            string sqlwhere = " where FCompleteCount1>0 and  1=1 AND  datediff(d,getdate(),a.FPLANDATE)>=0 ";
            string sql = string.Format(@"/*dialect*/select a.*,T6.FNAME,T6.FSPECIFICATION from view_JIT_MOMaterReadysBill a  
                                        join t_BD_Material_L t6 on A.FHMATERID = t6.FMATERIALID 
                                         ");
            //生产订单号
            string PRDBillNo = Convert.ToString(this.Model.GetValue("FScOrderNo"));
            if (!string.IsNullOrEmpty(PRDBillNo))
                sqlwhere += $" and FPRDBillNo='{PRDBillNo}'";
            if (FMatrailId != "")
                sqlwhere += $" and FHMATERID='{FMatrailId}'";
            sql += sqlwhere;
            DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0];
            this.Model.DeleteEntryData("FEntity");
            if (dt.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    this.Model.CreateNewEntryRow("FEntity");
                    this.Model.SetValue("FSEQ", i + 1, i);//序号
                    this.Model.SetValue("FMateralDetailId", dt.Rows[i]["FHMATERID"], i);//物料ID
                    this.Model.SetValue("FScOrderNoDetail", dt.Rows[i]["FPRDBILLNO"], i);//生产订单号
                    this.Model.SetValue("FOccupyCount", dt.Rows[i]["FCompleteCount1"], i);//占用数量 = 齐套数量 
                    this.Model.SetValue("FOccupyPickedCount", dt.Rows[i]["FOccupyPickedCount"], i);//领料占用数量
                    this.Model.SetValue("FCurrentCount", dt.Rows[i]["FHLeftQty"], i);//当前计算库存情况  
                    this.Model.SetValue("FOrgId", dt.Rows[i]["FHStockOrgID"], i);//库存组织  
                    this.Model.SetValue("FOwnerTypeId", dt.Rows[i]["FOwnerTypeId"], i);//货主类型  
                    this.Model.SetValue("FOwnerId", dt.Rows[i]["FOwnerId"], i);//货主  
                    this.Model.SetValue("FPlanDate", dt.Rows[i]["FPlanDate"].ToString(), i);//日计划日期   
                    this.Model.SetValue("FWorkShopId", dt.Rows[i]["FWORKSHOPID"], i);//车间 
                    this.Model.SetValue("FStockId", dt.Rows[i]["FSTOCKID"], i);//仓库 
                }
            }
            this.View.UpdateView();
            did = true;
        }
        public override void BarItemClick(BarItemClickEventArgs e)
        {
            base.BarItemClick(e);
            if (e.BarItemKey.ToUpper() == "TBFILTER")
            {
                SearchList();
            }
        }
    }
}