/home/edulekha/crm.edulekha.com/application/views/admin/settings/includes/cronjob.php
<?php defined('BASEPATH') or exit('No direct script access allowed'); ?>

<div class="horizontal-scrollable-tabs panel-full-width-tabs">
    <div class="scroller arrow-left"><i class="fa fa-angle-left"></i></div>
    <div class="scroller arrow-right"><i class="fa fa-angle-right"></i></div>
    <div class="horizontal-tabs">
        <ul class="nav nav-tabs nav-tabs-horizontal" role="tablist">
            <li role="presentation" class="active">
                <a href="#cron_command" aria-controls="cron_command" role="tab" data-toggle="tab">Command</a>
            </li>
            <li role="presentation">
                <a href="#set_invoice" aria-controls="set_invoice" role="tab"
                    data-toggle="tab"><?= _l('settings_sales_cron_invoice_heading'); ?></a>
            </li>
            <li role="presentation">
                <a href="#estimates" aria-controls="estimates" role="tab"
                    data-toggle="tab"><?= _l('estimates'); ?></a>
            </li>
            <li role="presentation">
                <a href="#proposals" aria-controls="proposals" role="tab"
                    data-toggle="tab"><?= _l('proposals'); ?></a>
            </li>
            <li role="presentation">
                <a href="#expenses" aria-controls="expenses" role="tab"
                    data-toggle="tab"><?= _l('expenses'); ?></a>
            </li>
            <li role="presentation">
                <a href="#contracts" aria-controls="contracts" role="tab"
                    data-toggle="tab"><?= _l('contracts'); ?></a>
            </li>
            <li role="presentation">
                <a href="#tasks" aria-controls="tasks" role="tab"
                    data-toggle="tab"><?= _l('tasks'); ?></a>
            </li>
            <li role="presentation">
                <a href="#tickets" aria-controls="tickets" role="tab"
                    data-toggle="tab"><?= _l('tickets'); ?></a>
            </li>

            <?php hooks()->do_action('after_cron_settings_last_tab'); ?>

        </ul>
    </div>
</div>

