コード例 #1
0
ファイル: FmMomList.cs プロジェクト: hanxiaomeme/CERP
        private void LoadDetails(int modid)
        {
            var wodal = new WorkOrderDAL();

            this.gridControl2.DataSource = wodal.GetWorkOrderList(modid);
            this.gridControl3.DataSource = wodal.GetRouter(modid);
        }
コード例 #2
0
ファイル: FmMomList.cs プロジェクト: hanxiaomeme/CERP
        //============================================================

        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
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
ファイル: FmMomList.cs プロジェクト: hanxiaomeme/CERP
        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
        }
コード例 #6
0
ファイル: FmMomList.cs プロジェクト: hanxiaomeme/CERP
        /// <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();
            }
        }
コード例 #7
0
ファイル: FmMOReport.cs プロジェクト: hanxiaomeme/CERP
        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;
        }
コード例 #8
0
        public void CreateWorkOrder(WorkOrderModel orderModel)
        {
            WorkOrderDAL workOrder = new WorkOrderDAL();

            workOrder.CreateWorkOrder(orderModel);
        }