source: spip-zone/_plugins_/Association/Associaspip/formulaires/editer_asso_prets.php @ 57627

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

Pret de ressource : passage du formulaire de pret en CVT (suite)

File size: 5.4 KB
Line 
1<?php
2/***************************************************************************\
3 *  Associaspip, extension de SPIP pour gestion d'associations             *
4 *                                                                         *
5 *  Copyright (c) 2007 Bernard Blazin & Francois 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
12if (!defined("_ECRIRE_INC_VERSION")) return;
13include_spip('inc/actions');
14include_spip('inc/editer');
15include_spip('inc/association_comptabilite');
16
17function formulaires_editer_asso_prets_charger_dist($id_pret='')
18{
19        /* cet appel va charger dans $contexte tous les champs de la table spip_asso_prets associes a l'id_pret passe en param */
20        $id_pret = intval(_request('id_pret'));
21        $contexte = formulaires_editer_objet_charger('asso_prets', $id_pret, '', '',  generer_url_ecrire('prets'), '');
22
23        if (!$id_pret) { /* si c'est une nouvelle operation, on charge la date d'aujourd'hui, charge un id_compte et journal null, le statut et le prix de location de base */
24                $contexte['date_sortie'] = $contexte['date_retour'] = date('Y-m-d');
25                $contexte['commentaire_sortie'] = $contexte['commentaire_retour'] = '';
26                $id_compte = $journal = '';
27                $contexte['id_ressource'] = intval(_request('id_ressource'));;
28                $ressource = sql_fetsel("pu,statut", "spip_asso_ressources", "id_ressource=$contexte[id_ressource]");
29                $contexte['statut'] = $ressource['statut'];
30                $montant = $ressource['pu'];
31        } else { /* sinon on recupere l'id_compte correspondant et le journal dans la table des comptes */
32//              $contexte['date_retour'] = date('Y-m-d');
33                $comptes = sql_fetsel("id_compte,journal,recette", "spip_asso_comptes", "imputation=".$GLOBALS['association_metas']['pc_prets']." AND id_journal=$id_pret");
34                $id_compte = $comptes['id_compte'];
35                $journal = $comptes['journal'];
36                $montant = $comptes['recette'];
37        }
38
39        /* ajout du journal et du montant qui ne se trouvent pas dans la table asso_prets et ne sont donc pas charges par editer_objet_charger */
40        $contexte['journal'] = $journal;
41        $contexte['montant'] = $montant;
42
43        /* on concatene au _hidden inseres dans $contexte par l'appel a formulaire_editer_objet les id_compte et id_ressource qui seront utilises dans l'action editer_asso_prets */
44        $contexte['_hidden'] .= "<input type='hidden' name='id_compte' value='$id_compte' />";
45        $contexte['_hidden'] .= "<input type='hidden' name='id_ressource' value='$contexte[id_ressource]' />";
46
47        /* si id_emprunteur est egal a 0, c'est que le champ est vide, on ne prerempli rien */
48        if (!$contexte['id_emprunteur'])
49                $contexte['id_emprunteur']='';
50
51        /* paufiner la presentation des valeurs  */
52        if ($contexte['montant'])
53                $contexte['montant'] = association_nbrefr($contexte['montant']);
54
55        // on ajoute les metas de classe_banques et destinations
56        $contexte['classe_banques'] = $GLOBALS['association_metas']['classe_banques'];
57        if ($GLOBALS['association_metas']['destinations']) {
58                $contexte['destinations_on'] = true;
59                /* on recupere les destinations associes a id_compte */
60                $dest_id_montant = association_liste_destinations_associees($id_compte);
61                if (is_array($dest_id_montant)) {
62                        $contexte['id_dest'] = array_keys($dest_id_montant);
63                        $contexte['montant_dest'] = array_values($dest_id_montant);
64                } else {
65                        $contexte['id_dest'] = '';
66                        $contexte['montant_dest'] = '';
67                }
68                $contexte['unique_dest'] = true;
69                $contexte['defaut_dest'] = $GLOBALS['association_metas']['dc_prets'];; /* ces variables sont recuperees par la balise dynamique directement dans l'environnement */
70        }
71
72        return $contexte;
73}
74
75function formulaires_editer_asso_prets_verifier_dist($id_pret)
76{
77        $erreurs = array();
78
79        /* on verifie que montant et duree ne soient pas negatifs */
80        if (association_recupere_montant(_request('montant'))<0)
81                $erreurs['montant'] = _T('asso:erreur_montant');
82        if (association_recupere_montant(_request('duree'))<0)
83                $erreurs['duree'] = _T('asso:erreur_montant');
84
85        /* verifier si on a un numero d'adherent qu'il existe dans la base */
86        $id_emprunteur = intval(_request('id_emprunteur'));
87        if ($id_emprunteur != 0) {
88                if (sql_countsel('spip_asso_membres', "id_auteur=$id_emprunteur")==0) {
89                        $erreurs['id_emprunteur'] = _T('asso:erreur_id_adherent');
90                }
91        }
92
93        /* verifier les dates */
94        if ($erreur_date = association_verifier_date(_request('date_sortie'))) {
95                $erreurs['date_sortie'] = _request('date_sortie')."&nbsp;:&nbsp;".$erreur_date; /* on ajoute la date eronee entree au debut du message d'erreur car le filtre affdate corrige de lui meme et ne reaffiche plus les valeurs eronees */
96        }
97        if ($erreur_date = association_verifier_date(_request('date_retour'))) {
98                $erreurs['date_retour'] = _request('date_retour')."&nbsp;:&nbsp;".$erreur_date; /* on ajoute la date eronee entree au debut du message d'erreur car le filtre affdate corrige de lui meme et ne reaffiche plus les valeurs eronees */
99        }
100
101        /* verifier les destinations comptables */
102
103        if (count($erreurs)) {
104                $erreurs['message_erreur'] = _T('asso:erreur_titre');
105        }
106
107        return $erreurs;
108}
109
110function formulaires_editer_asso_prets_traiter($id_pret)
111{
112        return formulaires_editer_objet_traiter('asso_prets', $id_pret, '', '',  generer_url_ecrire('prets'), '');
113}
114?>
Note: See TracBrowser for help on using the repository browser.