|
|
(не показана одна промежуточная версия этого же участника) |
Строка 1: |
Строка 1: |
| [[FILL_R473_SB]] - это программа из справочника [[R266]] | | [[FILL_R473_SB]] - это программа из справочника [[R266]] |
− | Заполнить справочник R473 для СБ | + | Заполнить справочник [[R473]] для СБ |
− | = Текст =
| + | |
− | local i, sql, fld, _, mm
| + | |
− | fld := ' _0,N,1; _1,N,5; _2,D,4; _3,N,14,4; _4,N,14,4; '
| + | |
− | try
| + | |
− | _ := CreateTmpFile( fld, '_', ~IsFreeDel := true )
| + | |
− | fld := ' m1,N,5; m2,D,4; '
| + | |
− | mm := CreateTmpFile( fld, 'mm', ~IsFreeDel := true )
| + | |
− | for i := 0 to 0 // за текущий месяц
| + | |
− | sql := [ Select DANAL2, DATDOC, ] + SQLFIELD( 'PRICE1' ) + [, ] + SQLFIELD( 'ALLPRICE' ) + [ From DOCS] + RET_F_EXT( DATE(),, -i ) + [ ;
| + | |
− | Where KINDDOC = 'UTH' and LVLNUM = '2' and AMNT <> 0 and "SUM" <> 0 and DREFL1 = 'R10 ' and DANAL1 > 0 and DREFL2 = 'R08 ' ]
| + | |
− | SimpleSql( [ Insert into ] + TmpFilePath( _ ) + [( _1, _2, _3, _4 ) ] + sql, OpdataPath )
| + | |
− | next
| + | |
− | sql := [ Select _1, MAX( _2 ) From ] + TmpFilePath( _ ) + [ Group by _1 ] // максимальные даты
| + | |
− | SimpleSql( [ Insert into ] + TmpFilePath( mm ) + [( m1, m2 ) ] + sql, OpdataPath )
| + | |
− | sql := [ Update _ Set _0 = 1 From ] + TmpFilePath( _ ) + [ _ left outer join ] + TmpFilePath( mm ) + [ ON _1 = m1 and _2 = m2 ;
| + | |
− | Where m2 is not null ]
| + | |
− | SIMPLESQL( sql, temppath ) // помечаем новое сырье
| + | |
− | sql := [ Delete From ] + TmpFilePath( _ ) + [ Where _0 is null ]
| + | |
− | SIMPLESQL( sql, temppath ) // удаляем старое сырье
| + | |
− | sql := [ UPDATE ] + TmpFilePath( _ ) + [ Set _2 = '] + SQLDATE( BOY( DATE() ) ) + [' ]
| + | |
− | SIMPLESQL( sql, temppath ) // надо установить сегодняшнюю дату ( цены устанавливаются сегодня )
| + | |
− | sql := [ UPDATE ] + TmpFilePath( _ ) + [ Set _3 = ROUND( _3 * 101 / 100, 1 ), _4 = ROUND( _4 * 101 / 100, 1 ) ]
| + | |
− | SIMPLESQL( sql, temppath ) // увеличиваем цену на 1%
| + | |
− | sql := [ UPDATE R473 Set KOD_R10 = 1 From R473 left outer join ] + TmpFilePath( _ ) + [ ;
| + | |
− | ON KOD = _1 and VAR_DATE = _2 and PRICE1 = _3 and OTP_PRICE = _4 Where _2 is not null ]
| + | |
− | SIMPLESQL( sql, reflispath ) // помечаем старое сырье
| + | |
− | sql := [ Delete From R473 Where 'SYSTEM.' = 'SYSTEM.' and KOD_R10 = 1 ]
| + | |
− | SIMPLESQL( sql, reflispath ) // удаляем старое сырье
| + | |
− | sql := [ Select _1, _2, _3, _4 From ] + TmpFilePath( _ )
| + | |
− | SimpleSql( [ Insert into R473( KOD, VAR_DATE, PRICE1, OTP_PRICE ) ] + sql, reflispath )
| + | |
− | finally
| + | |
− | CLOSETABLE( mm )
| + | |
− | CLOSETABLE( _ )
| + | |
− | end
| + | |
− |
| + | |
− |
| + | |
− |
| + | |
− | // m1 код
| + | |
− | // m2 дата
| + | |
− |
| + | |
− |
| + | |
− |
| + | |
− | // _0 максимальная ли дата ( 1 - максимальная )
| + | |
− | // _1 код
| + | |
− | // _2 дата
| + | |
− | // _3 цены без НДС
| + | |
− | // _4 цены с НДС
| + | |
− | // _5
| + | |
− | // _6
| + | |
− | // _7
| + | |
− | // _8
| + | |
− | // _9
| + | |
− |
| + | |
− | // sql := [ Select DISTINCT KOD From MTUN] + RET_F_EXT( DATE(),, -1 ) + [ Where REFL = 'R08 ' ]
| + | |
− | | + | |
| = Смотрите также = | | = Смотрите также = |
| [[Полезные функции]] | | [[Полезные функции]] |
| | | |
| [[Функции Delphi]] | | [[Функции Delphi]] |