// скрипт для импорта прайс-листа БСС. используется процедурой 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 CDS :Tclientdataset;
    taDBF :TTable;
    tmpDir :string;
    tmpfile :string;
    Mappings :string;
    strval :string;
begin
      if uppercase(extractfileext(filename))='.DBF'
      then begin
        taDBF := tTable.create(selfscript);
        taDBF.TableType := ttFoxpro;
        taDBF.tablename := filename;
        taDBF.Open;

        {
        Mappings := 'ID=CODE_GOODS;'+
                    'NAME=NAME_GOODS;'+
                    'SERIA=SERIA;'+
                    'FIRM=NAME_PRODUCER;'+
                    'country=NAME_COUNTRY;'+
                    'god_to=SHELF_LIFE;'+
                    'NDS=NDS;'+
                    'PRICE=PRICE;'+
                    'qnty_max=AMOUNT;'+
                    'qnty_min=MIN_AMOUNT;'+
                    'EAN=BARCODE;'
                    ;
        }


        SElfLoader.InitFieldsToDefault;
        SelfLoader.InitImportCDS;

        //TableAppend(SelfLoader.ImportCDS,taDBF,false,Mappings);

        tadbf.first;
        while not tadbf.eof do
        begin
          with  selfloader.importcds do
          begin
            if pos('УЦЕНКА',uppercase(tadbf.fieldbyname('name').asstring))=0
            then begin
              append;

              fieldbyname('code_goods').asstring := tadbf.fieldbyname('ID').asstring;
              fieldbyname('name_goods').asstring := tadbf.fieldbyname('name').asstring;
              fieldbyname('seria').asstring := tadbf.fieldbyname('seria').asstring;
              fieldbyname('name_producer').asstring := tadbf.fieldbyname('firm').asstring;
              fieldbyname('name_country').asstring := tadbf.fieldbyname('country').asstring;
              fieldbyname('nds').asstring := tadbf.fieldbyname('nds').asstring;
              fieldbyname('shelf_life').asstring := tadbf.fieldbyname('god_to').asstring;
              fieldbyname('price').asstring := tadbf.fieldbyname('price').asstring;
              fieldbyname('amount').asstring := tadbf.fieldbyname('qnty_max').asstring;
              fieldbyname('min_amount').asstring := tadbf.fieldbyname('qnty_min').asstring;
              fieldbyname('barcode').asstring := tadbf.fieldbyname('ean').asstring;
              post;
            end;
          end;

          tadbf.next;
        end;



      end

end.
