/[openfoncier]/trunk/obj/taxe_amenagement.class.php
ViewVC logotype

Contents of /trunk/obj/taxe_amenagement.class.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3730 - (show annotations)
Fri Mar 18 11:50:26 2016 UTC (8 years, 10 months ago) by mbroquet
File size: 9833 byte(s)
Actualisation du trunk
1 <?php
2 //$Id$
3 //gen openMairie le 24/07/2015 12:20
4
5 require_once "../gen/obj/taxe_amenagement.class.php";
6
7 class taxe_amenagement extends taxe_amenagement_gen {
8
9 /**
10 * Instance de la classe om_collectivite.
11 *
12 * @var mixed
13 */
14 var $inst_om_collectivite = null;
15
16 /**
17 * Liste des champs nécessaires au calcul de l'imposition.
18 *
19 * @var array
20 */
21 var $list_fields_simulation = array(
22 "tax_su_princ_log_nb1",
23 "tax_su_princ_surf1",
24 "tax_su_princ_surf_stat1",
25 "tax_su_princ_surf2",
26 "tax_su_princ_surf_stat2",
27 "tax_su_princ_surf4",
28 "tax_su_princ_surf_stat4",
29 "tax_su_princ_surf3",
30 "tax_su_princ_surf_stat3",
31 "tax_su_secon_surf",
32 "tax_su_secon_surf_stat",
33 "tax_su_non_habit_surf1",
34 "tax_su_non_habit_surf_stat1",
35 "tax_su_non_habit_surf2",
36 "tax_su_non_habit_surf_stat2",
37 "tax_su_non_habit_surf3",
38 "tax_su_non_habit_surf_stat3",
39 "tax_empl_ten_carav_mobil_nb_cr",
40 "tax_empl_hll_nb_cr",
41 "tax_eol_haut_nb_cr",
42 "tax_sup_bass_pisc_cr",
43 "tax_pann_volt_sup_cr",
44 "tax_am_statio_ext_cr"
45 );
46
47 function __construct($id, &$dnu1 = null, $dnu2 = null) {
48 $this->constructeur($id);
49 }
50
51 /**
52 * Permet de définir l’attribut “onchange” sur chaque champ.
53 *
54 * @param object $form Formumaire
55 * @param integer $maj Mode d'insertion
56 */
57 function setOnchange(&$form, $maj) {
58 parent::setOnchange($form, $maj);
59 $form->setOnchange('tx_depart', 'VerifFloat(this, 2)');
60 $form->setOnchange('tx_reg', 'VerifFloat(this, 2)');
61 $form->setOnchange('tx_comm_secteur_1', 'VerifFloat(this, 2)');
62 $form->setOnchange('tx_comm_secteur_2', 'VerifFloat(this, 2)');
63 $form->setOnchange('tx_comm_secteur_3', 'VerifFloat(this, 2)');
64 $form->setOnchange('tx_comm_secteur_4', 'VerifFloat(this, 2)');
65 $form->setOnchange('tx_comm_secteur_5', 'VerifFloat(this, 2)');
66 $form->setOnchange('tx_comm_secteur_6', 'VerifFloat(this, 2)');
67 $form->setOnchange('tx_comm_secteur_7', 'VerifFloat(this, 2)');
68 $form->setOnchange('tx_comm_secteur_8', 'VerifFloat(this, 2)');
69 $form->setOnchange('tx_comm_secteur_9', 'VerifFloat(this, 2)');
70 $form->setOnchange('tx_comm_secteur_10', 'VerifFloat(this, 2)');
71 $form->setOnchange('tx_comm_secteur_11', 'VerifFloat(this, 2)');
72 $form->setOnchange('tx_comm_secteur_12', 'VerifFloat(this, 2)');
73 $form->setOnchange('tx_comm_secteur_13', 'VerifFloat(this, 2)');
74 $form->setOnchange('tx_comm_secteur_14', 'VerifFloat(this, 2)');
75 $form->setOnchange('tx_comm_secteur_15', 'VerifFloat(this, 2)');
76 $form->setOnchange('tx_comm_secteur_16', 'VerifFloat(this, 2)');
77 $form->setOnchange('tx_comm_secteur_17', 'VerifFloat(this, 2)');
78 $form->setOnchange('tx_comm_secteur_18', 'VerifFloat(this, 2)');
79 $form->setOnchange('tx_comm_secteur_19', 'VerifFloat(this, 2)');
80 $form->setOnchange('tx_comm_secteur_20', 'VerifFloat(this, 2)');
81 }
82
83 /**
84 * Permet de définir les valeurs des champs.
85 *
86 * @param object $form Objet formulaire
87 * @param integer $maj Mode du formulaire
88 * @param integer $validation Validation du formulaire
89 *
90 * @return void
91 */
92 function setVal(&$form, $maj, $validation) {
93 parent::setVal($form, $maj, $validation);
94
95 //
96 if ($validation == 0 && $this->getParameter('maj') == 0) {
97 //
98 $form->setVal('val_forf_surf_cstr', 705);
99 $form->setVal('val_forf_empl_tente_carav_rml', 3000);
100 $form->setVal('val_forf_empl_hll', 10000);
101 $form->setVal('val_forf_surf_piscine', 200);
102 $form->setVal('val_forf_nb_eolienne', 3000);
103 $form->setVal('val_forf_surf_pann_photo', 10);
104 $form->setVal('val_forf_nb_parking_ext', 2000);
105 $form->setVal('tx_depart', "2.00");
106 $form->setVal('tx_comm_secteur_1', "1.00");
107 }
108 }
109
110 /**
111 * Définit s'il y a un seul secteur.
112 *
113 * @return boolean
114 */
115 function has_one_secteur() {
116 // Il ne peut y avoir que 20 secteur maximum
117 for ($i=2; $i < 21; $i++) {
118 //
119 $secteur = $this->getVal('tx_comm_secteur_'.$i);
120 // Si un des secteurs de 2 à 20 n'est pas vide
121 if (!empty($secteur)) {
122 //
123 return false;
124 }
125 }
126
127 //
128 return true;
129 }
130
131 /**
132 * Calcul des montants liquidés.
133 *
134 * @param integer $secteur Numéro du secteur
135 * @param array $donnees_techniques Liste des valeurs des données techniques
136 *
137 * @return array
138 */
139 function calcul($secteur, $donnees_techniques) {
140
141 // Taux
142 $tx = array();
143 $tx['commu'] = ($this->getVal('tx_comm_secteur_'.$secteur)/100);
144 $tx['depart'] = ($this->getVal('tx_depart')/100);
145 $tx['reg'] = ($this->getVal('tx_reg')/100);
146
147 // Initialisation du tableau des résultats
148 $result = array();
149
150 // Pour chaque part
151 foreach ($tx as $key => $taux) {
152
153 // Surface résidence principale
154 $surf_log_res_princ = ($donnees_techniques['tax_su_princ_surf1'] + $donnees_techniques['tax_su_princ_surf_stat1']) + ($donnees_techniques['tax_su_princ_surf2'] + $donnees_techniques['tax_su_princ_surf_stat2']) + ($donnees_techniques['tax_su_princ_surf4'] + $donnees_techniques['tax_su_princ_surf_stat4']) + ($donnees_techniques['tax_su_princ_surf3'] + $donnees_techniques['tax_su_princ_surf_stat3']);
155
156 //
157 if ($donnees_techniques['tax_su_princ_log_nb1'] * 100 > $surf_log_res_princ) {
158
159 //
160 $cal1 = (($surf_log_res_princ / 2) + (($donnees_techniques['tax_su_princ_surf3'] + $donnees_techniques['tax_su_princ_surf_stat3']) / 2) + ($donnees_techniques['tax_su_secon_surf'] + $donnees_techniques['tax_su_secon_surf_stat']) + ($donnees_techniques['tax_su_non_habit_surf1'] + $donnees_techniques['tax_su_non_habit_surf_stat1']) + ((($donnees_techniques['tax_su_non_habit_surf2'] + $donnees_techniques['tax_su_non_habit_surf_stat2']) + ($donnees_techniques['tax_su_non_habit_surf3'] + $donnees_techniques['tax_su_non_habit_surf_stat3'])) / 2)) * $taux * $this->getVal('val_forf_surf_cstr');
161
162 } else {
163
164 //
165 $cal1 = (($donnees_techniques['tax_su_princ_log_nb1'] * 100 / 2) + (($surf_log_res_princ - ($donnees_techniques['tax_su_princ_log_nb1'] * 100))) + (($donnees_techniques['tax_su_princ_surf3'] + $donnees_techniques['tax_su_princ_surf_stat3']) / 2) + ($donnees_techniques['tax_su_secon_surf'] + $donnees_techniques['tax_su_secon_surf_stat']) + ($donnees_techniques['tax_su_non_habit_surf1'] + $donnees_techniques['tax_su_non_habit_surf_stat1']) + ((($donnees_techniques['tax_su_non_habit_surf2'] + $donnees_techniques['tax_su_non_habit_surf_stat2']) + ($donnees_techniques['tax_su_non_habit_surf3'] + $donnees_techniques['tax_su_non_habit_surf_stat3'])) / 2)) * $taux * $this->getVal('val_forf_surf_cstr');
166 }
167
168 // Calcul des autres installations
169 $cal2 = (($donnees_techniques['tax_empl_ten_carav_mobil_nb_cr'] * $this->getVal('val_forf_empl_tente_carav_rml')) + ($donnees_techniques['tax_empl_hll_nb_cr'] * $this->getVal('val_forf_empl_hll')) + ($donnees_techniques['tax_eol_haut_nb_cr'] * $this->getVal('val_forf_nb_eolienne')) + ($donnees_techniques['tax_sup_bass_pisc_cr'] * $this->getVal('val_forf_surf_piscine')) + ($donnees_techniques['tax_pann_volt_sup_cr'] * $this->getVal('val_forf_surf_pann_photo')) + ($donnees_techniques['tax_am_statio_ext_cr'] * $this->getVal('val_forf_nb_parking_ext'))) * $taux;
170
171 // Montant liquidé
172 $result[$key] = $cal1 + $cal2;
173 }
174
175 //
176 return $result;
177 }
178
179 /**
180 * Permet de modifier le fil d'Ariane.
181 *
182 * @param string $ent Fil d'Ariane
183 *
184 * @return string
185 */
186 function getFormTitle($ent) {
187
188 // Si différent de l'ajout
189 if ($this->getParameter("maj") != 0) {
190
191 $ent .= " -> ".$this->get_om_collectivite_libelle();
192 }
193
194 // Change le fil d'Ariane
195 return $ent;
196 }
197
198 /**
199 * Récupère le libellé de la collectivité.
200 *
201 * @return string
202 */
203 function get_om_collectivite_libelle() {
204 // Instance de om_collectivite
205 $om_collectivite = $this->get_inst_om_collectivite();
206
207 // Récupère la valeur du champ libelle
208 $libelle = $om_collectivite->getVal('libelle');
209
210 //
211 return $libelle;
212 }
213
214 /**
215 * Récupère l'instance de la collectivité.
216 *
217 * @param mixed $om_collectivite Identifiant de la om_collectivite
218 *
219 * @return object
220 */
221 function get_inst_om_collectivite($om_collectivite = null) {
222 //
223 if (is_null($this->inst_om_collectivite)) {
224 //
225 if (is_null($om_collectivite)) {
226 $om_collectivite = $this->getVal('om_collectivite');
227 }
228 //
229 require_once "../obj/om_collectivite.class.php";
230 $this->inst_om_collectivite = new om_collectivite($om_collectivite, $this->f->db, 0);
231 }
232 //
233 return $this->inst_om_collectivite;
234 }
235
236 /**
237 * Récupère la liste des champs nécessaires au calcul de l'imposition.
238 *
239 * @return array
240 */
241 function get_list_fields_simulation() {
242 //
243 return $this->list_fields_simulation;
244 }
245
246 }
247
248 ?>

Properties

Name Value
svn:executable

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26