Documentation

Document
in package

Класс для управления Документами

Class Document

Tags
author

Vladislav Andreev v@salesman.pro

version
1.0

(06/09/2019)

Example

$rez  = new Salesman\Document();
$data = $rez -> info($id);

Table of Contents

$db  : mixed
Различные параметры, в основном из GLOBALS
$fpath  : mixed
Различные параметры, в основном из GLOBALS
$identity  : mixed
Различные параметры, в основном из GLOBALS
$iduser1  : mixed
Различные параметры, в основном из GLOBALS
$ivc  : mixed
Различные параметры, в основном из GLOBALS
$opts  : mixed
Различные параметры, в основном из GLOBALS
$otherSettings  : array<string|int, mixed>
Прочие настройки
$params  : array<string|int, mixed>
Передача различных параметров
$rezult  : mixed
$skey  : mixed
Различные параметры, в основном из GLOBALS
$sqlname  : mixed
Различные параметры, в основном из GLOBALS
$tags  : mixed
$tmzone  : mixed
Различные параметры, в основном из GLOBALS
$rootpath  : false|string
Абсолютный путь
__construct()  : mixed
Akt constructor.
appendFiles()  : bool
Добавить файлы к документу
delete()  : array<string|int, mixed>
Удаление документа
doc2PDF()  : mixed
Преобразует файл в PDF
edit()  : array<string|int, mixed>
Добавление/Изменение документа
generate()  : string
Генерирует файл из шаблона сгенерированные при создании документа тэги возвращаются в объекте: - tags
getDocuments()  : array<string|int, mixed>
Получение списка всех документов и актов по Клиенту или Сделке
getFiles()  : mixed
Позволяет получить ссылку на файл
getQR()  : string
Генерация QR-кода в виде строки
getSatus()  : int
Получение статуса документа
getTemplates()  : array<string|int, mixed>
Шаблоны документа по его типу
getTypes()  : array<string|int, mixed>
Типы документов
info()  : array<string|int, mixed>
Информация по Документу
list()  : array<string|int, mixed>
Вывод списка документов
logging()  : bool
Логгирование статусов
mail()  : mixed
Позволяет отправить документ по Email
upload()  : array<string|int, mixed>
Загрузка файлов работает с глобальным массивом $_FILES

Properties

$db

Различные параметры, в основном из GLOBALS

public mixed $db

$fpath

Различные параметры, в основном из GLOBALS

public mixed $fpath

$identity

Различные параметры, в основном из GLOBALS

public mixed $identity

$iduser1

Различные параметры, в основном из GLOBALS

public mixed $iduser1

$ivc

Различные параметры, в основном из GLOBALS

public mixed $ivc

$opts

Различные параметры, в основном из GLOBALS

public mixed $opts

$otherSettings

Прочие настройки

public array<string|int, mixed> $otherSettings

$params

Передача различных параметров

public array<string|int, mixed> $params = []

$skey

Различные параметры, в основном из GLOBALS

public mixed $skey

$sqlname

Различные параметры, в основном из GLOBALS

public mixed $sqlname

$tmzone

Различные параметры, в основном из GLOBALS

public mixed $tmzone

$rootpath

Абсолютный путь

private false|string $rootpath

Methods

__construct()

Akt constructor.

public __construct() : mixed
Return values
mixed

appendFiles()

Добавить файлы к документу

public appendFiles(int $id[, array<string|int, mixed> $params = [] ]) : bool
Parameters
$id : int
$params : array<string|int, mixed> = []
  • массив с параметрами
  • ftitle - оригинальное имя
  • fname - системное имя
  • ftype - тип файла
Return values
bool
$rez  = new Salesman\Document();
$data = $rez -> appendFiles($id, $params);

delete()

Удаление документа

public delete(int $id) : array<string|int, mixed>
Parameters
$id : int
Return values
array<string|int, mixed>
  • ответ - int id - id записи - string message - сообщение о результате
