FRO CHECK PRINTED

Материал из Фабиус wiki
Версия от 08:15, 29 декабря 2017; Hisava (обсуждение | вклад) (Описание)

Перейти к: навигация, поиск

FRO_CHECK_PRINTED - это программа из справочника R266

Проверить все продажи по магазину за сутки

FRO_CHECK_PRINTED( r130_kod, data )

r130_kod - код кассы

data - дата

Описание

Открывает 1 этаж документа FRO за выбранную дату по одному магазину

Если безнал, то на этаж 2 пишет 1 в реквизит NATTR2

Если нал, то пишет ноль в NATTR2

Если не отпечатано, то в AMNT пишет ноль

Текст

parameters r130_kod, data
local fro1, flt, cds
try
  fro1 := OPENCHILDDOC( 'FRO', '1', ~ParentForm := "", ~IsCondition := false, ~Month := Month( data ), ~Year := Year( data )  )
  flt := [ KINDDOC = 'FRO' and LVLNUM = '1' and DtoS( DATDOC ) = '] + DtoS( data ) + [' and DREFL1 = 'R130' and DANAL1 = ] + r130_kod
  ( fro1 )->( SetFilter( flt ) )
  ( fro1 )->( Refresh() )
  ( fro1 )->( DbGoTop() )
  while !( fro1 )->( eof() )
    // НАЛ
    if ( fro1 )->CARDPAY <> 'Д'
      try
        cds := CLONEDATASET( fro1 )
        flt := [ KINDDOC = 'FRO' and LVLNUM = '2' and PARENT = '] + ( fro1 )->RGNUM + [' ]
        ( cds )->( SETFILTER( flt ) )
        ( cds )->( DBGOTOP() )
        while !( cds )->( eof() )
          if !Empty( ( cds )->NATTR2 )
            ( cds )->NATTR2 := 0
          endif
          ( cds )->( DbSkip() )
        end
      finally
        CLOSETABLE( cds )
      end
    endif
    // БЕЗНАЛ
    if ( fro1 )->CARDPAY = 'Д'
      try
        cds := CLONEDATASET( fro1 )
        flt := [ KINDDOC = 'FRO' and LVLNUM = '2' and PARENT = '] + ( fro1 )->RGNUM + [' ]
        ( cds )->( SETFILTER( flt ) )
        ( cds )->( DBGOTOP() )
        while !( cds )->( eof() )
          if ( cds )->NATTR2 <> 1
            ( cds )->NATTR2 := 1
          endif
          ( cds )->( DbSkip() )
        end
      finally
        CLOSETABLE( cds )
      end
    endif
    // ПРИЗНАК НЕ ОТПЕЧАТАННОСТИ
    if ( fro1 )->PRINTED <> 'Д'
      try
        cds := CloneDataSet( fro1 )
        flt := [ KINDDOC = 'FRO' and LVLNUM = '2' and PARENT = '] + ( fro1 )->RGNUM + [' ]
        ( cds )->( SetFilter( flt ) )
        ( cds )->( DbGoTop() )
        while !( cds )->( eof() )
          if !Empty( ( cds )->AMNT )
            ( cds )->AMNT := 0
          endif
          ( cds )->( DbSkip() )
        end
      finally
        CLOSETABLE( cds )
      end
    endif
    ( fro1 )->( DbSkip() )
  end
finally
  ( fro1 )->( CloseForm( GetForm( GetArea() ) ) )
end

Смотрите также

Полезные функции

Функции Delphi