]> _ Git - cubeextranet.git/commitdiff
(no commit message)
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Thu, 2 Jan 2014 10:45:14 +0000 (10:45 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Thu, 2 Jan 2014 10:45:14 +0000 (10:45 +0000)
inc/commons/class.common.core.php
inc/extranet/Controlleur/class.extranet.page.chiffres.php
inc/extranet/Controlleur/class.extranet.url.php
inc/extranet/Metier/class.extranet.document.php

index 63613ed83fa0c756dab1a255d437e72e8eec05df..96f2d37133bf98fb0737bb9f7e91dc70f75c4a52 100644 (file)
@@ -41,7 +41,7 @@ class commonCore extends cubeCore {
                        2 => __('Validé'), 3 => __('Refusé'));\r
                $this->demandes_status = array(0 => __('Non traitée'), 1 => __('Confiée à un revendeur'), 2 => __('Traitée'));\r
                $this->factures_status = array(0 => __('Brouillon'), 1 => __('Attente'),\r
-                       2 => __('Payée'), 3 => __('Annulée'), 4 => __('Avoir'));\r
+                       2 => __('Payée'), 3 => __('Annulée'), 4 => __('Avoir'), 5 => __('Impayée'));\r
                $this->books_status = array(-1 => __('Brouillon'), 0 => __('Prêt'), 1 => __('Téléchargé'), 2 => __('Facturé'));\r
                $this->agences = array('Paris', 'Montpellier');\r
                $this->demandes_type = array(0 => __('Non défini'),\r
@@ -566,14 +566,14 @@ class commonCore extends cubeCore {
                                . 'FROM devis,clients,equipiers '\r
                                . 'WHERE devis.client=clients.utilisateur_id AND devis.createur=equipiers.utilisateur_id');\r
                $this->views->createView('factures_payees', 'SELECT * FROM factures WHERE status=2');\r
-               $this->views->createView('factures_valides', 'SELECT * FROM factures WHERE status IN(1,2)');\r
+               $this->views->createView('factures_valides', 'SELECT * FROM factures WHERE status IN(1,2,5)');\r
                $this->views->createView('projets_inter', 'SELECT projets.projet_id,projets.nom,projets.status,projets.date_debut,projets.date_fin,projets.date_creation,projets.deadline,projets.devis,'\r
                                . 'YEAR(FROM_UNIXTIME(projets.date_debut)) AS annee_debut,'\r
                                . 'IF(date_fin=0,YEAR(NOW()),YEAR(FROM_UNIXTIME(projets.date_fin))) AS annee_fin,'\r
                                . 'clients.rs AS client,equipiers.prenom AS chef,equipiers.utilisateur_id AS chef_id,clients.utilisateur_id AS client_id '\r
                                . 'FROM projets JOIN clients_entreprise clients ON projets.client=clients.utilisateur_id '\r
                                . 'JOIN equipiers ON projets.chef=equipiers.utilisateur_id');\r
-               $this->views->createView('projets_facturation', 'SELECT projet,SUM(IF(status IN(1,2),total_ht,0)) AS montant_facture, SUM(IF(status=2,total_ht,0)) AS montant_paye FROM factures GROUP BY projet');\r
+               $this->views->createView('projets_facturation', 'SELECT projet,SUM(IF(status IN(1,2,5),total_ht,0)) AS montant_facture, SUM(IF(status=2,total_ht,0)) AS montant_paye FROM factures GROUP BY projet');\r
                $this->views->createView('projets_vue', 'SELECT p.*,f.montant_facture,f.montant_paye, '\r
                                . 't.jours_prevus,t.jours_consommes,t.progression,t.budget AS budget, '\r
                                . 'IF(t.budget>0,f.montant_paye/t.budget,1) AS rapport_paiement, '\r
@@ -587,9 +587,10 @@ class commonCore extends cubeCore {
                                . 'WHERE factures.projet=projets.projet_id AND clients.utilisateur_id=projets.client AND factures.createur=equipiers.utilisateur_id AND (factures.facture_id>=0 OR factures.status=1)  ');\r
                $this->views->createView('projets_timereport', 'SELECT * FROM projets_vue WHERE status=0');\r
                $this->views->createView('order_timereport', 'SELECT utilisateur_id,projet AS projet_id,MAX(date) AS derniere_activite FROM timereport,taches,projets WHERE taches.tache_id=timereport.tache_id AND taches.projet=projets.projet_id AND projets.status=0 GROUP BY utilisateur_id,taches.projet ORDER BY utilisateur_id ASC,MAX(date) DESC');\r
-               $this->views->createView('ca', 'SELECT SUM(total_ht) AS ca, YEAR(FROM_UNIXTIME(date_creation)) annee FROM factures WHERE status>0 GROUP BY annee');\r
-               $this->views->createView('cam', 'SELECT SUM(total_ht) AS ca, DATE_FORMAT(FROM_UNIXTIME(date_creation),\'%Y-%m\') mois FROM factures WHERE status>0 GROUP BY mois');\r
-               $this->views->createView('cat', 'SELECT SUM(total_ht) AS ca, CONCAT_WS(\'-\',YEAR(FROM_UNIXTIME(date_creation)),QUARTER(FROM_UNIXTIME(date_creation))) trimestre FROM factures WHERE status>0 GROUP BY trimestre');\r
+               $this->views->createView('ca', 'SELECT SUM(total_ht) AS ca, YEAR(FROM_UNIXTIME(date_creation)) annee FROM factures WHERE status BETWEEN 1 AND 4 GROUP BY annee');\r
+               $this->views->createView('cai', 'SELECT SUM(total_ht) AS ca, YEAR(FROM_UNIXTIME(date_creation)) annee FROM factures WHERE status = 5 GROUP BY annee');\r
+               $this->views->createView('cam', 'SELECT SUM(total_ht) AS ca, DATE_FORMAT(FROM_UNIXTIME(date_creation),\'%Y-%m\') mois FROM factures WHERE status BETWEEN 1 AND 4 GROUP BY mois');\r
+               $this->views->createView('cat', 'SELECT SUM(total_ht) AS ca, CONCAT_WS(\'-\',YEAR(FROM_UNIXTIME(date_creation)),QUARTER(FROM_UNIXTIME(date_creation))) trimestre FROM factures WHERE status BETWEEN 1 AND 4 GROUP BY trimestre');\r
                $this->views->createView('ftpaccess', 'SELECT email AS userid,password AS passwd,utilisateur_id AS uid,'\r
                                . '\'1000\' AS gid,CONCAT(\'' . FTPROOT . '\',utilisateur_id) AS homedir, \'/bin/false\' AS shell '\r
                                . 'FROM utilisateurs WHERE grade=0 '\r
index a63c20add56208c656cafa0d29602d24cf11c084..033d1f00705a6e27ff1f07b1a5dc6a7df5cd53b3 100644 (file)
@@ -113,6 +113,14 @@ class extranetPageChiffres {
                while ($r->fetch()) {\r
                        $chiffres[$r->annee] = $r->ca;\r
                }\r
+               // Jamais payé\r
+               $r = $core->con->select('SELECT * FROM cai');\r
+               $impayes = array();\r
+               while ($r->fetch()) {\r
+                       $impayes[$r->annee] = $r->ca;\r
+               }\r
+\r
+\r
                $res = commonPage::bh();\r
                $res .= '<table class="liste">';\r
                $res .= '<tr><td colspan="' . (count($chiffres) + 2) . '">';\r
@@ -134,6 +142,20 @@ class extranetPageChiffres {
                $res .= '<td><em>' . self::format($total) . '</em></td>';\r
                $res .= '</tr>';\r
 \r
+               $res .= '<tr><td class="right">' . __('Impayés perdus') . '</td>';\r
+               $total = 0;\r
+               foreach ($chiffres as $annee => $ca) {\r
+                       $i = '';\r
+                       if (isset($impayes[$annee])) {\r
+                               $total += $impayes[$annee];\r
+                               $i = self::format($impayes[$annee]);\r
+                       }\r
+                       $res .= '<td>' . $i . '</td>';\r
+                       \r
+               }\r
+               $res .= '<td><em>' . self::format($total) . '</em></td>';\r
+               $res .= '</tr>';\r
+\r
                $res .= '</table>';\r
                $res .= commonPage::bf();\r
                return $res;\r
index 4301d05d6d0fa8ba94264b64fb653d67e121a2b7..97c89dfae7e918f4c3fc8b008b0c62d2d3964c62 100644 (file)
@@ -1199,13 +1199,13 @@ class extranetUrl {
                                        $res .= '<td></td><td></td>';\r
                                }\r
                        } elseif ($facture->status >= 1) {\r
-                               if ($facture->status < 3) {\r
+                               if ($facture->status < 3 || $facture->status==5) {\r
                                        if ($droits) {\r
                                                $res .= '<td><a href="#" class="openContextMenu" rel="' . $context_id . '" rev="' . $facture->facture_id . '">' . $core->factures_status[$facture->status] . '</a></td>';\r
                                        } else {\r
                                                $res .= '<td>' . $core->factures_status[$facture->status] . '</td>';\r
                                        }\r
-                               } else {\r
+                               } else{\r
                                        $title = $facture->status == 3 ? __("Voir l'avoir correspondant") : __("Voir la facture annulée correspondante");\r
                                        $res .= '<td><a href="' . SITE_PATH . 'voirfacture/' . $facture->avoir . '" class="popupA4" title="' . $title . '">' . $core->factures_status[$facture->status] . '</a></td>';\r
                                }\r
index 742d721e9a974585b71b7461afb9f3c7594847a2..81510f7b29301c3e30065ce531f871f2245e69af 100644 (file)
@@ -1,5 +1,7 @@
 <?php\r
+\r
 abstract class extranetDocument extends cubeMetier {\r
+\r
        protected $lignes;\r
        protected $nom;\r
        protected $total_ht;\r
@@ -15,8 +17,7 @@ abstract class extranetDocument extends cubeMetier {
        protected $createur;\r
        protected $client;\r
 \r
-       public function saveAsPDF()\r
-       {\r
+       public function saveAsPDF() {\r
                $cesure = $this->testPDF();\r
                if ($this->isFacture() && $cesure) {\r
                        $cesure = false;\r
@@ -75,7 +76,7 @@ abstract class extranetDocument extends cubeMetier {
                $pdf->MultiCell(73, 4, self::escape($titre), 0, 'L');\r
                // blocs\r
                $pdf->setY(105);\r
-               foreach($this->lignes as $i => $ligne) {\r
+               foreach ($this->lignes as $i => $ligne) {\r
                        if ($cesure && $i == $cesure) {\r
                                fb($pdf);\r
                                $pdf->AddPage();\r
@@ -105,7 +106,7 @@ abstract class extranetDocument extends cubeMetier {
                        }\r
                }\r
                // Prix\r
-               $tva = cubeTaxes::tva($this->client->pays);\r
+               $tva = cubeTaxes::tva($this->client->pays, $this->date_creation);\r
                if (!$tva) {\r
                        $tva_text = 'EXPORT';\r
                } elseif ($tva == 'UE') {\r
@@ -117,7 +118,7 @@ abstract class extranetDocument extends cubeMetier {
                }\r
                $ttc = cubePrices::HTtoTTC($this->total_ht, $tva, 2);\r
                $ttcf = cubePrices::formatAmount($ttc, $this->client->lang);\r
-               $taxes = ($tva > 0)?cubePrices::formatAmount($ttc - $this->total_ht, $this->client->lang, 2):'';\r
+               $taxes = ($tva > 0) ? cubePrices::formatAmount($ttc - $this->total_ht, $this->client->lang, 2) : '';\r
                // Affichage du montant hors taxes\r
                $pdf->setFont('Helvetica', 'B', 10);\r
                if ($cesure) {\r
@@ -152,14 +153,13 @@ abstract class extranetDocument extends cubeMetier {
                return $pdf;\r
        }\r
 \r
-       protected function testPDF()\r
-       {\r
+       protected function testPDF() {\r
                $pdf = new FPDF('P', 'mm', 'A4');\r
                $pdf->AddPage();\r
                $pdf->SetAutoPageBreak(false);\r
                $pdf->setY(105);\r
                $pages = 1;\r
-               foreach($this->lignes as $i => $ligne) {\r
+               foreach ($this->lignes as $i => $ligne) {\r
                        $y = $pdf->getY() + 5;\r
 \r
                        $pdf->SetFont('Helvetica', 'B', 10);\r
@@ -194,8 +194,7 @@ abstract class extranetDocument extends cubeMetier {
                }\r
        }\r
 \r
-       protected function escape($str)\r
-       {\r
+       protected function escape($str) {\r
                $str = cubeText::removeOddStuff($str);\r
                return utf8_decode($str);\r
        }\r