$rez  = new Salesman\Document();
$data = $rez -> delete($id);

doc2PDF()

Преобразует файл в PDF

public doc2PDF(int $fid[, array<string|int, mixed> $params = [] ]) : mixed
Parameters
$fid : int
  • id файла
$params : array<string|int, mixed> = []
  • массив с параметрами
  • string file - название файла (как он хранится в системе), если $fid не указан
  • string disposition - папка, если файл лежит не в папке files/ ( например: folder/name/ )
  • int deid - id документа
Return values
mixed
  • имя нового файла
$params = [
    "file"        => $file,
    "name"        => "Билет",
    "disposition" => "/_test/output/"
];
$rez  = new Salesman\Document();
$data = $rez -> doc2PDF($id, $params);

edit()

Добавление/Изменение документа

public edit(int $id[, array<string|int, mixed> $params = [] ]) : array<string|int, mixed>
Parameters
$id : int
  • id документа
  • если 0, то создается новый документ
  • иначе редактируем старый
$params : array<string|int, mixed> = []
  • массив с параметрами

  • int did - id сделки

  • int clid - id заказчика (если did > 0, то не обязательно)

  • int payer - id плательщика (если did > 0, то не обязательно)

  • int signer - id подписанта

  • int idtype - id типа документа

  • str number - номер документа (если не указан, то будет сгенерирован, в т.ч. с учетом формата номера)

  • str title - наименование документа, если не указано, то берем из названия Типа документа

  • text des - описание документа

  • date datum_start - дата подписания

  • date datum_end - период действия "до"

  • int status - статус документа

  • int oldstatus - предыдущий статус документа

  • text statusdes - комментарий смены статуса

  • str subaction - если = status, то просто меняем статус документа

Return values
array<string|int, mixed>
$rez  = new Salesman\Document();
$data = $rez -> edit($id, $params);

generate()

Генерирует файл из шаблона сгенерированные при создании документа тэги возвращаются в объекте: - tags

public generate(int $id[, array<string|int, mixed> $params = [] ]) : string
Parameters
$id : int
$params : array<string|int, mixed> = []
  • массив с параметрами - int template - id шаблона - int templateFile - файл шаблона ( указать полный абсолютный путь до файла ) - array tags - массив тэгов. если не указано, то берем из функции getNewTag - array tagsAttached - массив тэгов, которым надо дополнить массив tags - array images - массив изображений для замены ( требуется изображение-заглушка для каждого изображения, см. Примечание ) - name - имя тега - file - имя файла (файл должен находиться в папке files или следует передавать имя файла с абсолютным путем к нему) - bool append - true/false - добавить файлы к существующим - str getPDF - yes - генерировать PDF - str outputPath - собственная папка для сохранения результата ( указать полный абсолютный путь до папки с конечным слэшем ). Если указано, то прикрепление к документу и генерация PDF отключается ( use doc2PDF ) - str fileName - присвоить собственное имя генерируемому файлу - str docName - присвоить собственное название генерируемому документу

Примечание:

В шаблонах в формате Word изображение-заглушка должна содержать в качестве Альтернативного текста следующий код (заголовок или описание):

  • NAME - имя тега
[onshow.NAME;ope=changepic;from=NAME;tagpos=inside;]

В шаблонах в формате Excel изображение-заглушка печати должна содержать в качестве Альтернативного текста следующий код (заголовок или описание):

[onshow.NAME;ope=changepic;tagpos=inside;adjust=inside;unique]
Tags
throws
Exception

Пример:

$params = [
     "tagsAttached" => [
         "images" => [
             "barCode" => "barcode423424.png",
             "photo"   => "photo4656646.png"
         ],
         "ticket" => "0004556",
         "someTag" => "Это произвольный тег"
     ]
];
$rez  = new Salesman\Document();
$data = $rez -> generate($id, $params);
Return values
string
  • ответ по результату

