394 lines
14 KiB
C#
394 lines
14 KiB
C#
using System;
|
||
using System.ComponentModel;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using Kingdee.BOS;
|
||
using Kingdee.BOS.Core.Bill.PlugIn;
|
||
using Kingdee.BOS.Core.Bill.PlugIn.Args;
|
||
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
|
||
using Kingdee.BOS.Core.Metadata;
|
||
using Kingdee.BOS.Core.Metadata.EntityElement;
|
||
using Kingdee.BOS.Core.SqlBuilder;
|
||
using Kingdee.BOS.Orm.DataEntity;
|
||
using Kingdee.BOS.ServiceHelper;
|
||
using Kingdee.BOS.Util;
|
||
using Kingdee.BOS.Core.DynamicForm;
|
||
using Kingdee.BOS.Core.DynamicForm.PlugIn;
|
||
using System.Collections;
|
||
using System.Data;
|
||
|
||
namespace aoyuPlugIn
|
||
{
|
||
[HotUpdate]
|
||
[Description("装配批录员工")]
|
||
public class zp_plyg : AbstractBillPlugIn
|
||
{
|
||
public override void BeforeSave(BeforeSaveEventArgs e)
|
||
{
|
||
|
||
base.BeforeSave(e);
|
||
if (check_data() == false)
|
||
e.Cancel = true;
|
||
}
|
||
//检测数据
|
||
bool check_data()
|
||
{
|
||
bool isok = true;
|
||
try
|
||
{
|
||
string djno ="";int isAdd=0;
|
||
if (this.View.OpenParameter.Status == OperationStatus.ADDNEW) //新增
|
||
{
|
||
isAdd = 0;
|
||
}
|
||
else
|
||
{
|
||
djno = this.Model.GetValue("FBillNo").ToString();
|
||
isAdd = 1;
|
||
}
|
||
string FEntity_nm = "F_GAT_Entity1";
|
||
//取表体最大行数
|
||
int tol = this.Model.GetEntryRowCount(FEntity_nm);
|
||
if (tol > 0)
|
||
{
|
||
//集体计件
|
||
isok = yzdata(getJTJJ(), djno, isAdd);
|
||
}
|
||
else
|
||
{
|
||
//个人计件
|
||
isok = yzdata(getGRJJ(), djno, isAdd);
|
||
}
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{ this.View.ShowMessage("检测数据时发生错误为:" + ex.Message); }
|
||
return isok;
|
||
}
|
||
//验证数据
|
||
bool yzdata(DataTable tb,string djno,int isAdd)
|
||
{
|
||
try
|
||
{
|
||
foreach (DataRow r in tb.Rows)
|
||
{
|
||
string rwdID = r["rwdID"].ToString();
|
||
string gxID = r["gxID"].ToString();
|
||
string sl = r["sl"].ToString();
|
||
string[] jg = tolsl(djno, rwdID, gxID, sl, isAdd);
|
||
if (jg[0] == "1")
|
||
{
|
||
this.View.ShowErrMessage(jg[1].ToString() + "!");
|
||
return false;
|
||
}
|
||
}
|
||
}catch(Exception ex) { this.View.ShowMessage("验证数据时发生错误为:" + ex.Message); }
|
||
return true;
|
||
}
|
||
//bool check_data1()
|
||
//{
|
||
// bool isok = true;
|
||
// try
|
||
// {
|
||
// string djno = ""; int isAdd = 0;
|
||
// if (this.View.OpenParameter.Status == OperationStatus.ADDNEW) //新增
|
||
// {
|
||
// isAdd = 0;
|
||
// }
|
||
// else
|
||
// {
|
||
// djno = this.Model.GetValue("FBillNo").ToString();
|
||
// isAdd = 1;
|
||
// }
|
||
// string FEntity_nm = "F_GAT_Entity1";
|
||
|
||
// //取表体最大行数
|
||
// int tol = this.Model.GetEntryRowCount(FEntity_nm);
|
||
|
||
// for (int i = 0; i < tol; i++)
|
||
// {
|
||
// DynamicObject fgt = this.View.Model.GetValue("F_SCNO", i) as DynamicObject;
|
||
// string rwdID = fgt["ID"].ToString();
|
||
|
||
// DynamicObject fgt1 = this.View.Model.GetValue("F_DJGWID", i) as DynamicObject;
|
||
// string gxID = fgt1["Number"].ToString();
|
||
// string sl = this.Model.GetValue("F_FQTY").ToString();
|
||
// Double[] jg = tolsl(djno, rwdID, gxID, sl, isAdd);
|
||
// if (jg[0] == 1)
|
||
// {
|
||
// isok = false;
|
||
// this.View.ShowErrMessage("第" + (i + 1).ToString() + "行超过订单数" + jg[1].ToString() + "!");
|
||
// break;
|
||
// }
|
||
// }
|
||
// //个人计件
|
||
// DataTable tbgr = getGRJJ();
|
||
|
||
// }
|
||
// catch (Exception ex)
|
||
// { this.View.ShowMessage("验证数据时发生错误为:" + ex.Message); }
|
||
// return isok;
|
||
//}
|
||
//取集体计件数量
|
||
DataTable getJTJJ ()
|
||
{
|
||
ArrayList data1 = new ArrayList();
|
||
DataTable tb = new DataTable();
|
||
tb.Columns.Add("rwdID");
|
||
tb.Columns.Add("gxID");
|
||
tb.Columns.Add("sl");
|
||
|
||
try
|
||
{
|
||
|
||
string FEntity_nm = "F_GAT_Entity1";
|
||
//取表体最大行数
|
||
int tol = this.Model.GetEntryRowCount(FEntity_nm);
|
||
|
||
for (int i = 0; i < tol; i++)
|
||
{
|
||
DynamicObject fgt = this.View.Model.GetValue("F_SCNO", i) as DynamicObject;
|
||
string rwdID = fgt["ID"].ToString();
|
||
|
||
DynamicObject fgt1 = this.View.Model.GetValue("F_DJGWID", i) as DynamicObject;
|
||
string gxID = fgt1["Number"].ToString();
|
||
string sl = this.Model.GetValue("F_FQTY",i).ToString();
|
||
string p = rwdID + "*" + gxID;
|
||
if (data1.Contains(p) == false)
|
||
{
|
||
data1.Add(p);
|
||
DataRow nr = tb.NewRow();
|
||
nr[0] = rwdID;
|
||
nr[1] = gxID;
|
||
nr[2] = sl;
|
||
tb.Rows.Add(nr);
|
||
}
|
||
else
|
||
{
|
||
foreach (DataRow r2 in tb.Rows)
|
||
{
|
||
if (rwdID == r2["rwdID"].ToString() && gxID == r2["gxID"].ToString())
|
||
{
|
||
r2["sl"] = Convert.ToInt16(sl) + Convert.ToInt16(r2["sl"].ToString());
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
}
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{ this.View.ShowMessage("验证数据时发生错误为:" + ex.Message); }
|
||
return tb;
|
||
}
|
||
//取个人计件数据
|
||
DataTable getGRJJ()
|
||
{
|
||
//int index = this.View.Model.GetEntryCurrentRowIndex("你的单据体标识");
|
||
//DynamicObject obj = this.Model.DataObject;
|
||
//DynamicObjectCollection rows = obj["你的单据体ORM实体名"] as DynamicObjectCollection;
|
||
//rows[index];// 就是你要的
|
||
|
||
//取表体最大行数
|
||
//int tol = this.Model.GetEntryRowCount(FEntity_nm);
|
||
|
||
ArrayList data1 = new ArrayList();
|
||
DataTable tb = new DataTable();
|
||
tb.Columns.Add("rwdID");
|
||
tb.Columns.Add("gxID");
|
||
tb.Columns.Add("sl");
|
||
try
|
||
{
|
||
string ORM_NM = "GAT_DAY_GR_ZP";//你的单据体ORM实体名
|
||
DynamicObject obj = this.Model.DataObject;
|
||
DynamicObjectCollection rows = obj[ORM_NM] as DynamicObjectCollection;
|
||
int i = 0;
|
||
foreach (var r in rows)
|
||
{
|
||
|
||
DynamicObject fgt = r["F_SCNO1"] as DynamicObject;
|
||
string rwdID = fgt["ID"].ToString();
|
||
DynamicObject fgt1 = r["F_GWID"] as DynamicObject;
|
||
string gxID = fgt1["Number"].ToString();
|
||
string p = rwdID + "*" + gxID;
|
||
string sl = r["F_FQ1TY1"].ToString();
|
||
if (data1.Contains(p) == false)
|
||
{
|
||
data1.Add(p);
|
||
DataRow nr = tb.NewRow();
|
||
nr[0] = rwdID;
|
||
nr[1] = gxID;
|
||
nr[2] = sl;
|
||
tb.Rows.Add(nr);
|
||
}
|
||
else
|
||
{
|
||
foreach (DataRow r2 in tb.Rows)
|
||
{
|
||
if (rwdID == r2["rwdID"].ToString() && gxID == r2["gxID"].ToString())
|
||
{
|
||
int kk = Convert.ToInt16(sl) + Convert.ToInt16(r2["sl"].ToString());
|
||
r2["sl"] = kk;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}catch(Exception ex) { this.View.ShowMessage("组合表数据时发生错误为:" + ex.Message); }
|
||
return tb;
|
||
}
|
||
string[] tolsl(string djno,string rwdID,string gxID,string sl, int isAdd)
|
||
{
|
||
string[] isok = new string[2];
|
||
isok[0] = "0";
|
||
isok[1] = "0";
|
||
|
||
|
||
|
||
string sql = String.Format("exec hw_zp_yzsl '{0}',{1},{2},'{3}',{4}",djno, rwdID,gxID,sl,isAdd);
|
||
var dr1 = DBServiceHelper.ExecuteDynamicObject(this.Context, sql);
|
||
string jg = "0";
|
||
if (dr1.Count > 0)
|
||
jg = dr1[0][0].ToString();
|
||
|
||
if ( jg!="0") {
|
||
isok[0] = "1";
|
||
isok[1] = jg;
|
||
}
|
||
return isok;
|
||
}
|
||
//单据头菜单点击
|
||
//public override void BarItemClick(BarItemClickEventArgs e)
|
||
//{
|
||
// base.BarItemClick(e);
|
||
// //if (e.BarItemKey == "tbApprove" || e.BarItemKey == "tbSplitApprove")
|
||
// //{
|
||
// // fx_yscs(e, "1");
|
||
// //}else if(e.BarItemKey== "tbReject") {
|
||
// // fx_yscs(e, "0");
|
||
|
||
|
||
// //}
|
||
//}
|
||
//public override void AfterBarItemClick(AfterBarItemClickEventArgs e)
|
||
//{
|
||
// base.AfterBarItemClick(e);
|
||
// //if (e.BarItemKey == "tbReject")
|
||
// //{
|
||
// // //隐藏审核菜单
|
||
// // this.View.GetMainBarItem("tbApprove").Visible = false;
|
||
// // this.View.GetMainBarItem("tbSplitApprove").Visible = false;
|
||
// //}
|
||
//}
|
||
//public override void AfterBindData(EventArgs e)
|
||
//{
|
||
// base.AfterBindData(e);
|
||
|
||
|
||
//// var baseObj1 = this.Model.GetValue("FBT005");
|
||
// if (baseObj1.ToString() =="0")
|
||
// {
|
||
// var sSql = String.Format("exec hw_get_btbz");
|
||
// var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
|
||
// int i = 0;
|
||
// if (dr.Count > 0)
|
||
// {
|
||
// //string k = item[0].ToString();
|
||
// //this.Model.SetValue("F_YGNO3", item[0], i);
|
||
|
||
// this.Model.SetValue("FBT005", dr[0][1].ToString());
|
||
// this.View.UpdateView("FBT005");
|
||
// this.Model.SetValue("FBT006", dr[1][1].ToString());
|
||
// this.View.UpdateView("FBT006");
|
||
// this.Model.SetValue("FBT012", dr[2][1].ToString());
|
||
// this.View.UpdateView("FBT012");
|
||
|
||
|
||
|
||
// }
|
||
|
||
|
||
|
||
// }
|
||
|
||
|
||
//}
|
||
//反写已生产数据
|
||
void fx_yscs(BarItemClickEventArgs e,string sh)
|
||
{
|
||
string fbillno = this.View.Model.GetValue("FBillNo").ToString();
|
||
var sSql = String.Format("EXEC hw_zplr_fx_scdd " + fbillno + ","+sh);
|
||
var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
|
||
string t = "生产数量大于订单数量,不能审核!";
|
||
|
||
if (dr.Count > 0)
|
||
{
|
||
foreach (var item in dr)
|
||
{
|
||
string k = "生产订单:" + item["rwdNo"].ToString() + "|工序编号:" + item["gxNo"].ToString()
|
||
+ "|订单数:" + item["dds"].ToString() + "|已生产数:" + item["yscs"].ToString();
|
||
t = t + "\r\n" + k;
|
||
}
|
||
|
||
this.View.ShowMessage(t);
|
||
e.Cancel = true;
|
||
}
|
||
|
||
}
|
||
//点击单据体菜单
|
||
public override void EntryBarItemClick(BarItemClickEventArgs e)
|
||
{
|
||
base.BarItemClick(e);
|
||
if (e.BarItemKey == "tbPLYG")
|
||
{
|
||
//string t =this.View.Model.GetValue("F_CBM").ToString();
|
||
//string t = this.View.Model.DataObject["F_CBM"].ToString();
|
||
DynamicObject fgt = this.View.Model.GetValue("F_CBM") as DynamicObject;
|
||
string t = fgt["ID"].ToString();
|
||
add_data_stort(t);
|
||
}
|
||
|
||
}
|
||
void del_data(string FEntity_nm)
|
||
{
|
||
try
|
||
{
|
||
//取表体最大行数
|
||
int tol = this.Model.GetEntryRowCount(FEntity_nm);
|
||
tol--;
|
||
for (int i = tol; i > -1; i--)
|
||
{
|
||
this.View.Model.DeleteEntryRow(FEntity_nm, i); //先删除空行
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{ this.View.ShowMessage("删除表体数据时发生错误为:" + ex.Message); }
|
||
}
|
||
public void add_data_stort(string cs)
|
||
{
|
||
try
|
||
{
|
||
del_data("F_JTJJ");
|
||
var sSql = String.Format("EXEC hw_get_plyg " + cs);
|
||
var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
|
||
int i = 0;
|
||
if (dr.Count > 0)
|
||
{
|
||
this.View.Model.BatchCreateNewEntryRow("F_JTJJ", dr.Count);
|
||
}
|
||
foreach (var item in dr)
|
||
{
|
||
string k = item[0].ToString();
|
||
this.Model.SetValue("F_YGNO3", item[0], i);
|
||
//this.Model.SetValue("F_REM", "1", i);
|
||
i++;
|
||
}
|
||
}
|
||
catch (Exception ex) { this.View.ShowMessage("加表体数据时发生错误为:" + ex.Message); }
|
||
}
|
||
}
|
||
}
|