%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/emtnaeewxm/www/src/EEM/FonctionnaliteBundle/Controller/
Upload File :
Create Path :
Current File : /home/emtnaeewxm/www/src/EEM/FonctionnaliteBundle/Controller/CaisseController.php

<?php

namespace EEM\FonctionnaliteBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;

/**
 * Reglement controller.
 *
 * @Route("/admin")
 */
class CaisseController extends Controller
{
    /**
     * Lists all reglement entities.
     *
     * @Route("/", name="accueil")
     * @Method("GET")
     * @Security("has_role('ROLE_USER')")
     */
    public function accueilAction(Request $request)
    {

        return $this->render('@EEMFonctionnalite/caisse/accueil.html.twig', array(

        ));
    }
    /**
     * Lists all reglement entities.
     *
     * @Route("/benefice", name="benefice")
     * @Method("GET")
     * @Security("has_role('ROLE_USER')")
     */
    public function beneficeAction(Request $request)
    {
        $em = $this->getDoctrine()->getManager();
        $tab_benefice = [];

        $ventes = $em->getRepository('EEMVenteBundle:Vente')->findAll();
        $recharges = $em->getRepository('EEMRechargeBundle:Recharge')->findBy(['type' => 'vente']);
        $maintenances = $em->getRepository('EEMMaintenanceBundle:Maintenance')->findAll();
        foreach ($ventes as $vente) {
            $date_vente = strtotime($vente->getDateVente()->format('Y-m-d'));
            $total_vente = 0;
            $total_vente_gros = 0;
            $total_vente_maintenance = 0;
            foreach ($vente->getLigneVentes() as $ligneVente) {
                if ($ligneVente->getArticle()->getFamille()->getPieceRechange() == true) {
                    $total_vente_maintenance += $ligneVente->getQte() * ($ligneVente->getPrixVente() - $ligneVente->getPrixAchat());
                } else {
                    if($vente->getType()=='detail'){
                        $total_vente += $ligneVente->getQte() * ($ligneVente->getPrixVente() - $ligneVente->getPrixAchat());
                    }
                    if($vente->getType()=='gros'){
                        $total_vente_gros += $ligneVente->getQte() * ($ligneVente->getPrixVente() - $ligneVente->getPrixAchat());
                    }
                }
            }

            if ($total_vente != 0) {
                if (isset($tab_benefice[$date_vente]['vente_detail'])) {
                    $new_montant = $tab_benefice[$date_vente]['vente_detail'] + $total_vente;
                } else {
                    $new_montant = $total_vente;
                }
                $tab_benefice[$date_vente]['vente_detail'] = $new_montant;
            }

            if ($total_vente_gros != 0) {
                if (isset($tab_benefice[$date_vente]['vente_gros'])) {
                    $new_montant = $tab_benefice[$date_vente]['vente_gros'] + $total_vente_gros;
                } else {
                    $new_montant = $total_vente_gros;
                }
                $tab_benefice[$date_vente]['vente_gros'] = $new_montant;
            }

            if ($total_vente_maintenance != 0) {
                if (isset($tab_benefice[$date_vente]['maintenance'])) {
                    $new_montant = $tab_benefice[$date_vente]['maintenance'] + $total_vente_maintenance;
                } else {
                    $new_montant = $total_vente_maintenance;
                }
                $tab_benefice[$date_vente]['maintenance'] = $new_montant;
            }
        }
        foreach ($maintenances as $maintenance) {
            $date_reception = strtotime($maintenance->getDateReception()->format('Y-m-d'));

            if (isset($tab_benefice[$date_reception]['maintenance'])) {
                $new_montant = $tab_benefice[$date_reception]['maintenance'] + $maintenance->getBenefice();
            } else {
                $new_montant = $maintenance->getAvance();
            }
            $tab_benefice[$date_reception]['maintenance'] = $new_montant;
        }
        foreach ($recharges as $recharge) {
            $date_recharge = strtotime($recharge->getDateRecharge()->format('Y-m-d'));
            $total_recharge = 0;
            foreach ($recharge->getLigneRecharges() as $ligneRecharge) {
                $total_recharge += $ligneRecharge->getQte() * ($ligneRecharge->getMontant() - $ligneRecharge->getMontantAchat());
            }
            if (isset($tab_benefice[$date_recharge]['recharge'])) {
                $new_montant = $tab_benefice[$date_recharge]['recharge'] + $total_recharge;
            } else {
                $new_montant = $total_recharge;
            }
            $tab_benefice[$date_recharge]['recharge'] = $new_montant;
        }

        krsort($tab_benefice);
        //echo "<pre>" . print_r($tab_benefice, 1) . "</pre>";
        $tab_source = [
            'recharge' => 'Recharge',
            'vente_detail' => 'Vente détail',
            'vente_gros' => 'Vente gros',
            'maintenance' => 'Maintenance',
        ];
        return $this->render('@EEMFonctionnalite/caisse/benefice.html.twig', array(
            'tab_benefice' => $tab_benefice,
            'tab_source' => $tab_source,
        ));
    }

