Показать вычисляемое поле в SuiteCRM Dashlet

1

Я создал расчетное поле на пользовательском модуле. Таким образом, в основном, этот модуль суммирует все суммы счетов, сделанные каждой продажей. Вычисленное поле представляет собой сумму всего счета-фактуры, присвоенного пользователю. Я уже сделал расчетное поле на подробном представлении и его работе. Теперь я хочу показать вычисленное поле в dashlet. Вот мой скриншот:

Изображение 174551

Как вы можете видеть, текущий столбец продаж пуст. Он должен быть заполнен целочисленным значением, отображающим сумму суммы счета, сделанной по имени продажи. Я создал модуль, поле и макет с помощью конструктора studio & module. Как показать вычисленное поле в dashlet?

Вот функция, показывающая выведенное поле на странице подробностей и его уже работающую работу, однако она не работает в dashlet или listview:

public function preDisplay(){
    //$this->bean contains all the information on the Case
    //use that information to grab the related account bean, something like:
    //date format still error here

    $a = new AOS_Invoices();
    $validFromFormatted = date_create_from_format('m/d/Y', $this->bean->valid_from);
    $validToFormatted = date_create_from_format('m/d/Y', $this->bean->valid_through);
    $arr = $a->get_full_list(null,'(aos_invoices.assigned_user_id = \''.$this->bean->user_id_c.'\' and invoice_date between \''.date_format($validFromFormatted,'Y-m-d').'\' and \''.date_format($validToFormatted,'Y-m-d').'\')');


    $sum = 0;
    foreach($arr as $key=>$value){
        if(isset($value->total_amount))
            $sum += $value->total_amount;
    }

    $this->bean->current_sales = $sum;
    parent::preDisplay();
}
Теги:
sugarcrm
suitecrm

2 ответа

0
Лучший ответ

Вместо создания собственного дашлета. Вы могли бы создать отчет вместо этого. Добавьте поле, которое вы хотите отобразить. Добавьте поле total amount а затем установите функцию итога. Вы можете сгруппировать по названию продаж.

На главном экране добавьте дашлет отчетов, нажмите кнопку редактирования и выберите отчет, который вы только что создали.

0

Добавьте логический крючок (before_save), который будет вычислять это поле при сохранении записи, а затем сохранит его внутри того же модуля.

Когда у вас есть поле в том же модуле, просто добавьте в dashlet, как обычные поля.

Преимущество использования этой логики:

  1. Уменьшите нагрузку на загрузку домашней страницы, потому что есть еще много других модулей, которые необходимо загрузить.
  2. Нет глубокой настройки, поэтому вы можете повысить безопасность и дружелюбие.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню