powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Расчеты между филиалами одного предприятия (Многофилиайловая БД)
11 сообщений из 11, страница 1 из 1
Расчеты между филиалами одного предприятия (Многофилиайловая БД)
    #34579674
непонимайу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE TABLE Payment
(
idPayment   int,
idOwner     int, -- Предприятие от которого работает клиент
idDB        int, -- Дебитор
idCR        int, -- Кредитор
idOperation int, -- За что платят
Summa       money  
...
)
Эта таблица работает если одно предприятие. Необходимо изменить структуру так, чтобы считать дебет/кредит контрагентов относительно каждого филиала и дебет/кредит филиалов относительно друг-друга.
...
Рейтинг: 0 / 0
Расчеты между филиалами одного предприятия (Многофилиайловая БД)
    #34579807
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавляйте дерево структуры своего холдинга. Тогда по ид контрагента можно будет определить свой он или внешний и считать обороты между своими, своими и внешними по фактическим узлам, общее между своим холдингом целиком и внешними.
...
Рейтинг: 0 / 0
Расчеты между филиалами одного предприятия (Многофилиайловая БД)
    #34579868
непонимайу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-ЛюбительДобавляйте дерево структуры своего холдинга.
Чем это может помочь? Все контрагенты в одной таблице, в ней же и филиалы. Если делать иерархию то не в таблице с контрагентами. Вынесу в отдельную таблицу "Структура предприятия" и свяжу с контрагентами. Сейчас не вижу в этом потребности.
Программист-ЛюбительТогда по ид контрагента можно будет определить свой он или внешний и считать обороты между своими, своими и внешними по фактическим узлам, общее между своим холдингом целиком и внешними.
Не понял. Контрагент пополняет свой счет:
Код: plaintext
1.
idDB    idCR          Summa
null    idContragent   100 
Добавить поле "Payment.idFilial", чтобы узнать какой филиал пришли деньги? А если один филиал пополняет свой счет в другом филиале?
...
Рейтинг: 0 / 0
Расчеты между филиалами одного предприятия (Многофилиайловая БД)
    #34579884
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
непонимайуidOwner int, -- Предприятие от которого работает клиент
idDB int, -- Дебитор
idCR int, -- Кредитор
Я не уверен, какой точно смысл Вы закладываете в эти поля (какие значения в каких случаях они получают), но судя по вопросу, проблема в том, что схема несимметрична: учитываются расчеты "себя" с остальными, в то время как удобнее пользоваться симметричной схемой: считать себя (и свои филиалы) такими же равноправными контрагентами, как и всех остальных.
...
Рейтинг: 0 / 0
Расчеты между филиалами одного предприятия (Многофилиайловая БД)
    #34579919
непонимайу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer Я не уверен, какой точно смысл Вы закладываете в эти поля idOwner int, -- Предприятие от которого работает клиентЭто поле дополняет CreateBy, CreateWhen... чтобы знать где добавилась запись. С остальными полями думаю понятно - ид дебитора и ид кредитора. softwarer считать себя (и свои филиалы) такими же равноправными контрагентами, как и всех остальных.Так и есть Все контрагенты в одной таблице, в ней же и филиалы
...
Рейтинг: 0 / 0
Расчеты между филиалами одного предприятия (Многофилиайловая БД)
    #34580180
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
непонимайуТак и есть
Cудя по сказанному Вами в примере idDB = null - нет, не так. То, что они в одной таблице - это хорошо, но в операции участвуют две стороны. И как раз эту вторую сторону Вы ищете, спрашивая "добавить id филиала?"

Короче.... в простом случае достаточно idDB, idCR, оба not null и могут быть в том числе id филиала. Этого хватит, чтобы описать трансферы между контрагентом и филиалом, филиалом и контрагентом, филиалом и филиалом.... В более сложном случае могут потребоваться дополнительные признаки - например, для ситуации "клиент оплачивает на счет местного филиала сумму за услуги другого филиала". А могут и не потребоваться - вместо этого, например, может создаваться вторая запись на трансфер между филиалами.
...
Рейтинг: 0 / 0
Расчеты между филиалами одного предприятия (Многофилиайловая БД)
    #34580926
