Plugin Directory

Changeset 2368462


Ignore:
Timestamp:
08/25/2020 09:01:11 AM (6 years ago)
Author:
zikubd
Message:

version 1.6.4 release

Location:
erp
Files:
2237 added
13 edited

Legend:

Unmodified
Added
Removed
  • erp/trunk/includes/framework/class-system-status.php

    r2224700 r2368462  
    288288    }
    289289
     290    /**
     291     * This method will return ERP User Role Counts
     292     *
     293     * @param string $type accepted types are: active_users, hrm_manager, crm_manager, crm_agent, accounting_manager
     294     * @since 1.6.4
     295     * @return bool|int|void
     296     */
     297    public function get_erp_user_count( $type = 'active_users' ) {
     298
     299        $roles = [];
     300
     301        switch ( $type ) {
     302            case 'hrm_manager':
     303                $roles[] = erp_hr_get_manager_role();
     304                break;
     305
     306            case 'crm_manager':
     307                $roles[] = erp_crm_get_manager_role();
     308                break;
     309
     310            case 'crm_agent':
     311                $roles[] = erp_crm_get_agent_role();
     312                break;
     313
     314            case 'accounting_manager':
     315                $roles[] = erp_ac_get_manager_role();
     316                break;
     317
     318            case 'active_users':
     319                if ( wperp()->modules->is_module_active('crm') ) {
     320                    $roles[] = erp_crm_get_manager_role();
     321                    $roles[] = erp_crm_get_agent_role();
     322                }
     323
     324                if ( wperp()->modules->is_module_active('accounting') ) {
     325                    $roles[] = erp_ac_get_manager_role();
     326                }
     327
     328                if ( wperp()->modules->is_module_active('hrm') ) {
     329                    $roles[] = erp_hr_get_manager_role();
     330                    $roles[] = erp_hr_get_employee_role();
     331                }
     332                break;
     333        }
     334
     335        if ( empty( $roles ) ) {
     336            return false;
     337        }
     338
     339        $user_count = get_users( [
     340            'role__in' => $roles,
     341            'role__not_in' => 'administrator',
     342            'fields' => 'ID'
     343        ] );
     344
     345        // count inactive employees
     346        if ( $type === 'active_users' && wperp()->modules->is_module_active('hrm') ) {
     347            $employees = $this->erp_hr_get_employees();
     348            $user_count = array_diff( $user_count, $employees );
     349        }
     350
     351        return count( $user_count );
     352    }
     353
     354    /**
     355     * This method will count active users of hrm
     356     *
     357     * @since 1.6.4
     358     * @return int
     359     */
     360    public function erp_hr_get_employees() {
     361        global $wpdb;
     362
     363        $employee_tbl = $wpdb->prefix . 'erp_hr_employees';
     364        $employees    = \WeDevs\ERP\HRM\Models\Employee::select( array( $employee_tbl . '.user_id' ) )
     365                        ->leftJoin( $wpdb->users, $employee_tbl . '.user_id', '=', $wpdb->users . '.ID' );
     366
     367        $employees = $employees->where( 'status', '!=', 'active' );
     368
     369        $results     = $employees->pluck( 'user_id' )->toArray();
     370
     371        return $results;
     372    }
     373
    290374}
  • erp/trunk/includes/framework/views/status-report.php

    r2316399 r2368462  
    5555            <td><?php echo esc_html( \WeDevs\ERP\HRM\Models\Employee::count() ); ?></td>
    5656        </tr>
     57        <tr>
     58            <td data-export-label="No of HR Manager"><?php esc_html_e( 'No of HR Manager', 'erp' ); ?>:</td>
     59            <td class="help"><?php echo wp_kses_post( erp_help_tip( esc_html__( 'Total HR Manager count.', 'erp' ) ) ); ?></td>
     60            <td><?php echo absint( $system_status->get_erp_user_count( 'hrm_manager' ) ); ?></td>
     61        </tr>
    5762        <tr>
    5863            <td data-export-label="Departments"><?php esc_html_e( 'Departments', 'erp' ); ?>:</td>
     
    8590            <td><?php echo esc_html( \WeDevs\ERP\Framework\Models\People::type( 'contact' )->count() ); ?></td>
    8691        </tr>
     92        <tr>
     93            <td data-export-label="No of CRM Manager"><?php esc_html( esc_html_e( 'No of CRM Manager', 'erp' ) ); ?>:</td>
     94            <td class="help"><?php echo wp_kses_post( erp_help_tip( esc_html__( 'Total CRM Manager count.', 'erp' ) ) ); ?></td>
     95            <td><?php echo absint( $system_status->get_erp_user_count( 'crm_manager' ) ); ?></td>
     96        </tr>
     97        <tr>
     98            <td data-export-label="No of CRM Agent"><?php esc_html( esc_html_e( 'No of CRM Agent', 'erp' ) ); ?>:</td>
     99            <td class="help"><?php echo wp_kses_post( erp_help_tip( esc_html__( 'Total CRM Agent count.', 'erp' ) ) ); ?></td>
     100            <td><?php echo absint( $system_status->get_erp_user_count( 'crm_agent' ) ); ?></td>
     101        </tr>
    87102        <tr>
    88103            <td data-export-label="Companies"><?php esc_html_e( 'Companies', 'erp' ); ?>:</td>
     
    100115            </td>
    101116        </tr>
     117        <tr>
     118            <td data-export-label="No of Accounting Manager"><?php esc_html( esc_html_e( 'No of Accounting Manager', 'erp' ) ); ?>:</td>
     119            <td class="help"><?php echo wp_kses_post( erp_help_tip( esc_html__( 'Total Accounting Manager count.', 'erp' ) ) ); ?></td>
     120            <td><?php echo esc_html( $system_status->get_erp_user_count( 'accounting_manager' ) ); ?></td>
     121        </tr>
    102122        <tr>
    103123            <td data-export-label="Customers"><?php esc_html_e( 'Customers', 'erp' ); ?>:</td>
     
    110130            <td><?php echo esc_html( \WeDevs\ERP\Framework\Models\People::type( 'vendor' )->count() ); ?></td>
    111131        </tr>
     132        <tr>
     133            <td data-export-label="Unique Users">
     134                <strong><em class="erp-mini-title"># <?php esc_html_e( 'Unique Users', 'erp' ); ?></em></strong>
     135            </td>
     136        </tr>
     137        <tr>
     138            <td data-export-label="No of Unique Users"><?php esc_html( esc_html_e( 'No of Unique Users', 'erp' ) ); ?>:</td>
     139            <td class="help"><?php echo wp_kses_post( erp_help_tip( esc_html__( 'No of unique users including Employees, HR Manager, CRM Manager, CRM Agent and Accounting Manager.', 'erp' ) ) ); ?></td>
     140            <td><?php echo esc_html( $system_status->get_erp_user_count( 'active_users' ) ); ?></td>
     141        </tr>
    112142    </tbody>
    113143</table>
  • erp/trunk/includes/functions.php

    r2360717 r2368462  
    33643364 */
    33653365function add_enable_disable_option_save() {
    3366     if ( ! isset( $_REQUEST['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $_REQUEST['_wpnonce'] ), 'erp-nonce' ) ) {
    3367         // die();
     3366    if ( ! isset( $_REQUEST['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $_REQUEST['_wpnonce'] ), 'erp-settings-nonce' ) ) {
     3367        return;
    33683368    }
    33693369
  • erp/trunk/modules/crm/includes/class-contact-subscriber-list-table.php

    r2232111 r2368462  
    320320    public function process_bulk_action() {
    321321        // security check!
    322         if ( isset( $_REQUEST['_wpnonce'] ) && ! empty( $_REQUEST['_wpnonce'] ) ) {
    323 
     322        if ( ! isset( $_REQUEST['_wpnonce'] ) || empty( $_REQUEST['_wpnonce'] ) ) {
     323            return;
     324        }
     325        else {
    324326            $nonce  = filter_input( INPUT_POST, '_wpnonce', FILTER_SANITIZE_STRING );
    325327            $action = 'bulk-' . $this->_args['plural'];
  • erp/trunk/modules/crm/includes/functions-customer.php

    r2360717 r2368462  
    31863186
    31873187        case 'process_crm_contact':
    3188             if ( isset( $_REQUEST['_wpnonce'] ) && ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) ), 'erp_create_contact_from_user' ) ) {
     3188            if ( ! isset( $_REQUEST['_wpnonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) ), 'erp_create_contact_from_user' ) ) {
    31893189                exit;
    31903190            }
  • erp/trunk/modules/hrm/includes/admin/class-menu.php

    r2316399 r2368462  
    143143
    144144        $request_capabilities = 'erp_leave_manage';
    145         if ( class_exists( '\weDevs\ERP_PRO\HR\Leave\Multilevel' ) && get_option('erp_pro_multilevel_approval') === 'yes' )  {
     145        if ( class_exists( '\weDevs\ERP_PRO\PRO\AdvancedLeave\Module' ) && get_option('erp_pro_multilevel_approval') === 'yes' )  {
    146146            $request_capabilities = erp_hr_is_current_user_dept_lead() ? 'erp_list_employee' : 'erp_leave_manage';
    147147        }
  • erp/trunk/modules/hrm/includes/class-form-handler.php

    r2345364 r2368462  
    132132     */
    133133    public function handle_leave_calendar_filter() {
    134         if ( ! isset( $_REQUEST['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $_REQUEST['_wpnonce'] ), 'my-nonce' ) ) {
    135             // do action
     134        if ( ! isset( $_REQUEST['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $_REQUEST['_wpnonce'] ), 'erp_calendar_filter' ) ) {
     135            return;
    136136        }
    137137
     
    182182    public function leave_policies() {
    183183
    184         if ( ! isset( $_REQUEST['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $_REQUEST['_wpnonce'] ), 'my-nonce' ) ) {
    185             // do action
     184        if ( ! isset( $_REQUEST['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $_REQUEST['_wpnonce'] ), 'bulk-leave_policies' ) ) {
     185            return;
    186186        }
    187187
  • erp/trunk/modules/hrm/includes/functions-employee.php

    r2316399 r2368462  
    10391039function erp_revoke_terminated_employee_access( $capabilities, $caps, $args, $user ) {
    10401040
    1041     if ( !in_array( 'erp_list_employee', $caps ) && !in_array( 'upload_files', $caps ) ) {
     1041    if ( ! in_array( 'erp_list_employee', $caps )   &&
     1042         ! in_array( 'upload_files', $caps )        &&
     1043         ! in_array( 'erp_ac_manager', $caps )      &&
     1044         ! in_array( 'erp_crm_manage_dashboard', $caps )
     1045    ) {
    10421046        return $capabilities;
    10431047    }
    10441048
    10451049    //check if user is employee
    1046     if ( !in_array( erp_hr_get_employee_role(), $user->roles ) ) {
     1050    if ( ! in_array( erp_hr_get_employee_role(), $user->roles ) ) {
    10471051        return $capabilities;
    10481052    }
    10491053
    10501054    $employee = new WeDevs\ERP\HRM\Employee( $user );
    1051     if ( 'terminated' === $employee->get_status() ) {
    1052         $capabilities['erp_list_employee'] = false;
     1055    if ( 'active' !== $employee->get_status() ) {
     1056        $capabilities['erp_list_employee'] = false; // hr menu capabilities
    10531057        $capabilities['upload_files']      = false;
     1058        $capabilities['erp_ac_manager'] = false; // accounting menu capabilities
     1059        $capabilities['erp_crm_manage_dashboard'] = false; // crm menu capabilities
    10541060    }
    10551061
  • erp/trunk/modules/hrm/includes/functions-leave.php

    r2332856 r2368462  
    11761176    if ( $period['days'] ) {
    11771177        foreach ( $period['days'] as $date ) {
    1178             if ( class_exists( '\weDevs\ERP_PRO\HR\Leave' ) && get_option( 'erp_pro_sandwich_leave', '') !== 'yes' && ! $date['count'] ) { // skip if holiday or not working day
     1178            if ( class_exists( '\weDevs\ERP_PRO\PRO\AdvancedLeave\Module' ) && get_option( 'erp_pro_sandwich_leave', '') !== 'yes' && ! $date['count'] ) { // skip if holiday or not working day
    11791179                continue;
    11801180            }
     
    15481548        $counts['all']['count'] = $total;
    15491549
    1550         if ( ! class_exists( '\weDevs\ERP_PRO\HR\Leave\Multilevel' ) ) {
     1550        if ( ! class_exists( '\weDevs\ERP_PRO\PRO\AdvancedLeave\Module' ) ) {
    15511551            if ( isset( $counts['4'] ) ) {
    15521552                unset( $counts['4'] );
    15531553            }
    15541554        }
    1555         elseif( class_exists( '\weDevs\ERP_PRO\HR\Leave\Multilevel' ) && get_option('erp_pro_multilevel_approval') !== 'yes' ) {
     1555        elseif( class_exists( '\weDevs\ERP_PRO\PRO\AdvancedLeave\Module' ) && get_option('erp_pro_multilevel_approval') !== 'yes' ) {
    15561556            if ( isset( $counts['4'] ) ) {
    15571557                unset( $counts['4'] );
  • erp/trunk/modules/hrm/includes/functions.php

    r2316399 r2368462  
    7272        }
    7373
    74         if ( class_exists( '\weDevs\ERP_PRO\HR\Leave' ) && get_option( 'erp_pro_sandwich_leave', '') === 'yes'  ) {
     74        if ( class_exists( '\weDevs\ERP_PRO\PRO\AdvancedLeave\Module' ) && get_option( 'erp_pro_sandwich_leave', '') === 'yes'  ) {
    7575            $dates['days'][] = array(
    7676                'date'  => $date,
     
    145145        );
    146146
    147         if ( class_exists( '\weDevs\ERP_PRO\HR\Leave' ) && get_option( 'erp_pro_sandwich_leave', '') === 'yes'  ) {
     147        if ( class_exists( '\weDevs\ERP_PRO\PRO\AdvancedLeave\Module' ) && get_option( 'erp_pro_sandwich_leave', '') === 'yes'  ) {
    148148            $dates['total'] += 1;
    149149
     
    173173function erp_hr_can_apply_sandwich_rules_between_dates( $start_date, $end_date, $user_id = null ) {
    174174    // check pro active
    175     if ( ! class_exists( '\weDevs\ERP_PRO\HR\Leave' ) ) {
     175    if ( ! class_exists( '\weDevs\ERP_PRO\PRO\AdvancedLeave\Module' ) ) {
    176176        return array();
    177177    }
  • erp/trunk/modules/hrm/views/leave/calendar.php

    r2316399 r2368462  
    8080            ?>
    8181            <input type="submit" class="button" name="erp_leave_calendar_filter" value="<?php esc_html_e( 'Filter', 'erp' ); ?>">
     82            <?php wp_nonce_field( 'erp_calendar_filter' ); ?>
    8283        </form>
    8384    </div>
  • erp/trunk/readme.txt

    r2360717 r2368462  
    66Tested up to: 5.5
    77Requires PHP: 5.6
    8 Stable tag: 1.6.3
     8Stable tag: 1.6.4
    99License: GPLv2
    1010License: GPLv2 or later
     
    267267
    268268== Changelog ==
     269
     270= v1.6.4 -> August 25, 2020 =
     271--------------------------
     272- [tweak] changed ERP PRO class references
     273- [new] revoke access of hrm, crm and accounting modules if employee status is not active
     274- [new] added various erp user count on Status report page
     275- [fix] Optimized code for better security
    269276
    270277= v1.6.3 -> August 13, 2020 =
  • erp/trunk/wp-erp.php

    r2360717 r2368462  
    66 * Author: weDevs
    77 * Author URI: https://wedevs.com
    8  * Version: 1.6.3
     8 * Version: 1.6.4
    99 * License: GPL2
    1010 * Text Domain: erp
     
    5353     * @var string
    5454     */
    55     public $version = '1.6.3';
     55    public $version = '1.6.4';
    5656
    5757    /**
Note: See TracChangeset for help on using the changeset viewer.