コード例 #1
0
 private void RefreshGridData(CollectionAssignmentModel item)
 {
     if (item != null && this.AllCollectionAssignmentDetails != null)
     {
         var rgridItem = this.AllCollectionAssignmentDetails.FirstOrDefault(d => d.QueueID == item.QueueID && d.ContractId == item.ContractId && d.ClientNumber == item.ClientNumber);
         var rfilterItem = this.FilteredItems.FirstOrDefault(d => d.QueueID == item.QueueID && d.ContractId == item.ContractId && d.ClientNumber == item.ClientNumber);
         if (rgridItem != null)
         {
             int rindex = this.AllCollectionAssignmentDetails.IndexOf(rgridItem);
             this.AllCollectionAssignmentDetails.RemoveAt(rindex);
             this.AllCollectionAssignmentDetails.Insert(rindex, item);
             this.IsNoCheckValidQueue = true;
             this.SelectedQueue = item;
             this.IsNoCheckValidQueue = false;
         }
         if (rfilterItem != null)
         {
             int rindex = this.FilteredItems.IndexOf(rgridItem);
             this.FilteredItems.RemoveAt(rindex);
             this.FilteredItems.Insert(rindex, item);
         }
     }
 }
コード例 #2
0
        private async Task SetSelectedQueueAsync(CollectionAssignmentModel value)
        {
            bool canProceed = true;

            if (this.ActiveViewModel != null && this.ActiveViewModel.IsCheckedOut && this.isChanged)
            {
                //this.ActiveViewModel.ConfirmationWindow.Raise(new Insyston.Operations.WPF.ViewModels.Common.ConfirmationWindowViewModel(null) { Content = "Data has been modified. Are you sure you wish to proceed without saving?", Title = "Confirm Save - Collection Queue Filter" },
                //    (callBack) =>
                //    {
                //        if (callBack.Confirmed == false)
                //        {
                //            canProceed = false;
                //        }
                //    });
                ConfirmationWindowView confirm = new ConfirmationWindowView();
                ConfirmmationViewModel confirmViewModel = new ConfirmmationViewModel();
                confirmViewModel.Content = "Changes have not been saved. Click OK to proceed without saving changes.";
                confirmViewModel.Title = "Confirm Save - Collection Assignment";
                confirm.DataContext = confirmViewModel;

                confirm.ShowDialog();
                if (confirm.DialogResult == false)
                {
                    canProceed = false;
                }
                else
                {
                    this.isChanged = false;
                }
            }
            if (canProceed)
            {
                this.RaiseActionsWhenChangeStep(EnumScreen.CollectionAssignment, EnumSteps.ItemLocked);
                this.GridStyle = (Brush)Application.Current.FindResource("GridStyleNotEdit");
                this.SetBusyAction(LoadingText);
                this.Edit.SetBusyAction(LoadingText);
                this.ActiveViewModel = this;
                var strMessage = await this.ValidateSelectedQueue(value);
                this.ResetBusyAction();
                this.Edit.ResetBusyAction();
                if (!string.IsNullOrEmpty(strMessage))
                {
                    NotificationValidate notificationValidate = new NotificationValidate();
                    NotificationValidateViewModel notificationViewModel = new NotificationValidateViewModel();
                    notificationViewModel.Content = strMessage;
                    notificationViewModel.Title = "Collection Assignment";

                    notificationValidate.DataContext = notificationViewModel;
                    notificationValidate.Show();
                    //MessageBox.Show(strMessage);
                    //this.ShowMessageAsync(strMessage, "Collection Assignment");
                    if (ResetSelectedItem != null)
                    {
                        ResetSelectedItem(this, null);
                    }
                    return;
                }
                this.IsChanged = false;
                await UnLockAsync();
                this.SetField(ref _SelectedQueue, value, () => SelectedQueue);

                if (value != null)
                {
                    await this.OnStepAsync(EnumSteps.SelectQueue);
                }
               
            }
        }
