4 +--------------------------------------------------------------------+
5 | Copyright CiviCRM LLC. All rights reserved. |
7 | This work is published under the GNU AGPLv3 license with some |
8 | permitted exceptions and without any warranty. For full license |
9 | and copyright information, see https://civicrm.org/licensing |
10 +--------------------------------------------------------------------+
16 * @copyright CiviCRM LLC https://civicrm.org/licensing
18 class CRM_Utils_Check_Component_PriceFields
extends CRM_Utils_Check_Component
{
21 * Display warning about invalid priceFields
22 * @return CRM_Utils_Check_Message[]
24 public function checkPriceFields() {
25 $sql = "SELECT DISTINCT ps.title as ps_title, ps.id as ps_id, psf.label as psf_label
26 FROM civicrm_price_set ps
27 INNER JOIN civicrm_price_field psf ON psf.price_set_id = ps.id
28 INNER JOIN civicrm_price_field_value pfv ON pfv.price_field_id = psf.id
29 LEFT JOIN civicrm_financial_type cft ON cft.id = pfv.financial_type_id
30 WHERE cft.id IS NULL OR cft.is_active = 0";
31 $dao = CRM_Core_DAO
::executeQuery($sql);
35 while ($dao->fetch()) {
37 $url = CRM_Utils_System
::url('civicrm/admin/price/field', [
42 $html .= "<tr><td>$dao->ps_title</td><td>$dao->psf_label</td><td><a href='$url'>View Price Set Fields</a></td></tr>";
45 $msg = "<p>the following Price Set Fields use disabled or invalid financial types and need to be fixed if they are to still be used.<p>
46 <p><table><thead><tr><th>Price Set</th><th>Price Set Field</th><th>Action Link</th>
49 </tbody></table></p>";
50 $messages[] = new CRM_Utils_Check_Message(
53 ts('Invalid Price Fields'),
54 \Psr\Log\LogLevel
::WARNING
,