Untitled

mail@pastecode.io avatar
unknown
php
2 months ago
12 kB
1
Indexable
Never
public function getKomisiSales(&$out_komisi1, &$out_komisi2, &$out_komisi3, &$out_komisi4)
    {
       
        //$out_komisi1 = 0; $out_komisi2 = 0; $out_komisi3 = 0; $out_komisi4 = 0;

        $row_hd = $this->header[0];	
        $this->sales1 = (isset($row_hd["KodeSales"])) ? $row_hd["KodeSales"] : $row_hd["kodesales"];
        $this->sales2 = (isset($row_hd["KodeSales2"]) ? $row_hd["KodeSales2"] : $row_hd["kodesales2"]);
        $this->sales3 = (isset($row_hd["KodeSales3"]) ? $row_hd["KodeSales3"] : $row_hd["kodesales3"]);
        $this->sales4 = (isset($row_hd["KodeSales4"]) ? $row_hd["KodeSales4"] : $row_hd["kodesales4"]);

        $this->nilai_komisi1 = (isset($row_hd["Komisi1"]) ? $row_hd["Komisi1"] : $row_hd["komisi1"]);
        $this->nilai_komisi2 = (isset($row_hd["Komisi2"]) ? $row_hd["Komisi2"] : $row_hd["komisi2"]);
        $this->nilai_komisi3 = (isset($row_hd["Komisi3"]) ? $row_hd["Komisi3"] : $row_hd["komisi3"]);
        $this->nilai_komisi4 = (isset($row_hd["Komisi4"]) ? $row_hd["Komisi4"] : $row_hd["komisi4"]);
      
        $strSQL = "SELECT 1 as slid, tbl_supel.kode, tbl_supel.pilkomisi, tbl_supel.piljmlkomisi, tbl_supel.komisipr, tbl_supel.komisinom, tbl_supel.periode_hari1, tbl_supel.periode_hari2, tbl_supel.periode_hari3, tbl_supel.periode_hari4, tbl_supel.periode_persen1, tbl_supel.periode_persen2, tbl_supel.periode_persen3, tbl_supel.periode_persen4
                    FROM tbl_supel WHERE (tbl_supel.kode = :s1) AND (tbl_supel.tipe = 'SE')
                    UNION 
                    SELECT 2 as slid, tbl_supel.kode, tbl_supel.pilkomisi, tbl_supel.piljmlkomisi, tbl_supel.komisipr, tbl_supel.komisinom, tbl_supel.periode_hari1, tbl_supel.periode_hari2, tbl_supel.periode_hari3, tbl_supel.periode_hari4, tbl_supel.periode_persen1, tbl_supel.periode_persen2, tbl_supel.periode_persen3, tbl_supel.periode_persen4
                    FROM tbl_supel WHERE (tbl_supel.kode = :s2) AND (tbl_supel.tipe = 'SE') 
                    UNION 
                    SELECT 3 as slid, tbl_supel.kode, tbl_supel.pilkomisi, tbl_supel.piljmlkomisi, tbl_supel.komisipr, tbl_supel.komisinom, tbl_supel.periode_hari1, tbl_supel.periode_hari2, tbl_supel.periode_hari3, tbl_supel.periode_hari4, tbl_supel.periode_persen1, tbl_supel.periode_persen2, tbl_supel.periode_persen3, tbl_supel.periode_persen4
                    FROM tbl_supel WHERE (tbl_supel.kode = :s3) AND (tbl_supel.tipe = 'SE') 
                    UNION 
                    SELECT 4 as slid, tbl_supel.kode, tbl_supel.pilkomisi, tbl_supel.piljmlkomisi, tbl_supel.komisipr, tbl_supel.komisinom, tbl_supel.periode_hari1, tbl_supel.periode_hari2, tbl_supel.periode_hari3, tbl_supel.periode_hari4, tbl_supel.periode_persen1, tbl_supel.periode_persen2, tbl_supel.periode_persen3, tbl_supel.periode_persen4
                    FROM tbl_supel WHERE (tbl_supel.kode = :s4) AND (tbl_supel.tipe = 'SE') ";
      

        $data = new XData(AppConfig::$PAGE_CONN);		
        $data->SetSQL($strSQL);		
        $data->AddParameter(":s1", $this->sales1);
        $data->AddParameter(":s2", $this->sales2);
        $data->AddParameter(":s3", $this->sales3);
        $data->AddParameter(":s4", $this->sales4);
        
        $rows = null;
        $_error = "";
        $bRes = $data->ExceuteQuery($rows, $_error);

        if (! $bRes)
        {	
            return;
        }
        
        $this->opsi_komisi1 = 0;
        $this->opsi_komisi2 = 0;
        $this->opsi_komisi3 = 0;
        $this->opsi_komisi4 = 0;
    
        $this->opsi_nomproc_komisi1 = 0;
        $this->opsi_nomproc_komisi2 = 0;
        $this->opsi_nomproc_komisi3 = 0;
        $this->opsi_nomproc_komisi4 = 0;
    
        if ($rows != null)  
        {
            // memastikan rows adalah array jika null
            if ($rows == null || $rows == "") $rows = [];	
            foreach($rows as $row)
            {
                $id = $row["slid"];
                $opsikomisi  = $row["pilkomisi"];    
                $opsinomproc = $row["piljmlkomisi"];          
                $nilai_nom   = $row["komisinom"]; 
                $nilai_proc  = $row["komisipr"];

                if($opsinomproc == 3){
                    $opsinomproc = 1;
                    if($row_hd['JmlKredit'] == 0){
                        $nilai_proc = $row["periode_persen1"];
                    }else{
                        if($row_hd["krd_jml_byr"] == $row_hd["jmlkredit"] && isset($row_hd["tgl_lunas"])){
                            $diff = $this->hitung_selisih_hari($row_hd["tanggal"], $row_hd["tgl_lunas"]);
                            $nilai_proc = $row["periode_persen1"];
                            if($diff > $row["periode_hari1"]){
                                $nilai_proc = $row["periode_persen2"];
                            }elseif($diff > $row["periode_hari2"]){
                                $nilai_proc = $row["periode_persen3"];
                            }elseif($diff > $row["periode_hari3"]){
                                $nilai_proc = $row["periode_persen4"];
                            }else{
                                $nilai_proc = $row["periode_persen1"];
                            }
                        }
                    }
                }

                if ($id == 1)
                {
                    $this->opsi_komisi1 = $opsikomisi;
                    $this->opsi_nomproc_komisi1 = $opsinomproc; 
                    
                    if ($this->opsi_nomproc_komisi1 == 1)
                        $this->komisi1 = $nilai_proc;
                    else if ($this->opsi_nomproc_komisi1 == 2)
                        $this->komisi1 = $nilai_nom;
                }
                else if ($id == 2)
                {
                    $this->opsi_komisi2 = $opsikomisi;
                    $this->opsi_nomproc_komisi2 = $opsinomproc; 
                    
                    if ($this->opsi_nomproc_komisi2 == 1)
                        $this->komisi2 = $nilai_proc;
                    else if ($this->opsi_nomproc_komisi2 == 2)
                        $this->komisi2 = $nilai_nom;
                }
                else if ($id == 3)
                {
                    $this->opsi_komisi3 = $opsikomisi;
                    $this->opsi_nomproc_komisi3 = $opsinomproc; 
                    
                    if ($this->opsi_nomproc_komisi3 == 1)
                        $this->komisi3 = $nilai_proc;
                    else if ($this->opsi_nomproc_komisi3 == 2)
                        $this->komisi3 = $nilai_nom;
                }
                else if ($id == 4)
                {
                    $this->opsi_komisi4 = $opsikomisi;
                    $this->opsi_nomproc_komisi4 = $opsinomproc; 
                    
                    if ($this->opsi_nomproc_komisi4 == 1)
                        $this->komisi4 = $nilai_proc;
                    else if ($this->opsi_nomproc_komisi4 == 2)
                        $this->komisi4 = $nilai_nom;
                }
            }
            
        }
       

        // reset nilai komisi //
        if ($this->opsi_komisi1 != 0)
            $this->nilai_komisi1 = 0;

        if ($this->opsi_komisi2 != 0)
            $this->nilai_komisi2 = 0;

        if ($this->opsi_komisi3 != 0)
            $this->nilai_komisi3 = 0;

        if ($this->opsi_komisi4 != 0)
            $this->nilai_komisi4 = 0;


        // Komisi Tipe 2 = Per Faktur
        $totalAkhir = $row_hd["TotalAkhir"];
        if ($this->opsi_komisi1 == 2)
        {
            if ($this->opsi_nomproc_komisi1 == 1)
                $this->nilai_komisi1 = ($this->komisi1 / 100) * $totalAkhir;
            else
                $this->nilai_komisi1 = $this->komisi1;
        }
       
        if ($this->opsi_komisi2 == 2)
        {
            if ($this->opsi_nomproc_komisi2 == 1)
                $this->nilai_komisi2 = ($this->komisi2 / 100) * $totalAkhir;
            else
                $this->nilai_komisi2 = $this->komisi2;
        }

        if ($this->opsi_komisi3 == 2)
        {
            if ($this->opsi_nomproc_komisi3 == 1)
                $this->nilai_komisi3 = ($this->komisi3 / 100) * $totalAkhir;
            else
                $this->nilai_komisi3 = $this->komisi3;
        }

        if ($this->opsi_komisi4 == 2)
        {
            if ($this->opsi_nomproc_komisi4 == 1)
                $this->nilai_komisi4 = ($this->komisi4 / 100) * $totalAkhir;
            else
                $this->nilai_komisi4 = $this->komisi4;
        }

        // Komisi Tipe 4 = Per Faktur Netto
        $subTotal 	    = $row_hd["SubTotal"];
        $potNomFaktur 	= $row_hd["PotNomFaktur"];
        $netto          = $subTotal - $potNomFaktur;

        if ($this->opsi_komisi1 == 4)
        {
            if ($this->opsi_nomproc_komisi1 == 1)
                $this->nilai_komisi1 = ($this->komisi1 / 100) * ($netto);
            else
                $this->nilai_komisi1 = $this->komisi1;
        }

        if ($this->opsi_komisi2 == 4)
        {
            if ($this->opsi_nomproc_komisi2 == 1)
                $this->nilai_komisi2 = ($this->komisi2 / 100) * $netto;
            else
                $this->nilai_komisi2 = $this->komisi2;
        }

        if ($this->opsi_komisi3 == 4)
        {
            if ($this->opsi_nomproc_komisi3 == 1)
                $this->nilai_komisi3 = ($this->komisi3 / 100) * $netto;
            else
                $this->nilai_komisi3 = $this->komisi3;
        }

        if ($this->opsi_komisi4 == 4)
        {
            if ($this->opsi_nomproc_komisi4 == 1)
                $this->nilai_komisi4 = ($this->komisi4 / 100) * $netto;
            else
                $this->nilai_komisi4 = $this->komisi4;
        }


        foreach($this->detail as $row)
		{
            
            $kodeitem 	= $row["KodeItem"];
            $satuan 	= $row["Satuan"];
			$jumlah 	= $row["Jumlah"];
            $total 		= $row["Total"];
            
            // Komisi Tipe 1 = Per Barang Harga Jual
            if ($this->opsi_komisi1 == 1)
            {
                if ($this->opsi_nomproc_komisi1 == 1)
                    $this->nilai_komisi1 += ($this->komisi1 / 100) * $total;
                else
                    $this->nilai_komisi1 += $this->komisi1 * $jumlah;
            }
            
            if ($this->opsi_komisi2 == 1)
            {
                if ($this->opsi_nomproc_komisi2 == 1)
                    $this->nilai_komisi2 += ($this->komisi2 / 100) * $total;
                else
                    $this->nilai_komisi2 += $this->komisi2 * $jumlah;
            }

            if ($this->opsi_komisi3 == 1)
            {
                if ($this->opsi_nomproc_komisi3 == 1)
                    $this->nilai_komisi3 += ($this->komisi3 / 100) * $total;
                else
                    $this->nilai_komisi3 += $this->komisi3 * $jumlah;
            }

            if ($this->opsi_komisi4 == 1)
            {
                if ($this->opsi_nomproc_komisi4 == 1)
                    $this->nilai_komisi4 += ($this->komisi4 / 100) * $total;
                else
                    $this->nilai_komisi4 += $this->komisi4 * $jumlah;
            }

            // Komisi Tipe 2 = Per Item
            if ($this->opsi_komisi1 == 3)
            {
                $this->nilai_komisi1 += $this->GetKomisiPerItem($kodeitem, $satuan, $jumlah);
            }

            if ($this->opsi_komisi2 == 3)
            {
                $this->nilai_komisi2 += $this->GetKomisiPerItem($kodeitem, $satuan, $jumlah);
            }

            if ($this->opsi_komisi3 == 3)
            {
                $this->nilai_komisi3 += $this->GetKomisiPerItem($kodeitem, $satuan, $jumlah);
            }

            if ($this->opsi_komisi4 == 3)
            {
                $this->nilai_komisi4 += $this->GetKomisiPerItem($kodeitem, $satuan, $jumlah);
            }

        }

        $out_komisi1 = $this->nilai_komisi1; 
        $out_komisi2 = $this->nilai_komisi2; 
        $out_komisi3 = $this->nilai_komisi3; 
        $out_komisi4 = $this->nilai_komisi4;   

    }
Leave a Comment