Книги покупок и продаж

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
Pechenie (Обсуждение | вклад)
(Новая страница: «Отчет представляет собой пример реализации книги покупок и продаж. файлы отчеты : [[Медиа:b…»)

Текущая версия на 06:21, 15 апреля 2011

Отчет представляет собой пример реализации книги покупок и продаж.

файлы отчеты : Медиа:bill_sales_purchase_books.zip

В обоих отчетах фильтры представлены лишь периодом выборки.

Книга продаж по сути представляет собой отчет по счетам-фактурам. Книга покупок формируется по следующему алгоритму:

Формализация вычисления аванса и зачтённого аванса.
 
1) Формула вычисления аванса.
Суммарный аванс за месяц (САМ).
 
Если: ПЛАТЕЖИ > 0 и ПЛАТЕЖИ + ВХ. ОСТАТОК > 0
То: САМ = МИНИМУМ ( ПЛАТЕЖИ; ПЛАТЕЖИ + ВХ. ОСТАТОК )
Иначе: САМ = 0
 
Для создания фактур на аванс САМ должен быть положителен.
Для каждого платежа месяца последовательно:
 
Если: ВХ. ОСТАТОК + ПРЕДШ. ПЛАТЕЖИ + ЭТОТ ПЛАТЁЖ > 0
То: АВАНС = МИНИМУМ ( ВХ. ОСТАТОК + ПРЕДШ. ПЛАТЕЖИ + ЭТОТ ПЛАТЁЖ; ЭТОТ ПЛАТЁЖ )
Иначе: АВАНС = 0
 
Если АВАНС в результате платежа положителен - создаётся фактура на аванс на этот платёж с суммой АВАНС,
 
2) Формула вычисления зачтённых авансов.
Суммарный зачтённый аванс за месяц (СЗА).
 
СЗА = МИНИМУМ ( ПРЕДОПЛАТА; НАРАБОТКА )
 
В случае, если СЗА > 0 необходимо создать записи в книге покупок.
 
ОИО = ИСХ. ОСТАТОК - остаток исходящего остатка :)
 
Если: ОИО <= 0
То: ОИО = 0 - аванс зачтён полностью.
 
ОСЗА = СЗА - остаток суммы зачтённого остатка
 
Осуществляем перебор фактур на авансы от последней данного месяца в обратном направлении.
На каждой фактуре:
 
    ОСФ = СУММА ФАКТУРЫ - остаток суммы фактуры
 
    Если: ОИО > 0 
    То:
      Если: ОИО < ОСФ
      То: ОСФ = ОСФ - ОИО
      Иначе: ОИО = ОИО - ОСФ, переход к следующей (реально предшествующей) фактуре на аванс
 
    Если: ОСЗА > 0
    То:
      Если: ОСЗА < ОСФ
      То: создаём фактуру на сумму ОСЗА, прерываем перебор
      Иначе: ОСЗА = ОСЗА - ОСФ
 
    Иначе: прерываем перебор. 
 
    Если: ОСЗА <= 0
    То: прерываем перебор.

Пример конфигурации модуля Reports для работы отчетов:

#параметр договора "название организации"
report.bill_sales_book.org.title.pid=1
#параметр договора "инн"
report.bill_sales_book.org.inn.pid=2
#параметр договора "кпп"
report.bill_sales_book.org.kpp.pid=3
#код счет-фактуры на аванс
report.bill_sales_book.advance.type=123
 
report.bill_purchase_book.org.name=ООО "СтройИнвестСвязьПромКредитБизнесКонсалтинг"
report.bill_purchase_book.org.inn=0101010101
report.bill_purchase_book.org.kpp=01010101
report.bill_purchase_book.advance.type=123
Личные инструменты