Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ULIMS-50: Shipping service incoming shipment redirect #731

Merged
Merged
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
c55652d
LIMS-1113: Redirect to shipping-service on dispatch
MattPrit Nov 16, 2023
d73eaad
LIMS-1113: Fix typos in shipping service URLs
MattPrit Nov 17, 2023
1a0061f
LIMS-1113: Change text on submit button if redirecting
MattPrit Nov 20, 2023
13b2cb8
LIMS-1113: Fix shipment request requests for Dewars with no pucks/sam…
MattPrit Nov 20, 2023
2ba736c
LIMS-1113: Don't redirect for international shipments
MattPrit Nov 21, 2023
f1ed639
LIMS-1113: Tweak logic for international shipments
MattPrit Nov 21, 2023
3b7d8c0
LIMS-1113: Propagate shipping service error codes to client
MattPrit Nov 22, 2023
2fbc0ce
LIMS-1113: Link to shipping service from shipping page
MattPrit Nov 22, 2023
d1e756b
LIMS-1113: Restore commented code
MattPrit Nov 23, 2023
b7e0713
LIMS-1113: Include Dewar data in dispatch error log
MattPrit Nov 28, 2023
e11330c
Merge branch 'prerelease' into feature/lims-1113/shipping-service-dis…
MattPrit Nov 28, 2023
f02855d
LIMS-1113: Apply GdF suggestions
MattPrit Dec 4, 2023
88e293f
LIMS-1113: Update config_sample.php
MattPrit Dec 7, 2023
e1fd023
LIMS-1113: Limit redirects to supported countries
MattPrit Dec 11, 2023
40f737b
LIMS-1113: Add supported country dropdown to dispatch from
MattPrit Jan 26, 2024
1c7cdfa
ULIMS-50: Redirect to shipping service to book incoming shipments
MattPrit Feb 19, 2024
521504e
Update client/src/js/modules/shipment/views/createawb.js
MattPrit Apr 23, 2024
a61bff8
Update client/src/js/modules/shipment/views/createawb.js
MattPrit Apr 23, 2024
bc6ae56
Update api/src/Page/Shipment.php
MattPrit Apr 23, 2024
637f10f
Update api/src/Page/Shipment.php
MattPrit Apr 24, 2024
f91ecef
ULIMS-50: Add better error messages, make hidden fields not required
MattPrit Apr 25, 2024
9d45d95
ULIMS-50: Update description and date validation in dispatch model
MattPrit Apr 30, 2024
b715f36
Restore EM menu in dropdown (#766) (#767)
gfrn May 1, 2024
9fed462
Merge master into prerelease (#773)
ndg63276 May 15, 2024
746735b
Merge branch 'prerelease' into feature/ulims-50/shipping-service-inco…
ndg63276 May 15, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions api/assets/emails/html/dewar-dispatch-lite.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<h1 style="font-size: 16px; font-weight: normal; border-bottom: 1px solid #000; margin: 1%; margin-bottom: 1.5%">Dewar ready to leave diamond</h1>

<div class="inset" style="margin: 1%; padding: 1%; margin-bottom: 2%; border-radius: 5px; background: #82d180">
Goods Handling, please arrange dispatch of the following Dewar.
</div>

<table class="details" style="background: #f4f4f4; margin: 1%">
<tbody>
<tr>
<td style="padding: 1.5%; font-weight: bold">Proposal</td>
<td><?php echo $data['prop'] ?></td>
</tr>
<tr>
<td style="padding: 1.5%; font-weight: bold">Air Waybill</td>
<td><a href="<?php echo $data['AWBURL']; ?>"><?php echo $data['AWBURL']; ?></a></td>
</tr>
<tr>
<td style="padding: 1.5%; font-weight: bold">Dewar Facility Code</td>
<td><?php echo $data['FACILITYCODE'] ?></td>
</tr>
<tr>
<td style="padding: 1.5%; font-weight: bold">Dewar Barcode</td>
<td><?php echo $data['BARCODE'] ?></td>
</tr>
<tr>
<td style="padding: 1.5%; font-weight: bold">Current Location</td>
<td><?php echo $data['LOCATION'] ?></td>
</tr>
</tbody>
</table>
2 changes: 2 additions & 0 deletions api/config_sample.php
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,8 @@
# Shipping service details
$use_shipping_service = null;
$use_shipping_service_incoming_shipments = null;
$use_shipping_service_redirect = null;
$use_shipping_service_redirect_incoming_shipments = null;
$shipping_service_api_url = null;
$shipping_service_api_user = null;
$shipping_service_api_password = null;
Expand Down
7 changes: 5 additions & 2 deletions api/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,8 @@ function setupApplication($mode): Slim
global $motd, $authentication_type, $cas_url, $cas_sso, $sso_url, $package_description,
$facility_courier_countries, $facility_courier_countries_nde,
$dhl_enable, $dhl_link, $scale_grid, $scale_grid_end_date, $preset_proposal, $timezone,
$valid_components, $enabled_container_types, $ifsummary, $synchweb_version;
$valid_components, $enabled_container_types, $ifsummary, $synchweb_version, $shipping_service_app_url,
$use_shipping_service_redirect, $use_shipping_service_redirect_incoming_shipments;
$app->contentType('application/json');
$options = $app->container['options'];
$app->response()->body(json_encode(array(
Expand All @@ -91,7 +92,9 @@ function setupApplication($mode): Slim
'valid_components' => $valid_components,
'enabled_container_types' => $enabled_container_types,
'ifsummary' => $ifsummary,
'synchweb_version' => $synchweb_version
'synchweb_version' => $synchweb_version,
'shipping_service_app_url' => $use_shipping_service_redirect ? $shipping_service_app_url : null,
'shipping_service_app_url_incoming' => $use_shipping_service_redirect_incoming_shipments ? $shipping_service_app_url : null,
)));
});
return $app;
Expand Down
258 changes: 228 additions & 30 deletions api/src/Page/Shipment.php

