Esempio n. 1
0
        /// <summary>
        /// Gets the permissions for the current logged on user.
        /// </summary>
        /// <param name="allowMultipleLogons"></param>
        /// <param name="allowMultipleShiftLogons"></param>
        private static void GetPermissions(ref bool allowMultipleLogons, ref bool allowMultipleShiftLogons)
        {
            const int     CHECKED        = 1;
            LogonData     logonData      = new LogonData(ApplicationSettings.Database.LocalConnection, ApplicationSettings.Database.DATAAREAID);
            PosPermission userPermission = logonData.GetUserPosPermission(ApplicationSettings.Terminal.StoreId, ApplicationSettings.Terminal.TerminalOperator.OperatorId);

            if (userPermission != null)
            {
                if ((userPermission.ManagerPrivileges == CHECKED) ||
                    (userPermission.AllowMultipleLogins == CHECKED))
                {
                    allowMultipleLogons = true;
                }

                if ((userPermission.ManagerPrivileges == CHECKED) ||
                    (userPermission.AllowMultipleShiftLogOn == CHECKED))
                {
                    allowMultipleShiftLogons = true;
                }
            }
        }
Esempio n. 2
0
        private void LogonGridUser()
        {
            try
            {
                //if nothing is selected display an error message
                if (grvUserData.SelectedRowsCount == 0)
                {
                    PosApplication.Instance.Services.Dialog.ShowMessage(31, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                //Get the selected user id
                DataRow row = grvUserData.GetDataRow(grvUserData.GetSelectedRows()[0]);
                operatorId   = row["STAFFID"].ToString();
                operatorName = row["NAME"].ToString();

                LogonData        logonData     = new LogonData(ApplicationSettings.Database.LocalConnection, ApplicationSettings.Database.DATAAREAID);
                EF.PosPermission posPermission = logonData.GetUserPosPermission(ApplicationSettings.Terminal.StoreId, operatorId);

                if (!string.IsNullOrWhiteSpace(operatorId))
                {
                    //This is to assign the operator culture ONCE such that it is available throughout all translation attempts
                    LSRetailPosis.DataAccess.Language lang = new Language(ApplicationSettings.Database.LocalConnection, ApplicationSettings.Database.DATAAREAID);

                    // Set operator culture if found, otherwise default to terminal culture
                    string opCultNam = lang.GetOperatorCultureName(ApplicationSettings.Terminal.StoreId, operatorId);
                    if (!string.IsNullOrEmpty(opCultNam))
                    {
                        ApplicationSettings.Terminal.OperatorCultureName = opCultNam;
                    }
                }


                if (posPermission == null)
                {
                    // No permisison or position
                    using (frmMessage message = new frmMessage(1004))
                    {
                        POSFormsManager.ShowPOSForm(message);
                    }

                    return;
                }

                //display the numpad to get the password
                using (LSRetailPosis.POSProcesses.frmInputNumpad frmNumPad = new LSRetailPosis.POSProcesses.frmInputNumpad())
                {
                    frmNumPad.EntryTypes = NumpadEntryTypes.Password;
                    frmNumPad.PromptText = ApplicationLocalizer.Language.Translate(2379); //"Password";

                    bool logonWorked = false;

                    while (logonWorked == false)
                    {
                        //if button OK / Enter was hit
                        POSFormsManager.ShowPOSForm(frmNumPad);
                        if (frmNumPad.DialogResult == DialogResult.OK)
                        {
                            password = frmNumPad.InputText;

                            if (logonWorked = Login.LogOnUser(true, operatorId, operatorName, operatorName, password))
                            {
                                //Set privilege
                                ApplicationSettings.Terminal.TerminalOperator.MaxLineReturnAmount  = PosApplication.Instance.BusinessLogic.Utility.ToDecimal(posPermission.MaxLineReturnAmount);
                                ApplicationSettings.Terminal.TerminalOperator.MaxTotalReturnAmount = PosApplication.Instance.BusinessLogic.Utility.ToDecimal(posPermission.MaxTotalReturnAmount);
                                ApplicationSettings.Terminal.TerminalOperator.UserIsManager        = PosApplication.Instance.BusinessLogic.Utility.ToBool(posPermission.ManagerPrivileges);
                                ApplicationSettings.Terminal.TerminalOperator.UserIsInventoryUser  = PosApplication.Instance.BusinessLogic.Utility.ToBool(posPermission.UseHandheld);

                                LogonSuccessful();
                            }
                        }
                        else
                        {
                            logonWorked = true;
                            status      = LogOnStatus.None;
                        }

                        frmNumPad.TryAgain();
                    }
                }

                if (status == LogOnStatus.LogOn)
                {
                    dlgResult = DialogResult.OK;
                    Close();
                }
            }
            catch (Exception x)
            {
                // The user hasn't entered all the information needed.
                LSRetailPosis.ApplicationExceptionHandler.HandleException(this.ToString(), x);
                throw new PosisException(34, x);
            }
        }