<div class="tab-content mtop15">
    <div role="tabpanel" class="tab-pane active" id="cron_command">
        <div class="alert alert-info tw-mb-0">
            <span class="bold text-info">CRON COMMAND: wget -q -O-
                <?= site_url('cron/index' . (defined('APP_CRON_KEY') ? '/' . APP_CRON_KEY : '')); ?></span><br />
            <?php if (is_admin()) { ?>
            <a href="<?= admin_url('misc/run_cron_manually'); ?>"
                class="alert-link">
                Run Cron Manually
            </a>
            <?php } ?>
        </div>
    </div>
    <div role="tabpanel" class="tab-pane" id="set_invoice">
        <i class="fa-regular fa-circle-question pull-left tw-mt-0.5 tw-mr-1" data-toggle="tooltip"
            data-title="<?= _l('inv_hour_of_day_perform_auto_operations_help'); ?>"></i>
        <?= render_input('settings[invoice_auto_operations_hour]', 'hour_of_day_perform_auto_operations', get_option('invoice_auto_operations_hour'), 'number', ['data-toggle' => 'tooltip', 'data-title' => _l('hour_of_day_perform_auto_operations_format'), 'max' => 23]); ?>
        <hr />
        <div class="row">
            <div class="col-md-12">
                <?php if (! is_invoices_overdue_reminders_enabled()) { ?>
                <div class="alert alert-warning">
                    The system was not able to find sources to send overdue notices, if you want overdue notices to
                    be
                    sent, make sure that in <a
                        href="<?= admin_url('emails'); ?>"
                        class="alert-link">
                        email templates
                    </a> the
                    <b>Invoice Overdue Notice</b> template for invoices is enabled or at least you have configured
                    <a href="<?= admin_url('settings?group=sms'); ?>"
                        class="alert-link">
                        SMS
                    </a>
                    overdue notice. If you don't
                    need
                    to send overdue notices for invoices, simply ignore this message.
                </div>
                <?php } ?>
                <h4 class="no-mbot font-medium">
                    <?= _l('overdue_notices'); ?>
                </h4>
                <p><?= _l('invoice_overdue_notices_info'); ?>
                </p>
            </div>
            <div class="col-md-6">
                <?= render_input('settings[automatically_send_invoice_overdue_reminder_after]', 'automatically_send_invoice_overdue_reminder_after', get_option('automatically_send_invoice_overdue_reminder_after'), 'number'); ?>
            </div>
            <div class="col-md-6">
                <?= render_input('settings[automatically_resend_invoice_overdue_reminder_after]', 'automatically_resend_invoice_overdue_reminder_after', get_option('automatically_resend_invoice_overdue_reminder_after'), 'number'); ?>
            </div>
            <div class="col-md-12">
                <?php if (! is_invoices_due_reminders_enabled()) { ?>
                <div class="alert alert-warning">
                    The system was not able to find sources to send invoices becoming due notices, if you want due
                    notices to be sent, make sure that in <a
                        href="<?= admin_url('emails'); ?>">email
                        templates</a> the <b>Invoice Due Notice</b> template for invoices is enabled or at least you
                    have configured <a
                        href="<?= admin_url('settings?group=sms'); ?>">SMS</a>
                    due notice. If
                    you
                    don't need to send due notices for invoices, simply ignore this message.
                </div>
                <?php } ?>
                <h4 class="no-mbot font-medium">
                    <?= _l('due_reminders'); ?>
                </h4>
                <p><?= _l('due_reminders_for_invoices_info'); ?>
                </p>
            </div>
            <div class="col-md-6">
                <?= render_input('settings[invoice_due_notice_before]', 'invoice_due_notice_before', get_option('invoice_due_notice_before'), 'number'); ?>
            </div>
            <div class="col-md-6">
                <?= render_input('settings[invoice_due_notice_resend_after]', 'automatically_resend_invoice_overdue_reminder_after', get_option('invoice_due_notice_resend_after'), 'number'); ?>
            </div>
        </div>
        <hr />
        <h4 class="mbot20 font-medium">
            <?= _l('invoices_list_recurring'); ?>
        </h4>
        <div class="radio radio-info">
            <input type="radio" id="generate_and_send" name="settings[new_recurring_invoice_action]"
                value="generate_and_send" <?php if (get_option('new_recurring_invoice_action') == 'generate_and_send') {
                    echo ' checked';
                } ?>>
            <label
                for="generate_and_send"><?= _l('reccuring_invoice_option_gen_and_send'); ?></label>
        </div>
        <div class="radio radio-info">
            <input type="radio" id="generate_unpaid_invoice" name="settings[new_recurring_invoice_action]"
                value="generate_unpaid" <?php if (get_option('new_recurring_invoice_action') == 'generate_unpaid') {
                    echo ' checked';
                } ?>>
            <label
                for="generate_unpaid_invoice"><?= _l('reccuring_invoice_option_gen_unpaid'); ?></label>
        </div>
        <div class="radio radio-info">
            <input type="radio" id="generate_draft_invoice" name="settings[new_recurring_invoice_action]"
                value="generate_draft" <?php if (get_option('new_recurring_invoice_action') == 'generate_draft') {
                    echo ' checked';
                } ?>>
            <label
                for="generate_draft_invoice"><?= _l('reccuring_invoice_option_gen_draft'); ?></label>
        </div>
        <hr />
        <?php render_yes_no_option('create_invoice_from_recurring_only_on_paid_invoices', 'invoices_create_invoice_from_recurring_only_on_paid_invoices', 'invoices_create_invoice_from_recurring_only_on_paid_invoices_tooltip'); ?>

    </div>
    <div role="tabpanel" class="tab-pane" id="tasks">
        <i class="fa-regular fa-circle-question pull-left tw-mt-0.5 tw-mr-1" data-toggle="tooltip"
            data-title="<?= _l('hour_of_day_perform_tasks_reminder_notification_help'); ?>"></i>
        <?= render_input('settings[tasks_reminder_notification_hour]', 'hour_of_day_perform_auto_operations', get_option('tasks_reminder_notification_hour'), 'number', ['data-toggle' => 'tooltip', 'data-title' => _l('hour_of_day_perform_auto_operations_format'), 'max' => 23]); ?>
        <hr />
        <i class="fa-regular fa-circle-question pull-left tw-mt-0.5 tw-mr-1" data-toggle="tooltip"
            data-title="<?= _l('tasks_reminder_notification_before_help'); ?>"></i>
        <?= render_input('settings[tasks_reminder_notification_before]', 'tasks_reminder_notification_before', get_option('tasks_reminder_notification_before'), 'number'); ?>
        <hr />
        <?= render_input('settings[automatically_stop_task_timer_after_hours]', 'automatically_stop_task_timer_after_hours', get_option('automatically_stop_task_timer_after_hours'), 'number'); ?>
        <hr />
        <?php
                      render_yes_no_option('reminder_for_completed_but_not_billed_tasks', 'send_reminder_for_completed_but_not_billed_tasks');
?>
        <div
            class="staff_notify_completed_but_not_billed_tasks_fields <?= get_option('reminder_for_completed_but_not_billed_tasks') == '1' ? '' : 'hide'; ?>">
            <?php
  $selected = get_staff_user_id();
if (! empty(get_option('staff_notify_completed_but_not_billed_tasks'))) {
    $selected = json_decode(get_option('staff_notify_completed_but_not_billed_tasks'));
}
echo render_select('settings[staff_notify_completed_but_not_billed_tasks][]', $staff, ['staffid', ['firstname', 'lastname']], 'staff_to_notify_completed_but_not_billed_tasks', $selected, ['multiple' => true], [], '', '', false);

$weekdays = [];

