// ==UserScript==
// @name Virtonomica:Снабжение
// @namespace virtonomica
// @version 1.495
// @description Добавление расширенной функциональности вкладки Снабжение
// @author UnclWish
// @include http://*virtonomic*.*/*/main/unit/view/*/supply
// ==/UserScript==
var run = function() {
var win = (typeof(unsafeWindow) != 'undefined' ? unsafeWindow : top.window);
$ = win.$;
var txt = [],
ko = [],
scl = [],
txt1 = [],
//prc = 0;
i = 0,
j = 0,
closespan = '<span r="windkol" class="closeform" style="float:right;margin-right:10px;color:#f00;font-size:14pt;cursor:pointer;">×</span>',
p1 = -1,
p2 = -1,
form = false;
scl[370077]=10500000;scl[1509]=105000;scl[422549]=5250000;scl[370080]=70000;scl[15338]=157500;scl[370078]=5250000;scl[1518]=157500;scl[422550]=5250000;scl[370079]=105000;scl[370081]=87500;scl[1525]=2100000;scl[359859]=52500000;scl[359862]=52500000;scl[422552]=10500000;scl[359856]=10500000;scl[422199]=52500000;scl[359861]=52500000;scl[359860]=52500000;scl[15336]=105000000;scl[359863]=52500000;scl[422433]=1050000;scl[422547]=52500000;scl[422434]=4200000;scl[3865]=126000000;scl[335179]=52500000;scl[380000]=52500000;scl[380005]=35000000;scl[1502]=105000000;scl[1522]=1050000000;scl[1503]=105000000;scl[380006]=35000000;scl[335178]=35000000;scl[422197]=52500000;scl[422198]=35000000;scl[1504]=210000000;scl[1505]=52500000;scl[359847]=105000000;scl[335180]=52500000;scl[15748]=105000000;scl[1507]=105000000;scl[380007]=105000000;scl[15334]=5250000;scl[301320]=2625000;scl[422204]=2100000;scl[422203]=5250000;scl[301318]=42000000;scl[312798]=4200000;scl[422437]=10500000;scl[1519]=5250000;scl[1520]=5250000;scl[422650]=3500000;scl[422649]=10500000;scl[301319]=42000000;scl[15742]=262500000;scl[1496]=105000000;scl[1497]=105000000;scl[422553]=52500000;scl[422055]=52500000;scl[3869]=52500000;scl[335181]=52500000;scl[422544]=1105000000;scl[422545]=105000000;scl[422546]=105000000;scl[335176]=35000000;scl[1498]=210000000;scl[15747]=105000000;scl[1489]=73500000;scl[1499]=105000000;scl[1500]=1050000000;scl[1501]=131250000;scl[1490]=17500000;scl[422054]=13125000;scl[335177]=21000000;scl[15744]=262500000;scl[15743]=210000000;scl[15749]=105000000;scl[335174]=21000000;scl[335175]=52500000;scl[1491]=525000000;scl[15750]=105000000;scl[16006]=52500000;scl[373201]=105000000;scl[422205]=52500000;scl[380002]=52500000;scl[1492]=210000000;scl[1506]=367500000;scl[1494]=73500000;scl[1513]=5250000;scl[302897]=525000;scl[1514]=105000000;scl[13708]=105000000;scl[422380]=1050000;scl[422431]=2100000;scl[15335]=105000000;scl[1482]=105000000;scl[15337]=525000;scl[7093]=3675000;scl[7092]=5250000;scl[1523]=3675000;scl[370075]=3500000;scl[1511]=157500000;scl[3965]=2625000;scl[7094]=4200000;scl[3866]=73500000;scl[3966]=105000000;scl[422201]=18750000;scl[303308]=52500000;scl[373199]=420000;scl[7095]=1420000;scl[16007]=52500000;scl[1521]=10500000;scl[303310]=1050000;scl[3870]=4200000;scl[422436]=525000;scl[422435]=1050000;scl[1516]=2100000;scl[312799]=4200000;scl[422200]=8750000;scl[422551]=5250000;scl[3838]=3675000;scl[422432]=525000;scl[1512]=1050000;scl[1515]=525000;scl[380004]=1050000;scl[373200]=1050000;scl[1517]=3675000;scl[373202]=1050000;scl[422212]=2100000;scl[3867]=1050000;scl[3868]=1050000;scl[1510]=1050000;scl[351577]=150045;scl[2540]=10500000;scl[2546]=420000;scl[370076]=105000;scl[380008]=420000;scl[1524]=10500000;scl[1526]=420000;
function num(num, x){
num = num.toFixed(2);
var parts = num.split('.');
parts[0] = parts[0].substr(0, parts[0].length%3)+parts[0].substr(parts[0].length%3).replace(/(\d{3})/g,' \$1');
if(parts[0].length%4 === 0)
parts[0] = parts[0].slice(1);
if(x)
return parts.join('.');
else
return parts[0];
}
function Calculate1(n){
$('.divtemp').text('');
var c = parseInt($('#sc').val()),
c1 = parseInt($('#sc1').val()),
x1 = 0,
x2 = 0,
k = parseFloat($('#sk').val()),
k1 = parseFloat($('#sk1').val()),
k2 = parseFloat($('#sk2').val()),
k3 = parseFloat($('#sk3').val()),
cn1 = 0,
cn2 = parseFloat($('#scn2').val()),
cn3 = parseFloat($('#scn3').val());
x1 = Math.round(f1(c, c1, k, k1, k2, k3));
x2 = Math.round(f1(c, c1, k, k1, k3, k2));
cn1 = f3(c, c1, x1, x2, cn2, cn3).toFixed(2);
if($('#svo').attr('checked')){
if(x1 > txt[p1]['max']){
x1 = txt[p1]['max'];
c1 = Math.round(f2(c, x1, k, k1, k2, k3));
x2 = Math.round(f1(c, c1, k, k1, k3, k2));
cn1 = f3(c, c1, x1, x2, cn2, cn3).toFixed(2);
}
if(x2 > txt[p2]['max']){
x2 = txt[p2]['max'];
c1 = Math.round(f2(c, x2, k, k1, k3, k2));
x1 = Math.round(f1(c, c1, k, k1, k2, k3));
cn1 = f3(c, c1, x1, x2, cn2, cn3).toFixed(2);
}
$('#sc1').val(c1);
}
$('#sx1').val(x1);
$('#sx2').val(x2);
$('#scn1').val(cn1);
$('#cenacach').text((cn1 / k1).toFixed(2));
$('#cenacach1').text((cn2 / k2).toFixed(2));
$('#cenacach2').text((cn3 / k3).toFixed(2));
$('#divtemp'+p1).html('<a class="aaddsp" href="#">_+_</a> <a class="aadds" href="#">'+x1+'</a>');
$('#divtemp'+p2).html('<a class="aaddsp" href="#">_+_</a> <a class="aadds" href="#">'+x2+'</a>');
$('.aadds').unbind('click').click(function(){
var col = $(this).text();
$(this).parent().next().val(col);
if(n === 0) updatetable(8);
if(n == 1) updatetablepr(7);
if(n == 2) updatetablesk(false);
return false;
});
$('.aaddsp').unbind('click').click(function(){
var col = parseInt($(this).next().text());
var col1 = parseInt($(this).parent().next().val());
var colo = parseInt(col + col1);
$(this).parent().next().val(colo);
if(n === 0) updatetable(8);
if(n == 1) updatetablepr(7);
if(n == 2) updatetablesk(false);
return false;
});
}
function fillArray( summ, cach, max ) {
this.summ = summ;
this.cach = cach;
this.max = max;
}
function add(id,prod,ar){
if(prod==1){
$('#sk2').val(ar[id]['cach']);
$('#scn2').val(ar[id]['summ']);
p1 = id;
}
if(prod==2){
$('#sk3').val(ar[id]['cach']);
$('#scn3').val(ar[id]['summ']);
p2 = id;
}
}
function print_r(arr, level) {
var print_red_text = "";
if(!level) level = 0;
var level_padding = "";
for(var j=0; j<level+1; j++) level_padding += " ";
if(typeof(arr) == 'object') {
for(var item in arr) {
var value = arr[item];
if(typeof(value) == 'object') {
print_red_text += level_padding + "'" + item + "' :\n";
print_red_text += print_r(value,level+1);
}
else
print_red_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
}
}
else print_red_text = "===>"+arr+"<===("+typeof(arr)+")";
return print_red_text;
}
function f1(c, c1, k, k1, k2, k3){
x1 = (c1 * (k1 - k3) - c * (k - k3)) / (k2 - k3);
return x1;
}
function f2(c, x1, k, k1, k2, k3){
c1 = (x1 * (k2 - k3) + c * (k1 - k3)) / (k1 - k3);
return c1;
}
function f3(c, c1, x1, x2, s1, s2){
s = (s1 * x1 + s2 * x2) / (c1 - c);
return s;
}
function addar(col, summ, cach, brend, max, sc, name, id ) {
this.col = col;
this.summ = summ;
this.cach = cach;
this.brend = brend;
this.max = max;
this.ck = parseFloat((this.summ / this.cach).toFixed(2));
this.sc = parseFloat(sc) || 0;
this.name = name || '';
this.id = id || 0;
}
function nullpr(x){
if(isNaN(x)) x = 0;
return x;
}
var title=$('#unitImage img').attr('src');
if(title.search('img/v2/units/shop')!=-1 || title.search('img/v2/units/fuel')!=-1){
form = true;
function addtablemax(ar, table, t){
var cf=0, kf=0, cnf=0, cnkf=0, bf=0, b=false;
for(i=0; i<ar.length; i++){
if(ar[i]['col'] > ar[i]['max']){
cf += parseInt(ar[i]['max']);
if(ar[i]['col']>0) b = true;}
else
cf += parseInt(ar[i]['col']);
}
if(cf !== 0){
for(i=0; i<ar.length; i++){
if(ar[i]['col'] > ar[i]['max']){
kf += parseFloat(ar[i]['cach'] * ( ar[i]['max'] / cf ));
cnf += parseFloat(ar[i]['summ'] * ( ar[i]['max'] / cf ));
bf += parseFloat(ar[i]['brend'] * ( ar[i]['max'] / cf ));
b = true;
}else{
kf += parseFloat(ar[i]['cach'] * ( ar[i]['col'] / cf ));
cnf += parseFloat(ar[i]['summ'] * ( ar[i]['col'] / cf ));
bf += parseFloat(ar[i]['brend'] * ( ar[i]['col'] / cf ));
}
}
cnkf = cnf / kf;
if(isNaN(kf)){
kf = 0;
cnf = 0;
bf = 0;
cnkf = 0;
}
}
if(b){
table.closest('td').css('background-color','#fee');
var n = 0;
$('tr', table).each( function() {
var cels = $('td', this);
//if(n == 0) $(cels[1]).append(num(cf, false));
//if(n == 1) $(cels[1]).append(kf.toFixed(2)+'<span title="Цена за единицу качества (Ц/К) с учетом запасов">($'+cnkf.toFixed(2)+')</span>');
//if(n == 2 && t == 0) $(cels[1]).append(bf.toFixed(2));
//if(n == 3 && t == 0) $(cels[1]).append('$'+num(cnf, true));
//if(n == 2 && t == 1) $(cels[1]).append('$'+num(cnf, true));
switch (n) {
case 1: $(cels[1]).append(kf.toFixed(2)+'<span title="Цена за единицу качества (Ц/К) с учетом запасов">($'+cnkf.toFixed(2)+')</span>');
break;
case 2: if(t === 0) $(cels[1]).append(bf.toFixed(2));
else if(t == 1) $(cels[1]).append('$'+num(cnf, true));
break;
case 3: if(t === 0) $(cels[1]).append('$'+num(cnf, true));
break;
default:$(cels[1]).append(num(cf, false));
break;
}
n++;
});
}
}
function createtable(ar, i, t){
if(ar.length>0){
var cf=0, kf=0, cnf=0, cnkf=0, bf=0;
for(i=0; i<ar.length; i++){
cf += parseInt(ar[i]['col']);
}
if(cf > 0){
for(i=0; i<ar.length; i++){
kf += parseFloat(ar[i]['cach'] * ( ar[i]['col'] / cf ));
cnf += parseFloat(ar[i]['summ'] * ( ar[i]['col'] / cf ));
bf += parseFloat(ar[i]['brend'] * ( ar[i]['col'] / cf ));
}
if(kf!==0) cnkf = cnf / kf
if(isNaN(kf)){
kf = 0;
cnf = 0;
bf = 0;
cnkf = 0;
}
}else{
kf = 0;
cnf = 0;
bf = 0;
cnkf = 0;
}
if(t === 0){
var table = $('<table width="100%" style="margin-top:-17px;margin-bottom:60px;" class="noborder"><tr><td class="zcol" align="right">'+num(cf, false)+'</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+kf.toFixed(2)+'<span title="Цена за единицу качества (Ц/К)">($'+cnkf.toFixed(2)+')</span></td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+bf.toFixed(2)+'</td><td align="right" style="color:#f00;"></td></tr><td align="right">$'+num(cnf, true)+'</td><td align="right" style="color:#f00;"></td></tr></table>');
// var table = $('<table width="100%" style="margin-top:-17px" class="noborder"><tr><td class="zcol" align="right">'+cf.toFixed(0)+'</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+kf.toFixed(2)+'('+cnkf.toFixed(2)+')</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+bf.toFixed(2)+'</td><td align="right" style="color:#f00;"></td></tr><td align="right">$'+cnf.toFixed(2)+'</td><td align="right" style="color:#f00;"></td></tr></table>');
}
if(t == 1) var table = $('<table cellpadding="0" cellspacing="0" width="100%" class="noborder"><tr><td align="right">'+num(cf, false)+'</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+kf.toFixed(2)+'<span title="Цена за единицу качества (Ц/К)">($'+cnkf.toFixed(2)+')</span></td><td align="right" style="color:#f00;"></td></tr><td align="right">$'+num(cnf, true)+'</td><td align="right" style="color:#f00;"></td></tr></table>');
//if(t == 1) var table = $('<table cellpadding="0" cellspacing="0" width="100%" class="noborder"><tr><td align="right">'+cf.toFixed(0)+'</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+kf.toFixed(2)+'('+cnkf.toFixed(2)+')</td><td align="right" style="color:#f00;"></td></tr><td align="right">$'+cnf.toFixed(2)+'</td><td align="right" style="color:#f00;"></td></tr></table>');
$(cel).html('').append(table).css('background-color','#efe');
addtablemax(ar, table, t);
return 0;
}
return i;
}
function updatetable(n){
var ar = [], i=0, j=0;
$(".list tr").each( function() {
if($(this).hasClass('sub_row') || $(this).hasClass('product_row')){
var cels = $('td', this),
c = 0,
k = 0,
cn = 0,
br = 0,
sv = 0,
max = 0,
ck = 0;
var but_1 = $('<input type="button" rel="'+j+'" value="+1п" />').unbind('click').click(function() { add($(this).attr('rel'),1,txt); });
var but_2 = $('<input type="button" rel="'+j+'" value="+2п" />').unbind('click').click(function() { add($(this).attr('rel'),2,txt); });
if($(this).hasClass('sub_row')){
c = parseInt($('input', cels[1]).val().replace(/ /g, ''));
cn = parseFloat($(cels[6]).text().replace('$', '').replace(/ /g, ''));
k = parseFloat($(cels[8]).text().replace(/ /g, ''));
br = parseFloat($(cels[10]).text().replace(/ /g, ''));
sv = parseInt($(cels[17]).text().replace(/ /g, ''));
max = parseInt($('span', cels[1]).text().replace('Max: ', '').replace(/ /g, ''));
if(k!==0) ck = cn / k;
if(isNaN(k)) ck = 0;
if(n===0){
$(cels[3]).append('<span style="display:block;color:#f00;">$<span title="Цена за единицу качества (Ц/К)">'+ck.toFixed(2)+'</span></span>');
$(cels[0]).prepend('<br />').prepend(but_2).prepend(but_1);
$(cels[1]).prepend('<div class="divtemp" id="divtemp'+j+'" style="color:green"></div>');
}
k = nullpr(k);
br = nullpr(br);
}
if($(this).hasClass('product_row')){
i = createtable(ar, i, 0);
ar = [];
cel = cels[14];
c = parseInt($('input', cels[n+17]).val().replace(/ /g, ''));
cn = parseFloat($(cels[n+22]).text().replace('$', '').replace(/ /g, ''));
k = parseFloat($(cels[n+24]).text().replace(/ /g, ''));
br = parseFloat($(cels[n+26]).text().replace(/ /g, ''));
sv = parseInt($(cels[n+33]).text().replace(/ /g, ''));
max = parseInt($('span', cels[n+17]).text().replace('Max: ', '').replace(/ /g, ''));
if(k!==0) ck = cn / k;
if(isNaN(k)) ck = 0;
if(n===0){
$(cels[19]).append('<span style="display:block;color:#f00;"><span title="Цена за единицу качества (Ц/К)">$'+ck.toFixed(2)+'</span></span>');
$(cels[16]).prepend('<br />').prepend(but_2).prepend(but_1);
$(cels[17]).prepend('<div class="divtemp" id="divtemp'+j+'" style="color:green"></div>');
}
k = nullpr(k);
br = nullpr(br);
}
if(isNaN(max)) max = sv;
if(sv < max) max = sv;
if(isNaN(c)) c = 0;
ar[i] = new addar(c, cn, k, br, max);
i++;
if(n === 0){
$(this).attr('ids',j);
txt[j] = new fillArray( cn, k, max );
j++;
}
}
if(!$(this).hasClass('sub_row') || !$(this).hasClass('product_row') && i > 0){
createtable(ar, i, 0);
}
});
}
function statusz(x,help){
var x1 = x;
var color = '#86EF75';
if(x > 100){
x1 = 100;
color = '#F47981';
}
if(x < 0){
x1 = 0;
}
var s = '<div title="'+help+'" style="margin-top:3px;border:solid 1px gray;height:15px;"><div style="background-color:'+color+';width:'+x1.toFixed(2)+'%;height:15px;"><span style="position:absolute;margin-left:10px;">'+x.toFixed(2)+'%</span></div></div>';
return s;
}
function scladr(){
var prc = 0;
var prc1 = 0;
var prc2 = 0;
$(".list tr").each( function() {
var cels = $('td', this);
if($(this).hasClass('product_row')){
var cel1 = cels[3];
$('.scl',cel1).remove();
$('.scl1',cel1).remove();
$('.scl2',cel1).remove();
$(cel1).append('<div class="scl"></div>').append('<div class="scl1"></div>').append('<div class="scl2"></div>');
var col = parseInt($('table td:contains(Количество)',cel1).next().text().replace(/ /g,''));
var index = parseInt($(cel1).closest('tr').attr('id').replace(/product_row_/g,'').replace(/-([0-9]+)/g,''));
//var scl1 = (col * 100 / scl[index]) * 1000 / $('.list .allsclad select').val();
var scl1 = (col * 100 * $('.allsclad select').val()) / scl[index];
$('.scl',cel1).html(statusz(scl1,'В данный момент на складе.'));
prc += scl1;
var colprod = parseInt($('table td:contains(Продано)',cel1).next().text().replace(/ /g,''));
var colzac = parseInt($('.zcol',$(cel1).next()).text().replace(/ /g,''));
//var scl2 = ((colzac + col) * 100 / scl[index]) * 1000 / $('.list .allsclad select').val();
var scl2 = ((colzac + col) * 100 * $('.allsclad select').val()) / scl[index];
$('.scl1',cel1).html(statusz(scl2,'После закупки без продаж.'));
prc1 += scl2;
//var scl3 = ((colzac + col - colprod) * 100 / scl[index]) * 1000 / $('.list .allsclad select').val();
var scl3 = ((colzac + col - colprod) * 100 * $('.allsclad select').val()) / scl[index];
$('.scl2',cel1).html(statusz(scl3,'После закупки с такими же продажами.'));
prc2 += scl3;
}
});
if(prc > 0 || prc1 > 0 || prc2 > 0){
$('.allsclad .cc').html(statusz(prc,'В данный момент на складе.')+statusz(prc1,'После закупки без продаж.')+statusz(prc2,'После закупки с такими же продажами.'));
}
}
$('#menutop li ul').width(1100);
$('#wrapper').width(1100);
var i = 0;
$(".list tr").each( function() {
var cels = $('td', this);
if(i === 0 && $(cels[0]).hasClass('title')){
$(this).before('<tr><td></td><td class="allsclad"><label>Размер склада<select><option value="1050">100</option><option value="210">500</option><option selected value="105">1000</option><option value="10.5">10000</option><option value="1.05">100000</option></select></label> <a href="#">?</a></div><div class="cc"></div></td><td colspan="9"><div class="helpsn" style="display:none;">Расчет заполняемости склада идет только по товару находящимуся на данной страннице снабжения. (Если на складе присутствует товар по которому в данный момент нет поставщика, то данный товар не считается)</div></td></tr>');
i++;
}
});
$('.allsclad a').unbind('click').click(function(){
if($('.helpsn').is(':visible'))
$('.helpsn').hide();
else
$('.helpsn').show();
return false;
});
$('input[name*=party_quantity]').unbind('keyup').keyup(function(){
updatetable(8);
scladr();
});
$('.allsclad select').change(function(){
updatetable(8);
scladr();
});
updatetable(0);
scladr();
var but_ras = $('<input type="button" value="Расчет" />').unbind('click').click(function() { Calculate1(0); });
}
if(title.search('img/v2/units/animalfarm')!=-1 || title.search('img/v2/units/workshop')!=-1 || title.search('img/v2/units/power')!=-1 || title.search('img/v2/units/mill')!=-1 || title.search('img/v2/units/repair')!=-1 || title.search('img/v2/units/restaurant')!=-1 || title.search('img/v2/units/medicine')!=-1){
form = true;
function addtablemax(ar, table, t){
var cf=0, kf=0, cnf=0, cnkf=0, bf=0, b=false;
for(i=0; i<ar.length; i++){
if(ar[i]['col'] > ar[i]['max']){
cf += parseInt(ar[i]['max']);
if(ar[i]['col']>0) b = true;}
else
cf += parseInt(ar[i]['col']);
}
if(cf !== 0){
for(i=0; i<ar.length; i++){
if(ar[i]['col'] > ar[i]['max']){
kf += parseFloat(ar[i]['cach'] * ( ar[i]['max'] / cf ));
cnf += parseFloat(ar[i]['summ'] * ( ar[i]['max'] / cf ));
bf += parseFloat(ar[i]['brend'] * ( ar[i]['max'] / cf ));
b = true;
}else{
kf += parseFloat(ar[i]['cach'] * ( ar[i]['col'] / cf ));
cnf += parseFloat(ar[i]['summ'] * ( ar[i]['col'] / cf ));
bf += parseFloat(ar[i]['brend'] * ( ar[i]['col'] / cf ));
}
}
cnkf = cnf / kf;
if(isNaN(kf)){
kf = 0;
cnf = 0;
bf = 0;
cnkf = 0;
}
}
if(b){
table.closest('td').css('background-color','#fee');
var n = 0;
$('tr', table).each( function() {
var cels = $('td', this);
//if(n == 0) $(cels[1]).append(num(cf, false));
//if(n == 1) $(cels[1]).append(kf.toFixed(2)+'<span title="Цена за единицу качества (Ц/К) с учетом запасов">($'+cnkf.toFixed(2)+')</span>');
//if(n == 2 && t == 0) $(cels[1]).append(bf.toFixed(2));
//if(n == 3 && t == 0) $(cels[1]).append('$'+num(cnf, true));
//if(n == 2 && t == 1) $(cels[1]).append('$'+num(cnf, true));
switch (n) {
case 1: $(cels[1]).append(kf.toFixed(2)+'<span title="Цена за единицу качества (Ц/К) с учетом запасов">($'+cnkf.toFixed(2)+')</span>');
break;
case 2: if(t === 0) $(cels[1]).append(bf.toFixed(2));
else if(t == 1) $(cels[1]).append('$'+num(cnf, true));
break;
case 3: if(t === 0) $(cels[1]).append('$'+num(cnf, true));
break;
default:$(cels[1]).append(num(cf, false));
break;
}
n++;
});
}
}
function createtable(ar, i, t){
if(ar.length>0){
var cf=0, kf=0, cnf=0, cnkf=0, bf=0;
for(i=0; i<ar.length; i++){
cf += parseInt(ar[i]['col']);
}
if(cf > 0){
for(i=0; i<ar.length; i++){
kf += parseFloat(ar[i]['cach'] * ( ar[i]['col'] / cf ));
cnf += parseFloat(ar[i]['summ'] * ( ar[i]['col'] / cf ));
bf += parseFloat(ar[i]['brend'] * ( ar[i]['col'] / cf ));
}
if(kf!==0) cnkf = cnf / kf
if(isNaN(kf)){
kf = 0;
cnf = 0;
bf = 0;
cnkf = 0;
}
}else{
kf = 0;
cnf = 0;
bf = 0;
cnkf = 0;
}
if(t === 0){
var table = $('<table width="100%" style="margin-top:-17px;margin-bottom:60px;" class="noborder"><tr><td class="zcol" align="right">'+num(cf, false)+'</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+kf.toFixed(2)+'<span title="Цена за единицу качества (Ц/К)">($'+cnkf.toFixed(2)+')</span></td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+bf.toFixed(2)+'</td><td align="right" style="color:#f00;"></td></tr><td align="right">$'+num(cnf, true)+'</td><td align="right" style="color:#f00;"></td></tr></table>');
// var table = $('<table width="100%" style="margin-top:-17px" class="noborder"><tr><td class="zcol" align="right">'+cf.toFixed(0)+'</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+kf.toFixed(2)+'('+cnkf.toFixed(2)+')</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+bf.toFixed(2)+'</td><td align="right" style="color:#f00;"></td></tr><td align="right">$'+cnf.toFixed(2)+'</td><td align="right" style="color:#f00;"></td></tr></table>');
}
if(t == 1) var table = $('<table cellpadding="0" cellspacing="0" width="100%" class="noborder"><tr><td align="right">'+num(cf, false)+'</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+kf.toFixed(2)+'<span title="Цена за единицу качества (Ц/К)">($'+cnkf.toFixed(2)+')</span></td><td align="right" style="color:#f00;"></td></tr><td align="right">$'+num(cnf, true)+'</td><td align="right" style="color:#f00;"></td></tr></table>');
//if(t == 1) var table = $('<table cellpadding="0" cellspacing="0" width="100%" class="noborder"><tr><td align="right">'+cf.toFixed(0)+'</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+kf.toFixed(2)+'('+cnkf.toFixed(2)+')</td><td align="right" style="color:#f00;"></td></tr><td align="right">$'+cnf.toFixed(2)+'</td><td align="right" style="color:#f00;"></td></tr></table>');
$(cel).html('').append(table).css('background-color','#efe');
addtablemax(ar, table, t);
return 0;
}
return i;
}
function newtype(id, title, subrow){
this.id = id;
this.title = title;
this.subrow = subrow;
}
function addarr(item,n,id){
var ar = [],c = 0,k = 0,cn = 0,br = 0,sv = 0,max = 0;
$(item).each( function() {
var cels = $('td', this);
c = parseInt($('input', cels[18+n]).val().replace(/ /g, ''));
k = parseFloat($(cels[28+n]).text().replace(/ /g, ''));
cn = parseFloat($(cels[23+n]).text().replace('$', '').replace(/ /g, ''));
br = 0;
sv = parseInt($(cels[36+n]).text().replace(/ /g, ''));
max = parseInt($('span', cels[18+n]).text().replace('Max: ', '').replace(/ /g, ''));
k = nullpr(k);
});
if(isNaN(max)) max = sv;
if(sv < max) max = sv;
if(isNaN(c)) c = 0;
ar = new addar(c, cn, k, br, max);
return ar;
}
var type=[], i=0, k=0;
$('.list th:contains(Поставки)').before('<th rowspan="2">Заказ</th>');
function updatetablepr(m){
for(var item in gaMaterialProduct) {
var t = $('#product_row_'+item+' th [rowspan=2] img').attr('alt'),
subrow = gaMaterialProduct[item]['subRowCount'],
ar = [],
n = 0;
type[i] = new newtype(item,t,subrow);
i++;
ar[n] = addarr('#product_row_'+item,m,k);
n++;
if(m === 0){
var kk = 0,cn = 0,ck = 0;
$('#product_row_'+item).each( function() {
var cels = $('td', this);
kk = parseFloat($(cels[28+m]).text().replace(/ /g, ''));
cn = parseFloat($(cels[23+m]).text().replace('$', '').replace(/ /g, ''));
if(kk!==0) ck = cn /kk;
if(isNaN(kk)) ck = 0;
$('#product_row_'+item+' #name_'+item+'_0').next().next().append('<span style="display:block;color:#f00;"><span title="Цена за единицу качества (Ц/К)">$'+ck.toFixed(2)+'</span></span>');
var but_1 = $('<input type="button" rel="'+k+'" value="+1п" />').unbind('click').click(function() { add($(this).attr('rel'),1,txt); });
var but_2 = $('<input type="button" rel="'+k+'" value="+2п" />').unbind('click').click(function() { add($(this).attr('rel'),2,txt); });
$('#product_row_'+item+' #name_'+item+'_0').prepend('<br />').prepend(but_2).prepend(but_1);
$('#product_row_'+item+' #name_'+item+'_0').next().prepend('<div class="divtemp" id="divtemp'+k+'" style="color:green"></div>');
});}
txt[k] = addarr('#product_row_'+item,m,k);
k++;
for(j=1; j<subrow; j++){
ar[n] = addarr('#product_sub_row_'+item+'_'+j,-17,k);
n++;
if(m === 0){
var kk = 0,cn = 0,ck = 0;
$('#product_sub_row_'+item+'_'+j).each( function() {
var cels = $('td', this);
kk = parseFloat($(cels[11+m]).text().replace(/ /g, ''));
cn = parseFloat($(cels[6+m]).text().replace('$', '').replace(/ /g, ''));
if(kk!==0) ck = cn /kk;
if(isNaN(kk)) ck = 0;
$('#product_sub_row_'+item+'_'+j+' #name_'+item+'_'+j).next().next().append('<span style="display:block;color:#f00;"><span title="Цена за единицу качества (Ц/К)">$'+ck.toFixed(2)+'</span></span>');
but_1 = $('<input type="button" rel="'+k+'" value="+1п" />').unbind('click').click(function() { add($(this).attr('rel'),1,txt); });
but_2 = $('<input type="button" rel="'+k+'" value="+2п" />').unbind('click').click(function() { add($(this).attr('rel'),2,txt); });
$('#product_sub_row_'+item+'_'+j+' #name_'+item+'_'+j).prepend('<br />').prepend(but_2).prepend(but_1);
$('#product_sub_row_'+item+'_'+j+' #name_'+item+'_'+j).next().prepend('<div class="divtemp" id="divtemp'+k+'" style="color:green"></div>');
});}
txt[k] = addarr('#product_sub_row_'+item+'_'+j,-17,k);
k++;
}
if( m>0 )
$('#product_row_'+item+' #name_'+item+'_0').prev().remove();
var cel = $('<td width="100" class="temp'+item+'" rowspan="'+subrow+'"></td>');
$('#product_row_'+item+' #name_'+item+'_0').before(cel);
if(ar.length>0){
var cf=0, kf=0, cnf=0, cnkf=0;
for(j=0; j<ar.length; j++){
cf += parseInt(ar[j]['col']);
}
if(cf > 0){
for(j=0; j<ar.length; j++){
kf += parseFloat(ar[j]['cach'] * ( ar[j]['col'] / cf ));
cnf += parseFloat(ar[j]['summ'] * ( ar[j]['col'] / cf ));
}
if(kf!==0) cnkf = cnf / kf;
if(isNaN(kf)){
kf = 0;
cnf = 0;
cnkf = 0;
}
}else{
kf = 0;
cnf = 0;
cnkf = 0;
b = true;
}
var table = $('<table cellpadding="0" cellspacing="0" width="100%" class="noborder"><tr><td style="word-wrap:normal" align="right">'+num(cf, false)+'</td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">'+kf.toFixed(2)+'<span title="Цена за единицу качества (Ц/К)">($'+cnkf.toFixed(2)+')</span></td><td align="right" style="color:#f00;"></td></tr><tr><td align="right">$'+num(cnf, true)+'</td><td align="right" style="color:#f00;"></td></tr></table>');
$(cel).html('').append(table).css('background-color','#efe');
addtablemax(ar, table, 1);
}
$('temp'+item).remove();
$('#product_row_'+item+' #name_'+item+'_0').before(cel);
}
}
updatetablepr(0);
$('input[name*=supplyContractData]').unbind('keyup').keyup(function(){
updatetablepr(7);
});
var but_ras = $('<input type="button" value="Расчет" />').unbind('click').click(function() { Calculate1(1); });
}
if(title.search('img/v2/units/warehouse')!=-1){
//var nasklade = [];
function sortzak(){
var i = 0, j = 0, n = 0;
for(n = 0; n < txt1.length; n++){
var ar1 = [], ar2 = [];
for(i = 0; i < txt1[n].length; i++){
if(txt1[n][i].sc > txt1[n][i].cach){
ar1.push(txt1[n][i]);
}else{
ar2.push(txt1[n][i]);
}
}
ar1.sort(function(obj1, obj2) {
return obj2.ck - obj1.ck;
});
ar2.sort(function(obj1, obj2) {
return obj1.ck - obj2.ck;
});
txt1[n] = [];
txt1[n] = txt1[n].concat(ar1,ar2);
var div = $('<div>');
for(i = txt1[n].length-1; i >= 0; i--){
//console.log(i);
$('.'+txt1[n][i].name).after($('.'+txt1[n][i].name+txt1[n][i].id));
//$('.'+txt1[n][i].name+txt1[n][i].id).hide()
}
}
}
function randWD(n){ // [ 2 ] random words and digits
return Math.random().toString(36).slice(2, 2 + Math.max(1, Math.min(n, 10)) );
}
function ssred(cel,ar,t){
var cf=0, kf=0, cnf=0, cnkf=0, b = false;
for(i=0; i<ar.length; i++){
if(ar[i]['col'] <= ar[i]['max'] || t)
cf += parseInt(ar[i]['col']);
else {
cf += parseInt(ar[i]['max']);
if(ar[i]['col']>0) b = true;}
}
if(cf > 0){
for(i=0; i<ar.length; i++){
if(ar[i]['col'] <= ar[i]['max'] || t){
kf += parseFloat(ar[i]['cach'] * ( ar[i]['col'] / cf ));
cnf += parseFloat(ar[i]['summ'] * ( ar[i]['col'] / cf ));
}else{
kf += parseFloat(ar[i]['cach'] * ( ar[i]['max'] / cf ));
cnf += parseFloat(ar[i]['summ'] * ( ar[i]['max'] / cf ));
b = true;
}
}
if(kf !== 0) cnkf = cnf / kf;
if(isNaN(kf)){
kf = 0;
cnf = 0;
cnkf = 0;
}
}else{
kf = 0;
cnf = 0;
cnkf = 0;
}
if(t){
$('.cf',cel).text(num(cf, false)).unbind('click').click(function(){$('#sc').val(cf); $('#sk').val(kf.toFixed(2));});//updatetablesk(false,falsee);});
$('.cnf',cel).text('$'+num(cnf, true));
$('.kf',cel).text(kf.toFixed(2)+'($'+cnkf.toFixed(2)+')');
$(cel).css('background-color','#efe');
if(cf!==0) ssred(cel,ar,false);
}
if(b){
$(cel).css('background-color','#fee');
$('.cf',cel).append('<div style="color:#f00;">'+num(cf, false)+'</div>').unbind('click').click(function(){$('#sc').val(cf); $('#sk').val(kf.toFixed(2));});//updatetablesk(false,true);});
$('.cnf',cel).append('<div style="color:#f00">$'+num(cnf, true)+'</div>');
$('.kf',cel).append('<div style="color:#f00">'+kf.toFixed(2)+'($'+cnkf.toFixed(2)+')</div>');
}
}
//$('table.list tr').each( function() {
//var cels = $('td',this);
//var name = '';
//if($(this).hasClass('p_title')){
//$(this,'p_title').each( function() {
//if($(this).hasClass('p_title')){
//name = 'q'+randWD(3);
//$(this).addClass(name)}});
function createtablesk(t, sort){
var sort = sort || false;
var ar = [], cel, n=0;
var txt2 = [];
var name = '';
j = 0;
form = true;
$('table.list tr').each( function() {
var cels = $('td',this);
//if($(this).hasClass('p_title')){
//$(this,'p_title').each( function() {
if($(this).hasClass('p_title')){
name = 'q'+randWD(3);
$(this).addClass(name);
if(t){
ko[j] = parseFloat($(cels[4]).text());
var skach = $('<input>', {'type':'text', 'class':'skach','style':'display:block;','ids':j}).val(ko[j]).unbind('keyup').keyup(function(){
updatetablesk(false, true, name);
});
$('.p_title_l', this).prepend(skach);
if($('.p_title_l div table',$(this)).html().length < 25){
var cn = parseFloat($(cels[3]).text().replace(/\s+/g, '').replace(/\$/g, '')),
k = parseFloat($(cels[5]).text().replace(/ /g, '')),
cf = parseInt($(cels[1]).text().replace(/ /g, '')),
naskl = parseInt($('.'+name+' div table tr td:contains("На складе:")').next().text().replace(/ /g, '')),
nasklpp = parseInt($('.'+name+' div table tr td:contains("Отгрузки")').next().text().replace(/ /g, '')),
cnk = 0;
cnk = cn / k;
if(isNaN(cnk)) cnk=0;
if (cf>0 || (!isNaN(naskl) && !isNaN(nasklpp) && (naskl > nasklpp)))
$('.p_title_l div table',$(this))
.after('<tr><td>Качество/Себестоимость:</td><td><strong style="display:block;" class="ccf1"></strong></td></tr>')
.after('<tr><td>На складе:</td><td><strong style="display:block;" class="ccf"></strong></td></tr>')
.after('<tr><td colspan="2"><strong>После пересчета</strong></td></tr>');
if(cf>0&&k>0) $(cels[1]).append('<strong style="display:block" class="cf"></strong>');
else $(cels[1]).html('').append('<strong style="display:block" class="cf"></strong>');
$(cels[3]).append('<strong style="display:block" class="cnf"></strong>');
if(cnk!==0) $(cels[5]).html('<b>'+parseFloat($(cels[5]).text()).toFixed(2)+'</b>').append('<b>($'+cnk.toFixed(2)+')</b><strong style="display:block" class="kf"></strong>');
else $(cels[5]).append('<strong style="display:block" class="kf"></strong>');
}else{
if($('.p_title_l div table',$(this)).html().length < 128){
var cn = parseFloat($(cels[5]).text().replace(/\s+/g, '').replace(/\$/g, '')),
k = parseFloat($(cels[7]).text().replace(/ /g, '')),
cf = parseInt($(cels[3]).text().replace(/ /g, '')),
naskl = parseInt($('.'+name+' div table tr td:contains("На складе:")').next().text().replace(/ /g, '')),
nasklpp = parseInt($('.'+name+' div table tr td:contains("Отгрузки")').next().text().replace(/ /g, '')),
cnk = 0;
cnk = cn / k;
if(isNaN(cnk)) cnk=0;
if (cf>0 || (!isNaN(naskl) && !isNaN(nasklpp) && (naskl > nasklpp)))
$('.p_title_l div table',$(this))
.append('<tr><td colspan="2"><strong>После пересчета</strong></td></tr>')
.append('<tr><td>На складе:</td><td><strong style="display:block;" class="ccf"></strong></td></tr>')
.append('<tr><td>Качество/Себестоимость:</td><td><strong style="display:block;" class="ccf1"></strong></td></tr>');
if(cf>0&&k>0) $(cels[3]).append('<strong style="display:block" class="cf"></strong>');
else $(cels[3]).html('').append('<strong style="display:block" class="cf"></strong>');
$(cels[5]).append('<strong style="display:block" class="cnf"></strong>');
if(cnk!==0) $(cels[7]).html('<b>'+parseFloat($(cels[7]).text()).toFixed(2)+'</b>').append('<b>($'+cnk.toFixed(2)+')</b><strong style="display:block" class="kf"></strong>');
else $(cels[7]).append('<strong style="display:block" class="kf"></strong>');
}else{
if($('.p_title_l div table',$(this)).html().length < 250){
var cn = parseFloat($(cels[7]).text().replace(/\s+/g, '').replace(/\$/g, '')),
k = parseFloat($(cels[9]).text().replace(/ /g, '')),
cf = parseInt($(cels[5]).text().replace(/ /g, '')),
naskl = parseInt($('.'+name+' div table tr td:contains("На складе:")').next().text().replace(/ /g, '')),
nasklpp = parseInt($('.'+name+' div table tr td:contains("Отгрузки")').next().text().replace(/ /g, '')),
cnk = 0;
cnk = cn / k;
if(isNaN(cnk)) cnk=0;
if (cf>0 || (!isNaN(naskl) && !isNaN(nasklpp) && (naskl > nasklpp)))
$('.p_title_l div table',$(this))
.after('<tr><td>Качество/Себестоимость:</td><td><strong style="display:block;" class="ccf1"></strong></td></tr>')
.after('<tr><td>На складе:</td><td><strong style="display:block;" class="ccf"></strong></td></tr>')
.after('<tr><td colspan="2"><strong>После пересчета</strong></td></tr>');
if(cf>0&&k>0) $(cels[5]).append('<strong style="display:block" class="cf"></strong>');
else $(cels[5]).html('').append('<strong style="display:block" class="cf"></strong>');
$(cels[7]).append('<strong style="display:block" class="cnf"></strong>');
if(cnk!==0) $(cels[9]).html('<b>'+parseFloat($(cels[9]).text()).toFixed(2)+'</b>').append('<b>($'+cnk.toFixed(2)+')</b><strong style="display:block" class="kf"></strong>');
else $(cels[9]).append('<strong style="display:block" class="kf"></strong>');
}else{
var cn = parseFloat($(cels[9]).text().replace(/\s+/g, '').replace(/\$/g, '')),
k = parseFloat($(cels[11]).text().replace(/ /g, '')),
cf = parseInt($(cels[7]).text().replace(/ /g, '')),
naskl = parseInt($('.'+name+' div table tr td:contains("На складе:")').next().text().replace(/ /g, '')),
nasklpp = parseInt($('.'+name+' div table tr td:contains("Отгрузки")').next().text().replace(/ /g, '')),
cnk = 0;
cnk = cn / k;
if(isNaN(cnk)) cnk=0;
if (cf>0 || (!isNaN(naskl) && !isNaN(nasklpp) && (naskl > nasklpp)))
$('.p_title_l div table',$(this))
.after('<tr><td>Качество/Себестоимость:</td><td><strong style="display:block;" class="ccf1"></strong></td></tr>')
.after('<tr><td>На складе:</td><td><strong style="display:block;" class="ccf"></strong></td></tr>')
.after('<tr><td colspan="2"><strong>После пересчета</strong></td></tr>');
if(cf>0&&k>0) $(cels[7]).append('<strong style="display:block" class="cf"></strong>');
else $(cels[7]).html('').append('<strong style="display:block" class="cf"></strong>');
$(cels[9]).append('<strong style="display:block" class="cnf"></strong>');
if(cnk!==0) $(cels[11]).html('<b>'+parseFloat($(cels[11]).text()).toFixed(2)+'</b>').append('<b>($'+cnk.toFixed(2)+')</b><strong style="display:block" class="kf"></strong>');
else $(cels[11]).append('<strong style="display:block" class="kf"></strong>');
}
}
}
}
//name = 'q'+randWD(3);
//$(this).addClass(name);
//alert (name);
if(txt2.length > 0){
txt1[j-1] = [];
txt1[j-1] = txt2;
}
j++;
if(i > 0){
ssred(cel,ar,true);
}
cel = this;
ar = [];
txt2 = [];
i = 0;
}
if($(this).hasClass('odd') || $(this).hasClass('even')){
var c = parseInt($('input[name*=supplyContractData]',cels[1]).val().replace(/ /g, '')),
cn = parseFloat($(cels[3]).text().replace('$', '').replace(/ /g, '')),
k = parseFloat($(cels[5]).text().replace(/ /g, '')),
max = parseInt($(cels[8]).text().replace(/ /g, '')),
str = $(cels[8]).html(),
ck = 0,
sv = 0,
vsego = 0;
if(str.indexOf('из') > -1)
str = str.substring( (str.indexOf('из') + 2), str.length);
sv = parseInt(str.replace(/ /g, ''));
vsego = parseInt(str.substring( (str.indexOf('>') + 1), str.length).replace(/ /g, ''));
if(isNaN(max)) max = 10000000000000000;
if(sv < max)
max = sv;
if(k!==0) ck = cn / k;
if(isNaN(k)) ck = 0;
if(isNaN(c)) c = 0;
k = nullpr(k),
txt2[i] = new addar(c, cn, k, 0, max, $('.skach[ids='+(j-1)+']').val(), name, i);
if(c == max){
$(cels[8]).css('background-color','#EFE');
$('span', cels[8]).css('color','#000');
}
else {if(max===0&&k===0){
$(cels[8]).css('background-color','#EFE');
$('span', cels[8]).css('color','red');
}
else {if(c > max){
$(cels[8]).css('background-color','#FEE');
$('span', cels[8]).css('color','red');
}
else {if(c < max){
$(cels[8]).css('background-color','#EFE');
$('span', cels[8]).css('color','#000');
}}}}
ar[i] = new addar(c, cn, k, 0, max );
if($('.skach[ids='+(j-1)+']').val() < k)
$(this).css('background-color','#E9E8FF');
else
$(this).css('background-color','#EAEAEA');
if(t){
$(cels[8]).click(function(){
var tr = $(this).closest('tr'),
max = parseInt($(this).text().replace(/ /g, '')),
str = $(cels[8]).html(),
sv = 0;
if(str.indexOf('из') > -1)
str = str.substring( (str.indexOf('из') + 2), str.length);
sv = parseInt(str.replace(/ /g, ''));
if(isNaN(max)) max = 0;
if(sv < max)
max = sv;
$('input[type=text]', tr).val(max);
updatetablesk(false,false);
});
$(cels[5]).append('<span style="display:block;color:#f00;"><span title="Цена за единицу качества (Ц/К)">$'+ck.toFixed(2)+'</span>');
but_1 = $('<input type="button" rel="'+n+'" value="+1п" />').unbind('click').click(function() { add($(this).attr('rel'),1,txt); });
but_2 = $('<input type="button" rel="'+n+'" value="+2п" />').unbind('click').click(function() { add($(this).attr('rel'),2,txt); });
$(cels[0]).prepend('<br />').prepend(but_2).prepend(but_1);
$(cels[1]).prepend('<div class="divtemp" id="divtemp'+n+'"></div>');
txt[n] = new addar(c, cn, k, 0, max );
n++;
}
$(this).addClass(name+i);
i++;
}
if(!$(this).hasClass('odd') && !$(this).hasClass('even') && !$(this).hasClass('p_title') && i>0){
if(txt2.length > 0){
txt1[j-1] = [];
txt1[j-1] = txt2;
}
ssred(cel,ar,true);
if(sort)
sortzak();
var nasklade = {};
for(i = 0; i < txt1.length; i++){
//if ($(" div table tr td:contains('На складе')").length) {
nasklade.nasklade = parseInt($('.'+ txt1[i][0].name +' div table tr td:contains("На складе")').next().text().replace(/ /g, ''));
//nasklade.nasklade = parseInt($('.p_title_l div table tr td:contains("На складе")').next().text().replace(/ /g, ''));
//nasklade.nasklade = parseInt(nasklade.nasklade.replace(/ /g, ''));
if(isNaN(nasklade.nasklade)) nasklade.nasklade = 0;
//alert (name);
nasklade.naskladecach = $('.'+ txt1[i][0].name +' div table tr td:contains("Качество/Себестоимость")').next().text();
//nasklade.naskladecach = $('.p_title_l div table tr td:contains("Качество/Себестоимость")').next().text();
nasklade.naskladecena = nasklade.naskladecach;
nasklade.naskladecach = parseFloat(nasklade.naskladecach.replace('$', '').replace(/ /g, ''));
if(isNaN(nasklade.naskladecach)) nasklade.naskladecach = 0;
//nasklade.naskladecena = $('.'+ txt1[i][0].name +' div table tr td:contains("Качество/Себестоимость")').next().text();
nasklade.naskladecena = parseFloat(nasklade.naskladecena.substr(nasklade.naskladecena.indexOf('$')).replace('$', '').replace(/ /g, ''));
if(isNaN(nasklade.naskladecena)) nasklade.naskladecena = 0;
// }else {
//if(isNaN(nasklade.nasklade)) nasklade.nasklade = 0;
//if(isNaN(nasklade.naskladecach)) nasklade.naskladecach = 0;
//if(isNaN(nasklade.naskladecena)) nasklade.naskladecena = 0;
nasklade.otgruzki = parseInt($('.'+ txt1[i][0].name +' div table tr td:contains("Отгрузки")').next().text().replace(/ /g, ''));
//nasklade.otgruzki = parseInt(nasklade.otgruzki.replace(/ /g, ''));
if(isNaN(nasklade.otgruzki))
nasklade.otgruzki = 0;
var cf1 = nasklade.nasklade - nasklade.otgruzki;
if(cf1 < 0)
cf1 = 0;
var cf = parseInt($('.'+ txt1[i][0].name +' .cf div').text().replace(/ /g, ''));
if(isNaN(cf))
cf = parseInt($('.'+ txt1[i][0].name +' .cf').text().replace(/ /g, ''));
var col = nasklade.nasklade - nasklade.otgruzki;
if(col < 0)
col = 0;
col += cf;
if (col === 0) q1 = 0;
else var q1 = parseFloat( cf1 / col);
if (col === 0) q2 = 0;
else var q2 = parseFloat(cf / col);
var kf = parseFloat($('.'+ txt1[i][0].name +' .kf div').text().replace(/ /g, ''));
if(isNaN(kf))
kf = parseFloat($('.'+ txt1[i][0].name +' .kf').text().replace(/ /g, ''));
var cnf = parseFloat($('.'+ txt1[i][0].name +' .cnf div').text().replace('$', '').replace(/ /g, ''));
if(isNaN(cnf))
cnf = parseFloat($('.'+ txt1[i][0].name +' .cnf').text().replace('$', '').replace(/ /g, ''));
var r1 = parseFloat(q1 * nasklade.naskladecach + q2 * kf);
var r2 = parseFloat(q1 * nasklade.naskladecena + q2 * cnf);
$('.'+ txt1[i][0].name +' .ccf').text(num(col, false));
$('.'+ txt1[i][0].name +' .ccf1').text(num(r1, true)+'/$'+num(r2, true));
//$('.p_title_l .ccf1').text(r1.toFixed(2)+'/$'+r2.toFixed(2));
}}
});
//if(sort)
// sortzak();
//alert(n);
//return name;
}
function updatetablesk(t, sort, name){
var sort = sort || false;
var ar = [], cel;
var n=0;
var txt2 = [];
//alert (name);
//name = name.substr(0,3);
j = 0;
form = true;
$('table.list tr').each( function() {
var cels = $('td',this);
if($(this).hasClass('p_title')){
name = $(this).attr('class').substr(8);
//alert(name);
//if(txt2.length > 0){
// txt1[j-1] = [];
// txt1[j-1] = txt2;
//}
j++;
if(i > 0){
ssred(cel,ar,true);
}
cel = this;
ar = [];
txt2 = [];
i = 0;
}
if($(this).hasClass('odd') || $(this).hasClass('even')){
//alert ('2');
var c = parseInt($('input[name*=supplyContractData]',cels[1]).val().replace(/ /g, '')),
cn = parseFloat($(cels[3]).text().replace('$', '').replace(/ /g, '')),
k = parseFloat($(cels[5]).text().replace(/ /g, '')),
max = parseInt($(cels[8]).text().replace(/ /g, '')),
str = $(cels[8]).html(),
ck = 0,
sv = 0,
vsego = 0;
if(str.indexOf('из') > -1)
str = str.substring( (str.indexOf('из') + 2), str.length);
sv = parseInt(str.replace(/ /g, ''));
vsego = parseInt(str.substring( (str.indexOf('>') + 1), str.length).replace(/ /g, ''));
if(isNaN(max)) max = 10000000000000000;
if(sv < max)
max = sv;
if(k!==0) ck = cn / k;
if(isNaN(k)) ck = 0;
if(isNaN(c)) c = 0;
k = nullpr(k),
txt2[i] = new addar(c, cn, k, 0, max, $('.skach[ids='+(j-1)+']').val(), name, i);
if(c == max){
$(cels[8]).css('background-color','#EFE');
$('span', cels[8]).css('color','#000');
}
else {if(max===0&&k===0){
$(cels[8]).css('background-color','#EFE');
$('span', cels[8]).css('color','red');
}
else {if(c > max){
$(cels[8]).css('background-color','#FEE');
$('span', cels[8]).css('color','red');
}
else {if(c < max){
$(cels[8]).css('background-color','#EFE');
$('span', cels[8]).css('color','#000');
}}}}
ar[i] = new addar(c, cn, k, 0, max );
if($('.skach[ids='+(j-1)+']').val() < k)
$(this).css('background-color','#E9E8FF');
else
$(this).css('background-color','#EAEAEA');
if(t){
$(cels[8]).unbind('click').click(function(){
var tr = $(this).closest('tr'),
max = parseInt($(this).text().replace(/ /g, '')),
str = $(cels[8]).html(),
sv = 0;
if(str.indexOf('из') > -1)
str = str.substring( (str.indexOf('из') + 2), str.length);
sv = parseInt(str.replace(/ /g, ''));
if(isNaN(max)) max = 0;
if(sv < max)
max = sv;
$('input[type=text]', tr).val(max);
updatetablesk(false,false);
});
//$(cels[5]).append('<span style="display:block;color:#f00;"><span title="Цена за единицу качества (Ц/К)">$'+ck.toFixed(2)+'</span>');
//but_1 = $('<input type="button" rel="'+n+'" value="+1п" />').unbind('click').click(function() { add($(this).attr('rel'),1,txt);});
//but_2 = $('<input type="button" rel="'+n+'" value="+2п" />').unbind('click').click(function() { add($(this).attr('rel'),2,txt);});
//$(cels[0]).prepend('<br />').prepend(but_2).prepend(but_1);
//$(cels[1]).prepend('<div class="divtemp" id="divtemp'+n+'"></div>');
txt[n] = new addar(c, cn, k, 0, max );
n++;
}
$(this).addClass(name+i);
i++;
}
if(!$(this).hasClass('odd') && !$(this).hasClass('even') && !$(this).hasClass('p_title') && i>0){
if(txt2.length > 0){
txt1[j-1] = [];
txt1[j-1] = txt2;
}
ssred(cel,ar,true);
if(sort)
sortzak();
var nasklade = {};
for(i = 0; i < txt1.length; i++){
//if ($(" div table tr td:contains('На складе')").length) {
if ($('.' + txt1[i][0].name +' div table tr td:contains("На складе")').parent().prev().text() == "После пересчета") nasklade.nasklade = 0;
else nasklade.nasklade = parseInt($('.' + txt1[i][0].name +' div table tr td:contains("На складе")').next().text().replace(/ /g, ''));
//nasklade.nasklade = parseInt($('.p_title_l div table tr td:contains("На складе")').next().text().replace(/ /g, ''));
//nasklade.nasklade = parseInt(nasklade.nasklade.replace(/ /g, ''));
if(isNaN(nasklade.nasklade)) nasklade.nasklade = 0;
//alert (txt1[i][0]);
nasklade.naskladecach = $('.' + txt1[i][0].name + ' div table tr td:contains("Качество/Себестоимость")').next().text();
nasklade.naskladecena = nasklade.naskladecach;
nasklade.naskladecach = parseFloat(nasklade.naskladecach.replace('$', '').replace(/ /g, ''));
if(isNaN(nasklade.naskladecach)) nasklade.naskladecach = 0;
//nasklade.naskladecena = $('.'+ txt1[i][0].name +' div table tr td:contains("Качество/Себестоимость")').next().text();
nasklade.naskladecena = parseFloat(nasklade.naskladecena.substr(nasklade.naskladecena.indexOf('$')).replace('$', '').replace(/ /g, ''));
if(isNaN(nasklade.naskladecena)) nasklade.naskladecena = 0;
// }else {
//if(isNaN(nasklade.nasklade)) nasklade.nasklade = 0;
//if(isNaN(nasklade.naskladecach)) nasklade.naskladecach = 0;
//if(isNaN(nasklade.naskladecena)) nasklade.naskladecena = 0;
nasklade.otgruzki = parseInt($('.' + txt1[i][0].name +' div table tr td:contains("Отгрузки")').next().text().replace(/ /g, ''));
//nasklade.otgruzki = parseInt($('.p_title_l div table tr td:contains("Отгрузки")').next().text().replace(/ /g, ''));
//nasklade.otgruzki = parseInt(nasklade.otgruzki.replace(/ /g, ''));
if(isNaN(nasklade.otgruzki))
nasklade.otgruzki = 0;
var cf1 = nasklade.nasklade - nasklade.otgruzki;
if(cf1 < 0)
cf1 = 0;
var cf = parseInt($('.' + txt1[i][0].name +' .cf div').text().replace(/ /g, ''));
if(isNaN(cf))
cf = parseInt($('.' + txt1[i][0].name +' .cf').text().replace(/ /g, ''));
var col = nasklade.nasklade - nasklade.otgruzki;
if(col < 0)
col = 0;
col += cf;
if (col === 0) q1 = 0;
else var q1 = parseFloat( cf1 / col);
if (col === 0) q2 = 0;
else var q2 = parseFloat(cf / col);
var kf = parseFloat($('.' + txt1[i][0].name +' .kf div').text().replace(/ /g, ''));
if(isNaN(kf))
kf = parseFloat($('.' + txt1[i][0].name +' .kf').text().replace(/ /g, ''));
var cnf = parseFloat($('.' + txt1[i][0].name +' .cnf div').text().replace('$', '').replace(/ /g, ''));
if(isNaN(cnf))
cnf = parseFloat($('.' + txt1[i][0].name +' .cnf').text().replace('$', '').replace(/ /g, ''));
var r1 = parseFloat(q1 * nasklade.naskladecach + q2 * kf);
var r2 = parseFloat(q1 * nasklade.naskladecena + q2 * cnf);
$('.' + txt1[i][0].name +' .ccf').text(num(col, false));
$('.' + txt1[i][0].name +' .ccf1').text(num(r1, true)+'/$'+num(r2, true));
//$('.p_title_l .ccf1').text(r1.toFixed(2)+'/$'+r2.toFixed(2));
}
}
//if($(this).hasClass('p_title') && !$(this).hasClass('p_title_l') && $(this).attr('class').substr(8) != name) {alert($(this).attr('class'));return false;};
});
//if(sort)
// sortzak();
//return txt1;
}
createtablesk(true, true);
$('input[name*=supplyContractData]').unbind('keyup').keyup(function(){
//alert ($('tr:has(td):has(input)').prev().attr('class'));
//var name = $('tr:has(td):has(input)').attr('class').substr(9);
//alert (name);
updatetablesk(false, false);
});
$('table.list tr').each( function() {
var cels = $('td',this);
if($(this).hasClass('odd') || $(this).hasClass('even')){
$(cels[8]).click(function(){
//var name = $(this).closest('tr').attr('class');//.substr(6,9);
//alert (name);
updatetablesk(false, false);});}});
$('div#mainContent > form > table.list > tbody > tr:nth-child(1) > th:nth-child(1)').html('<div style="width:100%; text-align:center; color:blue; cursor:pointer"><strong name="showSeller"><span>Скрыть</span> поставщиков</strong></div>');
$('strong[name=showSeller]').unbind('click').click(function() {
s = $(this).find('span');
$('div#mainContent > form > table.list > tbody > tr[class]').each(function() {
if( $(this).hasClass('odd') || $(this).hasClass('even') ) { // Строки покупки ресурсов
if(s.html() == 'Скрыть') $(this).css('display', 'none');
else $(this).removeAttr('style');
}// end switch
});
var sButton = $('div#mainContent > form > table.list > tbody > tr > td[colspan=9] > input.button160').parent().parent();
if( s.html() == 'Скрыть' ) {
s.html('Показать');
$(sButton).css('display', 'none');
} else {
s.html('Скрыть');
$(sButton).removeAttr('style');
}
});
// var hidep1 = true;
// var hidep = $('<button>Скрыть поставщиков</button>').appendTo($('table.list th')[0]).unbind('click').click(function(){
// if(hidep1){
// $('table.list tr.odd, table.list tr.even').hide();
// $(this).text('Показать поставщиков');
// }else{
// $('table.list tr.odd, table.list tr.even').show();
// $(this).text('Скрыть поставщиков');
// }
// hidep1 = !hidep1;
// return false;
// });
var but_ras = $('<input type="button" value="Расчет" />').unbind('click').click(function() { Calculate1(2); });
}
if(form){
$('#mainContent').after('<div id="mainformc" style="display:none; position:fixed; width:500px; background-color:#fff; border:solid 1px #000; z-index:1001; top:10px; left:10px;">'+closespan+'</div>');
var but_show = $('<input type="button" value="Форма смеси" style="position:fixed; left:0px; top:0px;" />').unbind('click').click(function() { $('#mainformc').show(); });
$('#mainContent').prepend(but_show);
$('#mainformc').append('<table align="center" width="20%" border="0" class="grid"><tr class="odd" ><th></th><th >В наличии</th><th>Необходимо</th><th colspan=2 scope="col">Продукты</th></tr><tr align="right" class="odd"><th>Количество</th><td><input type=text id="sc" maxlength=11 value="0" size=10 tabindex=1></td><td><input type=text id="sc1" maxlength=11 value="0" size=10 tabindex=3></td><td><input style="background-color:#ddd;" readonly type=text id="sx1" maxlength=11 value="0" size=10></td><td><input style="background-color:#ddd;" readonly type=text id="sx2" maxlength=11 value="0" size=10></td></tr><tr align="right" class="even"><th>Качество</th><td><input type=text id="sk" maxlength=11 value="0" size=10 tabindex=2></td><td><input type=text id="sk1" maxlength=11 value="0" size=10 tabindex=4></td><td><input type=text id="sk2" maxlength=11 value="0" size=10 tabindex=5></td><td><input type=text id="sk3" maxlength=11 value="0" size=10 tabindex=7></td></tr><tr align="right" class="odd"><th>Цена</th><td></td><td ><div id="cenacach" style="color:#f00;"></div><input style="background-color:#ddd;" readonly type=text id="scn1" maxlength=11 value="0" size=10></td><td><div id="cenacach1" style="color:#f00;"></div><input type=text id="scn2" maxlength=11 value="0" size=10 tabindex=6></td><td><div id="cenacach2" style="color:#f00;"></div><input type=text id="scn3" maxlength=11 value="0" size=10 tabindex=8></td></tr></table>')
.append(but_ras)
.append('<label><input type="checkbox" id="svo" />Считать с кол-вом остатков</label>');
$('#mainformc .closeform').unbind('click').click(function(){$('#mainformc').hide();});
}
};
// Хак, что бы получить полноценный доступ к DOM >:]
var script = document.createElement("script");
script.textContent = '(' + run.toString() + ')();';
document.documentElement.appendChild(script);