Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хранение сумм по накладной / 23 сообщений из 23, страница 1 из 1
14.10.2002, 11:54:16
    #32057875
nandji
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
Люди поделитесь опытом.
Кто как хранит суммы в накладной?
Как обеспечиваете целостность суммы?
Какие есть мысли по поводу применения для контроля целостности триггеров.
Есть ли смысл ипользовать вычисляемые поля?
...
Рейтинг: 0 / 0
14.10.2002, 12:26:44
    #32057893
dao
dao
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
В одной таблице заголовок накладной во второй строки накладной - а дальше на сколько фантазии (или задачи :)) ) хватит
...
Рейтинг: 0 / 0
14.10.2002, 12:30:59
    #32057896
nandji
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
интересен именно вопрос хранение сумм.
то бишь хранить ли все суммы (безндс ндс сндс нп снп) ?
и как обеспечить их адекватность количеству и цене.
интересно кто как это делает ? считает ли на клиенте, на сервере, тригерами или хп, ну вобщем вот ....
...
Рейтинг: 0 / 0
14.10.2002, 12:37:42
    #32057902
dao
dao
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
а эт уже зависит от бизнес правил...
Но нужно принять к сведению - ндс и нс -меняется -соответственно - за какое время у вас открытые накладные?
Я как делал (на 2000) - хранил всё без налогов - для оканчательной суммы высчитывал - (как щас уже точно не помню ). Была функция на входе дата - на выходе по етой дате налог (соответственно ндс и нс)
...
Рейтинг: 0 / 0
14.10.2002, 12:47:39
    #32057911
Luchkin Dmitry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
лично я планорую хранить по каждой позиции сумму без налогов, ставку НДС, ставку НП. Все остальные суммы (в т.ч. всего по документу) расчётным путём. Грубо, конечно, не совсем гибко, зато быстро и считается запросом элементарно.
...
Рейтинг: 0 / 0
14.10.2002, 13:08:12
    #32057927
nandji
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
тогда по моему не исключена ситуация , когда данные в базе будут не соответствовать распечатанному варианту накладной.
я вот думаю хранить СуммуБезНдс СуммуНдс и СуммуНП ну и ставки налогов конечно
Но меня даже больше интересует вопрос как пересчитывать эти суммы . Вычисляемые поля не катят т.к. возможна ситуация когда в приходной накладной суммы налогов не бьют на копейки .. На данный момент думаю сделать нестед тригеры которые будут считать суммы ...
то есть
if update(Kol) or update(price) => update SummaBezNds
if update(SummaBezNds) => update SummaNds
if update(SummaNds) => update SummaNp
...
Рейтинг: 0 / 0
14.10.2002, 13:11:03
    #32057930
Luchkin Dmitry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
Ситуация, когда сумма в базах не будет равна распечатанной только одна: кто-то распечатал, а потом поменял данные :)

Сумма НДС по позиции должна быть распечатана с точностью до копеек (2 знака) так же и считаться должна, сумма по документу равна сумме округлённых значений.
По-моему так. (ц) Винни-Пух
...
Рейтинг: 0 / 0
14.10.2002, 13:13:02
    #32057932
nandji
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
да вопрос про методы пересчета .... :)
...
Рейтинг: 0 / 0
14.10.2002, 13:15:27
    #32057933
Luchkin Dmitry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
может быть, конечно, однако-ж то, что я сказал, следует из того, что данные должны соответствовать напечатанному, а в напечатанном документе нельзя указывать доли копеек, сумма же по колонке НДС должна "катить". Впрочем, спрашивали как, -- я рассказал как у меня. :) успехов.
...
Рейтинг: 0 / 0
14.10.2002, 14:30:57
    #32057989
ura
ura
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
Не знаю, как у вас, в Новосибирске, а у нас в Киеве НДС считается от общей суммы накладной, а не от каждой позиции, поэтому сумма по колонке НДС может не "катить".
А что касается хранения сумм - все зависит от сложности пересчета - если нужны просто суммы сНДС,безНДС то можно написать представление/функцию, в которых вычислять суммы, а если алгоритм подсчета сложный - хранить в полях накладной и пересчитывать в триггере/процедуре...
...
Рейтинг: 0 / 0
14.10.2002, 14:39:48
    #32057993
