diff --git a/modules/route/back/methods/route/getExternalCmrs.js b/modules/route/back/methods/route/getExternalCmrs.js
new file mode 100644
index 0000000000..5b08cf34ae
--- /dev/null
+++ b/modules/route/back/methods/route/getExternalCmrs.js
@@ -0,0 +1,133 @@
+const ParameterizedSQL = require('loopback-connector').ParameterizedSQL;
+const buildFilter = require('vn-loopback/util/filter').buildFilter;
+const mergeFilters = require('vn-loopback/util/filter').mergeFilters;
+
+module.exports = Self => {
+	Self.remoteMethod('getExternalCmrs', {
+		description: 'Returns an array of external cmrs',
+		accessType: 'READ',
+		accepts: [
+			{
+				arg: 'filter',
+				type: 'object',
+				description: 'Filter defining where, order, offset, and limit - must be a JSON-encoded string',
+			},
+			{
+				arg: 'cmrFk',
+				type: 'integer',
+				description: 'Searchs the route by id',
+			},
+			{
+				arg: 'ticketFk',
+				type: 'integer',
+				description: 'The worker id',
+			},
+			{
+				arg: 'country',
+				type: 'string',
+				description: 'The agencyMode id',
+			},
+			{
+				arg: 'clientFk',
+				type: 'integer',
+				description: 'The vehicle id',
+			},
+			{
+				arg: 'hasCmrDms',
+				type: 'boolean',
+				description: 'The vehicle id',
+			},
+			{
+				arg: 'shipped',
+				type: 'date',
+				description: 'The to date filter',
+			},
+		],
+		returns: {
+			type: ['object'],
+			root: true
+		},
+		http: {
+			path: `/getExternalCmrs`,
+			verb: 'GET'
+		}
+	});
+
+	Self.getExternalCmrs = async(
+		filter,
+		cmrFk,
+		ticketFk,
+		country,
+		clientFk,
+		hasCmrDms,
+		shipped,
+		options
+	) => {
+		const params = {
+			cmrFk,
+			ticketFk,
+			country,
+			clientFk,
+			hasCmrDms,
+			shipped,
+		};
+		const conn = Self.dataSource.connector;
+
+		let where = buildFilter(params, (param, value) => {return {[param]: value}});
+		filter = mergeFilters(filter, {where});
+
+		if (!filter.where) {
+			const yesterday = new Date();
+			yesterday.setDate(yesterday.getDate() - 1);
+			filter.where = {'shipped': yesterday.toISOString().split('T')[0]}
+		}
+
+		const myOptions = {};
+
+		if (typeof options == 'object')
+			Object.assign(myOptions, options);
+
+			let stmts = [];
+			const stmt = new ParameterizedSQL(`
+				SELECT *
+					FROM (
+						SELECT t.cmrFk,
+								t.id ticketFk,
+								co.country,
+								t.clientFk,
+								sub.id hasCmrDms,
+								DATE(t.shipped) shipped
+							FROM ticket t
+								JOIN ticketState ts ON ts.ticketFk = t.id
+								JOIN state s ON s.id = ts.stateFk
+								JOIN alertLevel al ON al.id = s.alertLevel
+								JOIN client c ON c.id = t.clientFk
+								JOIN address a ON a.id = t.addressFk
+								JOIN province p ON p.id = a.provinceFk
+								JOIN country co ON co.id = p.countryFk
+								JOIN agencyMode am ON am.id = t.agencyModeFk
+								JOIN deliveryMethod dm ON dm.id = am.deliveryMethodFk
+								JOIN warehouse w ON w.id = t.warehouseFk
+								LEFT JOIN (
+									SELECT td.ticketFk, d.id
+										FROM ticketDms td
+											JOIN dms d ON d.id = td.dmsFk
+											JOIN dmsType dt ON dt.id = d.dmsTypeFk
+										WHERE dt.name = 'cmr'
+								) sub ON sub.ticketFk = t.id
+							WHERE co.code <> 'ES'
+								AND am.name <> 'ABONO'
+								AND w.code = 'ALG'
+								AND dm.code = 'DELIVERY'
+								AND t.cmrFk
+				) sub
+			`);
+
+			stmt.merge(conn.makeSuffix(filter));
+			const itemsIndex = stmts.push(stmt) - 1;
+
+			const sql = ParameterizedSQL.join(stmts, ';');
+			const result = await conn.executeStmt(sql);
+			return itemsIndex === 0 ? result : result[itemsIndex];
+	};
+};
diff --git a/modules/route/back/models/route.js b/modules/route/back/models/route.js
index a8d44cd05f..7e61acf25f 100644
--- a/modules/route/back/models/route.js
+++ b/modules/route/back/models/route.js
@@ -15,6 +15,7 @@ module.exports = Self => {
     require('../methods/route/sendSms')(Self);
     require('../methods/route/downloadZip')(Self);
     require('../methods/route/cmr')(Self);
+    require('../methods/route/getExternalCmrs')(Self);
 
     Self.validate('kmStart', validateDistance, {
         message: 'Distance must be lesser than 1000'