// скрипт для импорта прайс-листа. используется процедурой Loader.LoadFromFileWithScript
// на вход подается открытый Dataset, который нужно заполнить в соответствии с полями:

{
          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

const MissStrings = 10;


var // предопределенные скриптом переменные
    Filename :string; // Файл импорта
    SelfLoader :TPriceLoader; // вызывающий объект

    // собственные объекты
var tmpDir :string;
    tmpfile :string;
    Mappings :string;
begin
  try
    tmpdir := includetrailingpathdelimiter(gettempdir+'tmpscriptimport-'+formatdatetime('dd-mm-yyyy-hh-nn-ss',now));
    forcedirectories(tmpdir);

    tmpfile := tmpdir + extractfilename(FileName);


    copyfile(filename,tmpfile);

    if ansiuppercase(extractfileext(tmpfile))='.ZIP'
    then  tmpfile := tmpdir+ zipextractall(tmpfile,tmpdir);
    //showmessage(tmpfile);
    try


      selfloader.Field_Name_Goods := 'Торговое название';
      selfloader.Field_Form_Goods := 'Форма выпуска';
      SelfLoader.Field_Code_Goods := 'Код';
      SelfLoader.Field_Shelf_Life := 'Годен';
      SelfLoader.Field_Name_Producer := 'Произв_ль';
      SElfLoader.Field_place_cap := 'Шт_';
      selfloader.field_price := 'Цена _р__';
      selfloader.field_min_amount := 'Мин';
      SElfLoader.Field_nds := 'НДС';
      //SElfLoader.Field_price_registry := 'Реестр_ цена';
      //SElfLoader.Field_isliveneed := 'ЖНВЛС';
      SElfLoader.Field_quantity := 'Ост_';


      readxls(selfloader.importcds, tmpfile,false,true,MissStrings);

     // selfloader.importcds.savetofile('c:\temp\1.cds');

    finally
      cleardir(tmpdir);
      deletedir(tmpdir);
    end;

  finally
  end;


end.
