RECORD.prototype.calc_computed = function() {
this.computed = new Object();
this.computed.pacing = -1;
this.computed.projected = -1;
var booked = this.data[FLDS.booked];
var deliv = this.data[FLDS.confirmed];
if (booked > 0 && deliv > 0) {
var ratio = deliv / booked;
if (ratio < 20) {
var start = this.data[FLDS.startdate];
var end = this.data[FLDS.enddate];
var pctcomp = 0; // see util.ctxinc: campaign_percent_complete
if (end > start) {
if (end <= RECORD_TODAY) {
pctcomp = 1;
}
else {
pctcomp = (RECORD_TODAY - start) / (end - start);
}
}
if (pctcomp > 0) {
ratio /= pctcomp;
ratio *= 100;
ratio = ratio.toFixed(2);
this.computed.pacing = ratio;
}
}
if (booked > deliv) {
var owe = booked - deliv;
var days_remain = (end - RECORD_TODAY) / 86400 + 1;
this.computed.projected = parseInt(owe / days_remain, 10);
}
}
};
UkVDT1JELnByb3RvdHlwZS5jYWxjX2NvbXB1dGVkID0gZnVuY3Rpb24oKSB7CiAgICB0aGlzLmNvbXB1dGVkID0gbmV3IE9iamVjdCgpOwogICAgdGhpcy5jb21wdXRlZC5wYWNpbmcgPSAtMTsKICAgIHRoaXMuY29tcHV0ZWQucHJvamVjdGVkID0gLTE7CiAgICB2YXIgYm9va2VkID0gdGhpcy5kYXRhW0ZMRFMuYm9va2VkXTsKICAgIHZhciBkZWxpdiA9IHRoaXMuZGF0YVtGTERTLmNvbmZpcm1lZF07CiAgICBpZiAoYm9va2VkID4gMCAmJiBkZWxpdiA+IDApIHsKCXZhciByYXRpbyA9IGRlbGl2IC8gYm9va2VkOwoJaWYgKHJhdGlvIDwgMjApIHsKCSAgICB2YXIgc3RhcnQgPSB0aGlzLmRhdGFbRkxEUy5zdGFydGRhdGVdOwoJICAgIHZhciBlbmQgPSB0aGlzLmRhdGFbRkxEUy5lbmRkYXRlXTsKCSAgICB2YXIgcGN0Y29tcCA9IDA7IC8vIHNlZSB1dGlsLmN0eGluYzogY2FtcGFpZ25fcGVyY2VudF9jb21wbGV0ZQoJICAgIGlmIChlbmQgPiBzdGFydCkgewoJCWlmIChlbmQgPD0gUkVDT1JEX1RPREFZKSB7CgkJICAgIHBjdGNvbXAgPSAxOwoJCX0KCQllbHNlIHsKCQkgICAgcGN0Y29tcCA9IChSRUNPUkRfVE9EQVkgLSBzdGFydCkgLyAoZW5kIC0gc3RhcnQpOwoJCX0KCSAgICB9CgkgICAgaWYgKHBjdGNvbXAgPiAwKSB7CgkJcmF0aW8gLz0gcGN0Y29tcDsKCQlyYXRpbyAqPSAxMDA7CgkJcmF0aW8gPSByYXRpby50b0ZpeGVkKDIpOwoJCXRoaXMuY29tcHV0ZWQucGFjaW5nID0gcmF0aW87CgkgICAgfQoJfQoJaWYgKGJvb2tlZCA+IGRlbGl2KSB7CgkgICAgdmFyIG93ZSA9IGJvb2tlZCAtIGRlbGl2OwoJICAgIHZhciBkYXlzX3JlbWFpbiA9IChlbmQgLSBSRUNPUkRfVE9EQVkpIC8gODY0MDAgKyAxOwoJICAgIHRoaXMuY29tcHV0ZWQucHJvamVjdGVkID0gcGFyc2VJbnQob3dlIC8gZGF5c19yZW1haW4sIDEwKTsKCX0KICAgIH0KfTsK