// скрипт для импорта прайс-листа FarmImex. используется процедурой Loader.LoadFromFileWithScript

{
          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
    Filename :string; // Файл импорта
    SelfLoader :TPriceLoader; // запускающий объект

var Table :Tclientdataset;
    tmpDir :string;
    tmpfile :string;
    Mappings :string;
    strval :string;
begin
  table := tclientdataset.create(selfscript);
  //mappings := tstringlist.create;
  try
      if not ReadTXT(table,filename,#9) //,false)
      then RaiseException('Не могу прочесть файл: '+tmpfile);

      //КодТовара	НаименованиеТовара	СтранаПроизводителя	Производитель	КоличествоВУпаковке
      // ШтрихКод	СтавкаНДС	СрокГодности	Количество	ЖНВЛС	ЦенаСНДС	ЦенаБезНДС
      // МинимальныйЗаказ	ЦенаРеестра	ДатаПрайса


      Mappings := 'КодТовара=CODE_GOODS;'+
                  'НаименованиеТовара=NAME_GOODS;'+
                  'Производитель=NAME_PRODUCER;'+
                  'СтранаПроизводителя=NAME_COUNTRY;'+

                  'КоличествоВУпаковке=PLACE_CAP;'+
                  'Количество=AMOUNT;'+
                  'СтавкаНДС=NDS;'+
                  'СрокГодности=SHELF_LIFE;'+
                  'ЖНВЛС=IsLiveneed;'+
                  'МинимальныйЗаказ=MIN_AMOUNT;'+
                  'ШтрихКод=BARCODE;'+
                  'ЦенаРеестра=Price_registry;'+

                  'ЦенаСНДС=PRICE';

      SElfLoader.InitFieldsToDefault;
      SelfLoader.InitImportCDS;

      table.savetofile('c:\temp\1.cds');

      {
      table.first;
      while not table.eof do
      begin


        selfloader.importcds.append;
        selfloader.importcds.fieldbyname('CODE_GOODS').asstring := table.fields[0].asstring;
        selfloader.importcds.fieldbyname('NAME_GOODS').asstring := table.fields[1].asstring;
        selfloader.importcds.fieldbyname('NAME_COUNTRY').asstring := table.fields[2].asstring;
        selfloader.importcds.fieldbyname('NAME_PRODUCER').asstring := table.fields[3].asstring;
       // selfloader.importcds.fieldbyname('CODE_GOODS').asstring := table.fields[4].asstring;
        selfloader.importcds.fieldbyname('BARCODE').asstring := table.fields[5].asstring;
        selfloader.importcds.fieldbyname('NDS').asstring := table.fields[6].asstring;
        selfloader.importcds.fieldbyname('SHELF_LIFE').asstring := table.fields[7].asstring;
        selfloader.importcds.fieldbyname('AMOUNT').asstring := table.fields[8].asstring;
        //selfloader.importcds.fieldbyname('CODE_GOODS').asstring := table.fields[9].asstring;
        selfloader.importcds.fieldbyname('PRICE').asstring := table.fields[10].asstring;
       // selfloader.importcds.fieldbyname('PRICE_REGISTRY').asstring := table.fields[11].asstring;
        //selfloader.importcds.fieldbyname('CODE_GOODS').asstring := table.fields[12].asstring;
        //selfloader.importcds.fieldbyname('CODE_GOODS').asstring := table.fields[13].asstring;
        selfloader.importcds.post;
        table.next
      end;
      }

      TableAppend(SelfLoader.ImportCDS,table,false,Mappings);
      //dataset.close; // чтобы не продолжился импорт

  finally
    //mappings.free;
    table.free
  end;


end.