コード例 #3
0
        public async Task<string> ValidateSelectedQueue(CollectionAssignmentModel QueueItem)
        {
            var queueRefresh = await QueueAssignmentFunctions.GetAllQueueAssignmentsAsync(CurrentEntityId, QueueItem.ContractId, QueueItem.QueueID, QueueItem.ClientNumber);
            var CollectionQueueSetting = await CollectionsQueueSettingsFunctions.ReadCollectionsSystemSettingsAsync();

            if (queueRefresh.Any())
            {
                QueueItem = queueRefresh.FirstOrDefault();
            }
            string message = string.Empty;
            string messageNotExisted = "Contract no longer exists in the Queue";
            if (CollectionQueueSetting != null)
            {
                bool isValidMinAmount = true;
                bool isValidMinArrearsDays = true;
                decimal? arrearsValue = 0;
                if (CollectionQueueSetting.MinimumArrearsPercent.HasValue && CollectionQueueSetting.MinimumArrearsPercent > 0)
                {
                    arrearsValue = await QueueAssignmentFunctions.GetQueueArrears(QueueItem.ContractId);
                    isValidMinAmount = arrearsValue >= CollectionQueueSetting.MinimumArrearsPercent.Value;
                }
                else
                {
                    isValidMinAmount = CollectionQueueSetting.MinimumArrearsAmount.HasValue ? QueueItem.Arrears >= CollectionQueueSetting.MinimumArrearsAmount : true;
                }

                isValidMinArrearsDays = CollectionQueueSetting.MinimumArrearsDays.HasValue ? QueueItem.ArrearsDays >= CollectionQueueSetting.MinimumArrearsDays : true;
                if (!isValidMinAmount || !isValidMinArrearsDays)
                {
                    this.RaiseStepChanged(EnumScreen.CollectionAssignment, EnumSteps.ItemLocked, this.SelectedQueue);
                    return messageNotExisted;
                }
            }

            string userLock = await QueueAssignmentFunctions.GetLockContract(QueueItem.ClientNumber);
            if (!string.IsNullOrEmpty(userLock))
            {
                this.RaiseStepChanged(EnumScreen.CollectionAssignment, EnumSteps.ItemLocked, this.SelectedQueue);
                string userId = ((OperationsPrincipal)Thread.CurrentPrincipal).Identity.User.UserEntityId.ToString();
                if (userLock != userId)
                {
                    string userLocking = await QueueAssignmentFunctions.GetUserById(userLock);

                    message = userLocking + " currently has this record locked.";
                }
                else
                {
                    message = "You currently have this record locked.";
                }
                return message;
            }

            bool isValidCollectionQueue = await QueueAssignmentFunctions.GetValidCollectionQueueItem(QueueItem.QueueID, QueueItem.ContractId);
            if (!isValidCollectionQueue)
            {
                this.RaiseStepChanged(EnumScreen.CollectionAssignment, EnumSteps.ItemLocked, this.SelectedQueue);
                return messageNotExisted;
            }

            bool isAssignee = true;
            bool isInternalCompany = true;
            bool isFinancier = true;
            bool isWorkGroup = true;
            bool isState = true;
            bool isArrears = true;
            bool isArrearsDays = true;
            bool isInvestmentBalance = true;
            bool isClientArrears = true;
            bool isClientArrearsDays = true;
            bool isClientInvestmentBalance = true;
            bool isClientName = true;
            bool isIntroducer = true;

            List<CollectionQueueFilterItem> filterItems = await QueueAssignmentFunctions.GetCollectionQueueFilterItem(QueueItem.QueueID);
            List<CollectionQueueFilterItem> assignees = filterItems.Where(d => d.FilterTypeID == (int)FilterTypeID.Assignee).ToList();
            List<CollectionQueueFilterItem> internalCompany = filterItems.Where(d => d.FilterTypeID == (int)FilterTypeID.Company).ToList();
            List<CollectionQueueFilterItem> financiers = filterItems.Where(d => d.FilterTypeID == (int)FilterTypeID.Financier).ToList();
            List<CollectionQueueFilterItem> workGroups = filterItems.Where(d => d.FilterTypeID == (int)FilterTypeID.Workgroup).ToList();
            List<CollectionQueueFilterItem> states = filterItems.Where(d => d.FilterTypeID == (int)FilterTypeID.State).ToList();

            if (assignees.Count > 0)
            {
                isAssignee = QueueItem.AssigneeID.HasValue ? assignees.Select(d => d.FieldID).Contains(QueueItem.AssigneeID.Value) : false;
            }

            if (internalCompany.Count > 0)
            {
                isInternalCompany = QueueItem.InternalCompanyNodeID.HasValue ? internalCompany.Select(d => d.FieldID).Contains(QueueItem.InternalCompanyNodeID.Value) : false;
            }

            if (financiers.Count > 0)
            {
                isFinancier = QueueItem.FinancierNodeID.HasValue ? financiers.Select(d => d.FieldID).Contains(QueueItem.FinancierNodeID.Value) : false;
            }

            if (workGroups.Count > 0)
            {
                isWorkGroup = QueueItem.WorkGroupID.HasValue ? workGroups.Select(d => d.FieldID).Contains(QueueItem.WorkGroupID.Value) : false;
            }

            if (states.Count > 0)
            {
                isState = QueueItem.StateID.HasValue ? states.Select(d => d.FieldID).Contains(QueueItem.StateID.Value) : false;
            }

            if (!isAssignee || !isInternalCompany || !isFinancier || !isWorkGroup || !isState)
            {
                this.RaiseStepChanged(EnumScreen.CollectionAssignment, EnumSteps.ItemLocked, this.SelectedQueue);
                return messageNotExisted;
            }

            ObservableCollection<CollectionQueueFilterString> CollectionQueueFilters = new ObservableCollection<CollectionQueueFilterString>(await QueueManagmentFunctions.GetCollectionQueueFilterStringByQueueID(QueueItem.QueueID));
            CollectionQueueFilterString filterClientName = CollectionQueueFilters.Where(f => f.FilterTypeID == (int)FilterTypeID.ClientName).FirstOrDefault();
            if (filterClientName != null)
            {
                isClientName = IsValidString(QueueItem.ClientName, filterClientName);
            }
            if (!isClientName)
            {
                this.RaiseStepChanged(EnumScreen.CollectionAssignment, EnumSteps.ItemLocked, this.SelectedQueue);
                return messageNotExisted;
            }

            CollectionQueueFilterString filterIntroducer = CollectionQueueFilters.Where(f => f.FilterTypeID == (int)FilterTypeID.Introducer).FirstOrDefault();
            if (filterIntroducer != null)
            {
                isIntroducer = IsValidString(QueueItem.Introducer, filterIntroducer);
            }

            if (!isIntroducer)
            {
                this.RaiseStepChanged(EnumScreen.CollectionAssignment, EnumSteps.ItemLocked, this.SelectedQueue);
                return messageNotExisted;
            }

            CollectionQueueFilter queueFilter = await QueueAssignmentFunctions.GetCollectionQueueFilter(QueueItem.QueueID);

            if (queueFilter != null)
            {
                isArrears = IsValidNumber(QueueItem.Arrears, queueFilter.MaxContractArrearsAmount, queueFilter.MinContractArrearsAmount, queueFilter.IsAndContractArrearsAmount, queueFilter.IsEqualMaxContractArrearsAmount, queueFilter.IsEqualMinContractArrearsAmount);
                isArrearsDays = IsValidNumber(QueueItem.ArrearsDays.HasValue ? (decimal)QueueItem.ArrearsDays : 0, queueFilter.MaxContractArrearsDays, queueFilter.MinContractArrearsDays, queueFilter.IsAndContractArrearsDays, queueFilter.IsEqualMaxContractArrearsDays, queueFilter.IsEqualMinContractArrearsDays);
                isInvestmentBalance = IsValidNumber(QueueItem.InvestmentBalance ?? 0, queueFilter.MaxContractInvestmentBalance, queueFilter.MinContractInvestmentBalance, queueFilter.IsAndContractInvestmentBalance, queueFilter.IsEqualMaxContractInvestmentBalance, queueFilter.IsEqualMinContractInvestmentBalance);
                if (!isArrears || !isArrearsDays || !isInvestmentBalance)
                {
                    this.RaiseStepChanged(EnumScreen.CollectionAssignment, EnumSteps.ItemLocked, this.SelectedQueue);
                    return messageNotExisted;
                }

                if (queueFilter.MaxClientArrearsAmount.HasValue || queueFilter.MinClientArrearsAmount.HasValue
                    || queueFilter.MaxClientArrearsDays.HasValue || queueFilter.MinClientArrearsDays.HasValue
                    || queueFilter.MaxClientInvestmentBalance.HasValue || queueFilter.MinClientInvestmentBalance.HasValue)
                {
                    ClientArrearsView csummary = (await QueueAssignmentFunctions.GetClientArrearsView(QueueItem.ClientNumber)).FirstOrDefault();
                    decimal? clientArrearsAmout = 0;
                    decimal? clientArrearsDay = 0;
                    decimal? clientInvestBalance = 0;
                    if (csummary != null)
                    {
                        clientArrearsAmout = csummary.ClientArrears;
                        clientArrearsDay = csummary.ClientDaysArrears;
                        clientInvestBalance = csummary.ClientInvestmentBalance;
                    }

                    isClientArrears = IsValidNumber(clientArrearsAmout, queueFilter.MaxClientArrearsAmount, queueFilter.MinClientArrearsAmount, queueFilter.IsAndClientArrearsAmount, queueFilter.IsEqualMaxClientArrearsAmount, queueFilter.IsEqualMinClientArrearsAmount);
                    isClientArrearsDays = IsValidNumber(clientArrearsDay, queueFilter.MaxClientArrearsDays, queueFilter.MinClientArrearsDays, queueFilter.IsAndClientArrearsDays, queueFilter.IsEqualMaxClientArrearsDays, queueFilter.IsEqualMinClientArrearsDays);
                    isClientInvestmentBalance = IsValidNumber(clientInvestBalance, queueFilter.MaxClientInvestmentBalance, queueFilter.MinClientInvestmentBalance, queueFilter.IsAndClientInvestmentBalance, queueFilter.IsEqualMaxClientInvestmentBalance, queueFilter.IsEqualMinClientInvestmentBalance);
                    if (!isClientArrears || !isClientArrearsDays || !isClientInvestmentBalance)
                    {
                        this.RaiseStepChanged(EnumScreen.CollectionAssignment, EnumSteps.ItemLocked, this.SelectedQueue);
                        return messageNotExisted;
                    }
                }
            }

            return message;
        }
