50 $this->module_position =
'42';
52 $this->
name = preg_replace(
'/^mod/i',
'', get_class($this));
54 $this->
description =
"Manage and claim expense reports (transportation, meal, ...)";
55 $this->version =
'dolibarr';
56 $this->const_name =
'MAIN_MODULE_'.strtoupper($this->
name);
57 $this->picto =
'trip';
60 $this->dirs = [
"/expensereport/temp"];
63 $this->config_page_url = [
'expensereport.php'];
66 $this->hidden =
false;
68 $this->requiredby = [];
69 $this->langfiles = [
"companies",
"trips"];
74 "EXPENSEREPORT_ADDON_PDF",
77 'Name of manager to build PDF expense reports documents',
81 "EXPENSEREPORT_ADDON",
83 "mod_expensereport_jade",
84 'Name of manager to generate expense report ref number',
88 "MAIN_DELAY_EXPENSEREPORTS",
91 'Tolerance delay (in days) before alert for expense reports to approve',
95 "MAIN_DELAY_EXPENSEREPORTS_TO_PAY",
98 'Tolerance delay (in days) before alert for expense reports to pay',
112 $this->rights_class =
'expensereport';
114 $this->rights[$r][0] = 771;
115 $this->rights[$r][1] =
'Read expense reports (yours and your subordinates)';
116 $this->rights[$r][2] =
'r';
117 $this->rights[$r][3] = 0;
118 $this->rights[$r][4] =
'lire';
121 $this->rights[$r][0] = 772;
122 $this->rights[$r][1] =
'Create/modify expense reports';
123 $this->rights[$r][2] =
'w';
124 $this->rights[$r][3] = 0;
125 $this->rights[$r][4] =
'creer';
128 $this->rights[$r][0] = 773;
129 $this->rights[$r][1] =
'Delete expense reports';
130 $this->rights[$r][2] =
'd';
131 $this->rights[$r][3] = 0;
132 $this->rights[$r][4] =
'supprimer';
135 $this->rights[$r][0] = 775;
136 $this->rights[$r][1] =
'Approve expense reports';
137 $this->rights[$r][2] =
'w';
138 $this->rights[$r][3] = 0;
139 $this->rights[$r][4] =
'approve';
142 $this->rights[$r][0] = 776;
143 $this->rights[$r][1] =
'Pay expense reports';
144 $this->rights[$r][2] =
'w';
145 $this->rights[$r][3] = 0;
146 $this->rights[$r][4] =
'to_paid';
149 $this->rights[$r][0] = 777;
150 $this->rights[$r][1] =
'Read expense reports of everybody';
151 $this->rights[$r][2] =
'r';
152 $this->rights[$r][3] = 0;
153 $this->rights[$r][4] =
'readall';
156 $this->rights[$r][0] = 778;
157 $this->rights[$r][1] =
'Create expense reports for everybody';
158 $this->rights[$r][2] =
'w';
159 $this->rights[$r][3] = 0;
160 $this->rights[$r][4] =
'writeall_advance';
163 $this->rights[$r][0] = 779;
164 $this->rights[$r][1] =
'Export expense reports';
165 $this->rights[$r][2] =
'r';
166 $this->rights[$r][3] = 0;
167 $this->rights[$r][4] =
'export';
178 $this->export_code[$r] =
'expensereport_'.$r;
179 $this->export_label[$r] =
'ListTripsAndExpenses';
180 $this->export_icon[$r] =
'trip';
181 $this->export_permission[$r] = array(array(
"expensereport",
"export"));
182 $this->export_fields_array[$r] = array(
183 'd.rowid' =>
"TripId",
'd.ref' =>
'Ref',
'd.date_debut' =>
'DateStart',
'd.date_fin' =>
'DateEnd',
'd.date_create' =>
'DateCreation',
'd.date_approve' =>
'DateApprove',
184 'd.total_ht' =>
"TotalHT",
'd.total_tva' =>
'TotalVAT',
'd.total_ttc' =>
'TotalTTC',
185 'd.fk_statut' =>
'Status',
'd.paid' =>
'Paid',
186 'd.note_private' =>
'NotePrivate',
'd.note_public' =>
'NotePublic',
'd.detail_cancel' =>
'MOTIF_CANCEL',
'd.detail_refuse' =>
'MOTIF_REFUS',
187 'ed.rowid' =>
'LineId',
'tf.code' =>
'Type',
'ed.date' =>
'Date',
'ed.tva_tx' =>
'VATRate',
188 'ed.qty' =>
"Quantity",
'ed.value_unit' =>
"UnitPriceHT",
189 'ed.total_ht' =>
'TotalHT',
'ed.total_tva' =>
'TotalVAT',
'ed.total_ttc' =>
'TotalTTC',
'ed.comments' =>
'Comment',
'p.rowid' =>
'ProjectId',
'p.ref' =>
'Ref',
190 'u.lastname' =>
'Lastname',
'u.firstname' =>
'Firstname',
'u.login' =>
"Login",
191 'user_rib.iban_prefix' =>
'IBAN',
'user_rib.bic' =>
'BIC',
'user_rib.code_banque' =>
'BankCode',
'user_rib.bank' =>
'BankName',
'user_rib.proprio' =>
'BankAccountOwner',
192 'user_rib.owner_address' =>
'BankAccountOwnerAddress'
194 $this->export_TypeFields_array[$r] = array(
195 'd.rowid' =>
'Numeric',
'd.ref' =>
'Text',
'd.date_debut' =>
'Date',
'd.date_fin' =>
'Date',
'd.date_create' =>
'Date',
'd.date_approve' =>
'Date',
196 'd.total_ht' =>
"Numeric",
'd.total_tva' =>
'Numeric',
'd.total_ttc' =>
'Numeric',
197 'd.fk_statut' =>
"Numeric",
'd.paid' =>
'Numeric',
198 'd.note_private' =>
'Text',
'd.note_public' =>
'Text',
'd.detail_cancel' =>
'Text',
'd.detail_refuse' =>
'Text',
199 'ed.rowid' =>
'Numeric',
'tf.code' =>
'Code',
'ed.date' =>
'Date',
'ed.tva_tx' =>
'Numeric',
200 'ed.qty' =>
'Numeric',
'ed.value_unit' =>
'Numeric',
201 'ed.total_ht' =>
'Numeric',
'ed.total_tva' =>
'Numeric',
'ed.total_ttc' =>
'Numeric',
'ed.comments' =>
'Text',
'p.rowid' =>
'Numeric',
'p.ref' =>
'Text',
202 'u.lastname' =>
'Text',
'u.firstname' =>
'Text',
'u.login' =>
"Text",
203 'user_rib.iban_prefix' =>
'Text',
'user_rib.bic' =>
'Text',
'user_rib.code_banque' =>
'Text',
'user_rib.bank' =>
'Text',
'user_rib.proprio' =>
'Text',
204 'user_rib.owner_address' =>
'Text'
206 $this->export_entities_array[$r] = array(
207 'ed.rowid' =>
'expensereport_line',
'ed.date' =>
'expensereport_line',
208 'ed.qty' =>
'expensereport_line',
'ed.value_unit' =>
'expensereport_line',
209 'ed.tva_tx' =>
'expensereport_line',
'ed.total_ht' =>
'expensereport_line',
'ed.total_tva' =>
'expensereport_line',
'ed.total_ttc' =>
'expensereport_line',
210 'ed.comments' =>
'expensereport_line',
'tf.code' =>
'expensereport_line',
'p.project_ref' =>
'expensereport_line',
'p.rowid' =>
'project',
'p.ref' =>
'project',
211 'u.lastname' =>
'user',
'u.firstname' =>
'user',
'u.login' =>
'user',
212 'user_rib.iban_prefix' =>
'user',
'user_rib.bic' =>
'user',
'user_rib.code_banque' =>
'user',
'user_rib.bank' =>
'user',
'user_rib.proprio' =>
'user',
213 'user_rib.owner_address' =>
'user'
217 $this->export_dependencies_array[$r] = array(
'expensereport_line' =>
'ed.rowid',
'type_fees' =>
'tf.rowid');
219 $keyforselect =
'expensereport';
220 $keyforelement =
'expensereport';
221 $keyforaliasextra =
'extra';
222 include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
223 $keyforselect =
'user';
224 $keyforelement =
'user';
225 $keyforaliasextra =
'extrau';
226 include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
228 $this->export_sql_start[$r] =
'SELECT DISTINCT ';
229 $this->export_sql_end[$r] =
' FROM '.MAIN_DB_PREFIX.
'expensereport as d';
230 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'expensereport_extrafields as extra on d.rowid = extra.fk_object';
231 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'user_rib as user_rib ON user_rib.fk_user = d.fk_user_author,';
232 $this->export_sql_end[$r] .=
' '.MAIN_DB_PREFIX.
'user as u';
233 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'user_extrafields as extrau ON u.rowid = extrau.fk_object,';
234 $this->export_sql_end[$r] .=
' '.MAIN_DB_PREFIX.
'expensereport_det as ed LEFT JOIN '.MAIN_DB_PREFIX.
'c_type_fees as tf ON ed.fk_c_type_fees = tf.id';
235 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'projet as p ON ed.fk_projet = p.rowid';
236 $this->export_sql_end[$r] .=
' WHERE ed.fk_expensereport = d.rowid AND d.fk_user_author = u.rowid';
237 $this->export_sql_end[$r] .=
' AND d.entity IN ('.getEntity(
'expensereport').
')';