// скрипт проверки принадлежности товара к ЖНВЛС по совпадению штрихкодов в карточках со штрихкодами в реестре цен

var
  taprodcens :ttable;
  tatovar :ttable;
  tapr_tovar :ttable;
  currbarcode :string;
  changedcnt :integer;
begin
   with Tmywait.create1('Идет проверка принадлежности товара к ЖНВЛС по штрихкодам в реестрах цен',selfscript) do
   begin
     taprodcens := ttable.create(selfscript);
     tatovar := ttable.create(selfscript);
     tapr_tovar := ttable.create(selfscript);

     taprodcens.tablename := 'prodcens';
     taprodcens.databasename := 'dbkassa';
     taprodcens.open;
     tatovar.tablename := 'tovar';
     tatovar.databasename := 'dbkassa';
     tatovar.open;
     tapr_tovar.tablename := 'pr_tovar';
     tapr_tovar.databasename := 'dbkassa';
     tapr_tovar.open;


     taprodcens.indexfieldnames := 'barcode';
     tapr_tovar.indexfieldnames := 'barcode';


     currbarcode := '';
     changedcnt := 0;
     progressbarmax := taprodcens.recordcount;
     taprodcens.first;
     while not taprodcens.eof do
     begin

       if (taprodcens.fieldbyname('barcode').asstring<>'')
          and (currbarcode<>taprodcens.fieldbyname('barcode').asstring)
       then begin
         currbarcode := taprodcens.fieldbyname('barcode').asstring;

         if tapr_tovar.findkey([currbarcode])
         then
         while not tapr_tovar.eof
               and (tapr_tovar.fieldbyname('barcode').asstring = currbarcode)
         do begin
           if tatovar.findkey([tapr_tovar.fieldbyname('nn').asstring])
              and (tatovar.fieldbyname('isliveneed').asinteger<>1)
           then begin

             tatovar.edit;
             tatovar.fieldbyname('isliveneed').asinteger := 1;
             tatovar.post;
             inc(changedcnt);
             advancedtext := tatovar.fieldbyname('name').asstring+'/ Всего: '+inttostr(Changedcnt);
           end;

           tapr_tovar.next;
         end;

       end;



       application.processmessages;
       taprodcens.next;
       incprogress;
     end;

     createhinti('Всего заменено: '+inttostr(changedcnt)+' позиций');
   end;
end.
