Независимый форум, посвященный системе БОСС-Кадровик и всему, что с ней связано
|
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
mas_dbd
Зарегистрирован: 02.04.2010 Сообщения: 23
|
Добавлено: Вт Июн 22, 2010 14:02 Заголовок сообщения: Закрытие месяца |
|
|
Добрый день. Прошу объяснить, правильно ли происходит работа с таблицами базы данных при закрытии месяца в следующей ситуации.
Имеются в виду таблицы БД Lic и Tabel. При закрытии месяца все начисления закрываемого месяца переносятся из таблицы Tabel в yTabel. Этого не происходит в паре Lic - yLic. yLic всегда пуст. Все бы ничего, НО! Возникла следующая коллизия.
Есть сотрудник, имеющий займ. В данном случае не столь важны конкретные данные, сколько вот этот кусочек кода из zrp_dlg_profit_add, в котором происходит расчет уже внесенных платежей по ссуде, а конкрено выделенные жирным строки:
SELECT Sum(ss.ss) INTO _allSumma
FROM
(SELECT IsNull((CASE WHEN Lic.code_pay<=300 THEN -Lic.summa ELSE Lic.summa END),0) as ss
FROM yLic Lic
WHERE n_dir = 3 AND r_id = @const_u4:Auto_Const_Uder AND tabel_id <> @add_profit:Auto_Tabel AND dbo.zrp_fn_VOexists(Code_Pay,'_тВх_мат_выг',cmonth) = 1
UNION ALL
SELECT IsNull((CASE WHEN Lic.code_pay<=300 THEN -Lic.summa ELSE Lic.summa END),0) as ss
FROM Lic Lic
WHERE n_dir = 3 AND r_id = @const_u4:Auto_Const_Uder AND tabel_id <> @add_profit:Auto_Tabel AND dbo.zrp_fn_VOexists(Code_Pay,'_тВх_мат_выг',cmonth) = 1
UNION ALL
SELECT IsNull(@const_u4:Summa_FromD3,0) ss
UNION ALL
SELECT IsNull((CASE WHEN code_pay<=300 THEN -summa ELSE summa END),0) as ss
FROM ytabel tabel
WHERE
tabel.Auto_Tabel <> @add_profit:Auto_Tabel AND
tabel.n_Dirm = 3 AND
tabel.idMain = @const_u4:Auto_Const_Uder AND
NOT EXISTS(SELECT TOP 1 1 FROM ylic WHERE ylic.tabel_id=tabel.Auto_Tabel) AND
dbo.zrp_fn_VOexists(Code_Pay,'_тВх_мат_выг',cmonth) = 1
UNION ALL
SELECT IsNull((CASE WHEN code_pay<=300 THEN -summa ELSE summa END),0) as ss
FROM tabel tabel
WHERE
tabel.Auto_Tabel <> @add_profit:Auto_Tabel AND
tabel.n_Dirm = 3 AND
tabel.idMain = @const_u4:Auto_Const_Uder AND NOT EXISTS(SELECT TOP 1 1 FROM lic WHERE lic.tabel_id=tabel.Auto_Tabel) AND
dbo.zrp_fn_VOexists(Code_Pay,'_тВх_мат_выг',cmonth) = 1
) as ss;
Поскольку yLic всегда пуст, то, сообразно этому коду, к сумме удержаний по ссуде в Lic приплюсовываются суммы закрытых месяцев из yTabel, таким образом рано или поздно возникает ситуация, когда при попытке ввести за какой-либо месяц в справочник удержаний сумму удержания, выскакивает сообщение, что "Сумма удержания превышает сумму займа!".
Вопросы:
1. Должны ли при закрытии месяца данные из Lic за этот месяц переноситься в yLic?
2. Как выйти из ситуации с формированием удержаний в этом случае (не считая формирования их через таблицу прямых начислений и удержаний, что проблем не вызывает)?
3. Как может отразиться приведенная ситуация на расчете, скажем, материальной выгоды и других расчетах?
Заранее благодарен за ответы. |
|
Вернуться к началу |
|
 |
zhenya17
Зарегистрирован: 04.02.2009 Сообщения: 190 Откуда: Кемерово
|
Добавлено: Пн Окт 25, 2010 18:53 Заголовок сообщения: |
|
|
1. У меня таблица yLic тоже пустая, стало быть, при закрытии в неё ничего не переносится. Всё хранится в Lic.
2,3. Мы вносим беспроцентные займы через меню "Справочники – Постоянные внешние удержания – По ссуде, кредитам", при этом никаких проблем не возникает и мат.выгода считается нормально. Используем удержание равными суммами... указываем период начала и конца - нужная сумма удерживается автоматически. |
|
Вернуться к началу |
|
 |
Николай
Зарегистрирован: 04.10.2010 Сообщения: 22 Откуда: Ростов-на-Дону
|
Добавлено: Вт Окт 26, 2010 09:13 Заголовок сообщения: |
|
|
Таблица «yLic» - это архив лицевых счетов. Заполняется, через режим «Состояние базы данных - Рабочие данные – Перенести в архив» |
|
Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|