 SET NAMES utf8;

DELIMITER $$


DROP PROCEDURE IF EXISTS ht_strukt_wiek_mag$$
CREATE DEFINER=`root`@`localhost` PROCEDURE ht_strukt_wiek_mag(
    IN _MODE VARCHAR(38), 
    IN _GUID VARCHAR(38),
    IN _Param_A VARCHAR(1024),
    IN _Param_B VARCHAR(1024),
    IN _Param_C VARCHAR(1024),
    IN _Param_D VARCHAR(1024),
    IN _Param_E VARCHAR(1024)
    )

/*
CALL ht_strukt_wiek_mag('STRUKTURA','','2025-12-31','220','','','DEBUG');
CALL ht_strukt_wiek_mag('STRUKTURA','','2025-12-31','1','M;MS','','');
CALL ht_strukt_wiek_mag('DOSTAWY_FIFO','','2023-12-31','1','','','');
*/


BEGIN 
DECLARE _DEBUG INT;
DECLARE _DATABO DATE;
DECLARE _DATABOFK DATE;
DECLARE _DATADO DATE;
DECLARE _MAGAZYN, _GRUPA INT;
DECLARE _WYROZNIKI VARCHAR(1024);
DECLARE _KONTRGUID VARCHAR(38);
DECLARE _OUTFILE VARCHAR(1024);

SET _OUTFILE=IFNULL(@@secure_file_priv,'/var/lib/mysql');

SET _DEBUG=_Param_E LIKE "%DEBUG%",_Param_E=REPLACE(_Param_E,'DEBUG','');
SET _DATADO=DATE(_Param_A);
-- dla nietypowych zakresów lat obrachunkowych najpiew dataBO z lata obrachunkowego, potem dataBO z oppo
SET _DATABOFK=(SELECT databo FROM lata_obrachunkowe WHERE _DATADO BETWEEN databo AND databz);
SET _DATABO=(SELECT min(datawplywu) FROM oppo WHERE rodzaj=51 AND datawplywu=_DATABOFK);
-- jesli nie ma BO w tym roku obrachunkowycm, to weź ostatnie jakie jest
SET _DATABO=IFNULL(_DATABO,(SELECT max(datawplywu) FROM oppo WHERE rodzaj=51));
SET _MAGAZYN=IF(_Param_B='',-1,_VarINT(_Param_B));
SET _KONTRGUID=_Param_D;
SET _GRUPA = IF(_Param_E='', null, _VarINT(_Param_E));
IF _DEBUG THEN
    SELECT _DATABO,_DATADO;
END IF;

-- TODO: 
-- parse list of values separated by ';' passed in parameter _Param_C and create inserts into temporary table

DROP TEMPORARY TABLE IF EXISTS tmp_wyrozniki;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_wyrozniki (v varchar(30));
SET @paramC = _Param_C,_WYROZNIKI = _Param_C;
WHILE CHAR_LENGTH(_WYROZNIKI) > 0 DO
    SET @value = SUBSTRING_INDEX(_WYROZNIKI, ';', 1);
    SET _WYROZNIKI = SUBSTRING(_WYROZNIKI, CHAR_LENGTH(@value) + 2);
    INSERT INTO tmp_wyrozniki (v) VALUES (@value);
END WHILE;

IF _DEBUG THEN
    SELECT * FROM tmp_wyrozniki;
END IF;

--    INSERT INTO tmp_wyrozniki (v) VALUES ('M'),('MS');

/*
CALL ht_strukt_wiek_mag('STRUKTURA','','2025-12-31','220','','','DEBUG');
CALL ht_strukt_wiek_mag('STRUKTURA','','2025-12-31','1','M;MS','','');
*/


