// скрипт импорта ЖНВЛС в справочник товаров. Использует файл, в котором есть поле NN.
// Наличие кода с определенным NN в справочнике говорит о том, что это жизненно-важные препараты,
// Если данного кода товара нет в этом файле, то это не ЖНВЛС.
// Скрипт запросит файл, после проанализирует его и поменяет в справочнике товаров значения поля "жизненно-важный".

var Fname :string;
    tatovar :ttable;
    CDS :Tclientdataset;
    cntChanged, cntliveneed :integer;
begin
   FName := '';

   with TOpenDialog.create(nil) do
   try
     Title := 'Укажите файл с данными:';
     Filter := 'Таблицы CDS|*.CDS';
     if execute then fname := Filename;
   finally
     free
   end;

   if fname='' then exit;
   if not fileexists(Fname)
   then begin
     createHintE('Не найден указанный файл '+Fname);
     exit;
   end;

   cds := nil;

   with tmywait.create('Идет изменение данных') do
   try
     advancedtext := 'Чтение данных';

     CDS := TClientdataset.create(nil);
     cds.filename := fname;
     cds.open;

     cds.indexfieldnames := 'NN';

     tatovar := ttable.create(cds);
     tatovar.databasename := 'dbkassa';
     tatovar.tablename := 'tovar.db';
     tatovar.open;

     progressbarmax := tatovar.recordcount;

     cntchanged := 0;
     cntliveneed := 0;


     tatovar.first;
     while not tatovar.eof do
     begin
       progressbarpos := tatovar.recno;

       if CDS.findkey([tatovar.fieldbyname('nn').asstring])
       then begin
         if tatovar.fieldbyname('isliveneed').asinteger <> 1
         then begin
            tatovar.edit;
            tatovar.fieldbyname('isliveneed').asinteger := 1;
            cntchanged := cntchanged +1;
            tatovar.post;
         end
       end
       else begin
         if tatovar.fieldbyname('isliveneed').asinteger <>0
         then begin
            tatovar.edit;
            tatovar.fieldbyname('isliveneed').asinteger := 0;
            cntchanged := cntchanged +1;
            tatovar.post;
         end
       end;

       if tatovar.fieldbyname('isliveneed').asinteger =1
       then cntliveneed := cntliveneed +1;


       advancedtext := 'Анализ: изменено '+inttostr(cntchanged)+', жизненноважные '+inttostr(cntliveneed);

       tatovar.next;
     end;




   finally
     free;
     if cds<>nil then  cds.free
   end;

end.
