Name('SERD - zaslání skladu')
Designed('SKL_MAN#1')
Author('Winduo Team','EMail: winduo@winduo.cz','http://www.winduo.com','http://www.winduo.cz')

WNSType(-1);

SF:TextFile;

DeclareRec('Program');

DeclareRec('Sklad');
DeclareActiveIndex(Sklad,'KeySklad',1);

InitStatus(UsedKeys(KeySklad),'Exportuji skladové karty ...');

Veta:LongInt;
VetaP:LongInt;
Pozice:LongInt;
LocStr:String;

Record PLUData
  Nazev:String[18];
  Cena1:Real;
  Cena2:Real;
  DPH  :Byte;
end;

Record PLUKey
  Length:Byte;
  Kod   :Array[1..13] of Char;
end;

MakeTempFile(PLUData,PLUKey,False);

ClearKey(KeySklad);

NizsiSazba:Real=SazbaDPH(False,GetDate())/100+1;
VyssiSazba:Real=SazbaDPH(True,GetDate())/100+1;

While(NextKey(KeySklad,Veta))
  begin
    ReadRec(Sklad,Veta);
    if(InFilter(Sklad))
      begin
        if(Length(Sklad.Kod)<>0)
          LocStr=Sklad.Kod
        else
          LocStr=Sklad.Material

        if((Length(LocStr)<5)and(IsValidStr(LocStr,'0123456789'))and(Sklad.CenaA>=0)and(Sklad.CenaB>=0))
          begin
            PLUKey.Length=SizeOf(PluKey)-1
            LocStr=NulL(LocStr,SizeOf(PLUKey.Kod));
            StrToChars(PLUKey.Kod,LocStr);
            if(not FindKey(PLUKey,VetaP))
              begin
                ClearRec(PLUData);
                PLUData.Nazev=Sklad.DisplayText
                if(Length(PLUData.Nazev)=0)
                  PLUData.Nazev=Sklad.Nazev
                if(Sklad.SazbaDPH=0)
                  begin
                    PLUData.DPH=2
                    PLUData.Cena1=Sklad.CenaA*VyssiSazba
                    PLUData.Cena2=Sklad.CenaB*VyssiSazba
                  end else
                if(Sklad.SazbaDPH=1)
                  begin
                    PLUData.DPH=1
                    PLUData.Cena1=Sklad.CenaA*NizsiSazba
                    PLUData.Cena2=Sklad.CenaB*NizsiSazba
                  end else
                  begin
                    PLUData.DPH=0
                    PLUData.Cena1=Sklad.CenaA
                    PLUData.Cena2=Sklad.CenaB
                  end;
                if(not AddKey(PLUKey,AddRec(PLUData)))
                  Error('Nelze přidat klíč');
              end;
          end;
      end;
    Inc(Pozice);
    SetStatus(Pozice);
  end;

Vytvor:

InitStatus(UsedKeys(PLUKey),'Vytvářím soubor pro pokladnu');
Pozice=0

ClearKey(PLUKey);

Rewrite(SF,Program.WorkPath+'SERD_PLU.TXT');
LoadTranslateTab(Trans_PC852)
SetTranslate(SF)

While(NextKey(PLUKey,VetaP))
  begin
    ReadRec(PLUData,VetaP);
    LocStr=ToChar(#0,CharsToStr(PLUKey.Kod));
    WriteLn(SF,LocStr,';',TransChar(';',' ',PluData.Nazev),';',Str(PluData.Cena1*100,,0),';',Str(PluData.Cena2*100,,0),';',Str(PluData.DPH),';0;1;0;0;0;0;0;0;00;');
    Inc(Pozice);
    SetStatus(Pozice);
  end;

END