powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите свести остатки (поубирать копейки)
22 сообщений из 22, страница 1 из 1
Помогите свести остатки (поубирать копейки)
    #39533610
mkr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть учёт рулонов, который веду по взвешенному весу.
По бухгалтерии она может приходить как по нетто, так и по брутто, в зависимости от поставщика (храню и то и то).

Взвешенный вес преобразую в бухгалтерский простой пропорцией
Код: sql
1.
stock_transaction.amount * supply_rolls.weight_b / supply_rolls.weight)


amount - использованный вес
weight_b - "бухгалтерский" вес (нетто или брутто в зависимости от поставщика)
weight - взвешенный вес

всё в общем-то красиво, но некрасиво в оборотке... остаток начало+приход-расход <> остатку на конец (не сходятся буквально на копейки)

подскажите, как выйти на красивые остатки?
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39533614
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mkrподскажите, как выйти на красивые остатки?

Храни не только вес, но и стоимость. С которой и скидывай/накидывай копейки по необходимости.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39533622
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mkr,

Определись с дробной частью веса и округляй все до нужной величины (обычно 3 или 5 знаков после запятой). Все должно сходиться.
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39533633
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разрядность тут, конечно, не при чем - пока Вы храните движения в одной мере, а показываете в оборотке другую ("пропорциональную"), Вы не застрахованы от расхождений.
Выход - хранить оба веса прямо в движениях, и оборотку рассчитывать без всяких пропорций,
честным сложением и вычитанием.
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39533811
mkr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
стоимость хранится в бухгалтерской программе, куда выгружается всё движение.

Кот Матроскин,
Я вот тоже так и думал... Но такая изначально стояла задача, но потом вмешалась бухгалтерия.

Рулон приходит по бухгалтерии - 1500 кг. , после взвешивания он может оказаться 1600 либо 1400 (крайне редко, но бывает, как правило 1-3 кг. разницы). При использовании, мы всегда взвешиваем остаток и в бухгалтерию выгружаем "пропорциональный" использованный вес.

Из решений, можно попробовать, в складской транзакции списания всё-таки добавить бухгалтерский вес. И при расходе взвешенный вес, автоматически (в триггере) , немножко корректировать по отношению к взвешенному весу рулона, чтобы по итогу списалось в 0.
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39533821
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой БобрОпределись с дробной частью веса и округляй все до нужной величины (обычно 3 или 5 знаков после запятой). Все должно сходиться.

Не сойдется.

То есть, конечно, единообразное округление сделать необходимо. При этом расхождения будут гораздо реже, и скорее всего уберутся в 99,9%. Но при каком-то сочетании чисел единичка все равно выплывет. В общем случае - только ловить разницу (то ли в деньгах, то ли в натуральных единицах), и что-то с ней делать отдельно (то ли подсаживать в какую-то позицию, то ли формировать отдельную справку для списания).
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39533896
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mkr И при расходе взвешенный вес, автоматически (в триггере) , немножко корректировать по отношению к взвешенному весу рулона, чтобы по итогу списалось в 0.
Главное - при каждом новом списании считать текущую , а не изначальную пропорцию,
и сохранять в списании бухгалтерский вес, рассчитанный по этой пропорции - тогда все спишется правильно. А уж в триггере считать текущий вес, или просто суммировать списания - дело вкуса. Я бы это делал по аналогии с тем, как Вы узнаете текущий взвешенный остаток рулона - если считаете его в триггере, то и текущий бухгалтерский считать там же, если не храните а рассчитываете каждый раз - с бухгалтерским поступать так же
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39534043
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mkrРулон приходит по бухгалтерии - 1500 кг. , после взвешивания он может оказаться 1600 либо 1400 (крайне редко, но бывает, как правило 1-3 кг. разницы). При использовании, мы всегда взвешиваем остаток и в бухгалтерию выгружаем "пропорциональный" использованный вес.
А можно узнать что за расхождения такие?.. Обычно составляется акт и вносится фактический вес, от которого дальше все и пляшут. Это если все "по белому". В "сером" варианте учитывается немного по другому (тут уже зависит от того какую схему выбрать).
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39534058
mkr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой Бобр,
если перевес, надо ставить на учёт за счёт прибыли,
если недостача, то акт о недостаче, претензии и переписка....

обороты бумаги большие (1 раз что-то недовесят, другой - перевесят) поэтому бухгалтерия решила не париться....
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39534351
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mkr,

Ну решила вряд ли бухгалтерия. Они денег в руках не держат. Но судя по всему те кто так решил вообще не заморачивались по поводу учета. Если делать по уму то "серое" в бухгалтерию не должно попадать вообще (оседает в карманах понятно кого). По расхождениям в весе - излишек должен приходоваться отдельной "серой партией", а недостача сразу списываться в реализацию. Тогда у вас все будет красиво. Я не претендую на ... - это лишь один из нескольких вариантов.
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39534385
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mkrРулон приходит по бухгалтерии - 1500 кг. , после взвешивания он может оказаться 1600 либо 1400