непонимайу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerКороче.... в простом случае достаточно idDB, idCR, оба not null и могут быть в том числе id филиала. Этого хватит, чтобы описать трансферы между контрагентом и филиалом, филиалом и контрагентом, филиалом и филиалом....Можно простой пример?
softwarerВ более сложном случае могут потребоваться дополнительные признаки - например, для ситуации "клиент оплачивает на счет местного филиала сумму за услуги другого филиала".Это тоже есть. Пока такие расчеты только на бумаге и в "уме":-(
...
Рейтинг: 0 / 0
Расчеты между филиалами одного предприятия (Многофилиайловая БД)
    #34581122
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
непонимайуМожно простой пример?
Простые примеры, к сожалению, условны, но давайте попробуем. Допустим, у нас есть таблицы

КонтрагентыНазвание1Центральный офис2Региональный филиал3Клиент

Заказанные услугиПоставщикУслугаСтатусЦена11 - центр. офисПоставка товара в центральный офис клиентаЖдет оплаты900.0022 - филиалПоставка товара в региональный офис клиентаЖдет оплаты100.00

В центральный офис приходят два платежа (как правило, конечно, один, но разбивка - отдельный вопрос)

ПлатежиОт когоКомуСуммаОснованиеСтатус13 - клиент1 - центр. офис900.00Оплата услуги #1Не обработан23 - клиент1 - центр. офис100.00Оплата услуги #2Не обработан

В центральном офисе обрабатывается первый платеж. Он пришел в центральный офис и оплачивает услугу этого офиса. Получаем:

Заказанные услугиПоставщикУслугаСтатусЦена11 - центр. офисПоставка товара в центральный офис клиентаОплачено900.0022 - филиалПоставка товара в региональный офис клиентаЖдет оплаты100.00

ПлатежиОт когоКомуСуммаОснованиеСтатус13 - клиент1 - центр. офис900.00Оплата услуги #1Обработан23 - клиент1 - центр. офис100.00Оплата услуги #2Не обработан

В центральном офисе обрабатывается второй платеж. Получаем:

Заказанные услугиПоставщикУслугаСтатусЦена11 - центр. офисПоставка товара в центральный офис клиентаОплачено900.0022 - филиалПоставка товара в региональный офис клиентаОплачено в другом офисе100.00

ПлатежиОт когоКомуСуммаОснованиеСтатус13 - клиент1 - центр. офис900.00Оплата услуги #1Обработан23 - клиент1 - центр. офис100.00Оплата услуги #2Обработан31 - центр. офис2 - филиал100.00Оплата услуги #2Не обработан

Наконец, третий платеж обрабатывается в филиале:

Заказанные услугиПоставщикУслугаСтатусЦена11 - центр. офисПоставка товара в центральный офис клиентаОплачено900.0022 - филиалПоставка товара в региональный офис клиентаОплачено100.00

ПлатежиОт когоКомуСуммаОснованиеСтатус13 - клиент1 - центр. офис900.00Оплата услуги #1Обработан23 - клиент1 - центр. офис100.00Оплата услуги #2Обработан31 - центр. офис2 - филиал100.00Оплата услуги #2Обработан
...
Рейтинг: 0 / 0
Расчеты между филиалами одного предприятия (Многофилиайловая БД)
    #34590494
непонимайу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за пример, много думал, мало понял. Поделитесь ссылками по теме, на форуме перечитал все - перевариваю.
...
Рейтинг: 0 / 0
Расчеты между филиалами одного предприятия (Многофилиайловая БД)
    #34608022
непонимайу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался немного. Смутило то, что
ПлатежиОт когоКомуСуммаОснование13 - клиент1 - центр. офис900.00Оплата услуги #1Встречается 4 раза.
В общем случае выставляется счет и его должны оплатить. Счет иммет 4 состояния - неоплачен, оплачен частично, оплачен, переплачен. Может быть несколько платежей по одному счету, в том числе от разных филиалов/юр. лиц. Если Заказчик делает предоплату в счет будущих услуг, создать хоз. опрецию "Предоплата" ?ПлатежиОт когоКомуСуммаОснование13 - заказчик1 - центр. офис1 000.00Предоплата Мы оказали услугу Заказчику, выставили счет, и списали чать его предоплаты, создать хоз. операцию "Списано со счета" ?ПлатежиОт когоКомуСуммаОснование13 - заказчик1 - центр. офис500.00Списано со счетаЕсть еще масса вариантов, создавать столько же хоз. операций?
...
Рейтинг: 0 / 0
Расчеты между филиалами одного предприятия (Многофилиайловая БД)
    #34609411
непонимайу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался. Всем спасибо, особенно softwarerу.

ЗЫ Понимаю почему так мало ответов. Как только оформлю это дело пойду говорить о повышении зп.-)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Расчеты между филиалами одного предприятия (Многофилиайловая БД)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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