source: spip-zone/_plugins_/factures/trunk/formulaires/editer_facture.php @ 71568

Last change on this file since 71568 was 71568, checked in by cyril@…, 8 years ago

version 1.0.7 les fichiers echaffaudes

File size: 5.4 KB
Line 
1<?php
2/**
3 * Gestion du formulaire de d'édition de facture
4 *
5 * @plugin     Factures &amp; devis
6 * @copyright  2013
7 * @author     Cyril Marion - Ateliers CYM
8 * @licence    GNU/GPL
9 * @package    SPIP\Factures\Formulaires
10 */
11
12if (!defined('_ECRIRE_INC_VERSION')) return;
13
14include_spip('inc/actions');
15include_spip('inc/editer');
16
17/**
18 * Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet edité
19 *
20 * @param int|string $id_facture
21 *     Identifiant du facture. 'new' pour un nouveau facture.
22 * @param string $retour
23 *     URL de redirection après le traitement
24 * @param string $associer_objet
25 *     Éventuel `objet|x` indiquant de lier le facture créé à cet objet,
26 *     tel que `article|3`
27 * @param int $lier_trad
28 *     Identifiant éventuel d'un facture source d'une traduction
29 * @param string $config_fonc
30 *     Nom de la fonction ajoutant des configurations particulières au formulaire
31 * @param array $row
32 *     Valeurs de la ligne SQL du facture, si connu
33 * @param string $hidden
34 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
35 * @return string
36 *     Hash du formulaire
37 */
38function formulaires_editer_facture_identifier_dist($id_facture='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
39        return serialize(array(intval($id_facture), $associer_objet));
40}
41
42/**
43 * Chargement du formulaire d'édition de facture
44 *
45 * Déclarer les champs postés et y intégrer les valeurs par défaut
46 *
47 * @uses formulaires_editer_objet_charger()
48 *
49 * @param int|string $id_facture
50 *     Identifiant du facture. 'new' pour un nouveau facture.
51 * @param string $retour
52 *     URL de redirection après le traitement
53 * @param string $associer_objet
54 *     Éventuel `objet|x` indiquant de lier le facture créé à cet objet,
55 *     tel que `article|3`
56 * @param int $lier_trad
57 *     Identifiant éventuel d'un facture source d'une traduction
58 * @param string $config_fonc
59 *     Nom de la fonction ajoutant des configurations particulières au formulaire
60 * @param array $row
61 *     Valeurs de la ligne SQL du facture, si connu
62 * @param string $hidden
63 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
64 * @return array
65 *     Environnement du formulaire
66 */
67function formulaires_editer_facture_charger_dist($id_facture='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
68        $valeurs = formulaires_editer_objet_charger('facture',$id_facture,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
69        return $valeurs;
70}
71
72/**
73 * Vérifications du formulaire d'édition de facture
74 *
75 * Vérifier les champs postés et signaler d'éventuelles erreurs
76 *
77 * @uses formulaires_editer_objet_verifier()
78 *
79 * @param int|string $id_facture
80 *     Identifiant du facture. 'new' pour un nouveau facture.
81 * @param string $retour
82 *     URL de redirection après le traitement
83 * @param string $associer_objet
84 *     Éventuel `objet|x` indiquant de lier le facture créé à cet objet,
85 *     tel que `article|3`
86 * @param int $lier_trad
87 *     Identifiant éventuel d'un facture source d'une traduction
88 * @param string $config_fonc
89 *     Nom de la fonction ajoutant des configurations particulières au formulaire
90 * @param array $row
91 *     Valeurs de la ligne SQL du facture, si connu
92 * @param string $hidden
93 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
94 * @return array
95 *     Tableau des erreurs
96 */
97function formulaires_editer_facture_verifier_dist($id_facture='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
98        return formulaires_editer_objet_verifier('facture',$id_facture, array('num_facture', 'id_organisation_emettrice', 'id_organisation', 'date_facture', 'libelle_facture'));
99}
100
101/**
102 * Traitement du formulaire d'édition de facture
103 *
104 * Traiter les champs postés
105 *
106 * @uses formulaires_editer_objet_traiter()
107 *
108 * @param int|string $id_facture
109 *     Identifiant du facture. 'new' pour un nouveau facture.
110 * @param string $retour
111 *     URL de redirection après le traitement
112 * @param string $associer_objet
113 *     Éventuel `objet|x` indiquant de lier le facture créé à cet objet,
114 *     tel que `article|3`
115 * @param int $lier_trad
116 *     Identifiant éventuel d'un facture source d'une traduction
117 * @param string $config_fonc
118 *     Nom de la fonction ajoutant des configurations particulières au formulaire
119 * @param array $row
120 *     Valeurs de la ligne SQL du facture, si connu
121 * @param string $hidden
122 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
123 * @return array
124 *     Retours des traitements
125 */
126function formulaires_editer_facture_traiter_dist($id_facture='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
127        $res = formulaires_editer_objet_traiter('facture',$id_facture,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
128 
129        // Un lien a prendre en compte ?
130        if ($associer_objet AND $id_facture = $res['id_facture']) {
131                list($objet, $id_objet) = explode('|', $associer_objet);
132
133                if ($objet AND $id_objet AND autoriser('modifier', $objet, $id_objet)) {
134                        include_spip('action/editer_liens');
135                        objet_associer(array('facture' => $id_facture), array($objet => $id_objet));
136                        if (isset($res['redirect'])) {
137                                $res['redirect'] = parametre_url ($res['redirect'], "id_lien_ajoute", $id_facture, '&');
138                        }
139                }
140        }
141        return $res;
142
143}
144
145
146?>
Note: See TracBrowser for help on using the repository browser.