Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Партионный учет - реализация  [new]
ilshatkin
Member

Откуда:
Сообщений: 177
Необходимо реализовать партионный учет.
Есть идея сделать так:

Будет таблица в которой будут помещаться партии при оприходовании

id_oprih id_sklad id_tovar kolvo summa
1176101000
2176202500


таким образом записалось бы два оприходования товара '76' по 10 шт и 20 шт с соответствующими себестоимостями.

допустим выбран метод списания FIFO

Вот например, будет продажа 15 штук и мне нужно в этой таблице убрать с оприходования '1' 10 штук и 5 с оприходования '2'. Логика думаю понятна.

Каким образом можно прописать такую логику.

Буду очень признателен за помощь в решении задачии.
16 май 14, 02:59    [16024683]     Ответить | Цитировать Сообщить модератору
 Re: Партионный учет - реализация  [new]
Guf
Member

Откуда: Новосибирск
Сообщений: 658
ilshatkin,

А у Вас каждую сделку надо обрабатывать сразу?
У меня есть реализация для одного пользователя пачки сделок за прошедший период. Если у Вас сделки обрабатываются в моменте, то придется крепко подумать, возникают всякие эффекты связанные с параллельным доступом.
16 май 14, 07:20    [16024803]     Ответить | Цитировать Сообщить модератору
 Re: Партионный учет - реализация  [new]
ilshatkin
Member

Откуда:
Сообщений: 177
Guf
ilshatkin,

А у Вас каждую сделку надо обрабатывать сразу?
У меня есть реализация для одного пользователя пачки сделок за прошедший период. Если у Вас сделки обрабатываются в моменте, то придется крепко подумать, возникают всякие эффекты связанные с параллельным доступом.

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

Подскажите, пожалуйста, как реализовали Вы.
16 май 14, 12:47    [16026699]     Ответить | Цитировать Сообщить модератору
 Re: Партионный учет - реализация  [new]
ПрестарелыйЗаяц
Guest
Не выдумывайте свой велосипед, посмотрите как это сделано в любой учетной системе.
Все на самом деле просто.

1) Выбираете остатки на дату
2) Сортируете в порядке ФИФО/ЛИФО - дата создании партии.
3) Списываете.

Механизмов реализации массу, равно как и проблем которые вы будете выгребать, вроде отрицательных остатков и прочее.
16 май 14, 13:14    [16026950]     Ответить | Цитировать Сообщить модератору
 Re: Партионный учет - реализация  [new]
ilshatkin
Member

Откуда:
Сообщений: 177
ПрестарелыйЗаяц
Не выдумывайте свой велосипед, посмотрите как это сделано в любой учетной системе.
Все на самом деле просто.

1) Выбираете остатки на дату
2) Сортируете в порядке ФИФО/ЛИФО - дата создании партии.
3) Списываете.

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


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

вот мне как раз не понятно как списывать? в моем примере, чтобы алгоритм понял что надо всю первую партию и часть со второй.
16 май 14, 14:08    [16027470]     Ответить | Цитировать Сообщить модератору
 Re: Партионный учет - реализация  [new]
ПрестарелыйЗаяц
Guest
Да как угодно, например:

1) вы можете получить рекордсет с выборкой и обходить рекордсет на клиенте списывая.
2) Можно пройти курсором в запросе формируя таблицу того, что можно списать.
3) Либо построить выборку отдельным запросом.

Выбирайте какой вариант предпочитаете.
16 май 14, 15:42    [16028112]     Ответить | Цитировать Сообщить модератору
 Re: Партионный учет - реализация  [new]
ПрестарелыйЗаяц
Guest
Вопрос вдогонку, не проще ли использовать готовый инструмент, тот же 1С ?
16 май 14, 15:46    [16028134]     Ответить | Цитировать Сообщить модератору
 Re: Партионный учет - реализация  [new]
ilshatkin
Member

Откуда:
Сообщений: 177
ПрестарелыйЗаяц
Да как угодно, например:

1) вы можете получить рекордсет с выборкой и обходить рекордсет на клиенте списывая.
2) Можно пройти курсором в запросе формируя таблицу того, что можно списать.
3) Либо построить выборку отдельным запросом.

Выбирайте какой вариант предпочитаете.


ага, спасибо, сделал курсором
17 май 14, 03:08    [16030387]     Ответить | Цитировать Сообщить модератору
 Re: Партионный учет - реализация  [new]
ilshatkin
Member

