예제 #1
0
        public void UpdateOutstoreStype()
        {
            SOHeaderEntity header = IParent.GetFocusedBill();

            if (header == null)
            {
                MsgBox.Warn("请选择要操作的订单。");
                return;
            }
            if (header.Status != "60")
            {
                MsgBox.Warn("只有等待排序的订单才能更改出库方式。");
                return;
            }
            try
            {
                FrmOutstoreTypeModify frmOutstoreTypeModify = new FrmOutstoreTypeModify(header);
                if (frmOutstoreTypeModify.ShowDialog() == DialogResult.OK)
                {
                    bool ret = UpdateOutstoreStype(header.BillID, frmOutstoreTypeModify.ItemValue);
                    if (ret)
                    {
                        Query(1, DateTime.Now, DateTime.Now);
                    }
                }
            }
            catch (Exception ex)
            {
                MsgBox.Err(ex.Message);
            }
        }
예제 #2
0
        /// <summary>
        /// 关联车辆 彭伟 2015-07-14
        /// </summary>
        private void toolJoinVehicle_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            SOHeaderEntity selectedHeader = SelectedHeader;

            if (selectedHeader == null || selectedHeader.DelayMark != 1)
            {
                MsgBox.Warn("请选择延时发货的订单!");
                return;
            }
            using (FrmChooseVehicle frmChooseVehicle = new FrmChooseVehicle(ConvertUtil.ToInt(selectedHeader.ShipNO)))
            {
                if (frmChooseVehicle.ShowDialog() != DialogResult.OK || frmChooseVehicle.SelectedVehicle == null)
                {
                    return;
                }
                //int result = this.soDal.JoinBillNOAndVehicle(
                //    ConvertUtil.ToString(frmChooseVehicle.SelectedVehicle.ID),
                //    selectedHeader.BillID);
                //if (result < 1)
                //{
                //    MsgBox.Warn("关联失败,请重试!");
                //    return;
                //}
                //myPre.Query(1, DateTime.Now, DateTime.Now);
                //MsgBox.OK("关联成功。");
            }
        }
예제 #3
0
        public FrmPickStrategy(SOHeaderEntity selectedBill)
        {
            InitializeComponent();

            this.selectedBill = selectedBill;
            txtBillNO.Text    = selectedBill.BillNO;
        }
예제 #4
0
 //Add by ZXQ 20150525
 private void toolCreateCRNBill_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
 {
     try
     {
         SOHeaderEntity selectedHeader = SelectedHeader;
         if (selectedHeader == null)
         {
             MsgBox.Warn("未选中单据!");
             return;
         }
         if (selectedHeader.Status == "68")
         {
             FrmCreateCRNBill frm = new FrmCreateCRNBill(selectedHeader);
             frm.ShowDialog();
         }
         else
         {
             MsgBox.Warn("只有<发货完成>的出库单才能创建退货单!");
         }
     }
     catch (Exception ex)
     {
         MsgBox.Warn(ex.Message);
         return;
     }
 }
예제 #5
0
        public void MarkDelayedOrder()
        {
            SOHeaderEntity        header       = GetFocusedBill();
            List <SOHeaderEntity> focusedBills = GetFocusedBills();

            if (focusedBills.Count > 1)
            {
                MsgBox.Warn("每次只能标记一张延时单据!");
                return;
            }

            if (header == null)
            {
                MsgBox.Warn("请选中要标记的单据。");
                return;
            }
            if (focusedBills.Count == 1)
            {
                if (DialogResult.Yes == MsgBox.AskYes("确定将此单据标记为延时?"))
                {
                    bool result = UpdateDelayedOrder(header.BillID, GlobeSettings.LoginedUser.UserName, header.BillNO);
                    if (result)
                    {
                        MsgBox.Warn("标记成功!");
                        return;
                    }
                }
            }
        }
예제 #6
0
파일: FrmEditSO.cs 프로젝트: uwitec/wms-1
        public FrmEditSO(SOHeaderEntity header)
        {
            InitializeComponent();
            Header = header;

            this.Text = string.Format("填写备注(单号:{0})", Header.BillNO);
        }
