Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите как рассчитать средную себестоимость товара? / 25 сообщений из 35, страница 1 из 2
27.12.2015, 23:39
    #39138978
mr.Ulugbek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
Привет всем
Помогите как рассчитать себестоимость товара
Пример

1)Поступило ручка 10 шт по цене 20 руб Себестоимость товара 20
2)Продали ручка 4 шт по цене 30 руб

3)Поступило ручка 10 шт по цене 15 руб здесь как посчитать себестоимость?
4)Продали товар 4 шт по цене 30 руб


Как мне надо узнать себестоимость продаж?

Заранее благодарен
...
Рейтинг: 0 / 0
28.12.2015, 01:04
    #39138993
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
mr.Ulugbek,

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

Если учетной политикой предусмотрено применение метода средневзвешенной себестоимости, то:

p 1 = (C 0 + C 1 ) / (Q 0 + q 1 )

где:
p 1 = новое значение ср-взвешенной цены за 1 единицу товара, которое будет после оприходования новой партии;
C 0 = значение общей стоимости остатка товара, которое было _до_ поступления новой партии;
C 1 = значение общей стоимости товара _в_ данной партии
Q 0 = общее количество остатка товара, которое было _до_ поступления новой партии;
Q 1 = количество товара _в_ данной партии.

Значение себестоимости "X" единиц товара, которые были продано по цене p 1 (т.е. _после_ оприходования), есть: S x = p 1 * Q x

Для вашего примера будет так:

p1 = 20 / 10 = 2.0000;
s1 = 2.0000 * 4 = 8 - это себестоимость проданного товара; (30/10) * 4 = 12 - это розничная выручка;
остаток товара после продажи:
1) в количественном выражении: Q0 = 10-4 = 6 шт
2) в рублевом: S0 = 20 - 8 = 16 руб
3) новый приход: Q1=10 шт на сумму S1=15 руб - подставляем в формулу:
p1 = (S0+S1) / (Q0+Q1) = (16+15)/(6+10) = 31/16 = 1.9375 - это новое значение ср-взвешенной цены за 1 единицу товара, которое будет после оприходования новой партии; общее значение остатка на складе станет p1 * (Q0+Q1) = 31 руб - это ответ на ваш вопрос в п. "3)".
4) продали 4 штуки: s1 = 1.9375 * 4 = 7.75 руб - это себестоимость проданного товара; а ваши 30 руб - это розничная выручка.
...
Рейтинг: 0 / 0
28.12.2015, 10:11
    #39139109
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
mr.UlugbekПомогите как рассчитать себестоимость товара
Таблоидучетной политикой предусмотреноОбратитесь к своему главбуху, как прописано в вашей учетной политике, так и считайте.
...
Рейтинг: 0 / 0
28.12.2015, 11:01
    #39139135
DBConstructor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
mr.Ulugbek, в общем и целом Таблоид вам правильно ответил. Один ньюанс - то, что вы считаете, это средняя цена приобретения для складского остатка, в стоимости которого не учтены операционные расходы.
...
Рейтинг: 0 / 0
28.12.2015, 14:53
    #39139352
mr.Ulugbek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
Таблоид
Спасибо за помощь
Еще один вопрос подскажите как лучше хранить эти себестоимости товаров? или селектом можно?

Таблица примерно стандартный
1)Таблица Товары
ИД
Наименование
Фото
Штрихкод



1)Таблица Шапка документ

Тип операция (приход,расход,корректировка)
номер документа
Дата
Откуда
Куда
Проведен (да/нет)


2)Таблица перечень товаров

ИД
ИД Документа
ИД Товара
Количество
Закупочная цена

Достаточно ли селектом все вытащит на любую дату из этих таблиц
Общая выручка
Общая себестоимости продаж
Прибиль?

Заранее благодарен
...
Рейтинг: 0 / 0
28.12.2015, 15:00
    #39139360
mr.Ulugbek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
Сделать отделную таблицу для хранение
или селектом с примененим оконные функции из Firebird 3 ки можно все это рассчитать на любую дату?
...
Рейтинг: 0 / 0
28.12.2015, 15:09
    #39139381
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
mr.Ulugbek,

на любую дату остаток посчитать по этим таблицам можно, но при их увеличении это начнёт тормозить.
Вам необходима еще таблица т.н. "опорных остатков", т.е. тех, что были, например, на некоторые промежуточные ("опорные" даты) - скажем, на начало каждого квартала или каждого месяца.
...
Рейтинг: 0 / 0
28.12.2015, 16:41
    #39139489
DBConstructor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
mr.Ulugbek, если вы закрываете месяц (делаете проведение), то далее вы можете опираться на итог дебета счета, на котором у вас отражен складской остаток и далее делать подсчет от последнего закрытого месяца. Собственно, так делает большинство бухгалтерских программ.
...
Рейтинг: 0 / 0
28.12.2015, 17:15
    #39139529
mr.Ulugbek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
Без дополнительных таблиц можете пример селект дать как считается себестоимоисть
пока читаю новых фич Firebird 3 over partition оконные функции..
...
Рейтинг: 0 / 0
28.12.2015, 18:01
    #39139562
