Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //create contractEntitlementsAPI following the pattern of api/model/instance for other entities
- /**
- * Get All contract entitlements for given contact id
- Query to fetch data is
- CRM.api3('HRJobContract', 'get', {
- "sequential": 1,
- "contact_id": 206,
- "api.HRJobContract.getfulldetails": {"jobcontract_id":"$value.id"}
- }).done(function(result) {
- // do something
- });
- will return
- {
- "is_error": 0,
- "version": 3,
- "count": 1,
- "id": 2,
- "values": [
- {
- "id": "2",
- "contact_id": "206",
- "is_primary": "1",
- "deleted": "0",
- "is_current": "1",
- "api.HRJobContractRevision.get": {
- "is_error": 0,
- "version": 3,
- "count": 1,
- "id": 8,
- "values": [
- {
- "id": "8",
- "jobcontract_id": "2",
- "editor_uid": "1",
- "created_date": "2017-03-28 12:08:46",
- "effective_date": "2017-03-28",
- "modified_date": "2017-03-28 12:08:48",
- "details_revision_id": "8",
- "health_revision_id": "8",
- "hour_revision_id": "8",
- "leave_revision_id": "8",
- "pay_revision_id": "8",
- "pension_revision_id": "8",
- "role_revision_id": "8",
- "deleted": "0",
- "editor_name": "admin@example.com",
- "api.HRJobLeave.get": {
- "is_error": 0,
- "version": 3,
- "count": 3,
- "values": [
- {
- "id": "4",
- "leave_type": "1",
- "leave_amount": "20",
- "add_public_holidays": "1",
- "jobcontract_revision_id": "8"
- },
- {
- "id": "5",
- "leave_type": "2",
- "leave_amount": "10",
- "add_public_holidays": "0",
- "jobcontract_revision_id": "8"
- },
- {
- "id": "6",
- "leave_type": "3",
- "leave_amount": "5",
- "add_public_holidays": "0",
- "jobcontract_revision_id": "8"
- }
- ]
- },
- "api.HRJobDetails.get": {
- "is_error": 0,
- "version": 3,
- "count": 1,
- "id": 2,
- "values": [
- {
- "id": "2",
- "position": "developer",
- "title": "developer",
- "contract_type": "Contractor",
- "period_start_date": "2017-03-28",
- "location": "Home",
- "jobcontract_revision_id": "8"
- }
- ]
- }
- }
- ]
- }
- }
- ]
- }
- */
- getAllContractEntitlements: funciton (contactId,params) {
- params = params || {};
- params.contact_id = contactId
- return this.sendGET('HRJobContract', 'get', params, false)
- .then(function (data) {
- var contractEntitlements = [];
- _.each(data.values, function (contract) {
- var contractEntitlement = {};
- _.each(contract['api.HRJobContractRevision.get'].values, function (jobContractRevision) {
- _.each(jobContractRevision['api.HRJobLeave.get'].values, function (jobLeaves) {
- _.each(jobLeaves.values, function (jobLeave) {
- contractEntitlement.leaveType = jobLeave.leave_type;
- contractEntitlement.leaveAmount = jobLeave.leave_amount;
- });
- });
- _.each(jobContractRevision['api.HRJobDetails.get'].values, function (jobDetails) {
- _.each(jobDetails.values, function (jobDetail) {
- contractEntitlement.position = jobDetail.position;
- contractEntitlement.periodStartDate = jobDetail.period_start_date;
- contractEntitlement.periodEndDate = jobDetail.period_end_date;
- });
- });
- contractEntitlements.push(contractEntitlement);
- });
- });
- };
- });
- return contractEntitlements;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement