47 $this->module_position =
'42';
49 $this->
name = preg_replace(
'/^mod/i',
'', get_class($this));
51 $this->
description =
"Manage and claim expense reports (transportation, meal, ...)";
52 $this->version =
'dolibarr';
53 $this->const_name =
'MAIN_MODULE_'.strtoupper($this->
name);
54 $this->picto =
'trip';
57 $this->dirs = array(
"/expensereport/temp");
61 $this->config_page_url = array(
'expensereport.php');
64 $this->hidden =
false;
65 $this->depends = array();
67 $this->requiredby = array();
68 $this->phpmin = array(7, 0);
69 $this->need_dolibarr_version = array(3, 7);
70 $this->langfiles = array(
"companies",
"trips");
73 $this->
const = array();
76 $this->
const[$r][0] =
"EXPENSEREPORT_ADDON_PDF";
77 $this->
const[$r][1] =
"chaine";
78 $this->
const[$r][2] =
"standard";
79 $this->
const[$r][3] =
'Name of manager to build PDF expense reports documents';
80 $this->
const[$r][4] = 0;
83 $this->
const[$r][0] =
"EXPENSEREPORT_ADDON";
84 $this->
const[$r][1] =
"chaine";
85 $this->
const[$r][2] =
"mod_expensereport_jade";
86 $this->
const[$r][3] =
'Name of manager to generate expense report ref number';
87 $this->
const[$r][4] = 0;
90 $this->
const[$r][0] =
"MAIN_DELAY_EXPENSEREPORTS";
91 $this->
const[$r][1] =
"chaine";
92 $this->
const[$r][2] =
"15";
93 $this->
const[$r][3] =
'Tolerance delay (in days) before alert for expense reports to approve';
94 $this->
const[$r][4] = 0;
97 $this->
const[$r][0] =
"MAIN_DELAY_EXPENSEREPORTS_TO_PAY";
98 $this->
const[$r][1] =
"chaine";
99 $this->
const[$r][2] =
"15";
100 $this->
const[$r][3] =
'Tolerance delay (in days) before alert for expense reports to pay';
101 $this->
const[$r][4] = 0;
105 $this->tabs[] = array();
108 $this->boxes = array();
112 $this->rights = array();
113 $this->rights_class =
'expensereport';
115 $this->rights[$r][0] = 771;
116 $this->rights[$r][1] =
'Read expense reports (yours and your subordinates)';
117 $this->rights[$r][2] =
'r';
118 $this->rights[$r][3] = 0;
119 $this->rights[$r][4] =
'lire';
122 $this->rights[$r][0] = 772;
123 $this->rights[$r][1] =
'Create/modify expense reports';
124 $this->rights[$r][2] =
'w';
125 $this->rights[$r][3] = 0;
126 $this->rights[$r][4] =
'creer';
129 $this->rights[$r][0] = 773;
130 $this->rights[$r][1] =
'Delete expense reports';
131 $this->rights[$r][2] =
'd';
132 $this->rights[$r][3] = 0;
133 $this->rights[$r][4] =
'supprimer';
136 $this->rights[$r][0] = 775;
137 $this->rights[$r][1] =
'Approve expense reports';
138 $this->rights[$r][2] =
'w';
139 $this->rights[$r][3] = 0;
140 $this->rights[$r][4] =
'approve';
143 $this->rights[$r][0] = 776;
144 $this->rights[$r][1] =
'Pay expense reports';
145 $this->rights[$r][2] =
'w';
146 $this->rights[$r][3] = 0;
147 $this->rights[$r][4] =
'to_paid';
150 $this->rights[$r][0] = 777;
151 $this->rights[$r][1] =
'Read expense reports of everybody';
152 $this->rights[$r][2] =
'r';
153 $this->rights[$r][3] = 0;
154 $this->rights[$r][4] =
'readall';
157 $this->rights[$r][0] = 778;
158 $this->rights[$r][1] =
'Create expense reports for everybody';
159 $this->rights[$r][2] =
'w';
160 $this->rights[$r][3] = 0;
161 $this->rights[$r][4] =
'writeall_advance';
164 $this->rights[$r][0] = 779;
165 $this->rights[$r][1] =
'Export expense reports';
166 $this->rights[$r][2] =
'r';
167 $this->rights[$r][3] = 0;
168 $this->rights[$r][4] =
'export';
179 $this->export_code[$r] =
'expensereport_'.$r;
180 $this->export_label[$r] =
'ListTripsAndExpenses';
181 $this->export_icon[$r] =
'trip';
182 $this->export_permission[$r] = array(array(
"expensereport",
"export"));
183 $this->export_fields_array[$r] = array(
184 'd.rowid'=>
"TripId",
'd.ref'=>
'Ref',
'd.date_debut'=>
'DateStart',
'd.date_fin'=>
'DateEnd',
'd.date_create'=>
'DateCreation',
'd.date_approve'=>
'DateApprove',
185 'd.total_ht'=>
"TotalHT",
'd.total_tva'=>
'TotalVAT',
'd.total_ttc'=>
'TotalTTC',
186 'd.fk_statut'=>
'Status',
'd.paid'=>
'Paid',
187 'd.note_private'=>
'NotePrivate',
'd.note_public'=>
'NotePublic',
'd.detail_cancel'=>
'MOTIF_CANCEL',
'd.detail_refuse'=>
'MOTIF_REFUS',
188 'ed.rowid'=>
'LineId',
'tf.code'=>
'Type',
'ed.date'=>
'Date',
'ed.tva_tx'=>
'VATRate',
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.total_ht'=>
'Numeric',
'ed.total_tva'=>
'Numeric',
'ed.total_ttc'=>
'Numeric',
'ed.comments'=>
'Text',
'p.rowid'=>
'Numeric',
'p.ref'=>
'Text',
201 'u.lastname'=>
'Text',
'u.firstname'=>
'Text',
'u.login'=>
"Text",
202 'user_rib.iban_prefix' =>
'Text',
'user_rib.bic' =>
'Text',
'user_rib.code_banque' =>
'Text',
'user_rib.bank' =>
'Text',
'user_rib.proprio' =>
'Text',
203 'user_rib.owner_address' =>
'Text'
205 $this->export_entities_array[$r] = array(
206 'ed.rowid'=>
'expensereport_line',
'ed.date'=>
'expensereport_line',
207 'ed.tva_tx'=>
'expensereport_line',
'ed.total_ht'=>
'expensereport_line',
'ed.total_tva'=>
'expensereport_line',
'ed.total_ttc'=>
'expensereport_line',
208 'ed.comments'=>
'expensereport_line',
'tf.code'=>
'expensereport_line',
'p.project_ref'=>
'expensereport_line',
'p.rowid'=>
'project',
'p.ref'=>
'project',
209 'u.lastname'=>
'user',
'u.firstname'=>
'user',
'u.login'=>
'user',
210 'user_rib.iban_prefix' =>
'user',
'user_rib.bic' =>
'user',
'user_rib.code_banque' =>
'user',
'user_rib.bank' =>
'user',
'user_rib.proprio' =>
'user',
211 'user_rib.owner_address' =>
'user'
215 $this->export_dependencies_array[$r] = array(
'expensereport_line'=>
'ed.rowid',
'type_fees'=>
'tf.rowid');
217 $keyforselect =
'expensereport';
218 $keyforelement =
'expensereport';
219 $keyforaliasextra =
'extra';
220 include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
221 $keyforselect =
'user'; $keyforelement =
'user'; $keyforaliasextra =
'extrau';
222 include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
224 $this->export_sql_start[$r] =
'SELECT DISTINCT ';
225 $this->export_sql_end[$r] =
' FROM '.MAIN_DB_PREFIX.
'expensereport as d';
226 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'expensereport_extrafields as extra on d.rowid = extra.fk_object';
227 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'user_rib as user_rib ON user_rib.fk_user = d.fk_user_author,';
228 $this->export_sql_end[$r] .=
' '.MAIN_DB_PREFIX.
'user as u';
229 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'user_extrafields as extrau ON u.rowid = extrau.fk_object,';
230 $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';
231 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'projet as p ON ed.fk_projet = p.rowid';
232 $this->export_sql_end[$r] .=
' WHERE ed.fk_expensereport = d.rowid AND d.fk_user_author = u.rowid';
233 $this->export_sql_end[$r] .=
' AND d.entity IN ('.getEntity(
'expensereport').
')';