tooyz/moysklad

Работа с шаблонами

Opened this issue · 4 comments

Приветствую.
Освятите чуть подробнее работу с шаблонами документов, пожалуйста.
Как создать отгрузку или входящий платеж к заказу?

Напечатать документ УПД из шаблона отгрузки:

$demand = Demand::query($storage)->byId('...');

//Вытаскиваем все доступные кастомные шаблоны у отгрузок
$templates = $demand->getExportCustomTemplates();

//Ищем тот что нам нужен в данном случае по его названию и записываем результат в переменную $file
foreach ($templates->toArray() as $template) {
    if ($template->name === 'УПД') {
        $file = $demand->createExport($template, 'xls');
        break;
    }
}

Создать платеж к заказу можно так:

$customerOrder = CustomerOrder::query($storage)->byId('...');

$organization = Organization::query($storage)->byId('...');
$counterparty = Counterparty::query($storage)->byId('...');


$newInvoice = (new InvoiceOut($storage))
        ->buildCreation()
        ->addCounterparty($counterparty)
        ->addOrganization($organization)
        ->addCustomerOrder($customerOrder)
        ->execute();

Спасибо за ответ!.
Но я не про печатные шаблоны в про шаблоны документов.
https://online.moysklad.ru/api/remap/1.1/doc/index.html#%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82-%D0%BE%D1%82%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD-%D0%BE%D1%82%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8

То есть можно получить предзаполненный шаблон (отгрузки, платежа) или других документов на основе связанной сущности.

Думаю для этого вам нужен метод newTemplate() и что-то подобное:

$customerOrder = new CustomerOrder($storage, [
    'meta' => [
        'href' => '...',
        'metadataHref' => '...',
        'type' => 'customerorder',
        'mediaType' => 'application/json',
        'uuidHref' => '...'
    ]
]);

$demand = new Demand($storage);
$demand->buildCreation()->addCustomerOrder($customerOrder);

$template = $demand->newTemplate();

a входящий платеж ? PaymentIn