@@ -77,6 +77,16 @@ public function setDeliveryDateRange($earliest, $latest)
7777 return $ this ;
7878 }
7979
80+ /**
81+ * @param $date
82+ * @return $this
83+ */
84+ public function setDeliveryDate ($ date )
85+ {
86+ $ this ->deliveryDate = self ::dtmSegment (2 , $ date );
87+ return $ this ;
88+ }
89+
8090 /**
8191 * $currency ISO 4217-3
8292 * @param $price
@@ -202,23 +212,46 @@ public function compose(?string $sMessageFunctionCode = "5", ?string $sDocumentN
202212 $ this ->messageContent [] = $ this ->messageSender ;
203213 $ this ->messageContent [] = $ this ->messageSenderInformation ;
204214 $ this ->messageContent [] = $ this ->dtmSend ;
205- $ this ->messageContent [] = $ this ->pickupDate [0 ];
206- $ this ->messageContent [] = $ this ->pickupDate [1 ];
207- $ this ->messageContent [] = $ this ->deliveryDate [0 ];
208- $ this ->messageContent [] = $ this ->deliveryDate [1 ];
209- $ this ->messageContent [] = $ this ->agreedAmount ;
210- $ this ->messageContent [] = $ this ->freeTextInstructions ;
211- $ this ->messageContent [] = $ this ->weight ;
212- $ this ->messageContent [] = $ this ->cargoNature ;
213- $ this ->messageContent [] = $ this ->transportOrderNumber ;
214- $ this ->messageContent [] = $ this ->booking ;
215+ if (isset ($ this ->pickupDate )) {
216+ $ this ->messageContent [] = $ this ->pickupDate [0 ];
217+ $ this ->messageContent [] = $ this ->pickupDate [1 ];
218+ }
219+ if (isset ($ this ->deliveryDate )) {
220+ if (count ($ this ->deliveryDate ) > 2 ) {
221+ $ this ->messageContent [] = $ this ->deliveryDate [0 ];
222+ $ this ->messageContent [] = $ this ->deliveryDate [1 ];
223+ } else {
224+ $ this ->messageContent [] = $ this ->deliveryDate ;
225+ }
226+ }
227+ if ($ this ->agreedAmount !== null ) {
228+ $ this ->messageContent [] = $ this ->agreedAmount ;
229+ }
230+ if ($ this ->freeTextInstructions !== null ) {
231+ $ this ->messageContent [] = $ this ->freeTextInstructions ;
232+ }
233+ if ($ this ->weight !== null ) {
234+ $ this ->messageContent [] = $ this ->weight ;
235+ }
236+ if ($ this ->cargoNature !== null ) {
237+ $ this ->messageContent [] = $ this ->cargoNature ;
238+ }
239+ if ($ this ->transportOrderNumber !== null ) {
240+ $ this ->messageContent [] = $ this ->transportOrderNumber ;
241+ }
242+ if ($ this ->booking !== null ) {
243+ $ this ->messageContent [] = $ this ->booking ;
244+ }
215245 if ($ this ->bookingSequence !== null ) {
216246 $ this ->messageContent [] = $ this ->bookingSequence ;
217247 }
218- $ this ->messageContent [] = $ this ->vessel ;
219-
220- $ this ->messageContent [] = $ this ->weightKg ;
248+ if ($ this ->vessel !== null ) {
249+ $ this ->messageContent [] = $ this ->vessel ;
221250
251+ }
252+ if ($ this ->weightKg !== null ) {
253+ $ this ->messageContent [] = $ this ->weightKg ;
254+ }
222255 return parent ::compose ();
223256 }
224257}
0 commit comments