예제 #7
0
        private void DoAcrossOutbound()
        {
            SOHeaderEntity selectedHeader = SelectedHeader;

            if (selectedHeader == null)
            {
                MsgBox.Warn("请选中单据行。");
                return;
            }
            if (MsgBox.AskOK(string.Format("单据“{0}”确定执行出库操作吗?", selectedHeader.BillNO)) != DialogResult.OK)
            {
                return;
            }

            try
            {
                bool result = AcrossOutbound(selectedHeader.BillID,
                                             string.Empty, GlobeSettings.LoginedUser.UserName);
                Insert(ELogType.越库, GlobeSettings.LoginedUser.UserName, selectedHeader.BillNO, string.Empty, "越库出库");
                if (result)
                {
                    gridPlans.DataSource = null;
                    Reload();

                    MsgBox.OK("越库发货成功。");
                }
            }
            catch (Exception ex)
            {
                MsgBox.Err(ex.Message);
            }
        }
예제 #8
0
        public FrmCreateCRNBill(SOHeaderEntity selectedHeader)
        {
            InitializeComponent();

            this.soHeader = selectedHeader;

            this.Text = string.Format("新增退货单(出库单号:{0})", soHeader.BillID);
        }
예제 #9
0
 /// <summary>
 /// 生成装车任务
 /// </summary>
 private void btnCreateTask_Click(object sender, EventArgs e)
 {
     try
     {
         object obj = null;
         if ((obj = this.InvokeScript(M_SUB_BILL)) == null)
         {
             MsgBox.Warn("未找到已排序订单!");
             return;
         }
         List <SortMapReceiveDataEntity> list = JsonConvert.DeserializeObject <List <SortMapReceiveDataEntity> >(obj.ToString());
         if (list == null || list.Count == 0)
         {
             MsgBox.Warn("未找到已排序订单");
             return;
         }
         if (list.Count == this._list.Count ||
             MsgBox.AskOK("还有未排序的订单,是否继续提交?") == DialogResult.OK)
         {
             string billIDs = string.Empty;
             List <OrderSortEntity> sortList = new List <OrderSortEntity>();
             foreach (SortMapReceiveDataEntity data in list)
             {
                 SOHeaderEntity header = this._list.Find(new Predicate <SOHeaderEntity>(
                                                             (item) =>
                 {
                     return(item.BillNO == data.orderId);
                 }));
                 if (header == null)
                 {
                     continue;
                 }
                 sortList.Add(new OrderSortEntity()
                 {
                     VehicleNo     = ConvertUtil.ToString(this._vehicle.ID),
                     BillNo        = data.orderId,
                     InVehicleSort = ConvertUtil.ToInt(data.paixu),
                     PiecesQty     = data.boxNum,
                     Attri1        = 10
                 });
             }
             // 存储排序记录
             OrderSortDal.Insert(sortList);
             string selectedBillIDs = StringUtil.JoinBySign <SOHeaderEntity>(this._list, "BillID");
             string errMsg          = TaskDal.CreateLoadingTask(selectedBillIDs, ConvertUtil.ToString(this._vehicle.ID));
             if (!string.IsNullOrEmpty(errMsg))
             {
                 throw new Exception(errMsg);
             }
             this.DialogResult = DialogResult.OK;
         }
     }
     catch (Exception ex)
     {
         MsgBox.Err("错误:" + ex.Message);
     }
 }
