powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Связь договоров, оплат и депозита
25 сообщений из 35, страница 1 из 2
Связь договоров, оплат и депозита
    #36649236
LelikBolek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чтото не догоню пока мысль о работе с депозитами по оплате чего либо:

Есть: Клиент, договор с суммой, записи оплат клиента.
Надо соотнести суммы договоров и суммы внесенных оплат для получения списка долгов и т.д.
Пока не было понятия депозита клиента (внесенная оплата "непонятно за что, в счет будущих услуг") все было понятно, а с депозитом чего-то туплю. Подскажите?

Примерные таблички для понимания:
договора: CONTRACT (CONTRACT_ID, CLIENT_ID, SUMMA)
оплаты: PAYMENT (PAYMENT_ID, DATA, SUMMA, CLIENT_ID, CONTRACT_ID)
депозит: вроде как это тоже запись в PAYMENT, но тут вижу два варианта реализации:
вариант1: доп поле в PAYMENT.TYPE_ID, где PAYMENT.TYPE_ID = 1 - оплата договоров, PAYMENT.TYPE_ID = 2 - депозит
вариант2: без доп поля, если PAYMENT.CONTRQCT_ID is null - это запись о депозите

пока депозиты был не нужны, было все просто:

select ct.CONTRACT_ID,
ct.SUMMA,
(select sum(p.SUMMA) from PAYMENT p where p.CONTRACT_ID = ct.CONTRACT_ID) as SUMMA_PAYMENT
from CONTRACT ct

так видим связь суммы договора и внесенных оплат этого договора

а если теперь клиент внес депозит, т.е. просто сумму денег в счет будущих услуг, как учесть депозит при связи суммы договора и суммы его оплат ?

PS: текст SQL примерный, просто для понимания вопроса, БД - FireBird
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36649272
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelikBolek , не совсем понятно чем "депозит" так сильно отличается от "оплаты"?
Я так понимаю...
Есть начисленныные суммы за какие-то услуги... Есть суммы которые вносит клиент...
Что может интересовать контору? Должен кто-то из клиентов ей. И кому "должна" она.

Если оплата услуг у вас привязана к самой услуге, сделайте для депозитов еще одну табличку. А к ней еще одну, типа "Расход депозита", где будет указан ИД из тойже PAYMENT...
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36649284
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то типа такого (часть таблиц взята по твоей схеме)...

КлиентыКодДругие характеристики
ДоговораКодКод клиентаСумма
ОплатаКодДатаСуммаКод клиентаКод договора
ДепозитыКодСуммаКод клиента
Расход депозитаКодКод депозитаКод оплаты
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36649433
LelikBolek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaЧто может интересовать контору?
Попробуем на примере:
Есть договор на 1000 руб.
Есть запись оплаты договора 600 руб.
Имеем остаток оплаты 400 руб.

Теперь клиент вносит еще 1000 руб.
Получается он нам уже ничего не должен и даже наоборот у него депозит на 600 руб.
Как это учесть ?
По хорошему, надо сделать две записи оплаты:
1. Оплата договора на 400 руб, т.о. договор полностью оплачен
2. 600 руб на депозит.

Но хочется это делать одной записью, так оно проще оператору, не надо ему много думать...

Но потом клиент берет допустим в баре бутылку воды за 50 руб.
С его депозита списывается 50 руб. Остается 550 и т.д.

Мне вот видится такой вариант:
1. в таблицу оплат вводим поле тип оплаты. PAYMENT.TYPE_ID, если оно = 2 это внесение депозита
2. в таблицу оплат вводим поле PAYMENT.DEPOZIT_ID ссылка на запись PAYMENT c внесенным депозитом)
3. если оплата наличными - PAYMENT.DEPOZIT_ID = null
если оплата за счет депозита, то открываем окошко с депозитами клиента (где PAYMENT.TYPE_ID = 2 и только недоконца использованные депозиты) и заполняем PAYMENT.DEPOZIT_ID в новой записи оплаты
т.о. всегда можно понять как использован депозит
всегда можно понять как оплачен договор
при подсчете дневной выручки по кассе легко отфильтровать записи оплат которые введны за счет депозита и в дневном остатке по кассе участвовать не деолжны.

ну и
4. поле PAYMENT.TYPE_ID еще пригодится для того чтоб отличить записи оплаты договоров от записей оплат товаров или оплат услуг без договоров (для чего конечно в PAYMENT надо еще внести поля TOVAR_ID и USLUGA_ID)

