Esempio n. 1
0
        private void LB_Order_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (LB_Order.SelectedIndex < 0)
            {
                return;
            }
            Order_ViewModel Select_Order = List_Order.Where(P => P.Order_ID == Convert.ToInt32(LB_Order.SelectedItem.ToString())).Single();

            Label_Version.Text    = Select_Order.Version_Name;
            Label_TMstart.Text    = Select_Order.Order_Start_Time.ToShortDateString();
            Label_TMend.Text      = Select_Order.Order_End_Time.ToShortDateString();
            Label_OrderCount.Text = Select_Order.Order_Count.ToString();
            if (Select_Order.Checkout_Mark)
            {
                Label_IsPay.Text = "已付款";
            }
            else
            {
                Label_IsPay.Text = "未付款";
            }
            if (Select_Order.Order_DepositPay)
            {
                Label_Deposit.Text = "已付款";
            }
            else
            {
                Label_Deposit.Text = "未付款";
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 订单付款
        /// </summary>
        /// <param name="StaffName">工作人员登陆名</param>
        /// <param name="OrderID">订单ID</param>
        /// <param name="KM">实际行驶里程</param>
        /// <returns></returns>
        public bool LastCheakOrder(String StaffName, int OrderID, int KM)
        {
            Order_ViewModel Summery = DB_ViewModel.Select(P => P.Order_ID == OrderID).Single();

            Summery.Checkout_Time = DateTime.Now;
            Summery.Checkout_KM   = KM;

            //管理类声明并共享数据库操作实体
            Checkout Checkout_Manager = new Checkout();



            //实体类声明并获得实体
            Car_Checkout old_checkout = Checkout_Manager.SelectCheckout_ID(Summery.Checkout_ID);
            Car_Checkout new_Checkout = old_checkout;

            new_Checkout.Checkout_KM   = KM;
            new_Checkout.Checkout_User = (Guid)Membership.GetUser(StaffName).ProviderUserKey;
            new_Checkout.Checkout_Time = DateTime.Now;

            //将信息保存到数据库以完整信息
            if (!Checkout_Manager.UpdateCheckout(new_Checkout))
            {
                return(false);
            }


            return(true);
        }
Esempio n. 3
0
        /// <summary>
        /// 查询单笔账单的总金额(单号
        /// </summary>
        /// <param name="OrderID">订单号</param>
        /// <returns></returns>
        public decimal GetPrice_OrderID(int OrderID)
        {
            Order_ViewModel Summery     = DB_ViewModel.Select(P => P.Order_ID == OrderID).Single();
            decimal         Total_Money = 0;

            Total_Money = GetPrice_Order(Summery);
            return(Total_Money);
        }
Esempio n. 4
0
        /// <summary>
        /// 查询单笔账单的总金额(账单实体
        /// </summary>
        /// <param name="Summery">定单实体</param>
        /// <returns></returns>
        public decimal GetPrice_Order(Order_ViewModel Summery)
        {
            decimal Total_Money = 0;
            decimal RentalPrice;
            decimal CatchPrice;

            #region 普通会员
            if (Summery.Client_RoleName == "普通会员")
            {
                RentalPrice = Summery.Version_Price_Normal_Rental;
                CatchPrice  = Summery.Version_Price_Normal_Catch;
            }
            else
            {
                RentalPrice = Summery.Version_Price_Member_Rental;
                CatchPrice  = Summery.Version_Price_Member_Catch;
            }
            //基本租金:每天租费*时间*租借数量
            TimeSpan TS_Start = new TimeSpan(Summery.Order_Start_Time.Ticks);
            TimeSpan TS_End   = new TimeSpan(Summery.Checkout_Time.Ticks);
            TimeSpan TS       = TS_Start.Subtract(TS_End);
            Total_Money += RentalPrice * TS.Duration().Days *Summery.Order_Count;
            //参加活动:活动优惠*租借数量
            Total_Money += Summery.Action_Price * Summery.Order_Count;
            //是否接送:
            if (Summery.Order_IsCatch == true)
            {
                Total_Money += CatchPrice * Summery.Order_Count;
            }
            //是否代驾:
            if (Summery.RentalType_Name == "代驾")
            {
                Total_Money += Summery.Version_Price_Riding * Summery.Order_Count;
            }
            //超里程:

            if (Summery.RentalType_Name == "代驾")
            {
                Total_Money += Summery.Checkout_KM * Summery.Version_Price_Over_Riding;
            }
            else
            {
                Total_Money += Summery.Checkout_KM * Summery.Version_Price_Over;
            }


            #endregion
            return(Total_Money);
        }
Esempio n. 5
0
        private void BT_GetInfo_Click(object sender, EventArgs e)
        {
            if (LB_Order.SelectedIndex < 0)
            {
                return;
            }
            Order_ViewModel Select_Order = List_Order.Where(P => P.Order_ID == Convert.ToInt32(LB_Order.SelectedItem.ToString())).Single();

            if (GetCar_Client.SelectAllCarGets().Where(P => P.GetCar_Order == Select_Order.Order_ID).Count() == 0)
            {
                MessageBox.Show("您还没有进行提车操作!", "错误!");
                return;
            }
            Form_CatchCar form = new Form_CatchCar(Select_Order.Order_Count, Select_Order.Order_ID, 2);

            form.Owner = this;
            form.ShowDialog();
        }
Esempio n. 6
0
        private void BT_Cancel_Click(object sender, EventArgs e)
        {
            DialogResult res = MessageBox.Show("您是否确定要取消该订单?!", "警告!", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);

            if (res == DialogResult.Cancel)
            {
                return;
            }
            else
            {
                Order_ViewModel Select_Order = List_Order.Where(P => P.Order_ID == Convert.ToInt32(LB_Order.SelectedItem.ToString())).Single();
                if (DateTime.Now > Select_Order.Order_Start_Time)
                {
                    MessageBox.Show("您的订车服务正在进行中,您已经超过取消订单的时间");
                }
                Form_CancelOrder form = new Form_CancelOrder(Convert.ToInt32(LB_Order.SelectedItem.ToString()));
                form.Owner = this;
                form.ShowDialog();
            }
        }
Esempio n. 7
0
        public bool Pay_Order(int OrderID)
        {
            Account  Account_Manager  = new Account();
            Checkout Checkout_Manager = new Checkout();

            Checkout_Manager.DB_Checkout.dt = Account_Manager.DB_Account.dt;



            Order_ViewModel Summery      = DB_ViewModel.Select(P => P.Order_ID == OrderID).Single();
            Car_Checkout    old_checkout = Checkout_Manager.SelectCheckout_ID(Summery.Checkout_ID);
            Car_Checkout    new_Checkout = old_checkout;

            new_Checkout.Checkout_Mark = true;

            //定义付款操作所需要的实体成员
            Car_Account account = new Car_Account()
            {
                Account_Price = GetPrice_OrderID(Summery.Order_ID),
                Account_Shop  = Summery.Shop_ID,
                Account_Time  = DateTime.Now,
                Account_User  = (Guid)new_Checkout.Checkout_User,
                Account_Info  = String.Format("第{0}号的订单进行了买单操作!", Summery.Order_ID)
            };

            using (TransactionScope tc = new TransactionScope())
            {
                try
                {
                    Account_Manager.AddAccount_Trans(account);
                    Checkout_Manager.UpdateCheckout_Trans(new_Checkout);
                    Account_Manager.DB_Account.SubmitChanges();
                    tc.Complete();
                }
                catch
                {
                    return(false);
                }
            }
            return(true);
        }
Esempio n. 8
0
        public Form_CancelOrder(int OrderID)
        {
            InitializeComponent();
            this.OrderID        = OrderID;
            OrderSummery_Client = (OrderSummeryClient)ClientFactory.GetClient(ClientType.Type.OrderSummery);
            SelectOrder         = OrderSummery_Client.SelectOrderSummery_OrderID(OrderID);

            Label_Count1.Text       = SelectOrder.Order_Count.ToString();
            Label_PriceDeposit.Text = SelectOrder.Version_Price_Deposit.ToString();
            decimal TotalDeposit = SelectOrder.Version_Price_Deposit * SelectOrder.Order_Count;

            Label_TotalDeposit.Text = TotalDeposit.ToString();


            Label_Count2.Text    = SelectOrder.Order_Count.ToString();
            Label_CastPrice.Text = "1000";
            decimal TotalCast = 1000 * SelectOrder.Order_Count;

            Label_TotalCast.Text = TotalCast.ToString();

            Label_Total.Text = (TotalDeposit - TotalCast).ToString();
        }
Esempio n. 9
0
        private void BT_CatchCar_Click(object sender, EventArgs e)
        {
            if (LB_Order.SelectedIndex < 0)
            {
                return;
            }
            Order_ViewModel Select_Order = List_Order.Where(P => P.Order_ID == Convert.ToInt32(LB_Order.SelectedItem.ToString())).Single();

            if (GetCar_Client.SelectAllCarGets().Where(P => P.GetCar_Order == Select_Order.Order_ID).Count() > 0)
            {
                MessageBox.Show("您的订单已经提车,请勿重复操作!", "错误!");
                return;
            }
            if (Select_Order.Order_End_Time < DateTime.Now)
            {
                MessageBox.Show("您的订单已经过期!", "错误!");
                return;
            }
            Form_CatchCar form = new Form_CatchCar(Select_Order.Order_Count, Select_Order.Order_ID, 1);

            form.Owner = this;
            form.ShowDialog();
        }
Esempio n. 10
0
        public bool Order_Cancel(int OrderID, Guid UID)
        {
            Checkout Checkout_Manager = new Checkout();
            Account  Account_Manager  = new Account();

            Account_Manager.DB_Account.dt = Checkout_Manager.DB_Checkout.dt;
            Order_ViewModel CancelOrder = DB_ViewModel.Select(P => P.Order_ID == OrderID).Single();

            int     OrderCount = CancelOrder.Order_Count;
            decimal CastPrice  = OrderCount * 1000;

            Car_Account acc = new Car_Account()
            {
                Account_Info  = String.Format("这笔款项来源自用户:{0},身份证:{1}的取消订单违约金", CancelOrder.Client_RealName, CancelOrder.Client_Validaton),
                Account_Price = CastPrice,
                Account_Shop  = CancelOrder.Shop_ID,
                Account_Time  = DateTime.Now,
                Account_User  = UID
            };

            using (TransactionScope TS = new TransactionScope())
            {
                try
                {
                    Checkout_Manager.DeleteCheckout_Trans(OrderID);
                    Account_Manager.AddAccount_Trans(acc);

                    Checkout_Manager.DB_Checkout.SubmitChanges();
                    TS.Complete();
                }
                catch
                {
                    return(false);
                }
                return(true);
            }
        }
Esempio n. 11
0
        public Form_CarBack(int OrderID)
        {
            InitializeComponent();
            OrderSummery_Client = (OrderSummeryClient)ClientFactory.GetClient(ClientType.Type.OrderSummery);
            Order_Temp          = OrderSummery_Client.SelectOrderSummery_OrderID(OrderID);
            TimeSpan TS_Start = new TimeSpan(Order_Temp.Order_Start_Time.Ticks);
            TimeSpan TS_End   = new TimeSpan(Order_Temp.Checkout_Time.Ticks);
            TimeSpan TS       = TS_Start.Subtract(TS_End);
            decimal  RentalPrice;
            decimal  CatchPrice;
            decimal  OverPrice;
            decimal  RentalType;

            #region 设定4差别项

            if (Order_Temp.RentalType_Name == "自驾")
            {
                RentalType = 0;
                OverPrice  = Order_Temp.Version_Price_Over;
            }
            else
            {
                RentalType = Order_Temp.Version_Price_Riding;
                OverPrice  = Order_Temp.Version_Price_Over_Riding;
            }
            if (Order_Temp.Client_RoleName == "普通会员")
            {
                RentalPrice = Order_Temp.Version_Price_Normal_Rental;
                if (Order_Temp.Order_IsCatch)
                {
                    CatchPrice = Order_Temp.Version_Price_Normal_Catch;
                }
                else
                {
                    CatchPrice = 0;
                }
            }
            else
            {
                RentalPrice = Order_Temp.Version_Price_Member_Rental;
                if (Order_Temp.Order_IsCatch)
                {
                    CatchPrice = Order_Temp.Version_Price_Member_Catch;
                }
                else
                {
                    CatchPrice = 0;
                }
            }
            #endregion
            //租借车型
            Label_Version.Text = Order_Temp.Version_Name;
            Label_Type.Text    = Order_Temp.Type_Name;
            Label_Brand.Text   = Order_Temp.Brand_Name;
            this.OrderID       = OrderID;

            //基本租金
            Label_Count1.Text      = Order_Temp.Order_Count.ToString();
            Label_Day1.Text        = TS.Duration().Days.ToString();
            Label_PriceRental.Text = RentalPrice.ToString();
            decimal Total_Rental = RentalPrice * TS.Duration().Days *Order_Temp.Order_Count;
            Label_TotalRental.Text = Total_Rental.ToString();

            //接送费用
            Label_Count2.Text     = Order_Temp.Order_Count.ToString();
            Label_PriceCatch.Text = CatchPrice.ToString();
            decimal Total_Catch = Order_Temp.Order_Count * CatchPrice;
            Label_TotalCatch.Text = Total_Catch.ToString();

            //行驶费用
            Label_BaseKM.Text    = Order_Temp.Version_BaseKM.ToString();
            Label_OverKM.Text    = Order_Temp.Checkout_KM.ToString();
            Label_PriceOver.Text = OverPrice.ToString();
            decimal Total_Over = Order_Temp.Checkout_KM * OverPrice;
            Label_TotalOver.Text = Total_Over.ToString();

            //代驾费用
            Label_Count3.Text      = Order_Temp.Order_Count.ToString();
            Label_Day2.Text        = TS.Duration().Days.ToString();
            Label_PriceRiding.Text = RentalType.ToString();
            decimal Total_RentalType = Order_Temp.Order_Count * TS.Duration().Days *RentalType;
            Label_TotalRentalType.Text = Total_RentalType.ToString();

            //活动优惠
            Label_Count5.Text      = Order_Temp.Order_Count.ToString();
            Label_ActionPrice.Text = Order_Temp.Action_Price.ToString();
            decimal Total_Action = Order_Temp.Order_Count * Order_Temp.Action_Price;
            Label_TotalAction.Text = Total_Action.ToString();

            //押金退还
            Label_Count4.Text       = Order_Temp.Order_Count.ToString();
            Label_PriceDeposit.Text = Order_Temp.Version_Price_Deposit.ToString();
            decimal Total_Deposit = Order_Temp.Order_Count * Order_Temp.Version_Price_Deposit;
            Label_TotalDeposit.Text = Total_Deposit.ToString();


            Label_Total.Text = (Total_Rental + Total_Catch + Total_Over + Total_RentalType + Total_Action - Total_Deposit).ToString();
        }