[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Inventory/views/ -> SendEmail.php (source)

   1  <?php
   2  /* +***********************************************************************************
   3   * The contents of this file are subject to the vtiger CRM Public License Version 1.0
   4   * ("License"); You may not use this file except in compliance with the License
   5   * The Original Code is:  vtiger CRM Open Source
   6   * The Initial Developer of the Original Code is vtiger.
   7   * Portions created by vtiger are Copyright (C) vtiger.
   8   * All Rights Reserved.
   9   * *********************************************************************************** */
  10  
  11  class Inventory_SendEmail_View extends Vtiger_ComposeEmail_View {
  12  
  13      /**
  14       * Function which will construct the compose email
  15       * This will handle the case of attaching the invoice pdf as attachment
  16       * @param Vtiger_Request $request 
  17       */
  18      public function composeMailData(Vtiger_Request $request) {
  19          parent::composeMailData($request);
  20          $viewer = $this->getViewer($request);
  21          $inventoryRecordId = $request->get('record');
  22          $recordModel = Vtiger_Record_Model::getInstanceById($inventoryRecordId, $request->getModule());
  23          $pdfFileName = $recordModel->getPDFFileName();
  24          
  25          $fileComponents = explode('/', $pdfFileName);
  26          
  27          $fileName = $fileComponents[count($fileComponents)-1];
  28          //remove the fileName
  29          array_pop($fileComponents);
  30  
  31          $attachmentDetails = array(array(
  32              'attachment' =>$fileName,
  33              'path' => implode('/',$fileComponents),
  34              'size' => filesize($pdfFileName),
  35              'type' => 'pdf',
  36              'nondeletable' => true
  37          ));
  38  
  39          $this->populateTo($request);
  40          $viewer->assign('ATTACHMENTS', $attachmentDetails);
  41          echo $viewer->view('ComposeEmailForm.tpl', 'Emails', true);
  42      }
  43  
  44      public function populateTo($request){
  45          $viewer = $this->getViewer($request);
  46          
  47          $inventoryRecordId = $request->get('record');
  48          $recordModel = Vtiger_Record_Model::getInstanceById($inventoryRecordId, $request->getModule());
  49          $inventoryModule = $recordModel->getModule();
  50          $inventotyfields = $inventoryModule->getFields();
  51          
  52          $toEmailConsiderableFields = array('contact_id','account_id','vendor_id');
  53          $db = PearDatabase::getInstance();
  54          $to = array();
  55          $to_info = array();
  56          $toMailNamesList = array();
  57          foreach($toEmailConsiderableFields as $fieldName){
  58              if(!array_key_exists($fieldName, $inventotyfields)){
  59                  continue;
  60              }
  61              $fieldModel = $inventotyfields[$fieldName];
  62              if(!$fieldModel->isViewable()) {
  63                  continue;
  64              }
  65              $fieldValue = $recordModel->get($fieldName);
  66              if(empty($fieldValue)) {
  67                  continue;
  68              }
  69              $referenceList = $fieldModel->getReferenceList();
  70              $referenceModule = $referenceList[0];
  71              $fieldLabel = Vtiger_Util_Helper::getLabel($fieldValue);
  72              $referenceModuleModel = Vtiger_Module_Model::getInstance($referenceModule);
  73              $emailFields = $referenceModuleModel->getFieldsByType('email');
  74              if(count($emailFields) <= 0) {
  75                  continue;
  76              }
  77              
  78              $current_user = Users_Record_Model::getCurrentUserModel();
  79              $queryGenerator = new QueryGenerator($referenceModule, $current_user);
  80              $queryGenerator->setFields(array_keys($emailFields));
  81              $query = $queryGenerator->getQuery();
  82              $query .= ' AND crmid = ' . $fieldValue;
  83              
  84              $result = $db->pquery($query, array());
  85              $num_rows = $db->num_rows($result);
  86              if($num_rows  <= 0) {
  87                  continue;
  88              }
  89              foreach($emailFields as $fieldName => $emailFieldModel) {
  90                  $emailValue = $db->query_result($result,0,$fieldName);
  91                  if(!empty($emailValue)){
  92                      $to[] = $emailValue;
  93                      $to_info[$fieldValue][] = $emailValue;
  94                      $toMailNamesList[$fieldValue][] = array('label' => $fieldLabel, 'value' => $emailValue);
  95                      break;
  96                  }
  97              }
  98              if(!empty($to)) {
  99                  break;
 100              }
 101          }
 102          $viewer->assign('TO', $to);
 103          $viewer->assign('TOMAIL_NAMES_LIST', $toMailNamesList);
 104          $viewer->assign('TOMAIL_INFO', $to_info);
 105      }
 106      
 107  }


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1