• Ласкаво просимо на Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата.
 

Звіт "переоцінка товару"

Автор IVAN10, Березень 31, 2023, 13:27:52

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

IVAN10

Використовую звіт для переоцінки товару.
Цитата: cola78 від Грудень 15, 2021, 14:29:54Рабочий код:


   SELECT T.SKLAD_ID, T.KOLVO, T2.CENA, T2.TOVAR_ID, T2.LAST_MODIFY, T2.LAST_USER_ID, T2.CENA_TYPE_ID, T1.KOD, T1.NAME, S.NAME, T3.NAME
FROM
    ((((TOVAR_ZAL T
    INNER JOIN TOVAR_CENA_LOG T2 ON (T.TOVAR_ID=T2.TOVAR_ID))
    INNER JOIN TOVAR_NAME T1 ON (T2.TOVAR_ID=T1.NUM))
    INNER JOIN SKLAD_NAMES S ON (T.SKLAD_ID=S.NUM))
    INNER JOIN TIP T3 ON (T1.TIP=T3.NUM))
WHERE
(    T.SKLAD_ID =#склад_№#) AND
(    T2.LAST_MODIFY >='#дата_с#') AND (    T2.LAST_MODIFY <='#дата_по#')AND
(    T2.CENA_TYPE_ID =1)   
#if #выбор_да_нет_1# = 1 #then
#else
  AND T.KOLVO > 0
#endif                                       
ORDER BY T3.NAME,T1.NAME 
Також, налаштував шаблон цінників. Проблема в тому що, коли товар випадково переоцінили двічі, то і цінників буде два, з різними цінами. Як переробити звіт, чи шаблон, щоб відображалась лише остання ціна?
Ви не можете переглядати це вкладення.Ви не можете переглядати це вкладення. 

Роман?:)

Вітаю !
Пробуйте.
Буде відображатись тільки той товар який є на певному складі.Ви не можете переглядати це вкладення.

SELECT
  tn.kod,                               
  tn.name,
  tn.cena_curr_id, 
  tn.cena_out_curr_id,
  tn.tov_scancode_in,
  tn.tov_scancode,
  tc.cena,
  tc.curr_id,
  tc.last_modify,
  tcb.cena AS cena_old,
  tcb.last_modify AS last_modify_old,
  tcb.curr_id AS curr_id_old
FROM
  tovar_name tn
    JOIN tovar_zal tz ON (tz.tovar_id =  tn.num AND tz.sklad_id = #склад_№# AND tz.kolvo > 0)
    LEFT JOIN tovar_cena_log tc ON (tc.num = (SELECT FIRST 1 tc_s1.num FROM tovar_cena_log tc_s1 WHERE tc_s1.tovar_id = tn.num AND tc_s1.cena_type_id = #цена_тип_№# AND tc_s1.last_modify >= '#дата_с#' AND tc_s1.last_modify < DATEADD(1 DAY TO CAST('#дата_по#' AS TIMESTAMP)) ORDER BY tc_s1.last_modify DESC) )
    LEFT JOIN tovar_cena_log tcb ON (tcb.num = (SELECT FIRST 1 tc_s2.num FROM tovar_cena_log tc_s2 WHERE tc_s2.tovar_id = tn.num AND tc_s2.cena_type_id = #цена_тип_№# AND tc_s2.last_modify < tc.last_modify ORDER BY tc_s2.last_modify DESC) )
WHERE
#if #товар_группа_№# = 0 #then
#else
  tn.tip IN (SELECT sg.num FROM get_tovar_subgroups(#товар_группа_№#,0) sg) AND
#endif 
  tc.cena IS NOT NULL AND
  tcb.cena IS NOT NULL AND
  tc.cena != tcb.cena
ORDER BY   
  tn.#товар_сорт#
 

IVAN10


Роман?:)


IVAN10

 В принципі так. Але чомусь ваш звіт показує не весь товар, хоча він на складі є, в прихідній накладній.

Роман?:)

Звіт для відображення товарів в яких змінилась ціна. Це означає , що ціна в цих товарів не змінилась.

IVAN10

Я це розумію.
Ось скріни результатів звітів. Перший скрін - це цінник, які видає мій звіт на усі переоцінені товари по складу. Як видно, є цінники на однаковий товар. мені потрібно щоб видавало лише останню змінену ціну. Другий скрін з Вашого звіту. Зверніть увагу на товар "пш 25 чорний". Він є і там, і там. Остання ціна на нього якраз 0.65. Ваш звіт видав вірну ціну. Пробелма лише в тому що видає не всі товари.