Beispiel #1
0
        public bool DeletePaidWholeOrder(DeletedOrder deletedOrder)
        {
            bool returnValue = false;

            _daoManager.BeginTransaction();
            try
            {
                if (_orderDao.DeleteWholeOrder(deletedOrder))
                {
                    if (_orderDetailsDao.DeleteWholeOrderDetails(deletedOrder))
                    {
                        _orderDiscountDao.DeleteOrderDiscount(deletedOrder.OrderID);
                        _orderPayoffDao.DeleteOrderPayoff(deletedOrder.OrderID);
                        returnValue = true;
                    }
                }
                _daoManager.CommitTransaction();
            }
            catch (Exception exception)
            {
                _daoManager.RollBackTransaction();
                returnValue = false;
                LogHelper.GetInstance().Error(string.Format("[DeletePaidWholeOrder]参数:deletedOrder_{0}", JsonConvert.SerializeObject(deletedOrder)), exception);
            }
            return(returnValue);
        }
Beispiel #2
0
        public bool DeleteWholeOrder(DeletedOrder deletedOrder)
        {
            string json = JsonConvert.SerializeObject(deletedOrder);

            byte[] jsonByte = Encoding.UTF8.GetBytes(json);

            int cByte = ParamFieldLength.PACKAGE_HEAD + jsonByte.Length;

            byte[] sendByte   = new byte[cByte];
            int    byteOffset = 0;

            Array.Copy(BitConverter.GetBytes((int)Command.ID_DELETE_WHOLEORDER), sendByte, BasicTypeLength.INT32);
            byteOffset = BasicTypeLength.INT32;
            Array.Copy(BitConverter.GetBytes(cByte), 0, sendByte, byteOffset, BasicTypeLength.INT32);
            byteOffset += BasicTypeLength.INT32;
            Array.Copy(jsonByte, 0, sendByte, byteOffset, jsonByte.Length);
            byteOffset += jsonByte.Length;

            bool result = false;

            using (SocketClient socket = new SocketClient(ConstantValuePool.BizSettingConfig.IPAddress, ConstantValuePool.BizSettingConfig.Port))
            {
                Byte[] receiveData = null;
                Int32  operCode    = socket.SendReceive(sendByte, out receiveData);
                if (operCode == (int)RET_VALUE.SUCCEEDED)
                {
                    result = true;
                }
                socket.Close();
            }
            return(result);
        }
Beispiel #3
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);
                            }
                        }
                    }
                }
            }
        }
Beispiel #4
0
 public DeletedOrderLine(DeletedOrder order, OrderLine orderLine)
     : base(orderLine)
 {
     Order         = order;
     ServerOrderId = order.ServerId;
     Count         = orderLine.Count;
     Comment       = orderLine.Comment;
     ResultCost    = orderLine.ResultCost;
     ServerId      = orderLine.ExportId;
     RetailCost    = orderLine.RetailCost;
     RetailMarkup  = orderLine.RetailMarkup;
     IsEditByUser  = orderLine.IsEditByUser;
 }
