source: spip-zone/_plugins_/Association/Associaspip/exec/ventes.php @ 61063

Last change on this file since 61063 was 61063, checked in by gildas.cotomale@…, 9 years ago

harmonisation, correction et extension du filtrage des listes principales

File size: 6.0 KB
Line 
1<?php
2/***************************************************************************\
3 *  Associaspip, extension de SPIP pour gestion d'associations             *
4 *                                                                         *
5 *  Copyright (c) 2007 Bernard Blazin & François de Montlivault (V1)       *
6 *  Copyright (c) 2010-2011 Emmanuel Saint-James & Jeannot Lapin (V2)       *
7 *                                                                         *
8 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
9 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
10\***************************************************************************/
11
12
13if (!defined('_ECRIRE_INC_VERSION'))
14        return;
15
16include_spip ('inc/navigation_modules');
17include_spip('inc/association_comptabilite');
18
19function exec_ventes()
20{
21        if (!autoriser('associer', 'ventes')) {
22                include_spip('inc/minipres');
23                echo minipres();
24        } else {
25                $id_vente = intval(_request('id'));
26                if ($id_vente) { // la presence de ce parametre interdit la prise en compte d'autres (a annuler donc si presents dans la requete)
27                        $annee = sql_getfetsel("DATE_FORMAT(date_vente, '%Y')",'spip_asso_ventes', "id_vente=$id_vente"); // on recupere l'annee correspondante
28                } else {
29                        $annee = intval(_request('annee')); // on recupere l'annee requetee
30                        $id_vente = ''; // ne pas afficher ce disgracieux '0'
31                }
32                if (!$annee) {
33                        $annee = date('Y'); // par defaut c'est l'annee courante
34                        $id_vente = ''; // virer l'ID inexistant
35                }
36                onglets_association('titre_onglet_ventes');
37                // INTRO : nom du module et annee affichee
38                echo totauxinfos_intro('','ventes',$annee);
39                // TOTAUX : nombre de ventes selon etat de livraison
40                $liste_libelles = array('pair'=>'ventes_enregistrees', 'impair'=>'ventes_expediees', );
41                $liste_effectifs['pair'] = sql_countsel('spip_asso_ventes', "date_envoi<date_vente AND  DATE_FORMAT(date_vente, '%Y')=$annee ");
42                $liste_effectifs['impair'] = sql_countsel('spip_asso_ventes', "date_envoi>=date_vente AND  DATE_FORMAT(date_vente, '%Y')=$annee ");
43                echo totauxinfos_effectifs('ventes', $liste_libelles, $liste_effectifs);
44                // STATS sur les paniers/achats/commandes
45                echo totauxinfos_stats('paniers/commandes', 'ventes', array('entete_quantite'=>'quantite','entete_montant'=>'prix_vente*quantite',), "DATE_FORMAT(date_vente, '%Y')=$annee");
46                // TOTAUX : montants des ventes et des frais de port
47/* Il est interessant d'interroger le livre comptable pour des cas complexes et si on sait recuperer les achats-depenses liees aux ventes(c'est faisable s'ils ne concerne qu'un ou deux comptes) ; mais ici, les montant etant dupliques dans la table des ventes autant faire simple...
48                $data1 = sql_fetsel('SUM(recette) AS somme_recettes, SUM(depense) AS somme_depenses', 'spip_asso_comptes', "DATE_FORMAT(date, '%Y')=$annee AND imputation=".sql_quote($GLOBALS['association_metas']['pc_ventes']) );
49                $data2 = sql_fetsel('SUM(recette) AS somme_recettes, SUM(depense) AS somme_depenses', 'spip_asso_comptes', "DATE_FORMAT(date, '%Y')=$annee AND imputation=".sql_quote($GLOBALS['association_metas']['pc_frais_envoi']) );
50                echo totauxinfos_montants($annee, $data1['somme_recettes']-$data1['somme_depenses']+$data2['somme_recettes']-$data2['somme_depenses']);
51*/
52                $data = sql_fetsel('SUM(prix_vente*quantite) AS somme_ventes, SUM(frais_envoi) AS somme_frais', 'spip_asso_ventes', "DATE_FORMAT(date_vente, '%Y')=$annee" );
53                echo totauxinfos_montants($annee, $data['somme_ventes']+$data['somme_frais'], $data['somme_frais']); // les frais de port etant facturees a l'acheteur, ce sont bien des recettes... mais ces frais n'etant (normalement) pas refacturees (et devant meme etre transparents) ils n'entrent pas dans la marge (enfin, facon de dire car les couts d'acquisition ne sont pas pris en compte... le "solde" ici est le montant effectif des ventes.)
54                // datation et raccourcis
55                icones_association(array('association'), array(
56                        'ajouter_une_vente' => array('ajout-24.png', 'edit_vente'),
57                ) );
58                debut_cadre_association('ventes.gif', 'toutes_les_ventes');
59                // FILTRES
60                filtres_association(array(
61                        'annee' => array($annee, 'asso_ventes', 'vente'),
62                        'id' => $id_vente,
63                ), 'ventes');
64                //TABLEAU
65                echo "<table width='100%' class='asso_tablo' id='asso_tablo_ventes'>\n";
66                echo "<thead>\n<tr>";
67                echo '<th>'. _T('asso:entete_id') .'</th>';
68                echo '<th>'. _T('asso:entete_date') .'</th>';
69                echo '<th>'. _T('asso:entete_intitule') .'</th>';
70                echo '<th>'. _T('asso:entete_code') .'</th>';
71                echo '<th>'. _T('asso:entete_nom') .'</th>';
72                echo '<th>'. _T('asso:entete_quantite') . '</th>';
73                echo '<th>'. _T('asso:entete_montant') .'</th>';
74                echo '<th colspan="2" class="actions">'._T('asso:entete_action').'</th>';
75                echo "</tr>\n</thead><tbody>";
76                $query = sql_select('*', 'spip_asso_ventes', "DATE_FORMAT(date_vente, '%Y')=$annee", '',  'id_vente DESC') ;
77                while ($data = sql_fetch($query)) {
78                        echo '<tr class="'. ($data['date_envoi']<$data['date_vente']?'pair':'impair') . (($id_vente==$data['id_vente'])?' surligne':'') .'" id="'.$data['id_vente'].'">';
79                        echo '<td class="integer">'.$data['id_vente'].'</td>';
80                        echo '<td class="date">'. association_datefr($data['date_vente'],'dtstart') .'</td>';
81                        echo '<td class="text">'
82                                . (test_plugin_actif('CATALOGUE') && (intval($data['article'])==$data['article'])
83                                        ? association_calculer_lien_nomid('',$data['article'],'article')
84                                        : propre($data['article'])
85                                ) .'</td>';
86                        echo '<td class="texte">'.$data['code'].'</td>';
87                        echo '<td class="text">'. association_calculer_lien_nomid($data['acheteur'],$data['id_acheteur']) .'</td>';
88                        echo '<td class="decimal">'.$data['quantite'].'</td>';
89                        echo '<td class="decimal">'
90                        . association_prixfr($data['quantite']*$data['prix_vente']).'</td>';
91                        echo association_bouton_supprimer('vente', 'id='.$data['id_vente'], 'td');
92                        echo '<td class="action">'. association_bouton('mettre_a_jour_la_vente', 'edit-12.gif', 'edit_vente','id='.$data['id_vente']) . '</td>';
93                        echo "</tr>\n";
94                }
95                echo "</tbody>\n</table>\n";
96                fin_page_association();
97        }
98}
99
100?>
Note: See TracBrowser for help on using the repository browser.