예제 #10
0
        public void CancelOrder()
        {
            SOHeaderEntity header = IParent.GetFocusedBill();

            if (header == null)
            {
                MsgBox.Warn("请选择要“取消”的订单。");
                return;
            }
            //先从界面上判断一下,减少网络交互和数据库负载
            if (header.Status == "693")
            {
                MsgBox.Warn(string.Format("单据“{0}”已发车,不允许取消。", header.BillNO));
                return;
            }
            else if (header.CancelFlag == 1)
            {
                MsgBox.Warn(string.Format("单据“{0}”已经被“取消”,不允许多次执行。", header.BillNO));
                return;
            }
            if (MsgBox.AskOK(string.Format("确认要将单据“{0}”执行“取消”操作吗?", header.BillNO)) != DialogResult.OK)
            {
                return;
            }
            try
            {
                FrmTempAuthorize frmAuthorize = new FrmTempAuthorize("称重复核员");
                if (frmAuthorize.ShowDialog() == DialogResult.OK)
                {
                    //string errorStr = soDal.CancelBill(header.BillID, GlobeSettings.LoginedUser.UserName);
                    //if (string.IsNullOrEmpty(errorStr))
                    bool errorStr = CancelBill(header.BillID, GlobeSettings.LoginedUser.UserName,
                                               EUtilStroreType.WarehouseTypeToInt(GlobeSettings.LoginedUser.WarehouseType));
                    if (errorStr)
                    {
                        //成功,刷新界面即可,不再提示
                        Query(1, DateTime.Now, DateTime.Now);
                        IParent.RefreshHeaderGrid();
                        // 如果为整货仓,提示用户;如果该订单物流箱已接收,系统已将商品库存转移到900货位
                        if (GlobeSettings.LoginedUser.WarehouseType == EWarehouseType.整货仓)
                        {
                            MsgBox.OK("如果当前订单存在已接收的物流箱,系统会将散货商品转移到900-01-01货位。");
                        }
                        // 存储过程中已在 WM_SO_LOG 表里记录日志
                        //LogDal.Insert(ELogType.订单状态变更, GlobeSettings.LoginedUser.UserName, header.BillNO, "称重复核员:" + frmAuthorize.AuthUserCode, "出库单管理");
                    }
                    //else
                    //{
                    //    throw new Exception(errorStr);
                    //}
                }
            }
            catch (Exception ex)
            {
                MsgBox.Err(ex.Message);
            }
        }
예제 #11
0
        private void UpdateUIState(SOHeaderEntity selectedHeader, int billID)
        {
            //更新界面显示
            SOHeaderEntity _header = GetBillStatus(billID);

            selectedHeader.Status     = _header.Status;
            selectedHeader.StatusName = _header.StatusName;
            bindingSource1.ResetCurrentItem();
        }
예제 #12
0
        /// <summary>
        /// 查看单据明细行物料入库信息
        /// </summary>
        public void ShowOutboundDetail()
        {
            SOHeaderEntity header = IParent.GetFocusedBill();

            if (header == null)
            {
                MsgBox.Warn("请选中要查看的行。");
            }
            else
            {
            }
        }
예제 #13
0
        private void CheckOneGridColumn(GridView view, string checkedField, Point mousePosition)
        {
            Point       p       = view.GridControl.PointToClient(mousePosition);
            GridHitInfo hitInfo = view.CalcHitInfo(p);

            #region
            if (hitInfo.HitTest == GridHitTest.Column && hitInfo.Column.FieldName == checkedField)
            {
                List <SOHeaderEntity> _data = gridHeader.DataSource as List <SOHeaderEntity>;
                if (_data == null)
                {
                    return;
                }

                int  currentIndex = hitInfo.Column.ImageIndex;
                bool flag         = currentIndex == 0;
                #region
                for (int i = 0; i < gvHeader.RowCount; i++)
                {
                    gvHeader.SetRowCellValue(i, "HasChecked", flag);
                    SOHeaderEntity tmp = gvHeader.GetRow(i) as SOHeaderEntity;
                    if (tmp != null)
                    {
                        //分派装车,查看是否有同一个客户,是否还有其他订单不是当前状态的
                        IsHaveOtherStatus(tmp.CustomerCode);
                    }
                }

                #endregion

                //_data.ForEach(d => d.HasChecked = flag);
                hitInfo.Column.ImageIndex = 4 - currentIndex;
            }
            else
            {
                #region
                SOHeaderEntity selectedHeader = gvHeader.GetFocusedRow() as SOHeaderEntity;
                if (selectedHeader == null)
                {
                    return;
                }

                //分派装车,查看是否有同一个客户,是否还有其他订单不是当前状态的
                IsHaveOtherStatus(selectedHeader.CustomerCode);

                //实现同一客户不同订单置位选中状态
                SetSameCustomerCheck(selectedHeader);
                #endregion
            }
            #endregion
        }
