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); } } } } } }
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(); } } }
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); } } } }
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"); } } } }
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); } } } } } }
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"); } } } }