IF _MODE='STRUKTURA' THEN
    DROP TEMPORARY TABLE IF EXISTS struktura;
    CREATE TEMPORARY TABLE IF NOT EXISTS struktura
    SELECT        
    o.idntowr,       
    t.symbol AS symbol_z_kart,
    t.nazwa AS nazwa_z_kart,
    o.towrsymb AS symbol,
    o.towrnazwa AS nazwa,
    SUM(o.iloscpozost) AS iloscpozost,
    SUM(o.wartpozost) AS wartpozost,
    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 90 DAY AND _DATADO,o.iloscpozost,0)) AS il_do90,
    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 90 DAY AND _DATADO,o.wartpozost,0)) AS wart_do90,

    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 180 DAY AND _DATADO - INTERVAL 91 DAY,o.iloscpozost,0)) AS il_od91do180,
    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 180 DAY AND _DATADO - INTERVAL 91 DAY,o.wartpozost,0)) AS wart_od91do180,   

    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 270 DAY AND _DATADO - INTERVAL 181 DAY,o.iloscpozost,0)) AS il_od181do270,
    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 270 DAY AND _DATADO - INTERVAL 181 DAY,o.wartpozost,0)) AS wart_od181do270, 

    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 10 YEAR AND _DATADO - INTERVAL 271 DAY,o.iloscpozost,0)) AS il_pow270,
    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 10 YEAR AND _DATADO - INTERVAL 271 DAY,o.wartpozost,0)) AS wart_pow270,

    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 365 DAY AND _DATADO - INTERVAL 181 DAY,o.iloscpozost,0)) AS il_od181do365,
    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 365 DAY AND _DATADO - INTERVAL 181 DAY,o.wartpozost,0)) AS wart_od181do365, 

    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 100 YEAR AND _DATADO - INTERVAL 366 DAY,o.iloscpozost,0)) AS il_pow365,
    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 100 YEAR AND _DATADO - INTERVAL 366 DAY,o.wartpozost,0)) AS wart_pow365,


    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 730 DAY AND _DATADO - INTERVAL 366 DAY,o.iloscpozost,0)) AS il_od365do730,
    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 730 DAY AND _DATADO - INTERVAL 366 DAY,o.wartpozost,0)) AS wart_od365do730, 
    -- powyżej 731 dni
    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 100 YEAR AND _DATADO - INTERVAL 731 DAY,o.iloscpozost,0)) AS il_pow730,
    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 100 YEAR AND _DATADO - INTERVAL 731 DAY,o.wartpozost,0)) AS wart_pow730,
    -- TODO: dataostrozch
    -- podaj liste kolumn: iloscpozost,wartpozost,il_do90,wart_do90,il_od91do180,wart_od91do180,il_od181do270,wart_od181do270,il_pow270,wart_pow270,il_od181do365,wart_od181do365,il_pow365,wart_pow365,il_od365do730,wart_od365do730,il_pow730,wart_pow730
    _DATADO AS dataostrozch,
    MAX(IF(o.rodzaj=51,o.datasprzed,o.datawplywu)) as dataostprzych
    FROM oppo o  
    LEFT JOIN TowrNg t ON o.idntowr=t.guid
    WHERE o.iloscpozost<>0 AND o.usluga=0 AND o.domagazynu <>0 AND o.datawplywu BETWEEN _DATABO AND _DATADO 
        AND (_WYROZNIKI='' OR t.wyroznik in (SELECT v FROM tmp_wyrozniki))
        AND (_MAGAZYN=-1 OR o.domagazynu=_MAGAZYN)

    GROUP BY o.idntowr;
    ALTER TABLE struktura ADD INDEX (idntowr);
    UPDATE struktura s SET dataostrozch=(
            SELECT max(o.datawplywu) FROM oppo_mag o 
            WHERE o.idntowr=s.idntowr AND o.datawplywu<=_DATADO 
                    AND o.przychod=0 AND (_MAGAZYN=-1 OR o.magazyn=_MAGAZYN)
        );
    SELECT * FROM struktura;
    IF _DEBUG THEN
        SELECT SUM(wartpozost) as razem_wartpozost FROM struktura;
        DROP TEMPORARY TABLE IF EXISTS struktura;
    END IF;

END IF;

