powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Оплаты договоров
19 сообщений из 19, страница 1 из 1
Оплаты договоров
    #39525472
sergq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

допустим есть договор.

есть у него план оплат. в разрезе источников оплат.
источники оплат - справочник. разделен по годам. те ПК там ИД источника оплаты и год.
Соответственно один и тот же источник в разные годы будет иметь разный ПК.

допустим имеем мы в договоре в 2016 году тип оплаты Х. В сумме миллион.
внутри года оплатили 900 тр. с указанием типа оплаты Х. записали в таблице оплат со ссылкой на год и на ИД типа оплаты Х.
Все красиво. баланс подбить не проблема.

образовалась у нас кредиторка.
наступил новый год. и решили оплатить. но в новом году у типа оплаты Х другой ПК. И в плане оплаты прошлого года его нет.
Да и быть не может. тк он из другого года. А может так случиться, что оплатить возможно будет только с типа Y нового года.

Собственно почти голову сломал как же в новом году зарегистрировать оплату по прошлогоднему договору по другому типу оплаты.


Спасибо
...
Рейтинг: 0 / 0
Оплаты договоров
    #39525475
sergq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В голову приходит только регистрация кредиторки по соответствующим договорам в начале года с указанием нового типа оплаты и суммы из справочника текущего года
...
Рейтинг: 0 / 0
Оплаты договоров
    #39525478
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergqте ПК там ИД источника оплаты и год.

Мне вот интересно, тому кто этот костыль делал, не приходило в голову, что могут платить частями и даже не в этом году?
ПК в виде обычного счетчика в таблице оплат придумать - это наверное уже из области недосягаемого...
...
Рейтинг: 0 / 0
Оплаты договоров
    #39525479
sergq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagsergqте ПК там ИД источника оплаты и год.

Мне вот интересно, тому кто этот костыль делал, не приходило в голову, что могут платить частями и даже не в этом году?
ПК в виде обычного счетчика в таблице оплат придумать - это наверное уже из области недосягаемого...

согласен. костыль.
Но. может случиться так, что в плане оплат в 2016 году будет стоять источник Х.
А в 2017 году такового источника может просто не оказаться. Будет источник Y. и тут уже без разницы какой ПК. ибо он в любом случае будет другой
...
Рейтинг: 0 / 0
Оплаты договоров
    #39525482
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergq,

Это решается полем Дата_Оплаты...
900 т.р. - Источник Х - 01.06.2016 г.
100 т.р. - Источник Х - 01.02.2017 г.

Из второй строки очевидно, что 100 т.р. свалились из какого-то старого плана, с задержкой в 2017 году, раз Х в 2017 году нет (но однозначно Х был раньше, иначе нельзя бы было выбрать Х вообще),
как то даже говорить про то, что система не может учесть приход денег которые должны были прийти,
но пришли с задержкой или с разбивкой на этапы и с задержкой - стыдновато...
...
Рейтинг: 0 / 0
Оплаты договоров
    #39525483
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergq,

Добавь в ключ еще и дату оплаты...
...
Рейтинг: 0 / 0
Оплаты договоров
    #39525487
sergq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

у источника Х в разные годы разные ПК.


собственно получится, что в плане оплат будет стоять ПК источника (например) равный 1.

а вот в факте оплат будет два факта. один факт за 2016 год с ПК источника равным 1.
и второй факт. за 2017 год с источником с ПК равным 2.

в итоге баланс получается такой.
по источнику с ПК 1 мы начислили миллион.

А оплатили по сути с двух разных источников.

В итоге надо получить стандартный отчет

ИД источникаПланФакт110000001000000

а раз разные источники погашения, то получается вроде как такой отчет

ИД источникаПланФакт1100000090000020100000
...
Рейтинг: 0 / 0
Оплаты договоров
    #39525490
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergq,

Думаю что Вам справочник надо сделать более сложным, из двух таблиц с соотношением 1:N- в одной будет разрез по годам, в другой - нет. В договоре у Вас будет прописана ссылка на родительскую таблицу, в конкретных оплатах - на дочернюю.
...
Рейтинг: 0 / 0
Оплаты договоров
    #39525491
sergq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин,

