2010-10-27 2 views
2

У меня есть эта пользовательская кнопка в Lead Editview, которая при нажатии на нее генерирует (через AJAX) номер счета и PDF с таким же номером.SugarCRM: создать примечание с приложением без SOAP?

На следующем этапе подпрограмма использует SOAP для loopback для Sugar и создает примечание (вместе с PDF как вложение).

Мой вопрос: могу ли я избежать этого вызова SOAP и использовать некоторые другие внутренние механизмы/классы, чтобы сделать то же самое? Что-то в строках

$invoice = new Note(); 
$invoice->create(....); 
... 

Возможно ли это? Я не мог найти никакой документации нигде ... все дороги, кажется, указывают на SOAP.

ответ

4

Если ваш вызов Ajax выполняет операцию обновления/сохранения db, вы можете изучить использование логического крючка .

EDIT: для, например: вы можете попробовать этот код, взгляните на код в <sugar_root>/modules/Notes/Note.php

$note = new Note(); 
$note->modified_user_id = $current_user->id; 
$note->created_by = $current_user->id; 
$note->name = 'New'; 
$note->parent_type = "Accounts"; 
$note->parent_id = $bean->parent_id; 
$note->description = $bean->description; 
$note->save(); 

Насколько прикрепление идет, это немного сложнее. Sugar ожидает, что вложение будет объектом upload_file. Посмотрите на код в <sugar_root>/modules/Notes/controller.php функцию action_save() и <sugar_root>/include/upload_file.php

HACK: это не правильный путь, но это работает. С небольшим изменением кода выше и хитрого использования функции move вы можете сделать работу вложения. Sugar хранит вложения в папке cache/upload с идентификатором созданной ноты.

$note->filename = "Yourfilename.txt" //your file name goes here 
$note->file_mime_type = "text/plain" // your file's mime type goes here 
$new_note_id = $note->save(); 

move(your_file_location, cache/upload/$new_note_id) 
//don't add a extension to cache/upload/$new_note_id 

НТН

P.S: непроверенный код

+0

Привет Ананд, я знаю о after_save и я использую его в нескольких местах. Тем не менее, в этом случае я пытаюсь выяснить, действительно ли можно создать ПРИМЕЧАНИЕ, создав экземпляр объекта NOTE и используя любые методы-члены для создания примечания и приложив к нему файл - вместо этого через SOAP. –

+0

Привет, я отредактировал свой ответ. Надеюсь, это поможет :) –

+0

Спасибо Anand. Пропустили обновление. Попробуем и вернемся к вам как можно скорее. Код выглядит перспективным :) –

Смежные вопросы