8 (800) 302-62-68
+7 (499) 348-29-58
sale@rbs-crm.ru

Документация разработчика

РосБизнесСофт CRM > База знаний > Разработчикам > Создание приходной накладной

Создание приходной накладной

Для создания прихода товара на склад используется модуль “Приходная накладная” (раздел “Склад”).

В момент сохранения записи в табличной части “Номенклатура” срабатывает метод stockIncrease().

$result = Stock::stockIncrease($this->structure,
$this->structure->product->id, 
$this->structure->owner->storehouse->id, 
$this->structure->number, $this->structure->price_nds, 
$this->structure->gtd->id);

При удалении товара из “Приходной накладной” используется проверка. Если тип “Номенклатуры” = «Товар» (не услуга) и после предполагаемого удаления товар на складе не уйдет в минус, то мы удаляем данный товар со склада (метод  stockDelete()).

if($object->product->type->id == 1 && !Stock::stockCheckControl($object->product->id, $object->owner->storehouse->id, $object->number))
{
    throw new \Exception("Данный товар нельзя удалить, иначе он уйдет в минус");
}
Stock::stockDelete($object);

Пример использования:

/configurator/documents.consignment/?formname=consignment/products/edit

При полном удалении документа “Приходная накладная” необходимо проверить достаточно ли ВСЕХ товаров на складе в методах onWipe(), onDelete().

public static function onDelete($object) {
    
    foreach ($object->products as $product)
    {
        $gtd = $product->gtd->id ? $product->gtd->id : null;
        if(!Stock::stockCheckControl($product->product->id, $object->storehouse->id, $product->number, $gtd))
        {
            throw new \Exception("Нельзя удалить приходную накладную, так как одного или нескольких товаров не хватает на складе");
        }
    }
    
    foreach ($object->products as $product)
    {
        Stock::stockDelete($product);
    }
}

Как проверить, что товар добавлен на склад корректно?

  • Зайти в в раздел “Номенклатура” (/products/). Найти нужный товар и выбрать склад (по умолчанию “Основной”), в столбце “Количество” будет показано количество товара.  Если оно изменилось в большую сторону, то добавления товара на склад прошло успешно.
  • Зайти в отчет “По движению товаров по складам” (/olap/products_movement/) и построить отчет по выбранному товару и складу. В отчете в таблице будут показаны документы движения. Если новый документ “Приходная накладная”  присутствует в списке, то товар был добавлен на склад успешно.