Example #1
0
        private void btnWholeDelete_Click(object sender, EventArgs e)
        {
            if (dataGridView1.CurrentRow != null && _salesOrder != null && _salesOrder.order != null)
            {
                if (_salesOrder.order.Status == 1)
                {
                    int selectedIndex = dataGridView1.CurrentRow.Index;
                    if (dataGridView1.Rows[selectedIndex].Cells["OrderID"].Value != null)
                    {
                        //权限验证
                        bool hasRights = false;
                        if (RightsItemCode.FindRights(RightsItemCode.CANCELBILL))
                        {
                            hasRights = true;
                        }
                        else
                        {
                            FormRightsCode formRightsCode = new FormRightsCode();
                            formRightsCode.ShowDialog();
                            if (formRightsCode.ReturnValue)
                            {
                                IList <string> rightsCodeList = formRightsCode.RightsCodeList;
                                if (RightsItemCode.FindRights(rightsCodeList, RightsItemCode.CANCELBILL))
                                {
                                    hasRights = true;
                                }
                            }
                        }
                        if (!hasRights)
                        {
                            return;
                        }
                        FormCancelOrder form = new FormCancelOrder();
                        form.ShowDialog();
                        if (form.CurrentReason != null)
                        {
                            //删除订单
                            DeletedOrder deletedOrder = new DeletedOrder();
                            deletedOrder.OrderID           = _salesOrder.order.OrderID;
                            deletedOrder.AuthorisedManager = ConstantValuePool.CurrentEmployee.EmployeeID;
                            deletedOrder.CancelEmployeeNo  = ConstantValuePool.CurrentEmployee.EmployeeNo;
                            deletedOrder.CancelReasonName  = form.CurrentReason.ReasonName;

                            if (DeletedOrderService.GetInstance().DeletePaidWholeOrder(deletedOrder))
                            {
                                dataGridView1.Rows[selectedIndex].Cells["BillType"].Value = "已删除";
                                _salesOrder.order.Status = 2;
                            }
                            else
                            {
                                MessageBox.Show("删除账单失败!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                    }
                }
            }
        }
Example #2
0
        private void btnCancelOrder_Click(object sender, EventArgs e)
        {
            if (_salesOrder != null)
            {
                //权限验证
                bool hasRights = false;
                if (RightsItemCode.FindRights(RightsItemCode.CANCELBILL))
                {
                    hasRights = true;
                }
                else
                {
                    FormRightsCode formRightsCode = new FormRightsCode();
                    formRightsCode.ShowDialog();
                    if (formRightsCode.ReturnValue)
                    {
                        IList<string> rightsCodeList = formRightsCode.RightsCodeList;
                        if (RightsItemCode.FindRights(rightsCodeList, RightsItemCode.CANCELBILL))
                        {
                            hasRights = true;
                        }
                    }
                }
                if (!hasRights)
                {
                    return;
                }
                FormCancelOrder form = new FormCancelOrder();
                form.ShowDialog();
                if (form.CurrentReason != null)
                {
                    //删除订单
                    DeletedOrder deletedOrder = new DeletedOrder();
                    deletedOrder.OrderID = _salesOrder.order.OrderID;
                    deletedOrder.AuthorisedManager = ConstantValuePool.CurrentEmployee.EmployeeID;
                    deletedOrder.CancelEmployeeNo = ConstantValuePool.CurrentEmployee.EmployeeNo;
                    deletedOrder.CancelReasonName = form.CurrentReason.ReasonName;

                    if (DeletedOrderService.GetInstance().DeleteWholeOrder(deletedOrder))
                    {
                        //加载外卖单列表
                        IList<DeliveryOrder> deliveryOrderList = OrderService.GetInstance().GetDeliveryOrderList();
                        if (deliveryOrderList != null)
                        {
                            _pageIndex = 0;
                            _deliveryOrderList = deliveryOrderList;
                            DisplayDeliveryOrderButton();
                        }
                    }
                    else
                    {
                        MessageBox.Show("删除账单失败!");
                        return;
                    }
                }
                else
                {
                    return;
                }
            }
            this.lbTotalPrice.Text = "总金额:";
            this.lbDiscount.Text = "折扣:";
            this.lbNeedPayMoney.Text = "实际应付:";
            this.lbCutOff.Text = "去零:";
            dgvGoodsOrder.Rows.Clear();
            _salesOrder = null;
            btnDeliveryGoods.Enabled = false;
            btnDeliveryGoods.BackColor = ConstantValuePool.DisabledColor;
            btnOutsideOrder.Enabled = true;
            btnOutsideOrder.BackColor = btnOutsideOrder.DisplayColor;
            txtTelephone.Text = string.Empty;
            txtName.Text = string.Empty;
            txtAddress.Text = string.Empty;
            txtTelephone.ReadOnly = false;
            txtName.ReadOnly = false;
            //更新第二屏信息
            if (Screen.AllScreens.Length > 1 && ConstantValuePool.BizSettingConfig.SecondScreenEnabled)
            {
                if (ConstantValuePool.SecondScreenForm != null && ConstantValuePool.SecondScreenForm is FormSecondScreen)
                {
                    ((FormSecondScreen)ConstantValuePool.SecondScreenForm).ClearGoodsOrderInfo();
                }
            }
        }
Example #3
0
        private void btnCancel_Click(object sender, EventArgs e)
        {
            if (dgvGoodsOrder.CurrentRow != null)
            {
                int selectIndex = dgvGoodsOrder.CurrentRow.Index;
                if (dgvGoodsOrder.Rows[selectIndex].Cells["OrderDetailsID"].Value != null)
                {
                    int itemType = Convert.ToInt32(dgvGoodsOrder.Rows[selectIndex].Cells["ItemType"].Value);
                    if (itemType == (int)OrderItemType.Details)
                    {
                        MessageBox.Show("细项不能单独删除!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return;
                    }
                    if (itemType == (int)OrderItemType.SetMeal)
                    {
                        MessageBox.Show("套餐项不能单独删除!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return;
                    }
                    Guid orderDetailsId = new Guid(dgvGoodsOrder.Rows[selectIndex].Cells["OrderDetailsID"].Value.ToString());
                    decimal goodsNum = Convert.ToDecimal(dgvGoodsOrder.Rows[selectIndex].Cells["GoodsNum"].Value);
                    string goodsName = dgvGoodsOrder.Rows[selectIndex].Cells["GoodsName"].Value.ToString();
                    decimal goodsPrice = Convert.ToDecimal(dgvGoodsOrder.Rows[selectIndex].Cells["GoodsPrice"].Value);
                    if (!RightsItemCode.FindRights(RightsItemCode.CANCELGOODS))
                    {
                        decimal singleItemPriceSum = goodsPrice / goodsNum;
                        if (itemType == (int)OrderItemType.Goods && selectIndex < dgvGoodsOrder.Rows.Count - 1)
                        {
                            for (int index = selectIndex + 1; index < dgvGoodsOrder.RowCount; index++)
                            {
                                if (Convert.ToInt32(dgvGoodsOrder.Rows[index].Cells["ItemType"].Value) == (int)OrderItemType.Goods)
                                {
                                    break;
                                }
                                singleItemPriceSum += Convert.ToDecimal(dgvGoodsOrder.Rows[index].Cells["GoodsPrice"].Value) / Convert.ToDecimal(dgvGoodsOrder.Rows[index].Cells["GoodsNum"].Value);
                            }
                            if (singleItemPriceSum > ConstantValuePool.CurrentEmployee.LimitMoney)
                            {
                                if (DialogResult.Yes == MessageBox.Show("当前用户不具备该权限,并且超过最高退菜限额,是否更换用户?", "信息提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
                                {
                                    //权限验证
                                    bool hasRights = false;
                                    FormRightsCode formRightsCode = new FormRightsCode();
                                    formRightsCode.ShowDialog();
                                    if (formRightsCode.ReturnValue)
                                    {
                                        IList<string> rightsCodeList = formRightsCode.RightsCodeList;
                                        if (RightsItemCode.FindRights(rightsCodeList, RightsItemCode.CANCELGOODS))
                                        {
                                            hasRights = true;
                                        }
                                    }
                                    if (!hasRights)
                                    {
                                        return;
                                    }
                                }
                                else
                                {
                                    return;
                                }
                            }
                        }
                    }
                    FormCancelOrder form = new FormCancelOrder(goodsName, goodsNum);
                    form.ShowDialog();
                    if (form.DelItemNum > 0 && form.CurrentReason != null)
                    {
                        if (form.DelItemNum < goodsNum)
                        {
                            //Key:Index, Value:RemainNum
                            Dictionary<int, decimal> dicRemainNum = new Dictionary<int, decimal>();
                            List<DeletedOrderDetails> deletedOrderDetailsList = new List<DeletedOrderDetails>();
                            //主项
                            decimal remainNum = goodsNum - form.DelItemNum;
                            dicRemainNum.Add(selectIndex, remainNum);
                            decimal originalDetailsNum = Convert.ToDecimal(dgvGoodsOrder.Rows[selectIndex].Cells["GoodsNum"].Value);
                            decimal originalDetailsDiscount = Convert.ToDecimal(dgvGoodsOrder.Rows[selectIndex].Cells["GoodsDiscount"].Value);
                            DeletedOrderDetails orderDetails = new DeletedOrderDetails();
                            orderDetails.OrderDetailsID = orderDetailsId;
                            orderDetails.DeletedQuantity = -form.DelItemNum;
                            orderDetails.RemainQuantity = remainNum;
                            orderDetails.OffPay = Math.Round(-originalDetailsDiscount / originalDetailsNum * remainNum, 4);
                            orderDetails.AuthorisedManager = ConstantValuePool.CurrentEmployee.EmployeeID;
                            orderDetails.CancelEmployeeNo = ConstantValuePool.CurrentEmployee.EmployeeNo;
                            orderDetails.CancelReasonName = form.CurrentReason.ReasonName;
                            deletedOrderDetailsList.Add(orderDetails);
                            //细项
                            if (selectIndex < dgvGoodsOrder.Rows.Count - 1)
                            {
                                for (int index = selectIndex + 1; index < dgvGoodsOrder.RowCount; index++)
                                {
                                    if (Convert.ToInt32(dgvGoodsOrder.Rows[index].Cells["ItemType"].Value) == (int)OrderItemType.Goods)
                                    {
                                        break;
                                    }
                                    orderDetailsId = new Guid(dgvGoodsOrder.Rows[index].Cells["OrderDetailsID"].Value.ToString());
                                    originalDetailsNum = Convert.ToDecimal(dgvGoodsOrder.Rows[index].Cells["GoodsNum"].Value);
                                    originalDetailsDiscount = Convert.ToDecimal(dgvGoodsOrder.Rows[index].Cells["GoodsDiscount"].Value);
                                    decimal delItemNum = originalDetailsNum / goodsNum * form.DelItemNum;
                                    remainNum = originalDetailsNum - delItemNum;
                                    dicRemainNum.Add(index, remainNum);
                                    DeletedOrderDetails item = new DeletedOrderDetails();
                                    item.OrderDetailsID = orderDetailsId;
                                    item.DeletedQuantity = -delItemNum;
                                    item.RemainQuantity = remainNum;
                                    item.OffPay = Math.Round(-originalDetailsDiscount / originalDetailsNum * remainNum, 4);
                                    item.AuthorisedManager = ConstantValuePool.CurrentEmployee.EmployeeID;
                                    item.CancelEmployeeNo = ConstantValuePool.CurrentEmployee.EmployeeNo;
                                    item.CancelReasonName = form.CurrentReason.ReasonName;
                                    deletedOrderDetailsList.Add(item);
                                }
                            }
                            //计算价格信息
                            decimal totalPrice = 0, totalDiscount = 0;
                            for (int i = 0; i < dgvGoodsOrder.RowCount; i++)
                            {
                                if (dgvGoodsOrder.Rows[i].Cells["OrderDetailsID"].Value != null)
                                {
                                    if (dicRemainNum.ContainsKey(i))
                                    {
                                        decimal originalDetailsPrice = Convert.ToDecimal(dgvGoodsOrder.Rows[i].Cells["GoodsPrice"].Value);
                                        originalDetailsNum = Convert.ToDecimal(dgvGoodsOrder.Rows[i].Cells["GoodsNum"].Value);
                                        originalDetailsDiscount = Convert.ToDecimal(dgvGoodsOrder.Rows[i].Cells["GoodsDiscount"].Value);
                                        totalPrice += originalDetailsPrice / originalDetailsNum * dicRemainNum[i];
                                        totalDiscount += originalDetailsDiscount / originalDetailsNum * dicRemainNum[i];
                                    }
                                    else
                                    {
                                        totalPrice += Convert.ToDecimal(dgvGoodsOrder.Rows[i].Cells["GoodsPrice"].Value);
                                        totalDiscount += Convert.ToDecimal(dgvGoodsOrder.Rows[i].Cells["GoodsDiscount"].Value);
                                    }
                                }
                            }
                            decimal wholePayMoney = totalPrice + totalDiscount;
                            decimal actualPayMoney = CutOffDecimal.HandleCutOff(wholePayMoney, ConstantValuePool.SysConfig.IsCutTail, ConstantValuePool.SysConfig.CutTailType, ConstantValuePool.SysConfig.CutTailDigit);
                            //构造DeletedSingleOrder对象
                            DeletedSingleOrder deletedSingleOrder = new DeletedSingleOrder();
                            deletedSingleOrder.OrderID = _salesOrder.order.OrderID;
                            deletedSingleOrder.TotalSellPrice = totalPrice;
                            deletedSingleOrder.ActualSellPrice = actualPayMoney;
                            deletedSingleOrder.DiscountPrice = totalDiscount;
                            deletedSingleOrder.CutOffPrice = wholePayMoney - actualPayMoney;
                            deletedSingleOrder.deletedOrderDetailsList = deletedOrderDetailsList;

                            if (DeletedOrderService.GetInstance().DeleteSingleOrder(deletedSingleOrder))
                            {
                                foreach (KeyValuePair<int, decimal> item in dicRemainNum)
                                {
                                    int index = item.Key;
                                    decimal remainsNum = item.Value;
                                    decimal detailsNum = Convert.ToDecimal(dgvGoodsOrder.Rows[index].Cells["GoodsNum"].Value);
                                    decimal detailsPrice = Convert.ToDecimal(dgvGoodsOrder.Rows[index].Cells["GoodsPrice"].Value);
                                    decimal detailsDiscount = Convert.ToDecimal(dgvGoodsOrder.Rows[index].Cells["GoodsDiscount"].Value);
                                    dgvGoodsOrder.Rows[index].Cells["GoodsNum"].Value = remainsNum;
                                    dgvGoodsOrder.Rows[index].Cells["GoodsPrice"].Value = detailsPrice / detailsNum * remainsNum;
                                    dgvGoodsOrder.Rows[index].Cells["GoodsDiscount"].Value = detailsDiscount / detailsNum * remainsNum;
                                }
                            }
                            else
                            {
                                MessageBox.Show("删除品项失败!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                return;
                            }
                        }
                        else
                        {
                            List<int> deletedIndexList = new List<int>();
                            List<DeletedOrderDetails> deletedOrderDetailsList = new List<DeletedOrderDetails>();
                            //主项
                            deletedIndexList.Add(selectIndex);
                            DeletedOrderDetails orderDetails = new DeletedOrderDetails();
                            orderDetails.OrderDetailsID = orderDetailsId;
                            orderDetails.DeletedQuantity = -Convert.ToDecimal(dgvGoodsOrder.Rows[selectIndex].Cells["GoodsNum"].Value);
                            orderDetails.RemainQuantity = 0;
                            orderDetails.OffPay = 0;
                            orderDetails.AuthorisedManager = ConstantValuePool.CurrentEmployee.EmployeeID;
                            orderDetails.CancelEmployeeNo = ConstantValuePool.CurrentEmployee.EmployeeNo;
                            orderDetails.CancelReasonName = form.CurrentReason.ReasonName;
                            deletedOrderDetailsList.Add(orderDetails);
                            //细项
                            if (selectIndex < dgvGoodsOrder.RowCount - 1)
                            {
                                for (int index = selectIndex + 1; index < dgvGoodsOrder.RowCount; index++)
                                {
                                    if (Convert.ToInt32(dgvGoodsOrder.Rows[index].Cells["ItemType"].Value) == (int)OrderItemType.Goods)
                                    {
                                        break;
                                    }
                                    deletedIndexList.Add(index);
                                    orderDetailsId = new Guid(dgvGoodsOrder.Rows[index].Cells["OrderDetailsID"].Value.ToString());
                                    DeletedOrderDetails item = new DeletedOrderDetails();
                                    item.OrderDetailsID = orderDetailsId;
                                    item.DeletedQuantity = -Convert.ToDecimal(dgvGoodsOrder.Rows[index].Cells["GoodsNum"].Value);
                                    item.RemainQuantity = 0;
                                    item.OffPay = 0;
                                    item.AuthorisedManager = ConstantValuePool.CurrentEmployee.EmployeeID;
                                    item.CancelEmployeeNo = ConstantValuePool.CurrentEmployee.EmployeeNo;
                                    item.CancelReasonName = form.CurrentReason.ReasonName;
                                    deletedOrderDetailsList.Add(item);
                                }
                            }
                            //计算价格信息
                            decimal totalPrice = 0, totalDiscount = 0;
                            for (int i = 0; i < dgvGoodsOrder.RowCount; i++)
                            {
                                if (dgvGoodsOrder.Rows[i].Cells["OrderDetailsID"].Value != null)
                                {
                                    bool hasDeleted = false;
                                    foreach (int deletedIndex in deletedIndexList)
                                    {
                                        if (i == deletedIndex)
                                        {
                                            hasDeleted = true;
                                            break;
                                        }
                                    }
                                    if (hasDeleted) continue;
                                    totalPrice += Convert.ToDecimal(dgvGoodsOrder.Rows[i].Cells["GoodsPrice"].Value);
                                    totalDiscount += Convert.ToDecimal(dgvGoodsOrder.Rows[i].Cells["GoodsDiscount"].Value);
                                }
                            }
                            decimal wholePayMoney = totalPrice + totalDiscount;
                            decimal actualPayMoney = CutOffDecimal.HandleCutOff(wholePayMoney, ConstantValuePool.SysConfig.IsCutTail, ConstantValuePool.SysConfig.CutTailType, ConstantValuePool.SysConfig.CutTailDigit);
                            //构造DeletedSingleOrder对象
                            DeletedSingleOrder deletedSingleOrder = new DeletedSingleOrder();
                            deletedSingleOrder.OrderID = _salesOrder.order.OrderID;
                            deletedSingleOrder.TotalSellPrice = totalPrice;
                            deletedSingleOrder.ActualSellPrice = actualPayMoney;
                            deletedSingleOrder.DiscountPrice = totalDiscount;
                            deletedSingleOrder.CutOffPrice = wholePayMoney - actualPayMoney;
                            deletedSingleOrder.deletedOrderDetailsList = deletedOrderDetailsList;

                            if (DeletedOrderService.GetInstance().DeleteSingleOrder(deletedSingleOrder))
                            {
                                for (int i = deletedIndexList.Count - 1; i >= 0; i--)
                                {
                                    dgvGoodsOrder.Rows.RemoveAt(deletedIndexList[i]);
                                }
                            }
                            else
                            {
                                MessageBox.Show("删除品项失败!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                return;
                            }
                        }
                    }
                }
                else
                {
                    if (Convert.ToInt32(dgvGoodsOrder.Rows[selectIndex].Cells["ItemType"].Value) == (int)OrderItemType.Details)
                    {
                        dgvGoodsOrder.Rows.RemoveAt(selectIndex);
                    }
                    else if (Convert.ToInt32(dgvGoodsOrder.Rows[selectIndex].Cells["ItemType"].Value) == (int)OrderItemType.SetMeal)
                    {
                        MessageBox.Show("套餐项不能单独删除!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return;
                    }
                    else
                    {
                        dgvGoodsOrder.Rows.RemoveAt(selectIndex);
                        if (selectIndex < dgvGoodsOrder.RowCount - 1)
                        {
                            for (int i = selectIndex; i < dgvGoodsOrder.RowCount; i++)
                            {
                                if (Convert.ToInt32(dgvGoodsOrder.Rows[i].Cells["ItemType"].Value) == (int)OrderItemType.Goods)
                                {
                                    break;
                                }
                                dgvGoodsOrder.Rows.RemoveAt(i);
                                i--;
                            }
                        }
                    }
                }
                //统计
                BindOrderInfoSum();
                //更新第二屏信息
                if (Screen.AllScreens.Length > 1 && ConstantValuePool.BizSettingConfig.SecondScreenEnabled)
                {
                    if (ConstantValuePool.SecondScreenForm != null && ConstantValuePool.SecondScreenForm is FormSecondScreen)
                    {
                        ((FormSecondScreen)ConstantValuePool.SecondScreenForm).BindGoodsOrderInfo(dgvGoodsOrder);
                    }
                }
            }
        }
Example #4
0
 private void btnDeleteNumber_Click(object sender, EventArgs e)
 {
     if (dgvGoodsOrder.CurrentRow != null)
     {
         int selectIndex = dgvGoodsOrder.CurrentRow.Index;
         OrderDetails orderDetails = dgvGoodsOrder.Rows[selectIndex].Cells["OrderDetailsID"].Tag as OrderDetails;
         if (orderDetails.ItemType == (int)OrderItemType.Details)
         {
             MessageBox.Show("细项不能单独删除!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         if (orderDetails.ItemType == (int)OrderItemType.SetMeal)
         {
             MessageBox.Show("套餐项不能单独删除!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         CrystalButton btn = sender as CrystalButton;
         decimal goodsNum = Convert.ToDecimal(dgvGoodsOrder.Rows[selectIndex].Cells["GoodsNum"].Value);
         decimal deletedNum = Convert.ToDecimal(dgvGoodsOrder.Rows[selectIndex].Cells["DelFlag"].Value);
         decimal delNum = Math.Abs(decimal.Parse(btn.Text));
         if (delNum > goodsNum + deletedNum)
         {
             MessageBox.Show("删除的品项数量不能超过剩余数量!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         else
         {
             int goodsTotalCount = 0; //菜品主项数量合计
             for (int i = 0; i < dgvGoodsOrder.RowCount; i++)
             {
                 OrderDetails tempOrderDetails = dgvGoodsOrder.Rows[i].Cells["OrderDetailsID"].Tag as OrderDetails;
                 if (tempOrderDetails.ItemType == (int)OrderItemType.Goods)
                 {
                     decimal tempGoodsNum = Convert.ToDecimal(dgvGoodsOrder.Rows[i].Cells["GoodsNum"].Value);
                     decimal tempDeletedNum = Convert.ToDecimal(dgvGoodsOrder.Rows[i].Cells["DelFlag"].Value);
                     if (tempGoodsNum + tempDeletedNum > 0)
                     {
                         goodsTotalCount++;
                     }
                 }
             }
             if (goodsTotalCount == 1 && delNum >= goodsNum + deletedNum)
             {
                 MessageBox.Show("如果您要进行退单操作,请整单删除!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 return;
             }
             FormCancelOrder form = new FormCancelOrder();
             form.ShowDialog();
             if (form.CurrentReason != null)
             {
                 dgvGoodsOrder.Rows[selectIndex].Cells["DelFlag"].Value = deletedNum - delNum;
                 dgvGoodsOrder.Rows[selectIndex].Cells["DelReasonName"].Value = form.CurrentReason.ReasonName;
                 //细项和套餐
                 for (int i = selectIndex + 1; i < dgvGoodsOrder.RowCount; i++)
                 {
                     OrderDetails tempOrderDetails = dgvGoodsOrder.Rows[i].Cells["OrderDetailsID"].Tag as OrderDetails;
                     if (tempOrderDetails.ItemType == (int)OrderItemType.Goods)
                     {
                         break;
                     }
                     else
                     {
                         decimal detailsDeletedNum = Convert.ToDecimal(dgvGoodsOrder.Rows[i].Cells["DelFlag"].Value);
                         decimal detailsDelNum = tempOrderDetails.ItemQty / goodsNum * delNum;
                         dgvGoodsOrder.Rows[i].Cells["DelFlag"].Value = detailsDeletedNum - detailsDelNum;
                         dgvGoodsOrder.Rows[i].Cells["DelReasonName"].Value = form.CurrentReason.ReasonName;
                     }
                 }
                 CalculateOrderPrice();
                 txtRefundAmount.Text = (m_SalesOrder.order.ActualSellPrice + m_SalesOrder.order.ServiceFee - (m_ActualPayMoney + m_ServiceFee)).ToString("f2");
             }
         }
     }
 }
Example #5
0
        private void btnCancelOrder_Click(object sender, EventArgs e)
        {
            if (_salesOrder != null)
            {
                //权限验证
                bool hasRights = false;
                if (RightsItemCode.FindRights(RightsItemCode.CANCELBILL))
                {
                    hasRights = true;
                }
                else
                {
                    FormRightsCode formRightsCode = new FormRightsCode();
                    formRightsCode.ShowDialog();
                    if (formRightsCode.ReturnValue)
                    {
                        IList<string> rightsCodeList = formRightsCode.RightsCodeList;
                        if (RightsItemCode.FindRights(rightsCodeList, RightsItemCode.CANCELBILL))
                        {
                            hasRights = true;
                        }
                    }
                }
                if (!hasRights)
                {
                    return;
                }
                FormCancelOrder form = new FormCancelOrder();
                form.ShowDialog();
                if (form.CurrentReason != null)
                {
                    //删除订单
                    DeletedOrder deletedOrder = new DeletedOrder();
                    deletedOrder.OrderID = _salesOrder.order.OrderID;
                    deletedOrder.AuthorisedManager = ConstantValuePool.CurrentEmployee.EmployeeID;
                    deletedOrder.CancelEmployeeNo = ConstantValuePool.CurrentEmployee.EmployeeNo;
                    deletedOrder.CancelReasonName = form.CurrentReason.ReasonName;

                    if (!DeletedOrderService.GetInstance().DeleteWholeOrder(deletedOrder))
                    {
                        MessageBox.Show("删除账单失败!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Error);;
                        return;
                    }
                }
                else
                {
                    return;
                }
            }
            //更新桌况为空闲状态
            int status = (int)DeskButtonStatus.IDLE_MODE;
            if (DeskService.GetInstance().UpdateDeskStatus(_currentDeskName, string.Empty, status))
            {
                //更新第二屏信息
                if (Screen.AllScreens.Length > 1 && ConstantValuePool.BizSettingConfig.SecondScreenEnabled)
                {
                    if (ConstantValuePool.SecondScreenForm != null && ConstantValuePool.SecondScreenForm is FormSecondScreen)
                    {
                        ((FormSecondScreen)ConstantValuePool.SecondScreenForm).ClearGoodsOrderInfo();
                    }
                }
                _onShow = false;
                this.Hide();
            }
            else
            {
                MessageBox.Show("更新桌况状态错误 !");
                return;
            }
        }
        private void btnWholeDelete_Click(object sender, EventArgs e)
        {
            if (dataGridView1.CurrentRow != null && _salesOrder != null && _salesOrder.order != null)
            {
                if (_salesOrder.order.Status == 1)
                {
                    int selectedIndex = dataGridView1.CurrentRow.Index;
                    if (dataGridView1.Rows[selectedIndex].Cells["OrderID"].Value != null)
                    {
                        //权限验证
                        bool hasRights = false;
                        if (RightsItemCode.FindRights(RightsItemCode.CANCELBILL))
                        {
                            hasRights = true;
                        }
                        else
                        {
                            FormRightsCode formRightsCode = new FormRightsCode();
                            formRightsCode.ShowDialog();
                            if (formRightsCode.ReturnValue)
                            {
                                IList<string> rightsCodeList = formRightsCode.RightsCodeList;
                                if (RightsItemCode.FindRights(rightsCodeList, RightsItemCode.CANCELBILL))
                                {
                                    hasRights = true;
                                }
                            }
                        }
                        if (!hasRights)
                        {
                            return;
                        }
                        FormCancelOrder form = new FormCancelOrder();
                        form.ShowDialog();
                        if (form.CurrentReason != null)
                        {
                            //删除订单
                            DeletedOrder deletedOrder = new DeletedOrder();
                            deletedOrder.OrderID = _salesOrder.order.OrderID;
                            deletedOrder.AuthorisedManager = ConstantValuePool.CurrentEmployee.EmployeeID;
                            deletedOrder.CancelEmployeeNo = ConstantValuePool.CurrentEmployee.EmployeeNo;
                            deletedOrder.CancelReasonName = form.CurrentReason.ReasonName;

                            if (DeletedOrderService.GetInstance().DeletePaidWholeOrder(deletedOrder))
                            {
                                dataGridView1.Rows[selectedIndex].Cells["BillType"].Value = "已删除";
                                _salesOrder.order.Status = 2;
                            }
                            else
                            {
                                MessageBox.Show("删除账单失败!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                    }
                }
            }
        }
Example #7
0
 private void btnDeleteNumber_Click(object sender, EventArgs e)
 {
     if (dgvGoodsOrder.CurrentRow != null)
     {
         int          selectIndex  = dgvGoodsOrder.CurrentRow.Index;
         OrderDetails orderDetails = dgvGoodsOrder.Rows[selectIndex].Cells["OrderDetailsID"].Tag as OrderDetails;
         if (orderDetails.ItemType == (int)OrderItemType.Details)
         {
             MessageBox.Show("细项不能单独删除!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         if (orderDetails.ItemType == (int)OrderItemType.SetMeal)
         {
             MessageBox.Show("套餐项不能单独删除!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         CrystalButton btn        = sender as CrystalButton;
         decimal       goodsNum   = Convert.ToDecimal(dgvGoodsOrder.Rows[selectIndex].Cells["GoodsNum"].Value);
         decimal       deletedNum = Convert.ToDecimal(dgvGoodsOrder.Rows[selectIndex].Cells["DelFlag"].Value);
         decimal       delNum     = Math.Abs(decimal.Parse(btn.Text));
         if (delNum > goodsNum + deletedNum)
         {
             MessageBox.Show("删除的品项数量不能超过剩余数量!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         else
         {
             int goodsTotalCount = 0; //菜品主项数量合计
             for (int i = 0; i < dgvGoodsOrder.RowCount; i++)
             {
                 OrderDetails tempOrderDetails = dgvGoodsOrder.Rows[i].Cells["OrderDetailsID"].Tag as OrderDetails;
                 if (tempOrderDetails.ItemType == (int)OrderItemType.Goods)
                 {
                     decimal tempGoodsNum   = Convert.ToDecimal(dgvGoodsOrder.Rows[i].Cells["GoodsNum"].Value);
                     decimal tempDeletedNum = Convert.ToDecimal(dgvGoodsOrder.Rows[i].Cells["DelFlag"].Value);
                     if (tempGoodsNum + tempDeletedNum > 0)
                     {
                         goodsTotalCount++;
                     }
                 }
             }
             if (goodsTotalCount == 1 && delNum >= goodsNum + deletedNum)
             {
                 MessageBox.Show("如果您要进行退单操作,请整单删除!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 return;
             }
             FormCancelOrder form = new FormCancelOrder();
             form.ShowDialog();
             if (form.CurrentReason != null)
             {
                 dgvGoodsOrder.Rows[selectIndex].Cells["DelFlag"].Value       = deletedNum - delNum;
                 dgvGoodsOrder.Rows[selectIndex].Cells["DelReasonName"].Value = form.CurrentReason.ReasonName;
                 //细项和套餐
                 for (int i = selectIndex + 1; i < dgvGoodsOrder.RowCount; i++)
                 {
                     OrderDetails tempOrderDetails = dgvGoodsOrder.Rows[i].Cells["OrderDetailsID"].Tag as OrderDetails;
                     if (tempOrderDetails.ItemType == (int)OrderItemType.Goods)
                     {
                         break;
                     }
                     else
                     {
                         decimal detailsDeletedNum = Convert.ToDecimal(dgvGoodsOrder.Rows[i].Cells["DelFlag"].Value);
                         decimal detailsDelNum     = tempOrderDetails.ItemQty / goodsNum * delNum;
                         dgvGoodsOrder.Rows[i].Cells["DelFlag"].Value       = detailsDeletedNum - detailsDelNum;
                         dgvGoodsOrder.Rows[i].Cells["DelReasonName"].Value = form.CurrentReason.ReasonName;
                     }
                 }
                 CalculateOrderPrice();
                 txtRefundAmount.Text = (m_SalesOrder.order.ActualSellPrice + m_SalesOrder.order.ServiceFee - (m_ActualPayMoney + m_ServiceFee)).ToString("f2");
             }
         }
     }
 }