';
return;
}
var paper = null;
for (var i = 0; i < D.papers.length; i++) {
if (D.papers[i].id === pid) { paper = D.papers[i]; break; }
}
if (!paper) {
outEl.style.display = 'none';
empEl.style.display = '';
empEl.innerHTML = '
Бумага не найдена. Добавьте её в админ-панели
';
return;
}
var film = null;
if (lam > 0) {
if (!fid) {
outEl.style.display = 'none';
empEl.style.display = '';
empEl.innerHTML = '
Выберите плёнку для ламинирования
';
return;
}
for (var j = 0; j < D.films.length; j++) {
if (D.films[j].id === fid) { film = D.films[j]; break; }
}
if (!film) {
outEl.style.display = 'none';
empEl.style.display = '';
empEl.innerHTML = '
Плёнка не найдена. Добавьте её в админ-панели
';
return;
}
}
/* card with bleed */
var bcw = cw + BLEED * 2;
var bch = ch + BLEED * 2;
/* try both orientations on SRA3 */
var c1 = Math.floor(SRA3_W / bcw);
var r1 = Math.floor(SRA3_H / bch);
var t1 = c1 * r1;
var c2 = Math.floor(SRA3_W / bch);
var r2 = Math.floor(SRA3_H / bcw);
var t2 = c2 * r2;
var cols, rows, cps, fcw, fch;
if (t1 >= t2) {
cols = c1; rows = r1; cps = t1; fcw = bcw; fch = bch;
} else {
cols = c2; rows = r2; cps = t2; fcw = bch; fch = bcw;
}
if (cps === 0) {
outEl.style.display = 'none';
empEl.style.display = '';
empEl.innerHTML = '
Карточка не помещается на лист SRA3. Попробуйте уменьшить размер
';
return;
}
var sheets = Math.ceil(qty / cps);
var st = D.st;
/* paper cost */
var paperCost = sheets * paper.price;
/* print cost with linear discount */
var fullClick = st.click * sides;
var minClick = st.cmin * sides;
var dvol = Math.max(st.dvol, 1);
var curClick;
if (sheets <= 1) {
curClick = fullClick;
} else if (sheets >= dvol) {
curClick = minClick;
} else {
curClick = fullClick - (fullClick - minClick) * ((sheets - 1) / (dvol - 1));
}
var printCost = curClick * sheets;
/* lamination */
var lamCost = 0;
var filmPPM = 0;
var filmMeters = 0;
if (lam > 0 && film) {
filmPPM = film.rl > 0 ? film.cpr / film.rl : 0;
filmMeters = st.fusage / 100;
lamCost = filmPPM * filmMeters * sheets * lam;
}
/* cutting */
var cutLenMM = (cols + 1) * rows * fch + (rows + 1) * cols * fcw;
var cutMeters = cutLenMM * sheets / 1000;
var cutCost = cutMeters * st.cut;
/* scoring */
var scoreCost = 0;
var scoreMeters = 0;
if (doScore) {
scoreMeters = cps * fcw * sheets / 1000;
scoreCost = scoreMeters * st.score;
}
/* pre/post press */
var preCost = sheets * st.pre;
var postCost = qty * st.post;
/* total */
var total = paperCost + printCost + lamCost + cutCost + scoreCost + preCost + postCost;
var perCard = qty > 0 ? total / qty : 0;
var discPct = fullClick > 0 ? Math.round((1 - curClick / fullClick) * 100) : 0;
/* render */
empEl.style.display = 'none';
outEl.style.display = '';
var parts = [];
/* summary row */
parts.push('