Přecenění skladu |
Top Previous Next |
Seznam témat:
Přecenění je možné pouze k 1.1. daného roku a pouze u skladů vedených metodou FI-FO.
Nejjednodušší způsob je v případě, kdy v novém roce nebyly žádné pohyby na skladě. Pak stačí v novém roce vydat vše za staré ceny (pomocí funkce „Vydat vše“ při výdeji) a přijmout vše zpět za nové ceny (pomocí funkce „Příjem z výdeje“ při příjmu). Příjem zpět proběhne sice za nové ceny, ale evidenční cenu na příjemce lze aktualizovat, protože z ní ještě nebylo vydáváno.
V případě, že v nové roce již byly pohyby na skladě je problém složitější. Postup je následující:
SELECT * FROM dba.opobjitrez ># C:\opobjitrez.txt
INSERT INTO dba.osklprijemit_pom ( SELECT DISTINCT p.* FROM dba.osklprijemit as p, dba.osklvydejit as v WHERE p.data_id=v.prijemeviddata_id AND p.id_poradi=v.prijemevidporadi_id AND p.obd_id<'2003-01-01' AND v.obd_id>='2003-01-01' AND p.rada_id in (‘SKL1’))
UPDATE osklprijemit_pom set mnoz=(SELECT SUM(v.mnoz) FROM dba.osklprijemit as p, dba.osklvydejit as v WHERE p.data_id=v.prijemeviddata_id AND p.id_poradi=v.prijemevidporadi_id AND p.obd_id<'2003-01-01' AND v.obd_id>='2003-01-01' AND p.rada_id ='SKL1' AND p.data_id=osklprijemit_pom.data_id AND p.id_poradi=osklprijemit_pom.id_poradi GROUP BY v.prijemevidporadi_id)
a) vydat vše co je na skladě (např. výdejka č. SKL1 000001) b) z výdejky zrušit položky, které mají vazbu na příjemky z nového roku
DELETE FROM dba. osklvydejit FROM dba.osklvydejit as v, dba.osklprijemit as p WHERE v.prijemeviddata_id=p.data_id AND v.prijemevidporadi_id=p.id_poradi AND v.obd_id='2003-01-01' AND v.age_id='VYD' AND v.rada_id='SKL1' AND v.dokl_id=1 AND p.obd_id='2003-01-01'
UPDATE dba.osklprijemit_pom SET obd_id=’2003-01-01’,dokl_id=1
UPDATE dba.osklprijemit_pom SET id_poradi=(id_poradi + 1 000 000),pohyb_id=’pohyb1’
INSERT INTO dba.osklprijemit (SELECT * FROM dba.osklprijemit_pom)
UPDATE (SELECT * FROM dba.osklvydejit as v, dba.osklprijemit as p WHERE v.prijemeviddata_id=p.data_id AND v.prijemevidporadi_id=p.id_poradi AND v.obd_id=’2003-01-01’ AND v.age_id=’VYD’ AND v.rada_id=’SKL1’ AND v.dokl_id<>1 AND p.obd_id=’2002-01-01’) as tab SET prijemdodporadi_id=(prijemdodporadi_id + 1 000 000), prijemevidporadi_id=(prijemevidporadi_id + 1 000 000)
tím se uvolní příjemky ve starém roce k výdeji a zároveň na výdejkách zůstanou zachovány vazby na faktury a přijaté objednávky.
a) vydat vše co je na skladě (např. výdejka č. SKL1 000002) b) z výdejky zrušit položky, které mají vazbu na příjemky z nového roku DELETE FROM (SELECT * FROM dba.osklvydejit as v, dba.osklprijemit as p WHERE v.prijemeviddata_id=p.data_id AND v.prijemevidporadi_id=p.id_poradi AND v.obd_id=’2003-01-01’ AND v.age_id=’VYD’ AND v.rada_id=’SKL1’ AND v.dokl_id=2 AND p.obd_id=’2003-01-01’) as tab
a) Stav na skladě v novém roce musí být stejný jako před akcí b) Hodnota příjemek SKL1 000001 a SKL1 000002 musí být stejná jako hodnota skladu na konci starého roku a stejná jako hodnota výdejek SKL1 000001 a SKL1 000002.
1. kodmat 2. newevidcena
Tabulka se musí naplnit daty např. z Excelu, kde si zákazník připraví nový ceník. Ten se pak uloží do souboru s oddělovači „ , “ (čárka) – např. C:\ceny.txt INPUT INTO dba.omatprecen FROM C:\ceny.txt
Aktualizace cen:
UPDATE (SELECT material_id,evidcena FROM dba.osklprijemit WHERE obd_id=’2003-01-01’ AND rada_id=’SKL1’ AND material_id in (SELECT kodmat FROM dba.omatprecen)) as tab SET evidcena=(SELECT newevidcena FROM dba.omatprecen WHERE kodmat=material_id)
UPDATE (SELECT material_id,evidcena FROM dba.osklvydejit WHERE obd_id=’2003-01-01’ AND rada_id=’SKL1’ AND dokl_id <> 1 AND dokl_id<>2 AND material_id in (SELECT kodmat FROM dba.omatprecen)) as tab SET evidcena=(SELECT newevidcena FROM dba.omatprecen WHERE kodmat=material_id)
INPUT INTO dba.opobjitrez FROM C:\opobjitrez.txt.
Související témata |