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

Отчет остатков в доларах

Автор scalemodel, Березень 19, 2013, 16:40:31

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

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

scalemodel

Помогите, пожалуйста.:
Отчёт - Остатки на складе:фильтр по поставщику.
Надо:
1.Чтобы не выводились нулевые остатки.
2.Выводить остатки в ценах прихода - доллар (так выводит в гривне).

Creat

1) WHERE     
  s.num = t.num AND
  t.tip = gr.num AND     
  t.visible = 1 AND   
  tz.sklad_id = #склад_№# AND
  s.num = tz.tovar_id AND
  tz.last_post_id = #поставщик_№# AND
  z_kolvo<>0
Добавить в запрос в конце AND
  z_kolvo<>0
2. Методом тыка t.#цена_тип_поле#/c.kurs 
убрать умно жение деление на курс и останется наверное в валюте. Попробуйте. Или ждите пока появится TheOk.

TheOK

#2
Creat все правильно написал.
Только неравенство в SQL указывается как !=, где "!=" значит "не равно"
Если в справочнике все в нужной валюте, значит не надо применять перевод по курсу в основную валюту (т.е. делить на курс не надо), следовательно можно использовать   t.#цена_тип_поле# , я записал это как   t.#цена_тип_поле# as cena,     чтобы не изменять шаблон, а так же при смене параметра тип цены не выбивало в отчете ошибку (скорее всего так бы было)
Запрос прикрепляю здесь. В шаблоне, возможно, придется изменить некоторый текст.
Предполагается, что ВСЕ цены в справочнике у вас в одной валюте иначе выведет все валюты вместе (т.е. циферки будут в разной валюте, что является злом).
Если все нужно переводить в одну валюту, это сложнее.

SELECT
  s.num,     
  t.name, 
  t.kod, 
  CASE     
  WHEN (c.how_to_calc = 1) THEN t.#цена_тип_поле#/c.kurs     
  WHEN (c.how_to_calc = 0) THEN t.#цена_тип_поле#*c.kurs     
  END AS cena_osn_val,
  t.#цена_тип_поле# as cena,     
  t.ed_izm,     
  z_kolvo,     
  ((t.#цена_тип_поле#*s.z_kolvo)/#валюта_курс#) AS z_suma,     
  gr.num,     
  gr.group_name     
FROM     
  view_sklad_zal(#склад_№#,'#дата#') s,
  tovar_name t     
      LEFT JOIN currency c ON t.#цена_тип_поле_пр#_curr_id = c.num,     
  tovar_zal tz,
  print_view_sklad(#товар_группа_№#,#склад_№#) gr   
WHERE     
  s.num = t.num AND
  t.tip = gr.num AND     
  t.visible = 1 AND   
  tz.sklad_id = #склад_№# AND
  s.num = tz.tovar_id AND
  tz.last_post_id = #поставщик_№#
  and z_kolvo!=0
ORDER BY     
  gr.group_name,     
  t.name
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

TheOK

Лучше используйте этот запрос (см. ниже).
Добавьте в отчет параметр Валюта. Выведутся данные только по выбранной валюте (предохранитесь от возможных ошибок)

SELECT
  s.num,     
  t.name, 
  t.kod, 
  CASE     
  WHEN (c.how_to_calc = 1) THEN t.#цена_тип_поле#/c.kurs     
  WHEN (c.how_to_calc = 0) THEN t.#цена_тип_поле#*c.kurs     
  END AS cena_osn_val,
  t.#цена_тип_поле# as cena,     
  t.ed_izm,     
  z_kolvo,     
  ((t.#цена_тип_поле#*s.z_kolvo)/#валюта_курс#) AS z_suma,     
  gr.num,     
  gr.group_name     
FROM     
  view_sklad_zal(#склад_№#,'#дата#') s,
  tovar_name t     
      LEFT JOIN currency c ON t.#цена_тип_поле_пр#_curr_id = c.num,     
  tovar_zal tz,
  print_view_sklad(#товар_группа_№#,#склад_№#) gr   
WHERE     
  s.num = t.num AND
  t.tip = gr.num AND     
  t.visible = 1 AND   
  tz.sklad_id = #склад_№# AND
  s.num = tz.tovar_id AND
  tz.last_post_id = #поставщик_№#
  and z_kolvo!=0
  and t.#цена_тип_поле_пр#_curr_id=#валюта_№# 
ORDER BY     
  gr.group_name,     
  t.name
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

scalemodel

#4
Спасибо за помощь. Хочу уточнить, в справочнике есть товары и в долларах и в гривне, но нет такого, чтобы у одного поставщика была и гривна и доллар. А вообще, я лучше вышлю вам файл с тем что я хотел бы видеть.Короче закажу у вас пару отчётов.

TheOK

В таком случае, последний запрос то, что нужно. Просто для одного поставщика выставляете валюту доллар, для другого гривна (иногда можно перепроверить себя, выставив другие параметры, не проявится ли какой-то товар-лазутчик).
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]