Oprava konverzních tabulek pro měrné jednotky po importu číselníku materiálu

Top  Previous  Next

Seznam témat:

řešení

 

Řešení

Z důvodu, ze se objevily případy, kdy se tabulka skladových položek importovala ručně ("na koleně") a přitom se nevyplnila tabulka konverzí zakladní MJ (omkonvmj) správným způsobem, t.j. nezaložily se záznamy pro přepočet základní MJ na sama sebe, což je nutný předpoklad pro správné chování se Vision ERP, je toto potřeba opravit pres ISQL přiloženým SQL skriptem.

alter trigger

DBA.omkonvmj_taiu on DBA.omkonvmj for insert,update

as

begin

 declare @fullname char(65)

 declare @mat MATERIAL_

 declare curs no scroll cursor for select material_id from inserted

 if current remote user is not null return /* STOP pro replikaci */

 if 1 = (select value from DBA.globals where name = 'od_import') return /* STOP pro import */

 execute DBA.ggetfullnameex @fullname

 open curs

 while 1 = 1 begin

     fetch next curs into @mat

     if @@sqlstatus = 1

       begin

         execute DBA.gsqlerror 99999,sqlcode

         return

       end

     else

       if @@sqlstatus = 2

         break

       else

         if sqlstate <> 0 break

     update omater set zmenil = @fullname,zmeneno = current timestamp where id_material = @mat

   end

 close curs

end

go

update dba.globals set value = 1 where name = 'od_import'

go

insert into DBA.omkonvmj (material_id, mjkonv_id, koeficient)

select id_material, mj_id, 1 from omater where not exists (select material_id from omkonvmj where id_material = material_id and mj_id = mjkonv_id)

go

update dba.globals set value = 0 where name = 'od_import'

 

Tento postup je mozne pouzit jenom docasne pro verze 53 a mensi, protoze se zde "natvrdo" opravuje trigger... Od verze 54 je tato funkce soucasti aplikace (Nastroje - Skladove polozky - Oprava konverzi MJ), pricemz vyuziva jenom zvyraznenou cast SQL skriptu.

 

 

Související témata

Číselniky