// скрипт для импорта прайс-листа Биоритм

{
          add('code',ftstring,50);
          add('code_goods',ftstring,50);
          add('name_goods',ftstring,300);
          add('code_producer',ftstring,50);
          add('name_producer',ftstring,300);
          add('code_country',ftstring,50);
          add('name_country',ftstring,300);
          add('price',ftstring,50);
          add('price_without_nds',ftstring,50);
          add('price_first',ftstring,50);
          add('price_first_with_nds',ftstring,50);
          add('nds',ftstring,50);
          add('shelf_life',ftstring,50);
          add('ex_rate',ftstring,50);
          add('price_rtl',ftstring,50);
          add('amount',ftstring,50);
          add('id_valuta',ftstring,50);
          add('min_amount',ftstring,50);
          add('units',ftstring,50);
          add('place_cap',ftstring,50);
          add('isliveneed',ftstring,50);
          add('price_registry',ftstring,50);
          add('barcode',ftstring,50);
}

// если вернуть закрытый датасет, то операция не будет продолжена, и предполагается, что скрипт самостоятельно разобрался с прайсом.
// для самостоятельности скрипту передается ID - идентификатор прайса, который сейчас заливается.
// но в целом задача скрипта - транспортировать данные из файла Filename в Dataset

var
    MissStrings :integer;


var // предопределенные скриптом переменные
    Filename :string; // Файл импорта
    SelfLoader :TPriceLoader; // вызывающий объект

    // собственные объекты
var tmpDir :string;
    tmpfile :string;
    Mappings :string;
    dt :tdatetime;
begin

  try
    tmpdir := includetrailingpathdelimiter(gettempdir+'tmpscriptimport-'+formatdatetime('dd-mm-yyyy-hh-nn-ss',now));
    forcedirectories(tmpdir);

    tmpfile := tmpdir + extractfilename(FileName);

    copyfile(filename,tmpfile);
    try


      selfloader.Field_Name_Goods := 'Наименование';
      SelfLoader.Field_Code_Goods := 'Код';
      SelfLoader.Field_Shelf_Life := 'Срок годности';
      SelfLoader.Field_Name_Producer := 'Производитель';
      SElfLoader.Field_place_cap := 'Заводская упаковка';
      SElfLoader.Field_Quantity := 'Остаток';
      SElfLoader.Field_Price_Registry := 'Цена реестра без НДС';
      SElfLoader.Field_Price := 'Цена продажи';
      SElfLoader.Field_Seria := 'Серия';

      readxls(selfloader.importcds, tmpfile,true,false,-1);
      //selfloader.importcds.savetofile('c:\temp\1.cds');

      selfloader.importcds.first;
      //dt := strtodateprotected(selfloader.importcds.fields[0].asstring);
      //if dt<>0 then selfloader.dt_update := dt;

      missstrings := 0;
      selfloader.importcds.first;
      while not selfloader.importcds.eof
           and (selfloader.importcds.fields[0].asstring<>selfloader.field_code_goods)
      do begin
        inc(MissStrings);
        selfloader.importcds.next;
      end;


      //selfloader.importcds.savetofile('c:\temp\1.cds');

      //createhinti(inttostr(missstrings));

      // считаем, сколько строк пропустить

      readxls(selfloader.importcds, tmpfile,true,true,MissStrings);
      //selfloader.importcds.savetofile('c:\temp\2.cds');


      //selfloader.importcds.savetofile('c:\temp\1.cds');

    finally
      cleardir(tmpdir);
      deletedir(tmpdir);
    end;

  finally
  end;


end.
