ACT20001 — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) м |
Hisava (обсуждение | вклад) м (→CTRL + F10 вЕГАИС ( Отправить акт списания в ЕГАИС )) |
||
Строка 1: | Строка 1: | ||
[[ACT20001]] - это представление документа [[ACT]] | [[ACT20001]] - это представление документа [[ACT]] | ||
= CTRL + F10 вЕГАИС ( Отправить акт списания в ЕГАИС ) = | = 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( 'Все позиции акта списания успешно переданы в ЕГАИС' ) | ||
= Смотрите также = | = Смотрите также = | ||
[[ACT]] | [[ACT]] |
Версия 14:12, 18 июня 2018
ACT20001 - это представление документа ACT
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( 'Все позиции акта списания успешно переданы в ЕГАИС' )