R473PRICE WO SUPPL — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) м |
Hisava (обсуждение | вклад) м |
||
| Строка 2: | Строка 2: | ||
R473PRICE_WO_SUPPL(<r08_kod>, <need_date>, <prc_fld='OTP_PRICE'>) | R473PRICE_WO_SUPPL(<r08_kod>, <need_date>, <prc_fld='OTP_PRICE'>) | ||
| + | |||
| + | = Текст программы = | ||
| + | |||
| + | //Возвращает цену по заданной номенклатуре на заданную дату - поставщик/договор/прайс не существенны. | ||
| + | Parameters r08_kod, need_date, prc_fld:='OTP_PRICE' | ||
| + | Local prc_arr:={'OTP_PRICE','PRICE1','PRICE2','PRICE3'}, num:=0, tmp_arr, ss | ||
| + | if !Empty(prc_fld); num:=AScan(prc_arr,prc_fld); /*num:=max(num,1);*/ endif | ||
| + | if num!=0; prc_arr:={prc_arr[num]}; endif | ||
| + | ss:=ArrAsString(prc_arr) | ||
| + | result:=ArrCreate(len(prc_arr),0) | ||
| + | |||
| + | tmp_arr:=selectSQLToArr('select R473.VAR_DATE, R473.KOD, '+ss+' from R473, (select MAX(VAR_DATE) VAR_DATE, KOD from '+; | ||
| + | '(select VAR_DATE, KOD, '+ss+" from R473 where VAR_DATE<='"+SQLDate(need_date)+"') SS group by KOD) DD "+; | ||
| + | 'where R473.KOD='+r08_kod+' and R473.VAR_DATE=DD.VAR_DATE and R473.KOD=DD.KOD', prc_arr, ReflisPath) | ||
| + | if len(tmp_arr)!=0 | ||
| + | if len(prc_arr)=1; result:=tmp_arr[1,1]; else; result:=tmp_arr[1]; endif | ||
| + | elseif len(prc_arr)=1; result:=0 | ||
| + | endif | ||
Версия 12:58, 13 июля 2016
Возвращает цену по заданной номенклатуре на заданную дату из справочника R473
R473PRICE_WO_SUPPL(<r08_kod>, <need_date>, <prc_fld='OTP_PRICE'>)
Текст программы
//Возвращает цену по заданной номенклатуре на заданную дату - поставщик/договор/прайс не существенны.
Parameters r08_kod, need_date, prc_fld:='OTP_PRICE'
Local prc_arr:={'OTP_PRICE','PRICE1','PRICE2','PRICE3'}, num:=0, tmp_arr, ss
if !Empty(prc_fld); num:=AScan(prc_arr,prc_fld); /*num:=max(num,1);*/ endif
if num!=0; prc_arr:={prc_arr[num]}; endif
ss:=ArrAsString(prc_arr)
result:=ArrCreate(len(prc_arr),0)
tmp_arr:=selectSQLToArr('select R473.VAR_DATE, R473.KOD, '+ss+' from R473, (select MAX(VAR_DATE) VAR_DATE, KOD from '+;
'(select VAR_DATE, KOD, '+ss+" from R473 where VAR_DATE<='"+SQLDate(need_date)+"') SS group by KOD) DD "+;
'where R473.KOD='+r08_kod+' and R473.VAR_DATE=DD.VAR_DATE and R473.KOD=DD.KOD', prc_arr, ReflisPath)
if len(tmp_arr)!=0
if len(prc_arr)=1; result:=tmp_arr[1,1]; else; result:=tmp_arr[1]; endif
elseif len(prc_arr)=1; result:=0
endif