|
|
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Ситуация: Есть база данных, в которой ведётся учёт документов и расчётов с различными фирмами. Работа ведётся с разными фирмами, поэтому оплата бывает и по счетам без счёт-фактур, и по счёт-фактурам без счетов. Вопрос: как вести учёт счетов и счёт-фактур, что бы они были разными документами, но платёж вязался через счёт к счёт-фактуре и через счёт-фактуру к счёту автоматически. Кажется несколько путано написал... но постараюсь сориентировать по вопросам. Заранее спасибо ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2011, 14:50 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
Есть вариант сделать в одной таблице разделение по типу и связь внутри таблицы на додительский документ. Потом при выборке первичными будут считаться документы с пустым родителем, но затрудняюсь предсказать насколько это затруднит аналитические выборки в будущем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2011, 15:03 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
> Вопрос: как вести учёт счетов и счёт-фактур, что бы они были разными документами, но платёж вязался через счёт к счёт-фактуре и через счёт-фактуру к счёту автоматически. не ставьте их в соответствие, тк идея не ахти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2011, 15:16 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
fowork, попробуйте перевернуть: есть платеж, в атрибутах которого указана ссылка на документ. т.е. выборка будет не через клиент->счет-фактура->платеж, а через клиент->платеж->ISNULL(счет-фактура, счет) связка клиент->счет-фактура сохранится у "платеж" видимо еще будет дочерняя "фактические транзакции оплат" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2011, 15:19 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
прилагаю схему фрагмента базы сейчас в интерфейсе можно смотреть и счета (счёт-фактуры) по платежам и платежы по счетам (счёт-фактурам) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2011, 16:03 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
fowork, схема в которой захочется разбираться, как минимум, не имеет пересекающихся связей. или эти пересечения минимизированы, сделаны аккуратненько, и никого не запутывают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2011, 16:13 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
Схему делал на скорую руку и пересечения там, потомучто вязки делал от полей, а не от какого-нибудь края таблицы. Догически в устройстве таблиц пересечений не нашёл (если я правильно это понимаю), максимум есть ссылка из bank_payment в RS, потомучто в платеже участвует 2 фирмы, плательщик и получатель. Если сильно напрягает, но могу перерисовать, но только вечером ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2011, 17:06 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
fowork, я не сильна в проблемной среде до конца, но опираясь на озвученую задачу делала бы для таблицы "Счетов" и "Счетов-фактур" общий ключ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 16:08 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
fowork, разбейте задачу на подзадачи: 1. Имеет смысл объединение таблиц Счет и Счет-фактура в одну или это создаст больше проблем, чем решит? Но проблему организации связей это не решит в любом случае. 2. Что все-таки первично - счет или счет-фактура? Имхо все-таки счет (хотя я могу ошибаться), т.е. имеет смысл Счет-Фактуру привязывать к Счету, но сделать эту связь необязательной (NULLABLE). Либо можно создать отдельную таблицу связей между ними. 3. Если создана таблица связей Счет-Счет-фактура, то проблема, считайте, уже решена:в платеже ставите ссылку на запись в этой таблице и через нее вытаскиваете счета. Если нет - тогда создаете в платеже 2 отдельных необязательных связи и накладываете условие проверки, что указаны связанные счета. Либо триггерами поддерживаете валидность этих полей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 17:50 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
а разве одна платежка не может оплачивать несколько счетов или счет не мб оплачен несколькими платежками? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 18:17 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
Тут давеча в другом форуме так и не сумели убедить упертого ТС (другого) что в РЕАЛЬНОЙ жизни плановые платежи, счета и т.п. и фактические поступления на счет, платежки ВСЕГДА М:М. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 18:34 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
Программист-ЛюбительТут давеча в другом форуме так и не сумели убедить упертого ТС (другого) что в РЕАЛЬНОЙ жизни плановые платежи, счета и т.п. и фактические поступления на счет, платежки ВСЕГДА М:М. подтверждаю, на моей практике доказано н-цать раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 11:29 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
to iljy: очень рад последовательному подходу 1. этот вопрос возникает если воспользоваться вариантом, который я предложил вначале. Вообще пока я ближе к нему. объединить имеет смысл только для уменьшения количества таблиц, других практических плюсов я не вижу, если подскажите буду благодарен (в сторону скорости выборок не смотрел). Сейчас эта таблица (BILL) существует для отслеживания наличия документа и связывания фирм и оплат. Если организовать связь типа parent внутри таблицы, то на сейчас задача решится. Вопрос как оно может отразиться в будущем (если в ту же таблицу отправятся товарные накладные например) 2. Когда думал на данным вопросом, на что опираться (счёт или фактура), то пришёл к выводу, что важнее счёт-фактура, т.к. бывают ситуации, когда выписывается счёт и на него идёт ссылка при оплате, а потом едут забирать товар (попутно получают счёт-фактуру и ТН по этой сделке), а заодно набирают ещё товара и получается что по одной операции есть предварительный счёт, по которому была частичная оплата и счёт-фактура на другую (полную) сумму. В таком случае счёт перестаёт быть опорным документом и учёт по оплате и товарам лучше вести по счёт-фактуре. Так же бывает, когда есть только счёт без счёт-фактуры, тогда учёт расходов надо вести по счёту. Таким образом мне кажется, что нет смысла делать опорным один вид документа, т.к. операции, в которых опора идёт не на основной документ придётся отслеживать вручную. Думую лучше сделать гибкую привязку типа опорный/не опорный (флажок), а для того, чтобы не заводить отдельное поле можно совместить его с полем связи между счётом и счёт-фактурой при реализации связи внутри одной таблицы (типа parent) (документ который не ссылается на другой является опорным) 3. Мне кажется, что может быть ситуация когда для одной счёт-фактуры будет несколько счетов (аванс + остатки), так и для одного счёта может быть несколько счёт-фактур (забираем товар несколькими партиями). В такой если будет отдельная таблица для связи счетов и счёт-фактур, на которую будут ссылаться платежи, то нужно будет делать отдельную таблицу для вязки платёж-документ. Мне кажется что из них потом будет не очень удобно выбирать данные для аналитики (большие запросы с многими таблицами) Поправьте меня пожалуйста, если я ошибаюсь, или есть вариант при котором такой способ будет работать замечательно, а предложенный мной упадёт. Создавать в платеже больше одной связи с опорным документом считаю не дальновидным. Если потом добавлять другие типы документов, то их нужно будет на прямую вводить во всех платежах (а в моём случае только сделать ссылку на основной опорный документ) и будет расти количество полей в платеже (+ товарная накладная и может что ещё) Большое Вам спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 12:11 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
да и потом когда приходов\расходов и платежей по ним много нет особого восторга и желания у пользователей дробить платежку на части и указывать что из 50 р 5 сюда 15 сюда 20 предоплата, а оставшиеся 10 переплата и надо сделать возврат, те в мелких расчетах не важно по большому счету за что мы\нам должны 5 р и в рамках годового договора с частыми не крупными поставками\расчетами тоже, - акт сверки и общее сальдо есть и норм, при желании увидеть в отчете по деб\кред задолженности для рук всеже за что можно привязываться к датам по принципу первое пришло первое оплачено, но вот когда договор на поставку 'мелкоштучной' но дорогой продукции или целевые\текущие авансы под конкретные объекты то тут да нужна связка точнее детализация расчетов в рамках договора - орг\дог как я глянул бухгалтерам вообще не важно что за что им общее сальдо по орг нужно, точнее так хотят вести учет - с минимальными телодвижениями, но если ГД за опу возьмет и спросит, тогда чтобы им все было видно в программе под разными углами\детализациями\группировками вот меня тоже от недостатка опыта и знаний терзают смутные сомнения как тут быть и как сделать ) я больше склоняюсь к идее указывать при 'приход\расход', оплаты в рамках какого договора происходит движение и возможность перекидки\взаимозачетов между договорами хотя в принципе это тоже самое как и у автора ток я не понял ваших связей\определений документов - договор, счет-договор, счет, счет-фактура зы пойти на обед что-ли? ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 12:31 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
fowork, 1. Про уменьшение количества таблиц ничего больше добавить не могу - информации мало. Только, учитывая, что связь счет-счет-фактура фактически N-N (вроде как вы с этим согласились), ссылку на "опорный документ" использовать все равно не удастся, нужна таблица связей. 2. А вы уверены, что одна платежка не может в таком разе закрывать несколько счетов-фактур/счетов? Может тут тоже таблицу связей придется использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 12:43 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
fowork, > Создавать в платеже больше одной связи с опорным документом считаю не дальновидным. Если потом добавлять другие типы документов, то их нужно будет на прямую вводить во всех платежах (а в моём случае только сделать ссылку на основной опорный документ) и будет расти количество полей в платеже (+ товарная накладная и может что ещё) количество полей и должно расти главное чтобы они росли вниз, а не вправо, для этого и для развития дальнозоркости можно сделать documet (id, id_paret, doc_type, number, data, ...) и потом сколько нужно таблиц\связок_таблиц для разных документов да и платежка ведь должна иметь вить по идее тбл_шапка (id, ...) табличная_часть (id, id_шапка, вот сюда и можно пристроить id_document) тогда при росте кол документов все норм будет, наверное ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 12:51 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
Сейчас подготовлю наглядную схемку и уточню правильно ли я Вас понимаю и заодно поясню, что сам имелл в виду ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 13:29 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
Как я представляю связь внутри таблицы счетов (BILL) и вязки к ним платежей (bank_payment) Сразу оговорюсь, что при оплате одним платежом нескольких счетов-фактур сейчас делаются несколько записей в платежах (bank_payment) с параметрами этого платежа (номер, дата, получатель ... ), но разными суммами и опорными документами. Тоесть платёжка разбивается на проводки по опорным документам и чтобы получить данные по платёжке целиком, а не по платежу по счёту нужно выбрать конкретную платёжку (номер документа, или другие уникальные данные) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 16:59 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
Как мне кажется, предлагает сделать iljy Поправьте меня если я ошибаюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 17:00 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
fowork, эммм.... ну вообще про номенклатуру речи не было. А раз уж она появилась - зачем вы пытаетесь запихать ее в таблицы счетов???? И потом, вы так и не ответили - платеж собствено к чему привязан? Допустим если у вас 2 счета сч1 и сч2, два счета-фактуры сф1 (закрывающий половину сч1 и половину сч2) и сф2 (закрывающий вторую половину сч1 и сч2), и один платеж на общую сумму- как вы это будете хранить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 17:32 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
то iljy >как оно может отразиться в будущем (если в ту же таблицу отправятся товарные накладные например) (мой пост в 12:11, конец п.1) > один платеж на общую сумму- как вы это будете хранить? в таком случае в платежах (bank_payment) будет 2 записи: 1 ссылается на счёт-фактуру1 и 2 ссылается на счёт-фактуру2, но обе записи имеют данные одной платёжки (номер, дату, отправитель, получатель и т.д.) > Допустим если у вас 2 счета сч1 и сч2, два счета-фактуры сф1 (закрывающий половину сч1 и половину сч2) и сф2 (закрывающий > вторую половину сч1 и сч2) Честно говоря затрудняюсь предствить, как это можно корректно хранить... Попытался представить случай, когда такое может быть: нам выставили счёт на аванс 30%,потом мы забираем товар 50%, потом счёт на доплату 70%, и мы забираем оставшийся товар 50% ... гм, но тогда будет 2 платежа, каждый на свой счёт. Учёт товара пойдёт по счетам. А отслеживать расходы приобретённых материало придётся по другим прзнакам (договор или объект) Конец дня, голова уже кругом. Буду признателен, если подскажите схему, при которой ваш пример будет считаться без дополнительных измерений (договор, объект) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 18:35 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
foworkто iljy >как оно может отразиться в будущем (если в ту же таблицу отправятся товарные накладные например) (мой пост в 12:11, конец п.1) > один платеж на общую сумму- как вы это будете хранить? в таком случае в платежах (bank_payment) будет 2 записи: 1 ссылается на счёт-фактуру1 и 2 ссылается на счёт-фактуру2, но обе записи имеют данные одной платёжки (номер, дату, отправитель, получатель и т.д.) А если платежей тоже 2, и первый гасит часть суммы из сф1, а второй - остаток сф1 и всю сумму сф2? Не делайте так. Вы повеситесь, а потом ваше бренное дело закоптят на медленном огне и распнут на дверях в назидание преемникам. Сделайте еще одну таблицу связей, или вообще откажитесь от привязки платежей к счетам и анализируйте сальдо на дату. fowork > Допустим если у вас 2 счета сч1 и сч2, два счета-фактуры сф1 (закрывающий половину сч1 и половину сч2) и сф2 (закрывающий > вторую половину сч1 и сч2) Честно говоря затрудняюсь предствить, как это можно корректно хранить... Попытался представить случай, когда такое может быть: нам выставили счёт на аванс 30%,потом мы забираем товар 50%, потом счёт на доплату 70%, и мы забираем оставшийся товар 50% ... гм, но тогда будет 2 платежа, каждый на свой счёт. Вот вам пример: в разное время выставлялись 2 независымых счета, затем по этим счетам одним платежем быть выплачен аванс 30%, затем логист поехал и забрал то, что было в наличии, получив сф1, через неделю курьер привез остаток и сф2, после чего был платеж оставшихся 70%. Может такое быть? Если может - тогда отказывайтесь от привязки платежей к счетам, привызывайте их к контрагентам, а счета и счета-фактуры связывайте через номенклатуру. Если нет - тогда сформулируйте требования и ограничения предметной области, иначе итераций будет очень много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 18:56 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
iljyА если платежей тоже 2, и первый гасит часть суммы из сф1, а второй - остаток сф1 и всю сумму сф2? Допустим счёт-фактура на 20 000 р., а счёт-фактура 2 на 30 000 р. В таком случае в платежах (bank_payment) будет 3 записи: № платёжкиДатасуммаопорный документ101.01.201110 000 р.счёт-фактура 1205.02.201110 000 р.счёт-фактура 1205.02.201130 000 р.счёт-фактура 2 iljyВот вам пример: в разное время выставлялись 2 независымых счета, затем по этим счетам одним платежем быть выплачен аванс 30%, затем логист поехал и забрал то, что было в наличии, получив сф1, через неделю курьер привез остаток и сф2, после чего был платеж оставшихся 70%. В таком случае: № платёжкиДатасуммаопорный документ101.01.201130% от счёт 1 счёт 1101.01.201130% от счёт 2 счёт 2207.01.201170% от счёт 1 счёт 1207.01.201170% от счёт 2 счёт2 А таблица счетов будет выглядеть следующим образом: № документа дата тип документа основной документ101.01.2011 счёт 201.01.2011 счёт 107.01.2011 счёт-фактура счёт 1207.01.2011 счёт-фактура счёт 2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 20:55 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
fowork, 1. bank_payment в таком виде не удовлетворяет 3НФ. Насколько это серьезно для вас - решайте сами. 2. Ссылочную целостность можно будет контроллировать только триггерами. 3. Подумайте над тем, какие выборки вам придется делать из таблиц и насколько это будет удобно. 4. У вас еще где-то должна быть номенклатура - как вы ее планируете вписать в эту схему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 21:29 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
to iljy 1. Не был с этим знаком с теоретической стороны. Теперь обязательно ознакомлюсь, спасибо вам огромное! :) 2. Не очень понимаю, что значит "ссылочная целостность" в данном контексте. Поясните пожалуйста, если не сложно. Указывать ссылки на опорный документ и основной документ (в bill) планировал при заведении новых записей. 3. Пока в планах реализовать в интерфейсе привязку нескольких счетов (bill) к одной записи в платежах (bank_payment), для неё как раз и нужно будет вынести отдельную таблицу вязки платёж-счёт (bank_payment_link), как вы и говорили. Но т.к. проект развивается при непосредственной эксплуатации, то не могу внести изменения в базу без поддержки в интерфейсе. Но пока оставлю вязку счетов и счёт-фактур в нутри одной таблицы (bill), может при дальнейшем развитии возникнет смысл вынести связи между ними в отдельную таблицу, но пока мне это кажется не "рентабельным" 4.Номенклатура есть. Она вяжется через отдельную таблицу ссылок. Считаю это обоснованным, т.к. на одн счёт может быть несколько счетов фактур с разной номенклатурой. Хотя сейчас размышляю над тем, как это можно преобразовать, чтобы избегать повторных записей при совпадении номенклатуры для разных документов по одной сделке. Как я понял пока есть 2 позиции: вязка счетов и счёт-фактур внутри одной таблицы (моя) и вязка их через внешнюю таблицу (iljy) Если у кого есть ещё мысли, прошу высказываться. Пока буду развивать это хозяйство в обозначенном мной направлении... Всем огромное спасибо за участие! Особая благодарность iljy! Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 22:31 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
foworkto iljy 1. Не был с этим знаком с теоретической стороны. Теперь обязательно ознакомлюсь, спасибо вам огромное! :) Не за что Нормальные формы знать надо обязательно, хотя бы до 3й. fowork2. Не очень понимаю, что значит "ссылочная целостность" в данном контексте. Поясните пожалуйста, если не сложно. Указывать ссылки на опорный документ и основной документ (в bill) планировал при заведении новых записей. Ссылочная целостность - это корректность связей между объектами. У вас в таком виде ВК не гарантирует, что связываются не 2 счета, а именно счет и счет-фактура. Нужны будут дополнительные телодвижения, типа CHECK CONSTRAINT или триггеров. Можно конечно положиться полностью на клиента, но это выстрел себе в ногу. Ошибка в работе программы, которая обнаружиться к моменту сдачи годового отчета - и вы будете полбазы перелопачивать ручками. fowork3. Пока в планах реализовать в интерфейсе привязку нескольких счетов (bill) к одной записи в платежах (bank_payment), для неё как раз и нужно будет вынести отдельную таблицу вязки платёж-счёт (bank_payment_link), как вы и говорили. Но т.к. проект развивается при непосредственной эксплуатации, то не могу внести изменения в базу без поддержки в интерфейсе. Но пока оставлю вязку счетов и счёт-фактур в нутри одной таблицы (bill), может при дальнейшем развитии возникнет смысл вынести связи между ними в отдельную таблицу, но пока мне это кажется не "рентабельным" Вам виднее. Но выборки у вас в таком виде усложняются. Напишите например запрос, который вытащит все платежки с номерами счетов и счетов фактур, которые есть. Я не говорю, что его нельзя написать, нет, но он будет явно сложнее, чем просто соединение 3х или 4х таблиц. Придумайте еще несколько наиболее актуальных запросов и попробуйте их написать. fowork4.Номенклатура есть. Она вяжется через отдельную таблицу ссылок. Считаю это обоснованным, т.к. на одн счёт может быть несколько счетов фактур с разной номенклатурой. Хотя сейчас размышляю над тем, как это можно преобразовать, чтобы избегать повторных записей при совпадении номенклатуры для разных документов по одной сделке. Я думаю у вас очень быстро возникнет, например, такая задача: проверить, вся ли номенклатура по счету получена. Или полностью ли счет оплачен (учитывая, что часть платежей может быть привязана к счетам, а часть - к счетам фактурам). И кстати: foworkiljyВот вам пример: в разное время выставлялись 2 независымых счета, затем по этим счетам одним платежем быть выплачен аванс 30%, затем логист поехал и забрал то, что было в наличии (а в наличии могли быть позиции из разных счетов!), получив сф1, через неделю курьер привез остаток и сф2, после чего был платеж оставшихся 70%. ..... А таблица счетов будет выглядеть следующим образом: № документа дата тип документа основной документ101.01.2011 счёт 201.01.2011 счёт 107.01.2011 счёт-фактура счёт 1207.01.2011 счёт-фактура счёт 2 Почему так? По сф1 была получена часть товара, выписанная в счете1, и часть , выписанная в счете2. По сф2 - остаток по обоим счетам. На основании чего вы привязали сф1 к счету1? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 23:17 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
iljyПочему так? По сф1 была получена часть товара, выписанная в счете1, и часть, выписанная в счете2. По сф2 - остаток по обоим счетам. На основании чего вы привязали сф1 к счету1? Привязал так, потомучто при платеже как подтверждающий сумму документ (для бухгалтерии) был счёт, следовательно для платежа он является опорным документом. А вот что с счёт-фактурами делать? Мда... Боюсь, что если часть товара из 2 счетов была при получении вписана в одну счёт-фактуру и накладную (хотя в бухгалтерской накладной указывается счёт, на основании которого она оформлена), то это могло быть сделано только в рамках одного договора, по которому и будет производиться взаиморасчёт. А как будет выглядеть вязка для этого случая при внешней таблице ссылок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 23:53 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
iljyНапишите например запрос, который вытащит все платежки с номерами счетов и счетов фактур, которые есть. select bp.c_number, b.c_number, b.i_type, iif(b.id_parent is NULL, 1,0) ib_main_doc from bank_payment bp left join bill b on b.id=bp.id_bill Извините, пишу без проверки... Вроде должен выдать типа такого: № платежа номер документа основания тип док основания основной опорный документ11СЧ111СФ022СФ122СЧ031СЧ132СФ0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2011, 00:10 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
to iljy Если не очень затруднит, напишите пожалуйста пример запроса для аналогичной ситуации для вашей конструкции базы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2011, 00:12 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
fowork, не-а, не выдаст он так - с какого перепугу одно соединение по внешнему ключу даст вам 2 строки для каждой платежки? У вас должно быть что-то типа Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. НомерПлатежки ДатаПлатежки НомерСчета ДатаСчета НомерСчетаФактуры ДатаСчетыФактуры ,тогда в вашем варианте будет как-то так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2011, 01:35 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
Да, прошу прощения, вчера уже в полубессознательном состоянии писла. Запрос должен быть такой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Этот уже проверял :) Может можно ещё оптимизировать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2011, 10:31 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
iljy Код: plaintext 1. 2. 3. Вроде Ваш вариант оптимальней, чем мой через union :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2011, 10:37 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
Можно ещё и так Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2011, 12:57 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
foworkМожно ещё и так Код: plaintext 1. 2. Можно, но ваш запрос подразумевает, что платежка всегда привязана к опорному документу, а схема базы этого никак не гарантирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2011, 13:11 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
Такая идея и была. Если нужно выбрать ещё и неоплаченные счета, то запрос конечтно будет другой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2011, 13:26 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
foworkТакая идея и была. Если нужно выбрать ещё и неоплаченные счета, то запрос конечтно будет другой Я не про то. Если на момент оплаты были оба счета, то схема базы вам не гарантирует, что платеж будет привязан к опорному документу (а опорным у вас может быть любой). Схема базы вам вообще мало что гарантирует, вот в чем проблема. А про проверки на клиенте я вам уже писал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2011, 15:58 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
В связи с этим у меня появляется ещё один вопрос, не знаю на сколько он к этой теме, но в контексте обсуждения думую можно затронуть... Глобально он звучит так: Как определить, какую часть нагрузки возложить на интерфейс, а какую на структуру бызы, так чтобы база не потеряла гибкости, а интерфейс небыл перегружен проверками. А локально могу сказать: Сейчас проверка вязки платежа к опорному документу осуществляется интерфейсом. Тоесть если есть основной опорный документ (id_parent is NULL), то пользователю в выпадающем списке показывается он, а если нет, то в выпадающем списке показываются все документы. Определение основного документа возложенно на пользователя при внесении записей в счета (bill) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2011, 16:57 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
foworkВ связи с этим у меня появляется ещё один вопрос, не знаю на сколько он к этой теме, но в контексте обсуждения думую можно затронуть... Глобально он звучит так: Как определить, какую часть нагрузки возложить на интерфейс, а какую на структуру бызы, так чтобы база не потеряла гибкости, а интерфейс небыл перегружен проверками. А локально могу сказать: Сейчас проверка вязки платежа к опорному документу осуществляется интерфейсом. Тоесть если есть основной опорный документ (id_parent is NULL), то пользователю в выпадающем списке показывается он, а если нет, то в выпадающем списке показываются все документы. Определение основного документа возложенно на пользователя при внесении записей в счета (bill) Тут базовое направление очень простое - чем больше проверок целостности задекларировано в базе - тем лучше. Во-первых - это инкапсуляция, иначе будете где-то что-то дополнять в интерфейсе, забудете проверить - и опаньки. Во-вторых - это может помочь оптимизатору с генерацией планов. В третьих - это обезопасит базу от некорректного изменения мимо вашего клиента (да-да, это тоже может оказаться проблемой, в том числе вы сами можете править данные запросами напрямую и что-то упустить). Это так, навскидку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2011, 18:57 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
iljyТут базовое направление очень простое - чем больше проверок целостности задекларировано в базе - тем лучше. Я бы даже сказал больше: всё, что можно ограничить в базе, надо ограничить в базе. Всё, что можно ограничить в приложении - надо ограничивать в приложении. Даже если эти проверки будут дублироваться. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2011, 19:01 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1542034]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 357ms |

| 0 / 0 |