Beispiel #5
0
        public bool DeleteWholeOrder(DeletedOrder deletedOrder)
        {
            bool returnValue = false;

            _daoManager.BeginTransaction();
            try
            {
                SystemConfig systemConfig = _sysConfigDao.GetSystemConfigInfo();
                if (systemConfig.IncludeKitchenPrint)
                {
                    //获取打印任务列表
                    Order order = _orderDao.GetOrder(deletedOrder.OrderID);
                    IList <OrderDetails> orderDetailsList = _orderDetailsDao.GetOrderDetailsList(deletedOrder.OrderID);
                    SalesOrder           salesOrder       = new SalesOrder
                    {
                        order            = order,
                        orderDetailsList = orderDetailsList
                    };
                    IList <PrintTask> printTaskList = PrintTaskService.GetInstance().GetPrintTaskList(salesOrder, systemConfig.PrintStyle, systemConfig.FollowStyle, systemConfig.PrintType, 2, deletedOrder.CancelReasonName);
                    foreach (PrintTask printTask in printTaskList)
                    {
                        printTask.ItemQty = -printTask.ItemQty; //数量应该为负数
                        _printTaskDao.InsertPrintTask(printTask);
                    }
                }
                //删除账单
                if (_orderDao.DeleteWholeOrder(deletedOrder))
                {
                    if (_orderDetailsDao.DeleteWholeOrderDetails(deletedOrder))
                    {
                        //该订单可能不包含折扣
                        _orderDiscountDao.DeleteOrderDiscount(deletedOrder.OrderID);
                        returnValue = true;
                    }
                }
                _daoManager.CommitTransaction();
            }
            catch (Exception exception)
            {
                _daoManager.RollBackTransaction();
                returnValue = false;
                LogHelper.GetInstance().Error(string.Format("[DeleteWholeOrder]参数:deletedOrder_{0}", JsonConvert.SerializeObject(deletedOrder)), exception);
            }
            return(returnValue);
        }
Beispiel #6
0
        private void DeleteOrder(Order order)
        {
            Log.Info($"Перемещение в корзину текущего заказа {order.DisplayId} дата создания: {order.CreatedOn}" +
                     $" прайс-лист: {order.SafePrice?.Name}" +
                     $" позиций: {order.LinesCount}");

            var deletedOrder = new DeletedOrder(order);

            Session.Save(deletedOrder);
            DeletedOrders.Add(deletedOrder);

            Session.Delete(order);
            if (order.Address != null && !order.Address.IsProxy())
            {
                order.Address.Orders.Remove(order);
            }
            Orders.Remove(order);
            Session.Flush();
        }
Beispiel #7
0
        public static byte[] DeletePaidWholeOrder(byte[] itemBuffer)
        {
            byte[]       objRet       = null;
            string       strReceive   = Encoding.UTF8.GetString(itemBuffer, ParamFieldLength.PACKAGE_HEAD, itemBuffer.Length - ParamFieldLength.PACKAGE_HEAD).Trim('\0');
            DeletedOrder deletedOrder = JsonConvert.DeserializeObject <DeletedOrder>(strReceive);

            bool result = DeletedOrderService.GetInstance().DeletePaidWholeOrder(deletedOrder);

            if (result)
            {
                //删除订单成功
                objRet = new byte[ParamFieldLength.PACKAGE_HEAD];
                Array.Copy(BitConverter.GetBytes((int)RET_VALUE.SUCCEEDED), 0, objRet, 0, BasicTypeLength.INT32);
                Array.Copy(BitConverter.GetBytes(ParamFieldLength.PACKAGE_HEAD), 0, objRet, BasicTypeLength.INT32, BasicTypeLength.INT32);
            }
            else
            {
                //删除订单失败
                objRet = new byte[ParamFieldLength.PACKAGE_HEAD];
                Array.Copy(BitConverter.GetBytes((int)RET_VALUE.ERROR_DB), 0, objRet, 0, BasicTypeLength.INT32);
                Array.Copy(BitConverter.GetBytes(ParamFieldLength.PACKAGE_HEAD), 0, objRet, BasicTypeLength.INT32, BasicTypeLength.INT32);
            }
            return(objRet);
        }
Beispiel #8
0
        public bool DeleteWholeOrder(DeletedOrder deletedOrder)
        {
            int result = ExecuteUpdate("UpdateDeletedOrder", deletedOrder);

            return(result > 0);
        }
Beispiel #9
0
 private void OnDeletedOrder(object sender, EventArgs e)
 {
     SelectEntities();
     DeletedOrder?.Invoke(sender, e);
 }
Beispiel #10
0
 private void OnDeleteOrder()
 {
     DeletedOrder?.Invoke(this, new EventArgs());
     OnChangeOrder();
 }