Ejemplo n.º 1
0
        public ChangeOrder TransformToChangeOrder()
        {
            ChangeOrder co = null;

            // See if it has already been transformed into a
            // Change Order...it can only be changed once!
            if (!this.HasBeenTransformedToChangeOrder)
            {
                Project project = ProjectService.GetProject(this.ProjectKey);
                co = NumberedProjectChildFactory.CreateNumberedProjectChild
                     <ChangeOrder>(project);
                co.AmountChanged           = this.amountChanged;
                co.ArchitectSignatureDate  = this.architectSignatureDate;
                co.ChangeType              = this.changeType;
                co.Contractor              = this.contractor;
                co.ContractorSignatureDate = this.contractorSignatureDate;
                co.Description             = this.description;
                co.OwnerSignatureDate      = this.ownerSignatureDate;
                co.PriceChangeDirection    = this.priceChangeDirection;
                co.TimeChanged             = this.timeChanged;
                co.TimeChangeDirection     = this.timeChangeDirection;
            }
            else
            {
                // It was already changed, so get the Change Order that it was
                // changed into
                co = ChangeOrderService.GetChangeOrder(this.changeOrderKey);
            }

            // Get the key of the Change Order
            this.changeOrderKey = co.Key;

            // Return the instance
            return(co);
        }
Ejemplo n.º 2
0
    private void Update()
    {
        CheckStage(); //Проверяем стадию босса

        /* if (Cast.Crutch && Crutch)
         * {
         *   StopAllCoroutines();
         *   StartCoroutine(CircleAttack());
         *   Cast.Crutch = false;
         *   Crutch = false;
         * }*/
        BulletSpeed = BSpeed; //Скорость пуль

        if (sAgain)           //КОСТЫЛЬ нужен для возобновления врага, думаю это временный костыль
        {
            StopAllCoroutines();
            StartCoroutine(CircleAttack());     // Начинаем спамить, опять
            sAgain = false;                     // Костыль
        }
        if (AttackType == 0 || AttackType == 2) //Выключаем наш SIN-COS ад если используется атака другого типа
        {
            VectorTimer();
        }
        if (EnHp == 0)                                                           //При смерти врага
        {
            GameObject[] bullets = GameObject.FindGameObjectsWithTag("bullets"); //КОСТЫЛЬ находим все пульки на экране
            foreach (GameObject i in bullets)                                    // Просто удаляем ВСЕ(даже наши) пульки
            {
                Destroy(i.gameObject);
            }
        }
        ChangeOrder.ChangeLayerOrder(enemy.GetComponent <Renderer>(), transform, hero.transform);
    }
Ejemplo n.º 3
0
        public void Test()
        {
            int[]  array = new int[300];
            Random r     = new Random();

            for (int i = 0; i < array.Length; i++)
            {
                array[i] = r.Next(500);
            }

            Func <int, bool> condition = i => (i % 3) == 0; // 传入一个int,如果是奇数,返回true

            ChangeOrder.Execute(array, condition);          // 用委托形式封装条件语句,这样可以让用户自己定义规则(这里指怎样的值会被分到前半部分去)
            //ChangeOrder.Execute(array);

            bool isOverLine = false;

            for (int i = 0; i < array.Length; i++)
            {
                if (!condition(array[i]))
                {
                    isOverLine = true;
                }

                Assert.True(isOverLine ^ condition(array[i]));
            }
        }
Ejemplo n.º 4
0
        public void TransformToChangeOrderTest()
        {
            ConstructionChangeDirective ccd = ConstructionChangeDirectiveService.GetConstructionChangeDirective(new Guid("1a2bfe3b-7577-456d-8484-4f34f67ce42c"));
            ChangeOrder co = ccd.TransformToChangeOrder();

            Assert.AreEqual(6, co.Number);
        }
Ejemplo n.º 5
0
        public void SpecialTest()
        {
            ChangeOrder.Execute(null);
            ChangeOrder.Execute(new int[0]);

            ChangeOrder.Execute(new int[] { 1 });
        }
Ejemplo n.º 6
0
        public void GetPreviousTimeChangedTotalFromTest()
        {
            ChangeOrder co       = this.repository.FindBy("8d44e769-2f9d-45e8-ba41-724a8947553c");
            int         expected = 3;
            int         actual   = this.repository.GetPreviousTimeChangedTotalFrom(co);

            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 7
0
 void Update() //Обновление скрипта
 {
     if (Vector2.Distance(transform.position, playerPos.position) < 2f && lampEnabled == false)
     {
         lamp.SetBool("on", true);
     }
     ChangeOrder.ChangeLayerOrder(lamprend, transform, playerPos);
 }
Ejemplo n.º 8
0
        public void GetPreviousAuthorizedAmountFromTest()
        {
            ChangeOrder co       = this.repository.FindBy("8d44e769-2f9d-45e8-ba41-724a8947553c");
            decimal     expected = 3000M;
            decimal     actual   = this.repository.GetPreviousAuthorizedAmountFrom(co);

            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 9
0
        public void OriginalConstructionCostTest()
        {
            object      projectKey = new Guid("5704f6b9-6ffa-444c-9583-35cc340fce2a");
            int         number     = 5;
            ChangeOrder target     = new ChangeOrder(projectKey, number);
            decimal     actual     = target.OriginalConstructionCost;

            Assert.AreEqual(100000M, actual);
        }
Ejemplo n.º 10
0
        public void PreviousAuthorizedChangeOrderAmountTest()
        {
            object      projectKey = new Guid("5704f6b9-6ffa-444c-9583-35cc340fce2a");
            int         number     = 5;
            ChangeOrder target     = new ChangeOrder(projectKey, number);
            decimal     actual     = target.PreviousAuthorizedAmount;

            Assert.AreEqual(4000M, actual);
        }
Ejemplo n.º 11
0
        public void PreviousTimeChangedTotalTest()
        {
            object      projectKey = new Guid("5704f6b9-6ffa-444c-9583-35cc340fce2a");
            int         number     = 5;
            ChangeOrder target     = new ChangeOrder(projectKey, number);
            int         actual     = target.PreviousTimeChangedTotal;

            Assert.AreEqual(4, actual);
        }
Ejemplo n.º 12
0
        public void ChangeOrderConstructorTestShort()
        {
            object      projectKey = new Guid("5704f6b9-6ffa-444c-9583-35cc340fce2a");
            int         number     = 5;
            ChangeOrder target     = new ChangeOrder(projectKey, number);

            // There should be 3 broken rules
            Assert.AreEqual(3, target.GetBrokenRules().Count);
        }
Ejemplo n.º 13
0
        private void DownButton_Click(object sender, RoutedEventArgs e)
        {
            item selectedItem = (item)DataGridView.SelectedItem;

            if (selectedItem != null)
            {
                ItemsCollection = ChangeOrder.Method(ItemsCollection, selectedItem, Direction.DOWN);
            }

            using (StreamWriter sw = File.CreateText(filePath))
            {
                sw.Write(ObservableCollectionToTXT.Method(ItemsCollection));
                sw.Close();
            }
        }
Ejemplo n.º 14
0
        public void SaveExistingChangeOrder()
        {
            ChangeOrder co = this.repository.FindAll()[0];

            this.testContextInstance.WriteLine("Routing Items Count:  {0}", co.RoutingItems.Count);
            DateTime agencyApprovedDate = DateTime.Now.Date;

            co.AgencyApprovedDate   = agencyApprovedDate;
            this.repository[co.Key] = co;
            this.unitOfWork.Commit();

            // Verify that the Change Order was updated
            ChangeOrder newChangeOrder = this.repository.FindBy(co.Key);

            Assert.AreEqual(agencyApprovedDate, newChangeOrder.AgencyApprovedDate);
        }
Ejemplo n.º 15
0
        public void SetCurrent(LemHeader header)
        {
            _headerRecord = header;
            SetEnabled(_headerRecord.CheckEditable());

            var changeOrderList = ChangeOrder.ListForProject(_headerRecord.ProjectId).Select(cs => new { EstimateId = cs.EstimateId, DisplayName = cs.DisplayName }).Distinct().ToList();

            changeOrderList.Add(new { EstimateId = -1, DisplayName = "" });
            luChangeOrder.DataSource = changeOrderList;

            tableLabour.Clear();
            var list = LabourTimeEntry.GetLabourEntryList(header.Id).ToList();

            list.ForEach(lte =>
            {
                DataRow row = tableLabour.Rows.Add(
                    lte.Id,
                    lte.EmpNum,
                    lte.EmpNum,
                    lte.WorkClassCode,
                    lte.ChangeOrderId,
                    lte.Level1Id,
                    lte.Level2Id,
                    lte.Level3Id,
                    lte.Level4Id,
                    lte.Billable,
                    lte.Manual,
                    lte.IncludedHours,
                    lte.TotalHours,
                    lte.BillAmount);

                foreach (var timecode in TimeCode.SubList(TimeCode.EnumValueType.Hours))
                {
                    row[BillRateI(timecode)]   = (object)ProjectWorkClass.GetBillRate(_headerRecord.ProjectId, timecode.MatchId, (string)row[colWorkClass.FieldName]) ?? DBNull.Value;
                    row[EnterHoursI(timecode)] = (object)list.Find(x => x.Id == (int)row[colId.FieldName]).DetailList.SingleOrDefault(d => d.TimeCodeId == timecode.MatchId)?.WorkHours ?? DBNull.Value;
                }

                foreach (var timecode in TimeCode.SubList(TimeCode.EnumValueType.Dollars))
                {
                    row[EnterAmountI(timecode)] = (object)list.Find(x => x.Id == (int)row[colId.FieldName]).DetailList.SingleOrDefault(d => d.TimeCodeId == timecode.MatchId)?.Amount ?? DBNull.Value;
                }
            });

            tableLabour.AcceptChanges();
            gvLabour.BestFitColumns(true);
        }
Ejemplo n.º 16
0
 void Update() //Обновление скрипта
 {
     if (Vector2.Distance(transform.position, playerPos.position) < 0.9f)
     {
         Character1.IndicatorOn();
         IsPlayerExited = false;
         if ((Input.GetKeyDown(KeyCode.E) || moveScript.activate && !Enabled))
         {
             totem.SetBool("fired", true);
             GameObject.Find("AudioSystem").GetComponent <AudioSystem>().CallSound(7, 0.8f);
             Enabled        = true;
             Wall.counttoop = Wall.counttoop * 10 + key;
             if (Wall.countconst == Wall.counttoop)
             {
                 GameObject.Find("AudioSystem").GetComponent <AudioSystem>().CallSound(10, 0.8f);
                 Wall.Open();
             }
             moveScript.activate = false;
             return;
         }
     }
     else if (!IsPlayerExited)
     {
         IsPlayerExited = true;
         Character1.IndicatorOff();
     }
     if (Vector2.Distance(transform.position, playerPos.position) < 0.9f)
     {
         Character1.IndicatorOn();
         IsPlayerExited = false;
         if ((Input.GetKeyDown(KeyCode.E) || moveScript.activate && Enabled))
         {
             totem.SetBool("fired", false);
             Wall.counttoop      = Wall.counttoop / 10;
             Enabled             = false;
             moveScript.activate = false;
             return;
         }
     }
     else if (!IsPlayerExited)
     {
         IsPlayerExited = true;
         Character1.IndicatorOff();
     }
     ChangeOrder.ChangeLayerOrder(rend, transform, playerPos);
 }
Ejemplo n.º 17
0
 void Update() //Обновление скрипта
 {
     if (Vector2.Distance(transform.position, playerPos.position) < 0.9f && (Input.GetKeyDown(KeyCode.E) && !Enabled))
     {
         totem.SetBool("fired", true);
         Enabled        = true;
         Wall.counttoop = Wall.counttoop * 10 + key;
         Wall.Open();
         return;
     }
     if (Vector2.Distance(transform.position, playerPos.position) < 0.9f && (Input.GetKeyDown(KeyCode.E) && Enabled))
     {
         totem.SetBool("fired", false);
         Wall.counttoop = Wall.counttoop / 10;
         Enabled        = false;
         return;
     }
     ChangeOrder.ChangeLayerOrder(rend, transform, playerPos);
 }
Ejemplo n.º 18
0
        public override void Display()
        {
            Console.Clear();
            DisplayHeader();
            string date = Input.GetDate("Enter the date of the file to remove orders from that date: ");

            SetTestOrProd.MyOrderObject.LoadOrderFile(date);

            RejectEmptyDate();
            Console.WriteLine("\nALL ORDERS FOR {0}:", date);
            Console.WriteLine();
            Output.DisplayAllOrders();

            int orderNumber    = Input.GetInteger("Enter the order number to delete: ");
            var myTestVariable = WorkingMemory.OrderList;

            if (orderNumber <= WorkingMemory.OrderList.Count)
            {
                var order = from o in WorkingMemory.OrderList.ToList()
                            where o.OrderNumber == orderNumber
                            select o;
                foreach (var k in order)
                {
                    WorkingMemory.OrderList.Remove(k);
                }
            }

            Console.Clear();
            Console.WriteLine("\nALL ORDERS FOR {0}:", date);
            Console.WriteLine();
            Output.DisplayAllOrders();

            var result = Input.QueryForCommit();

            ChangeOrder.CommitChangesToFile(result);
            Output.DisplayCommitResults(result);
            WorkingMemory.OrderList.Clear();

            Screen next = new HomeScreen();

            Screen.JumpScreen(next);
        }
Ejemplo n.º 19
0
        public override void Display()
        {
            Console.Clear();
            DisplayHeader();
            string date = Input.GetDate("Enter the date of a file to edit orders from that date: ");

            SetTestOrProd.MyOrderObject.LoadOrderFile(date);
            Screen next = new HomeScreen();

            if (!WorkingMemory.OrderList.Any())
            {
                Console.Write("There are no orders for that date. Press 1 to try\nanother date or enter to return to main menu. ");
                string input = Console.ReadLine();
                if (input == "1")
                {
                    next = new EditOrderScreen();
                }
                Screen.JumpScreen(next);
            }
            Output.DisplayAllOrders();

            int   orderNumber    = Input.GetOrderNumber("Enter an order number to edit: ");
            var   myTestVariable = WorkingMemory.OrderList;
            Order order;

            if (orderNumber <= WorkingMemory.OrderList.Count)
            {
                var oldOrder = WorkingMemory.OrderList.FirstOrDefault(o => o.OrderNumber == orderNumber);
                order = ChangeOrder.EditEntireOrder(oldOrder);
                var index = WorkingMemory.OrderList.IndexOf(oldOrder);
                WorkingMemory.OrderList[index] = order;
                Console.Clear();
                Output.DisplaySingleOrder(order);
            }

            var doCommit = Input.QueryForCommit();

            ChangeOrder.CommitChangesToFile(doCommit);
            Output.DisplayCommitResults(doCommit);

            Screen.JumpScreen(next);
        }
Ejemplo n.º 20
0
        public void SaveNewChangeOrder()
        {
            Project     project = ProjectService.GetAllProjects()[0];
            ChangeOrder co      = new ChangeOrder(project.Key, 5);

            co.AmountChanged        = 150;
            co.ChangeType           = PriceChangeType.ContractSum;
            co.PriceChangeDirection = ChangeDirection.Increased;
            co.Contractor           = CompanyService.GetAllCompanies()[0];
            co.Description          = "This is a test.";
            co.TimeChanged          = 2;
            co.TimeChangeDirection  = ChangeDirection.Increased;
            co.Status = new ItemStatus(8, "Pend. Arch.");
            this.repository[co.Key] = co;
            this.unitOfWork.Commit();

            // Verify that the Change Order was added
            ChangeOrder newChangeOrder = this.repository.FindBy(co.Key);

            Assert.AreEqual(5, newChangeOrder.Number);
        }
Ejemplo n.º 21
0
        public void SetCurrent(LemHeader header)
        {
            _headerRecord = header;
            SetEnabled(_headerRecord.CheckEditable());

            var changeOrderList = ChangeOrder.ListForProject(_headerRecord.ProjectId).Select(cs => new { EstimateId = cs.EstimateId, DisplayName = cs.DisplayName }).Distinct().ToList();

            luChangeOrder.DataSource = changeOrderList;

            tableEquipEntry.Clear();
            EquipTimeEntry.GetEquipEntryList(header.Id).ToList().ForEach(x =>
            {
                var equip       = Equipment.GetEquipment(x.EqpNum);
                double?billRate = null;
                if (equip != null)
                {
                    var list = equip.GetBillRateList(_headerRecord.ProjectId);
                    billRate = (double?)list.SingleOrDefault(c => c.BillCycle == x.BillCycle)?.BillRate;
                }

                tableEquipEntry.Rows.Add(
                    x.Id,
                    x.EqpNum,
                    x.EqpNum,
                    EquipmentClass.GetEquipmentClass(equip.ClassCode)?.DisplayName ?? "",
                    x.EmpNum,
                    x.EmpNum != null ? Employee.GetEmployee(x.EmpNum.Value).DisplayName : "",
                    x.ChangeOrderId,
                    x.Level1Id,
                    x.Level2Id,
                    x.Level3Id,
                    x.Level4Id,
                    x.Billable,
                    x.Quantity,
                    (char)x.BillCycle,
                    billRate,
                    x.BillAmount);
            });
            tableEquipEntry.AcceptChanges();
        }
Ejemplo n.º 22
0
        public override void Display()
        {
            Console.Clear();
            DisplayHeader();
            WorkingMemory.OrderList.Clear();
            Console.WriteLine();
            SetTestOrProd.MyOrderObject.LoadOrderFile(Input.GetDate("Enter the date of the order: "));
            Console.WriteLine();

            Order newOrder = Input.QueryUserForOrder();

            Console.Clear();
            Output.DisplaySingleOrder(newOrder);

            var doCommit = Input.QueryForCommit();

            ChangeOrder.CommitAdditionsToFile(doCommit, newOrder);
            Output.DisplayCommitResults(doCommit);

            Screen next = new HomeScreen();

            Screen.JumpScreen(next);
        }
Ejemplo n.º 23
0
        /// <summary>
        /// Query user for a new order, return that order.
        /// </summary>
        /// <returns></returns>
        public static Order QueryUserForOrder()
        {
            Order myOrder = new Order();

            myOrder.CustomerName = (GetString("Enter the customer name: ")).ToUpper();

            State tempState = GetState();

            myOrder.StateAbbreviation = tempState.StateAbbreviation.ToString();
            myOrder.TaxRate           = tempState.TaxRate;

            Product tempProduct = GetProduct();

            myOrder.ProductType            = tempProduct.ProductType.ToString();
            myOrder.CostPerSquareFoot      = tempProduct.CostPerSquareFoot;
            myOrder.LaborCostPerSquareFoot = tempProduct.LaborCostPerSquareFoot;

            myOrder.Area = GetDecimal("Enter the area of the floor in feet squared: ");

            myOrder = ChangeOrder.CalculateRemainingProperties(myOrder);

            return(myOrder);
        }
Ejemplo n.º 24
0
        public void Process(HttpRequest request, HttpResponse response)
        {
            Logger.WriteLog(LogType.INFO, request.Url.ToString());
            string orderid     = request.QueryString["orderId"];
            string outPayNo    = request.QueryString["payNo"];
            string remark      = request.QueryString["remark"];
            string price       = request.QueryString["price"];    //交易金额
            string currentTime = request.QueryString["currentTime"];
            string isRefund    = request.QueryString["isRefund"]; //退款标志(0=支付1=退款)
            string signature   = request.QueryString["signature"];
            string payway      = request.QueryString["payWay"];   //支付方式
            int    saleorderid = orderid.Substring(2).ToInt();

            if (isRefund == "1")
            {
                int refundId = remark.ToInt();

                /*
                 * orderid:退款单ID
                 * remark:退票单ID
                 * price:金额
                 */
                if (SaleOrderRefund(refundId, price, orderid))
                {
                    response.WriteLine("success");
                }
                return;
            }
            var model = afterSaleOrderRepository.FindAll(p => p.Id == saleorderid).FirstOrDefault();

            if (model == null)
            {
                Logger.WriteLog(LogType.INFO, string.Format("改签支付售后订单ID:{0}不存在", saleorderid));
                return;
            }
            ChangeOrder changeOrder = null;

            if (model is ChangeOrder)
            {
                changeOrder = model as ChangeOrder;
            }
            if (changeOrder == null)
            {
                Logger.WriteLog(LogType.INFO, string.Format("售后订单ID:{0}不是改签类型", saleorderid));
                return;
            }
            if (changeOrder.ProcessStatus != EnumTfgProcessStatus.ProcessingWaitPay)
            {
                return;
            }
            changeOrder.OutPayNo      = outPayNo;
            changeOrder.PayTime       = DateTime.Now;
            changeOrder.PayStatus     = EnumChangePayStatus.Payed;
            changeOrder.ProcessStatus = EnumTfgProcessStatus.WaitIssue;
            changeOrder.PayWay        = ExtHelper.GetPayMethod(payway);
            changeOrder.WriteLog(new OrderLog
            {
                IsShowLog         = true,
                OperationContent  = "订单改签支付完成,等待出票",
                OperationDatetime = DateTime.Now,
                OperationPerson   = "系统"
            });
            unitOfWorkRepository.PersistUpdateOf(changeOrder);
            unitOfWork.Commit();
            response.WriteLine("success");
        }
Ejemplo n.º 25
0
        public void SetData(List <LemHeader> headerList)
        {
            tableLabour.Clear();

            var table = LemHeader.GetCostCodeSummary(headerList.Select(x => x.Id).ToList());
            var list  = table.Select().Select(r => new
            {
                EmpNum        = Convert.ToInt32(r["EmpNum"]),
                WorkClassCode = Convert.ToString(r["WorkClassCode"]),
                Billable      = Convert.ToBoolean(r["Billable"]),
                ProjectId     = Convert.ToInt32(r["ProjectId"]),
                ChangeOrderId = ConvertEx.ToNullable <int>(r["ChangeOrderId"]),
                Level1Id      = ConvertEx.ToNullable <int>(r["Level1Id"]),
                Level2Id      = ConvertEx.ToNullable <int>(r["Level2Id"]),
                Level3Id      = ConvertEx.ToNullable <int>(r["Level3Id"]),
                Level4Id      = ConvertEx.ToNullable <int>(r["Level4Id"]),
                TimeCodeId    = Convert.ToInt32(r["TimeCodeId"]),
                SumWorkHour   = ConvertEx.ToNullable <decimal>(r["SumWorkHour"]),
                SumAmount     = ConvertEx.ToNullable <decimal>(r["SumAmount"]),
            });

            var groupList = list.ToLookup(x => new
            {
                x.EmpNum,
                x.WorkClassCode,
                x.Billable,
                x.ProjectId,
                x.ChangeOrderId,
                x.Level1Id,
                x.Level2Id,
                x.Level3Id,
                x.Level4Id,
                EmpName     = Employee.GetEmployee(x.EmpNum)?.DisplayName,
                WorkClass   = WorkClass.GetWorkClass(x.WorkClassCode).DisplayName,
                Project     = Project.GetProject(x.ProjectId),
                ChangeOrder = ChangeOrder.GetChangeOrder(x.ProjectId, x.ChangeOrderId)?.DisplayName,
                Level1      = LevelOneCode.GetLevelCode(x.Level1Id)?.DisplayName,
                Level2      = LevelTwoCode.GetLevelCode(x.Level2Id)?.DisplayName,
                Level3      = LevelThreeCode.GetLevelCode(x.Level3Id)?.DisplayName,
                Level4      = LevelFourCode.GetLevelCode(x.Level4Id)?.DisplayName
            }).OrderBy(x => x.Key.Level1).ThenBy(x => x.Key.Level2).ThenBy(x => x.Key.Level3).ThenBy(x => x.Key.Level4).ThenBy(x => x.Key.EmpName).ThenBy(x => x.Key.Project).ThenBy(x => x.Key.ChangeOrder).ThenBy(x => x.Key.WorkClass).ThenBy(x => x.Key.Billable).ToList();

            groupList.ForEach(g =>
            {
                DataRow row = tableLabour.Rows.Add(
                    g.Key.EmpNum,
                    g.Key.EmpName,
                    g.Key.WorkClass,
                    g.Key.Project,
                    g.Key.ChangeOrder,
                    g.Key.Level1,
                    g.Key.Level2,
                    g.Key.Level3,
                    g.Key.Level4,
                    g.Key.Billable,
                    null,
                    null);

                decimal?billRate;
                decimal totalHours  = 0;
                decimal billAmounts = 0;
                foreach (var timecode in TimeCode.ListForCompany())
                {
                    if (timecode.ValueType == EnumValueType.Hours)
                    {
                        billRate = ProjectWorkClass.GetBillRate(g.Key.ProjectId, timecode.MatchId, g.Key.WorkClassCode);
                        row[ColName.BillRateI(timecode)] = (object)billRate ?? DBNull.Value;

                        decimal hours = g.Where(x => x.TimeCodeId == timecode.MatchId).Sum(x => x.SumWorkHour) ?? 0;
                        row[ColName.EnterValueI(timecode)] = hours != 0 ? (object)hours : DBNull.Value;

                        totalHours  += hours;
                        billAmounts += (billRate ?? 0) * hours;
                    }
                    else
                    {
                        decimal amount = g.Where(x => x.TimeCodeId == timecode.MatchId).Sum(x => x.SumAmount) ?? 0;
                        row[ColName.EnterValueI(timecode)] = amount != 0 ? (object)amount : DBNull.Value;
                        billAmounts += amount;
                    }

                    row[ColName.TotalHours] = totalHours != 0 ? (object)totalHours : DBNull.Value;
                    row[ColName.BillAmount] = billAmounts != 0 ? (object)billAmounts : DBNull.Value;
                }
            });
        }
Ejemplo n.º 26
0
 public static ResponseChangeOrder ToResponseChangeOrder(this ChangeOrder p)
 {
     return(Mapper.Map <ChangeOrder, ResponseChangeOrder>(p));
 }
Ejemplo n.º 27
0
        public void SendSmsForPhone(string OrderId, string Content, int[] PassengerId)
        {
            string          code        = AuthManager.GetCurrentUser().Code;
            var             businessman = businessmanRepository.FindAll(x => x.Code == code).SingleOrDefault();
            CurrentUserInfo currentUser = AuthManager.GetCurrentUser();

            if (currentUser == null)
            {
                throw new CustomException(404, "获取信息失败,请稍后再试!");
            }
            if (string.IsNullOrEmpty(Content))
            {
                throw new CustomException(400, "发送短信内容不能为空!");
            }


            var         mOrder      = orderRepository.FindAll(x => x.OrderId == OrderId).FirstOrDefault();
            ChangeOrder mafterOrder = null;

            if (mOrder.HasAfterSale == true)
            {
                mafterOrder = afterSaleOrderRepository.FindAll(p => p.Order.OrderId == mOrder.OrderId && p is ChangeOrder).Select(p => p as ChangeOrder).FirstOrDefault();
            }
            PnrResource pnrResource      = new PnrResource();
            string      fromCity         = null;
            string      toCity           = null;
            string      flightTime       = null;
            string      arriveTime       = null;
            string      flightNumber     = null;
            string      flightCarrayCode = null;

            if (mOrder.SkyWays != null && mOrder.SkyWays.Count == 1)
            {
                //单程
                fromCity         = pnrResource.GetCityInfo(mOrder.SkyWays[0].FromCityCode).city.Name;
                toCity           = pnrResource.GetCityInfo(mOrder.SkyWays[0].ToCityCode).city.Name;
                flightTime       = mOrder.SkyWays[0].StartDateTime.ToString("yyyy-MM-dd HH:mm");
                arriveTime       = mOrder.SkyWays[0].ToDateTime.ToString("HH:mm");
                flightNumber     = mOrder.SkyWays[0].FlightNumber;
                flightCarrayCode = mOrder.SkyWays[0].CarrayCode;

                Content = Content.Replace("[航空公司航班号]", flightCarrayCode + flightNumber);
                Content = Content.Replace("[出发城市]", fromCity);
                Content = Content.Replace("[出发航站楼]", mOrder.SkyWays[0].FromTerminal);
                Content = Content.Replace("[到达城市]", toCity);
                Content = Content.Replace("[到达航站楼]", mOrder.SkyWays[0].ToTerminal);
                if (mafterOrder != null)
                {
                    flightTime = DateTime.Parse(mafterOrder.SkyWay[0].FlyDate.ToString()).ToString("yyyy-MM-dd HH:mm");
                }
                Content = Content.Replace("[起飞时间]", flightTime);
                Content = Content.Replace("[到达时间]", arriveTime);
            }
            else if (mOrder.SkyWays != null && mOrder.SkyWays.Count == 2)
            {
                //返程联程
                var fromCity1 = pnrResource.GetCityInfo(mOrder.SkyWays[0].FromCityCode).city.Name;
                var fromCity2 = pnrResource.GetCityInfo(mOrder.SkyWays[1].FromCityCode).city.Name;
                var toCity1   = pnrResource.GetCityInfo(mOrder.SkyWays[0].ToCityCode).city.Name;
                var toCity2   = pnrResource.GetCityInfo(mOrder.SkyWays[1].ToCityCode).city.Name;
                flightCarrayCode = mOrder.SkyWays[0].CarrayCode;
                flightNumber     = mOrder.SkyWays[0].FlightNumber;
                flightTime       = mOrder.SkyWays[0].StartDateTime.ToString("yyyy-MM-dd HH:mm");
                arriveTime       = mOrder.SkyWays[0].ToDateTime.ToString("HH:mm");
                var flightCarrayCodeBack = mOrder.SkyWays[1].CarrayCode;
                var flightNumberNameBack = mOrder.SkyWays[1].FlightNumber;

                var flightTimeBack = mOrder.SkyWays[1].StartDateTime.ToString("yyyy-MM-dd HH:mm");
                var arriveTimeBack = mOrder.SkyWays[1].ToDateTime.ToString("HH:mm");
                if (fromCity1 == toCity2 && toCity1 == fromCity2)
                {
                    //往返

                    Content = Content.Replace("[航空公司航班号]", flightCarrayCode + flightNumber);
                    Content = Content.Replace("[出发城市]", fromCity1);
                    Content = Content.Replace("[出发航站楼]", mOrder.SkyWays[0].FromTerminal);
                    Content = Content.Replace("[到达城市]", toCity1);
                    Content = Content.Replace("[到达航站楼]", mOrder.SkyWays[0].ToTerminal);
                    Content = Content.Replace("[起飞时间]", flightTime);
                    Content = Content.Replace("[到达时间]", arriveTime);

                    Content = Content.Replace("[回程航空公司航班号]", flightCarrayCodeBack + flightNumberNameBack);
                    Content = Content.Replace("[回程出发城市]", fromCity2);
                    Content = Content.Replace("[回程出发航站楼]", mOrder.SkyWays[1].FromTerminal);
                    Content = Content.Replace("[回程到达城市]", toCity2);
                    Content = Content.Replace("[回程到达航站楼]", mOrder.SkyWays[1].ToTerminal);
                    Content = Content.Replace("[回程起飞时间]", flightTimeBack);
                    Content = Content.Replace("[回程到达时间]", arriveTimeBack);
                }
                else
                {
                    //中转
                    Content = Content.Replace("[航空公司航班号]", flightCarrayCode + flightNumber);
                    Content = Content.Replace("[出发城市]", fromCity1);
                    Content = Content.Replace("[出发航站楼]", mOrder.SkyWays[0].FromTerminal);
                    Content = Content.Replace("[到达城市]", toCity1);
                    Content = Content.Replace("[到达航站楼]", mOrder.SkyWays[0].ToTerminal);
                    Content = Content.Replace("[起飞时间]", flightTime);
                    Content = Content.Replace("[到达时间]", arriveTime);

                    Content = Content.Replace("[中转航空公司航班号]", flightCarrayCodeBack + flightNumberNameBack);
                    Content = Content.Replace("[中转出发城市]", fromCity2);
                    Content = Content.Replace("[中转出发航站楼]", mOrder.SkyWays[1].FromTerminal);
                    Content = Content.Replace("[中转到达城市]", toCity2);
                    Content = Content.Replace("[中转到达航站楼]", mOrder.SkyWays[1].ToTerminal);
                    Content = Content.Replace("[回程起飞时间]", flightTimeBack);
                    Content = Content.Replace("[回程到达时间]", arriveTimeBack);
                }
            }


            for (int i = 0; i < mOrder.Passengers.Where(p => PassengerId.Contains(p.Id)).Count(); i++)
            {
                Content = Content.Replace("[乘客名称]", mOrder.Passengers[i].PassengerName);
                Content = Content.Replace("[证件号]", mOrder.Passengers[i].CardNo);
                if (Content.Length > 300)
                {
                    throw new CustomException(400, "短信内容只能在300字数内!");
                }
                int sendCount = Convert.ToInt32(Math.Ceiling((double)Content.Length / 64));
                if (sendCount > businessman.SMS.RemainCount)
                {
                    throw new CustomException(400, "你的短信不足,请充值购买!");
                }
                businessman.SendMessage(currentUser.OperatorName, mOrder.Passengers[i].PassengerName, mOrder.Passengers[i].Mobile, Content);
            }

            unitOfWorkRepository.PersistUpdateOf(businessman);
            unitOfWork.Commit();
        }
Ejemplo n.º 28
0
        public void FindChangeOrderByKey()
        {
            ChangeOrder co = this.repository.FindBy("df501465-2ffd-4f8c-870f-ce169c02f6a7");

            Assert.AreEqual(2, co.Number);
        }