Ерунда какая то... (ну если конечно это не бумага для денежных купюр) учитывать по весу...
- во-первых, такую махину три раза положить на весы по разному и получится три разных веса...
- во вторых, привезли, взвесили, оприходовали, пролежал рулон на складе неделю и уже разница в весе будет
приличная или высох или наоборот взял влагу в зависимости от микроклимата на складе... полторы тонны
даже за сутки 1-2 кг влаги взять/отдать могут легко...
- имхо биться за граммы тут и копейки смешно, нужно просто придумать механизм выравнивания остатков при расходе...
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39534403
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Была подобная заморочка на мясокомбинате.
Учет велся в тушах и килограммах.

Увольнять пришлось всех.
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39534418
mkr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой Бобр,
точно бухгалтерия, в плане учёта у нас всё прописано, это же Беларусь))

vmag,
а как ещё вести учёт, приход по весу, а расход как?

мне тоже сначала было непонятно, но по другому никак. Если рулон израсходовался на половину или на треть - писать 1/2 или 1/3 рулона?) а все усыхания или набухания списываются вместе с последним использованием рулона.

За граммы никто не борется, просто в связи с округлением в бухгалтерии постоянно остаются сопли в виде тех самых граммов на остатке...
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39534523
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mkr... но по другому никак. Если рулон израсходовался на половину или на треть - писать 1/2 или 1/3 рулона?
Рулоны можно учитывать или по весу или по метражу. Все зависит от специфики. Например листовой прокат учитывается только по весу, а метраж получается плавающим. Линолеум только по метражу (с плавающим весом). Ну и т.д. Вы там определитесь в чем учитывать вашу продукцию.
Насчет расхождений по приходу я давал вариант выше, но в зависимости от специфики могут быть и другие варианты.
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39534528
mkr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой Бобр,
Я же писал, только по весу
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39534534
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mkrЗлой Бобр,
Я же писал, только по весу
А отгружаете по весу или по метражу с пересчетом веса?
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39534569
vborets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой Бобр,

Последнюю операцию списания проводите без всяких пропорций -по фактическому бухгалтерскому остатку.
На складе остаток в 1-2 кг сжечь :-)
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39534624
mkr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой Бобр,
списываем исключительно на производство
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39534707
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mkr Злой Бобр,
списываем исключительно на производство
Ну тогда все намного проще. Вам нужно списывать как базу не складской учет, а бухгалтерский. Под него уже потом списывать складской факт. Но данные бухгалтерии и склада у вас никогда не сойдутся. Сочувствую кладовщику и бухгалтеру который тянет на себе этот гемор.
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39534778
mkr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
CREATE OR ALTER TRIGGER WP_STOCK_TRANSACTION_BIU0 FOR WP_STOCK_TRANSACTION
ACTIVE BEFORE INSERT OR UPDATE POSITION 0
AS
declare variable weight numeric(15, 2);
declare variable weight_buh numeric(15, 2);
declare variable amount_use numeric(15, 2);
declare variable amount_buh numeric(15, 2);

BEGIN
  SELECT
    wp_supply_rolls.weight,
    CASE wp_paper.acc_in_buh
      WHEN 0 THEN wp_supply_rolls.weight_netto
      WHEN 1 THEN wp_supply_rolls.weight_brutto
    END weight_buh
  FROM
    wp_supply_rolls
  LEFT JOIN wp_paper ON wp_paper.id = wp_supply_rolls.paper
  WHERE
    wp_supply_rolls.id = new.roll_no
  INTO
    :weight,
    :weight_buh;


  IF (new.amount = :weight) THEN
    /* использовали рулон за раз*/
    new.amount_buh = weight_buh;
  ELSE BEGIN
    /* просуммируем движения по данному рулону*/
    SELECT
      sum(coalesce(wp_stock_transaction.amount, 0)),
      sum(coalesce(wp_stock_transaction.amount_buh, 0))
    FROM
      wp_stock_transaction
    WHERE
      wp_stock_transaction.roll_no = NEW.roll_no
    INTO
      :amount_use,
      :amount_buh;

    IF (:amount_use + new.amount = weight) THEN
      /* крайнее использование рулона*/
      /* вычислим остаток */
      new.amount_buh = weight_buh - amount_buh;
    ELSE
      /* посчитаем пропорциональный вес */
      new.amount_buh = new.amount * weight_buh / weight;
  END
END
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39534783
mkr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
триггер перед вставкой/обновлением.

вроде как всё красиво получается.
...
Рейтинг: 0 / 0
Помогите свести остатки (поубирать копейки)
    #39535899
mkr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
после сверки расчётных остатков,
в первый день - полёт нормальный.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите свести остатки (поубирать копейки)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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