getDocuments()

Получение списка всех документов и актов по Клиенту или Сделке

public static getDocuments([array<string|int, mixed> $params = [] ]) : array<string|int, mixed>
Parameters
$params : array<string|int, mixed> = []
  • параметры
  • int clid - id клиента
  • int did - id сделки
  • str filter - фильтровать по типу
    • akt - только акты
    • contract - только договоры
    • document - документы, кроме договоров
  • str sort - порядок сортировки по дате
  • desc - обратный порядок
Return values
array<string|int, mixed>

list

[ list ] => (
     [ 0 ] => (
         [ id ] => 333
         [ deid ] => 333
         [ idtype ] => 47
         [ type ] => document
         [ isDocument ] => 1
         [ number ] => 31
         [ title ] => Дополнительное соглашение X
         [ typeTitle ] => Дополнительное соглашение
         [ datum ] => 2018-07-06 11:19:54
         [ datumFormated ] => 05 Июля 2018
         [ datum_start ] => 2018-07-05
         [ startFormated ] => 05 Июля 2018
         [ datum_end ] => 2018-12-31
         [ endFormated ] => 31 Декабря 2018
         [ color ] => graybg gray2
         [ des ] =>
         [ did ] => 902
         [ clid ] => 1781
         [ pid ] => 0
         [ deal ] => (
             [ title ] => СД4250: Сейлзмен Рус
             [ icon ] => icon-lock red
             [ isClose ] => 1
         )
         [ payer ] => (
             [ id ] => 1781
             [ name ] => Сейлзмен Рус
         )
         [ isAccess ] => yes
         [ files ] => (
             [ 0 ] => (
                 [ name ] => Дополнительное соглашение №31 от 06.07.2018.docx
                 [ file ] => 1530859514.docx
                 [ icon ] =>
                 [ size ] => 388232
                 [ sizeKb ] => 388,23
                 [ view ] =>
                 [ topdf ] => 1
             )
         )
         [ haveFiles ] => 1
         [ status ] => (
         [ id ] =>
             [ title ] => Создан
             [ color ] => #9edae5
             [ statuslog ] =>
         )
         [ haveStatus ] => 1
         [ canBeDeleted ] => 1
     )
)
[ did ] => 902
[ clid ] => 1781

Example:

$doc = Salesman\Document ::getDocuments( [
 "did"    => 902,
 "filter" => "document"
] );

getFiles()

Позволяет получить ссылку на файл

public getFiles(int $id) : mixed
Parameters
$id : int
  • id (deid) документа
Return values
mixed
[ result ] => Успешно
[ data ] => (
     [ 0 ] => (
         [ name ] => Договор №47-1119/2019 от 07.11.2019.docx
         [ file ] => 1573125910.docx
         [ type ] => docx
     )
)
[ result ] => Error
[ error ] => (
         [ code ] => 404
         [ text ] => Документ не найден
)

getQR()

Генерация QR-кода в виде строки

public static getQR(array<string|int, mixed> $tags[, string $file = '' ]) : string
Parameters
$tags : array<string|int, mixed>
  • compUrName, compBankRs, compBankName, compBankBik, compBankKs, compInn, compKpp InvoiceSumma, Invoice, InvoiceDate, nalogName, nalogSumma
$file : string = ''
  • путь к файлу относительно корня CRM (если не указано, то будет "/cash/qrcode-invoice.png")
Return values
string
  • полный путь к сгенерированному файлу

getSatus()

Получение статуса документа

public static getSatus(int $deid) : int
Parameters
$deid : int
Return values
int
$rez  = new Salesman\Document();
$data = $rez -> getSatus($id);

getTemplates()

Шаблоны документа по его типу

public static getTemplates([array<string|int, mixed> $ids = [] ]) : array<string|int, mixed>
Parameters
$ids : array<string|int, mixed> = []
Return values
array<string|int, mixed>
$data  = new Salesman\Document::getTemplates();

getTypes()

Типы документов

public static getTypes([array<string|int, mixed> $ids = [] ][, array<string|int, mixed> $types = [] ]) : array<string|int, mixed>
Parameters
$ids : array<string|int, mixed> = []
$types : array<string|int, mixed> = []
Return values
array<string|int, mixed>
[ 2 ] => (
         [ id ] => 2
         [ title ] => Акт приема-передачи
         [ type ] => get_akt
         [ number ] => 0
         [ format ] =>
         [ roles ] => (
                  [ 0 ] => Руководитель организации
                  [ 1 ] => Руководитель с доступом
                  [ 2 ] => Руководитель подразделения
                  [ 3 ] => Руководитель отдела
                  [ 4 ] => Поддержка продаж
         )
         [ users ] => (
                  [ 0 ] => 1
                  [ 1 ] => 23
                  [ 2 ] => 25
         )
)

info()

Информация по Документу

public static info(int $id) : array<string|int, mixed>
Parameters
$id : int
Return values
array<string|int, mixed>
  • массив данных
    • datum - Дата создания документа
    • typeDoc - Тип документа (title из запроса tips)
    • idtype - ID типа документа (id из запроса tips)
    • description - описание Документа
    • mcid - id Компании, от которой ведется сделка
    • signer - id подписанта
    • status - id статуса документа
    • statusTitle - расшифровка статуса
    • files - массив файлов, вложенных в документ

error result - [result] = Error - [error] - [code] = 404 - [text] = Запись не найдена - [error] - [code] = 405 - [text] = Отсутствуют параметры - id документа

$rez  = new Salesman\Document();
$data = $rez -> info($id);

list()

Вывод списка документов

public list([array<string|int, mixed> $params = [] ]) : array<string|int, mixed>
Parameters
$params : array<string|int, mixed> = []
  • page - страница
  • ord - сортировка
  • tuda - направление сортировки (desc||asc)
  • mc - id компании
  • array status - статусы документа
  • array type - типы документа
  • word - строка поиска
Tags
throws
Exception
Return values
array<string|int, mixed>

logging()

Логгирование статусов

public logging([array<string|int, mixed> $params = [] ]) : bool
Parameters
$params : array<string|int, mixed> = []
  • массив с параметрами
  • int deid - id документа
  • int iduser - id сотрудника, ктоый меняет статус
  • int status - id нового статуса
  • int oldstatus - id старого статуса, если не указано, то берем из документа
  • text des - комментарий
Return values
bool
$rez  = new Salesman\Document();
$data = $rez -> logging($params);

mail()

Позволяет отправить документ по Email

public mail(int $id[, array<string|int, mixed> $params = [] ][, bool $auto = false ]) : mixed
Parameters
$id : int
  • id доккмента
$params : array<string|int, mixed> = []
  • массив данных
  • int did - не обязательный параметр, если документ привязан к сделке
  • int status - id статуса документа, который требуется присвоить
  • str email - сторонний email, не принадлежащий Клиенту
  • str theme - тема сообщения
  • str content - содержимое сообщения (если требуется изменить стандартное)
  • str template - id файла шаблона документа (если требуется генерировать новый)
  • str pdf - требуется ли конвертировать документ в PDF (yes/no)
$auto : bool = false
  • автоматически найти получателя (если не указан в $params)
Tags
throws
Exception
$rez  = new Salesman\Document();
$data = $rez -> mail($id, $params);
Return values
mixed

upload()

Загрузка файлов работает с глобальным массивом $_FILES

public upload() : array<string|int, mixed>
Return values
array<string|int, mixed>
  • ответ
[
     [data] => [
         "ftitle" => "XXX.docx"
         "fname" => "38cf1d91050cc9f4283d2619d622ab8f.docx"
         "ftype" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
     ]
     [message] => [
         "0" => "Файл XXX.docx успешно загружен."
     ]
]

Search results