;{ DDT SESTAVA - STANDARD                                                }
;{ Import ceníku do skladu ze souboru XML                                }
;{ Verze: 28.01.2015                                                     }
;{ Autor: WinDUO Team (BRM)                                              }

Name('Import sklad VA-MODELS')
Designed('SKL_MAN#1')
Author('Milan Slíva','EMail: sliva@fi.cz')
Descr('Import ceníku z formátu XML')

;{*******************************************************************************************************************************}

WNSType(-1)

DeclareRec('Program')
DeclareRec('Sklad')
DeclareRec('KeySklad1')

Veta:LongInt
;XMLName:String=GetIni('IMPORTY','ImSklVaM.DDT');
;if(Length(XMLName)=0)
;  XMLName='*.XML';
;
;XMLName=GetFileName(XMLName);
;if(Length(XMLName)=0)
;  Exit;
;
;SetIni('IMPORTY','ImSklVaM.DDT',XMLName);
;

XMLName:String=GetTempFileName();

if(not HTTPGet('http://www.va-models.com/eshop1/rss/duo.xml',XMLName))
  Exit;

Pocet:LongInt
Zmeneno:LongInt
Stav:LongInt
Veta:LongInt
LocBo:Boolean
Cislo:String[14]
EAN:String[14]
Cena:Real
SV:Real=SazbaDPH(dph_zakladni,GetMaxDate())+100
SN:Real=SazbaDPH(dph_snizena,GetMaxDate())+100
SB:Real=100
Sazba:Real

ModifyMode(True)

XML:TagFile

InitStatus(UsedKeys(KeySklad1),'Načítám data ...')

Open(XML,XMLName);
LocBo=FindBranch(XML,'?xml','SHOP','SHOPITEM')
While(LocBo)
  begin
    ClearRec(Sklad)
    Sklad.Material=XTrim(GetBranch(XML,'ITEM_ID'));
    SetStatusRemark(Sklad.Material)
    BuildKey(KeySklad1,Sklad);
    if(FindKey(KeySklad1,Veta))
      begin
        Inc(Pocet);
        ReadRec(Sklad,Veta);
        Cena=RoundPrice(Val(GetBranch(XML,'PRICE_VAT')));
        if(Sklad.SazbaDPH=0)
          Sazba=SV
        else
        if(Sklad.SazbaDPH=0)
          Sazba=SN
        else
          Sazba=SB
        Cena=RoundPrice(Cena/Sazba*100);
        EAN=XTrim(GetBranch(XML,'EAN'));
        if(Length(EAN)=0)
          EAN=Sklad.Kod;
        if((Cena<>Sklad.CenaA)or(not CompareStr(EAN,Sklad.Kod)))
          begin
            Inc(Zmeneno)
            Sklad.CenaA=Cena
            Sklad.Kod=EAN
            ModifyRec(Sklad,Veta)
          end;
      end;
    Inc(Stav)
    LocBo=NextBranch(XML,'SHOPITEM')
  end

Message('Celkem položek v XML: '+Str(Stav)+'\rnalezeno ve skladě: '+Str(Pocet)+'\rakrualizováno: '+Str(Zmeneno),mb_IconInformation);

END