я прав?
что мне самому пока не нравится в этой схеме, так это то что если клиент вносит 1000 в кассу, я вынужден сделать 2 операции, сначала внести депозит на 1000 руб, затем видя неоплаченные договора (услуги, товары) клиента внести их оплаты средствами депозита. Есть мысль сделать авторазноску депозита по долгам. т.е. после внесения депозита запускать процедуру автоматического формирования оплат договоров (услуг,товаров) которые оплачены недоконца. Вот тогда кассиру будет достаточно просто взять деньги на депозит, а прога их сама распихает куда сможет... но чую тут еще есть камешки ...
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36649532
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelikBolek , выясняется что ты мало дал информации по задаче...
Теперь у тебя помимо договоров есть еще товары... Каки-то услуги... Касса!

Т.ч. давай-ка все сначала и подробнее.
- За что вам будет платить клиент?
- Что он может получить в долг? И может ли это делать?
- Как будет распределяться внесённая клиентом сумма если у него долгов больше чем эта сумма?
- Чего там у тебя с кассой?
- Какая хоть "отрасль" автоматизации у тебя? Гостинница? Развлекательный центр? Что?

Больше информации - лучше советы.

И не нужно путать ввод информации с её хранением.
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36649546
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне видится что таблица оплат должна быть такой

ОплатыКодКод клиентаДатаСумма
Все остальное от лукавого...
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36649661
LelikBolek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa
Т.ч. давай-ка все сначала и подробнее.

1. Отрась ?: Фитнесцентр (тренажерка, аэробика, йога, солярий, косметология и т.д.)
2. За что платют ?: за абонементы (договора) на услуги, за разовое посещение, за напитки и прочее в фитнесбаре
3. Что он может получить в долг? И может ли это делать?: клиент может оформить абонемент, но оплаить его частично (остальное позже, разными частями), может получить услугу, но оплатить ее позже, может взять в фитнесбаре что-то но оплатить позже (на выходе или вааще "завтра")
4. Чего там у тебя с кассой?: касса есть, задача кассира взять денежки с клиента и както их в проге отразить, моя задача сделать это максимально удобно
5. Как будет распределяться внесённая клиентом сумма если у него долгов больше чем эта сумма?:
если у клиента сумма долгов больше чем сумма внесенных денег - он должник, это обычная практика для постоянных клиентов. При внесении депозита, предполагаю начать списывать долги начиная с самого старого (фактически торговля, по ФИФО, но в качестве товара может быть услуга)
6.И не нужно путать ввод информации с её хранением.: согласен, просто стараюсь продумывать это одновременно

Без этих депозитов все было красиво и понятно. Но система депозитов в клубе реально удобная вещь. Сам там занимаюсь и просто когда говорят что депозит закончился, вношу рублей 300 и хожу в фитнес бар беру чего хочу, через какое время просто напоминают что депозит заканчивается. Но сегодняшний учет депозитов на бумажке их утомил...
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36649757
LelikBolek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaМне видится что таблица оплат должна быть такой

ну а какже данные "за что платим"
я бы расширил:

ОплатыКодКод клиентаДатаСуммаВид оплаты (1-оплата абонемента; 2 - оплата услуги; 3 - доплата за посещение в + к абонементу; 4 - внесение депозита; 5 - оплата товара)Код абонементаКод услугиКод посещения (для оплаты в +к абонементу)Код товараКод записи оплаты с депозитом

Такая схема, как мне кажется покрывает все мои возможные запросы по оплатам.
Попробую, наверняка еще чтото вскроется, но на то они тернист это путь )))
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36649764
nosov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaМне видится что таблица оплат должна быть такой
деньги которые вносятся на лицевой счет клиента называются депозитом .
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36649777
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отдельно таблица платежей клиентов, отдельно потребленные ими услуги и все время динамически подсчитывать сальдо первого со вторым.
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36649791
LelikBolek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А запросы к оплатам счас такие:
1. на сколько оплачен абонемент, услуга, посещение, товар
2. сколько денег на депозите у клиента
3. дневная выручка клуба
вроде и все.. по расширенной моей табличке вроде на все есть ответы и без многоэтажных запросов.
Или не на все ?
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36649831
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelikBolekну а какже данные "за что платим"
Это все описано в его "долгах". Главное чтобы они были все покрыты...

LelikBolekТакая схема, как мне кажется покрывает все мои возможные запросы по оплатам.
Дело твоё... Тебе и решать.

LelikBolekПопробую, наверняка еще чтото вскроется, но на то они тернист это путь )))
Конечно вскроется! Т.ч. лучше сразу подумать как организовать данные...

Как вариант такая схемка ответит на все "вопросы"

КлиентыКодДругие поля
ОплатаКодДатаСуммаКод Клиента
Перечень абонементовКодНазваниеДругие поля
АбонементыКодКод типа абонементаКод клиентаДругие поля
Типы услугКод названиеДругие поля
УслугиКодДатаКод типа услугиКод клиентаДругие поля
ТоварыКодНазваниеДругие поля
Купленные товарыКодДатаКод товараКод клиента

