示例#1
0
        private void PrintDocument(Guid PackageID)
        {
            //if (this.CurrentOrder == null) return;
            //if (this.CurrentPackage == null) return;
            using (ProxyBE p = new ProxyBE())
            {
                //打印标签
                SearchPackageArgs args = new SearchPackageArgs();
                args.OrderBy = "[PackageNum] asc";
                //args.OrderID = this.CurrentOrder.OrderID;
                args.PackageID = PackageID;// CurrentPackage.PackageID;
                SearchResult sr = p.Client.SearchPackage(CGlobal.SenderUser, args);

                if (sr.Total == 0)
                {
                    throw new Exception("此订单未设置包装数据。");
                }

                ReportPrint rpt = new ReportPrint();
                rpt.CopyQty  = (short)this.PrintQty;
                rpt.LogoFile = this.LogoFile;
                rpt.DocumentPrint(sr);
                //重置数据
                this.CurrentPackage = null;
            }
        }
示例#2
0
        private void tvPackage_DoubleClick(object sender, EventArgs e)
        {
            try
            {
                TreeNode tn = this.tvPackage.SelectedNode;
                if (tn == null)
                {
                    return;
                }

                if (tn.Tag.ToString().Split(',')[0] == "B")
                {
                    return;
                }
                Guid PackageID = new Guid(tn.Tag.ToString().Split(',')[1]);
                using (ProxyBE p = new ProxyBE())
                {
                    this.CurrentPackage = p.Client.GetPackage(CGlobal.SenderUser, PackageID);
                    this.gbPackage.Text = string.Format("当前:第{0}包", this.CurrentPackage.PackageNum);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
示例#3
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            try
            {
                TreeNode tn = tvPackage.SelectedNode;
                if (tn == null)
                {
                    throw new Exception("请选择待移除的板件。");
                }
                if (MessageBox.Show("确定要在此包中移除此工件吗?", "系统提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.No)
                {
                    return;
                }


                if (tn != null)
                {
                    if (tn.Tag.ToString().Split(',')[0] != "B")
                    {
                        throw new Exception("禁止删除整包数据。");
                    }

                    using (ProxyBE p = new ProxyBE())
                    {
                        CurrentOrder = p.Client.GetOrder(CGlobal.SenderUser, CurrentOrder.OrderID);
                        if (CurrentOrder.Status != "P")
                        {
                            throw new Exception("此订单已经离开产生产(包装)环节,禁止再做此操作。");
                        }

                        Guid        itemid      = new Guid(tn.Tag.ToString().Split(',')[1]);
                        OrderDetail orderDetail = p.Client.GetOrderDetail(CGlobal.SenderUser, itemid);
                        TreeNode    pNode       = tn.Parent;
                        p.Client.DeletePackageItem(CGlobal.SenderUser, orderDetail.BarcodeNo, WorkFlowID, pNode.Nodes.Count == 1);

                        pNode.Nodes.Remove(tn);
                        //如果是最后一件,删除包号
                        if (pNode.Nodes.Count == 0)
                        {
                            this.CurrentPackage = null;
                            this.tvPackage.Nodes.Remove(pNode);
                        }
                    }
                    biObjects();
                    this.listDetail();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
示例#4
0
 /// <summary>
 /// 查询列表双击时
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void dgPackage_DoubleClick(object sender, EventArgs e)
 {
     try
     {
         if (dgPackage.SelectedRows.Count == 0)
         {
             return;
         }
         using (ProxyBE p = new ProxyBE())
         {
             DataGridViewRow row = dgPackage.SelectedRows[0];
             if (!string.IsNullOrEmpty(row.Cells[0].Value.ToString()))
             {
                 Guid OrderID = new Guid(row.Cells[0].Value.ToString());
                 this.CurrentOrder = p.Client.GetOrder(CGlobal.SenderUser, OrderID);
             }
             //else
             //{
             //    this.CurrentOrder = null;
             //}
             if (!string.IsNullOrEmpty(row.Cells[2].Value.ToString()))
             {
                 Guid PackageID = new Guid(row.Cells[2].Value.ToString());
                 this.CurrentPackage = p.Client.GetPackage(CGlobal.SenderUser, PackageID);
                 this.txtBarcode.Focus();
                 this.gbPackage.Text = string.Format("当前:第{0}包", this.CurrentPackage.PackageNum);
                 initTree();//右上已分包数据
             }
             else
             {
                 this.CurrentPackage = null;
                 this.gbPackage.Text = "";
                 this.tvPackage.Nodes.Clear();
             }
             this.listDetail();//右下未分包数据
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
 }
示例#5
0
 /// <summary>
 /// 下一包
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnRefresh_Click(object sender, EventArgs e)
 {
     try
     {
         if (this.CurrentPackage == null)
         {
             throw new Exception("请选择要打印的订单和包号。");
         }
         PlayVoice("打印标签");
         StartPrint(this.CurrentPackage.PackageID);
         this.txtBarcode.Text = "";
         this.txtBarcode.Focus();
         this.CurrentPackage = null;
         this.gbPackage.Text = "当前:新包号";
     }
     catch (Exception ex)
     {
         this.CurrentPackage = null;
         MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
 }
示例#6
0
        private void btnSearch_Click(object sender, EventArgs e)
        {
            this.btnSearch.Text    = "请稍候...";
            this.btnSearch.Enabled = false;
            try
            {
                this.CurrentPackage = null;
                this.CurrentOrder   = null;

                if (string.IsNullOrEmpty(this.txtOrderNo.Text))
                {
                    throw new Exception("请输入订单号!");
                }
                this.biObjects();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            this.btnSearch.Text    = "查找(&F)";
            this.btnSearch.Enabled = true;
        }
示例#7
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.listPackage.Items.Count == 0)
                {
                    throw new Exception("未添加任何包数据。");
                }
                using (ProxyBE bll = new ProxyBE())
                {
                    Order order = bll.Client.GetOrder(CGlobal.SenderUser, OrderID);
                    //订单添加板件明细
                    List <OrderDetail> suborders = new List <OrderDetail>();

                    List <OrderDetail> details = bll.Client.GetOrderDetails(CGlobal.SenderUser, OrderID);
                    Order2Cabinet      cabinet = bll.Client.GetOrder2Cabinet(CGlobal.SenderUser, this.CabinetID);
                    int itemsQty = 1;
                    foreach (ListViewItem li in this.listPackage.Items)
                    {
                        int Qty = int.Parse(li.SubItems[2].Text);
                        for (int i = 0; i < Qty; i++)
                        {
                            OrderDetail subOrder = new OrderDetail();
                            subOrder.ItemID           = Guid.NewGuid();
                            subOrder.OrderID          = this.OrderID;
                            subOrder.BarcodeNo        = order.OrderNo + ((char)(64 + cabinet.Sequence)).ToString() + (itemsQty + details.Count + 50).ToString("000");
                            subOrder.ItemName         = li.SubItems[1].Text;
                            subOrder.MadeBattchNum    = "";
                            subOrder.MaterialType     = "";
                            subOrder.MadeLength       = 0;
                            subOrder.MadeWidth        = 0;
                            subOrder.MadeHeight       = 0;
                            subOrder.Qty              = 1;
                            subOrder.TextureDirection = "";
                            subOrder.Edge1            = "";
                            subOrder.Edge2            = "";
                            subOrder.Edge3            = "";
                            subOrder.Edge4            = "";
                            subOrder.HoleDesc         = "";
                            subOrder.EndLength        = 0;
                            subOrder.EndWidth         = 0;
                            subOrder.FrontLabel       = "";
                            subOrder.BackLabel        = "";
                            subOrder.PackageCategory  = "";
                            subOrder.PackageSizeType  = "";
                            subOrder.IsSpecialShap    = false;
                            subOrder.CabinetID        = this.CabinetID;
                            subOrder.Remarks          = "";
                            subOrder.EdgeDesc         = "";
                            subOrder.DamageQty        = 0;
                            subOrder.Created          = DateTime.Now;
                            suborders.Add(subOrder);

                            Mes.Client.Service.BE.Package p = new Mes.Client.Service.BE.Package();
                            p.OrderID = OrderID;
                            int pageNum = bll.Client.GetMaxPackageNum(CGlobal.SenderUser, OrderID, subOrder.CabinetID);
                            p.CabinetID      = subOrder.CabinetID;
                            p.PackageNum     = pageNum;
                            p.PackageBarcode = string.Format("0{0}{1}", order.Created.ToString("yyMMddHHmmss"), pageNum.ToString("00"));
                            p.PackageID      = Guid.NewGuid();
                            p.ItemsQty       = 1;

                            //保存条码数据
                            PackageDetail obj = new PackageDetail();
                            obj.DetailID    = Guid.NewGuid();
                            obj.ItemID      = subOrder.ItemID;
                            obj.PakageID    = p.PackageID;
                            obj.IsPlanning  = true;
                            obj.IsPakaged   = true;
                            obj.IsDisabled  = false;
                            obj.IsOptimized = true;
                            obj.LayerNum    = 0;
                            obj.Qty         = 1;
                            obj.CheckedBy   = CGlobal.SenderUser.UserCode + "." + CGlobal.SenderUser.UserName;

                            SavePackageArgs saveArgs = new SavePackageArgs();
                            saveArgs.Package = p;

                            PackageDetail detail = new PackageDetail();
                            detail.DetailID = Guid.NewGuid();

                            detail.CheckedBy       = CGlobal.SenderUser.UserCode;
                            detail.IsDisabled      = false;
                            detail.IsOptimized     = true;
                            detail.IsPakaged       = true;
                            detail.IsPlanning      = true;
                            detail.ItemID          = subOrder.ItemID;
                            detail.LayerNum        = 0;
                            detail.PakageID        = obj.PakageID;
                            detail.Qty             = 1;
                            saveArgs.PackageDetail = detail;
                            bll.Client.SavePackage(CGlobal.SenderUser, saveArgs);

                            itemsQty++;
                        }
                    }
                    SaveOrderArgs saveOrderArgs = new SaveOrderArgs();
                    saveOrderArgs.Order        = order;
                    saveOrderArgs.OrderDetails = suborders;
                    bll.Client.SaveOrder(CGlobal.SenderUser, saveOrderArgs);
                }

                this.DialogResult = System.Windows.Forms.DialogResult.OK;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
示例#8
0
        private void ScanBarcode()
        {
            if (this.InvokeRequired)
            {
                this.Invoke(new dreadbarcode(ScanBarcode), null);
            }
            else
            {
                if (WorkFlowID == Guid.Empty)
                {
                    throw new Exception("请在参数设置中设置班次和分拣对应的工序名称。");
                }
                if (WorkShiftID == Guid.Empty)
                {
                    throw new Exception("请在参数设置中设置班次和分拣对应的工序名称。");
                }
                string ItemBarcode = this.txtBarcode.Text.Trim();
                if (string.IsNullOrEmpty(ItemBarcode))
                {
                    this.txtBarcode.Clear();
                    this.txtBarcode.Focus();
                    lblMsg.Text = "【提示】请扫描板件条码";
                    PlayVoice("请扫描板件条码");
                    return;
                }
                #region 完成当前分包操作
                if (ItemBarcode.IndexOf(FinishedBarcode) >= 0 && !string.IsNullOrEmpty(FinishedBarcode))
                {
                    try
                    {
                        //打印分包标签
                        PlayVoice("打印标签");
                        //PrintDocument();
                        StartPrint(this.CurrentPackage.PackageID);
                        this.txtBarcode.Text = "";
                        this.txtBarcode.Focus();
                        this.CurrentPackage = null;
                    }
                    catch (Exception ex)
                    {
                        this.CurrentPackage = null;
                        throw ex;
                    }
                    return;
                }
                #endregion

                using (ProxyBE p = new ProxyBE())
                {
                    OrderDetail subOrder = p.Client.GetOrderDetailByBarcode(CGlobal.SenderUser, ItemBarcode);
                    if (subOrder == null)
                    {
                        this.txtBarcode.Clear();
                        this.txtBarcode.Focus();
                        lblMsg.Text = string.Format("提示:【{0}】条码无效", ItemBarcode);
                        PlayVoice("条码错误");
                        return;
                    }

                    Order order = p.Client.GetOrder(CGlobal.SenderUser, subOrder.OrderID);
                    //初始化订单数据:如果当前订单ID与条码的订单ID不一至时则重置订单信息
                    if (CurrentOrder == null)
                    {
                        this.CurrentOrder    = order;
                        this.txtOrderNo.Text = this.CurrentOrder.OrderNo;
                    }
                    //判断当前的板件是否为同一订单板件
                    else if (subOrder.OrderID != this.CurrentOrder.OrderID)
                    {
                        this.txtBarcode.Clear();
                        this.txtBarcode.Focus();
                        lblMsg.Text = "【错误】板件订单号不一致";
                        PlayVoice("订单不一致");
                        MessageBox.Show("板件订单号不一致");
                        return;
                    }

                    List <PackageDetail> pdsubOrder = p.Client.GetPackageDetailsByItemID(CGlobal.SenderUser, subOrder.ItemID);
                    pdsubOrder = pdsubOrder.FindAll(li => li.IsPakaged == false);
                    if (pdsubOrder.Count == 0)
                    {
                        this.txtBarcode.Clear();
                        this.txtBarcode.Focus();
                        lblMsg.Text = string.Format("提示:【{0}】条码重复扫描", ItemBarcode);
                        PlayVoice("重复扫描");
                        return;
                    }


                    decimal weight = subOrder.MadeHeight * subOrder.MadeLength * subOrder.MadeWidth * 0.000001M * Density;
                    if (this.CurrentPackage != null)
                    {
                        if (this.CurrentPackage.Weight + weight >= MaxWeight)
                        {
                            //打印分包标签
                            PlayVoice("打印标签");
                            StartPrint(this.CurrentPackage.PackageID);
                            this.txtBarcode.Text = "";
                            this.txtBarcode.Focus();
                            this.CurrentPackage = null;
                        }
                    }

                    Order2Cabinet cabinet = p.Client.GetOrder2Cabinet(CGlobal.SenderUser, subOrder.CabinetID);
                    if (cabinet != null)
                    {
                        //初始化包数据
                        if (this.CurrentPackage == null)
                        {
                            Mes.Client.Service.BE.Package pack = new Mes.Client.Service.BE.Package();
                            pack.OrderID = this.CurrentOrder.OrderID;
                            int pageNum = 0;
                            pageNum                  = p.Client.GetMaxPackageNum(CGlobal.SenderUser, pack.OrderID, subOrder.CabinetID);
                            pack.CabinetID           = subOrder.CabinetID;
                            pack.PackageNum          = pageNum;
                            pack.PackageID           = Guid.NewGuid();
                            pack.PackageBarcode      = string.Format("0{0}{1}", CurrentOrder.Created.ToString("yyMMddHHmmss"), pageNum.ToString("00"));
                            pack.PackageLength       = 0;
                            pack.PackageHeight       = 0;
                            pack.PackageWidth        = 0;
                            pack.ItemsQty            = 0;
                            this.CurrentPackage      = pack;
                            this.txtCabinetName.Text = cabinet.CabinetName;
                        }
                        else if (CurrentPackage.CabinetID != cabinet.CabinetID)
                        {
                            this.txtBarcode.Clear();
                            this.txtBarcode.Focus();
                            lblMsg.Text = "【错误】柜体不一致!";
                            PlayVoice("柜体不一致");
                            return;
                        }
                    }
                    else
                    {
                        lblMsg.Text = string.Format("提示:【{0}】条码所属柜体数据丢失,请查看订单是否有误!", ItemBarcode);
                        PlayVoice("订单错误");
                        return;
                    }


                    try
                    {
                        p.Client.ScanBarcode(CGlobal.SenderUser, ItemBarcode, WorkShiftID, WorkFlowID);
                    }
                    catch (Exception ex)
                    {
                        PLogger.LogError(ex);
                        this.txtBarcode.Clear();
                        this.txtBarcode.Focus();
                        lblMsg.Text = ex.Message;
                        PlayVoice("扫描失败");
                        return;
                    }

                    this.CurrentPackage.Weight   += weight;
                    this.CurrentPackage.ItemsQty += 1;

                    SavePackageArgs saveArgs = new SavePackageArgs();
                    saveArgs.Package = this.CurrentPackage;
                    PackageDetail packageDetail = pdsubOrder[0];
                    packageDetail.IsPakaged = true;
                    packageDetail.PakageID  = this.CurrentPackage.PackageID;
                    saveArgs.PackageDetail  = packageDetail;
                    p.Client.SavePackage(CGlobal.SenderUser, saveArgs);

                    this.CurrentPackage = p.Client.GetPackage(CGlobal.SenderUser, this.CurrentPackage.PackageID);
                    this.gbPackage.Text = string.Format("当前:第{0}包", this.CurrentPackage.PackageNum);

                    //刷新列表
                    biForm();
                    this.txtBarcode.Clear();
                    this.txtBarcode.Focus();
                    lblMsg.Text = "扫描完成";
                    PlayVoice("OK");

                    //检查是否已经全部扫描完成
                    if (this.listBarcodes.Items.Count == 0)
                    {
                        //打印分包标签
                        PlayVoice("打印标签");
                        //PrintDocument();
                        StartPrint(this.CurrentPackage.PackageID);
                        this.txtBarcode.Text = "";
                        this.txtBarcode.Focus();
                        this.CurrentPackage = null;

                        cabinet.CabinetStatus = "F";
                        SaveOrder2CabinetArgs cabinetArgs = new SaveOrder2CabinetArgs();
                        cabinetArgs.Order2Cabinet = cabinet;
                        p.Client.SaveOrder2Cabinet(CGlobal.SenderUser, cabinetArgs);

                        SearchPackageDetailArgs p_args = new SearchPackageDetailArgs();
                        p_args.IsDisabled = false;
                        p_args.OrderID    = CurrentOrder.OrderID;
                        p_args.IsPakaged  = false;

                        SearchResult p_sr = p.Client.SearchPackageDetail(CGlobal.SenderUser, p_args);
                        if (p_sr.Total == 0)
                        {
                            //Order order = p.Client.GetOrder(CGlobal.SenderUser, CurrentOrder.OrderID);
                            order.Status = "I"; //全部打包完成后,订单状态变成待入库
                            SaveOrderArgs saveOrderArgs = new SaveOrderArgs();
                            saveOrderArgs.Order = order;
                            p.Client.SaveOrder(CGlobal.SenderUser, saveOrderArgs);
                        }
                    }
                    //加载树
                    initTree();
                }
            }
        }