UNPKG

@speakr/speakr-module-services

Version:
51 lines (48 loc) 1.53 kB
'use strict'; const db = require('../../db'); module.exports = { ifReferredUpdateReferralPrice }; function ifReferredUpdateReferralPrice(creative_id, new_offer_price) { let referrer_id; return db.creatives.findOne({ where: { id: creative_id }, include: [ { model: db.accounts, include: [db.influencers] } ] }) .then(creative => { referrer_id = creative.account.influencer.referrer ? creative.account.influencer.referrer : null; if(referrer_id) { return db.line_items.findOne({ where: { referral_creative_id: creative_id } }).then(old_line_item => { const newAmount = parseFloat(new_offer_price).toFixed(2); if(old_line_item) { return db.line_items.create({ type: 'referral', id_hash: old_line_item.id_hash, description: old_line_item.description, note: old_line_item.note, invoice_id: old_line_item.invoice_id, payable_id: referrer_id, status: old_line_item.status, discount: old_line_item.discount, amount: parseFloat(newAmount * .1).toFixed(2), created_by: old_line_item.created_by, network_id: old_line_item.network_id, referral_creative_id: old_line_item.referral_creative_id }); } else { return Promise.resolve(null); } }) } else { return Promise.resolve(null); } }) // from account, get influencer // check influencer.referrer // if referrer, find line item // find old line_item, get its id_hash, and create a new line item with new amount }