diff --git a/src/client/quote/ClientQuote.js b/src/client/quote/ClientQuote.js
index cc44889..ced0ce1 100644
--- a/src/client/quote/ClientQuote.js
+++ b/src/client/quote/ClientQuote.js
@@ -1,7 +1,7 @@
/**
* Client-side quote
*
- * Copyright (C) 2017 R-T Specialty, LLC.
+ * Copyright (C) 2017, 2018 R-T Specialty, LLC.
*
* This file is part of the Liza Data Collection Framework.
*
@@ -135,6 +135,10 @@ module.exports = Class( 'ClientQuote' )
.setCurrentStepId( data.currentStepId || 0 )
.setTopVisitedStepId( data.topVisitedStepId || 0 )
.setAgentId( data.agentId || 0 )
+ .setAgentName( data.agentName || "" )
+ .setAgentEntityId( data.agentEntityId || "" )
+ .setStartDate( data.startDate || 0 )
+ .setInitialRatedDate( data.initialRatedDate || 0 )
.setImported( data.imported || false )
.setBound( data.bound || false )
.needsImport( data.needsImport || false )
@@ -553,6 +557,14 @@ module.exports = Class( 'ClientQuote' )
'public proxy getStartDate': '_quote',
+ /**
+ * Returns the quote's initial rated date
+ *
+ * @return {number} quote's initial rated date
+ */
+ 'public proxy getInitialRatedDate': '_quote',
+
+
/**
* Returns the id of the agent that owns the quote
*
@@ -561,6 +573,22 @@ module.exports = Class( 'ClientQuote' )
'public proxy getAgentId': '_quote',
+ /**
+ * Returns the name of the agent that owns the quote
+ *
+ * @return {string} agent name
+ */
+ 'public proxy getAgentName': '_quote',
+
+
+ /**
+ * Returns the entity id of the agent that owns the quote
+ *
+ * @return {string} agent entity id
+ */
+ 'public proxy getAgentEntityId': '_quote',
+
+
/**
* Returns whether the quote has been imported
*
diff --git a/src/quote/BaseQuote.js b/src/quote/BaseQuote.js
index c44eece..05df67b 100644
--- a/src/quote/BaseQuote.js
+++ b/src/quote/BaseQuote.js
@@ -1,7 +1,7 @@
/**
* Contains program Quote class
*
- * Copyright (C) 2017 R-T Specialty, LLC.
+ * Copyright (C) 2017, 2018 R-T Specialty, LLC.
*
* This file is part of the Liza Data Collection Framework.
*
@@ -75,17 +75,29 @@ module.exports = Class( 'BaseQuote' )
'private _program': null,
/**
- * Date (UNIX timestamp) that the quote was started
+ * Date (Unix timestamp) that the quote was started
* @type {number}
*/
'private _startDate': 0,
+ /**
+ * Date (Unix timestamp) that the quote was initially rated
+ * @type {number}
+ */
+ 'private _initialRatedDate': 0,
+
/**
* Id of agent that owns the quote
* @type {number}
*/
'private _agentId': 0,
+ /**
+ * Id of agent entity that owns the quote
+ * @type {number}
+ */
+ 'private _agentEntityId': 0,
+
/**
* Agency name
* @type {string}
@@ -213,7 +225,7 @@ module.exports = Class( 'BaseQuote' )
/**
* Sets the quote start date
*
- * @param {number} time start date as a UNIX timestamp
+ * @param {number} time start date as a Unix timestamp
*
* @return {Quote} self
*/
@@ -235,6 +247,30 @@ module.exports = Class( 'BaseQuote' )
},
+ /**
+ * Sets the quote's initial rated date
+ *
+ * @param {number} time initial rated date as a Unix timestamp
+ *
+ * @return {Quote} self
+ */
+ 'public setInitialRatedDate': function( time )
+ {
+ this._initialRatedDate = +( time );
+ return this;
+ },
+
+ /**
+ * Returns the quote's initial rated date
+ *
+ * @return {number} quote's initial rated date
+ */
+ 'public getInitialRatedDate': function()
+ {
+ return this._initialRatedDate;
+ },
+
+
/**
* Sets id of agent that owns the quote
*
@@ -260,6 +296,31 @@ module.exports = Class( 'BaseQuote' )
},
+ /**
+ * Sets id of agent entity that owns the quote
+ *
+ * @param {number} id agent entity id
+ *
+ * @return {Quote} self
+ */
+ 'public setAgentEntityId': function( id )
+ {
+ this._agentEntityId = +id;
+ return this;
+ },
+
+
+ /**
+ * Returns the id of the agent entity that owns the quote
+ *
+ * @return {number} agent entity id
+ */
+ 'public getAgentEntityId': function()
+ {
+ return this._agentEntityId;
+ },
+
+
/**
* Sets name of agent that owns the quote
*
diff --git a/src/server/Server.js b/src/server/Server.js
index de66a8c..6fd7127 100644
--- a/src/server/Server.js
+++ b/src/server/Server.js
@@ -326,6 +326,8 @@ module.exports = Class( 'Server' )
.setQuickSaveData( quote_data.quicksave || {} )
.setAgentId( quote_data.agentId || agent_id )
.setAgentName( quote_data.agentName || agent_name )
+ .setAgentEntityId( quote_data.agentEntityId || "" )
+ .setInitialRatedDate( quote_data.initialRatedDate || 0 )
.setStartDate(
quote_data.getStartDate
|| Math.round( new Date().getTime() / 1000 )
@@ -739,6 +741,9 @@ module.exports = Class( 'Server' )
explicitLockStepId: lock_step,
agentId: quote.getAgentId(),
agentName: quote.getAgentName(),
+ agentEntityId: ( internal ) ? quote.getAgentEntityId() : 0,
+ startDate: quote.getStartDate(),
+ initialRatedDate: quote.getInitialRatedDate(),
quicksave: quote.getQuickSaveData(),
diff --git a/test/client/quote/ClientQuoteTest.js b/test/client/quote/ClientQuoteTest.js
new file mode 100644
index 0000000..3ad9260
--- /dev/null
+++ b/test/client/quote/ClientQuoteTest.js
@@ -0,0 +1,74 @@
+/**
+ * Tests ClientQuote
+ *
+ * Copyright (C) 2018 R-T Specialty, LLC.
+ *
+ * This file is part of the Liza Data Collection Framework.
+ *
+ * liza is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+'use strict';
+
+const chai = require( 'chai' );
+const expect = chai.expect;
+const { BaseQuote } = require( '../../../' ).quote;
+const { ClientQuote } = require( '../../../' ).client.quote;
+const { QuoteDataBucket } = require( '../../../' ).bucket;
+
+describe( 'ClientQuote', () =>
+{
+ const base_quote = BaseQuote( 123, QuoteDataBucket() );
+ const start_date = 12345;
+ const agent_id = 90000;
+ const agent_name = 'John Doe';
+ const agent_entity_id = 12434300;
+ const initial_rated_date = 1531507748;
+ const quote = ClientQuote(
+ base_quote,
+ {
+ startDate: start_date,
+ agentId: agent_id,
+ agentName: agent_name,
+ agentEntityId: agent_entity_id,
+ initialRatedDate: initial_rated_date,
+ },
+ bucket => bucket
+ );
+
+ it( 'getStartDate returns base quote startDate', () =>
+ {
+ expect( quote.getStartDate() ).to.equal( start_date );
+ } );
+
+ it( 'getAgentId returns base quote agentId', () =>
+ {
+ expect( quote.getAgentId() ).to.equal( agent_id );
+ } );
+
+ it( 'getAgentName returns base quote agentName', () =>
+ {
+ expect( quote.getAgentName() ).to.equal( agent_name );
+ } );
+
+ it( 'getAgentEntityId returns base quote agentEntityId', () =>
+ {
+ expect( quote.getAgentEntityId() ).to.equal( agent_entity_id );
+ } );
+
+ it( 'getInitialRatedDate returns base quote initialRatedDate', () =>
+ {
+ expect( quote.getInitialRatedDate() ).to.equal( initial_rated_date );
+ } );
+} );
diff --git a/test/quote/BaseQuoteTest.js b/test/quote/BaseQuoteTest.js
new file mode 100644
index 0000000..9c6b8cd
--- /dev/null
+++ b/test/quote/BaseQuoteTest.js
@@ -0,0 +1,58 @@
+/**
+ * Tests BaseQuote
+ *
+ * Copyright (C) 2018 R-T Specialty, LLC.
+ *
+ * This file is part of the Liza Data Collection Framework.
+ *
+ * liza is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+'use strict';
+
+const chai = require( 'chai' );
+const expect = chai.expect;
+const { BaseQuote } = require( '../../' ).quote;
+
+describe( 'BaseQuote', () =>
+{
+ [
+ {
+ property: 'startDate',
+ value: 12345
+ },
+ {
+ property: 'initialRatedDate',
+ value: 12345
+ },
+ {
+ property: 'agentEntityId',
+ value: 12434300
+ },
+ ].forEach( testCase =>
+ {
+ const quote = BaseQuote( 123, {} );
+ const property = testCase.property;
+ const title_cased = property.charAt( 0 ).toUpperCase() + property.slice( 1 );
+ const setter = 'set' + title_cased;
+ const getter = 'get' + title_cased;
+
+ it( property + ' can be mutated and accessed', () =>
+ {
+ expect( quote[getter].call( null ) ).to.be.undefined;
+ quote[setter].call( null, testCase.value );
+ expect( quote[getter].call( null ) ).to.equal( testCase.value );
+ } );
+ } );
+} );