| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using Infragistics.Win.UltraWinGrid;
- using System.Collections;
- using CoreFS.CA06;using Pur.Entity;
- using Core.Mes.Client.Comm.Control;
- using Pur.Entity.ck;
- using com.hnshituo.pur.vo;
- using Core.Mes.Client.Comm.Tool;
- using Pur.configure;
- using Infragistics.Win;
- using Core.Mes.Client.Comm.Server;
- using Pur.Entity.pur_orderEntiy;
- using Pur.require_plan;
- using Pur.Entity.configureEntity;
- using Pur.Pop_upWindow;
- using Pur.PublicTools;
- using Pur.order;
- using Core.Mes.Client.Comm.Format;
- namespace Pur.ck
- {
- public partial class PurExcDeliveryNoticeManagement : FrmPmsBase
- {
- string strDataFlag = "0";
- public string basecode_pop = "";//物料大类编码
- public ArrayList listMatCode = new ArrayList();
- public ArrayList listMatName = new ArrayList();
- public ArrayList listOrderCol = new ArrayList();//选择的合同行
- public ArrayList listorder = new ArrayList();//权限控制
- public String suppCodeSel = "";//选择的供应商
- public String suppNameSel = "";//选择的供应商
- public PurExcDeliveryNoticeManagement()
- {
- InitializeComponent();
- this.IsLoadUserView = true;
- }
- /// <summary>
- /// 界面加载
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void PurExcDeliveryNoticeManagement_Load(object sender, EventArgs e)// 界面加载
- {
- //合同tab
- ck_isAllReq.Checked = false;
- Get_DropDownList();//加载下拉框
- txt_selectlocation.Visible = false;
- ultraGrid3.DisplayLayout.Bands[1].Columns["deliveryLocation"].EditorComponent = txt_selectlocation;
- //通知单tab
- ultraTabControl1.SelectedTab = ultraTabControl1.Tabs[0];
- ck_ctime.Checked = true;
- Ck_Etime.Checked = false;
- txt_createTime.Value = DateTime.Now.AddMonths(-1);
- txt_endTime.Value = DateTime.Now.AddDays(2);
- txt_CreateTimeS.Value = DateTime.Now.AddMonths(-1);
- txt_CreateTimeE.Value = DateTime.Now.AddDays(2);
- txt_PlanedShipDateE.Value = DateTime.Now.AddDays(1);
- txt_PlanedShipDateS.Value = DateTime.Now.AddMonths(-1);
- txt_PlanedShipDateE.Enabled = false;
- txt_PlanedShipDateS.Enabled = false;
- txt_Allocation_rule.SelectedIndex = 1;//交期优先
- //grid可编辑设置
- //ultraGrid1.DisplayLayout.Bands[0].Override.AllowUpdate = DefaultableBoolean.False;
- ultraGrid2.DisplayLayout.Bands[0].Override.AllowUpdate = DefaultableBoolean.False;
- ultraGrid2.DisplayLayout.Bands[1].Override.AllowUpdate = DefaultableBoolean.False;
- GridHelper.SetExcludeColumnsActive(ultraGrid4.DisplayLayout.Bands[0], new string[] { "CHK" });
- GridHelper.SetExcludeColumnsActive(ultraGrid5.DisplayLayout.Bands[0], new string[] { "CHK" });
- GridHelper.SetExcludeColumnsActive(ultraGrid3.DisplayLayout.Bands[0], new string[] { "CHK", "deleteuserid" });
- GridHelper.SetExcludeColumnsActive(ultraGrid3.DisplayLayout.Bands[1], new string[] { "CHK", "createQty", "deliveryLocation"});
- GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0], new string[] { "CHK" });
- //接收方式
- DataTable dt5 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1101" }, this.ob);
- this.ultraGrid3.DisplayLayout.ValueLists.Add("checkList1");
- foreach (DataRow row in dt5.Rows)
- {
- if (row["validflag"].ToString().Trim() == "1")
- {
- this.ultraGrid3.DisplayLayout.ValueLists["checkList1"].ValueListItems.Add(row["baseCode"], row["baseName"].ToString());
- }
- }
- this.ultraGrid3.DisplayLayout.ValueLists["checkList1"].DisplayStyle = ValueListDisplayStyle.DisplayText;
- this.ultraGrid3.DisplayLayout.Bands[0].Columns["deleteuserid"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
- this.ultraGrid3.DisplayLayout.Bands[0].Columns["deleteuserid"].ValueList = this.ultraGrid3.DisplayLayout.ValueLists["checkList1"];
- ultraExpandableGroupBox1.Expanded = false;
- EntityHelper.ShowGridCaption<PreTrackNoticeEntity>(ultraGrid6.DisplayLayout.Bands[0]);
- //加载数据权限控制参数
- // strDataFlag = this.execute<string>("com.hnshituo.pur.utils.service.UtilsService", "getRoleDataFlag", new object[] { UserInfo.GetUserID(), "Pur.ck.PurExcDeliveryNoticeManagement" });
- // ultraGrid5.Visible = false;
- //加载数据
- //Get_PurexcdeliverynoticeM(0);
- }
- /// <summary>
- /// toolbar初始化
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void PurExcDeliveryNoticeManagement_Shown(object sender, EventArgs e)// toolbar初始化
- {
- //if (toolMenu.Toolbars[0].Tools.Exists("doQuery")) { toolMenu.Toolbars[0].Tools["doQuery"].InstanceProps.Visible = DefaultableBoolean.True; }
- //if (toolMenu.Toolbars[0].Tools.Exists("doCreate")) { toolMenu.Toolbars[0].Tools["doCreate"].InstanceProps.Visible = DefaultableBoolean.False; }
- //if (toolMenu.Toolbars[0].Tools.Exists("cancelCreate")) { toolMenu.Toolbars[0].Tools["cancelCreate"].InstanceProps.Visible = DefaultableBoolean.True; }
- //if (toolMenu.Toolbars[0].Tools.Exists("doExcel")) { toolMenu.Toolbars[0].Tools["doExcel"].InstanceProps.Visible = DefaultableBoolean.True; }
- //if (toolMenu.Toolbars[0].Tools.Exists("doExit")) { toolMenu.Toolbars[0].Tools["doExit"].InstanceProps.Visible = DefaultableBoolean.True; }
- this.ToolBarItemEnable(this, "doQuery", true);
- this.ToolBarItemEnable(this, "doCreate", true);
- this.ToolBarItemEnable(this, "doCreateForce", true);
- this.ToolBarItemEnable(this, "cancelCreate", false);
- this.ToolBarItemEnable(this, "doCreateSub", false);
- this.ToolBarItemEnable(this, "doIssue", false);
- this.ToolBarItemEnable(this, "doUnIssue", false);
- this.ToolBarItemEnable(this, "doUpdate", false);
- this.ToolBarItemEnable(this, "doExit", true);
- }
- #region toolbar工具栏
- /// <summary>
- /// 菜单栏
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="ToolbarKey"></param>
- public override void ToolBar_Click(object sender, string ToolbarKey)
- {
- switch (ToolbarKey)
- {
- case "doQuery": //刷新
- Get_PurexcdeliverynoticeM(0);//点击查询
- break;
- case "doCreate": // 编制通知单
- Add_PurexcdeliverynoticeM("0");
- break;
- case "doCreateForce": // 编制通知单
- Add_PurexcdeliverynoticeM("1");
- break;
- case "doCreateSub": // 编制送货单
- Add_PurexcdeliverySubM();
- break;
- case "cancelCreate": // 撤销
- Del_PurexcdeliverynoticeM();
- break;
- case "doIssue": // 下发
- doIssue();
- break;
- case "doUnIssue": // 取消下发
- doUnIssue();
- break;
- case "doUpdate": // 修改
- doUpdate();
- break;
- case "doExcel": // 导出Excel
- doExcel();
- break;
- case "doExit": // 退出
- this.Close();
- break;
- }
- }
- private void doUpdate()
- {
- PreTrackNoticeEntity preTrackNoticeEntity = new PreTrackNoticeEntity();
- UltraGridRow row = this.ultraGrid6.ActiveRow;
- ArrayList array = new ArrayList();
- preTrackNoticeEntity.IndexCode = row.Cells["indexCode"].Text.Trim();
- preTrackNoticeEntity.NoticeNo = row.Cells["noticeNo"].Text.Trim();
- preTrackNoticeEntity.ContractNo = row.Cells["contractNo"].Text.Trim();
- preTrackNoticeEntity.IndexMatterName = row.Cells["IndexMatterName"].Text.Trim();
- string json = JSONFormat.Format(preTrackNoticeEntity);
- array.Add(json);
- CoreClientParam ccp = new CoreClientParam();
- ccp.ServerName = "com.hnshituo.pur.configure.service.impl.PreTrackNoticeService";
- ccp.MethodName = "updateIndexName";
- ccp.ServerParams = new object[] { array };
- ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
- if (ccp.ReturnCode != -1)
- {
- MessageUtil.ShowTips("修改成功!");
- Get_PurexcdeliverynoticeM(0);
- }
- else
- {
- throw new Exception("服务端处理失败!");
- }
- }
- private void doUnIssue()
- {
- PreTrackNoticeEntity preTrackNoticeEntity = new PreTrackNoticeEntity();
- UltraGridRow row = this.ultraGrid6.ActiveRow;
- ArrayList array = new ArrayList();
- preTrackNoticeEntity.IndexCode = row.Cells["indexCode"].Text.Trim();
- preTrackNoticeEntity.NoticeNo = row.Cells["noticeNo"].Text.Trim();
- preTrackNoticeEntity.ContractNo = row.Cells["contractNo"].Text.Trim();
- preTrackNoticeEntity.UpdateManNo = "cx";
- preTrackNoticeEntity.UpdateManName = UserInfo.GetUserName() + "取消下发";
- string json = JSONFormat.Format(preTrackNoticeEntity);
- array.Add(json);
- CoreClientParam ccp = new CoreClientParam();
- ccp.ServerName = "com.hnshituo.pur.configure.service.impl.PreTrackNoticeService";
- ccp.MethodName = "delete";
- ccp.ServerParams = new object[] { array };
- ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
- if (ccp.ReturnCode != -1)
- {
- MessageUtil.ShowTips("取消下发成功!");
- Get_PurexcdeliverynoticeM(0);
- }
- else {
- throw new Exception("服务端处理失败!");
- }
- }
- private void doIssue()
- {
- PreTrackNoticeEntity preTrackNoticeEntity = new PreTrackNoticeEntity();
- UltraGridRow row = this.ultraGrid1.ActiveRow;
- RowsCollection rows = ultraGrid2.Rows;
- ArrayList array = new ArrayList();
- foreach (var item in rows)
- {
- preTrackNoticeEntity.IndexCode = item.Cells["noticeLineSqe"].Text.Trim();
- preTrackNoticeEntity.MatterNo = item.Cells["itemCode"].Text.Trim();
- preTrackNoticeEntity.MatterName = item.Cells["itemName"].Text.Trim();
- preTrackNoticeEntity.ContractNo = item.Cells["orderLineSqe"].Text.Trim();
- preTrackNoticeEntity.CustomerSupplierNo = row.Cells["suppCode"].Text.Trim();
- preTrackNoticeEntity.CustomerSupplierName = row.Cells["suppName"].Text.Trim();
- //preTrackNoticeEntity.ReceivingUintName = "";
- //preTrackNoticeEntity.ReceivingUintNo = "";
- preTrackNoticeEntity.MeterTypeNo = "001006001";
- preTrackNoticeEntity.MeterTypeName = "采购进厂";
- preTrackNoticeEntity.LoadPointName = row.Cells["deliveryLocation"].Text.Trim();
- preTrackNoticeEntity.LoadPointNo = row.Cells["deliveryLocationCode"].Text.Trim();
- preTrackNoticeEntity.ValueFlag = "0";
- preTrackNoticeEntity.CreateManNo = "cx";
- preTrackNoticeEntity.CreateManName = UserInfo.GetUserName();
- string json = JSONFormat.Format(preTrackNoticeEntity);
- List<PreTrackNoticeEntity> data = EntityHelper.GetData<PreTrackNoticeEntity>(
- "com.hnshituo.pur.configure.service.impl.PreTrackNoticeService.query",
- new Object[] { json }, ob);
- if (data.Count > 0)
- {
- MessageUtil.ShowTips(item.Cells["orderLineSqe"].Text.Trim() + "已下发!");
- return;
- }
- array.Add(json);
- }
- CoreClientParam ccp = new CoreClientParam();
- ccp.ServerName = "com.hnshituo.pur.configure.service.impl.PreTrackNoticeService";
- ccp.MethodName = "insert";
- ccp.ServerParams = new object[] { array };
- ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
- if (ccp.ReturnCode != -1)
- {
- MessageUtil.ShowTips("下发成功!");
- }
- else
- {
- throw new Exception("服务端处理失败!");
- }
- }
- private List<UltraGridRow> UltraGridGetCHKRows(UltraGrid grid, string columnName = "CHK")
- {
- grid.UpdateData();
- List<UltraGridRow> list = new List<UltraGridRow>();
- RowsCollection rows = grid.Rows;
- foreach (var item in rows)
- {
- try
- {
- if (Convert.ToBoolean(item.Cells[columnName].Value) == true && item.Hidden == false && item.IsFilteredOut == false)
- {
- list.Add(item);
- }
- }
- catch { }
- }
- return list;
- }
- /// <summary>
- /// 编制送货单
- /// </summary>
- private void Add_PurexcdeliverySubM()// 编制送货单
- {
- try
- {
- List<UltraGridRow> arr = UltraGridGetCHKRows(ultraGrid1);
- if (arr.Count <= 0)
- {
- MessageUtil.ShowTips("请选择通知单行!");
- return;
- }
- foreach (UltraGridRow ugr in arr)
- {
- String strNoticeId = ugr.Cells["NoticeId"].Value.ToString().Trim();
- if (String.IsNullOrEmpty(strNoticeId))
- {
- MessageUtil.ShowTips("选择的通知单行号:"+ strNoticeId + "为空!");
- return;
- }
- if (testNoticeStatus(strNoticeId, 2) == false)
- {
- continue;
- }
- ExcCreateDeliveryM frm = new ExcCreateDeliveryM(this.ob, strNoticeId);
- frm.ShowDialog();
- if (frm.Tips == 1)
- {
- Get_PurexcdeliverynoticeM(0);
- }
- }
-
- }
- catch (Exception e)
- {
- MessageUtil.ShowTips("操作失败:" + e);
- return;
- }
- }
- /// <summary>
- /// 删除
- /// </summary>
- private void Del_PurexcdeliverynoticeM()//撤销
- {
- try
- {
- UltraGridRow uge = ultraGrid1.ActiveRow;
- if (uge == null)
- {
- MessageUtil.ShowTips("请选择通知单行!");
- return;
- }
- String strNoticeId = uge.Cells["NoticeId"].Value.ToString().Trim();
- if (String.IsNullOrEmpty(strNoticeId))
- {
- MessageUtil.ShowTips("选择的通知单行号为空!");
- return;
- }
- ExcDeliveryNoticeM EdnM = new ExcDeliveryNoticeM();
- if (testNoticeStatus(strNoticeId,1) == false)
- {
- return;
- }
- EdnM.NoticeId = strNoticeId;
- EdnM.Validflag = "0";
- EdnM.Status = "9";
- EdnM.DeleteName = UserInfo.GetUserName();
- EdnM.DeleteUserid = UserInfo.GetUserID();
- EdnM.DeleteTime = DateTime.Now;
- if (MessageUtil.ShowYesNoAndQuestion("确定撤销发货通知单:" + EdnM.NoticeId + "?") != DialogResult.Yes)
- {
- return;
- }
- CoreResult crt = this.execute<CoreResult>("com.hnshituo.pur.ck.service.ExcDeliveryNoticeMService", "del_NoticeM", new object[] { EdnM });
- if (crt.Resultcode != 0)
- {
- MessageUtil.ShowTips("操作失败:" + crt.Resultmsg);
- return;
- }
- MessageUtil.ShowTips("操作成功!");
- Get_PurexcdeliverynoticeM(0);
- }
- catch (Exception e)
- {
- MessageUtil.ShowTips("操作失败:" + e);
- return;
- }
- }
- /// <summary>
- /// 导出发货通知单头
- /// </summary>
- private void doExcel()
- {
- try
- {
- if (ultraTabControl1.SelectedTab.Key.Equals("0"))
- {
- this.Cursor = Cursors.WaitCursor;
- ArrayList alUltraGrid = new ArrayList();
- alUltraGrid.Add(ultraGrid1);
- alUltraGrid.Add(ultraGrid2);
- ultraGrid2.DisplayLayout.Bands[1].Hidden = true;
- ArrayList alSheeft = new ArrayList();
- alSheeft.Add("发货通知单头表");
- alSheeft.Add("发货通知单行表");
- if (ultraGrid1.Rows.Count > 0)
- {
- GridHelper.ulGridToExcel(alUltraGrid, alSheeft, "发货通知单");//导出excel
- }
- }
- else
- {
- this.Cursor = Cursors.WaitCursor;
- ArrayList alUltraGrid = new ArrayList();
- alUltraGrid.Add(ultraGrid3);
- ArrayList alSheeft = new ArrayList();
- alSheeft.Add("合同需求关系");
- if (ultraGrid1.Rows.Count > 0)
- {
- GridHelper.ulGridToExcel(alUltraGrid, alSheeft, "合同需求关系");//导出excel
- }
- }
- }
- catch (Exception e)
- {
- MessageUtil.ShowTips("导出失败" + e.Message);
- }
- finally
- {
- ultraGrid2.DisplayLayout.Bands[1].Hidden = false;
- this.Cursor = Cursors.Default;
- }
- }//导出发货通知单头
- /// <summary>
- /// 编制发货通知
- /// </summary>
- private void Add_PurexcdeliverynoticeM(string flag)//编制
- {
- try
- {
- this.Cursor = Cursors.WaitCursor;
- if (listOrderCol.Count<=0)
- {
- MessageUtil.ShowTips("请勾选合同!");
- return;
- }
- String strOrderId = publicPms.ArrayListToString(listOrderCol);
- String strSuppCode = suppCodeSel;
- String strSuppName = suppNameSel;
- if (String.IsNullOrEmpty(strOrderId))
- {
- MessageUtil.ShowTips("合同号为空!");
- return;
- }
- if (testOrderStatus(listOrderCol) == false)
- {
- return;
- }
- if (testInPut() == false)
- {
- return;
- }
- ultraGrid3.UpdateData();
- //新合同编制通知单
- if (listOrderCol[0].ToString().StartsWith("HT"))
- {
- //验证是否编制有效数量
- int j = 0;
- //foreach (UltraGridRow uge in ultraGrid1.Rows.GetRowEnumerator(GridRowType.DataRow, null, null))
- foreach (UltraGridRow uge in ultraGrid3.Rows)
- {
- if (!uge.HasParent() && Convert.ToBoolean(uge.Cells["CHK"].Value) == true && Convert.ToDouble(uge.Cells["createQty"].Value) > 0)
- {
- if (Convert.ToDouble(uge.Cells["canUseQty"].Value) < Convert.ToDouble(uge.Cells["createQty"].Value))
- {
- MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "编制量不能大于可编制通知量!");
- return;
- }
-
- j = j + 1;
- int i = 0;
- foreach (UltraGridRow ugc in uge.ChildBands[0].Rows)
- {
- if (ugc.GetCellValue("Id").ToString().Trim() == "")
- {
- MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "下的第:" + ugc.Index + "个接收需求行主键为空!");
- return;
- }
- if (ugc.GetCellValue("mrLineId").ToString().Trim() == "")
- {
- MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "下的第:" + ugc.Index + "个接收需求行号为空!");
- return;
- }
- if (ugc.HasParent() && Convert.ToBoolean(ugc.Cells["CHK"].Value) == true && Convert.ToDouble(ugc.Cells["createQty"].Value) > 0)
- {
- if (Convert.ToDouble(ugc.Cells["canUseQty"].Value) < Convert.ToDouble(ugc.Cells["createQty"].Value))
- {
- MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "下的接收需求行:" + ugc.GetCellValue("mrLineId") + "编制量不能大于可编制通知量!");
- return;
- }
- if (ugc.GetCellValue("deliveryLocationCode").ToString().Trim() == "")
- {
- MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "下的接收需求行:" + ugc.GetCellValue("mrLineId") + "需选择交货地址!");
- return;
- }
- i = i + 1;
- }
- }
- if (i == 0)
- {
- MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "编制的需求条数为0或者未编制有效数量");
- return;
- }
- }
- }
- if (j == 0)
- {
- MessageUtil.ShowTips("合同行编制条数为0或者合同行未编制有效数量");
- return;
- }
- //准备数据并提交
- //按照list<需求行>和没有Id和地址的通知单头信息提交
- List<RequireReceive> listR = new List<RequireReceive>();
- foreach (UltraGridRow uge in ultraGrid3.Rows)
- {
- if (!uge.HasParent() && Convert.ToBoolean(uge.Cells["CHK"].Value) == true && Convert.ToDouble(uge.Cells["createQty"].Value) > 0)
- {
- String strOrderLineId = uge.GetCellValue("OrderLineSqe").ToString();
- foreach (UltraGridRow ugc in uge.ChildBands[0].Rows)
- {
- if (ugc.HasParent() && Convert.ToBoolean(ugc.Cells["CHK"].Value) == true && Convert.ToDouble(ugc.Cells["createQty"].Value) > 0)
- {
- RequireReceive Rr = new RequireReceive();
- Rr.Id = ugc.GetCellValue("Id").ToString().Trim();
- Rr.Qty = Convert.ToDouble(ugc.GetCellValue("createQty"));//记录生成数量
- Rr.DeliveryLocationCode = ugc.GetCellValue("deliveryLocationCode").ToString().Trim();
- Rr.Purtype = uge.GetCellValue("deleteuserid").ToString().Trim();
- DeliveryLocationDz cRt = this.execute<DeliveryLocationDz>("com.hnshituo.pur.configure.service.DeliveryLocationService", "findById", new object[] { Rr.DeliveryLocationCode });
- if (cRt == null)
- {
- MessageUtil.ShowTips("未发现地址:" + Rr.DeliveryLocationCode + "信息,或请重新选择地址");
- return;
- }
- if (cRt.IsJit == "1" )
- {
- if (Rr.Purtype != "110107")
- {
- MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "选择的为JIT交付地址,请选择JIT的接收方式");
- return;
- }
- }
- if (cRt.IsJit == "0")
- {
- if (Rr.Purtype== "110107")
- {
- MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "选择的为非JIT交付地址,请选择非JIT的接收方式");
- return;
- }
- }
- Rr.Remark = strOrderLineId;//记录所属合同行号
- listR.Add(Rr);
- }
- }
- }
- }
- ExcDeliveryNoticeM nm = new ExcDeliveryNoticeM();
- nm.CreateName = UserInfo.GetUserName();
- nm.CreateUserid = UserInfo.GetUserID();
- nm.CreateTime = DateTime.Now;
- nm.SuppCode = strSuppCode;
- nm.SuppName = strSuppName;
- nm.OrderId = strOrderId;
- nm.Status = "1";
- nm.Remark = txt_remark.Text.ToString().Trim();
- nm.PlanedDeliveryDate = Convert.ToDateTime(txt_MRPERIODEND.Value);//交期-止
- nm.PlanedShipDate = Convert.ToDateTime(txt_MRPERIODSTART.Value);//交期-起
- nm.DeliveryCondition = txt_deliveryCondition.Value == null ? "" : txt_deliveryCondition.Value.ToString();
- nm.DeliveryType = txt_deliveryType.Value == null ? "" : txt_deliveryType.Value.ToString();
- nm.Validflag = "1";
- nm.BuyerDeptCode = UserInfo.GetDeptid();
- if (MessageUtil.ShowYesNoAndQuestion("确定生成发货通知单?") != DialogResult.Yes)
- {
- return;
- }
- CoreResult crt = this.execute<CoreResult>("com.hnshituo.pur.ck.service.ExcDeliveryNoticeRpRService", "doInsert_Notice", new object[] { nm, listR, flag });
- if (crt.Resultcode != 0)
- {
- MessageUtil.ShowTips("生成失败" + crt.Resultmsg);
- return;
- }
- MessageUtil.ShowTips(crt.Resultmsg);
- Get_PurexcdeliverynoticeM(0);
- publicPms.doActiveSelRow(ultraGrid4, "orderId", strOrderId);
- }
- else
- {
- //验证是否编制有效数量
- int j = 0;
- foreach (UltraGridRow uge in ultraGrid3.Rows)
- {
- if (!uge.HasParent() && Convert.ToBoolean(uge.Cells["CHK"].Value) == true && Convert.ToDouble(uge.Cells["createQty"].Value) > 0)
- {
- if (Convert.ToDouble(uge.Cells["canUseQty"].Value) < Convert.ToDouble(uge.Cells["createQty"].Value))
- {
- MessageUtil.ShowTips("合同物料:" + uge.GetCellValue("itemName") + "编制量不能大于可编制通知量!");
- return;
- }
- j = j + 1;
- int i = 0;
- foreach (UltraGridRow ugc in uge.ChildBands[0].Rows)
- {
- if (ugc.HasParent() && Convert.ToBoolean(ugc.Cells["CHK"].Value) == true && Convert.ToDouble(ugc.Cells["createQty"].Value) > 0)
- {
- if (ugc.GetCellValue("deliveryLocationCode").ToString().Trim() == "")
- {
- MessageUtil.ShowTips("合同物料:" + uge.GetCellValue("itemName") + "请选择交付地址");
- return;
- }
- if (ugc.GetCellValue("DELETEUSERID").ToString().Trim() == "")
- {
- MessageUtil.ShowTips("合同物料:" + uge.GetCellValue("itemName") + "请选择需求单位");
- return;
- }
- i = i + 1;
- }
- }
- if (i == 0)
- {
- MessageUtil.ShowTips("合同物料:" + uge.GetCellValue("itemName") + "编制的需求条数为0或者未编制有效数量");
- return;
- }
- }
- }
- if (j == 0)
- {
- MessageUtil.ShowTips("合同行编制条数为0或者合同行未编制有效数量");
- return;
- }
- //准备数据并提交
- //按照list<需求行>和没有Id和地址的通知单头信息提交
- List<RequireReceive> listR = new List<RequireReceive>();
- foreach (UltraGridRow uge in ultraGrid3.Rows)
- {
- if (!uge.HasParent() && Convert.ToBoolean(uge.Cells["CHK"].Value) == true && Convert.ToDouble(uge.Cells["createQty"].Value) > 0)
- {
- String strOrderLineId = uge.GetCellValue("OrderLineSqe").ToString();
- foreach (UltraGridRow ugc in uge.ChildBands[0].Rows)
- {
- if (ugc.HasParent() && Convert.ToBoolean(ugc.Cells["CHK"].Value) == true && Convert.ToDouble(ugc.Cells["createQty"].Value) > 0)
- {
- RequireReceive Rr = new RequireReceive();
- Rr.Qty = Convert.ToDouble(ugc.GetCellValue("createQty"));//记录生成
- Rr.DeliveryLocationCode = ugc.GetCellValue("deliveryLocationCode").ToString().Trim();
- Rr.DeliveryLocation = ugc.GetCellValue("deliveryLocation").ToString().Trim();
- Rr.Remark = strOrderLineId;//记录所属合同行号
- Rr.ItemAttr = ugc.GetCellValue("DELETEUSERID").ToString().Trim();//需求单位
- Rr.Purtype = uge.GetCellValue("deleteuserid").ToString().Trim();
- DeliveryLocationDz cRt = this.execute<DeliveryLocationDz>("com.hnshituo.pur.configure.service.DeliveryLocationService", "findById", new object[] { Rr.DeliveryLocationCode });
- if (cRt == null)
- {
- MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "未发现地址:" + Rr.DeliveryLocation + "信息,或请重新选择地址");
- return;
- }
- if (cRt.IsJit == "1")
- {
- if (Rr.Purtype != "110107")
- {
- MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "选择的为JIT交付地址,请选择JIT的接收方式");
- return;
- }
- }
- if (cRt.IsJit == "0")
- {
- if (Rr.Purtype == "110107")
- {
- MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "选择的为非JIT交付地址,请选择非JIT的接收方式");
- return;
- }
- }
- listR.Add(Rr);
- }
- }
- }
- }
- ExcDeliveryNoticeM nm = new ExcDeliveryNoticeM();
- nm.CreateName = UserInfo.GetUserName();
- nm.CreateUserid = UserInfo.GetUserID();
- nm.CreateTime = DateTime.Now;
- nm.SuppCode = strSuppCode;
- nm.SuppName = strSuppName;
- nm.OrderId = strOrderId;
- nm.Status = "1";
- nm.Remark = txt_remark.Text.ToString().Trim();
- nm.PlanedDeliveryDate = Convert.ToDateTime(txt_MRPERIODEND.Value);//交期-止
- nm.PlanedShipDate = Convert.ToDateTime(txt_MRPERIODSTART.Value);//交期-起
- nm.DeliveryCondition = txt_deliveryCondition.Value == null ? "" : txt_deliveryCondition.Value.ToString();
- nm.DeliveryType = txt_deliveryType.Value == null ? "" : txt_deliveryType.Value.ToString();
- nm.Validflag = "1";
- nm.BuyerDeptCode = UserInfo.GetDeptid();
- if (MessageUtil.ShowYesNoAndQuestion("确定生成发货通知单?") != DialogResult.Yes)
- {
- return;
- }
- CoreResult crt = this.execute<CoreResult>("com.hnshituo.pur.ck.service.ExcDeliveryNoticeRpRService", "doInsert_Notice_OldOrder", new object[] { nm, listR, flag });
- if (crt.Resultcode != 0)
- {
- MessageUtil.ShowTips("生成失败" + crt.Resultmsg);
- return;
- }
- MessageUtil.ShowTips(crt.Resultmsg);
- Get_PurexcdeliverynoticeM(0);
- publicPms.doActiveSelRow(ultraGrid4, "orderId", strOrderId);
- }
- }
- catch (Exception e)
- {
- Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("生成失败" + e);
- }
- finally
- {
- this.Cursor = Cursors.Default;
- }
- }
- /// <summary>
- /// 刷新
- /// </summary>
- private void Get_PurexcdeliverynoticeM(int p)//查询通知单和待生成合同
- {
- try
- {
- this.Cursor = Cursors.WaitCursor;
- clearInput();
- //加载通知单
- ExcDeliveryNoticeM EdnM = new ExcDeliveryNoticeM();
- EdnM.OrderId = txt_OrderId.Text.ToString().Trim();
- EdnM.NoticeId = txt_NoticeId.Text.ToString().Trim();
- if (ck_ctime.Checked)
- {
- if (txt_CreateTimeS.Text != "")
- {
- EdnM.CreateTime = Convert.ToDateTime(txt_CreateTimeS.Value);
- }
- if (txt_CreateTimeE.Text != "")
- {
- EdnM.DeleteTime = Convert.ToDateTime(txt_CreateTimeE.Value);
- }
- }
- if (Ck_Etime.Checked)
- {
- if (txt_PlanedShipDateS.Text != "")
- {
- EdnM.PlanedShipDate = Convert.ToDateTime(txt_PlanedShipDateS.Value);
- }
- if (txt_PlanedShipDateE.Text != "")
- {
- EdnM.PlanedDeliveryDate = Convert.ToDateTime(txt_PlanedShipDateE.Value);
- }
- }
- //初始化和撤销时加载
- //if (p == 0)
- //{
- // dataSet3.Clear();
- // //加载供应商dropdown
- // OrderM Odm = new OrderM();
- // Odm.DeleteName = "0";//待编制的
- // Odm.Validflag = "1";
- // Odm.ValidDataPurviewIds = this.ValidDataPurviewIds;//角色的数据权限
- // DataTable dt1 = this.execute<DataTable>("com.hnshituo.pur.order.service.OrderMService", "find_canUseOrderM", new object[] { Odm, 0, 0 });
- // if (dt1 != null)
- // {
- // if (dt1.Rows.Count >= 1)
- // {
- // DataView dv = new DataView(dt1);
- // DataTable dt_supp = dv.ToTable(true, new string[] { "suppName", "suppCode" });
- // publicPms.FilComboboxAdd(COP_SuppName, dt_supp, "suppCode", "suppName", "", true, "全部", "");
- // COP_SuppName.SelectedIndex = 0;
- // }
- // }
-
- // listorder.Clear();
- // foreach (DataRow row in dt1.Rows)
- // {
- // listorder.Add(row["orderId"]);
- // }
- // if (listorder.Count > 0)
- // {
- // //加载合同物料dropdown
- // OrderC odC = new OrderC();
- // odC.DeleteName = "0";//待编制合同行
- // odC.Validflag = "1";
- // odC.OrderIdCol = (String[])listorder.ToArray(typeof(string));//权限控制
- // DataTable dt2 = this.execute<DataTable>("com.hnshituo.pur.order.service.OrderCService", "doQueryOrderC", new object[] { odC });
- // if (dt2 != null)
- // {
- // if (dt2.Rows.Count >= 1)
- // {
- // DataView dv1 = new DataView(dt2);
- // DataTable dt_item = dv1.ToTable(true, new string[] { "itemCode", "itemName" });
- // GridHelper.CopyDataToDatatable(dt_item, dataTable7, true);
- // }
- // }
- // }
- //}
-
- if (ultraTabControl1.ActiveTab.Key == "1")
- {
- dataSet2.Clear();
- String strSuppCode = COP_SuppName.Value == null ? "" : COP_SuppName.Value.ToString().Trim();
- OrderM Odm1 = new OrderM();
- Odm1.OrderId = COP_OrderId.Text.Trim();
- Odm1.SuppName = txt_suppName_1.Text.Trim();
- //Odm1.SuppCode = strSuppCode;
- Odm1.DeleteName = "0";
- Odm1.Validflag = "1";
- Odm1.ValidDataPurviewIds = this.ValidDataPurviewIds;
- //Odm1.ItemCodeCol = (String[])listMatCode.ToArray(typeof(string));
- Odm1.UpdateUserid = txt_itemName_1.Text.Trim();
- Odm1.StartDate = Convert.ToDateTime(txt_createTime.Value);
- Odm1.EndDate = Convert.ToDateTime(txt_endTime.Value);
- DataTable dt11 = this.execute<DataTable>("com.hnshituo.pur.order.service.OrderMService", "find_canUseOrderM", new object[] { Odm1, 0, 0 });
- GridHelper.CopyDataToDatatable(dt11, dataTable6, true);
- GridHelper.RefreshAndAutoSize(ultraGrid4);
- }
- else if (ultraTabControl1.ActiveTab.Key == "0")
- {
- dataSet1.Clear();
- EdnM.ValidDataPurviewIds = this.ValidDataPurviewIds;
- EdnM.UpdateUserid = txt_ItemCode.Text.Trim();
- EdnM.SuppName = basecode_pop;//物料类别
- EdnM.UpdateName = txt_itemName2.Text.Trim();
- DataTable dt = this.execute<DataTable>("com.hnshituo.pur.ck.service.ExcDeliveryNoticeMService", "find_Exc", new object[] { EdnM });
- GridHelper.CopyDataToDatatable(dt, dataTable1, true);
- GridHelper.RefreshAndAutoSize(ultraGrid1);
- }
- else if (ultraTabControl1.ActiveTab.Key == "2")
- {
- PreTrackNoticeEntity preTrackNoticeEntity = new PreTrackNoticeEntity();
- preTrackNoticeEntity.MatterName = ultraTextEditor1.Text.Trim();
- preTrackNoticeEntity.ContractNo = ultraTextEditor6.Text.Trim();
- preTrackNoticeEntity.CustomerSupplierName = ultraTextEditor2.Text.Trim();
- string json = JSONFormat.Format(preTrackNoticeEntity);
- string startTime = txt_startTime_n.Value.ToString("yyyy-MM-dd");
- string endTime = txt_endTime_n.Value.ToString("yyyy-MM-dd");
- List<PreTrackNoticeEntity> data = EntityHelper.GetData<PreTrackNoticeEntity>(
- "com.hnshituo.pur.configure.service.impl.PreTrackNoticeService.query",
- new Object[] { json, startTime, endTime }, ob);
- preTrackNoticeEntityBindingSource.DataSource = data;
- }
- }
- catch (Exception ex)
- {
- MessageUtil.ShowTips("加载数据异常:" + ex.Message);
- }
- finally
- {
- this.Cursor = Cursors.Default;
- }
- }
- #endregion
- #region 界面事件
- /// <summary>
- /// 激活通知单头
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void ultraGrid1_ClickCell(object sender, ClickCellEventArgs e)
- {
- getDetail();
- }
- /// <summary>
- /// 获取查询合同集合
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void ultraGrid4_CellChange(object sender, CellEventArgs e)
- {
- try
- {
- if (e.Cell.Column.Key == "CHK")
- {
- clearInput();
- dataTable5.Clear();
- dataTable4.Clear();
- listOrderCol.Clear();
- suppCodeSel = "";
- suppNameSel = "";
- ultraGrid4.UpdateData();
- int i = 0;
- foreach (UltraGridRow row in ultraGrid4.Rows)
- {
- if (Convert.ToBoolean(row.GetCellValue("CHK")) == true)
- {
- String strSuppCode = row.Cells["suppCode"].Value.ToString();
- String strSuppName = row.Cells["suppName"].Value.ToString();
- String strOrderId = row.Cells["orderId"].Value.ToString();
- if (!String.IsNullOrEmpty(strSuppCode))
- {
- if (i == 0)
- {
- suppCodeSel = strSuppCode;
- suppNameSel=strSuppName;
- }
- else
- {
- if (suppCodeSel != strSuppCode)
- {
- MessageUtil.ShowTips("请选择相同供应商的合同编制发货通知单!");
- e.Cell.Row.Cells["CHK"].Value = !Convert.ToBoolean(e.Cell.Row.GetCellValue("CHK"));
- return;
- }
- }
- //判断是否为同类合同
- if (i != 0)
- {
- if (strOrderId.StartsWith("HT") != listOrderCol[0].ToString().StartsWith("HT"))
- {
- MessageUtil.ShowTips("新旧合同不能混合编制通知单! 备注:HT开头的合同编号为新合同");
- return;
- }
- }
- listOrderCol.Add(strOrderId);
- i = i + 1;
- }
- }
- }
- if (this.ultraGrid4.Rows.AsQueryable()
- .Where(q => Convert.ToBoolean(q.GetCellValue("CHK")) == true
- && q.GetCellValue("OrderType").Equals("废钢采购(供应部)"))
- .GroupBy(a => a.GetCellValue("OrderId"))
- .Count() > 1)
- {
- MessageUtil.ShowTips("废钢值允许单个合同进行编制!");
- e.Cell.Row.Cells["CHK"].Value = !Convert.ToBoolean(e.Cell.Row.GetCellValue("CHK"));
- return;
- }
- txt_supp.Text = suppNameSel + "(" + suppCodeSel + ")";
- if (listOrderCol.Count > 0)
- {
- getOrderCAndCD(true);
- OrderM orderM = this.execute<OrderM>("com.hnshituo.pur.order.service.OrderMService", "findById", new object[] { listOrderCol[0]});
- txt_deliveryCondition.Value = orderM.DeliveryCondition;
- txt_deliveryType.Value = orderM.DeliveryType;
- }
- }
- }
- catch (Exception ex)
- {
- MessageUtil.ShowTips("查询送货单行信息失败:" + ex.Message);
- }
-
- }
- /// <summary>
- /// 物料大类弹窗
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void Basename_pop_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)//物料大类弹窗
- {
- FrmMatClassPop_ups PopMat = new FrmMatClassPop_ups(this.ob);
- PopMat.ShowDialog();
- if (PopMat.Basecode == null)
- return;
- Basename_pop.Text = PopMat.Basename;
- basecode_pop = PopMat.Basecode;
- }
- /// <summary>
- /// 物料编码弹窗
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void txt_ItemName_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)// 物料编码
- {
- ultraPopupControlContainer1.Show(ultraGroupBox7.PointToScreen(new Point(txt_itemName.Location.X, txt_itemName.Location.Y + 20)));
- //if (ultraGrid5.Visible == false)
- //{
- // ultraGrid5.Visible = true;
- //}
- //else
- //{
- // ultraGrid5.Visible = false;
- //}
- }
- /// <summary>
- /// 供应商弹窗
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void COP_SuppName_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)// 供应商弹窗
- {
- Supp Sp = new Supp();
- Sp.Validflag = "1";
- //DataTable dt = this.execute<DataTable>("com.hnshituo.pur.configure.service.SuppService", "find", new object[] { Sp, 0, 0 });
- frmSuppSel Sky = new frmSuppSel(this.ob);
- Sky.ShowDialog();
- if (Sky.strSUPP_CODE == null)
- return;
- COP_SuppName.Text = Sky.strSUPP_NAME.ToString().Trim();
- }
- /// <summary>
- /// 通知单创建时间控制
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void ck_ctime_CheckedChanged(object sender, EventArgs e)// 通知单创建时间控制
- {
- txt_CreateTimeS.Enabled = ck_ctime.Checked;
- txt_CreateTimeE.Enabled = ck_ctime.Checked;
- }
- /// <summary>
- /// 通知单发货时间控制
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void Ck_Etime_CheckedChanged(object sender, EventArgs e)// 通知单发货时间控制
- {
- txt_PlanedShipDateE.Enabled = Ck_Etime.Checked;
- txt_PlanedShipDateS.Enabled = Ck_Etime.Checked;
- }
- /// <summary>
- /// 控制交货行输入
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void ultraGrid3_CellChange(object sender, CellEventArgs e)//控制合同行和需求行编制行为
- {
- if(e.Cell.Row.HasParent())
- {
- //新合同
- if (listOrderCol[0].ToString().StartsWith("HT"))
- {
- if (e.Cell.Column.Key == "CHK" && e.Cell.Row.HasParent())
- {
- ultraGrid3.UpdateData();
- double sumCreateQty = 0;
- foreach (UltraGridRow row in e.Cell.Row.ParentRow.ChildBands[0].Rows)
- {
- if (Convert.ToBoolean(row.Cells["CHK"].Value) == true)
- {
- sumCreateQty = sumCreateQty + Convert.ToDouble(row.Cells["createQty"].Value);
- }
- }
- double maxCanUseQty_order = Convert.ToDouble(e.Cell.Row.ParentRow.Cells["canUseQty"].Value);
- if (maxCanUseQty_order < sumCreateQty)
- {
- MessageUtil.ShowTips("已超过该合同物料的最大可编制通知量!");
- e.Cell.Value = false;
- }
- else
- {
- e.Cell.Row.ParentRow.Cells["createQty"].Value = sumCreateQty;
- }
- }
- else if (e.Cell.Column.Key == "createQty")
- {
-
- double oldQty = Convert.ToDouble(e.Cell.Value);
- ultraGrid3.UpdateData();
- double newQty = Convert.ToDouble(e.Cell.Value);
- double maxCanUseQty_Req = Convert.ToDouble(e.Cell.Row.Cells["canUseQty"].Value);
- if (newQty > maxCanUseQty_Req)
- {
- MessageUtil.ShowTips("已超过该送货地址的最大可编制通知量!");
- e.Cell.Value = oldQty;
- return;
- }
- double sumCreateQty = 0;
- foreach (UltraGridRow row in e.Cell.Row.ParentRow.ChildBands[0].Rows)
- {
- if (Convert.ToBoolean(row.Cells["CHK"].Value) == true)
- {
- sumCreateQty = sumCreateQty + Convert.ToDouble(row.Cells["createQty"].Value);
- }
- }
- double maxCanUseQty_order = Convert.ToDouble(e.Cell.Row.ParentRow.Cells["canUseQty"].Value);
- if (maxCanUseQty_order < sumCreateQty)
- {
- MessageUtil.ShowTips("已超过合同可编制通知量!");
- e.Cell.Value = oldQty;
- }
- else
- {
- e.Cell.Row.ParentRow.Cells["createQty"].Value = sumCreateQty;
- }
- }
- }
- //旧合同
- else
- {
- if (e.Cell.Column.Key == "CHK" && e.Cell.Row.HasParent())
- {
- ultraGrid3.UpdateData();
- double sumCreateQty = 0;
- foreach (UltraGridRow row in e.Cell.Row.ParentRow.ChildBands[0].Rows)
- {
- if (Convert.ToBoolean(row.Cells["CHK"].Value) == true)
- {
- sumCreateQty = sumCreateQty + Convert.ToDouble(row.Cells["createQty"].Value == DBNull.Value ? 0 : row.Cells["createQty"].Value);
- }
- }
- double maxCanUseQty_order = Convert.ToDouble(e.Cell.Row.ParentRow.Cells["canUseQty"].Value);
- if (maxCanUseQty_order < sumCreateQty)
- {
- MessageUtil.ShowTips("已超过该合同物料的最大可编制通知量!");
- e.Cell.Value = false;
- }
- else
- {
- e.Cell.Row.ParentRow.Cells["createQty"].Value = sumCreateQty;
- }
- }
- else if (e.Cell.Column.Key == "createQty")
- {
-
- double oldQty = Convert.ToDouble(e.Cell.Value == DBNull.Value ? 0 : e.Cell.Value);
- ultraGrid3.UpdateData();
- double sumCreateQty = 0;
- foreach (UltraGridRow row in e.Cell.Row.ParentRow.ChildBands[0].Rows)
- {
- if (Convert.ToBoolean(row.Cells["CHK"].Value) == true)
- {
- sumCreateQty = sumCreateQty + Convert.ToDouble(row.Cells["createQty"].Value == DBNull.Value ? 0 : row.Cells["createQty"].Value);
- }
- }
- double maxCanUseQty_order = Convert.ToDouble(e.Cell.Row.ParentRow.Cells["canUseQty"].Value);
- if (maxCanUseQty_order < sumCreateQty)
- {
- MessageUtil.ShowTips("已超过合同可编制通知量!");
- e.Cell.Value = oldQty;
- }
- else
- {
- e.Cell.Row.ParentRow.Cells["createQty"].Value = sumCreateQty;
- }
- }
- }
- }
- e.Cell.Row.Activated = true;
- }
- /// <summary>
- /// 合同行刷选
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btn_orderSelect_Click(object sender, EventArgs e)// 合同行刷选
- {
- getOrderCAndCD(false);
- }
- /// <summary>
- /// tab控制toolbar
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)// tab控制toolbar
- {
- if (toolMenu == null) return;
- if (e.Tab.TabControl.SelectedTab.Key.Equals("0"))
- {
- //if (toolMenu.Toolbars[0].Tools.Exists("doQuery")) { toolMenu.Toolbars[0].Tools["doQuery"].InstanceProps.Visible = DefaultableBoolean.True; }
- //if (toolMenu.Toolbars[0].Tools.Exists("doCreate")) { toolMenu.Toolbars[0].Tools["doCreate"].InstanceProps.Visible = DefaultableBoolean.False; }
- //if (toolMenu.Toolbars[0].Tools.Exists("cancelCreate")) { toolMenu.Toolbars[0].Tools["cancelCreate"].InstanceProps.Visible = DefaultableBoolean.True; }
- //if (toolMenu.Toolbars[0].Tools.Exists("doExcel")) { toolMenu.Toolbars[0].Tools["doExcel"].InstanceProps.Visible = DefaultableBoolean.True; }
- //if (toolMenu.Toolbars[0].Tools.Exists("doExit")) { toolMenu.Toolbars[0].Tools["doExit"].InstanceProps.Visible = DefaultableBoolean.True; }
- this.ToolBarItemEnable(this, "doQuery", true);
- this.ToolBarItemEnable(this, "doCreate", false);
- this.ToolBarItemEnable(this, "doCreateForce", false);
- this.ToolBarItemEnable(this, "cancelCreate", true);
- this.ToolBarItemEnable(this, "doCreateSub", true);
- this.ToolBarItemEnable(this, "doIssue", true);
- this.ToolBarItemEnable(this, "doUnIssue", false);
- this.ToolBarItemEnable(this, "doUpdate", false);
- this.ToolBarItemEnable(this, "doExcel", true);
- this.ToolBarItemEnable(this, "doExit", true);
- }
- else if (e.Tab.TabControl.SelectedTab.Key.Equals("1"))
- {
- //if (toolMenu.Toolbars[0].Tools.Exists("doQuery")) { toolMenu.Toolbars[0].Tools["doQuery"].InstanceProps.Visible = DefaultableBoolean.True; }
- //if (toolMenu.Toolbars[0].Tools.Exists("doCreate")) { toolMenu.Toolbars[0].Tools["doCreate"].InstanceProps.Visible = DefaultableBoolean.True; }
- //if (toolMenu.Toolbars[0].Tools.Exists("cancelCreate")) { toolMenu.Toolbars[0].Tools["cancelCreate"].InstanceProps.Visible = DefaultableBoolean.False; }
- //if (toolMenu.Toolbars[0].Tools.Exists("doExcel")) { toolMenu.Toolbars[0].Tools["doExcel"].InstanceProps.Visible = DefaultableBoolean.False; }
- //if (toolMenu.Toolbars[0].Tools.Exists("doExit")) { toolMenu.Toolbars[0].Tools["doExit"].InstanceProps.Visible = DefaultableBoolean.True; }
- this.ToolBarItemEnable(this, "doQuery", true);
- this.ToolBarItemEnable(this, "doCreate", true);
- this.ToolBarItemEnable(this, "doCreateForce", true);
- this.ToolBarItemEnable(this, "cancelCreate", false);
- this.ToolBarItemEnable(this, "doCreateSub", false);
- this.ToolBarItemEnable(this, "doIssue", false);
- this.ToolBarItemEnable(this, "doUnIssue", false);
- this.ToolBarItemEnable(this, "doUpdate", false);
- this.ToolBarItemEnable(this, "doExcel", true);
- this.ToolBarItemEnable(this, "doExit", true);
- }
- else if (e.Tab.TabControl.SelectedTab.Key.Equals("2"))
- {
- this.ToolBarItemEnable(this, "doQuery", true);
- this.ToolBarItemEnable(this, "doCreate", false);
- this.ToolBarItemEnable(this, "doCreateForce", false);
- this.ToolBarItemEnable(this, "cancelCreate", false);
- this.ToolBarItemEnable(this, "doCreateSub", false);
- this.ToolBarItemEnable(this, "doIssue", false);
- this.ToolBarItemEnable(this, "doUnIssue", true);
- this.ToolBarItemEnable(this, "doUpdate", true);
- this.ToolBarItemEnable(this, "doExcel", false);
- this.ToolBarItemEnable(this, "doExit", true);
- }
- }
- /// <summary>
- /// 交付地址选择
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void txt_selectlocation_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
- {
- ultraGrid3.UpdateData();
- UltraGridRow row = ultraGrid3.ActiveRow.ParentRow;
- UltraGridRow row1 = ultraGrid3.ActiveRow;
- String strReceiveType = row.GetCellValue("deleteuserid").ToString().Trim();
- String isJit = strReceiveType == "110107" ? "1" : "0";
- FrmPop_upDeliveryLocation frm = new FrmPop_upDeliveryLocation(this.ob, "0", isJit);
- frm.ShowDialog();
- if (frm.tips == "1")
- {
- if (!String.IsNullOrEmpty(frm.DeliveryLocationCode) && !String.IsNullOrEmpty(frm.DeliveryLocation))
- {
- row1.Cells["deliveryLocationCode"].Value = frm.DeliveryLocationCode;
- row1.Cells["deliveryLocation"].Value = frm.DeliveryLocation;
- }
- }
- }
- /// <summary>
- /// 需求部门选择
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void txt_selectDept_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
- {
- frmdepartment frm = new frmdepartment(this.ob);
- // frm.StartPosition = FormStartPosition.Manual;
- // frm.Location = publicPms.getShowLocation(frm);
- frm.ShowDialog();
- String strdeptId = frm.BuyerUnitCode;
- String strDeptName = frm.Fulltext;
- if (!String.IsNullOrEmpty(strdeptId) && !String.IsNullOrEmpty(strDeptName))
- {
- if (ultraGrid3.ActiveRow == null)
- {
- return;
- }
- else
- {
- UltraGridRow row = ultraGrid3.ActiveRow;
- row.Cells["DELETEUSERID"].Value = strdeptId;
- row.Cells["DELETENAME"].Value = strDeptName;
- }
- }
- }
- /// <summary>
- /// 选择物料
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void ultraGrid5_CellChange(object sender, CellEventArgs e)
- {
- if (e.Cell.Column.Key == "CHK")
- {
- refreshSelectMat();
- }
- }
- /// <summary>
- /// 头事件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void ultraGrid5_AfterHeaderCheckStateChanged(object sender, AfterHeaderCheckStateChangedEventArgs e)
- {
- if (e.Column.Key == "CHK")
- {
- refreshSelectMat();
- }
- }
- /// <summary>
- /// 批量添加部门
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void req_dept_batch_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
- {
- frmdepartment frm = new frmdepartment(this.ob);
- //frm.StartPosition = FormStartPosition.Manual;
- //frm.Location = publicPms.getShowLocation(frm);
- frm.ShowDialog();
- String strdeptId = frm.BuyerUnitCode;
- String strDeptName = frm.Fulltext;
- if (!String.IsNullOrEmpty(strdeptId) && !String.IsNullOrEmpty(strDeptName))
- {
- req_dept_batch.Text = strDeptName;
- txt_dept_batch_id.Text = strdeptId;
- }
- }
- //批量添加地址
- private void req_Location_batch_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
- {
- FrmPop_upDeliveryLocation frm = new FrmPop_upDeliveryLocation(this.ob, "0","");
- frm.ShowDialog();
- if (frm.tips == "1")
- {
- if (!String.IsNullOrEmpty(frm.DeliveryLocationCode) && !String.IsNullOrEmpty(frm.DeliveryLocation))
- {
- req_Location_batch.Text= frm.DeliveryLocation;
- txt_locaton_batch_id.Text = frm.DeliveryLocationCode;
- }
- }
- }
- //添加部门和地址按钮
- private void btn_dept_locaton_add_Click(object sender, EventArgs e)
- {
- String dept_batch=req_dept_batch.Text.Trim();
- String locaton_batch=req_Location_batch.Text.Trim();
- String dept_id_batch=txt_dept_batch_id.Text.Trim();
- String location_id_batch=txt_locaton_batch_id.Text.Trim();
- if (String.IsNullOrEmpty(locaton_batch) ||String.IsNullOrEmpty(location_id_batch))
- {
- MessageUtil.ShowTips("交付地址编码和名称都不能为空");
- return;
- }
- //旧合同
- if (!listOrderCol[0].ToString().StartsWith("HT"))
- {
- if (String.IsNullOrEmpty(dept_batch)||String.IsNullOrEmpty(dept_id_batch))
- {
- MessageUtil.ShowTips("需求部门编码和名称都不能为空");
- return;
- }
- }
- ultraGrid3.UpdateData();
- foreach (UltraGridRow row in ultraGrid3.Rows)
- {
- String orderLineSqe = row.GetCellValue("OrderLineSqe").ToString().Trim();
- if (!row.HasParent() && Convert.ToBoolean(row.Cells["CHK"].Value) == true)
- {
- foreach (UltraGridRow ugc in row.ChildBands[0].Rows)
- {
- if (ugc.HasParent() && Convert.ToBoolean(ugc.Cells["CHK"].Value) == true)
- {
- //旧合同
- if (!listOrderCol[0].ToString().StartsWith("HT"))
- {
- if (!String.IsNullOrEmpty(ugc.Cells["DELETEUSERID"].Value.ToString()))
- {
- if (MessageUtil.ShowYesNoAndQuestion("合同行:" + orderLineSqe + "第" + ugc.Index+1 + "个需求记录已存在需求单位是否覆盖?") != DialogResult.Yes)
- {
- ;
- }
- else
- {
- ugc.Cells["DELETEUSERID"].Value = dept_id_batch;
- ugc.Cells["DELETENAME"].Value = dept_batch;
- }
- }
- //旧合同+新合同
- else
- {
- ugc.Cells["DELETEUSERID"].Value = dept_id_batch;
- ugc.Cells["DELETENAME"].Value = dept_batch;
- }
- }
- if (!String.IsNullOrEmpty(ugc.Cells["deliveryLocationCode"].Value.ToString()))
- {
- if (MessageUtil.ShowYesNoAndQuestion("合同行:" + orderLineSqe + " 下第" + ugc.Index+1 + "个需求记录已存在交付地址是否覆盖?") != DialogResult.Yes)
- {
- ;
- }
- else
- {
- ugc.Cells["deliveryLocationCode"].Value = location_id_batch;
- ugc.Cells["deliveryLocation"].Value = locaton_batch;
- }
- }
- else
- {
- ugc.Cells["deliveryLocationCode"].Value = location_id_batch;
- ugc.Cells["deliveryLocation"].Value = locaton_batch;
- }
- }
- }
- }
- }
- }
- #endregion
- #region 公共函数
- /// <summary>
- /// 测试通知单状态
- /// </summary>
- /// <param name="strNoticeId"></param>
- /// <returns></returns>
- private bool testNoticeStatus(string strNoticeId,int p)
- {
- if (String.IsNullOrEmpty(strNoticeId))
- {
- MessageUtil.ShowTips("通知单号为空!");
- return false;
- }
- ExcDeliveryNoticeM noticeM = this.execute<ExcDeliveryNoticeM>("com.hnshituo.pur.ck.service.ExcDeliveryNoticeMService", "findById", new object[] { strNoticeId });
- if (noticeM == null)
- {
- MessageUtil.ShowTips("未发现通知单:" + strNoticeId + "信息记录!");
- return false;
- }
- if (noticeM.Validflag != "1")
- {
- MessageUtil.ShowTips("通知单:" + strNoticeId + "信息记录可能已作废,或请刷新界面重新操作!");
- return false;
- }
- if (p == 1)
- {
- if (noticeM.Status != "1")
- {
- MessageUtil.ShowTips("非“待送货”状态,无法删除!");
- return false;
- }
- ExcDeliveryNoticeC noticeC = new ExcDeliveryNoticeC();
- noticeC.NoticeId = strNoticeId;
- noticeC.Validflag = "1";
- List<ExcDeliveryNoticeC> listc = this.execute<List<ExcDeliveryNoticeC>>("com.hnshituo.pur.ck.service.ExcDeliveryNoticeCService", "find", new object[] { noticeC, 0, 0 });
- foreach (ExcDeliveryNoticeC nc in listc)
- {
- if (nc.Status != "1")
- {
- MessageUtil.ShowTips("通知单行:" + nc.NoticeLineSqe + "非“待编制”状态,无法删除!");
- return false;
- }
- if (nc.CreatedQty != null)
- {
- if (nc.CreatedQty > 0)
- {
- MessageUtil.ShowTips("通知单行:" + nc.NoticeLineSqe + "已编制送货单,无法删除!");
- return false;
- }
- }
- }
- }
- else if (p == 2)
- {
- if (noticeM.Status != "1" && noticeM.Status != "2")
- {
- MessageUtil.ShowTips("通知单:" + strNoticeId + "已编制完成!");
- return false;
- }
- }
- else
- {
- MessageUtil.ShowTips("未知参数!");
- return false;
- }
- return true;
- }
- //验证合同
- private bool testOrderStatus(ArrayList listOrder)
- {
- foreach (String strOrderId in listOrder)
- {
- if (String.IsNullOrEmpty(strOrderId))
- {
- MessageUtil.ShowTips("合同编号为空!");
- return false;
- }
- OrderM Omg = this.execute<OrderM>("com.hnshituo.pur.order.service.OrderMService", "findById", new object[] { strOrderId });
- if (Omg == null)
- {
- MessageUtil.ShowTips("未发现合同【" + strOrderId + "】的信息记录,可能已作废,或请刷新界面重新操作!");
- return false;
- }
- //if (Omg.CreateUserid != UserInfo.GetUserID())
- //{
- // MessageUtil.ShowWarning("非提报该合同本人,无权限进行操作,或请刷新后再操作!");
- // return false;
- //}
- if (Omg.Validflag != "1")
- {
- MessageUtil.ShowWarning("合同【" + strOrderId + "】可能已作废,或请刷新界面重新操作!");
- return false;
- }
- }
- return true;
- }
- //请空通知单头编辑数据
- private void clearInput()
- {
- txt_supp.Clear();
- txt_MRPERIODEND.Value = DateTime.Now;
- txt_MRPERIODSTART.Value = DateTime.Now;
- txt_remark.Clear();
- }
- //验证编制通知单数据的有效性
- private bool testInPut()
- {
- //验证头信息
- if (String.IsNullOrEmpty(txt_supp.Text))
- {
- MessageUtil.ShowTips("供应商不能为空!");
- txt_supp.Focus();
- return false;
- }
- if (String.IsNullOrEmpty(suppNameSel))
- {
- MessageUtil.ShowTips("供应商不能为空!");
- txt_supp.Focus();
- return false;
- }
- if (String.IsNullOrEmpty(suppCodeSel))
- {
- MessageUtil.ShowTips("供应商不能为空!");
- txt_supp.Focus();
- return false;
- }
- //验证交期
- if (String.IsNullOrEmpty(txt_MRPERIODEND.Text))
- {
- MessageUtil.ShowTips("通知单要求交期-止不能为空!");
- txt_MRPERIODEND.Focus();
- return false;
- }
- if (String.IsNullOrEmpty(txt_MRPERIODSTART.Text))
- {
- MessageUtil.ShowTips("通知单要求交期-起不能为空!");
- txt_MRPERIODSTART.Focus();
- return false;
- }
- if (Convert.ToDateTime(txt_MRPERIODEND.Value) <= Convert.ToDateTime(txt_MRPERIODSTART.Value))
- {
- MessageUtil.ShowTips("要求交期-止不能小于要求交期-起!");
- txt_MRPERIODSTART.Focus();
- return false;
- }
- if (Convert.ToDateTime(txt_MRPERIODEND.Value) <= DateTime.Now)
- {
- MessageUtil.ShowTips("要求交期-止不能小于当前时间!");
- txt_MRPERIODEND.Focus();
- return false;
- }
- return true;
- }
- /// <summary>
- /// 加载合同类别
- /// </summary>
- private void Get_DropDownList()//加载合同类别
- {
- //DataTable dt1 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1200" }, this.ob);
- //CkClassCommon.FilComboboxAdd(COP_OrderType, dt1, "baseCode", "baseName", "validflag NOT in ('0')", true, "全部", "");
- //COP_OrderType.SelectedIndex = 0;
- //加载运输条件
- DataTable dt6 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1105" }, this.ob);
- publicPms.FilComboboxAdd(txt_deliveryCondition, dt6, "baseCode", "baseName", "validflag NOT in ('0')", true, "/", "");
- txt_deliveryCondition.SelectedIndex = 0;
- //加载运输方式
- DataTable dt7 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1102" }, this.ob);
- publicPms.FilComboboxAdd(txt_deliveryType, dt7, "baseCode", "baseName", "validflag NOT in ('0')", true, "/", "");
- txt_deliveryType.SelectedIndex = 0;
- }
- /// <summary>
- /// 查询可编制数据
- /// </summary>
- /// <param name="tips">是否初始化地址条件</param>
- private void getOrderCAndCD(bool tips)//查询可编制数据
- {
- try
- {
- ultraGrid4.UpdateData();
- this.Cursor = Cursors.WaitCursor;
- dataTable5.Clear();
- dataTable4.Clear();
- //最早要求到货时间
- int times = 0;
- DateTime deliveryTime = DateTime.Now;
- DateTime tempEndDate = DateTime.Now;
- OrderC odC = new OrderC();
- odC.Validflag = "1";
- if (listOrderCol.Count <= 0)
- {
- MessageUtil.ShowTips("请选择合同头");
- return;
- }
- odC.OrderIdCol = (String[])listOrderCol.ToArray(typeof(String));
- //odC.ItemCodeCol = (String[])listMatCode.ToArray(typeof(String));
- DataTable dt = this.execute<DataTable>("com.hnshituo.pur.order.service.OrderCService", "doQueryOrderC", new object[] { odC });
- GridHelper.CopyDataToDatatable(dt, dataTable4, true);
- //publicPms.ShowExcludeColumns(ultraGrid3.DisplayLayout.Bands[1], new string[] {});
- //判断是旧合同生成和新合同生成
- if (!listOrderCol[0].ToString().StartsWith("HT"))
- {
- foreach (Object orderIds in listOrderCol)
- {
- if (orderIds.ToString().StartsWith("HT"))
- {
- MessageUtil.ShowTips("新旧合同不能混合操作");
- return;
- }
- }
- ultraGrid3.DisplayLayout.Bands[1].Override.AllowAddNew = AllowAddNew.TemplateOnBottom;
- ultraGrid3.DisplayLayout.Bands[1].Columns["DELETENAME"].CellActivation = Activation.ActivateOnly;
- publicPms.HideExcludeColumns(ultraGrid3.DisplayLayout.Bands[1], new string[] { "CHK", "DELETENAME", "createQty", "deliveryLocation" });
- foreach (UltraGridRow row in ultraGrid3.Rows)
- {
- double maxCanUseQty_order = Convert.ToDouble(row.GetCellValue("QTY")) - Convert.ToDouble(row.GetCellValue("CREATEDNOTICEQTY"));//合同可编制
- if (maxCanUseQty_order < 0)
- {
- MessageUtil.ShowTips("物料:" + row.GetCellValue("itemName") + "数据异常,累计通知量大于合同量!");
- return;
- }
- row.Cells["canUseQty"].Value = maxCanUseQty_order;
- }
- req_dept_batch.Enabled = true;
- return;
- }
- req_dept_batch.Enabled = false;
- req_dept_batch.Clear();
- txt_dept_batch_id.Text = "";
- ultraGrid3.DisplayLayout.Bands[1].Columns["DELETENAME"].CellActivation = Activation.Disabled;
- publicPms.HideExcludeColumns(ultraGrid3.DisplayLayout.Bands[1], new string[] { "CHK", "DELETENAME", "createQty", "deliveryLocation", "purtype", "itemDescE", "LASTDELIVERYDATE", "mrId", "oriQty", "qtyPur", "remark" });
- foreach (DataRow rows in dt.Rows)
- {
- if (String.IsNullOrEmpty(rows["purLineId"].ToString()))
- {
- MessageUtil.ShowTips("物料:" + rows["itemName"].ToString() + "采购计划行号为空,无法查询到关联的需求计划行");
- return;
- }
- //计算最大的最早的到货时间
- if (String.IsNullOrEmpty(rows["EndDate"].ToString()))
- {
- MessageUtil.ShowTips("物料:" + rows["itemName"].ToString() + "要求到货时间为空!");
- }
- tempEndDate = Convert.ToDateTime(rows["EndDate"]);
- if (times != 0)
- {
- if (tempEndDate < deliveryTime)
- {
- deliveryTime = tempEndDate;
- }
- }
- else
- {
- deliveryTime = tempEndDate;
- }
- times = times + 1;
- }
- RequireReceive rr = new RequireReceive();
- //rr.ItemCodeCol = odC.ItemCodeCol;
- rr.OrderIdCol = odC.OrderIdCol;
- rr.DeliveryLocationCode=txt_deliveryLocation.SelectedIndex == -1 ? "" : txt_deliveryLocation.Value.ToString().Trim();
- if (!ck_isAllReq.Checked)
- {
- rr.DeleteName="2";//查可编制的
- }
- //加载接收需求计划表---所有预采和普采的都在里面
- DataTable dt1 = this.execute<DataTable>("com.hnshituo.pur.requireplan.service.RequireReceiveService", "getRR_forOrder", new object[] { rr });
- foreach (DataRow row2 in dt1.Rows)
- {
- row2["itemDescE"] = Convert.ToDateTime(row2["itemDescE"]).ToString("yyyy/MM");
- }
- GridHelper.CopyDataToDatatable(dt1, dataTable5, true);
- ultraGrid3.DisplayLayout.Bands[1].Override.AllowAddNew = AllowAddNew.No;
- //初始化选择接收需求行
- foreach (UltraGridRow row in ultraGrid3.Rows)
- {
-
- double maxCanUseQty_order = Convert.ToDouble(row.GetCellValue("QTY")) - Convert.ToDouble(row.GetCellValue("CREATEDNOTICEQTY"));//合同可编制
- double maxCanUseQty_temp = maxCanUseQty_order;
- double maxNeedQty_JitReq = 0;//JIT需求量
- int maxNeedNum_JitReq=0;//JIT需求个数
- if (maxCanUseQty_order < 0)
- {
- MessageUtil.ShowTips("物料:" + row.GetCellValue("itemName") + "数据异常,累计通知量大于合同量!");
- return;
- }
- row.Cells["canUseQty"].Value = maxCanUseQty_order;
- //----------------------------------------------------------------分配方案1:交期优先分配--------------------------------------------------------------------
- if (txt_Allocation_rule.SelectedIndex == 1)
- {
- //条件
- //1:需求的编制量----不能大于需求的可编制量
- //2:合同行的编制量----不能大于合同的可编制量
- //实现流程
- //1:计算合同最大可编制
- //2:循环分配需求
- if (row.HasChild())
- {
- foreach (UltraGridRow row1 in row.ChildBands[0].Rows)
- {
- double maxCanUseQty_Req = Convert.ToDouble(row1.GetCellValue("Qty")) - Convert.ToDouble(row1.GetCellValue("qtyNoticed"));//需求可编制
- row1.Cells["canUseQty"].Value = maxCanUseQty_Req;
- row1.Cells["createQty"].Value = 0;
- if (maxCanUseQty_Req > 0)//需求可编制量只能大于0
- {
- if (maxCanUseQty_temp > 0)
- {
- row1.Cells["CHK"].Value = true;
- row1.Cells["CHK"].Activation = Activation.AllowEdit;
- //row1.Appearance.BackColor = Color.White;
- if (maxCanUseQty_Req <= maxCanUseQty_temp)//需求可编制量少于合同可编制量----》需求可编制量全部编制,合同可编制量减少
- {
- row1.Cells["createQty"].Value = maxCanUseQty_Req;
- maxCanUseQty_temp = maxCanUseQty_temp - maxCanUseQty_Req;
- }
- else//需求可编制量大于合同可编制量----》需求可编制量部分编制,合同可编制量全部用完
- {
- row1.Cells["createQty"].Value = maxCanUseQty_temp;
- maxCanUseQty_temp = 0;
- }
- }
- else
- {
- //row1.Cells["CHK"].Value = false;
- //row1.Cells["CHK"].Activation = Activation.Disabled;
- //row1.Appearance.BackColor = Color.WhiteSmoke;
- row1.Cells["CHK"].Value = true;
- row1.Cells["CHK"].Activation = Activation.AllowEdit;
- //row1.Appearance.BackColor = Color.White;
- }
- }
- else if (maxCanUseQty_Req == 0)
- {
- row1.Cells["CHK"].Value = false;
- row1.Cells["CHK"].Activation = Activation.Disabled;
- //row1.Appearance.BackColor = Color.WhiteSmoke;
- }
- else
- {
- MessageUtil.ShowTips("接收需求行:" + row1.GetCellValue("mrLineId") + "数据异常,已通知通知量大于核准量!");
- row1.Cells["CHK"].Value = false;
- row1.Cells["CHK"].Activation = Activation.Disabled;
- //row1.Appearance.BackColor = Color.WhiteSmoke;
- }
- }
- }
- if (maxCanUseQty_order > maxCanUseQty_temp)
- {
- row.Cells["createQty"].Value = maxCanUseQty_order - maxCanUseQty_temp;
- row.Cells["CHK"].Value = true;
- row.Cells["CHK"].Activation = Activation.AllowEdit;
- //row.Appearance.BackColor = Color.LightCyan;
- }
- else
- {
- row.Cells["createQty"].Value = 0;
- row.Cells["CHK"].Value = false;
- row.Cells["CHK"].Activation = Activation.Disabled;
- //row.Appearance.BackColor = Color.WhiteSmoke;
- }
- }
- else if (txt_Allocation_rule.SelectedIndex == 0)
- {
- //----------------------------------------------------------------分配方案2:优先满足JIT,JIT平均分配-------------------------------------------------------------------
- //条件
- //1:需求的编制量----不能大于需求的可编制量
- //2:合同行的编制量----不能大于合同的可编制量
- //实现流程
- //1:计算合同最大可编制
- //2:计算JIT需求最大可编制量和个数
- //3:平均分配JIT需求(1:,2:)
- //4:其它待定
- if (row.HasChild())
- {
- //计算JIT需求总量
- foreach (UltraGridRow row1 in row.ChildBands[0].Rows)
- {
- double maxCanUseQty_Req = Convert.ToDouble(row1.GetCellValue("Qty")) - Convert.ToDouble(row1.GetCellValue("qtyNoticed"));//需求可编制
- if (maxCanUseQty_Req <= 0)
- {
- maxCanUseQty_Req = 0;
- row1.Cells["CHK"].Value = false;
- row1.Cells["CHK"].Activation = Activation.Disabled;
- //row1.Appearance.BackColor = Color.WhiteSmoke;
- if (maxCanUseQty_Req < 0)
- {
- MessageUtil.ShowTips("接收需求行:" + row1.GetCellValue("mrLineId") + "数据异常,已通知通知量大于核准量!");
- }
- }
- row1.Cells["canUseQty"].Value = maxCanUseQty_Req;//需求可编制
- row1.Cells["createQty"].Value = 0;//默认需求编制量
- if (row1.GetCellValue("DELIVERYLOCATIONFLAG").ToString().Trim() == "是")
- {
- maxNeedQty_JitReq = maxNeedQty_JitReq + maxCanUseQty_Req;
- maxNeedNum_JitReq=maxNeedNum_JitReq+1;
- }
- }
- //执行分配1---JIT需求小于合同需求---满足所有JIT需求
- if (maxCanUseQty_order > maxNeedQty_JitReq)
- {
- foreach (UltraGridRow row1 in row.ChildBands[0].Rows)
- {
- if (maxCanUseQty_temp > 0)
- {
- if (row1.GetCellValue("DELIVERYLOCATIONFLAG").ToString().Trim() == "是")
- {
- row1.Cells["CHK"].Value = true;
- row1.Cells["CHK"].Activation = Activation.AllowEdit;
- // row1.Appearance.BackColor = Color.White;
- double maxCanUseQty_Req = Convert.ToDouble(row1.Cells["canUseQty"].Value);
- row1.Cells["createQty"].Value = maxCanUseQty_Req;
- maxCanUseQty_temp = maxCanUseQty_temp - maxCanUseQty_Req;
- }
- else
- {
- row1.Cells["CHK"].Value = true;
- row1.Cells["CHK"].Activation = Activation.AllowEdit;
- // row1.Appearance.BackColor = Color.White;
- double maxCanUseQty_Req = Convert.ToDouble(row1.Cells["canUseQty"].Value);
- if (maxCanUseQty_Req <= maxCanUseQty_temp)//需求可编制量少于合同可编制量----》需求可编制量全部编制,合同可编制量减少
- {
- row1.Cells["createQty"].Value = maxCanUseQty_Req;
- maxCanUseQty_temp = maxCanUseQty_temp - maxCanUseQty_Req;
- }
- else//需求可编制量大于合同可编制量----》需求可编制量部分编制,合同可编制量全部用完
- {
- row1.Cells["createQty"].Value = maxCanUseQty_temp;
- maxCanUseQty_temp = 0;
- }
- }
- }
- else
- {
- row1.Cells["CHK"].Value = false;
- row1.Cells["CHK"].Activation = Activation.AllowEdit;
- //row1.Appearance.BackColor = Color.White;
- }
- }
- }
- //执行分配2---JIT需求大于等于合同需求-----直接执行平均分配
- else
- {
- foreach (UltraGridRow row1 in row.ChildBands[0].Rows)
- {
- if (maxCanUseQty_temp > 0)
- {
- if (row1.GetCellValue("DELIVERYLOCATIONFLAG").ToString().Trim() == "是")
- {
- double averageQty = 0;
- if (maxNeedNum_JitReq <= 1)//默认不取整数
- {
- averageQty = maxCanUseQty_temp;
- }
- else
- {
- averageQty = (int)(maxCanUseQty_temp / maxNeedNum_JitReq);//截取整数
- }
- row1.Cells["CHK"].Value = true;
- row1.Cells["CHK"].Activation = Activation.AllowEdit;
- double maxCanUseQty_Req = Convert.ToDouble(row1.Cells["canUseQty"].Value);
- if (maxCanUseQty_Req < averageQty)
- {
- row1.Cells["createQty"].Value = maxCanUseQty_Req;
- maxCanUseQty_temp = maxCanUseQty_temp - maxCanUseQty_Req;
- }
- else
- {
- //row1.Appearance.BackColor = Color.White;
- row1.Cells["createQty"].Value = averageQty;
- maxCanUseQty_temp = maxCanUseQty_temp - averageQty;
- }
- maxNeedNum_JitReq = maxNeedNum_JitReq - 1;
- }
- else
- {
- row1.Cells["CHK"].Value = true;
- row1.Cells["CHK"].Activation = Activation.AllowEdit;
- // row1.Appearance.BackColor = Color.White;
- double maxCanUseQty_Req = Convert.ToDouble(row1.Cells["canUseQty"].Value);
- if (maxCanUseQty_Req <= maxCanUseQty_temp)//需求可编制量少于合同可编制量----》需求可编制量全部编制,合同可编制量减少
- {
- row1.Cells["createQty"].Value = maxCanUseQty_Req;
- maxCanUseQty_temp = maxCanUseQty_temp - maxCanUseQty_Req;
- }
- else//需求可编制量大于合同可编制量----》需求可编制量部分编制,合同可编制量全部用完
- {
- row1.Cells["createQty"].Value = maxCanUseQty_temp;
- maxCanUseQty_temp = 0;
- }
- }
- }
- else
- {
- //row1.Cells["CHK"].Value = false;
- //row1.Cells["CHK"].Activation = Activation.Disabled;
- //row1.Appearance.BackColor = Color.WhiteSmoke;
- row1.Cells["CHK"].Value = false;
- row1.Cells["CHK"].Activation = Activation.AllowEdit;
- // row1.Appearance.BackColor = Color.White;
- }
- }
- }
- }
- if (maxCanUseQty_order > maxCanUseQty_temp)
- {
- row.Cells["createQty"].Value = maxCanUseQty_order - maxCanUseQty_temp;
- row.Cells["CHK"].Value = true;
- row.Cells["CHK"].Activation = Activation.AllowEdit;
- // row.Appearance.BackColor = Color.LightCyan;
- }
- else
- {
- row.Cells["createQty"].Value = 0;
- row.Cells["CHK"].Value = false;
- row.Cells["CHK"].Activation = Activation.Disabled;
- // row.Appearance.BackColor = Color.WhiteSmoke;
- }
- }
- else
- {
- MessageUtil.ShowTips("请选择需求分配方案!");
- return;
- }
- }
- GridHelper.RefreshAndAutoSize(ultraGrid3);
- //统计地址与初始化头编辑区
- if (tips == true)
- {
- //初始化头编辑区
-
- if (deliveryTime > DateTime.Now)
- {
- txt_MRPERIODEND.Value = deliveryTime;
- }
- else
- {
- txt_MRPERIODEND.Value = DateTime.Now.AddDays(1);
- }
- //txt_supp.Text = strSuppName + "(" + strSuppCode + ")";
- //初始化查询区域
- DataTable dttest = dt1.Copy();
- for (int i = 0; i < dttest.Rows.Count; i++)
- {
- String StrLocationCode = dttest.Rows[i]["deliveryLocationCode"].ToString().Trim();
- int cou = 0;
- for (int j = dt1.Rows.Count - 1; j >= 0; j--)
- {
- //DataRow rowt = dt.Rows[j];
- if (dt1.Rows[j]["deliveryLocationCode"].ToString().Trim() == StrLocationCode)
- {
- cou = cou + 1;
- if (cou == 1)
- {
- //rowt = dt.Rows[j];
- }
- if (cou >= 2)
- {
- dt1.Rows.RemoveAt(j);
- }
- }
- }
- }
- CkClassCommon.FilComboboxAdd(txt_deliveryLocation, dt1, "deliveryLocationCode", "deliveryLocation", "validflag NOT in ('0')", true, "全部", "");
- txt_deliveryLocation.SelectedIndex = 0;
- }
- }
- catch (Exception ex)
- {
- MessageUtil.ShowTips("获取该合同可编制数据失败:" + ex);
- }
- finally
- {
- this.Cursor = Cursors.Default;
- }
- }
- /// <summary>
- /// 获取合同行和需求行信息
- /// </summary>
- private void getDetail()// 获取通知单和需求行信息
- {
- try
- {
- UltraGridRow uge = ultraGrid1.ActiveRow;
- if (uge == null)
- {
- return;
- }
- dataTable3.Clear();
- dataTable2.Clear();
- ExcDeliveryNoticeC EdnC = new ExcDeliveryNoticeC();
- EdnC.NoticeId = uge.Cells["NoticeId"].Value.ToString();
- EdnC.Validflag = "1";
- DataTable dt = this.execute<DataTable>("com.hnshituo.pur.ck.service.ExcDeliveryNoticeCService", "find_EdnC", new object[] { EdnC });
- GridHelper.CopyDataToDatatable(dt, dataTable2, true);
- Hashtable map = new Hashtable();
- map.Add("noticeId", uge.Cells["NoticeId"].Value.ToString());
- DataTable dt1 = this.execute<DataTable>("com.hnshituo.pur.ck.service.ExcDeliveryNoticeRpRService", "doQueryList", new object[] { map });
- foreach (DataRow row in dt1.Rows)
- {
- row["planedMouth"] = Convert.ToDateTime(row["planedMouth"]).ToString("yyyy/MM");
- }
- GridHelper.CopyDataToDatatable(dt1, dataTable3, true);
- GridHelper.RefreshAndAutoSize(ultraGrid2);
- }
- catch (Exception ex)
- {
- MessageUtil.ShowTips("加载通知单行数据异常!" + ex.Message);
- }
- }
- /// <summary>
- /// 选择物料事件
- /// </summary>
- private void refreshSelectMat()
- {
- ultraGrid5.UpdateData();
- listMatCode.Clear();
- listMatName.Clear();
- foreach (UltraGridRow row in ultraGrid5.Rows)
- {
- if (Convert.ToBoolean(row.GetCellValue("CHK")) == true)
- {
- String strItemCode = row.GetCellValue("itemCode").ToString().Trim();
- String strItemName = row.GetCellValue("itemName").ToString().Trim();
- listMatCode.Add(strItemCode);
- listMatName.Add(strItemName);
- }
- }
- if (listMatCode.Count >= 0)
- {
- String[] ls = (String[])listMatName.ToArray(typeof(string));
- String str1 = String.Join(";", ls);
- txt_itemName.Text = str1;
- }
- else
- {
- txt_itemName.Text = "";
- }
- }
- #endregion
- private void COP_SuppName_ValueChanged(object sender, EventArgs e)
- {
- if(COP_SuppName.SelectedIndex==-1)
- {
- return;
- }
- dataTable7.Clear();
- String strSuppCode = COP_SuppName.Value.ToString().Trim();
- //加载合同物料dropdown
- String[] array = (String[])listorder.ToArray(typeof(string));
- OrderC odC = new OrderC();
- odC.DeleteName = "0";//待编制合同行
- odC.Validflag = "1";
- if (String.IsNullOrEmpty(strSuppCode))
- {
- odC.OrderIdCol = array;//权限控制
- }
- else
- {
- odC.SuppCode = strSuppCode;
- }
- DataTable dt2 = this.execute<DataTable>("com.hnshituo.pur.order.service.OrderCService", "doQueryOrderC", new object[] { odC });
- DataView dv1 = new DataView(dt2);
- DataTable dt_item = dv1.ToTable(true, new string[] { "itemCode", "itemName" });
- GridHelper.CopyDataToDatatable(dt_item, dataTable7, true);
- }
- }
- }
|