예제 #14
0
        /// <summary>
        /// 装车信息--完成装车2,再次查询信息
        /// </summary>
        /// <param name="vhNO"></param>
        /// <param name="tpyeOpe"></param>
        /// <returns></returns>
        public List <SOHeaderEntity> GetHeaderInfoByBillNOS(string vhNO, int tpyeOpe)
        {
            List <SOHeaderEntity> list = new List <SOHeaderEntity>();

            try
            {
                #region 请求数据
                System.Text.StringBuilder loStr = new System.Text.StringBuilder();
                loStr.Append("vhNo=").Append(vhNO).Append("&");
                loStr.Append("type=").Append(tpyeOpe);
                string jsonQuery = WebWork.SendRequest(loStr.ToString(), WebWork.URL_GetHeaderInfoByBillNOS);
                if (string.IsNullOrEmpty(jsonQuery))
                {
                    MsgBox.Warn(WebWork.RESULT_NULL);
                    //LogHelper.InfoLog(WebWork.RESULT_NULL);
                    return(list);
                }
                #endregion

                #region 正常错误处理

                JsonGetHeaderInfoByBillNOS bill = JsonConvert.DeserializeObject <JsonGetHeaderInfoByBillNOS>(jsonQuery);
                if (bill == null)
                {
                    MsgBox.Warn(WebWork.JSON_DATA_NULL);
                    return(list);
                }
                if (bill.flag != 0)
                {
                    MsgBox.Warn(bill.error);
                    return(list);
                }
                #endregion

                #region 赋值数据
                foreach (JsonGetHeaderInfoByBillNOSResult jbr in bill.result)
                {
                    SOHeaderEntity asnEntity = new SOHeaderEntity();
                    asnEntity.BillID = Convert.ToInt32(jbr.billId);
                    list.Add(asnEntity);
                }
                return(list);

                #endregion
            }
            catch (Exception ex)
            {
                MsgBox.Err(ex.Message);
            }
            return(list);
        }
예제 #15
0
        public void ShowBillLog()
        {
            SOHeaderEntity header = IParent.GetFocusedBill();

            if (header == null)
            {
                MsgBox.Warn("请选中要查看的行。");
            }
            else
            {
                FrmViewBillLog frmLog = new FrmViewBillLog(header.BillID, header.BillNO, "出库单据");
                frmLog.ShowDialog();
            }
        }
예제 #16
0
        /// <summary>
        /// 显示拣货计划
        /// </summary>
        public void ShowPickPlan()
        {
            SOHeaderEntity header = IParent.GetFocusedBill();

            if (header == null)
            {
                MsgBox.Warn("请选中要查看的行。");
            }
            else
            {
                FrmListPickPlan frmListPickPlan = new FrmListPickPlan(header.BillID, header.BillNO);
                frmListPickPlan.ShowDialog();
            }
        }
예제 #17
0
        /// <summary>
        /// 查看称重记录 2015-6-10 10:41:22 by wangjw
        /// </summary>
        public void ShowWeighRecords()
        {
            SOHeaderEntity header = IParent.GetFocusedBill();

            if (header == null)
            {
                MsgBox.Warn("请选中要查看的行。");
            }
            else
            {
                FrmListWeighRecords frmWeightRecords = new FrmListWeighRecords(header.BillID, header.BillNO);
                frmWeightRecords.ShowDialog();
            }
        }
예제 #18
0
        public void ContainerDescribe()
        {
            SOHeaderEntity header = IParent.GetFocusedBill();

            if (header == null)
            {
                MsgBox.Warn("请选中要查看的行。");
            }
            else
            {
                FrmSOContainerDescribe frmWeightRecords = new FrmSOContainerDescribe(header.BillID, header.BillNO);
                frmWeightRecords.ShowDialog();
            }
        }
예제 #19
0
        private void ShowFocusDetail()
        {
            SOHeaderEntity selectedHeader = SelectedHeader;

            if (selectedHeader == null)
            {
                gridDetails.DataSource = null;
                gvDetails.ViewCaption  = "未选择单据";
            }
            else
            {
                gridDetails.DataSource = GetDetails(selectedHeader.BillID);
                gvDetails.ViewCaption  = string.Format("单据号: {0}", selectedHeader.BillNO);
            }
        }