По этим табличка можно вычислить должен клиент или контора ему...
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36649838
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nosovденьги которые вносятся на лицевой счет клиента называются депозитом .
Я это называю "оплатой" и суть от этого не изменится... Получается что это автор не правильно понимает суть термина "депозит".
У него это "положительный остаток на счете клиента".
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36649910
Фотография bootty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelikBolekА запросы к оплатам счас такие:
1. на сколько оплачен абонемент, услуга, посещение, товарПринципиально ли считать, за что именно заплатил клиент? Если у меня внесено по услуге 1000, из неё использовал 300, и взял бутылку воды за 50, то надо ли "думать", что у меня +700 по услуге и -50 за воду? Или же достаточно конечного сальдо в +650?

В ряде заведений делается так: у клиента (группы клиентов) есть персональный счет, на который они вносят деньги, которые списываются с них при потреблении каких-либо услуг/товаров. Пример - аквапарк с кучей аттракционов. Вошел, закинул денег на карту и пользую любые аттракционы. Если могу уйти в минус, то при выходе оплачиваю перерасход, если нет, то повторно бегу и закидываю денег на карту.
LelikBolek3. дневная выручка клубаДайте своё определение понятию "выручка".

А прав, как всегда, П-Л
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36649947
LelikBolek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
boottyДайте своё определение понятию "выручка".
Возможно неправильно выразился..
Под выручкой я имел в виду сумму проданных абонементов + сумму оплаченных услуг в +к абонементу + оплаты разовых услуг + сумму проданных товаров
От этой суммы считается ЗП менеджеров (как процент от дневной выручки)
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36650017
LelikBolek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bootty[quot LelikBolek]Если у меня внесено по услуге 1000, из неё использовал 300, и взял бутылку воды за 50, то надо ли "думать", что у меня +700 по услуге и -50 за воду? Или же достаточно конечного сальдо в +650?
Важно что на конечно сальдо +650..
Предполагаю сделать автоматическое формирование записей по закрытию долгов при вводе депозита.
Буду закрывать сначала старые долги по мере появления сумм на депозите клиента.
Если запись о внесении на депозит меняется то сначала удалю автоматически сформированные записи а потом разнесу заново. Удалить же уже оплаченную услугу(абонемент, товар) нельзя.. Сперва удаляем оплату а потом уж услугу. Вроде все логично .
Посмотрим что из этого выйдет ))
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36650028
LelikBolek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
схема предложеная krvsa во многом совпадает с моей,
все полученные услуги и товары у меня в разных таблицах.
И только оплаты у меня все в одном месте, с внешними ключами на разные таблицы (абонементы, услуги,посещения и товары)

Прелесть форма еще и в том что когда пишешь вопрос, обычно сам уже видишь один из ответов..
Спасибо ответившим, за новые идеи буду благодарен, пока реализую то что сам же и напридумывал. Если что не выйдет, будем копать дальше ))
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36650050
Ortogon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО, в данном случае, помимо справочников клиентов, договоров, типов услуг стоит завести таблицу, ну скажем "Операции". В ней будут все оплаты и авансы, поступившие от клиентов, а так же счета, которые им выставлены, возможно так же понадобятся типы операций "возврат денежных средств" и "кредит-нота", если счет был выставлен ошибочно. Одно из полей может быть "код договора". Отфильтровав по коду клиента и коду договора можно получить баланс по клиенту на любую дату по конкретному договору, суммировав одно поле в одной таблице. А так же можно будет просмотреть всю историю операций по клиенту, все в одной табличке.