コード例 #4
0
        public override void Dispose()
        {
            Dispatcher.CurrentDispatcher.BeginInvoke(new Action(() =>
                {
                    this.isChanged = false;
                    this.UnLockAsync();

                    if (this._AllCollectionAssignmentDetails != null)
                    {
                        this._AllCollectionAssignmentDetails.Clear();
                        this._AllCollectionAssignmentDetails = null;
                    }
                    if (this._Items != null)
                    {
                        this._Items.Clear();
                        this._Items = null;
                    }
                    if (this._ListAssignees != null)
                    {
                        this._ListAssignees.Clear();
                        this._ListAssignees = null;
                    }
                    if (this._ListContacts != null)
                    {
                        this._ListContacts.Clear();
                        this._ListContacts = null;
                    }
                    if (this._ListContractSummary != null)
                    {
                        this._ListContractSummary.Clear();
                        this._ListContractSummary = null;
                    }
                    if (this._ListContractHistory != null)
                    {
                        this._ListContractHistory.Clear();
                        this._ListContractHistory = null;
                    }
                    if (this._ListNoteTask != null)
                    {
                        this._ListNoteTask.Clear();
                        this._ListNoteTask = null;
                    }
                    if (this._ItemsAssignmentFilter != null)
                    {
                        this._ItemsAssignmentFilter.Clear();
                        this._ItemsAssignmentFilter = null;
                    }
                    if (this._SelectedQueue != null)
                    {
                        this._SelectedQueue.Dispose();
                        this._SelectedQueue = null;
                    }
                    if (this.Edit != null)
                    {
                        this.Edit.Dispose();
                        this.Edit = null;
                    }

                    base.Dispose();
                }));
        }