added barcode support, CRM-12966
authorKurund Jalmi <kurund@civicrm.org>
Sun, 7 Jul 2013 14:21:11 +0000 (19:51 +0530)
committerKurund Jalmi <kurund@civicrm.org>
Sun, 7 Jul 2013 14:28:09 +0000 (19:58 +0530)
CRM/Badge/BAO/Badge.php
CRM/Event/Form/Task/Badge.php

index 129edb39ca32d801e0fc82f27efa5b07ac19ab96..fa22b24ccd2e2dc5e8e54f3105e470f53fa79ffe 100644 (file)
@@ -116,6 +116,9 @@ class CRM_Badge_BAO_Badge {
       $formattedRow['barcode'] = $layout['data']['barcode_alignment'];
     }
 
+    // finally assign all the row values, so that we can use it for barcode etc
+    $formattedRow['values'] = $row;
+
     return $formattedRow;
   }
 
@@ -161,6 +164,29 @@ class CRM_Badge_BAO_Badge {
     $this->pdf->SetXY($x, $y + $this->pdf->height - 5);
     $this->pdf->Cell($this->pdf->width, 0, $formattedRow['token'][4]['value'], $this->border, 2,
       $formattedRow['token'][4]['text_alignment']);
+
+    if (CRM_Utils_Array::value('barcode', $formattedRow)) {
+      $style = array(
+        'position' => $formattedRow['barcode'],
+        'align' => $formattedRow['barcode'],
+        'stretch' => FALSE,
+        'fitwidth' => TRUE,
+        'cellfitalign' => '',
+        'border' => FALSE,
+        'hpadding' => 'auto',
+        'vpadding' => 'auto',
+        'fgcolor' => array(0, 0, 0),
+        'bgcolor' => FALSE,
+        'text' => FALSE,
+        'font' => 'helvetica',
+        'fontsize' => 8,
+        'stretchtext' => 0,
+      );
+
+      $payload = $formattedRow['values']['contact_id'] . '-' . $formattedRow['values']['participant_id'];
+      $this->pdf->SetXY($x, $y + $this->pdf->height - 5);
+      $this->pdf->write1DBarcode($payload, "C128A", $x, $this->pdf->getY() - 6, 50, 10, 0.4, $style, 'B');
+    }
   }
 
   /**
index bc748ca228397709ef5c4b96fc4400efb555bd0b..c4a5d1839a93015fce5701bb30ad57dfe55453db 100644 (file)
@@ -142,7 +142,7 @@ class CRM_Event_Form_Task_Badge extends CRM_Event_Form_Task {
     }
 
     // add additional required fields for query execution
-    $additionalFields = array('participant_register_date', 'participant_id');
+    $additionalFields = array('participant_register_date', 'participant_id', 'event_id', 'contact_id');
     foreach ($additionalFields as $field) {
       $returnProperties[$field] = 1;
     }