ACT20001 — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) м (→CTRL + F10 вЕГАИС ( Отправить акт списания в ЕГАИС )) |
Hisava (обсуждение | вклад) м |
||
| Строка 1: | Строка 1: | ||
[[ACT20001]] - это представление документа [[ACT]] | [[ACT20001]] - это представление документа [[ACT]] | ||
| + | = CTRL + F1 Баланс ( Отправить "Акт постановки на баланс в торговом зале" ) = | ||
| + | if NATTR4 <= AMNT | ||
| + | return // NATTR4 - это остаток в фабиусе, AMNT - это остаток в ЕГАИС | ||
| + | endif // т.е. остаток в фабиусе БОЛЬШЕ чем в ЕГАИС, значит надо делать акт постановки на баланс | ||
| + | |||
| + | if !YesNo( 'Вы уверены, что хотите отправить "Акт постановки на баланс в торговом зале" ?', false ) | ||
| + | return | ||
| + | endif | ||
| + | local aa, fs_rar_id, ip, port, path | ||
| + | fs_rar_id := GETPRM( 'FSRAR_ID', taskname, tasknum ) | ||
| + | ip := GETPRM( 'UTM_IP_ADD', taskname, tasknum ) | ||
| + | port := GETPRM( 'UTM_PORT', taskname, tasknum ) | ||
| + | path := NICE_PATH( temppath ) | ||
| + | aa := [<?xml version="1.0" encoding="UTF-8"?>] + Chr( 13 ) + Chr( 10 ) | ||
| + | aa := aa + [<ns:Documents Version="2.0" ; | ||
| + | xmlns:xsi="http:/] + [/www.w3.org/2001/XMLSchema-instance" ; | ||
| + | xmlns:ns="http:/] + [/fsrar.ru/WEGAIS/WB_DOC_SINGLE_01" ; | ||
| + | xmlns:oref="http:/] + [/fsrar.ru/WEGAIS/ClientRef_v2" ; | ||
| + | xmlns:pref="http:/] + [/fsrar.ru/WEGAIS/ProductRef_v2" ; | ||
| + | xmlns:ainp="http:/] + [/fsrar.ru/WEGAIS/ActChargeOnShop_v2" ; | ||
| + | xmlns:ce="http:/] + [/fsrar.ru/WEGAIS/CommonEnum"> ; | ||
| + | <ns:Owner> ; | ||
| + | <ns:FSRAR_ID>] + atr( fs_rar_id ) + [</ns:FSRAR_ID> ; | ||
| + | </ns:Owner> ; | ||
| + | <ns:Document> ; | ||
| + | <ns:ActChargeOnShop_v2> ; | ||
| + | <ainp:Identity>] + AUTOID + [</ainp:Identity> ; | ||
| + | <ainp:Header> ; | ||
| + | <ainp:ActDate>] + SQLDATE( DOCS1->DATDOC ) + [</ainp:ActDate> ; | ||
| + | <ainp:Number>] + atr( DOCS1->NUMDOC ) +'-'+DANAL1+ [</ainp:Number> ; | ||
| + | <ainp:TypeChargeOn>Излишки</ainp:TypeChargeOn> ; | ||
| + | <ainp:Note>Излишки</ainp:Note> ; | ||
| + | </ainp:Header> ; | ||
| + | <ainp:Content> ; | ||
| + | <ainp:Position> ; | ||
| + | <ainp:Identity>1</ainp:Identity> ; | ||
| + | <ainp:Product> ; | ||
| + | <pref:UnitType>Packed</pref:UnitType> ; | ||
| + | <pref:Type>АП</pref:Type> ; | ||
| + | <pref:FullName>] + atr( K2NAME ) + [</pref:FullName> ; | ||
| + | <pref:AlcCode>] + atr( D1NAME ) + [</pref:AlcCode> ; | ||
| + | <pref:Capacity>] + StrTran( str( NATTR1 ), ',', '.' ) + [</pref:Capacity> ; | ||
| + | <pref:Producer> ; | ||
| + | <oref:UL> ; | ||
| + | <oref:ClientRegId>] + atr( CLIENT_REG ) + [</oref:ClientRegId> ; | ||
| + | <oref:FullName>] + atr( OREF_NAME ) + [</oref:FullName> ; | ||
| + | <oref:ShortName>] + atr( OREF_SHORT ) + [</oref:ShortName> ; | ||
| + | <oref:INN>] + INN + [</oref:INN> ; | ||
| + | <oref:KPP>] + KPP + [</oref:KPP> ; | ||
| + | <oref:address> ; | ||
| + | <oref:Country>643</oref:Country> ; | ||
| + | <oref:RegionCode>] + padl( REGIONCODE, 2, '0' ) + [</oref:RegionCode> ; | ||
| + | <oref:description>] + atr( SCRIPT ) + [</oref:description> ; | ||
| + | </oref:address> ; | ||
| + | </oref:UL> ; | ||
| + | </pref:Producer> ; | ||
| + | <pref:ProductVCode>АП</pref:ProductVCode> ; | ||
| + | </ainp:Product> ; | ||
| + | <ainp:Quantity>] + ( - AMNT + NATTR4 ) + [</ainp:Quantity> ; | ||
| + | </ainp:Position> ; | ||
| + | </ainp:Content> ; | ||
| + | </ns:ActChargeOnShop_v2> ; | ||
| + | </ns:Document> ; | ||
| + | </ns:Documents> ] | ||
| + | |||
| + | try | ||
| + | msg := WAITMSG( 'Обработка данных' ) | ||
| + | WRITETXTFILE( { aa }, 'ActChargeOnShop_v2.xml', path, true,, 'utf8' ) | ||
| + | aa := IDHTTPPOSTFILE( path + 'ActChargeOnShop_v2.xml', ip + ':' + port + '/opt/in/ActChargeOnShop_v2' ) | ||
| + | finally | ||
| + | HIDEMSG( msg ) | ||
| + | end | ||
| + | |||
| + | if !EMPTY( aa ) | ||
| + | WRITETXTFILE( { aa }, 'ActChargeOnShop_v2_respond.xml', path, true,, 'utf8' ) | ||
| + | endif | ||
| + | |||
| + | // https://wiki.sftserv.ru/index.php/TypeChargeOn | ||
| + | // Излишки | ||
| + | |||
| + | // ActChargeOnShop_v2 | ||
= CTRL + F10 вЕГАИС ( Отправить акт списания в ЕГАИС ) = | = CTRL + F10 вЕГАИС ( Отправить акт списания в ЕГАИС ) = | ||
Версия 15:08, 19 июня 2018
ACT20001 - это представление документа ACT
CTRL + F1 Баланс ( Отправить "Акт постановки на баланс в торговом зале" )
if NATTR4 <= AMNT
return // NATTR4 - это остаток в фабиусе, AMNT - это остаток в ЕГАИС
endif // т.е. остаток в фабиусе БОЛЬШЕ чем в ЕГАИС, значит надо делать акт постановки на баланс
if !YesNo( 'Вы уверены, что хотите отправить "Акт постановки на баланс в торговом зале" ?', false )
return
endif
local aa, fs_rar_id, ip, port, path
fs_rar_id := GETPRM( 'FSRAR_ID', taskname, tasknum )
ip := GETPRM( 'UTM_IP_ADD', taskname, tasknum )
port := GETPRM( 'UTM_PORT', taskname, tasknum )
path := NICE_PATH( temppath )
aa := [<?xml version="1.0" encoding="UTF-8"?>] + Chr( 13 ) + Chr( 10 )
aa := aa + [<ns:Documents Version="2.0" ;
xmlns:xsi="http:/] + [/www.w3.org/2001/XMLSchema-instance" ;
xmlns:ns="http:/] + [/fsrar.ru/WEGAIS/WB_DOC_SINGLE_01" ;
xmlns:oref="http:/] + [/fsrar.ru/WEGAIS/ClientRef_v2" ;
xmlns:pref="http:/] + [/fsrar.ru/WEGAIS/ProductRef_v2" ;
xmlns:ainp="http:/] + [/fsrar.ru/WEGAIS/ActChargeOnShop_v2" ;
xmlns:ce="http:/] + [/fsrar.ru/WEGAIS/CommonEnum"> ;
<ns:Owner> ;
<ns:FSRAR_ID>] + atr( fs_rar_id ) + [</ns:FSRAR_ID> ;
</ns:Owner> ;
<ns:Document> ;
<ns:ActChargeOnShop_v2> ;
<ainp:Identity>] + AUTOID + [</ainp:Identity> ;
<ainp:Header> ;
<ainp:ActDate>] + SQLDATE( DOCS1->DATDOC ) + [</ainp:ActDate> ;
<ainp:Number>] + atr( DOCS1->NUMDOC ) +'-'+DANAL1+ [</ainp:Number> ;
<ainp:TypeChargeOn>Излишки</ainp:TypeChargeOn> ;
<ainp:Note>Излишки</ainp:Note> ;
</ainp:Header> ;
<ainp:Content> ;
<ainp:Position> ;
<ainp:Identity>1</ainp:Identity> ;
<ainp:Product> ;
<pref:UnitType>Packed</pref:UnitType> ;
<pref:Type>АП</pref:Type> ;
<pref:FullName>] + atr( K2NAME ) + [</pref:FullName> ;
<pref:AlcCode>] + atr( D1NAME ) + [</pref:AlcCode> ;
<pref:Capacity>] + StrTran( str( NATTR1 ), ',', '.' ) + [</pref:Capacity> ;
<pref:Producer> ;
<oref:UL> ;
<oref:ClientRegId>] + atr( CLIENT_REG ) + [</oref:ClientRegId> ;
<oref:FullName>] + atr( OREF_NAME ) + [</oref:FullName> ;
<oref:ShortName>] + atr( OREF_SHORT ) + [</oref:ShortName> ;
<oref:INN>] + INN + [</oref:INN> ;
<oref:KPP>] + KPP + [</oref:KPP> ;
<oref:address> ;
<oref:Country>643</oref:Country> ;
<oref:RegionCode>] + padl( REGIONCODE, 2, '0' ) + [</oref:RegionCode> ;
<oref:description>] + atr( SCRIPT ) + [</oref:description> ;
</oref:address> ;
</oref:UL> ;
</pref:Producer> ;
<pref:ProductVCode>АП</pref:ProductVCode> ;
</ainp:Product> ;
<ainp:Quantity>] + ( - AMNT + NATTR4 ) + [</ainp:Quantity> ;
</ainp:Position> ;
</ainp:Content> ;
</ns:ActChargeOnShop_v2> ;
</ns:Document> ;
</ns:Documents> ]
try
msg := WAITMSG( 'Обработка данных' )
WRITETXTFILE( { aa }, 'ActChargeOnShop_v2.xml', path, true,, 'utf8' )
aa := IDHTTPPOSTFILE( path + 'ActChargeOnShop_v2.xml', ip + ':' + port + '/opt/in/ActChargeOnShop_v2' )
finally
HIDEMSG( msg )
end
if !EMPTY( aa )
WRITETXTFILE( { aa }, 'ActChargeOnShop_v2_respond.xml', path, true,, 'utf8' )
endif
// https://wiki.sftserv.ru/index.php/TypeChargeOn
// Излишки
// ActChargeOnShop_v2
CTRL + F10 вЕГАИС ( Отправить акт списания в ЕГАИС )
if !YesNo( 'Вы уверены, что хотите отправить акт списания в ЕГАИС ?', false )
return
endif
local fs_rar_id, ip, port, path, aa, i, msg, typeWriteOff, note
typeWriteOff := atr( DOCS1->CATTR1 )
if Empty( typeWriteOff )
typeWriteOff := 'Реализация'
note := 'Розничная реализация продукции, не подлежащей фиксации в ЕГАИС'
endif
if TypeWriteOff = 'Пересортица'
note := 'Недостача пересортица'
endif
if TypeWriteOff = 'Недостача'
note := 'Недостача (хищение, злоупотребление материально ответственных лиц, ошибки учета, естественная убыль,...)'
endif
if TypeWriteOff = 'Уценка'
note := 'Уценка (списание) в результате порчи'
endif
if TypeWriteOff = 'Порча'
note := 'Списание объема продукции, не подлежащей дальнейшей реализации (бой, срок годности, порча)'
endif
if TypeWriteOff = 'Потери'
note := 'Потери при транспортировке'
endif
if TypeWriteOff = 'Проверки'
note := 'Списание объема продукции, израсходованной на лабораторные нужды для прохождения добровольной проверки качества, рекламные образцы'
endif
if TypeWriteOff = 'Арест'
note := 'Списание арестованной продукции, изъятой из оборота продукции, конфискованной продукции по решению суда'
endif
if TypeWriteOff = 'Иные цели'
note := 'Списание продукции, когда ФСМ/АМ не возможно считать'
endif
fs_rar_id := GetPrm( 'FSRAR_ID', TaskName, TaskNum )
ip := GetPrm( 'UTM_IP_ADD', TaskName, TaskNum )
port := GetPrm( 'UTM_PORT', TaskName, TaskNum )
path := Nice_path( TempPath )
aa := [<?xml version="1.0" encoding="UTF-8"?>] + Chr( 13 ) + Chr( 10 )
aa := aa + [<ns:Documents Version="1.0" ;
xmlns:xsi="http:/] + [/www.w3.org/2001/XMLSchema-instance" ;
xmlns:ns= "http:/] + [/fsrar.ru/WEGAIS/WB_DOC_SINGLE_01" ;
xmlns:pref="http:/] + [/fsrar.ru/WEGAIS/ProductRef_v2" ;
xmlns:oref="http:/] + [/fsrar.ru/WEGAIS/ClientRef_v2" ;
xmlns:awr="http:/] + [/fsrar.ru/WEGAIS/ActWriteOffShop_v2" ;
xmlns:ce="http:/] + [/fsrar.ru/WEGAIS/CommonEnum"> ;
<ns:Owner> ;
<ns:FSRAR_ID>] + atr( fs_rar_id ) + [</ns:FSRAR_ID> ;
</ns:Owner> ;
<ns:Document> ;
<ns:ActWriteOffShop_v2> ;
<awr:Identity>4567</awr:Identity> ;
<awr:Header> ;
<awr:ActNumber>] + atr( DOCS1->NUMDOC ) + [</awr:ActNumber> ;
<awr:ActDate>] + SqlDate( DOCS1->DATDOC ) + [</awr:ActDate> ;
<awr:TypeWriteOff>] + typeWriteOff + [</awr:TypeWriteOff> ;
<awr:Note>] + note + [</awr:Note> ;
</awr:Header> ;
<awr:Content> ]
DbGoTop()
while !eof()
if NATTR4 < 0
MESSAGE( 'ОСТАТОК в фабиусе МЕНЬШЕ НУЛЯ' )
MESSAGE( 'Исправьте, пожалуйста, Акт НЕ БУДЕТ отправлен' )
return
endif
if ( AMNT - NATTR4 ) > 0 and CATTR1 = 'Н'
if ASCAN( { 261, 263, 500, 520 }, NATTR3 ) > 0
else
if userKOD = 1 or userKOD = 15 or userKOD = 16
else
MESSAGE( 'Крепкий алгоколь списывать нельзя ( ' + atr( D2NAME ) + ' )' )
MESSAGE( 'Исправьте, пожалуйста, Акт НЕ БУДЕТ отправлен' )
return
endif
endif
endif
DbSkip()
end
i := 0
DbGoTop()
while !eof()
if ( AMNT - NATTR4 ) > 0 and CATTR1 = 'Н'
i := i + 1
Field->DANAL1 := i
Field->CATTR1 := 'Да'
aa := aa + [<awr:Position> ;
<awr:Identity>] + i + [</awr:Identity> ;
<awr:Product> ;
<pref:UnitType>Packed</pref:UnitType> ;
<pref:Type>АП</pref:Type> ;
<pref:FullName>] + atr( K2NAME ) + [</pref:FullName> ;
<pref:AlcCode>] + atr( D1NAME ) + [</pref:AlcCode> ;
<pref:Capacity>] + StrTran( str( NATTR1 ), ',', '.' ) + [</pref:Capacity> ;
<pref:Producer> ;
<oref:UL> ;
<oref:ClientRegId>] + atr( CLIENT_REG ) + [</oref:ClientRegId> ;
<oref:FullName>] + atr( OREF_NAME ) + [</oref:FullName> ;
<oref:ShortName>] + atr( OREF_SHORT ) + [</oref:ShortName> ;
<oref:INN>] + INN + [</oref:INN> ;
<oref:KPP>] + KPP + [</oref:KPP> ;
<oref:address> ;
<oref:Country>643</oref:Country> ;
<oref:RegionCode>] + padl( REGIONCODE, 2, '0' ) + [</oref:RegionCode> ;
<oref:description>] + atr( SCRIPT ) + [</oref:description> ;
</oref:address> ;
</oref:UL> ;
</pref:Producer> ;
<pref:ProductVCode>АП</pref:ProductVCode> ;
</awr:Product> ;
<awr:Quantity>] + ( AMNT - NATTR4 ) + [</awr:Quantity> ;
</awr:Position>]
endif
DbSkip()
end
aa := aa + [</awr:Content> ;
</ns:ActWriteOffShop_v2> ;
</ns:Document> ;
</ns:Documents> ]
try
msg := WaitMsg( 'Обработка данных' )
WriteTxtFile( { aa }, 'ActWriteOffShop.xml', path, true,, 'utf8' )
aa := IdHTTPPostFile( path + 'ActWriteOffShop.xml', ip + ':' + port + '/opt/in/ActWriteOffShop_v2' )
finally
HideMsg( msg )
end
if !Empty( aa )
WriteTxtFile( { aa }, 'ActWriteOffShop_respond.xml', path, true,, 'utf8' )
endif
Message( 'Все позиции акта списания успешно переданы в ЕГАИС' )