foreach (array_combine(get_weekdays_original(), get_weekdays()) as $key => $day) {
    $weekdays[] = ['id' => $key, 'day' => $day];
}
$selected = json_decode(get_option('reminder_for_completed_but_not_billed_tasks_days'));
if (empty($selected)) {
    $selected = ['Monday'];
}
echo render_select('settings[reminder_for_completed_but_not_billed_tasks_days][]', $weekdays, ['id', ['day']], 'reminder_for_completed_but_not_billed_tasks_days', $selected, ['multiple' => true, 'data'], [], '', '', false); ?>
        </div>
    </div>
    <div role="tabpanel" class="tab-pane" id="contracts">
        <i class="fa-regular fa-circle-question pull-left tw-mt-0.5 tw-mr-1" data-toggle="tooltip"
            data-title="<?= _l('hour_of_day_perform_auto_operations_format'); ?>"></i>
        <?= render_input('settings[contracts_auto_operations_hour]', 'hour_of_day_perform_auto_operations', get_option('contracts_auto_operations_hour'), 'number', ['max' => 23]); ?>

        <hr />
        <i class="fa-regular fa-circle-question pull-left tw-mt-0.5 tw-mr-1" data-toggle="tooltip"
            data-title="<?= _l('settings_reminders_contracts_tooltip'); ?>"></i>
        <?= render_input('settings[contract_expiration_before]', 'send_expiry_reminder_before', get_option('contract_expiration_before'), 'number'); ?>

        <hr />
        <h4 class="no-mbot font-medium">
            <?= _l('contract_sign_reminders'); ?>
        </h4>
        <p><?= _l('settings_contract_sign_reminder_every_days_info') ?>
        </p>
        <?= render_input('settings[contract_sign_reminder_every_days]', 'contract_sign_reminder_every_days', get_option('contract_sign_reminder_every_days'), 'number'); ?>
    </div>
    <div role="tabpanel" class="tab-pane" id="tickets">
        <i class="fa-regular fa-circle-question pull-left tw-mt-0.5 tw-mr-1" data-toggle="tooltip"
            data-title="<?= _l('auto_close_tickets_disable'); ?>"></i>
        <?= render_input('settings[autoclose_tickets_after]', 'auto_close_ticket_after', get_option('autoclose_tickets_after'), 'number'); ?>
    </div>
    <div role="tabpanel" class="tab-pane" id="estimates">
        <?php if (! is_estimates_expiry_reminders_enabled()) { ?>
        <div class="alert alert-warning">
            The system was not able to find sources to send expiry reminders, if you want expiry reminders to be
            sent,
            make sure that in <a
                href="<?= admin_url('emails'); ?>">email
                templates</a> the expiry reminder
            email
            for estimates is enabled or at least you have configured <a
                href="<?= admin_url('settings?group=sms'); ?>">SMS</a>
            expiry reminder.
        </div>
        <?php } ?>
        <i class="fa-regular fa-circle-question pull-left tw-mt-0.5 tw-mr-1" data-toggle="tooltip"
            data-title="<?= _l('hour_of_day_perform_auto_operations_format'); ?>"></i>
        <?= render_input('settings[estimates_auto_operations_hour]', 'hour_of_day_perform_auto_operations', get_option('estimates_auto_operations_hour'), 'number', ['max' => 23]); ?>
        <hr />
        <?= render_input('settings[send_estimate_expiry_reminder_before]', 'send_expiry_reminder_before', get_option('send_estimate_expiry_reminder_before'), 'number'); ?>
    </div>
    <div role="tabpanel" class="tab-pane" id="proposals">
        <?php if (! is_proposals_expiry_reminders_enabled()) { ?>
        <div class="alert alert-warning">
            The system was not able to find sources to send expiry reminders, if you want expiry reminders to be
            sent,
            make sure that in <a
                href="<?= admin_url('emails'); ?>"
                class="alert-link">email
                templates</a> the expiry reminder
            email
            for proposals is enabled or at least you have configured <a
                href="<?= admin_url('settings?group=sms'); ?>"
                class="alert-link">SMS</a>
            expiry reminder.
        </div>
        <?php } ?>
        <i class="fa-regular fa-circle-question pull-left tw-mt-0.5 tw-mr-1" data-toggle="tooltip"
            data-title="<?= _l('hour_of_day_perform_auto_operations_format'); ?>"></i>
        <?= render_input('settings[proposals_auto_operations_hour]', 'hour_of_day_perform_auto_operations', get_option('proposals_auto_operations_hour'), 'number', ['max' => 23]); ?>
        <hr />

        <?= render_input('settings[send_proposal_expiry_reminder_before]', 'send_expiry_reminder_before', get_option('send_proposal_expiry_reminder_before'), 'number'); ?>
    </div>

    <div role="tablpanel" class="tab-pane" id="expenses">
        <i class="fa-regular fa-circle-question pull-left tw-mt-0.5 tw-mr-1" data-toggle="tooltip"
            data-title="<?= _l('hour_of_day_perform_auto_operations_format'); ?>"></i>
        <?= render_input('settings[expenses_auto_operations_hour]', 'hour_of_day_perform_auto_operations', get_option('expenses_auto_operations_hour'), 'number', ['max' => 23]); ?>
    </div>

    <?php hooks()->do_action('after_cron_settings_last_tab_content'); ?>
</div>