示例#1
0
 /**
  * Save attachments from the email and add it to the module record.
  * @global PearDataBase $db
  * @global String $root_directory
  * @param MailManager_Message_Model $mailrecord
  * @param String $basemodule
  * @param Vtiger_Record_Model $recordModel
  */
 public function __SaveAttachements($mailrecord, $basemodule, $recordModel)
 {
     $db = PearDatabase::getInstance();
     // If there is no attachments return
     if (!$mailrecord->_attachments) {
         return;
     }
     $userid = $recordModel->get('assigned_user_id');
     $recordId = $recordModel->getId();
     $setype = "{$basemodule} Attachment";
     $date_var = $db->formatDate(date('YmdHis'), true);
     foreach ($mailrecord->_attachments as $filename => $filecontent) {
         if (empty($filecontent)) {
             continue;
         }
         $attachid = $db->getUniqueId('vtiger_crmentity');
         $description = $filename;
         $usetime = $db->formatDate($date_var, true);
         $db->pquery("INSERT INTO vtiger_crmentity(crmid, smcreatorid, smownerid,\n\t\t\t\tmodifiedby, setype, description, createdtime, modifiedtime, presence, deleted)\n\t\t\t\tVALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", array($attachid, $userid, $userid, $userid, $setype, $description, $usetime, $usetime, 1, 0));
         $issaved = $this->__SaveAttachmentFile($attachid, $filename, $filecontent);
         if ($issaved) {
             // To compute file size & type
             $attachRes = $db->pquery("SELECT * FROM vtiger_attachments WHERE attachmentsid = ?", array($attachid));
             if ($db->num_rows($attachRes)) {
                 $filePath = $db->query_result($attachRes, 0, 'path');
                 $completeFilePath = vglobal('root_directory') . $filePath . $attachid . '_' . $filename;
                 if (file_exists($completeFilePath)) {
                     $fileSize = filesize($completeFilePath);
                     $mimetype = MailAttachmentMIME::detect($completeFilePath);
                 }
             }
             // Link file attached to emails also, for it to appear on email's page
             if (!empty($recordId) && !empty($attachid)) {
                 $this->relateAttachment($recordId, $attachid);
             }
         }
     }
 }
示例#2
0
 public function saveRecord(Vtiger_Record_Model $recordModel)
 {
     $moduleName = $this->get('name');
     $focus = CRMEntity::getInstance($moduleName);
     $fields = $focus->column_fields;
     foreach ($fields as $fieldName => $fieldValue) {
         $fieldValue = $recordModel->get($fieldName);
         if (is_array($fieldValue)) {
             $focus->column_fields[$fieldName] = $fieldValue;
         } else {
             if ($fieldValue !== null) {
                 if (in_array($fieldName, array('header_content', 'content', 'footer_content'))) {
                     $focus->column_fields[$fieldName] = $fieldValue;
                 } else {
                     $focus->column_fields[$fieldName] = decode_html($fieldValue);
                 }
             }
         }
     }
     $focus->mode = $recordModel->get('mode');
     $focus->id = $recordModel->getId();
     $focus->save($moduleName);
     return $recordModel->setId($focus->id);
 }
示例#3
0
 /**
  * Function to delete a given record model of the current module
  * @param Vtiger_Record_Model $recordModel
  */
 public function deleteRecord($recordModel)
 {
     $moduleName = $this->get('name');
     $focus = CRMEntity::getInstance($moduleName);
     $focus->trash($moduleName, $recordModel->getId());
     if (method_exists($focus, 'transferRelatedRecords')) {
         if ($recordModel->get('transferRecordIDs')) {
             $focus->transferRelatedRecords($moduleName, $recordModel->get('transferRecordIDs'), $recordModel->getId());
         }
     }
 }
示例#4
0
 /**
  * Function to delete a given record model of the current module
  * @param Vtiger_Record_Model $recordModel
  */
 public function deleteRecord($recordModel)
 {
     $db = PearDatabase::getInstance();
     $moduleName = $this->get('name');
     $date_var = date('Y-m-d H:i:s');
     $query = "UPDATE vtiger_users SET status=?, date_modified=?, modified_user_id=? WHERE id=?";
     $db->pquery($query, array('Inactive', $adb->formatDate($date_var, true), $recordModel->getId(), $recordModel->getId()), true, "Error marking record deleted: ");
 }
示例#5
0
 /**
  * Function to delete a given record model of the current module
  * @param Vtiger_Record_Model $recordModel
  */
 public function deleteRecord($recordModel)
 {
     $moduleName = $this->get('name');
     $focus = CRMEntity::getInstance($moduleName);
     $focus->trash($moduleName, $recordModel->getId());
     if (method_exists($focus, 'transferRelatedRecords')) {
         if ($recordModel->get('transferRecordIDs')) {
             $focus->transferRelatedRecords($moduleName, $recordModel->get('transferRecordIDs'), $recordModel->getId());
         }
     }
     vimport('~~modules/com_vtiger_workflow/include.inc');
     vimport('~~modules/com_vtiger_workflow/VTEntityMethodManager.inc');
     $wfs = new VTWorkflowManager(PearDatabase::getInstance());
     $workflows = $wfs->getWorkflowsForModule($moduleName, VTWorkflowManager::$ON_DELETE);
     if (count($workflows)) {
         $wsId = vtws_getWebserviceEntityId($moduleName, $recordModel->getId());
         $entityCache = new VTEntityCache(Users_Record_Model::getCurrentUserModel());
         $entityData = $entityCache->forId($wsId);
         foreach ($workflows as $id => $workflow) {
             if ($workflow->evaluate($entityCache, $entityData->getId())) {
                 $workflow->performTasks($entityData);
             }
         }
     }
 }