-- inna wersja wywolania, potrzebna do zastosowania filtra z lista magazynow (co sqb robi z trudem), albo potem z grupa magazynow
-- dla hydromegi jeszcze wyroznik i rodzaj towaru, takze do filtrow
IF _MODE='STRUKTURA_V2' THEN
    DROP TEMPORARY TABLE IF EXISTS struktura;
    CREATE TEMPORARY TABLE IF NOT EXISTS struktura
    SELECT
    o.domagazynu as idnmagazynu,
    o.idntowr,
    t.symbol AS symbol_z_kart,
    t.nazwa AS nazwa_z_kart,
    t.wyroznik,
    s.DisplayValue AS typ_karty,
    o.towrsymb AS symbol,
    o.towrnazwa AS nazwa,
    SUM(o.iloscpozost) AS iloscpozost,
    SUM(o.wartpozost) AS wartpozost,
    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 90 DAY AND _DATADO,o.iloscpozost,0)) AS il_do90,
    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 90 DAY AND _DATADO,o.wartpozost,0)) AS wart_do90,

    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 180 DAY AND _DATADO - INTERVAL 91 DAY,o.iloscpozost,0)) AS il_od91do180,
    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 180 DAY AND _DATADO - INTERVAL 91 DAY,o.wartpozost,0)) AS wart_od91do180,

    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 270 DAY AND _DATADO - INTERVAL 181 DAY,o.iloscpozost,0)) AS il_od181do270,
    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 270 DAY AND _DATADO - INTERVAL 181 DAY,o.wartpozost,0)) AS wart_od181do270,

    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 10 YEAR AND _DATADO - INTERVAL 271 DAY,o.iloscpozost,0)) AS il_pow270,
    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 10 YEAR AND _DATADO - INTERVAL 271 DAY,o.wartpozost,0)) AS wart_pow270,

    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 365 DAY AND _DATADO - INTERVAL 181 DAY,o.iloscpozost,0)) AS il_od181do365,
    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 365 DAY AND _DATADO - INTERVAL 181 DAY,o.wartpozost,0)) AS wart_od181do365,

    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 10 YEAR AND _DATADO - INTERVAL 366 DAY,o.iloscpozost,0)) AS il_pow365,
    SUM(IF(IF(o.rodzaj=51,o.datasprzed,o.datawplywu) BETWEEN _DATADO - INTERVAL 10 YEAR AND _DATADO - INTERVAL 366 DAY,o.wartpozost,0)) AS wart_pow365,
    -- TODO: dataostrozch
    _DATADO AS dataostrozch,
    MAX(IF(o.rodzaj=51,o.datasprzed,o.datawplywu)) as dataostprzych
    FROM oppo o
    LEFT JOIN TowrNg t ON o.idntowr=t.guid
    LEFT JOIN slowniki_pierwotne s ON s.value = t.usluga AND slownik_GUID = 'TYP_KART_TOW'
    WHERE o.iloscpozost<>0 AND o.usluga=0 AND o.domagazynu <>0 AND o.datawplywu BETWEEN _DATABO AND _DATADO
        AND (_WYROZNIKI='' OR t.wyroznik in (SELECT v FROM tmp_wyrozniki))

        AND
        case when _GRUPA is not null THEN
        o.domagazynu in (select idnmagazynu from Magazyny where grupa = _GRUPA)
        ELSE
        (_MAGAZYN=-1 OR o.domagazynu=_MAGAZYN)
        END

    GROUP BY o.domagazynu, o.idntowr;

    ALTER TABLE struktura ADD INDEX (idntowr);
    UPDATE struktura s SET dataostrozch=(
            SELECT max(o.datawplywu) FROM oppo_mag o
            WHERE o.idntowr=s.idntowr AND o.datawplywu<=_DATADO
                    AND o.przychod=0 AND (_MAGAZYN=-1 OR o.magazyn=s.idnmagazynu)
        );

     SET @_g = _GRUPA;
    -- SELECT * FROM struktura;
    -- DROP TEMPORARY TABLE IF EXISTS struktura;

