Beispiel #1
0
        public static void SetOrderButtons(ApplicationDbContext db, IPrincipal user, OfferManageView view, out bool?displayAcceptButton, out bool?displayRejectButton, out bool?displayCounterButton, out bool?displayOfferButton)
        {
            //Get settings for logged in user
            AppUserSettings settings = AppUserSettingsHelpers.GetAppUserSettingsForUser(db, user);

            Guid acceptedAuthorisationId = DataHelpers.GetAuthorisationId(settings.OffersAcceptedAuthorisationManageViewLevel, user);
            Guid rejectedAuthorisationId = DataHelpers.GetAuthorisationId(settings.OffersRejectedAuthorisationManageViewLevel, user);
            Guid returnedAuthorisationId = DataHelpers.GetAuthorisationId(settings.OffersReturnedAuthorisationManageViewLevel, user);

            //Set buttons
            displayAcceptButton  = true;
            displayRejectButton  = true;
            displayCounterButton = true;
            displayOfferButton   = true;

            if (view.InhouseOffer)
            {
                switch (view.OfferAppUserSettings.OffersAcceptedAuthorisationManageViewLevel)
                {
                case GeneralEnums.InternalSearchLevelEnum.Company:
                    if (view.OfferDetails.OfferOriginatorCompanyId != acceptedAuthorisationId)
                    {
                        displayAcceptButton = false;
                    }
                    break;

                case GeneralEnums.InternalSearchLevelEnum.Branch:
                    if (view.OfferDetails.OfferOriginatorBranchId != acceptedAuthorisationId)
                    {
                        displayAcceptButton = false;
                    }
                    break;

                case GeneralEnums.InternalSearchLevelEnum.User:
                    if (view.OfferDetails.OfferOriginatorAppUserId != acceptedAuthorisationId)
                    {
                        displayAcceptButton = false;
                    }
                    break;

                case GeneralEnums.InternalSearchLevelEnum.Group:      //LSLSLS  TO BE DONE WHEN GROUPS ADDED
                    break;
                }
                switch (view.OfferAppUserSettings.OffersRejectedAuthorisationManageViewLevel)
                {
                case GeneralEnums.InternalSearchLevelEnum.Company:
                    if (view.OfferDetails.OfferOriginatorCompanyId != rejectedAuthorisationId)
                    {
                        displayRejectButton = false;
                    }
                    break;

                case GeneralEnums.InternalSearchLevelEnum.Branch:
                    if (view.OfferDetails.OfferOriginatorBranchId != rejectedAuthorisationId)
                    {
                        displayRejectButton = false;
                    }
                    break;

                case GeneralEnums.InternalSearchLevelEnum.User:
                    if (view.OfferDetails.OfferOriginatorAppUserId != rejectedAuthorisationId)
                    {
                        displayRejectButton = false;
                    }
                    break;

                case GeneralEnums.InternalSearchLevelEnum.Group:      //LSLSLS  TO BE DONE WHEN GROUPS ADDED
                    break;
                }
                switch (view.OfferAppUserSettings.OffersReturnedAuthorisationManageViewLevel)
                {
                case GeneralEnums.InternalSearchLevelEnum.Company:
                    if (view.OfferDetails.OfferOriginatorCompanyId != returnedAuthorisationId)
                    {
                        displayOfferButton = false;
                    }
                    break;

                case GeneralEnums.InternalSearchLevelEnum.Branch:
                    if (view.OfferDetails.OfferOriginatorBranchId != returnedAuthorisationId)
                    {
                        displayOfferButton = false;
                    }
                    break;

                case GeneralEnums.InternalSearchLevelEnum.User:
                    if (view.OfferDetails.OfferOriginatorAppUserId != returnedAuthorisationId)
                    {
                        displayOfferButton = false;
                    }
                    break;

                case GeneralEnums.InternalSearchLevelEnum.Group:      //LSLSLS  TO BE DONE WHEN GROUPS ADDED
                    break;
                }
            }
            else
            {
                switch (view.ListingAppUserSettings.OffersAcceptedAuthorisationManageViewLevel)
                {
                case GeneralEnums.InternalSearchLevelEnum.Company:
                    if (view.OfferDetails.ListingOriginatorCompanyId != acceptedAuthorisationId)
                    {
                        displayAcceptButton = false;
                    }
                    break;

                case GeneralEnums.InternalSearchLevelEnum.Branch:
                    if (view.OfferDetails.ListingOriginatorBranchId != acceptedAuthorisationId)
                    {
                        displayAcceptButton = false;
                    }
                    break;

                case GeneralEnums.InternalSearchLevelEnum.User:
                    if (view.OfferDetails.ListingOriginatorAppUserId != acceptedAuthorisationId)
                    {
                        displayAcceptButton = false;
                    }
                    break;

                case GeneralEnums.InternalSearchLevelEnum.Group:      //LSLSLS  TO BE DONE WHEN GROUPS ADDED
                    break;
                }
                switch (view.ListingAppUserSettings.OffersRejectedAuthorisationManageViewLevel)
                {
                case GeneralEnums.InternalSearchLevelEnum.Company:
                    if (view.OfferDetails.ListingOriginatorCompanyId != rejectedAuthorisationId)
                    {
                        displayRejectButton = false;
                    }
                    break;

                case GeneralEnums.InternalSearchLevelEnum.Branch:
                    if (view.OfferDetails.ListingOriginatorBranchId != rejectedAuthorisationId)
                    {
                        displayRejectButton = false;
                    }
                    break;

                case GeneralEnums.InternalSearchLevelEnum.User:
                    if (view.OfferDetails.ListingOriginatorAppUserId != rejectedAuthorisationId)
                    {
                        displayRejectButton = false;
                    }
                    break;

                case GeneralEnums.InternalSearchLevelEnum.Group:      //LSLSLS  TO BE DONE WHEN GROUPS ADDED
                    break;
                }
                switch (view.ListingAppUserSettings.OffersReturnedAuthorisationManageViewLevel)
                {
                case GeneralEnums.InternalSearchLevelEnum.Company:
                    if (view.OfferDetails.ListingOriginatorCompanyId != returnedAuthorisationId)
                    {
                        displayCounterButton = false;
                    }
                    break;

                case GeneralEnums.InternalSearchLevelEnum.Branch:
                    if (view.OfferDetails.ListingOriginatorBranchId != returnedAuthorisationId)
                    {
                        displayCounterButton = false;
                    }
                    break;

                case GeneralEnums.InternalSearchLevelEnum.User:
                    if (view.OfferDetails.ListingOriginatorAppUserId != returnedAuthorisationId)
                    {
                        displayCounterButton = false;
                    }
                    break;

                case GeneralEnums.InternalSearchLevelEnum.Group:      //LSLSLS  TO BE DONE WHEN GROUPS ADDED
                    break;
                }
            }
        }