Если есть необходимость четкого сопоставления счетов с оплатами, в этом случае нужна вспомогательная техническая таблица, в которой прописываются связи счетов с авансами и оплатами с полным, либо частичным перекрытием по сумме. Эта процедура "клиринга" или, если хотите, "применения", "выравнивания", (называют ее по разному) может выполнятся автоматически, на основании каких-то алгоритмов, по той же FIFO например, либо вручную, но это уже дополнительная работа для оператора. Зато сразу будет видно, какие счета еще не оплачены, какие авансы не закрыты. То есть в "операциях" у вас в строке будет две суммы: "Сумма операции" и "Сумма остатка", причем вторая это расчетное поле по вспомогательной таблице.
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36650355
Фотография bootty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelikBolek
Важно что на конечно сальдо +650..
Предполагаю сделать автоматическое формирование записей по закрытию долгов при вводе депозита.
Буду закрывать сначала старые долги по мере появления сумм на депозите клиента.
Если запись о внесении на депозит меняется то сначала удалю автоматически сформированные записи а потом разнесу заново. Удалить же уже оплаченную услугу(абонемент, товар) нельзя.. Сперва удаляем оплату а потом уж услугу. Вроде все логично .А зачем делать привязку оплат к услугам/товарам, если важно только сальдо? Всегда можно рассчитать и показать такую разбивку по желаемому алгоритму, а не хранить все привязки и отслеживать все изменения. По какой причине хотите хранить такую привязку в БД?
LelikBolekПод выручкой я имел в виду сумму проданных абонементов + сумму оплаченных услуг в +к абонементу + оплаты разовых услуг + сумму проданных товаров
От этой суммы считается ЗП менеджеров (как процент от дневной выручки)Разумеется, за минусом суммы возвратов клиентам, так? Тогда ситуация, при которой выручка отрицательная, как рассматривается?
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36650485
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сложнее всего, когда у вас одновременно есть и (1) жестко привязанные (разнесенные) услуги-оплаты и (2) такие, для которых достаточно одного общего сальдо, которое должно считаться без жестко разнесенных (1).
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36650543
LelikBolek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
boottyА зачем делать привязку оплат к услугам/товарам, если важно только сальдо?
Если прально понял вопрос, то привязка оплаты и услуги нужна для того чтоб учесть доплату за посещение клуба в вечернее время по дневному абонементу. Т.е. надо учесть оплату именно услуги, без привязки к абонементу. Получается посещение (услуга) оплачена двумя позициями (дневным абонементом и доплатой за посещение в вечернее время)

boottyРазумеется, за минусом суммы возвратов клиентам, так? Тогда ситуация, при которой выручка отрицательная, как рассматривается?
А возвраты никак не делаются. Что с возу упало, то пропало. Деньги уже могут быть столеткакпропиты )))) Шутка !)

Отрицательность дневной выручки у меня проявляется только при расчете ЗП менеджерам, и тут я просто ничего им не насчитываю если выручка в день <= 0. Это все оговорено заранее
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36650582
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelikBolekПолучается посещение (услуга) оплачена двумя позициями (дневным абонементом и доплатой за посещение в вечернее время)
В любом случае просто появляется еще одна услуга "посещение в вечернее время с дневным абонентом" и у неё есть своя цена. Она влияет на общее сальдо. Но никак не на оплату что внес клиент...

Клиент просто платит и платит... Вы выставляете счет с абонентами, услугами и товарами... Клиенту высчитывается сальдо.
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36650647
LelikBolek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa[quot LelikBolek]
В любом случае просто появляется еще одна услуга "посещение в вечернее время с дневным абонентом" и у неё есть своя цена. Она влияет на общее сальдо. Но никак не на оплату что внес клиент...
ну это видимо смотря с какого боку смотреть:
у меня одно из основных понятий учета - "посещение" т.е. факт того что клиент пришел в клуб.
Далее это посещение описывается такими основными показателями:
куда? (какая услуга),
к кому (кто инструктор, что инструктору упала капля денег за это посещение),
как за это посещение заплатил (абонемент, разовая оплата, комбинированная оплата если по дневному абонементу вечером)
А уж на этих посещениях строится весь анализ деятельности клуба

Идея описывать каждое посещение как выставление счета за услугу (типа "вы нам должны за...) и оплаты этих услуг аля товар (внесение 100 руб за то что я вам был должен вот тогда ...), требует чаепития и осмысления ))
Это конечно потребует переделки системы, но, возможно, позволить гибче добавлять новые виды услуг клуба .
Буду думать )
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36650660
Фотография bootty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelikBolekЕсли прально понял вопрос, то привязка оплаты и услуги нужна для того чтоб учесть доплату за посещение клуба в вечернее время по дневному абонементу. Т.е. надо учесть оплату именно услуги, без привязки к абонементу. Получается посещение (услуга) оплачена двумя позициями (дневным абонементом и доплатой за посещение в вечернее время)Если человеку можно посетить клуб вечером по дневному абонементу без немедленной оплаты (т.е. в долг), то данная привязка тоже не обязательна, полагаю, если это учитывается в системе с ценой (с учетом скидки или отдельной услугой, как сказал krvsa).

Если же список услуг/товаров делится на те, которые можно испльзовать без предварительной оплаты и те, которые должны быть обязательно сперва оплачены, то вам будет проще делать с привязкой. Но тогда подумайте о механизме переноса сальдо по существующим оплатам, типа: "Я оплатил массаж, но отказываюсь от него и вместо этого пойду на йогу" (которую надо оплатить до оказания услуги).
...
Рейтинг: 0 / 0
Связь договоров, оплат и депозита
    #36650666
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelikBolek , в любом случае клиент может потребовать "счет". Типа "а за что ушли бабки"? При "моём" подходе вы просто распечатываете "расход", "приход" и подбиваете сальдо.
...
Рейтинг: 0 / 0
25 сообщений из 35, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Связь договоров, оплат и депозита
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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