@speakr/speakr-module-services
Version:
SPEAKR Shared Service Module
51 lines (48 loc) • 1.53 kB
JavaScript
'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
}