Beispiel #2
0
        public static void SetOrderButtons(ApplicationDbContext db, IPrincipal user, Order order, bool orderOut, out bool?displayDespatchButton, out bool?displayDeliveredButton, out bool?displayReceivedButton, out bool?displayCollectedButton, out bool?displayClosedButton)
        {
            //Get settings for logged in user
            AppUserSettings settings = AppUserSettingsHelpers.GetAppUserSettingsForUser(db, user);

            //Set the authorisation levels and IDs for button activation on form
            InternalSearchLevelEnum despatchedAuthorisationLevel = settings.OrdersDespatchedAuthorisationManageViewLevel;
            Guid despatchedAuthorisationId = DataHelpers.GetAuthorisationId(settings.OrdersDespatchedAuthorisationManageViewLevel, user);
            InternalSearchLevelEnum deliveredAuthorisationLevel = settings.OrdersDeliveredAuthorisationManageViewLevel;
            Guid deliveredAuthorisationId = DataHelpers.GetAuthorisationId(settings.OrdersDeliveredAuthorisationManageViewLevel, user);
            InternalSearchLevelEnum receivedAuthorisationLevel = settings.OrdersReceivedAuthorisationManageViewLevel;
            Guid receivedAuthorisationId = DataHelpers.GetAuthorisationId(settings.OrdersReceivedAuthorisationManageViewLevel, user);
            InternalSearchLevelEnum collectedAuthorisationLevel = settings.OrdersCollectedAuthorisationManageViewLevel;
            Guid collectedAuthorisationId = DataHelpers.GetAuthorisationId(settings.OrdersCollectedAuthorisationManageViewLevel, user);
            InternalSearchLevelEnum closedAuthorisationLevel = settings.OrdersClosedAuthorisationManageViewLevel;
            Guid closedAuthorisationId = DataHelpers.GetAuthorisationId(settings.OrdersClosedAuthorisationManageViewLevel, user);

            //set buttons
            if (orderOut)
            {
                displayDespatchButton  = true;
                displayDeliveredButton = true;
                displayReceivedButton  = null;
                displayCollectedButton = null;
                displayClosedButton    = true;

                switch (despatchedAuthorisationLevel)
                {
                case InternalSearchLevelEnum.Company:
                    if (order.OrderOriginatorCompanyId != despatchedAuthorisationId && order.OfferOriginatorCompanyId != despatchedAuthorisationId)
                    {
                        displayDespatchButton = false;
                    }
                    break;

                case InternalSearchLevelEnum.Branch:
                    if (order.OrderOriginatorBranchId != despatchedAuthorisationId && order.OfferOriginatorBranchId != despatchedAuthorisationId)
                    {
                        displayDespatchButton = false;
                    }
                    break;

                case InternalSearchLevelEnum.User:
                    if (order.OrderOriginatorAppUserId != despatchedAuthorisationId && order.OfferOriginatorAppUserId != despatchedAuthorisationId)
                    {
                        displayDespatchButton = false;
                    }
                    break;

                case InternalSearchLevelEnum.Group:       //LSLSLS  TO BE DONE WHEN GROUPS ADDED
                    break;
                }

                switch (deliveredAuthorisationLevel)
                {
                case InternalSearchLevelEnum.Company:
                    if (order.OrderOriginatorCompanyId != deliveredAuthorisationId && order.OfferOriginatorCompanyId != deliveredAuthorisationId)
                    {
                        displayDeliveredButton = false;
                    }
                    break;

                case InternalSearchLevelEnum.Branch:
                    if (order.OrderOriginatorBranchId != deliveredAuthorisationId && order.OfferOriginatorBranchId != deliveredAuthorisationId)
                    {
                        displayDespatchButton = false;
                    }
                    break;

                case InternalSearchLevelEnum.User:
                    if (order.OrderOriginatorAppUserId != deliveredAuthorisationId && order.OfferOriginatorAppUserId != deliveredAuthorisationId)
                    {
                        displayDespatchButton = false;
                    }
                    break;

                case InternalSearchLevelEnum.Group:       //LSLSLS  TO BE DONE WHEN GROUPS ADDED
                    break;
                }

                switch (closedAuthorisationLevel)
                {
                case InternalSearchLevelEnum.Company:
                    if (order.OrderOriginatorCompanyId != closedAuthorisationId && order.OfferOriginatorCompanyId != closedAuthorisationId)
                    {
                        displayClosedButton = false;
                    }
                    break;

                case InternalSearchLevelEnum.Branch:
                    if (order.OrderOriginatorBranchId != closedAuthorisationId && order.OfferOriginatorBranchId != closedAuthorisationId)
                    {
                        displayClosedButton = false;
                    }
                    break;

                case InternalSearchLevelEnum.User:
                    if (order.OrderOriginatorAppUserId != closedAuthorisationId && order.OfferOriginatorAppUserId != closedAuthorisationId)
                    {
                        displayClosedButton = false;
                    }
                    break;

                case InternalSearchLevelEnum.Group:       //LSLSLS  TO BE DONE WHEN GROUPS ADDED
                    break;
                }
            }
            else
            {
                displayDespatchButton  = null;
                displayDeliveredButton = null;
                displayReceivedButton  = true;
                displayCollectedButton = true;
                displayClosedButton    = true;

                switch (collectedAuthorisationLevel)
                {
                case InternalSearchLevelEnum.Company:
                    if (order.OrderOriginatorCompanyId != collectedAuthorisationId && order.OfferOriginatorCompanyId != collectedAuthorisationId)
                    {
                        displayCollectedButton = false;
                    }
                    break;

                case InternalSearchLevelEnum.Branch:
                    if (order.OrderOriginatorBranchId != collectedAuthorisationId && order.OfferOriginatorBranchId != collectedAuthorisationId)
                    {
                        displayCollectedButton = false;
                    }
                    break;

                case InternalSearchLevelEnum.User:
                    if (order.OrderOriginatorAppUserId != collectedAuthorisationId && order.OfferOriginatorAppUserId != collectedAuthorisationId)
                    {
                        displayCollectedButton = false;
                    }
                    break;

                case InternalSearchLevelEnum.Group:       //LSLSLS  TO BE DONE WHEN GROUPS ADDED
                    break;
                }

                switch (receivedAuthorisationLevel)
                {
                case InternalSearchLevelEnum.Company:
                    if (order.OrderOriginatorCompanyId != receivedAuthorisationId && order.OfferOriginatorCompanyId != receivedAuthorisationId)
                    {
                        displayReceivedButton = false;
                    }
                    break;

                case InternalSearchLevelEnum.Branch:
                    if (order.OrderOriginatorBranchId != receivedAuthorisationId && order.OfferOriginatorBranchId != receivedAuthorisationId)
                    {
                        displayReceivedButton = false;
                    }
                    break;

                case InternalSearchLevelEnum.User:
                    if (order.OrderOriginatorAppUserId != receivedAuthorisationId && order.OfferOriginatorAppUserId != receivedAuthorisationId)
                    {
                        displayReceivedButton = false;
                    }
                    break;

                case InternalSearchLevelEnum.Group:       //LSLSLS  TO BE DONE WHEN GROUPS ADDED
                    break;
                }

                switch (closedAuthorisationLevel)
                {
                case InternalSearchLevelEnum.Company:
                    if (order.OrderOriginatorCompanyId != closedAuthorisationId && order.OfferOriginatorCompanyId != closedAuthorisationId)
                    {
                        displayClosedButton = false;
                    }
                    break;

                case InternalSearchLevelEnum.Branch:
                    if (order.OrderOriginatorBranchId != closedAuthorisationId && order.OfferOriginatorBranchId != closedAuthorisationId)
                    {
                        displayClosedButton = false;
                    }
                    break;

                case InternalSearchLevelEnum.User:
                    if (order.OrderOriginatorAppUserId != closedAuthorisationId && order.OfferOriginatorAppUserId != closedAuthorisationId)
                    {
                        displayClosedButton = false;
                    }
                    break;

                case InternalSearchLevelEnum.Group:       //LSLSLS  TO BE DONE WHEN GROUPS ADDED
                    break;
                }
            }
        }