Те одина таблица справочника будет содержать просто список всех возможных типов оплат. Эдакий raw справочник. А вторая -только действующие в текущем году .
Кстати так и сделано со справочником )

В плане оплат на raw справочник , а в факте на действующие в текущем году?

Только вот в план должны попасть только те, что действуют в году договора. Сейчас реализовано на ФК. Как раз в ФК год и задействован .
И в фактах оплат тоже был год задействован в ФК

Тогда наверно наоборот . В план оплат - которые действуют в текущем году. Как раз по ФК можно будет отсеивать не действующие в тек году. А в факт -raw.

Проблема в том, что такие случаи очень единичны . И было удобно держать ФК на ид и год действия оплаты. Не добавишь по дурости лишку. А вот кредиторка как раз та лишка и есть
...
Рейтинг: 0 / 0
Оплаты договоров
    #39525497
sergq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergq,

А вообще как вариант сделать отдельную табличку.
'В 2017 году тип Х 2017 года считать как тип Х 2016 года '

в для "не пересекающихся " типов в неё писать такое.

В 2016 году тип Х 2016 года считать как тип Х 2016 года
Для "одногодок" заполнять её на триггере автоматом

И вот на эту табличку и делать ссылку и в плане и в факте.

Тогда вроде как все красиво получится. Ошибиться сможет только оператор в формировании этого справочника . Но это в редких случаях
...
Рейтинг: 0 / 0
Оплаты договоров
    #39525501
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergqдействующие в текущем году?

Только вот в план должны попасть только те, что действуют в году договора. Сейчас реализовано на ФК. Как раз в ФК год и задействован .
И в фактах оплат тоже был год задействован в ФК

Ну и прекрасно - но группируйте их в этом Вашем отчете "план-факт" не до ссылок дочерних таблиц "тип+ год", а просто до "тип".
Т.е. у Вас 1 запись План ((XXX, 2016), 1000000), 2 записи "Факт" - ((XXX, 2016), 900 000 ) и ((ХХХ, 2017), 100 000), Вы группируете и план и факт по типу ХХХ, и Ваш отчет выглядит
Тип План Факт ХХХ 10000001000000
И то, что реально в "факте" 2 оплаты с разными ссылками на дочернюю таблицу - не видно.
...
Рейтинг: 0 / 0
Оплаты договоров
    #39525503
sergq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскинsergqдействующие в текущем году?

Только вот в план должны попасть только те, что действуют в году договора. Сейчас реализовано на ФК. Как раз в ФК год и задействован .
И в фактах оплат тоже был год задействован в ФК

Ну и прекрасно - но группируйте их в этом Вашем отчете "план-факт" не до ссылок дочерних таблиц "тип+ год", а просто до "тип".
Т.е. у Вас 1 запись План ((XXX, 2016), 1000000), 2 записи "Факт" - ((XXX, 2016), 900 000 ) и ((ХХХ, 2017), 100 000), Вы группируете и план и факт по типу ХХХ, и Ваш отчет выглядит
Тип План Факт ХХХ 10000001000000
И то, что реально в "факте" 2 оплаты с разными ссылками на дочернюю таблицу - не видно.

чуть выше говорил. может быть запланирована оплата Х в 2016, а оплачена с оплаты Y 2017. те "пишем Y, Х в уме". вот в этом случае и расползется
...
Рейтинг: 0 / 0
Оплаты договоров
    #39525505
sergq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
те Y это именно наименование оплаты в 2017. а не ИД
...
Рейтинг: 0 / 0
Оплаты договоров
    #39525507
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergq,

Думаю там изначально кто-то накосячил со всей схемой бД...
Интересно бы было взглянуть на цельный кусок того что выше и чуть шире....
По идее:
Договор -> План Оплат...
Ну и вешай на План Оплат -> Оплаты (к одной строке плана может относиться несколько оплат),
а вся эта фигня Х,Y, год - логика чисто для интерфейса, которую всегда можно включить/выключить
показать/спрятать, но зашивать эту логику в схему БД, чтоб потом ни вздохнуть ни пукнуть...
...
Рейтинг: 0 / 0
Оплаты договоров
    #39525508
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergqте Y это именно наименование оплаты в 2017. а не ИД
Ну так а кто решает, что "тип Y за 2017 год" сойдет за "тип X за 2016 год" - суперпользователь(условно говоря, главбух)? И решает он это именно для одного конкретного договора, или "вообще"?
Мне кажется, тут с концептуальной моделью что-то не так, а проблемы в БД - это только следствие. Т.е. работа в первую очередь для бизнес-аналитика, а не разработчика БД.
...
Рейтинг: 0 / 0
Оплаты договоров
    #39525531