END IF;

/*
call ht_strukt_wiek_mag('DOSTAWY_FIFO_PRE','','2023-12-31','1','','','');
call ht_strukt_wiek_mag('DOSTAWY_FIFO_PRE_AMICUS','','2023-12-31','1','KONTRGUID','','');
call ht_strukt_wiek_mag('DOSTAWY_FIFO','','2023-12-31','1','','','');
*/

IF _MODE='DOSTAWY_FIFO_PRE' THEN
    CREATE TEMPORARY TABLE dostawy1
    SELECT o.guid as rozchodguid,f.dostawaguid as dostawa1, f.ilosc as ilosc1
    FROM oppo o  
    LEFT JOIN fifo f ON f.rozchodguid=o.guid
    LEFT JOIN TowrNg t ON o.idntowr=t.guid
    WHERE o.zmagazynu<>0 and o.domagazynu=0 AND o.usluga=0 AND o.datawplywu <= _DATADO
        AND (_WYROZNIKI='' OR t.wyroznik in (SELECT v FROM tmp_wyrozniki))
        AND (_MAGAZYN=-1 OR o.zmagazynu=_MAGAZYN);
    ALTER TABLE dostawy1 ADD INDEX (dostawa1);
END IF;

IF _MODE='DOSTAWY_FIFO_PRE_AMICUS' THEN
    CREATE TEMPORARY TABLE dostawy1
    SELECT o.guid as rozchodguid,f.dostawaguid as dostawa1, f.ilosc as ilosc1
    FROM opng n
    LEFT JOIN oppo o ON o.idnoperfin=n.guid
    LEFT JOIN fifo f ON f.rozchodguid=o.guid
    WHERE n.rodzaj in (0,1,2) AND n.kontrguid=_KONTRGUID;
    ALTER TABLE dostawy1 ADD INDEX (dostawa1);
END IF;