Luchkin Dmitry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
Тогда непонятно, зачем триггеры. Завести кучу полей/связанных таблиц, в которых хранить данные. А расчитывать их исключительно программой при редактировании документа. Кто-то зашёл, что-то изменил, заложенный в программе алгоритм всё просчитал как нужно и запихал данные в соответствующие таблицы.
всё. Иль не прав я? (в сомнениях...)
...
Рейтинг: 0 / 0
14.10.2002, 14:48:16
    #32058000
ura
ura
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
Лучше пересчитывать на сервере в рамках одной транзакции - так надежнее
...
Рейтинг: 0 / 0
14.10.2002, 18:09:27
    #32058134
Bzzzzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
1. Налоги. В жизни бывает и так, и эдак. И с общей сумы, и с позиции, и с единицы. В свое время навешался вдоваль... Т.ч. конкретно рекомендую хранить и способы начисления для каждой накладной.
2. Суммы, кшно, хранить можно, но зачем? Насолить нормализации? Или в качестве контроля? Если последнее - разумнее использовать товарный отчет.
3. ИМНО. Все это привел исключительно из своего опыта, из разных контор, но со схожими сценариями. Когда начинают матответственные расходиться с бухами, и У ВСЕХ будет своя цифирь, доказывать что ты не верблюд можно только опираясь на бумаги, а не на CRC... А для этого поменьше ненужного, и побольше ограничений!
...
Рейтинг: 0 / 0
14.10.2002, 19:03:26
    #32058154
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
А что, траблы с местом на диске? Если нет, то лучше под каждое поле строки накладной завести нормальное (не вычисляемое, а нормальное) поле в таблице. И кроме того, завести отдельные поля для итогов. Что это дает?
1. Вы можете ввести в любое поле суммы вручную, если в какой-то супер-пупер маразматической ситуации бизнеслогика расчета всех расчетных полей окажется бессильной.
2. Вы сможете ввести некоторую часть полей, а остальные "попросите" вычислить ваше приложение. А когда оно это сделает, у вас опять-таки будет возможность проконтролировать ее расчет и подправить , если вы с ним не вполне согласны.
3. Вы сможете запускать расчет итоговых сумм через заданные в строчках суммы, а сможете и наоборот - получать строчки через заданную итоговую сумму.
4. Все проблемы с округлениями решаются на выбор - либо подгонкой позиций в строках, либо подгонкой итоговых сумм (зависит от того, что именно вы считаете неизменным, а что переменным).

А где и как реализовать расчет выисляемых полей - на триггерах ли, на хранимых процедурах, либо вообще на клиенте - это дело вкуса.
...
Рейтинг: 0 / 0
14.10.2002, 19:35:40
    #32058168
ura
ura
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
Суммы хранить иногда нужно для повышения быстродействия при выводе. Правда тогда приходится жертвовать быстродействием при вводе... Все определяется интенсивностью того и другого.
...
Рейтинг: 0 / 0
14.10.2002, 20:04:25
    #32058177
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
Не только быстродействием. Если у тебя время от времени:
а) Изменяется ставка НДС
б) То возникает, то исчезает, то изменяет ставку СПН
в) То возникает, то исчезает, то изменяет ставку НП
г) То появляются, то исчезают акцизы
д) Изменяются алгоритмы расчета НДС по документам на ГСМ (то ли нужно учитывать налог на ГСМ, то ли нельзя, толи включается туда налог на выбросы в окр.среду, то ли нет)
е) и т.д. и т.п.
... И, наконец, тебе нужна возможность распечатать старый документ в том виде, в каком он был, когда еще НП не было в помине, а СПН был, и не 1.5%, а 3%...

Тогда тебе от предложенной схемы ну просто никуда не деться... Алгоритмы меняются - данные остаются...
...
Рейтинг: 0 / 0
14.10.2002, 20:27:16
    #32058180