DBConstructor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
mr.Ulugbek, в каком смысле "без дополнительных таблиц"?
Если вы делаете проведение бухгалтерских документов за месяц (к примеру, ТТН), то в вашей базе, как минимум, должны присутствовать таблицы плана счетов бухгалтерского учета и таблицы с итогами дебетовых и кредитовых счетов проведенных документов.
...
Рейтинг: 0 / 0
28.12.2015, 18:02
    #39139565
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
mr.Ulugbekпока читаю новых фич Firebird 3 over partition оконные функции..
оконные функции будут точно так же молотить весь результат, если он не будет храниться. Так что, улучшения производительности тут не будет.
Не знаю, откуда у вас взялась идея, что при той же структуре и объемах данных, новый sql будет "побыстрее". Есть методы доступа, и они определяют скорость выполнения запросов. А оконные функции не добавляют новых методов доступа.
...
Рейтинг: 0 / 0
28.12.2015, 18:07
    #39139569
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
> Без дополнительных таблиц можете пример селект дать как считается себестоимоисть
> пока читаю новых фич Firebird 3 over partition оконные функции..

а зачем вам для подсчета остатков оконные ф-ции ? вам же агрегированные данные нужны только по ИД изделия - так или нет ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select
   d.ware_id -- "ИД Товара"
  ,sum( d.qty * iif( h.optype = "+", 1, -1) ) -- для приходов суммируем, для расходов вычитаем
    as amount_remainder
  ,sum (d.price_purchase -- закупочная цена (здесь это должна быть СТОИМОСТЬ ЗА ВСЁ количество по строке)
     * iif( h.optype = "+", 1, -1) -- для приходов суммируем, для расходов вычитаем
    ) as cost_remainder_in_purchasing_price
from doc_data d  -- "перечень товаров"
join doc_list h -- "Шапка документ" 
    on d.doc_id = h.id
where 
    h.проведен = "да" 
    and h.date <= :a_interested_date -- на какую дату считаем остатки (включая операции за эту дату)
group by 
   d.ware_id;
...
Рейтинг: 0 / 0
28.12.2015, 18:07
    #39139570
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
kdvА оконные функции не добавляют новых методов доступа
sliding window внутри буферизированного набора - это в некотором роде новый метод доступа
...
Рейтинг: 0 / 0
28.12.2015, 18:11
    #39139574
DBConstructor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
dimitr, не просветите в двух словах - какой принцип заложен в скользящее окно? В чем соль?
P.S. сори за офтоп.
...
Рейтинг: 0 / 0
28.12.2015, 18:34
    #39139589
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
DBConstructor,

LR 3.0Есть ещё одно важное понятие, связанное с оконными функциями: для каждой строки
существует набор строк в её разделе, называемый рамкой окна (кадры окна). По умолчанию, с
указанием ORDER BY рамка состоит из всех строк от начала раздела до текущей строки и строк,
равных текущей по значению выражения ORDER BY. Без ORDER BY рамка по умолчанию
состоит из всех строк раздела.
Таким образом, для стандартных агрегатных функций, предложение ORDER BY заставляет
возвращать частичные результаты агрегации по мере обработки записей.

В настоящее время управлять рамкой окна в Firebird нельзя. Т.е. нельзя задавать что-то вроде
ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING или другие рамки.

Если есть ORDER BY окно всегда такое
RANGE UNBOUNDED PRECEDING AND CURRENT ROW (т.е. от 1 до текущего значения в ORDER BY и всех равных ему)
если ORDER BY не указано
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING (всё окно)
...
Рейтинг: 0 / 0
28.12.2015, 18:40
    #39139595
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
DBConstructor,

в заранее материализованном наборе можно сколько угодно дергать "курсор" туда-обратно, без повторного физического обращения к данным. Такой подход используется только в хеш-джойнах и при использовании оконных функций. Другие методы доступа все читают линейно и однократно.
...
Рейтинг: 0 / 0
28.12.2015, 18:47
    #39139597
DBConstructor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
Симонов Денис, спасибо!
В общем и целом суть ясна, но полагаю, подобного эффекта можно и сейчас (на v2.5) добиться через скан курсора в
Код: plsql
1.
2.
3.
4.
5.
6.
FOR
    SELECT ...
      FROM ...
      ORDER BY ...
      INTO: ...
  DO


при скане курсора проверяя на изменение значения уточняющих полей в предложении ORDER BY и периодически выплевывая полученные данные из процедуры в результирующий набор через SUSPEND. Или я не прав?
...
Рейтинг: 0 / 0
28.12.2015, 18:49
    #39139598
DBConstructor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
dimitr, внесли окончательную ясность в вопрос. Спасибо!
...
Рейтинг: 0 / 0
28.12.2015, 18:59
    #39139602
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
DBConstructor,

можно-то можно, только когда окон несколько и они с различными сортировками и секциями это становится затруднительно

Код: sql
1.
2.
3.
4.
select
  sum(t.w) over(order by t.bydate asc) as W1,
  sum(t.w) over(order by t.bydate desc) as W2
