Menu

## Document
in package

Document.php : 40

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

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

Document.php : 58

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

`public mixed $db`

#### $fpath

Document.php : 58

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

`public mixed $fpath`

#### $identity

Document.php : 58

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

`public mixed $identity`

#### $iduser1

Document.php : 58

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

`public mixed $iduser1`

#### $ivc

Document.php : 58

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

`public mixed $ivc`

#### $opts

Document.php : 58

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

`public mixed $opts`

#### $otherSettings

Document.php : 51

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

`public array<string|int, mixed> $otherSettings`

#### $params

Document.php : 65

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

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

#### $rezult

Document.php : 42
`public mixed $rezult`

#### $skey

Document.php : 58

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

`public mixed $skey`

#### $sqlname

Document.php : 58

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

`public mixed $sqlname`

#### $tags

Document.php : 44
`public mixed $tags = []`

#### $tmzone

Document.php : 58

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

`public mixed $tmzone`

#### $rootpath

Document.php : 72

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

`private false|string $rootpath`

### Methods

#### __construct()

Document.php : 77

Akt constructor.

`public __construct() : mixed`

##### Return values

mixed —

#### appendFiles()

Document.php : 2044

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

`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()

Document.php : 1513

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

`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()

Document.php : 2249

Преобразует файл в 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()

Document.php : 1229

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

`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()

Document.php : 1648

Генерирует файл из шаблона сгенерированные при создании документа тэги возвращаются в объекте: - 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()

Document.php : 542

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

`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()

Document.php : 2378

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

`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()

Document.php : 2894

Генерация 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()

Document.php : 322

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

`public static getSatus(int $deid) : int`

##### Parameters

$deid : int

##### Return values

int —

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

#### getTemplates()

Document.php : 355

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

`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()

Document.php : 418

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

`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()

Document.php : 220

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

`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()

Document.php : 993

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

`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()

Document.php : 2206

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

`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()

Document.php : 2449

Позволяет отправить документ по 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()

Document.php : 2108

Загрузка файлов работает с глобальным массивом $_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