|
|
(не показано 10 промежуточных версий этого же участника) |
Строка 2: |
Строка 2: |
| Загрузить продажи из FTP | | Загрузить продажи из FTP |
| [[TAKE_FROM_FTP]]() | | [[TAKE_FROM_FTP]]() |
− | | + | [[Магазин]] "Новинка" ( 7 ) - Загрузка продаж - Из FTP |
− | = Использование =
| + | = + = |
− | [[Магазин]] "Новинка" ( 7 ) - Загрузка продаж - Из FTP | + | [[TAKE_FROM_FTP1]] |
− | = Текст = | + | |
− | local ip, aa, datas, temp_path, from_atolf, __, taskanal, fld, sql, ftp, host, port, user, pass, dest_path, i, msg, from_atolz
| + | |
− | taskanal := [[GetPrm]]( 'TASKANAL', TaskName, TaskNum )
| + | |
− | if [[Empty]]( taskanal )
| + | |
− | return
| + | |
− | endif
| + | |
− | fld := ' _0,C,50; _1,C,20; _2,C,20; _3,C,20; _4,C,20; _5,C,80; _6,C,30; _7,N,5; _8,C,30; _9,C,30; _10,N,5; _11,C,25; _13,C,25; '
| + | |
− | temp_path := Nice_Path( ExpandUNCFileName( TempPath ) )
| + | |
− | ip := InputPeriod( true )
| + | |
− | if Empty( ip )
| + | |
− | return
| + | |
− | endif
| + | |
− | try
| + | |
− | WaitMsg( 'Подготовка', msg )
| + | |
− | __ := CreateTmpFile( fld, '__', ~IsFreeDel := true )
| + | |
− | sql := [ Select PNAME, FROM_ATOL, FROM_ATOLF, TO_ATOL, TO_ATOLF, FOLDERATOL, FTP_SERVER, FTP_PORT, FTP_LOGIN, FTP_PASS, KOD, FROM_ATOLZ, TO_ATOLZ ;
| + | |
− | From R603 Where R20_KOD = ] + taskanal
| + | |
− | SimpleSql( [ Insert into ] + TmpFilePath( __ ) + [( _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _13 ) ] + sql, ReflisPath )
| + | |
− | ( __ )->( DbGoTop() )
| + | |
− | while !( __ )->( eof() )
| + | |
− | // _2 флаг импорта
| + | |
− | from_atolf := atr( ( __ )->_2 )
| + | |
− | aa := { '$$$TRANSACTIONSBYDATERANGE' }
| + | |
− | datas := StoD( ip[1] ) + '; ' + StoD( ip[2] )
| + | |
− | Aadd( aa, datas )
| + | |
− | WriteTxtFile( aa, from_atolf, temp_path, true )
| + | |
− | // _5 папка обмена
| + | |
− | dest_path := atr( ( __ )->_5 )
| + | |
− | if Left( dest_path, 1 ) = '/'
| + | |
− | dest_path := SUBTOKEN( dest_path,, '/' )
| + | |
− | endif
| + | |
− |
| + | |
− | host := atr( ( __ )->_6 )
| + | |
− | port := ( __ )->_7
| + | |
− | user := atr( ( __ )->_8 )
| + | |
− | pass := atr( ( __ )->_9 )
| + | |
− |
| + | |
− | try
| + | |
− | ftp := FTPOPEN( host,, user, pass, ~PassiveMode := true )
| + | |
− | // очищаем папку
| + | |
− | aa := FTPLIST( ftp,, '/' + dest_path + '/*.*' )
| + | |
− | if !IsEmpty( aa )
| + | |
− | for i := 1 to len( aa )
| + | |
− | FTPDELETE( ftp, '/' + dest_path + '/', aa[i] )
| + | |
− | next
| + | |
− | endif
| + | |
− | FTPPUT( ftp, temp_path + from_atolf, '/' + dest_path + '/', from_atolf )
| + | |
− | // в этот момент Атол начинает выгружать продажи и удалит файл from_atolf как только выгрузит
| + | |
− | aa := { from_atolf }
| + | |
− | i := 0
| + | |
− | while Ascan( aa, from_atolf ) > 0 and i < 10
| + | |
− | i := i + 1
| + | |
− | WaitMsg( 'Выгрузка продаж ( ' + a_s( i ) + ' ) ' + atr( ( __ )->_0 ), msg )
| + | |
− | Pause( 10000 )
| + | |
− | aa := FTPLIST( ftp,, '/' + dest_path + '/*.*' )
| + | |
− | end
| + | |
− | from_atolz := atr( ( __ )->_11 )
| + | |
− |
| + | |
− | try
| + | |
− | FTPGET( ftp, '/' + dest_path + '/' + from_atolz, temp_path + '/' + from_atolz + ( __ )->_10 )
| + | |
− | except
| + | |
− | end
| + | |
− |
| + | |
− | finally
| + | |
− | FTPCLOSE( ftp )
| + | |
− | end
| + | |
− |
| + | |
− | ( __ )->( DbSkip() )
| + | |
− | end
| + | |
− | finally
| + | |
− | CloseTable( __ )
| + | |
− | HideMsg( msg )
| + | |
− | end
| + | |
− |
| + | |
− | Message( 'Загрузка завершена успешно' )
| + | |
− |
| + | |
− | // запрос периода
| + | |
− | // удаление старой выгрузки
| + | |
− |
| + | |
− | // _0 Наименование
| + | |
− | // _1 файл импорта rep
| + | |
− | // _2 флаг импорта
| + | |
− | // _3 файл экспорта srp
| + | |
− | // _4 флаг экспорта
| + | |
− | // _5 папка обмена
| + | |
− | // _6 FTP-сервер
| + | |
− | // _7 порт
| + | |
− | // _8 логин
| + | |
− | // _9 пароль
| + | |
− | // _10 код
| + | |
− | // _11 Файл импорта rep в архиве
| + | |
− | // _13 Файл экспорта spr в архиве
| + | |
| | | |
| = Смотрите также = | | = Смотрите также = |