    /**
     * Lists all reglement entities.
     *
     * @Route("/caisse", name="caisse_index")
     * @Method("GET")
     * @Security("has_role('ROLE_USER')")
     */
    public function caisseAction(Request $request)
    {
        $em = $this->getDoctrine()->getManager();


        $ventes = $em->getRepository('EEMVenteBundle:Vente')->findAll();
        $traites = $em->getRepository('EEMTraiteBundle:Traite')->findAll();
        $ligneTraites = $em->getRepository('EEMTraiteBundle:LigneTraite')->findBy(['etat' => 1]);
        $recharges = $em->getRepository('EEMRechargeBundle:Recharge')->findBy(['type' => 'vente']);
        $maintenances = $em->getRepository('EEMMaintenanceBundle:Maintenance')->findAll();
        $changements = $em->getRepository('EEMVenteBundle:Changement')->findAll();
        $tab_caisse = [];
        foreach ($ventes as $vente) {
            $date_vente = strtotime($vente->getDateVente()->format('Y-m-d'));
            $total_vente = 0;
            //$total_vente_gros = 0;
            $total_maintenance = 0;
            foreach ($vente->getLigneVentes() as $ligneVente) {
                if ($ligneVente->getArticle()->getFamille()->getPieceRechange() == true) {
                    $total_maintenance += $ligneVente->getQte() * $ligneVente->getPrixVente();
                } else {
                    if($vente->getType()=='detail'){
                        $total_vente += $ligneVente->getQte() * $ligneVente->getPrixVente();
                    }
                    /*if($vente->getType()=='gros'){
                        $total_vente_gros += $ligneVente->getQte() * $ligneVente->getPrixVente();
                    }*/
                }
            }
            if ($total_vente != 0) {
                if (isset($tab_caisse[$date_vente]['vente_detail'])) {
                    $new_montant = $tab_caisse[$date_vente]['vente_detail'] + $total_vente;
                } else {
                    $new_montant = $total_vente;
                }
                $tab_caisse[$date_vente]['vente_detail'] = $new_montant;
            }

            /*if ($total_vente_gros != 0) {
                if (isset($tab_caisse[$date_vente]['vente_gros'])) {
                    $new_montant = $tab_caisse[$date_vente]['vente_gros'] + $total_vente_gros;
                } else {
                    $new_montant = $total_vente_gros;
                }
                $tab_caisse[$date_vente]['vente_gros'] = $new_montant;
            }*/

            if ($total_maintenance != 0) {
                if (isset($tab_caisse[$date_vente]['maintenance'])) {
                    $new_montant = $tab_caisse[$date_vente]['maintenance'] + $total_maintenance;
                } else {
                    $new_montant = $total_maintenance;
                }
                $tab_caisse[$date_vente]['maintenance'] = $new_montant;
            }
        }
        foreach ($recharges as $recharge) {
            $date_recharge = strtotime($recharge->getDateRecharge()->format('Y-m-d'));
            $total_recharge = 0;
            foreach ($recharge->getLigneRecharges() as $ligneRecharge) {
                $total_recharge += $ligneRecharge->getQte() * $ligneRecharge->getMontant();
            }
            if (isset($tab_caisse[$date_recharge]['recharge'])) {
                $new_montant = $tab_caisse[$date_recharge]['recharge'] + $total_recharge;
            } else {
                $new_montant = $total_recharge;
            }
            $tab_caisse[$date_recharge]['recharge'] = $new_montant;
        }
        foreach ($maintenances as $maintenance) {
            //avance maintenance
            $date_reception = strtotime($maintenance->getDateReception()->format('Y-m-d'));

            if (isset($tab_caisse[$date_reception]['maintenance'])) {
                $new_montant = $tab_caisse[$date_reception]['maintenance'] + $maintenance->getAvance();
            } else {
                $new_montant = $maintenance->getAvance();
            }
            $tab_caisse[$date_reception]['maintenance'] = $new_montant;
            //reste maintenance
            if (!empty($maintenance->getDateSortie()) && $maintenance->getRestePayer() > 0) {
                $date_sortie = strtotime($maintenance->getDateSortie()->format('Y-m-d'));

                if (isset($tab_caisse[$date_sortie]['maintenance'])) {
                    $new_montant = $tab_caisse[$date_sortie]['maintenance'] + $maintenance->getRestePayer();
                } else {
                    $new_montant = $maintenance->getRestePayer();
                }
                $tab_caisse[$date_sortie]['maintenance'] = $new_montant;
            }

        }

        foreach ($traites as $traite) {
            $date_traite = strtotime($traite->getDateTraite()->format('Y-m-d'));
            if (isset($tab_caisse[$date_traite]['avance_traite'])) {
                $new_montant = $tab_caisse[$date_traite]['avance_traite'] + $traite->getMontantAvance();
            } else {
                $new_montant = $traite->getMontantAvance();
            }
            $tab_caisse[$date_traite]['avance_traite'] = $new_montant;
        }

        foreach ($ligneTraites as $ligne_traite) {
            $date_ligne_traite = strtotime($ligne_traite->getDatePaiement()->format('Y-m-d'));
            if (isset($tab_caisse[$date_ligne_traite]['traite'])) {
                $new_montant = $tab_caisse[$date_ligne_traite]['traite'] + $ligne_traite->getMontant();
            } else {
                $new_montant = $ligne_traite->getMontant();
            }
            $tab_caisse[$date_ligne_traite]['traite'] = $new_montant;
        }

        foreach ($changements as $changement) {

            $date_changement = strtotime($changement->getDateChangement()->format('Y-m-d'));
            $difference = ($changement->getPrixChangee() * $changement->getQteChangee()) - ($changement->getPrixAChangee() * $changement->getQteAChangee());
            if (isset($tab_caisse[$date_changement]['changement'])) {
                $new_montant = $tab_caisse[$date_changement]['changement'] + $difference;
            } else {
                $new_montant = $difference;
            }
            $tab_caisse[$date_changement]['changement'] = $new_montant;
        }
        krsort($tab_caisse);
        //echo "<pre>" . print_r($tab_caisse, 1) . "</pre>";
        $tab_source = [
            'reglement' => 'Réglement',
            'recharge' => 'Recharge',
            'vente_detail' => 'Vente détail',
            'vente_gros' => 'Vente gros',
            'traite' => 'Traite',
            'avance_traite' => 'Avance traite',
            'maintenance' => 'Maintenance',
            'changement' => 'Changement',
        ];
        return $this->render('@EEMFonctionnalite/caisse/index.html.twig', array(
            'tab_caisse' => $tab_caisse,
            'tab_source' => $tab_source,
        ));
    }
}

Zerion Mini Shell 1.0