48 $this->module_position =
'42';
50 $this->
name = preg_replace(
'/^mod/i',
'', get_class($this));
52 $this->
description =
"Manage and claim expense reports (transportation, meal, ...)";
53 $this->version =
'dolibarr';
54 $this->const_name =
'MAIN_MODULE_'.strtoupper($this->
name);
55 $this->picto =
'trip';
58 $this->dirs = array(
"/expensereport/temp");
62 $this->config_page_url = array(
'expensereport.php');
65 $this->hidden =
false;
66 $this->depends = array();
68 $this->requiredby = array();
69 $this->phpmin = array(7, 0);
70 $this->need_dolibarr_version = array(3, 7);
71 $this->langfiles = array(
"companies",
"trips");
74 $this->
const = array();
77 $this->
const[$r][0] =
"EXPENSEREPORT_ADDON_PDF";
78 $this->
const[$r][1] =
"chaine";
79 $this->
const[$r][2] =
"standard";
80 $this->
const[$r][3] =
'Name of manager to build PDF expense reports documents';
81 $this->
const[$r][4] = 0;
84 $this->
const[$r][0] =
"EXPENSEREPORT_ADDON";
85 $this->
const[$r][1] =
"chaine";
86 $this->
const[$r][2] =
"mod_expensereport_jade";
87 $this->
const[$r][3] =
'Name of manager to generate expense report ref number';
88 $this->
const[$r][4] = 0;
91 $this->
const[$r][0] =
"MAIN_DELAY_EXPENSEREPORTS";
92 $this->
const[$r][1] =
"chaine";
93 $this->
const[$r][2] =
"15";
94 $this->
const[$r][3] =
'Tolerance delay (in days) before alert for expense reports to approve';
95 $this->
const[$r][4] = 0;
98 $this->
const[$r][0] =
"MAIN_DELAY_EXPENSEREPORTS_TO_PAY";
99 $this->
const[$r][1] =
"chaine";
100 $this->
const[$r][2] =
"15";
101 $this->
const[$r][3] =
'Tolerance delay (in days) before alert for expense reports to pay';
102 $this->
const[$r][4] = 0;
106 $this->tabs[] = array();
109 $this->boxes = array();
113 $this->rights = array();
114 $this->rights_class =
'expensereport';
116 $this->rights[$r][0] = 771;
117 $this->rights[$r][1] =
'Read expense reports (yours and your subordinates)';
118 $this->rights[$r][2] =
'r';
119 $this->rights[$r][3] = 0;
120 $this->rights[$r][4] =
'lire';
123 $this->rights[$r][0] = 772;
124 $this->rights[$r][1] =
'Create/modify expense reports';
125 $this->rights[$r][2] =
'w';
126 $this->rights[$r][3] = 0;
127 $this->rights[$r][4] =
'creer';
130 $this->rights[$r][0] = 773;
131 $this->rights[$r][1] =
'Delete expense reports';
132 $this->rights[$r][2] =
'd';
133 $this->rights[$r][3] = 0;
134 $this->rights[$r][4] =
'supprimer';
137 $this->rights[$r][0] = 775;
138 $this->rights[$r][1] =
'Approve expense reports';
139 $this->rights[$r][2] =
'w';
140 $this->rights[$r][3] = 0;
141 $this->rights[$r][4] =
'approve';
144 $this->rights[$r][0] = 776;
145 $this->rights[$r][1] =
'Pay expense reports';
146 $this->rights[$r][2] =
'w';
147 $this->rights[$r][3] = 0;
148 $this->rights[$r][4] =
'to_paid';
151 $this->rights[$r][0] = 777;
152 $this->rights[$r][1] =
'Read expense reports of everybody';
153 $this->rights[$r][2] =
'r';
154 $this->rights[$r][3] = 0;
155 $this->rights[$r][4] =
'readall';
158 $this->rights[$r][0] = 778;
159 $this->rights[$r][1] =
'Create expense reports for everybody';
160 $this->rights[$r][2] =
'w';
161 $this->rights[$r][3] = 0;
162 $this->rights[$r][4] =
'writeall_advance';
165 $this->rights[$r][0] = 779;
166 $this->rights[$r][1] =
'Export expense reports';
167 $this->rights[$r][2] =
'r';
168 $this->rights[$r][3] = 0;
169 $this->rights[$r][4] =
'export';
180 $this->export_code[$r] =
'expensereport_'.$r;
181 $this->export_label[$r] =
'ListTripsAndExpenses';
182 $this->export_icon[$r] =
'trip';
183 $this->export_permission[$r] = array(array(
"expensereport",
"export"));
184 $this->export_fields_array[$r] = array(
185 'd.rowid'=>
"TripId",
'd.ref'=>
'Ref',
'd.date_debut'=>
'DateStart',
'd.date_fin'=>
'DateEnd',
'd.date_create'=>
'DateCreation',
'd.date_approve'=>
'DateApprove',
186 'd.total_ht'=>
"TotalHT",
'd.total_tva'=>
'TotalVAT',
'd.total_ttc'=>
'TotalTTC',
187 'd.fk_statut'=>
'Status',
'd.paid'=>
'Paid',
188 'd.note_private'=>
'NotePrivate',
'd.note_public'=>
'NotePublic',
'd.detail_cancel'=>
'MOTIF_CANCEL',
'd.detail_refuse'=>
'MOTIF_REFUS',
189 'ed.rowid'=>
'LineId',
'tf.code'=>
'Type',
'ed.date'=>
'Date',
'ed.tva_tx'=>
'VATRate',
190 'ed.qty'=>
"Quantity",
'ed.value_unit'=>
"UnitPriceHT",
191 'ed.total_ht'=>
'TotalHT',
'ed.total_tva'=>
'TotalVAT',
'ed.total_ttc'=>
'TotalTTC',
'ed.comments'=>
'Comment',
'p.rowid'=>
'ProjectId',
'p.ref'=>
'Ref',
192 'u.lastname'=>
'Lastname',
'u.firstname'=>
'Firstname',
'u.login'=>
"Login",
193 'user_rib.iban_prefix' =>
'IBAN',
'user_rib.bic' =>
'BIC',
'user_rib.code_banque' =>
'BankCode',
'user_rib.bank' =>
'BankName',
'user_rib.proprio' =>
'BankAccountOwner',
194 'user_rib.owner_address' =>
'BankAccountOwnerAddress'
196 $this->export_TypeFields_array[$r] = array(
197 'd.rowid'=>
'Numeric',
'd.ref'=>
'Text',
'd.date_debut'=>
'Date',
'd.date_fin'=>
'Date',
'd.date_create'=>
'Date',
'd.date_approve'=>
'Date',
198 'd.total_ht'=>
"Numeric",
'd.total_tva'=>
'Numeric',
'd.total_ttc'=>
'Numeric',
199 'd.fk_statut'=>
"Numeric",
'd.paid'=>
'Numeric',
200 'd.note_private'=>
'Text',
'd.note_public'=>
'Text',
'd.detail_cancel'=>
'Text',
'd.detail_refuse'=>
'Text',
201 'ed.rowid'=>
'Numeric',
'tf.code'=>
'Code',
'ed.date'=>
'Date',
'ed.tva_tx'=>
'Numeric',
202 'ed.qty'=>
'Numeric',
'ed.value_unit'=>
'Numeric',
203 'ed.total_ht'=>
'Numeric',
'ed.total_tva'=>
'Numeric',
'ed.total_ttc'=>
'Numeric',
'ed.comments'=>
'Text',
'p.rowid'=>
'Numeric',
'p.ref'=>
'Text',
204 'u.lastname'=>
'Text',
'u.firstname'=>
'Text',
'u.login'=>
"Text",
205 'user_rib.iban_prefix' =>
'Text',
'user_rib.bic' =>
'Text',
'user_rib.code_banque' =>
'Text',
'user_rib.bank' =>
'Text',
'user_rib.proprio' =>
'Text',
206 'user_rib.owner_address' =>
'Text'
208 $this->export_entities_array[$r] = array(
209 'ed.rowid'=>
'expensereport_line',
'ed.date'=>
'expensereport_line',
210 'ed.qty'=>
'expensereport_line',
'ed.value_unit'=>
'expensereport_line',
211 'ed.tva_tx'=>
'expensereport_line',
'ed.total_ht'=>
'expensereport_line',
'ed.total_tva'=>
'expensereport_line',
'ed.total_ttc'=>
'expensereport_line',
212 'ed.comments'=>
'expensereport_line',
'tf.code'=>
'expensereport_line',
'p.project_ref'=>
'expensereport_line',
'p.rowid'=>
'project',
'p.ref'=>
'project',
213 'u.lastname'=>
'user',
'u.firstname'=>
'user',
'u.login'=>
'user',
214 'user_rib.iban_prefix' =>
'user',
'user_rib.bic' =>
'user',
'user_rib.code_banque' =>
'user',
'user_rib.bank' =>
'user',
'user_rib.proprio' =>
'user',
215 'user_rib.owner_address' =>
'user'
219 $this->export_dependencies_array[$r] = array(
'expensereport_line'=>
'ed.rowid',
'type_fees'=>
'tf.rowid');
221 $keyforselect =
'expensereport';
222 $keyforelement =
'expensereport';
223 $keyforaliasextra =
'extra';
224 include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
225 $keyforselect =
'user';
226 $keyforelement =
'user';
227 $keyforaliasextra =
'extrau';
228 include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
230 $this->export_sql_start[$r] =
'SELECT DISTINCT ';
231 $this->export_sql_end[$r] =
' FROM '.MAIN_DB_PREFIX.
'expensereport as d';
232 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'expensereport_extrafields as extra on d.rowid = extra.fk_object';
233 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'user_rib as user_rib ON user_rib.fk_user = d.fk_user_author,';
234 $this->export_sql_end[$r] .=
' '.MAIN_DB_PREFIX.
'user as u';
235 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'user_extrafields as extrau ON u.rowid = extrau.fk_object,';
236 $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';
237 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'projet as p ON ed.fk_projet = p.rowid';
238 $this->export_sql_end[$r] .=
' WHERE ed.fk_expensereport = d.rowid AND d.fk_user_author = u.rowid';
239 $this->export_sql_end[$r] .=
' AND d.entity IN ('.getEntity(
'expensereport').
')';