public PhotoServiceFacade(IPhotoService photoService, IAdvertiseService autoAdvertiseService, IAllocationService allocationService)
        {
            Check.If(photoService).IsNotNull();
            Check.If(autoAdvertiseService).IsNotNull();
            Check.If(allocationService).IsNotNull();

            _photoService = photoService;
            _autoAdvertiseService = autoAdvertiseService;
            _allocationService = allocationService;
        }
        public PropertyAllocationAndAdvertisingFacade(IPropertyServiceFacade propertyService,
            IAdvertiseService autoAdvertiseService, IAllocationService allocationService)
        {
            Check.If(propertyService).IsNotNull();
            Check.If(autoAdvertiseService).IsNotNull();
            Check.If(allocationService).IsNotNull();

            _propertyService = propertyService;
            _autoAdvertiseService = autoAdvertiseService;
            _allocationService = allocationService;
        }
Esempio n. 3
0
 public AllocationsController(IAllocationService allocationService)
 {
     _allocationService = allocationService;
 }
Esempio n. 4
0
        public AllocationPageViewModel(INavigationService navigationService,
                                       IGlobalService globalService,
                                       IDialogService dialogService,
                                       IAllocationService allocationService,
                                       IAdvanceReceiptService advanceReceiptService,
                                       IReceiptCashService receiptCashService,
                                       ICostContractService costContractService,
                                       ICostExpenditureService costExpenditureService,
                                       IInventoryService inventoryService,
                                       IPurchaseBillService purchaseBillService,
                                       IReturnReservationBillService returnReservationBillService,
                                       IReturnBillService returnBillService,
                                       ISaleReservationBillService saleReservationBillService,
                                       ISaleBillService saleBillService
                                       ) : base(navigationService, globalService, allocationService, advanceReceiptService, receiptCashService, costContractService, costExpenditureService, inventoryService, purchaseBillService, returnReservationBillService, returnBillService, saleReservationBillService, saleBillService, dialogService)
        {
            Title = "调拨单";

            this.BillType = BillTypeEnum.AllocationBill;

            this.Load = ReactiveCommand.Create(async() =>
            {
                ItemTreshold = 1;
                PageCounter  = 0;

                try
                {
                    Bills?.Clear();
                    string billNumber  = Filter.SerchKey;
                    DateTime?startTime = Filter.StartTime ?? DateTime.Now.AddMonths(-1);
                    DateTime?endTime   = Filter.EndTime ?? DateTime.Now;

                    int?makeuserId          = Settings.UserId;
                    int businessUserId      = Filter.BusinessUserId;
                    int?shipmentWareHouseId = 0;
                    int?incomeWareHouseId   = 0;
                    //获取未审核
                    bool?auditedStatus     = false;
                    bool?showReverse       = null;
                    bool?sortByAuditedTime = null;

                    var pending = new List <AllocationBillModel>();


                    var result = await _allocationService.GetAllocationsAsync(makeuserId, businessUserId, shipmentWareHouseId, incomeWareHouseId, billNumber, "", auditedStatus, startTime, endTime, showReverse, sortByAuditedTime, 0, PageSize, this.ForceRefresh, new System.Threading.CancellationToken());
                    if (result != null)
                    {
                        pending = result?.Select(s =>
                        {
                            var sm    = s;
                            sm.IsLast = !(result.LastOrDefault()?.BillNumber == s.BillNumber);
                            return(sm);
                        }).ToList();
                    }
                    if (pending.Any())
                    {
                        Bills = new System.Collections.ObjectModel.ObservableCollection <AllocationBillModel>(pending);
                    }
                    UpdateTitle();
                }
                catch (Exception ex)
                {
                    Crashes.TrackError(ex);
                }
            });

            this.ItemTresholdReachedCommand = ReactiveCommand.Create(async() =>
            {
                int pageIdex = 0;
                if (Bills?.Count != 0)
                {
                    pageIdex = Bills.Count / (PageSize == 0 ? 1 : PageSize);
                }

                if (PageCounter < pageIdex)
                {
                    PageCounter = pageIdex;
                    using (var dig = UserDialogs.Instance.Loading("加载中..."))
                    {
                        try
                        {
                            string billNumber  = Filter.SerchKey;
                            DateTime?startTime = Filter.StartTime ?? DateTime.Now.AddMonths(-1);
                            DateTime?endTime   = Filter.EndTime ?? DateTime.Now;


                            int?makeuserId          = Settings.UserId;
                            int businessUserId      = Filter.BusinessUserId;
                            int?shipmentWareHouseId = 0;
                            int?incomeWareHouseId   = 0;
                            //获取未审核
                            bool?auditedStatus     = false;
                            bool?showReverse       = null;
                            bool?sortByAuditedTime = null;


                            var items = await _allocationService.GetAllocationsAsync(makeuserId, businessUserId, shipmentWareHouseId, incomeWareHouseId, billNumber, "", auditedStatus, startTime, endTime, showReverse, sortByAuditedTime, pageIdex, PageSize, this.ForceRefresh, new System.Threading.CancellationToken());
                            if (items != null)
                            {
                                foreach (var item in items)
                                {
                                    if (Bills.Count(s => s.Id == item.Id) == 0)
                                    {
                                        Bills.Add(item);
                                    }
                                }

                                foreach (var s in Bills)
                                {
                                    s.IsLast = !(Bills.LastOrDefault()?.BillNumber == s.BillNumber);
                                }
                            }
                            UpdateTitle();
                        }
                        catch (Exception ex)
                        {
                            Crashes.TrackError(ex);
                        }
                    }
                }
            }, this.WhenAny(x => x.Bills, x => x.GetValue().Count > 0));

            //选择单据
            this.SelectedCommand = ReactiveCommand.Create <AllocationBillModel>(async x =>
            {
                if (x != null)
                {
                    await NavigateAsync(nameof(AllocationBillPage), ("Bill", x), ("IsSubmitBill", true));
                }
            });

            //菜单选择
            this.SubscribeMenus((x) =>
            {
                //获取当前UTC时间
                DateTime dtime = DateTime.Now;
                switch (x)
                {
                case MenuEnum.TODAY:
                    {
                        Filter.StartTime = DateTime.Parse(dtime.ToString("yyyy-MM-dd 00:00:00"));
                        Filter.EndTime   = dtime;
                        ((ICommand)Load)?.Execute(null);
                    }
                    break;

                case MenuEnum.YESTDAY:
                    {
                        Filter.StartTime = dtime.AddDays(-1);
                        Filter.EndTime   = dtime;
                        ((ICommand)Load)?.Execute(null);
                    }
                    break;

                case MenuEnum.OTHER:
                    {
                        SelectDateRang();
                        ((ICommand)Load)?.Execute(null);
                    }
                    break;

                case MenuEnum.SUBMIT30:
                    {
                        Filter.StartTime = dtime.AddMonths(-1);
                        Filter.EndTime   = dtime;
                        ((ICommand)Load)?.Execute(null);
                    }
                    break;

                case Enums.MenuEnum.CLEARHISTORY:    //清空一个月历史单据
                    {
                        ClearHistory(() => _globalService.UpdateHistoryBillStatusAsync((int)this.BillType));
                        ((ICommand)Load)?.Execute(null);
                    }
                    break;
                }
            }, string.Format(Constants.MENU_VIEW_KEY, 4));


            this.BindBusyCommand(Load);
        }