예제 #20
0
        void ShowFocusedPickPlan()
        {
            SOHeaderEntity selectedHeader = SelectedHeader;

            if (selectedHeader == null)
            {
                gridPlans.DataSource = null;
                gvPlans.ViewCaption  = "未选择单据";
            }
            else
            {
                gridPlans.DataSource = GetPickPlan(selectedHeader.BillID);
                gvPlans.ViewCaption  = string.Format("单据号: {0}", selectedHeader.BillNO);
            }
        }
예제 #21
0
        private void OnViewCellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {
            if (e.Column.FieldName != "HasChecked")
            {
                return;
            }
            SOHeaderEntity selectedHeader = gvHeader.GetFocusedRow() as SOHeaderEntity;

            if (selectedHeader == null)
            {
                return;
            }

            selectedHeader.HasChecked = ConvertUtil.ToBool(e.Value);
            gvHeader.CloseEditor();
        }
예제 #22
0
        public void ShowFocusDetail()
        {
            SOHeaderEntity selectedHeader = SelectedHeader;

            if (selectedHeader == null)
            {
                gridDetails.DataSource = null;
                gvDetails.ViewCaption  = "未选择单据";
            }
            else
            {
                gridDetails.DataSource = GetDetails(selectedHeader.BillID);
                gvDetails.ViewCaption  = string.Format("单据号: {0};  超市名称:{1}; 地址:{2}", selectedHeader.BillNO, selectedHeader.CustomerName, selectedHeader.Address);
            }
            this.toolJoinVehicle.Enabled = (selectedHeader != null && selectedHeader.DelayMark == 1);
        }
예제 #23
0
        private void gridView1_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e)
        {
            GridView vw = (sender as GridView);

            try
            {
                SOHeaderEntity header = vw.GetRow(e.RowHandle) as SOHeaderEntity;
                if (header != null)
                {
                    if (header.RowForeColor != null)
                    {
                        e.Appearance.ForeColor = Color.FromArgb(header.RowForeColor.Value);
                    }
                }
            }
            catch (Exception ex) { }
        }
예제 #24
0
        public void CloseBill()
        {
            SOHeaderEntity header = IParent.GetFocusedBill();

            if (header == null)
            {
                MsgBox.Warn("请选中要设置为“发货完成”的行。");
                return;
            }

            //先从界面上判断一下,减少网络交互和数据库负载
            if (header.Status == BaseCodeConstant.SO_STATUS_CLOSE)
            {
                MsgBox.Warn(string.Format("单据“{0}”已经设置为“发货完成”,不允许多次执行。", header.BillNO));
                return;
            }

            if (header.Status == "68" || header.Status == "693")
            {
                MsgBox.Warn(string.Format("单据“{0}”已经“发货完成”,不允许“取消”。", header.BillNO));
                return;
            }

            if (MsgBox.AskOK(string.Format("确认要将单据“{0}”设置为“发货完成”吗?", header.BillNO)) != DialogResult.OK)
            {
                return;
            }

            try
            {
                //FrmTempAuthorize frmAuthorize = new FrmTempAuthorize("称重复核员");
                //if (frmAuthorize.ShowDialog() == DialogResult.OK)
                //{
                //    soDal.CloseBill(header.BillID, GlobeSettings.LoginedUser.UserName);
                //    //成功,刷新界面即可,不再提示

                //    Query(1, DateTime.Now, DateTime.Now);
                //    IParent.RefreshHeaderGrid();
                //    LogDal.Insert(ELogType.订单状态变更, GlobeSettings.LoginedUser.UserName, header.BillNO, "称重复核员:" + frmAuthorize.AuthUserCode, "出库单管理");
                //}
            }
            catch (Exception ex)
            {
                MsgBox.Err(ex.Message);
            }
        }
