private void LoadDetails(int modid) { var wodal = new WorkOrderDAL(); this.gridControl2.DataSource = wodal.GetWorkOrderList(modid); this.gridControl3.DataSource = wodal.GetRouter(modid); }
//============================================================ private void MatchOperation(int modid) { #region 匹配生产订单行对应指令单子件工艺 var wodal = new WorkOrderDAL(); var dtRouter = wodal.GetRouter(modid); var dtDetail = wodal.GetDetail(modid); foreach (DataRow d in dtDetail.Rows) { if (string.IsNullOrEmpty(d["operationId"].ToString())) { continue; } var gyArray = dtRouter.Select("operationId = " + d["operationId"] + " and guid = '" + d["guid"] + "'"); if (gyArray != null && gyArray.Length == 1) { d["routerId"] = gyArray[0]["autoid"]; var autoid = Convert.ToInt32(d["AutoId"]); var routerid = Convert.ToInt32(d["routerId"]); wodal.UpdateWODRouterId(autoid, routerid); } else { continue; } } #endregion }
/// <summary> /// Gets all work order. /// </summary> /// <returns>Get All WorkOrder</returns> public List <WorkOrder> GetAllWorkOrder() { IWorkOrderDAL workOrderDAL = new WorkOrderDAL(); List <WorkOrder> result = workOrderDAL.GetAllWorkOrder(); return(result); }
public void GetAllWorkOrder() { IWorkOrderDAL dal = new WorkOrderDAL(); List <WorkOrder> dummy = this.GetDummyWorkOrder(); List <WorkOrder> actual = dal.GetAllWorkOrder(); for (int i = 0; i < dummy.Count; i++) { Assert.AreEqual(dummy[i].WorkOrderID, actual[i].WorkOrderID); Assert.AreEqual(dummy[i].Product, actual[i].Product); Assert.AreEqual(dummy[i].OrderQty, actual[i].OrderQty); Assert.AreEqual(dummy[i].DueDate, actual[i].DueDate); } }
private void Btn_Delete_Click(object sender, EventArgs e) { #region 除指令单 if (MsgBox.ShowYesNoMsg("即将删除当前生产订单行对应的所有指令单,是否继续!") != DialogResult.Yes) { return; } int modid = Convert.ToInt32(gridView1.GetFocusedDataRow()["modid"]); var wodal = new WorkOrderDAL(); if (wodal.ExistRef(modid)) { throw new Exception("生产订单对应的指令单已经生成流转卡不能删除!"); } if (wodal.Delete(modid)) { this.LoadDetails(modid); } #endregion }
/// <summary> /// 指令单生成 /// </summary> private void ExpDetail(object obj, EventArgs e) { #region 生成指令单 if (dtM == null || dtM.Rows.Count < 1) { throw new Exception("表体没有记录!"); } int modid = Convert.ToInt32(gridView1.GetFocusedRowCellValue("modid")); var wodal = new WorkOrderDAL(); if (wodal.ExistWorkOrder(modid)) { throw new Exception("已经生成指令单!"); } else if (gridView1.GetFocusedRowCellValue("BomId").ToString() == "") { throw new Exception("生产订单没有选择BOM,请检查!"); } //else if(!wodal.ExistBOM(modid)) //{ // throw new Exception("没有BOM,请检查!"); //} //是否存在工艺路线 else if (!wodal.ExistPRouting(modid)) { if (MsgBox.ShowYesNoMsg("没有工艺路线,是否加载默认工艺!") == DialogResult.Yes) { dal.CreateWorkOrderRouting(modid, "001", Information.UserInfo.cUser_Name); } //throw new Exception("没用工艺路线,请检查"); } else { dal.CreateWorkOrder(modid, Information.UserInfo.cUser_Name); } var dtWorkOrder = wodal.GetWorkOrderList(modid); var dtRouter = wodal.GetRouter(modid); this.gridControl2.DataSource = dtWorkOrder; this.gridControl3.DataSource = dtRouter; //匹配指令单材料对应工序 MatchOperation(modid); #region 检查已生成指令单是否有工艺路线 string msg = ""; bool bExist = false; foreach (DataRow r in dtWorkOrder.Rows) { foreach (DataRow r2 in dtRouter.Rows) { if (r["WOCode"].ToString() == r2["WOCode"].ToString()) { bExist = true; break; } bExist = false; } if (!bExist) { msg += r["WOCode"] + "没有工艺路线; \r\n"; } else { continue; } } if (msg != "") { MsgBox.ShowInfoMsg(msg); } #endregion #endregion using (var frm = new FmWOList(modid)) { frm.ShowDialog(); } }
private void BtnOk_Click(object sender, EventArgs e) { this.CalcQty(null, null); var wo = new WorkOrderDAL().GetModel(card.M.WOGuid); //是否母件 if (wo.Grade == 0) { //所有子件卡是否完工 if (!dal.ChildCardAllComplete(wo.U8Modid)) { throw new Exception("存在未完工的零件流转卡, 不能报工!"); } } var cardD = card.M.curOperation; if (cardD.hgQty <= 0) { throw new Exception("合格数量不能小于等0"); } else if (string.IsNullOrEmpty(cardD.cWorker)) { throw new Exception("操作工不能为空!"); } //检验报工数量, 不能大于上道 if (cardD.OpSeq != "0010") { var preOperation = card.DList.FindLast(x => Convert.ToInt32(x.OpSeq) < Convert.ToInt32(cardD.OpSeq)); var preQty = preOperation.hgQty + preOperation.bhgQty; if (cardD.hgQty + cardD.bhgQty > preQty) { throw new Exception("当前工序报工数量不能大于上道报工数量(" + preQty + ")"); } } if (!string.IsNullOrEmpty(txt_worker.Text.Trim())) { this.GetPerson(txt_worker.Text.Trim()); } cardD.cRepPsn = Information.UserInfo.cUser_Name; //报工 var u8rdid = new ReportClient().ReportOP(cardD); if (!string.IsNullOrEmpty(u8rdid)) { MsgBox.ShowInfoMsg("已生成产品入库单, ID: " + u8rdid); } //var wo = new WorkOrderDAL().Get(cardM.WOGuid); //if (wo.Grade == 0) //{ // if (!cardM.bChild && !dal.HaveNextOpSeq(cardD.CardNo, cardD.OpSeq)) // { // string id = new U8API.U8OperationClient().ProductIn(cardM.CardNo, cardD.OpSeq); // MsgBox.ShowInfoMsg("已生成产品入库单, ID: " + id); // } //} this.DialogResult = DialogResult.OK; }
public void CreateWorkOrder(WorkOrderModel orderModel) { WorkOrderDAL workOrder = new WorkOrderDAL(); workOrder.CreateWorkOrder(orderModel); }