psdi.plusc.app.pluscds

Class PlusCDSStatusHandler

  • All Implemented Interfaces:
    MboConstants


    public class PlusCDSStatusHandler
    extends StatusHandler
    Handles all the status changes for a Data Sheet object.
    • Field Detail

      • statusChangeMatrix

        public static boolean[][] statusChangeMatrix
        A statusChangeMatrix for the legal status changes that can be made. Status   DRAFT    WAPPR   APPR    INACTIVE  DRAFT false true true true WAPPR true false true true APPR true true false true INACTIVE true true true false The above table must be read from right to left only.
        For example if you want to change the status from COMP to WAPPR , look at the left for the COMP row and look at the intersecting WAPPR column. The value is false. This means that this status change is not allowed.
    • Constructor Detail

      • PlusCDSStatusHandler

        public PlusCDSStatusHandler(StatefulMbo sm)
        Constructor
    • Method Detail

      • checkStatusChangeAuthorization

        public void checkStatusChangeAuthorization(java.lang.String desiredExternalStatus)
                                            throws MXException,
                                                   java.rmi.RemoteException
        Checks to see if the user is authorised to make a status changes. In other words , it checks if the user has the required privilege to change the status. After ensuring that the user has the required privilege, this methods checks if the status change is legal.
        Specified by:
        checkStatusChangeAuthorization in class StatusHandler
        Parameters:
        desiredExternalStatus - The desired external status of the PO.
        Throws:
        MXException - the mX exception
        java.rmi.RemoteException - the remote exception
        See Also:
        This method is used to build the list of permitted status changes.
      • checkUserSecurity

        public void checkUserSecurity(java.lang.String desiredMaxStatus)
                               throws MXException,
                                      java.rmi.RemoteException
        Check out the users security rights to call the specified status. Note the status passed in is the INTERNAL status code. Note that the SigOption Option Name doesn't always match the status name.
        Parameters:
        desiredMaxStatus - The status to check if we can change to.
        Throws:
        MXException - the mX exception
        java.rmi.RemoteException - the remote exception
      • canChangeStatus

        public void canChangeStatus(java.lang.String currentStatus,
                                    java.lang.String desiredStatus,
                                    long accessModifier)
                             throws MXException,
                                    java.rmi.RemoteException
        Defines which status changes are legal. If a status change is not legal, an MXAccessException is thrown.
        Overrides:
        canChangeStatus in class StatusHandler
        Parameters:
        currentStatus - the Data Sheet's current status
        desiredStatus - the status to change to
        accessModifier - If this flag is set to NOACCESSCHECK, a work flow controlled purchase requisition may change status.
        Throws:
        MXException - the mX exception
        java.rmi.RemoteException - the remote exception
      • changeStatus

        public void changeStatus(java.lang.String currentStatus,
                                 java.lang.String desiredStatus,
                                 java.util.Date date,
                                 java.lang.String memo)
                          throws MXException,
                                 java.rmi.RemoteException
        Changes the status from the current state to a desired state.
        Overrides:
        changeStatus in class StatusHandler
        Parameters:
        currentStatus - the PR's current status
        desiredStatus - the status to change to
        date - the date as of the status change is to be made
        memo - memo text
        Throws:
        MXException - the mX exception
        java.rmi.RemoteException - the remote exception