Откуда:
Сообщений: 177
ПрестарелыйЗаяц
Вопрос вдогонку, не проще ли использовать готовый инструмент, тот же 1С ?

у меня свой лунопарк с блэкджеком и дамами))
17 май 14, 03:09    [16030389]     Ответить | Цитировать Сообщить модератору
 Re: Партионный учет - реализация  [new]
ssserge
Member

Откуда: Одесса
Сообщений: 401
А вопрос, между прочим, очень актуальный. Лет 10 или болше назад работал в очень крупной фирме. И когда, например, человек покупал 1000 саморезов, я ему в накладной мог сделать с пяток позиций по одной отпускной цене;)
ЗЫ. А сам "мышкой" ковырял, выбирая товар... Благо дело, тогда про ФИФО/ЛИФО никто не задумывался.

ЗЫ. А реально ли сделать спиание товара "на автомане", учитиывая ФИФО/ЛИФО?
Чтоб оператору не париться, пардон?
17 май 14, 05:12    [16030498]     Ответить | Цитировать Сообщить модератору
 Re: Партионный учет - реализация  [new]
ilshatkin
Member

Откуда:
Сообщений: 177
ssserge
А вопрос, между прочим, очень актуальный. Лет 10 или болше назад работал в очень крупной фирме. И когда, например, человек покупал 1000 саморезов, я ему в накладной мог сделать с пяток позиций по одной отпускной цене;)
ЗЫ. А сам "мышкой" ковырял, выбирая товар... Благо дело, тогда про ФИФО/ЛИФО никто не задумывался.

ЗЫ. А реально ли сделать спиание товара "на автомане", учитиывая ФИФО/ЛИФО?
Чтоб оператору не париться, пардон?


Не очень понял Вашу мысль, но как бы в той ветке я как раз таки и советуюсь как на автомате делать списания, учитывая ФИФО/ЛИФО.

Столкнулся со следующим тонким местом при партионном списывании при обрабатывании сделки сразу. Если проводить операцию задним числом, то если уже были проведены другие операции после даты проводимой операции, то списание партий будет не корректным в плане последовательности. Можно написать компенсирующую функцию, которая бы проверяла такой случай и перераскидывала списания, но как то пока не охота это делать.
17 май 14, 22:29    [16031710]     Ответить | Цитировать Сообщить модератору
 Re: Партионный учет - реализация  [new]
ilshatkin
Member

Откуда:
Сообщений: 177
так же еще, при ведении себестоимости простым средне-арифметическим методом можно делать списание количества и любой себестоимости, то при партионным придется разделить списания на списание по количеству с соответствующей себестоимостью из партий и переоценка стоимости остатков
17 май 14, 22:34    [16031715]     Ответить | Цитировать Сообщить модератору
 Re: Партионный учет - реализация  [new]
ПрестарелыйЗаяц
Guest
У последовательности есть признак актуальности. Когда списывают данные предвдудщим числом, точка актуальности перемещается на это место. Позже регламентным заданием раз в какой то период происходит пересписание с точки актуальности и дальше.


Последний пост непонятно, что вы имеет ввиду под переоценкой стоимости остатков. Зачем вам переоценивать стоимость остатков, и как она влияет на партионный учет и списание по партиям?
17 май 14, 23:31    [16031805]     Ответить | Цитировать Сообщить модератору
 Re: Партионный учет - реализация  [new]
ilshatkin
Member

Откуда:
Сообщений: 177
ПрестарелыйЗаяц
У последовательности есть признак актуальности. Когда списывают данные предвдудщим числом, точка актуальности перемещается на это место. Позже регламентным заданием раз в какой то период происходит пересписание с точки актуальности и дальше.


Последний пост непонятно, что вы имеет ввиду под переоценкой стоимости остатков. Зачем вам переоценивать стоимость остатков, и как она влияет на партионный учет и списание по партиям?



Имел в виду, что при средне-арифметическом расчете с/с у пользователя есть свобода списания количества с любой себестоимостью, тем самым проведя своего рода переоценку оставшегося товара. Но это не стандартная штука.
19 май 14, 15:37    [16037408]     Ответить | Цитировать Сообщить модератору
 Re: Партионный учет - реализация  [new]
ПрестарелыйЗаяц
Guest
Среднеариметическая себестоимость это какая? Списание по скользящему среднему? Тогда почему меняется себестоимость и зачем переоценка? Списание должно идти не по произвольной а по скользящей средней на момент списания.
21 май 14, 00:06    [16045614]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить