R473PRICE WO SUPPL — различия между версиями

Материал из Фабиус wiki
Перейти к: навигация, поиск
м
м
Строка 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