from t
...
Рейтинг: 0 / 0
28.12.2015, 19:06
    #39139603
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
тем не менее, я считаю, что мысль автора топика "а вот я сейчас заюзаю оконные функции из 3.0, и все станет хорошо", развеяна.
...
Рейтинг: 0 / 0
28.12.2015, 19:08
    #39139604
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
оконные функции автору однозначно не помогут.
...
Рейтинг: 0 / 0
28.12.2015, 21:17
    #39139640
mr.Ulugbek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
DBConstructormr.Ulugbek, в каком смысле "без дополнительных таблиц"?
Если вы делаете проведение бухгалтерских документов за месяц (к примеру, ТТН), то в вашей базе, как минимум, должны присутствовать таблицы плана счетов бухгалтерского учета и таблицы с итогами дебетовых и кредитовых счетов проведенных документов.

Дебет кредит мне не надо
У меня простой маленький учет товаров Закупка,Продажа

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

ИД
Дата
ИДТовара
Себестоимость товар
ИДСклад (магазин итд)
Начал Остаток
Приход
Уход
КонецОстаток
...
Рейтинг: 0 / 0
28.12.2015, 21:20
    #39139642
mr.Ulugbek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
Да по ИД товара мне надо узнать себестоимость товара
Здесь я не вижу вашу формулу который вы дали..




Таблоид> Без дополнительных таблиц можете пример селект дать как считается себестоимоисть
> пока читаю новых фич Firebird 3 over partition оконные функции..

а зачем вам для подсчета остатков оконные ф-ции ? вам же агрегированные данные нужны только по ИД изделия - так или нет ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select
   d.ware_id -- "ИД Товара"
  ,sum( d.qty * iif( h.optype = "+", 1, -1) ) -- для приходов суммируем, для расходов вычитаем
    as amount_remainder
  ,sum (d.price_purchase -- закупочная цена (здесь это должна быть СТОИМОСТЬ ЗА ВСЁ количество по строке)
     * iif( h.optype = "+", 1, -1) -- для приходов суммируем, для расходов вычитаем
    ) as cost_remainder_in_purchasing_price
from doc_data d  -- "перечень товаров"
join doc_list h -- "Шапка документ" 
    on d.doc_id = h.id
where 
    h.проведен = "да" 
    and h.date <= :a_interested_date -- на какую дату считаем остатки (включая операции за эту дату)
group by 
   d.ware_id;
...
Рейтинг: 0 / 0
28.12.2015, 22:07
    #39139655
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
mr.UlugbekДа по ИД товара мне надо узнать себестоимость товара
Здесь я не вижу вашу формулу который вы дали..Себестоимость имеющегося остатка на интересующую дату - вот она:...
Код: plaintext
1.
2.
  ,sum (d.price_purchase -- закупочная цена (здесь это должна быть СТОИМОСТЬ ЗА ВСЁ количество по строке)
     * iif( h.optype = "+", 1, -1) -- для приходов суммируем, для расходов вычитаем
    ) as cost_remainder_in_purchasing_price
...
А формулу надо впихивать в after-update триггер на вашу таблицу "Шапка документа": если новое значение в поле "Проведен" этой таблицы стало равным "Да", то курсором пройтись по таблице "Перечень товаров" (с отбором строк только для данного документа) и для каждого изделия уже рассчитывать новое значение средневзвешенной цены. С записью в поле "Цена средняя" вашей "Таблицы товаров" (вы это поле не указали, но оно вам понадобится, т.к. при оформлении списаний из него надо будет брать это значение для расчета стоимости расхода в закупочных ценах).
...
Рейтинг: 0 / 0
28.12.2015, 22:27
    #39139667
mr.Ulugbek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите как рассчитать средную себестоимость товара?
Таблоидmr.UlugbekДа по ИД товара мне надо узнать себестоимость товара
Здесь я не вижу вашу формулу который вы дали..Себестоимость имеющегося остатка на интересующую дату - вот она:...
Код: plaintext
1.
2.
  ,sum (d.price_purchase -- закупочная цена (здесь это должна быть СТОИМОСТЬ ЗА ВСЁ количество по строке)
     * iif( h.optype = "+", 1, -1) -- для приходов суммируем, для расходов вычитаем
    ) as cost_remainder_in_purchasing_price
...
А формулу надо впихивать в after-update триггер на вашу таблицу "Шапка документа": если новое значение в поле "Проведен" этой таблицы стало равным "Да", то курсором пройтись по таблице "Перечень товаров" (с отбором строк только для данного документа) и для каждого изделия уже рассчитывать новое значение средневзвешенной цены. С записью в поле "Цена средняя" вашей "Таблицы товаров" (вы это поле не указали, но оно вам понадобится, т.к. при оформлении списаний из него надо будет брать это значение для расчета стоимости расхода в закупочных ценах).

Понятно спасибо вам
Добавлю тогда в таблицу товара несколько полей (цена средняя),продажная цена по умолчанию,закупочная цена по умолчанию, скидка
Создам для таблицу товаров аудит лог через IBExpert для учета лога что было что стало итд

Попробую спасибо вам огромное
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите как рассчитать средную себестоимость товара? / 25 сообщений из 35, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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