예제 #25
0
        /// <summary>
        /// 实现同一客户不同订单置位选中状态
        /// </summary>
        public void SetSameCustomerCheck(SOHeaderEntity header, bool isVisibleAll = false)
        {
            try
            {
                if (header != null)
                {
                    //获取选中的单据,只处理显示出来的,不考虑由于过滤导致的未显示单据
                    bool isCheck = true;

                    #region
                    if (isVisibleAll)
                    {
                        if (header.HasChecked == true)
                        {
                            isCheck = true;
                        }
                        else
                        {
                            isCheck = false;
                        }
                    }
                    else
                    {
                        if (header.HasChecked == false)
                        {
                            isCheck = true;
                        }
                        else
                        {
                            isCheck = false;
                        }
                    }
                    #endregion

                    for (int i = 0; i < gvHeader.RowCount; i++)
                    {
                        SOHeaderEntity tmp = gvHeader.GetRow(i) as SOHeaderEntity;
                        if (tmp != null && header.CustomerCode == tmp.CustomerCode)
                        {
                            gvHeader.SetRowCellValue(i, "HasChecked", isCheck);
                        }
                    }
                }
            }
            catch (Exception ex) { }
        }
예제 #26
0
        public void SaveBackAmount()
        {
            SOHeaderEntity header = GetFocusedBill();

            if (header == null)
            {
                MsgBox.Warn("请选中要录入的单据。");
                return;
            }

            FrmConfirmAmount frm = new FrmConfirmAmount(header);

            frm.VehicleNo = lstVehicle.Text.Trim();
            if (frm.ShowDialog() == DialogResult.OK)
            {
                OnbtnQueryClick(null, null);
            }
        }
예제 #27
0
        public void WriteWMSRemark()
        {
            SOHeaderEntity header = IParent.GetFocusedBill();

            if (header == null)
            {
                MsgBox.Warn("请选中要修改的单据。");
            }
            else
            {
                //目前只修改颜色和备注
                FrmEditSO frmEdit = new FrmEditSO(header);
                if (frmEdit.ShowDialog() == DialogResult.OK)
                {
                    //刷新界面显示
                    header.UpdateRemark(frmEdit.Remark, frmEdit.SelectedColor);
                }
            }
        }
예제 #28
0
        void ShowFocusedBillPickPlan()
        {
            SOHeaderEntity selectedHeader = SelectHeader;

            if (selectedHeader == null)
            {
                gridControl2.DataSource = null;

                gridView2.ViewCaption = "未选中任何单据";
                //simpleButton1.Enabled = false;
                //listPickPerson.UnCheckAll();
            }
            else
            {
                List <PickPlanEntity> plans = GetPickPlan(selectedHeader.BillID);
                gridControl2.DataSource = plans;
                gridView2.ViewCaption   = string.Format("拣货单据:{0}", selectedHeader.BillNO);
                //simpleButton1.Enabled = true;
                //CheckMyPDA(selectedHeader.BillID);
            }
        }
예제 #29
0
        public void SetBillState()
        {
            SOHeaderEntity header = IParent.GetFocusedBill();

            if (header == null)
            {
                MsgBox.Warn("请选中要设置为“等待发货”的行。");
                return;
            }
            if (header.Status != "61")
            {
                MsgBox.Warn("只有等待拣配的订单才能设置等待装车。");
                return;
            }
            try
            {
                using (FrmTempAuthorize frmAuto = new FrmTempAuthorize("称重复核员"))
                {
                    if (frmAuto.ShowDialog() == DialogResult.OK)
                    {
                        //int ret = soDal.SetBillStates(header.BillID, "66", 0);
                        //if (ret > 0)
                        bool ret = SetBillStatesSend(header.BillID, "66", 0, GlobeSettings.LoginedUser.UserName);
                        if (ret)
                        {
                            Query(1, DateTime.Now, DateTime.Now);
                        }
                        else
                        {
                            MsgBox.Warn("该订单已经生成拣货任务,必须按照流程完成订单。");
                        }
                        //LogDal.Insert(ELogType.订单状态变更, GlobeSettings.LoginedUser.UserName, header.BillNO, "手动[等待装车]", "出库单管理");
                    }
                }
            }
            catch (Exception ex)
            {
                MsgBox.Err(ex.Message);
            }
        }
예제 #30
0
 public FrmConfirmAmount(SOHeaderEntity header)
 {
     InitializeComponent();
     soDal        = new SODal();
     headerEntity = header;
 }