IF _MODE='DOSTAWY_FIFO' THEN
    DROP TEMPORARY TABLE IF EXISTS dostawy1;
    DROP TEMPORARY TABLE IF EXISTS dostawy2;
    DROP TEMPORARY TABLE IF EXISTS dostawy3;
    DROP TEMPORARY TABLE IF EXISTS dostawy4;
    DROP TEMPORARY TABLE IF EXISTS dostawy5;
    DROP TEMPORARY TABLE IF EXISTS dostawy6;
    DROP TEMPORARY TABLE IF EXISTS dostawy;

    IF _KONTRGUID<>'' THEN 
        IF _DEBUG THEN SELECT 'DOSTAWY_FIFO_PRE_AMICUS'; END IF;
        CALL ht_strukt_wiek_mag('DOSTAWY_FIFO_PRE_AMICUS','',_Param_A,_Param_B,_Param_C,_Param_D,_Param_E);
    ELSE 
        CALL ht_strukt_wiek_mag('DOSTAWY_FIFO_PRE','',_Param_A,_Param_B,_Param_C,_Param_D,_Param_E);
    END IF;

    CREATE TEMPORARY TABLE dostawy2
    SELECT d1.rozchodguid,d1.dostawa1,d1.ilosc1,f.dostawaguid as dostawa2, f.ilosc as ilosc2
    FROM dostawy1 d1
    LEFT JOIN oppo o ON o.guid=d1.dostawa1
    LEFT JOIN fifo f ON f.rozchodguid=o.guid;
    
    ALTER TABLE dostawy2 ADD INDEX (dostawa2);

    CREATE TEMPORARY TABLE dostawy3
    SELECT d2.rozchodguid,d2.dostawa1,d2.dostawa2,d2.ilosc1,d2.ilosc2,f.dostawaguid as dostawa3, f.ilosc as ilosc3
    FROM dostawy2 d2
    LEFT JOIN oppo o ON o.guid=d2.dostawa2
    LEFT JOIN fifo f ON f.rozchodguid=o.guid;
    ALTER TABLE dostawy3 ADD INDEX (dostawa3);

    CREATE TEMPORARY TABLE dostawy4 
    SELECT d3.rozchodguid,d3.dostawa1,d3.dostawa2,d3.dostawa3,d3.ilosc1,d3.ilosc2,d3.ilosc3,
        f.dostawaguid as dostawa4, f.ilosc as ilosc4
    FROM dostawy3 d3
    LEFT JOIN oppo o ON o.guid=d3.dostawa3
    LEFT JOIN fifo f ON f.rozchodguid=o.guid;
    ALTER TABLE dostawy4 ADD INDEX (dostawa4);

    CREATE TEMPORARY TABLE dostawy5
    SELECT d4.rozchodguid,d4.dostawa1,d4.dostawa2,d4.dostawa3,d4.dostawa4,d4.ilosc1,d4.ilosc2,d4.ilosc3,d4.ilosc4,
        f.dostawaguid as dostawa5, f.ilosc as ilosc5
    FROM dostawy4 d4
    LEFT JOIN oppo o ON o.guid=d4.dostawa4
    LEFT JOIN fifo f ON f.rozchodguid=o.guid;
    ALTER TABLE dostawy5 ADD INDEX (dostawa5);

    CREATE TEMPORARY TABLE dostawy6
    SELECT d5.rozchodguid,d5.dostawa1,d5.dostawa2,d5.dostawa3,d5.dostawa4,d5.dostawa5,d5.ilosc1,d5.ilosc2,d5.ilosc3,d5.ilosc4,d5.ilosc5,
        f.dostawaguid as dostawa6, f.ilosc as ilosc6
    FROM dostawy5 d5
    LEFT JOIN oppo o ON o.guid=d5.dostawa5
    LEFT JOIN fifo f ON f.rozchodguid=o.guid;

    ALTER TABLE dostawy6 ADD INDEX (dostawa1),ADD INDEX (dostawa2),ADD INDEX (dostawa3),ADD INDEX (dostawa4),ADD INDEX (dostawa5),ADD INDEX (dostawa6);
       

    CREATE TEMPORARY TABLE dostawy
    SELECT DISTINCT d.rozchodguid,d.dostawa1,d.dostawa2,d.dostawa3,d.dostawa4,d.ilosc1,d.ilosc2,d.ilosc3,d.ilosc4,
    r.rodzaj, (select d.nazwa from operdoc d where r.rodzaj=d.rodzaj) as rodzaj_rozchod,
    r.zmagazynu as magazyn_rozchod,
    r.datawplywu,r.ilosc,r.towrsymb,r.towrnazwa,r.wartmag,
    (select n.nrdokmag from opng n where n.guid=r.idnoper) as nrdokmag_rozchod,

    IFNULL(CONCAT(
            (select CONCAT(IF(n.rodzaj=12,ifnull(n.nrdokfin,'brak'),''),
            ' INFO:',(select d.nazwa from operdoc d where d1.rodzaj=d.rodzaj),' ',n.nrdokmag,IFNULL(n.kontrsymbol,'')) 
            from opng n where n.guid=d1.idnoper),' ', d1.datawplywu),'') as ndostawa1,

    IFNULL(CONCAT(
            (select CONCAT(IF(n.rodzaj=12,ifnull(n.nrdokfin,'brak'),''),
            ' INFO:',(select d.nazwa from operdoc d where d2.rodzaj=d.rodzaj),' ',n.nrdokmag,IFNULL(n.kontrsymbol,'')) 
            from opng n where n.guid=d2.idnoper),' ', d2.datawplywu),'') as ndostawa2,

    IFNULL(CONCAT(
            (select CONCAT(IF(n.rodzaj=12,ifnull(n.nrdokfin,'brak'),''),
            ' INFO:',(select d.nazwa from operdoc d where d3.rodzaj=d.rodzaj),' ',n.nrdokmag,IFNULL(n.kontrsymbol,'')) 
            from opng n where n.guid=d3.idnoper),' ', d3.datawplywu),'') as ndostawa3,

    IFNULL(CONCAT(
            (select CONCAT(IF(n.rodzaj=12,ifnull(n.nrdokfin,'brak'),''),
            ' INFO:',(select d.nazwa from operdoc d where d4.rodzaj=d.rodzaj),' ',n.nrdokmag,IFNULL(n.kontrsymbol,'')) 
            from opng n where n.guid=d4.idnoper),' ', d4.datawplywu),'') as ndostawa4,

    IFNULL(CONCAT(
            (select CONCAT(IF(n.rodzaj=12,ifnull(n.nrdokfin,'brak'),''),
            ' INFO:',(select d.nazwa from operdoc d where d5.rodzaj=d.rodzaj),' ',n.nrdokmag,IFNULL(n.kontrsymbol,'')) 
            from opng n where n.guid=d5.idnoper),' ', d5.datawplywu),'') as ndostawa5,

    IFNULL(CONCAT(
            (select CONCAT(IF(n.rodzaj=12,ifnull(n.nrdokfin,'brak'),''),
            ' INFO:',(select d.nazwa from operdoc d where d6.rodzaj=d.rodzaj),' ',n.nrdokmag,IFNULL(n.kontrsymbol,'')) 
            from opng n where n.guid=d6.idnoper),' ', d6.datawplywu),'') as ndostawa6

            
    FROM dostawy6 d
    INNER JOIN oppo r ON r.guid=d.rozchodguid
    LEFT JOIN oppo d1 ON d1.guid=d.dostawa1
    LEFT JOIN oppo d2 ON d2.guid=d.dostawa2
    LEFT JOIN oppo d3 ON d3.guid=d.dostawa3
    LEFT JOIN oppo d4 ON d4.guid=d.dostawa4
    LEFT JOIN oppo d5 ON d5.guid=d.dostawa5
    LEFT JOIN oppo d6 ON d6.guid=d.dostawa6
        ;

    IF _Param_E='DEBUG' THEN
        SELECT rodzaj_rozchod, datawplywu, magazyn_rozchod, towrsymb, ilosc, wartmag, nrdokmag_rozchod, 
            ndostawa1, ndostawa2, ndostawa3, ndostawa4, ndostawa5, ndostawa6
        FROM dostawy;
    ELSE
        -- SET _OUTFILE=CONCAT(_OUTFILE,'/zestawienie_dostaw.txt');
        -- TODO: dlaczego outfile_outfile nie działa
        SELECT DISTINCT rodzaj_rozchod, datawplywu, magazyn_rozchod, towrsymb, ilosc, wartmag, nrdokmag_rozchod, 
            ndostawa1, ndostawa2, ndostawa3, ndostawa4, ndostawa5, ndostawa6
        INTO OUTFILE '/var/lib/mysql-files/zestawienie_dostaw.txt'
        FROM dostawy
        ;
    END IF;

END IF;

DROP TEMPORARY TABLE IF EXISTS tmp_wyrozniki;

END $$

/*
$Log: ht_strukt_wiek_mag.sql,v $
Revision 1.11  2026/03/04 09:03:59  apro
dodatkowe zakresy

Revision 1.10  2026/02/20 12:19:03  apro
drobne poprawki w strukturze

Revision 1.9  2025/06/30 09:59:24  apro
uwzgl. nietypowych lat obrach.

Revision 1.8  2025/06/30 08:45:43  apro
poprawki dla SImexu

Revision 1.7  2025/05/12 06:40:16  waliant
Zmienna testowa

Revision 1.6  2025/05/08 09:02:26  waliant
$SEND$ STRUKTURA_V2, grupa magazynow

Revision 1.5  2025/03/06 07:31:46  waliant
$SEND$ Warningi

Revision 1.4  2025/02/14 12:23:09  apro
mod zakresów

Revision 1.3  2024/07/15 05:03:51  apro
distinct

Revision 1.2  2024/07/03 12:43:28  apro
porpawki zest

Revision 1.1  2024/06/17 12:55:49  apro
v 0.3


*/

DELIMITER ;