Large diffs are not rendered by default.

19 changes: 18 additions & 1 deletion api/src/Shipment/ShippingService.php
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,16 @@ function _send_request($url, $type, $data, $expected_status_code)
break;
}
$response = json_decode(curl_exec($ch), TRUE);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); // Will be 0 if request itself fails
curl_close($ch);
if ($status_code != $expected_status_code) {
error_log(
"Shipping service unexpected status code." . PHP_EOL .
"Request: $type $url" . PHP_EOL .
"Status code: $status_code" . PHP_EOL .
"Response: $response" . PHP_EOL .
"Request data:" . json_encode($data)
);
throw new \Exception(json_encode(array('status' => $status_code, 'content' => $response)));
}
return $response;
Expand Down Expand Up @@ -151,4 +158,14 @@ function get_awb_pdf_url($shipment_id)
{
return $this->shipping_app_url . '/shipments/' . $shipment_id . '/awb';
}

function create_shipment_request($shipment_request_data)
{
return $this->_send_request(
$this->shipping_api_url . '/shipment_requests/',
"POST",
$shipment_request_data,
201
);
}
}
26 changes: 15 additions & 11 deletions client/src/js/modules/shipment/models/dispatch.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ define(['backbone'], function(Backbone) {
},

VISIT: {
required: true,
required: function() {
return this.visitRequired
},
pattern: 'visit',
},

Expand All @@ -28,17 +30,17 @@ define(['backbone'], function(Backbone) {


GIVENNAME: {
required: true,
required: function () {return this.dispatchDetailsRequired},
pattern: 'wwdash',
},

FAMILYNAME: {
required: true,
required: function () {return this.dispatchDetailsRequired},
pattern: 'wwdash',
},

PHONENUMBER: {
required: true,
required: function () {return this.dispatchDetailsRequired},
},

EMAILADDRESS: {
Expand All @@ -47,26 +49,26 @@ define(['backbone'], function(Backbone) {
},

LABNAME: {
required: true,
required: function () {return this.dispatchDetailsRequired},
pattern: 'wwsdash',
},

ADDRESS: {
required: true
required: function () {return this.dispatchDetailsRequired}
},

CITY: {
required: true
required: function () {return this.dispatchDetailsRequired}
},

POSTCODE: {
required: function() {
return this.postCodeRequired
return this.postCodeRequired && this.dispatchDetailsRequired
}
},

COUNTRY: {
required: true,
required: function () {return this.dispatchDetailsRequired},
pattern: 'country',
fn: function (value, attr, state) {
if (value === null) {
Expand All @@ -77,12 +79,12 @@ define(['backbone'], function(Backbone) {


DESCRIPTION: {
required: true,
required: function () {return this.dispatchDetailsRequired},
},

DELIVERYAGENT_SHIPPINGDATE: {
pattern: 'edate',
required: true,
required: function () {return this.dispatchDetailsRequired},
},


Expand All @@ -106,8 +108,10 @@ define(['backbone'], function(Backbone) {

},

dispatchDetailsRequired: true,
courierDetailsRequired: false, // We want to set this default to false unless 'DELIVERYAGENT_AGENTCODE' has a value in the shipment model
postCodeRequired: false,
visitRequired: true,
})

})
Loading