<?php

include 'requires.php';

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;


class compareController
{

    const TYP_MM = 9,
         TYP_PZ = 10,
        TYP_WZ = 11,
        TYP_PW = 12;

    private $sl_cechy;

    public function __construct()
    {
        $this->sl_cechy = $this->getSlCechy();
    }

    private function getSlCechy(){

        $db = new connectionController;
        $pdo = $db->getPdo();

        $cechy = $pdo->query("SELECT s.* FROM dbo.sl_CechaTw s ");
        $cechy = $cechy->fetchAll();

        $filtered = [];

        foreach ($cechy as $cecha){

            $filtered[$cecha['ctw_Id']] = $cecha['ctw_Nazwa'];

        }

        return $filtered;

    }
	


    public function indexAction()
    {
		
		
        $db = new connectionController;
        $pdo2 = $db->getPdo2();
		$db2 = new connectionController;
		$pdoSpedimex = $db2->getPdoSpedimex();
        $tw = new twigController;
        $twig = $tw->getTwig();
		
		if(isset($_GET['ZD'])){
            $ZD = $_GET['ZD'];
			echo $ZD;
        }
		
		
		else{
			$ZD = ' ';
		}
		$ZD = "N'$ZD'";
		//die(var_dump($ZD));
		$ZDid = '1';
		$CzyMM = $ZD[2].$ZD[3];
		
		if ($CzyMM == "ZK") {
						
						 $WMS = $pdoSpedimex->query('SELECT        dbo.ORDERS_ITEM.*, dbo.ORDERS_HEADER.*
						FROM            dbo.ORDERS_ITEM INNER JOIN
                         dbo.ORDERS_HEADER ON dbo.ORDERS_ITEM.HEADER_ID = dbo.ORDERS_HEADER.id
							WHERE        (dbo.ORDERS_HEADER.SN = '. $ZD .')
							ORDER BY dbo.ORDERS_ITEM.ITEM_LINE_NO  ');
							// echo "<pre>";
								
			$WMS = $WMS->fetchAll();
						
						}
						else
						{
         $WMS = $pdoSpedimex->query('SELECT        dbo.ITEM.*, dbo.HEADER.*
						FROM            dbo.ITEM INNER JOIN
                         dbo.HEADER ON dbo.ITEM.HEADER_ID = dbo.HEADER.id
							WHERE        (dbo.HEADER.SN = '. $ZD .')
							ORDER BY dbo.ITEM.ITEM_LINE_NO  ');
							// echo "<pre>";
								
			$WMS = $WMS->fetchAll();
						}
								if ($CzyMM == "ZK") {
									         $Send_to_WMS = $pdoSpedimex->query('SELECT dbo.Send_HEADER.*, dbo.Send_ITEM.*
FROM            dbo.Send_ITEM INNER JOIN
                         dbo.Send_HEADER ON dbo.Send_ITEM.HEADER_ID = dbo.Send_HEADER.id
WHERE        (dbo.Send_HEADER.SN = '. $ZD .')
ORDER BY dbo.Send_ITEM.ITEM_LINE_NO ');
 $Send_to_WMS =  $Send_to_WMS->fetchAll();
								}
								else
								{
						
         $Send_to_WMS = $pdoSpedimex->query('SELECT dbo.Send_HEADER.*, dbo.Send_ITEM.*
FROM            dbo.Send_ITEM INNER JOIN
                         dbo.Send_HEADER ON dbo.Send_ITEM.HEADER_ID = dbo.Send_HEADER.id
WHERE        (dbo.Send_HEADER.SN = '. $ZD .')
ORDER BY dbo.Send_ITEM.ITEM_LINE_NO ');
 $Send_to_WMS =  $Send_to_WMS->fetchAll();
								}
							// echo "<pre>";
							// echo "<pre>";
							
							
	

						if ($CzyMM == "MM"){
							//echo $CzyMM;
							$Subiekt = $pdo2->query('SELECT        dbo.tw__Towar.tw_Symbol, dbo.dok_Pozycja.ob_Id, dbo.dok_Pozycja.ob_DoId, dbo.dok_Pozycja.ob_Znak, dbo.dok_Pozycja.ob_Status, dbo.dok_Pozycja.ob_DokHanId, dbo.dok_Pozycja.ob_DokMagId, 
                         dbo.dok_Pozycja.ob_TowId, dbo.dok_Pozycja.ob_TowRodzaj, dbo.dok_Pozycja.ob_Opis, dbo.dok_Pozycja.ob_DokHanLp, dbo.dok_Pozycja.ob_DokMagLp, dbo.dok_Pozycja.ob_Ilosc, dbo.dok_Pozycja.ob_IloscMag, 
                         dbo.dok_Pozycja.ob_Jm, dbo.dok_Pozycja.ob_CenaMag, dbo.dok_Pozycja.ob_CenaWaluta, dbo.dok_Pozycja.ob_CenaNetto, dbo.dok_Pozycja.ob_CenaBrutto, dbo.dok_Pozycja.ob_Rabat, dbo.dok_Pozycja.ob_WartMag, 
                         dbo.dok_Pozycja.ob_WartNetto, dbo.dok_Pozycja.ob_WartVat, dbo.dok_Pozycja.ob_WartBrutto, dbo.dok_Pozycja.ob_VatId, dbo.dok_Pozycja.ob_VatProc, dbo.dok_Pozycja.ob_Termin, dbo.dok_Pozycja.ob_MagId, 
                         dbo.dok_Pozycja.ob_NumerSeryjny, dbo.dok_Pozycja.ob_KategoriaId, dbo.dok_Pozycja.ob_Akcyza, dbo.dok_Pozycja.ob_AkcyzaKwota, dbo.dok_Pozycja.ob_AkcyzaWartosc, dbo.dok_Pozycja.ob_CenaNabycia, 
                         dbo.dok_Pozycja.ob_WartNabycia, dbo.dok_Pozycja.ob_PrzyczynaKorektyId, dbo.dok_Pozycja.ob_CenaPobranaZCennika, dbo.dok_Pozycja.ob_TowPkwiu, dbo.dok_Pozycja.ob_TowKodCN, dbo.dok_Pozycja.ob_SyncId, 
                         dbo.dok_Pozycja.ob_OplCukrowaPodlega, dbo.dok_Pozycja.ob_OplCukrowaObj, dbo.dok_Pozycja.ob_OplCukrowaKwCukier, dbo.dok_Pozycja.ob_OplCukrowaKwKofeina, dbo.dok_Pozycja.ob_OplCukrowaKwSuma, 
                         dbo.dok_Pozycja.ob_OplCukrowaWartCukier, dbo.dok_Pozycja.ob_OplCukrowaWartKofeina, dbo.dok_Pozycja.ob_OplCukrowaWartSuma, dbo.dok_Pozycja.ob_OplCukrowaKwCukierEx, 
                         dbo.dok_Pozycja.ob_OplCukrowaParametry, dbo.dok_Pozycja.ob_OplCukrowaCukierZawartoscEx, dbo.dok__Dokument.dok_NrPelny AS dok_NrPelnyPZ, dbo.pw_Dane.pwd_Tekst03
FROM            dbo.dok_Pozycja INNER JOIN
                         dbo.dok__Dokument ON dbo.dok_Pozycja.ob_DokMagId = dbo.dok__Dokument.dok_Id INNER JOIN
                         dbo.tw__Towar ON dbo.dok_Pozycja.ob_TowId = dbo.tw__Towar.tw_Id INNER JOIN
                         dbo.pw_Dane ON dbo.dok__Dokument.dok_Id = dbo.pw_Dane.pwd_IdObiektu
WHERE        (dbo.pw_Dane.pwd_Tekst03 = '.$ZD.')
ORDER BY dbo.dok_Pozycja.ob_DokMagLp');



						}
						elseif ($CzyMM == "ZK") {
						echo $CzyMM;//"ZK";
						
											$Subiekt = $pdo2->query('		 SELECT        dbo.tw__Towar.tw_Symbol, dbo.dok_Pozycja.*, dok__Dokument_1.dok_NrPelny,  dok__Dokument.dok_NrPelny as dok_NrPelnyPZ
FROM            dbo.dok_Pozycja INNER JOIN
                         dbo.dok__Dokument ON dbo.dok_Pozycja.ob_DokMagId = dbo.dok__Dokument.dok_Id INNER JOIN
                         dbo.dok__Dokument AS dok__Dokument_1 ON dbo.dok__Dokument.dok_Id = dok__Dokument_1.dok_DoDokId INNER JOIN
                         dbo.tw__Towar ON dbo.dok_Pozycja.ob_TowId = dbo.tw__Towar.tw_Id
WHERE        (dok__Dokument_1.dok_NrPelny = '. $ZD .')
ORDER BY dok_Pozycja.ob_DokMagLp');
						}
						
						else
						{	
					$Subiekt = $pdo2->query('		 SELECT        dbo.tw__Towar.tw_Symbol, dbo.dok_Pozycja.*, dok__Dokument_1.dok_NrPelny,  dok__Dokument.dok_NrPelny as dok_NrPelnyPZ
FROM            dbo.dok_Pozycja INNER JOIN
                         dbo.dok__Dokument ON dbo.dok_Pozycja.ob_DokMagId = dbo.dok__Dokument.dok_Id INNER JOIN
                         dbo.dok__Dokument AS dok__Dokument_1 ON dbo.dok__Dokument.dok_Id = dok__Dokument_1.dok_DoDokId INNER JOIN
                         dbo.tw__Towar ON dbo.dok_Pozycja.ob_TowId = dbo.tw__Towar.tw_Id
WHERE        (dok__Dokument_1.dok_NrPelny = '. $ZD .')
ORDER BY dok_Pozycja.ob_DokMagLp');
						}
							$Subiekt=  $Subiekt->fetchAll();	
						
//die(var_dump($WMS2));
		return $twig->display('\compare\compare.html', array('WMS' => $WMS,'Send_to_WMS' => $Send_to_WMS ,'Subiekt' => $Subiekt));


    }

    private function getDocTypes(){

        $docTypes[1] = ['short' => 'FS', 'name' => 'Faktura VAT sprzedaży', 'id' => 2];
        //$docTypes[2] = ['short' => 'FSzal', 'name' => 'Faktura sprzedaży zaliczkowa', 'id' => ];
        //$docTypes[3] = ['short' => 'FSz', 'name' => 'Faktura sprzedaży zbiorcza', 'id' => ];
        $docTypes[4] = ['short' => 'FM', 'name' => 'Faktura sprzedaży marżą', 'id' => 62];
        $docTypes[5] = ['short' => 'RS', 'name' => 'Rachunek sprzedaży', 'id' => 4];
        $docTypes[6] = ['short' => 'KFS', 'name' => 'Korekta faktury VAT sprzedaży', 'id' => 6];
        //$docTypes[7] = ['short' => 'KFSn', 'name' => 'Korekta faktury sprzedaży do nieistniejącego', 'id' => ];
        //$docTypes[8] = ['short' => 'KFSzc', 'name' => 'Korekta faktury sprzedaży zaliczkowej', 'id' => ];
        $docTypes[9] = ['short' => 'KFM', 'name' => 'Korekta faktury VAT marżą', 'id' => 67];
        //$docTypes[10] = ['short' => 'KFMn', 'name' => 'Korekta faktury marża do nieistniejącego', 'id' => ];
        //$docTypes[11] = ['short' => 'FSd', 'name' => 'Faktura sprzedaży detaliczna', 'id' => ];
        $docTypes[12] = ['short' => 'PA', 'name' => 'Paragon', 'id' => 21];
        //$docTypes[13] = ['short' => 'PAi', 'name' => 'Paragon imienny', 'id' => ];
        //$docTypes[14] = ['short' => 'PAf', 'name' => 'Paragoon fiskalny', 'id' => ];
        //$docTypes[15] = ['short' => 'PAk', 'name' => 'Paragon odebrany z kasy', 'id' => ];
        $docTypes[16] = ['short' => 'ZW', 'name' => 'Zwrot ze sprzedaży detalicznej', 'id' => 14];
        //$docTypes[17] = ['short' => 'ZWn', 'name' => 'Zwrot do nieistniejącego', 'id' => ];


        return $docTypes;

    }

    private function print_mem()
    {
        /* Currently used memory */
        $mem_usage = memory_get_usage();

        /* Peak memory usage */
        $mem_peak = memory_get_peak_usage();

        echo 'The script is now using: <strong>' . round($mem_usage / 1024 / 1024) . 'MB</strong> of memory.<br>';
        echo 'Peak usage: <strong>' . round($mem_peak / 1024 / 1024) . 'MB</strong> of memory.<br><br>';
    }

}


?>
