NAT 09 12 — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) (Новая страница: «NAT_09_12 - это программа из справочника R266») |
Hisava (обсуждение | вклад) м |
||
(не показано 9 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | NAT_09_12 - это программа из справочника [[R266]] | + | [[NAT_09_12]] - это программа из справочника [[R266]] |
+ | Добавление заказа на перемещение | ||
+ | [[NAT_09_12]]( r466_kod, id, ga, numdoc, docs1_danal1 ) | ||
+ | |||
+ | Вызывается из документа [[NAT]] ( уровень 2 ) по CTRL+F10 | ||
+ | |||
+ | r466_kod - завод, который производит продукцию | ||
+ | |||
+ | id - дата | ||
+ | |||
+ | ga - область, откуда мы вызываем функцию NAT_09_12 | ||
+ | |||
+ | numdoc - номер заказа, если он уже был добавлен ранее | ||
+ | |||
+ | docs1_danal1 - код филиала, который будет отгружать продукцию | ||
+ | = Текст = | ||
+ | parameters r466_kod, id, ga, numdoc, docs1_danal1 | ||
+ | |||
+ | local sql, aa, num, fld, r20_kod, r20_name, ArValues, zak1 | ||
+ | |||
+ | r20_kod := [[SeekRef]]( '[[R466]]', r466_kod, 'R20_KOD', 1 ) | ||
+ | r20_name := [[RealName]]( '[[R20]]', r20_kod ) | ||
+ | |||
+ | // NAT | ||
+ | sql := [ Select DANAL2, NATTR4 ; | ||
+ | From DOCS] + Ret_f_ext( ( ga )->DATDOC ) + [ ; | ||
+ | Where KINDDOC = 'NAT' and LVLNUM = '2' and PARENT = '] + ( ga )->PARENT + [' and ; | ||
+ | DREFL2 = 'R11 ' and DANAL2 > 0 and DREFL3 = 'R466' and DANAL3 = ] + r466_kod + [ and NATTR4 > 0 ] | ||
+ | aa := SqlToArr( sql, { 'DANAL2', 'NATTR4' } ) | ||
+ | if !IsEmpty( aa ) | ||
+ | fld := { 'DATDOC', 'DANAL2', 'D2NAME', 'CATTR6', 'NATTR7' } | ||
+ | ArValues := { { id, r20_kod, r20_name, '12.00', docs1_danal1 } } | ||
+ | if Empty( numdoc ) | ||
+ | // Заказ на перемещение, уровень 1 | ||
+ | num := AddAll( 'ZAK', '1', "",, fld, ArValues, {|| Field->NUMDOC }, ~Year := Year( id ), ~Month := Month( id ), ; | ||
+ | ~Day := Day( id ), ~NoDependence := { 'NATTR7', 'CATTR6', 'D2NAME' } ) | ||
+ | if !Empty( num ) | ||
+ | numdoc := num[1] | ||
+ | endif | ||
+ | endif | ||
+ | // находим шапку заказа | ||
+ | zak1 := OpenChildDoc( 'ZAK', '1', ~ParentForm := "", ~Year := Year( id ), ~Month := Month( id ), ~Day := Day( id ) ) | ||
+ | ( zak1 )->( SetFilter( [ KINDDOC = 'ZAK' and LVLNUM = '1' and NUMDOC = '] + padl( numdoc, 10 ) + [' and ; | ||
+ | DTOS( DATDOC ) = '] + DTOS( id ) + [' and DANAL2 = ] + r20_kod + [ and NATTR7 = ] + docs1_danal1 ) ) | ||
+ | if Empty( ( zak1 )->RGNUM ) | ||
+ | // заказ удален | ||
+ | fld := { 'DATDOC', 'NUMDOC', 'DANAL2', 'D2NAME', 'CATTR6', 'NATTR7' } | ||
+ | ArValues := { { id, padl( numdoc, 10 ), r20_kod, r20_name, '12.00', docs1_danal1 } } | ||
+ | AddAll( 'ZAK', '1', "",, fld, ArValues, ~Year := Year( id ), ~Month := Month( id ), ~Day := Day( id ), ; | ||
+ | ~NoDependence := { 'NATTR7', 'CATTR6', 'D2NAME' } ) | ||
+ | ( zak1 )->( DbGoTop() ) | ||
+ | endif | ||
+ | if !Empty( ( zak1 )->RGNUM ) | ||
+ | AddAll( 'ZAK', '2', ( zak1 )->RGNUM,, { 'KANAL2', 'AMNT' }, aa,, ( zak1 )->( GetForm( GetArea() ) ), ~NoDependence := {'AMNT'} ) | ||
+ | endif | ||
+ | endif | ||
+ | |||
+ | result := numdoc | ||
+ | |||
+ | // ZAK1 | ||
+ | // DATDOC - дата | ||
+ | // NUMDOC - номер | ||
+ | // DANAL2 - код магазина из справочника торговых предприятий R20 | ||
+ | // D2NAME - наименование магазина | ||
+ | // CATTR6 - время заказа | ||
+ | // NATTR7 - код филиала отгрузки продукции | ||
+ | = Смотрите также = | ||
+ | [[Полезные функции]] | ||
+ | |||
+ | [[Функции Delphi]] |
Текущая версия на 13:17, 31 июля 2017
NAT_09_12 - это программа из справочника R266
Добавление заказа на перемещение
NAT_09_12( r466_kod, id, ga, numdoc, docs1_danal1 )
Вызывается из документа NAT ( уровень 2 ) по CTRL+F10
r466_kod - завод, который производит продукцию
id - дата
ga - область, откуда мы вызываем функцию NAT_09_12
numdoc - номер заказа, если он уже был добавлен ранее
docs1_danal1 - код филиала, который будет отгружать продукцию
Текст
parameters r466_kod, id, ga, numdoc, docs1_danal1 local sql, aa, num, fld, r20_kod, r20_name, ArValues, zak1 r20_kod := SeekRef( 'R466', r466_kod, 'R20_KOD', 1 ) r20_name := RealName( 'R20', r20_kod ) // NAT sql := [ Select DANAL2, NATTR4 ; From DOCS] + Ret_f_ext( ( ga )->DATDOC ) + [ ; Where KINDDOC = 'NAT' and LVLNUM = '2' and PARENT = '] + ( ga )->PARENT + [' and ; DREFL2 = 'R11 ' and DANAL2 > 0 and DREFL3 = 'R466' and DANAL3 = ] + r466_kod + [ and NATTR4 > 0 ] aa := SqlToArr( sql, { 'DANAL2', 'NATTR4' } ) if !IsEmpty( aa ) fld := { 'DATDOC', 'DANAL2', 'D2NAME', 'CATTR6', 'NATTR7' } ArValues := { { id, r20_kod, r20_name, '12.00', docs1_danal1 } } if Empty( numdoc ) // Заказ на перемещение, уровень 1 num := AddAll( 'ZAK', '1', "",, fld, ArValues, {|| Field->NUMDOC }, ~Year := Year( id ), ~Month := Month( id ), ; ~Day := Day( id ), ~NoDependence := { 'NATTR7', 'CATTR6', 'D2NAME' } ) if !Empty( num ) numdoc := num[1] endif endif // находим шапку заказа zak1 := OpenChildDoc( 'ZAK', '1', ~ParentForm := "", ~Year := Year( id ), ~Month := Month( id ), ~Day := Day( id ) ) ( zak1 )->( SetFilter( [ KINDDOC = 'ZAK' and LVLNUM = '1' and NUMDOC = '] + padl( numdoc, 10 ) + [' and ; DTOS( DATDOC ) = '] + DTOS( id ) + [' and DANAL2 = ] + r20_kod + [ and NATTR7 = ] + docs1_danal1 ) ) if Empty( ( zak1 )->RGNUM ) // заказ удален fld := { 'DATDOC', 'NUMDOC', 'DANAL2', 'D2NAME', 'CATTR6', 'NATTR7' } ArValues := { { id, padl( numdoc, 10 ), r20_kod, r20_name, '12.00', docs1_danal1 } } AddAll( 'ZAK', '1', "",, fld, ArValues, ~Year := Year( id ), ~Month := Month( id ), ~Day := Day( id ), ; ~NoDependence := { 'NATTR7', 'CATTR6', 'D2NAME' } ) ( zak1 )->( DbGoTop() ) endif if !Empty( ( zak1 )->RGNUM ) AddAll( 'ZAK', '2', ( zak1 )->RGNUM,, { 'KANAL2', 'AMNT' }, aa,, ( zak1 )->( GetForm( GetArea() ) ), ~NoDependence := {'AMNT'} ) endif endif result := numdoc // ZAK1 // DATDOC - дата // NUMDOC - номер // DANAL2 - код магазина из справочника торговых предприятий R20 // D2NAME - наименование магазина // CATTR6 - время заказа // NATTR7 - код филиала отгрузки продукции