@@ -103,219 +103,49 @@ public function runTrigger($action, $object, User $user, Translate $langs, Conf
103103 // Data and type of action are stored into $object and $action
104104
105105 switch ($ action ) {
106- // Users
107- //case 'USER_CREATE':
108- //case 'USER_MODIFY':
109- //case 'USER_NEW_PASSWORD':
110- //case 'USER_ENABLEDISABLE':
111- //case 'USER_DELETE':
112- //case 'USER_SETINGROUP':
113- //case 'USER_REMOVEFROMGROUP':
114-
115106 // Actions
116- //case 'ACTION_MODIFY':
117- //case 'ACTION_CREATE':
118- //case 'ACTION_DELETE':
119-
120- // Groups
121- //case 'USERGROUP_CREATE':
122- //case 'USERGROUP_MODIFY':
123- //case 'USERGROUP_DELETE':
124-
125- // Companies
126- //case 'COMPANY_CREATE':
127- //case 'COMPANY_MODIFY':
128- //case 'COMPANY_DELETE':
129-
130- // Contacts
131- //case 'CONTACT_CREATE':
132- //case 'CONTACT_MODIFY':
133- //case 'CONTACT_DELETE':
134- //case 'CONTACT_ENABLEDISABLE':
135-
136- // Products
137- //case 'PRODUCT_CREATE':
138- //case 'PRODUCT_MODIFY':
139- //case 'PRODUCT_DELETE':
140- //case 'PRODUCT_PRICE_MODIFY':
141- //case 'PRODUCT_SET_MULTILANGS':
142- //case 'PRODUCT_DEL_MULTILANGS':
143-
144- //Stock mouvement
145- //case 'STOCK_MOVEMENT':
146-
147- //MYECMDIR
148- //case 'MYECMDIR_CREATE':
149- //case 'MYECMDIR_MODIFY':
150- //case 'MYECMDIR_DELETE':
151-
152- // Customer orders
153- //case 'ORDER_CREATE':
154- //case 'ORDER_MODIFY':
155- //case 'ORDER_VALIDATE':
156- //case 'ORDER_DELETE':
157- //case 'ORDER_CANCEL':
158- //case 'ORDER_SENTBYMAIL':
159- //case 'ORDER_CLASSIFY_BILLED':
160- //case 'ORDER_SETDRAFT':
161- //case 'LINEORDER_INSERT':
162- //case 'LINEORDER_UPDATE':
163- //case 'LINEORDER_DELETE':
164-
165- // Supplier orders
166- //case 'ORDER_SUPPLIER_CREATE':
167- //case 'ORDER_SUPPLIER_MODIFY':
168- //case 'ORDER_SUPPLIER_VALIDATE':
169- //case 'ORDER_SUPPLIER_DELETE':
170- //case 'ORDER_SUPPLIER_APPROVE':
171- //case 'ORDER_SUPPLIER_REFUSE':
172- //case 'ORDER_SUPPLIER_CANCEL':
173- //case 'ORDER_SUPPLIER_SENTBYMAIL':
174- //case 'ORDER_SUPPLIER_DISPATCH':
175- //case 'LINEORDER_SUPPLIER_DISPATCH':
176- //case 'LINEORDER_SUPPLIER_CREATE':
177- //case 'LINEORDER_SUPPLIER_UPDATE':
178- //case 'LINEORDER_SUPPLIER_DELETE':
179-
180- // Proposals
181- //case 'PROPAL_CREATE':
182- //case 'PROPAL_MODIFY':
183- //case 'PROPAL_VALIDATE':
184- //case 'PROPAL_SENTBYMAIL':
185- //case 'PROPAL_CLOSE_SIGNED':
186- //case 'PROPAL_CLOSE_REFUSED':
187- //case 'PROPAL_DELETE':
188- //case 'LINEPROPAL_INSERT':
189- //case 'LINEPROPAL_UPDATE':
190- //case 'LINEPROPAL_DELETE':
191-
192- // SupplierProposal
193- //case 'SUPPLIER_PROPOSAL_CREATE':
194- //case 'SUPPLIER_PROPOSAL_MODIFY':
195- //case 'SUPPLIER_PROPOSAL_VALIDATE':
196- //case 'SUPPLIER_PROPOSAL_SENTBYMAIL':
197- //case 'SUPPLIER_PROPOSAL_CLOSE_SIGNED':
198- //case 'SUPPLIER_PROPOSAL_CLOSE_REFUSED':
199- //case 'SUPPLIER_PROPOSAL_DELETE':
200- //case 'LINESUPPLIER_PROPOSAL_INSERT':
201- //case 'LINESUPPLIER_PROPOSAL_UPDATE':
202- //case 'LINESUPPLIER_PROPOSAL_DELETE':
203-
204- // Contracts
205- //case 'CONTRACT_CREATE':
206- //case 'CONTRACT_MODIFY':
207- //case 'CONTRACT_ACTIVATE':
208- //case 'CONTRACT_CANCEL':
209- //case 'CONTRACT_CLOSE':
210- //case 'CONTRACT_DELETE':
211- //case 'LINECONTRACT_INSERT':
212- //case 'LINECONTRACT_UPDATE':
213- //case 'LINECONTRACT_DELETE':
214-
215- // Bills
216- //case 'BILL_CREATE':
217- //case 'BILL_MODIFY':
218- //case 'BILL_VALIDATE':
219- //case 'BILL_UNVALIDATE':
220- //case 'BILL_SENTBYMAIL':
221- //case 'BILL_CANCEL':
222- //case 'BILL_DELETE':
223- //case 'BILL_PAYED':
224- //case 'LINEBILL_INSERT':
225- //case 'LINEBILL_UPDATE':
226- //case 'LINEBILL_DELETE':
227-
228- //Supplier Bill
229- //case 'BILL_SUPPLIER_CREATE':
230- //case 'BILL_SUPPLIER_UPDATE':
231- //case 'BILL_SUPPLIER_DELETE':
232- //case 'BILL_SUPPLIER_PAYED':
233- //case 'BILL_SUPPLIER_UNPAYED':
234- //case 'BILL_SUPPLIER_VALIDATE':
235- //case 'BILL_SUPPLIER_UNVALIDATE':
236- //case 'LINEBILL_SUPPLIER_CREATE':
237- //case 'LINEBILL_SUPPLIER_UPDATE':
238- //case 'LINEBILL_SUPPLIER_DELETE':
239-
240- // Payments
241- //case 'PAYMENT_CUSTOMER_CREATE':
242- //case 'PAYMENT_SUPPLIER_CREATE':
243- //case 'PAYMENT_ADD_TO_BANK':
244- //case 'PAYMENT_DELETE':
245-
246- // Online
247- //case 'PAYMENT_PAYBOX_OK':
248- //case 'PAYMENT_PAYPAL_OK':
249- //case 'PAYMENT_STRIPE_OK':
250-
251- // Donation
252- //case 'DON_CREATE':
253- //case 'DON_UPDATE':
254- //case 'DON_DELETE':
255-
256- // Interventions
257- //case 'FICHINTER_CREATE':
258- //case 'FICHINTER_MODIFY':
259- //case 'FICHINTER_VALIDATE':
260- //case 'FICHINTER_DELETE':
261- //case 'LINEFICHINTER_CREATE':
262- //case 'LINEFICHINTER_UPDATE':
263- //case 'LINEFICHINTER_DELETE':
264-
265- // Members
266- //case 'MEMBER_CREATE':
267- //case 'MEMBER_VALIDATE':
268- //case 'MEMBER_SUBSCRIPTION':
269- //case 'MEMBER_MODIFY':
270- //case 'MEMBER_NEW_PASSWORD':
271- //case 'MEMBER_RESILIATE':
272- //case 'MEMBER_DELETE':
273-
274- // Categories
275- //case 'CATEGORY_CREATE':
276- //case 'CATEGORY_MODIFY':
277- //case 'CATEGORY_DELETE':
278- //case 'CATEGORY_SET_MULTILANGS':
279-
280- // Projects
281- //case 'PROJECT_CREATE':
282- //case 'PROJECT_MODIFY':
283- //case 'PROJECT_DELETE':
284-
285- // Project tasks
286- //case 'TASK_CREATE':
287- //case 'TASK_MODIFY':
288- //case 'TASK_DELETE':
289-
290- // Task time spent
291- //case 'TASK_TIMESPENT_CREATE':
292- //case 'TASK_TIMESPENT_MODIFY':
293- //case 'TASK_TIMESPENT_DELETE':
294- //case 'PROJECT_ADD_CONTACT':
295- //case 'PROJECT_DELETE_CONTACT':
296- //case 'PROJECT_DELETE_RESOURCE':
297-
298- // Shipping
299- //case 'SHIPPING_CREATE':
300- //case 'SHIPPING_MODIFY':
301- //case 'SHIPPING_VALIDATE':
302- //case 'SHIPPING_SENTBYMAIL':
303- //case 'SHIPPING_BILLED':
304- //case 'SHIPPING_CLOSED':
305- //case 'SHIPPING_REOPEN':
306- //case 'SHIPPING_DELETE':
307-
308- // and more...
309-
310- // case 'add_message':
311- // echo 'bj';
312- // exit;
107+ case 'ACTION_CREATE ' :
108+ dol_syslog ("Trigger ' " .$ this ->name ."' for action ' $ action' launched by " .__FILE__ .". id= " .$ object ->id );
109+ if (((int )$ object ->fk_element ) > 0 && $ object ->elementtype == 'ticket ' && preg_match ('/^TICKET_/s ' ,$ object ->code )) {
110+ dol_syslog ("Add time spent " );
111+ $ result = 0 ;
112+ $ ticket = new Ticket ($ this ->db );
113+ $ result = $ ticket ->fetch ($ object ->fk_element );
114+ dol_syslog (var_export ($ ticket , true ), LOG_DEBUG );
115+ if ($ result > 0 && ((int )$ ticket ->id ) > 0 ) {
116+ if (is_array ($ ticket ->array_options ) && array_key_exists ('options_fk_task ' ,$ ticket ->array_options ) && $ ticket ->array_options ['options_fk_task ' ]>0 ) {
117+ require_once DOL_DOCUMENT_ROOT .'/projet/class/task.class.php ' ;
118+ $ task = new Task ($ this ->db );
119+ $ result = $ task ->fetch ($ ticket ->array_options ['options_fk_task ' ]);
120+ dol_syslog (var_export ($ task , true ), LOG_DEBUG );
121+ if ($ result > 0 && ((int )$ task ->id ) > 0 ) {
122+ $ task ->timespent_note = $ object ->note_private ;
123+ $ task ->timespent_duration = GETPOST ('timespent ' ,'int ' ) * 60 ; // We store duration in seconds
124+ $ task ->timespent_date = dol_now ();
125+ $ task ->timespent_withhour = 1 ;
126+ $ task ->timespent_fk_user = $ user ->id ;
127+
128+ $ id_message = $ task ->id ;
129+ $ name_message = $ task ->ref ;
130+
131+ $ result = $ task ->addTimeSpent ($ user );
132+ setEventMessages ($ langs ->trans ("MessageTimeSpentCreate " ).' : ' .'<a href=" ' .DOL_URL_ROOT .'/projet/tasks/time.php?id= ' .$ id_message .'"> ' .$ name_message .'</a> ' , null , 'mesgs ' );
133+ } else {
134+ setEventMessages ($ task ->error ,$ task ->errors ,'errors ' );
135+ return -1 ;
136+ }
137+ }
138+ } else {
139+ setEventMessages ($ ticket ->error ,$ ticket ->errors ,'errors ' );
140+ return -1 ;
141+ }
142+ }
143+ break ;
313144
314145 default :
315146 dol_syslog ("Trigger ' " .$ this ->name ."' for action ' $ action' launched by " .__FILE__ .". id= " .$ object ->id );
316147 break ;
317148 }
318-
319149 return 0 ;
320150 }
321151}
0 commit comments