ura
ura
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
То Garya: Совершенно согласен, в таких случаях конечно хранить, а алгоритм пересчета предоставлять вводить пользователю - это будет механизм бух. проводок.
...
Рейтинг: 0 / 0
14.10.2002, 20:38:37
    #32058184
Гнездин Петр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
Согласен с Garya. Добавлю лишь, что для гарантии получения впоследствии точно такого же документа, как был выдан на печать ранее, нужно хранить также все шаблоны, по которым формируется внешний вид. А то, к примеру, довольно странно выглядят графы "номер ГТД" и "страна происхождения" в счете-фактуре 5-летней давности... А завтра введут еще "страну утилизации" :-)) -- и что тогда делать без старого шаблона?
...
Рейтинг: 0 / 0
14.10.2002, 22:46:44
    #32058192
Cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
Достали меня однажды такими проблемами. Хранилась у меня цена без НДС, количество и ставка НДС. Я

взял и стал выводить поле "Сумма НДС для единицы товара" с ТРЕМЯ знаками после запятой. Что бы

самые умные в столбик дольше складывали. Все нормально, все довольны. Ни у каких проверок

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

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

в каком формате должны быть числа. В некоторых сферах все суммы в копейках пишутся.
...
Рейтинг: 0 / 0
15.10.2002, 09:38:02
    #32058230
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
А у нас бы бухгалтерия еще долго подтверждающие документы трясла бы, пока все хвосты в полкопейки бы не закрылись... :)
...
Рейтинг: 0 / 0
15.10.2002, 10:34:52
    #32058251
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
Вот так примерно, с вычисляемыми полями, для обычной торговли, обычными товарами, для сложных случаев, описанных Garya, может не пойти.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
CREATE TABLE [primary_doc_items] (
	[id] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[primary_doc] [int] NOT NULL ,  -- ссылка на документ (заголовок)
 
	[product] [int] NOT NULL CONSTRAINT [DF_primary_doc_items_product] DEFAULT ( 0 ),  -- товар
 
	[quantity] [float] NOT NULL CONSTRAINT [DF_primary_doc_items_quantity] DEFAULT ( 1 ),  -- кол-во
 
	[price] [money] NOT NULL CONSTRAINT [DF_primary_doc_items_price] DEFAULT ( 0 ),  -- цена с НДС
 
	[nds] [decimal]( 6 ,  2 ) NOT NULL CONSTRAINT [DF_primary_doc_items_nds] DEFAULT ( 20 ),  -- ставка НДС в %
 
	[subtotal] AS (convert(money,round(([quantity] * [price]), 2 ))) ,  -- сумма с НДС
 
	[subtotal_nds] AS (convert(money,round(([quantity] * [price] * [nds] / ( 100  + [nds])), 2 ))) ,  -- сумма НДС
 
	[price_without_nds] AS (convert(money,([price] - round(([price] * [nds] / ( 100  + [nds])), 2 )))) ,  -- цена без НДС
 
	[subtotal_without_nds] AS (convert(money,round(([quantity] * ([price] - round(([price] * [nds] / ( 100  + [nds])), 2 ))), 2 ))) ,  -- сумма без НДС
 
)

А вручную корректировать - извините.
2 * 2 = 4
...
Рейтинг: 0 / 0
15.10.2002, 21:02:47
    #32058570
Cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
Для Garya. Так у нашей бухгалтерии как раз тики-тики были. Это у покупателей такие чеканутые бухи встречались, которые на калькуляторах все расчеты проверяли.
...
Рейтинг: 0 / 0
16.10.2002, 10:48:52
    #32058656
nandji
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение сумм по накладной
Как однажды сказал один мой приятель "Чувствуешь себя маленькой девочкой в темном лесу" )

2akuz: :)

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

2ura я вот тоже думаю что суммы все таки надо хранить т.к. при вводе документа оператор просто не сможет обогнать сервер а при рассчете остатков на некий момент времени тут уж все хотят чтоб нажал и готово
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хранение сумм по накладной / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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