@@ -144,18 +144,22 @@ export class TrainrunSectionTimesService {
144144    this . roundAllTimes ( ) ; 
145145    this . removeOffsetAndBackTransformTimeStructure ( ) ; 
146146
147-     this . timeStructure . leftArrivalTime  =  TrainrunsectionHelper . getSymmetricTime ( 
148-       this . timeStructure . leftDepartureTime , 
149-     ) ; 
147+     if  ( this . selectedTrainrunSection . getTrainrun ( ) . getIsSymmetric ( ) )  { 
148+       this . timeStructure . leftArrivalTime  =  TrainrunsectionHelper . getSymmetricTime ( 
149+         this . timeStructure . leftDepartureTime , 
150+       ) ; 
151+     } 
150152    if  ( ! this . lockStructure . rightLock )  { 
151153      this . timeStructure . rightArrivalTime  = 
152154        this . timeStructure . leftDepartureTime  + 
153155        ( this . timeStructure . travelTime  %  60 ) ; 
154156      this . timeStructure . rightArrivalTime  %=  60 ; 
155-       this . timeStructure . rightDepartureTime  = 
156-         TrainrunsectionHelper . getSymmetricTime ( 
157-           this . timeStructure . rightArrivalTime , 
158-         ) ; 
157+       if  ( this . selectedTrainrunSection . getTrainrun ( ) . getIsSymmetric ( ) )  { 
158+         this . timeStructure . rightDepartureTime  = 
159+           TrainrunsectionHelper . getSymmetricTime ( 
160+             this . timeStructure . rightArrivalTime , 
161+           ) ; 
162+       } 
159163    }  else  if  ( 
160164      ! this . lockStructure . travelTimeLock  && 
161165      this . lockStructure . rightLock 
@@ -199,20 +203,24 @@ export class TrainrunSectionTimesService {
199203    this . roundAllTimes ( ) ; 
200204    this . removeOffsetAndBackTransformTimeStructure ( ) ; 
201205
202-     this . timeStructure . leftDepartureTime  = 
203-       TrainrunsectionHelper . getSymmetricTime ( 
204-         this . timeStructure . leftArrivalTime , 
205-       ) ; 
206+     if  ( this . selectedTrainrunSection . getTrainrun ( ) . getIsSymmetric ( ) )  { 
207+       this . timeStructure . leftDepartureTime  = 
208+         TrainrunsectionHelper . getSymmetricTime ( 
209+           this . timeStructure . leftArrivalTime , 
210+         ) ; 
211+     } 
206212    if  ( ! this . lockStructure . rightLock )  { 
207213      this . timeStructure . rightDepartureTime  = 
208214        this . timeStructure . leftArrivalTime  - 
209215        ( this . timeStructure . travelTime  %  60 ) ; 
210216      this . timeStructure . rightDepartureTime  += 
211217        this . timeStructure . rightDepartureTime  <  0  ? 60  : 0 ; 
212-       this . timeStructure . rightArrivalTime  = 
213-         TrainrunsectionHelper . getSymmetricTime ( 
214-           this . timeStructure . rightDepartureTime , 
215-         ) ; 
218+       if  ( this . selectedTrainrunSection . getTrainrun ( ) . getIsSymmetric ( ) )  { 
219+         this . timeStructure . rightArrivalTime  = 
220+           TrainrunsectionHelper . getSymmetricTime ( 
221+             this . timeStructure . rightDepartureTime , 
222+           ) ; 
223+       } 
216224    }  else  if  ( 
217225      ! this . lockStructure . travelTimeLock  && 
218226      this . lockStructure . rightLock 
@@ -255,21 +263,25 @@ export class TrainrunSectionTimesService {
255263    this . showWarningTwoLocks  =  false ; 
256264    this . roundAllTimes ( ) ; 
257265    this . removeOffsetAndBackTransformTimeStructure ( ) ; 
258-     this . timeStructure . rightDepartureTime  = 
259-       TrainrunsectionHelper . getSymmetricTime ( 
260-         this . timeStructure . rightArrivalTime , 
261-       ) ; 
266+     if  ( this . selectedTrainrunSection . getTrainrun ( ) . getIsSymmetric ( ) )  { 
267+       this . timeStructure . rightDepartureTime  = 
268+         TrainrunsectionHelper . getSymmetricTime ( 
269+           this . timeStructure . rightArrivalTime , 
270+         ) ; 
271+     } 
262272
263273    if  ( ! this . lockStructure . leftLock )  { 
264274      this . timeStructure . leftDepartureTime  = 
265275        this . timeStructure . rightArrivalTime  - 
266276        ( this . timeStructure . travelTime  %  60 ) ; 
267277      this . timeStructure . leftDepartureTime  += 
268278        this . timeStructure . leftDepartureTime  <  0  ? 60  : 0 ; 
269-       this . timeStructure . leftArrivalTime  = 
270-         TrainrunsectionHelper . getSymmetricTime ( 
271-           this . timeStructure . leftDepartureTime , 
272-         ) ; 
279+       if  ( this . selectedTrainrunSection . getTrainrun ( ) . getIsSymmetric ( ) )  { 
280+         this . timeStructure . leftArrivalTime  = 
281+           TrainrunsectionHelper . getSymmetricTime ( 
282+             this . timeStructure . leftDepartureTime , 
283+           ) ; 
284+       } 
273285    }  else  if  ( 
274286      ! this . lockStructure . travelTimeLock  && 
275287      this . lockStructure . leftLock 
@@ -313,19 +325,23 @@ export class TrainrunSectionTimesService {
313325    this . roundAllTimes ( ) ; 
314326    this . removeOffsetAndBackTransformTimeStructure ( ) ; 
315327
316-     this . timeStructure . rightArrivalTime  = 
317-       TrainrunsectionHelper . getSymmetricTime ( 
318-         this . timeStructure . rightDepartureTime , 
319-       ) ; 
328+     if  ( this . selectedTrainrunSection . getTrainrun ( ) . getIsSymmetric ( ) )  { 
329+       this . timeStructure . rightArrivalTime  = 
330+         TrainrunsectionHelper . getSymmetricTime ( 
331+           this . timeStructure . rightDepartureTime , 
332+         ) ; 
333+     } 
320334    if  ( ! this . lockStructure . leftLock )  { 
321335      this . timeStructure . leftArrivalTime  = 
322336        this . timeStructure . rightDepartureTime  + 
323337        ( this . timeStructure . travelTime  %  60 ) ; 
324338      this . timeStructure . leftArrivalTime  %=  60 ; 
325-       this . timeStructure . leftDepartureTime  = 
326-         TrainrunsectionHelper . getSymmetricTime ( 
327-           this . timeStructure . leftArrivalTime , 
328-         ) ; 
339+       if  ( this . selectedTrainrunSection . getTrainrun ( ) . getIsSymmetric ( ) )  { 
340+         this . timeStructure . leftDepartureTime  = 
341+           TrainrunsectionHelper . getSymmetricTime ( 
342+             this . timeStructure . leftArrivalTime , 
343+           ) ; 
344+       } 
329345    }  else  if  ( 
330346      ! this . lockStructure . travelTimeLock  && 
331347      this . lockStructure . leftLock 
@@ -374,20 +390,24 @@ export class TrainrunSectionTimesService {
374390      this . timeStructure . rightArrivalTime  += 
375391        this . timeStructure . rightArrivalTime  <  0  ? 60  : 0 ; 
376392      this . timeStructure . rightArrivalTime  %=  60 ; 
377-       this . timeStructure . rightDepartureTime  = 
378-         TrainrunsectionHelper . getSymmetricTime ( 
379-           this . timeStructure . rightArrivalTime , 
380-         ) ; 
393+       if  ( this . selectedTrainrunSection . getTrainrun ( ) . getIsSymmetric ( ) )  { 
394+         this . timeStructure . rightDepartureTime  = 
395+           TrainrunsectionHelper . getSymmetricTime ( 
396+             this . timeStructure . rightArrivalTime , 
397+           ) ; 
398+       } 
381399    }  else  if  ( ! this . lockStructure . leftLock )  { 
382400      this . timeStructure . leftArrivalTime  = 
383401        this . timeStructure . rightDepartureTime  +  this . timeStructure . travelTime ; 
384402      this . timeStructure . leftArrivalTime  += 
385403        this . timeStructure . leftArrivalTime  <  0  ? 60  : 0 ; 
386404      this . timeStructure . leftArrivalTime  %=  60 ; 
387-       this . timeStructure . leftDepartureTime  = 
388-         TrainrunsectionHelper . getSymmetricTime ( 
389-           this . timeStructure . leftArrivalTime , 
390-         ) ; 
405+       if  ( this . selectedTrainrunSection . getTrainrun ( ) . getIsSymmetric ( ) )  { 
406+         this . timeStructure . leftDepartureTime  = 
407+           TrainrunsectionHelper . getSymmetricTime ( 
408+             this . timeStructure . leftArrivalTime , 
409+           ) ; 
410+       } 
391411    }  else  { 
392412      this . showWarningTwoLocks  =  true ; 
393413    } 
@@ -482,7 +502,11 @@ export class TrainrunSectionTimesService {
482502        this . selectedTrainrunSection , 
483503        this . nodesOrdered , 
484504      ) ; 
485-     this . timeStructure  =  Object . assign ( { } ,  this . originalTimeStructure ) ; 
505+ 
506+     // TODO: not sure if it's important to keep this, but it breaks the assymetry 
507+     if  ( this . selectedTrainrunSection . getTrainrun ( ) . getIsSymmetric ( ) )  { 
508+       this . timeStructure  =  Object . assign ( { } ,  this . originalTimeStructure ) ; 
509+     } 
486510
487511    const  maxMinutes  =  7  *  24  *  60 ; 
488512    if  ( 
0 commit comments