Esempio n. 5
0
        public CostExpenditureSummeryPageViewModel(INavigationService navigationService,
                                                   IGlobalService globalService,
                                                   IDialogService dialogService,
                                                   IAllocationService allocationService,
                                                   IAdvanceReceiptService advanceReceiptService,
                                                   IReceiptCashService receiptCashService,
                                                   ICostContractService costContractService,
                                                   ICostExpenditureService costExpenditureService,
                                                   IInventoryService inventoryService,
                                                   IPurchaseBillService purchaseBillService,
                                                   IReturnReservationBillService returnReservationBillService,
                                                   IReturnBillService returnBillService,
                                                   ISaleReservationBillService saleReservationBillService,

                                                   ISaleBillService saleBillService
                                                   ) : base(navigationService, globalService, allocationService, advanceReceiptService, receiptCashService, costContractService, costExpenditureService, inventoryService, purchaseBillService, returnReservationBillService, returnBillService, saleReservationBillService, saleBillService, dialogService)
        {
            Title = "费用支出";


            this.BillType = BillTypeEnum.CostExpenditureBill;

            this.Load = ReactiveCommand.Create(async() =>
            {
                //重载时排它
                ItemTreshold = 1;
                PageCounter  = 0;
                try
                {
                    DateTime?startTime = Filter.StartTime;
                    DateTime?endTime   = Filter.EndTime;
                    int?customerId     = Filter.TerminalId;
                    int?employeeId     = Filter.BusinessUserId;
                    string billNumber  = Filter.SerchKey;

                    int?makeuserId = Settings.UserId;
                    if (employeeId.HasValue && employeeId > 0)
                    {
                        makeuserId = 0;
                    }


                    //获取已审核
                    bool?auditedStatus     = true;
                    bool?showReverse       = null;
                    bool sortByAuditedTime = false;

                    //清除列表
                    Bills?.Clear();

                    var items = await _costExpenditureService.GetCostExpendituresAsync(makeuserId,
                                                                                       customerId,
                                                                                       "",
                                                                                       employeeId,
                                                                                       billNumber,
                                                                                       auditedStatus,
                                                                                       startTime,
                                                                                       endTime,
                                                                                       showReverse,
                                                                                       sortByAuditedTime,
                                                                                       null,
                                                                                       0,
                                                                                       PageSize, this.ForceRefresh, new System.Threading.CancellationToken());

                    if (items != null)
                    {
                        foreach (var item in items)
                        {
                            if (Bills.Count(s => s.Id == item.Id) == 0)
                            {
                                Bills.Add(item);
                            }
                        }

                        if (items.Count() == 0)
                        {
                            ItemTreshold = -1;
                        }

                        foreach (var s in Bills)
                        {
                            s.IsLast = !(Bills.LastOrDefault()?.BillNumber == s.BillNumber);
                        }

                        Title = $"费用支出({Bills.Count})";

                        if (Bills.Count > 0)
                        {
                            this.Bills = new ObservableRangeCollection <CostExpenditureBillModel>(Bills);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Crashes.TrackError(ex);
                }
            });
            //以增量方式加载数据
            this.ItemTresholdReachedCommand = ReactiveCommand.Create(async() =>
            {
                int pageIdex = 0;
                if (Bills?.Count != 0)
                {
                    pageIdex = Bills.Count / (PageSize == 0 ? 1 : PageSize);
                }

                if (PageCounter < pageIdex)
                {
                    PageCounter = pageIdex;
                    using (var dig = UserDialogs.Instance.Loading("加载中..."))
                    {
                        try
                        {
                            DateTime?startTime = Filter.StartTime;
                            DateTime?endTime   = Filter.EndTime;
                            int?customerId     = Filter.TerminalId;
                            int?employeeId     = Filter.BusinessUserId;
                            string billNumber  = Filter.SerchKey;

                            int?makeuserId = Settings.UserId;
                            if (employeeId.HasValue && employeeId > 0)
                            {
                                makeuserId = 0;
                            }


                            //获取已审核
                            bool?auditedStatus     = true;
                            bool?showReverse       = null;
                            bool sortByAuditedTime = false;


                            var items = await _costExpenditureService.GetCostExpendituresAsync(makeuserId,
                                                                                               customerId,
                                                                                               "",
                                                                                               employeeId,
                                                                                               billNumber,
                                                                                               auditedStatus,
                                                                                               startTime,
                                                                                               endTime,
                                                                                               showReverse,
                                                                                               sortByAuditedTime,
                                                                                               null,
                                                                                               pageIdex, PageSize, this.ForceRefresh, new System.Threading.CancellationToken());
                            if (items != null)
                            {
                                foreach (var item in items)
                                {
                                    if (Bills.Count(s => s.Id == item.Id) == 0)
                                    {
                                        Bills.Add(item);
                                    }
                                }

                                if (items.Count() == 0)
                                {
                                    ItemTreshold = -1;
                                }

                                foreach (var s in Bills)
                                {
                                    s.IsLast = !(Bills.LastOrDefault()?.BillNumber == s.BillNumber);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            Crashes.TrackError(ex);
                        }
                    }
                }
            }, this.WhenAny(x => x.Bills, x => x.GetValue().Count > 0));

            //选择单据
            this.WhenAnyValue(x => x.Selecter).Throttle(TimeSpan.FromMilliseconds(500))
            .Skip(1)
            .Where(x => x != null)
            .SubOnMainThread(async x =>
            {
                if (x != null)
                {
                    await NavigateAsync(nameof(CostExpenditureBillPage), ("Bill", x));
                }
                this.Selecter = null;
            }).DisposeWith(DeactivateWith);

            //菜单选择
            this.SubscribeMenus((x) =>
            {
                //获取当前UTC时间
                DateTime dtime = DateTime.Now;
                switch (x)
                {
                case MenuEnum.TODAY:
                    {
                        Filter.StartTime = DateTime.Parse(dtime.ToString("yyyy-MM-dd 00:00:00"));
                        Filter.EndTime   = dtime;
                        ((ICommand)Load)?.Execute(null);
                    }
                    break;

                case MenuEnum.YESTDAY:
                    {
                        Filter.StartTime = dtime.AddDays(-1);
                        Filter.EndTime   = dtime;
                        ((ICommand)Load)?.Execute(null);
                    }
                    break;

                case MenuEnum.OTHER:
                    {
                        SelectDateRang();
                        ((ICommand)Load)?.Execute(null);
                    }
                    break;

                case MenuEnum.SUBMIT30:
                    {
                        Filter.StartTime = dtime.AddMonths(-1);
                        Filter.EndTime   = dtime;
                        ((ICommand)Load)?.Execute(null);
                    }
                    break;

                case Enums.MenuEnum.CLEARHISTORY:    //清空一个月历史单据
                    {
                        ClearHistory(() => _globalService.UpdateHistoryBillStatusAsync((int)this.BillType));
                        ((ICommand)Load)?.Execute(null);
                    }
                    break;
                }
            }, string.Format(Constants.MENU_KEY, 6));

            this.BindBusyCommand(Load);
        }
Esempio n. 6
0
 public AllocationFacadeService(IAllocationService allocationService, IAllocationReportsService allocationReportsService)
 {
     this.allocationService        = allocationService;
     this.allocationReportsService = allocationReportsService;
 }
 public HomeController(IEmployeeService empService, IAllocationService allocationService)
 {
     this.empService        = empService;
     this.allocationService = allocationService;
 }
Esempio n. 8
0
        public InventoryReportViewPageViewModel(INavigationService navigationService,
                                                IGlobalService globalService,
                                                IDialogService dialogService,
                                                IAllocationService allocationService,
                                                IAdvanceReceiptService advanceReceiptService,
                                                IReceiptCashService receiptCashService,
                                                ICostContractService costContractService,
                                                ICostExpenditureService costExpenditureService,
                                                IInventoryService inventoryService,
                                                IPurchaseBillService purchaseBillService,
                                                IReturnReservationBillService returnReservationBillService,
                                                IReturnBillService returnBillService,
                                                ISaleReservationBillService saleReservationBillService,
                                                IWareHousesService wareHousesService,
                                                ISaleBillService saleBillService
                                                ) : base(navigationService, globalService, allocationService, advanceReceiptService, receiptCashService, costContractService, costExpenditureService, inventoryService, purchaseBillService, returnReservationBillService, returnBillService, saleReservationBillService, saleBillService, dialogService)
        {
            Title = "库存上报";

            _wareHousesService = wareHousesService;

            this.Load = ReactiveCommand.Create(async() =>
            {
                ItemTreshold = 1;
                PageCounter  = 0;

                try
                {
                    Bills?.Clear();
                    var pending = new List <InventoryReportSummaryModel>();

                    int?makeuserId     = Settings.UserId;
                    int?terminalId     = null;
                    int?businessUserId = null;
                    int?productId      = null;
                    int?channelId      = null;
                    int?rankId         = null;
                    int?districtId     = null;

                    string billNumber  = Filter.SerchKey;
                    DateTime?startTime = Filter.StartTime ?? DateTime.Now.AddMonths(-1);
                    DateTime?endTime   = Filter.EndTime ?? DateTime.Now;


                    var result = await _wareHousesService.GetInventoryReportAsync(makeuserId, businessUserId, terminalId, channelId, rankId, districtId, productId, startTime, endTime, 0, PageSize, this.ForceRefresh, new System.Threading.CancellationToken());


                    if (result != null)
                    {
                        pending = result?.Select(s =>
                        {
                            var sm    = s;
                            sm.IsLast = !(result?.LastOrDefault()?.BillNumber == s.BillNumber);
                            return(sm);
                        }).Where(s => s.MakeUserId == Settings.UserId || s.BusinessUserId == Settings.UserId).ToList();
                    }
                    if (pending.Any())
                    {
                        Bills = new System.Collections.ObjectModel.ObservableCollection <InventoryReportSummaryModel>(pending);
                    }


                    UpdateTitle();
                }
                catch (Exception ex)
                {
                    Crashes.TrackError(ex);
                }
            });


            this.ItemTresholdReachedCommand = ReactiveCommand.Create(async() =>
            {
                int pageIdex = 0;
                if (Bills?.Count != 0)
                {
                    pageIdex = Bills.Count / (PageSize == 0 ? 1 : PageSize);
                }

                if (PageCounter < pageIdex)
                {
                    PageCounter = pageIdex;
                    using (var dig = UserDialogs.Instance.Loading("加载中..."))
                    {
                        try
                        {
                            int?makeuserId     = Settings.UserId;
                            int?terminalId     = null;
                            int?businessUserId = null;
                            int?productId      = null;
                            int?channelId      = null;
                            int?rankId         = null;
                            int?districtId     = null;

                            string billNumber  = Filter.SerchKey;
                            DateTime?startTime = Filter.StartTime ?? DateTime.Now.AddMonths(-1);
                            DateTime?endTime   = Filter.EndTime ?? DateTime.Now;


                            var result = await _wareHousesService.GetInventoryReportAsync(makeuserId, businessUserId, terminalId, channelId, rankId, districtId, productId, startTime, endTime, 0, PageSize, this.ForceRefresh, new System.Threading.CancellationToken());

                            if (result != null)
                            {
                                foreach (var item in result)
                                {
                                    if ((item.MakeUserId == Settings.UserId || item.BusinessUserId == Settings.UserId) && Bills.Count(s => s.Id == item.Id) == 0)
                                    {
                                        Bills.Add(item);
                                    }
                                }

                                foreach (var s in Bills)
                                {
                                    s.IsLast = !(Bills.LastOrDefault()?.BillNumber == s.BillNumber);
                                }
                            }

                            UpdateTitle();
                        }
                        catch (Exception ex)
                        {
                            Crashes.TrackError(ex);
                        }
                    }
                }
            }, this.WhenAny(x => x.Bills, x => x.GetValue().Count > 0));

            this.BindBusyCommand(Load);
        }
Esempio n. 9
0
 public GetAllocatedUserByUserTypeQueryHandler(TestApiDbContext context, IAllocationService service)
 {
     _context = context;
     _service = service;
 }
 public AllocateResortTeamService(ILogger logger, IAllocationService allocationService, IConfigurationService configurationService)
 {
     this.logger               = logger;
     this.allocationService    = allocationService;
     this.configurationService = configurationService;
 }
 public void Setup()
 {
     _sut = new AllocationService(mockRepo.Object);
 }
 public AllocationsController(AllocationMapper allocationMapper, IAllocationService allocationService)
 {
     _allocationMapper  = allocationMapper;
     _allocationService = allocationService;
 }
Esempio n. 13
0
        public UnSalePageViewModel(INavigationService navigationService,
                                   IGlobalService globalService,
                                   IDialogService dialogService,
                                   IAllocationService allocationService,
                                   IAdvanceReceiptService advanceReceiptService,
                                   IReceiptCashService receiptCashService,
                                   ICostContractService costContractService,
                                   ICostExpenditureService costExpenditureService,
                                   IInventoryService inventoryService,
                                   IPurchaseBillService purchaseBillService,
                                   IReturnReservationBillService returnReservationBillService,
                                   IReturnBillService returnBillService,
                                   ISaleReservationBillService saleReservationBillService,
                                   ISaleBillService saleBillService
                                   ) : base(navigationService, globalService, allocationService, advanceReceiptService, receiptCashService, costContractService, costExpenditureService, inventoryService, purchaseBillService, returnReservationBillService, returnBillService, saleReservationBillService, saleBillService, dialogService)
        {
            Title = "销售签收(0)";

            this.Bills = new ObservableCollection <SaleBillModel>();

            this.Load = ReactiveCommand.Create(async() =>
            {
                var pending = new List <SaleBillModel>();

                try
                {
                    int?terminalId     = 0;
                    int?businessUserId = 0;
                    DateTime?startTime = DateTime.Now.AddMonths(-7);
                    DateTime?endTime   = DateTime.Now;

                    int?makeuserId      = Settings.UserId;
                    int?wareHouseId     = 0;
                    string billNumber   = "";
                    string terminalName = "";
                    string remark       = "";
                    int?districtId      = 0;
                    int?deliveryUserId  = 0;
                    //获取已经审核,未签收单据
                    bool?auditedStatus     = true;
                    bool?sortByAuditedTime = null;
                    bool?showReverse       = null;
                    bool?showReturn        = null;
                    bool?handleStatus      = null;
                    int?paymentMethodType  = 0;
                    int?billSourceType     = 0;
                    int pageIndex          = 0;
                    int pageSize           = 20;

                    //获取待签收
                    var result = await _saleBillService.GetSalebillsAsync(makeuserId,
                                                                          terminalId,
                                                                          terminalName,
                                                                          businessUserId,
                                                                          districtId,
                                                                          deliveryUserId,
                                                                          wareHouseId,
                                                                          billNumber,
                                                                          remark,
                                                                          startTime,
                                                                          endTime,
                                                                          auditedStatus,
                                                                          sortByAuditedTime,
                                                                          showReverse,
                                                                          showReturn,
                                                                          paymentMethodType,
                                                                          billSourceType,
                                                                          handleStatus,
                                                                          0,
                                                                          pageIndex,
                                                                          pageSize,
                                                                          this.ForceRefresh,
                                                                          new System.Threading.CancellationToken());

                    if (result != null)
                    {
                        pending = result?.Select(s =>
                        {
                            var sm    = s;
                            sm.IsLast = !(result.LastOrDefault()?.BillNumber == s.BillNumber);
                            return(sm);
                        }).ToList();

                        TotalAmount = pending.Select(b => b.SumAmount).Sum();
                        Title       = $"销售单({pending.Count})";

                        if (pending != null && pending.Any())
                        {
                            Bills = new ObservableCollection <SaleBillModel>(pending);
                        }
                    }
                }
                catch (System.Exception) { }
            });


            //签收
            this.SelecterCommand = ReactiveCommand.CreateFromTask <SaleBillModel>(async(item) =>
            {
                if (item != null)
                {
                    using (UserDialogs.Instance.Loading("稍等..."))
                    {
                        await this.NavigateAsync("SaleBillPage",
                                                 ("Reference", this.PageName),
                                                 ("DispatchItemModel", null),
                                                 ("Bill", item));
                    }
                }
                item = null;
            });

            //菜单选择
            this.SubscribeMenus((x) =>
            {
                //获取当前UTC时间
                DateTime dtime = DateTime.Now;
                switch (x)
                {
                case MenuEnum.TODAY:
                    {
                        Filter.StartTime = DateTime.Parse(dtime.ToString("yyyy-MM-dd 00:00:00"));
                        Filter.EndTime   = dtime;
                        ((ICommand)Load)?.Execute(null);
                    }
                    break;

                case MenuEnum.YESTDAY:
                    {
                        Filter.StartTime = dtime.AddDays(-1);
                        Filter.EndTime   = dtime;
                        ((ICommand)Load)?.Execute(null);
                    }
                    break;

                case MenuEnum.OTHER:
                    {
                        SelectDateRang();
                        ((ICommand)Load)?.Execute(null);
                    }
                    break;
                }
            }, string.Format(Constants.MENU_DEV_KEY, 2));

            this.BindBusyCommand(Load);
        }
Esempio n. 14
0
        public UnCostExpenditurePageViewModel(INavigationService navigationService,
                                              IGlobalService globalService,
                                              IDialogService dialogService,
                                              IAllocationService allocationService,
                                              IAdvanceReceiptService advanceReceiptService,
                                              IReceiptCashService receiptCashService,
                                              ICostContractService costContractService,
                                              ICostExpenditureService costExpenditureService,
                                              IInventoryService inventoryService,
                                              IPurchaseBillService purchaseBillService,
                                              IReturnReservationBillService returnReservationBillService,
                                              IReturnBillService returnBillService,
                                              ISaleReservationBillService saleReservationBillService,
                                              ISaleBillService saleBillService
                                              ) : base(navigationService, globalService, allocationService, advanceReceiptService, receiptCashService, costContractService, costExpenditureService, inventoryService, purchaseBillService, returnReservationBillService, returnBillService, saleReservationBillService, saleBillService, dialogService)
        {
            Title = "费用支出(0)";

            this.Bills = new ObservableCollection <CostExpenditureBillModel>();

            //载入未签收费用支出单据
            this.Load = ReactiveCommand.Create(async() =>
            {
                var pending = new List <CostExpenditureBillModel>();
                try
                {
                    DateTime?startTime = Filter.StartTime;
                    DateTime?endTime   = Filter.EndTime;
                    int?customerId     = Filter.TerminalId;
                    int?employeeId     = Filter.BusinessUserId;
                    int?makeuserId     = Settings.UserId;

                    string billNumber = "";
                    //获取已审核
                    bool?auditedStatus     = true;
                    bool?showReverse       = null;
                    bool sortByAuditedTime = false;
                    int pagenumber         = 0;
                    int pageSize           = 20;

                    var result = await _costExpenditureService.GetCostExpendituresAsync(makeuserId,
                                                                                        customerId,
                                                                                        "",
                                                                                        employeeId,
                                                                                        billNumber,
                                                                                        auditedStatus,
                                                                                        startTime,
                                                                                        endTime,
                                                                                        showReverse,
                                                                                        sortByAuditedTime,
                                                                                        0,
                                                                                        pagenumber,
                                                                                        pageSize, this.ForceRefresh, new System.Threading.CancellationToken());

                    if (result != null)
                    {
                        pending = result?.Select(s =>
                        {
                            var sm       = s;
                            sm.IsLast    = !(result.LastOrDefault()?.BillNumber == s.BillNumber);
                            sm.SumAmount = s.Items?.Sum(i => i.Amount) ?? 0;

                            return(sm);
                        }).ToList();

                        TotalAmount = pending.Select(b => b.SumAmount).Sum();
                        Title       = $"费用支出({pending.Count})";

                        if (pending != null && pending.Any())
                        {
                            Bills = new ObservableCollection <CostExpenditureBillModel>(pending);
                        }
                    }
                }
                catch (System.Exception) { }
            });

            //费用支出单签收
            this.SelecterCommand = ReactiveCommand.CreateFromTask <CostExpenditureBillModel>(async(item) =>
            {
                if (item != null)
                {
                    using (UserDialogs.Instance.Loading("稍等..."))
                    {
                        await this.NavigateAsync("CostExpenditureBillPage",
                                                 ("Reference", this.PageName),
                                                 ("DispatchItemModel", null),
                                                 ("Bill", item));
                    }
                }
                item = null;
            });

            //菜单选择
            this.SubscribeMenus((x) =>
            {
                //获取当前UTC时间
                DateTime dtime = DateTime.Now;
                switch (x)
                {
                case MenuEnum.TODAY:
                    {
                        Filter.StartTime = DateTime.Parse(dtime.ToString("yyyy-MM-dd 00:00:00"));
                        Filter.EndTime   = dtime;
                        ((ICommand)Load)?.Execute(null);
                    }
                    break;

                case MenuEnum.YESTDAY:
                    {
                        Filter.StartTime = dtime.AddDays(-1);
                        Filter.EndTime   = dtime;
                        ((ICommand)Load)?.Execute(null);
                    }
                    break;

                case MenuEnum.OTHER:
                    {
                        SelectDateRang();
                        ((ICommand)Load)?.Execute(null);
                    }
                    break;
                }
            }, string.Format(Constants.MENU_DEV_KEY, 1));


            this.BindBusyCommand(Load);
        }
Esempio n. 15
0
 public AllocationsController(Mapper mapper, IAllocationService service)
 {
     this.mapper  = mapper;
     this.service = service;
 }