На главную   На главную   Форумы Новости Документация Скачать Купить  
Регистрация  
Система Allegro
Oб Allegro Характеристики Пример конфигурации Документация База ошибок Развитие
Версия для печати К списку книг Вернуться к оглавлению Предыдущий параграф Следующий параграф
Поиск по книге

Глава 6. СОЗДАНИЕ МЕТАДАННЫХ ДОКУМЕНТА «ПРОДАЖА»

Создаем тип документа «Продажа»

Вызовем окно «Метаданные». На закладке «Документы», используя контекстное меню, создадим новый тип документа Продажа ( таблица SALE). Создадим подчиненную таблицу к нему, используя пункт контекстного меню Добавить таблицу. Назовем подчиненную таблицу Позиции (таблица SALE_ITEM). Большинство полей документа « Продажа» повторяет поля документа «Поступление на склад», поэтому мы просто скопируем эти поля из одного типа документа в другой. Выберем слева главную таблицу документа (SALE ), а справа, на закладке «Поля» используем пункт контекстного меню Скопировать поля из…



В появившемся диалоге выберем слева таблицу STOCK_IN документа Поступление на склад. По умолчанию все поля в правом списке выделены. Снять выделение или выделить поле можно, наведя курсор мыши на это поле и нажимая комбинацию клавиши Ctrl и левой кнопки мыши. Снимем выделение с атрибутов Вид документа на склад и Кредитуемый счет. Нажмем кнопку Скопировать поля.



Переименуем атрибут Дата поступления на склад в Дата отгрузки Переименуем атрибут Товар поступил в Товар отгружен. Добавим атрибут Тип цены (поле PRICE_TYPE) типа INTEGER NOT NULL. Добавим атрибут Скидка в цене (поле PRICE _DISCOUNT) типа DECIMAL(5,2) NOT NULL.



Выберем слева подчиненную таблицу SALE_ITEM и скопируем для нее все поля из подчиненной таблицы документа Поступление на склад STOCK_IN__ITEM:



Создание полей путем копирования значительно экономит время разработчика и позволяет стандартизировать названия и типы одинаковых по смыслу полей в разных документах.

Теперь мы должны решить вопрос списания проданных товаров. Здесь возможны разные подходы. В переговорах с заказчиком мы договорились списывать товары со склада по методу средней себестоимости. Средняя себестоимость единицы товара рассчитывается как разница между суммарными затратами на приобретение товара и уже списанными суммами, деленная на текущее количество. Если вычислять среднюю стоимость единицы товара, затем ее округлять и умножать на количество, то могут возникнуть ненулевые остатки стоимости при нулевых количествах товара. Для того чтобы избежать этого неприятного явления, мы будем списывать всю суммарную среднюю стоимость того количества товара, которое отгружается. Например, если остаточная средняя стоимость всей партии из трех стиральных машин равна $1000, то при продаже трех машин мы спишем сразу ровно $1000 и не будем вычислять стоимость каждой единицы, так как она может оказаться дробной. Если же из этих трех машин отгружается две машины, то мы спишем ровно $666.66 , а при отгрузке последней спишем $333.34 . То есть округлять до центов мы будем не себестоимость единицы товара, а себестоимость всей отгружаемой партии. Рассчитывать себестоимость мы будем в момент отгрузки и запоминать ее в документе, отдельно для каждой позиции.

Несмотря на уверения заказчика о том, что документ « Продажа» формируется всегда при наличии всего отгружаемого товара на складе, мы предусмотрим ситуацию, когда это не так . Наш опыт подсказывает нам, что рано или поздно возникает ситуация, в которой менеджер хочет распечатать документ отгрузки лишь для того, чтобы выставить счет покупателю, а сама отгрузка происходит позже – когда все необходимые позиции действительно будут приобретены и окажутся в наличии на складе. Поэтому , как и в документе «Поступление на склад», документ «Продажа» будет иметь птичку «Отгружено». В момент сохранения документа с установленной птичкой «Отгружено» мы и будем окончательно проверять, достаточно ли товара на складе и вычислять среднюю стоимость каждой позиции. Проводить бухгалтерскую операцию мы тоже будем только при условии, что товар отгружен (птичка установлена).

Для того чтобы это реализовать, нам понадобиться дополнительное поле в подчиненной таблице.

Создадим это поле. Назовем атрибут Стоимость в долларах США , поле COST_S типа DECIMAL(18, 2):



Фактически разница AMOUNT_S – COST_S создает валовую прибыль от продаж в долларах США, что позволит нам в дальнейшем построить красивые отчеты о продажах, основанные на прямых SQL-запросах к таблицам документов.



Вызовем Дополнительные свойства документа и создадим форматирование наименований из имени контрагента и номера документа с префиксом «, продажа, Док № ». Установим также поля Даты, Номера и Суммы для отображения в проводнике:





Пример создания склада в Allegro Наверх