sergq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

Ну вот захотелось зашить в логику) чтоб ругалось если что не так ввожу. В принципе так и должно быть. Тк если не лочить факты оплаты по типам оплат, то и смысл слегка теряется и ошибок можно наклепать вагон.
Если совсем уж упростить описание задачи.
Надо иметь возможность создать план по одному типу оплаты, а оплатить по другому типу.
Но в отчете по выполнению оплаты чтоб все же считалось по , скажем так, начисленному типу оплаты.

Выглядит это примерно так.
Таблица периодов оплат. С указанием года.
К ней дочерняя. С указанием типа оплаты и суммы. Плановой. Для одного периода может быть несколько типов и сумм.

И есть еще пара таблиц. Которые связывают факты оплаты с конкретным периодом.
В первой таблице ссылка на оплачиваемый период. Тут фк на шапку планов оплат с учетом года. И ссылка на шапку документа оплаты.

И вторая дочерняя — помимо всего прочего ссылка на тело документа оплаты. В нем фигурирует тип. И зачем то сделал ссылку на конкретную строку плана оплаты. Ну видно чтоб знать какая оплата к какому плану оплаты в конкретном периоде соответствует.

Можт конечно и перемудрил.

Сейчас глянул. Можно привязать план оплаты к факту оплаты любого года и любого типа) недосмотрел) те вопрос оплаты плана из другого периода недоработан) лепи что хочешь)

Но когда считается баланс идет выборка из таблицы планов оплат. И потом подскребаются факты оплат в том числе по ид типа оплаты.
Ну и как результат в плане оплат нет типа , который есть в факте. Сумма факта не учитывается.

Согласен. Что то концептуально хромает
...
Рейтинг: 0 / 0
Оплаты договоров
    #39525534
sergq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergq,

Хотя. Раз можно связать план с любой оплатой любого года и любого типа, то можно сделать так.
Если связывается факт оплаты с оплатой не из того периода или не с тем типом оплаты, что указан в плане оплаты, то на уровне интерфейса ругнуться, переспросить связывать ли. И если связывать— взять тип оплаты из плана и записать его в спецполе.
Для пущей уверенности повесить констрейн что если связываемый факт оплаты не того года и—или не того типа, то в спецполе лолжен быть указан реальный тип из планового года. Маленькая, но гарантия защиты от лишних косяков

Тогда получится если года плана и факта не совпадают, то будет присутствовать значение типа оплаты из плана. Некое сопоставление—трансляция

И при запросе учитывать значение этого поля. Если есть— подменять и ид и текстовое представление типа оплаты из факта в выборке. И тогда будет все более менее красиво.
Хотя все равно кривовато)
...
Рейтинг: 0 / 0
Оплаты договоров
    #39525561
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergqЕсли совсем уж упростить описание задачи.
Надо иметь возможность создать план по одному типу оплаты, а оплатить по другому типу.
Но в отчете по выполнению оплаты чтоб все же считалось по , скажем так, начисленному типу оплаты.

Ну это-то вообще несложно - просто суммировать в отчете весь факт по договору, не разбивая ни на какие типы оплаты, а тип оплаты показывать из самого договора или плана.
Но тут имхо смысл графы "тип оплаты" в данном отчете теряется.
...
Рейтинг: 0 / 0
Оплаты договоров
    #39525648
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergqНадо иметь возможность создать план по одному типу оплаты, а оплатить по другому типу.


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


sergqНо в отчете по выполнению оплаты чтоб все же считалось по , скажем так, начисленному типу оплаты.


Этот отчет пусть группируется по начисленному типу оплаты, не обращая внимания на фактический.
(Могут быть и другие отчеты).
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Оплаты договоров
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]