NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Virtonomica:Снабжение // @namespace virtonomica // @description Снабжение // @version 1.4 // @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(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').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').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){ form = true; function addtablemax(ar, table, t){ var cf=0, kf=0, cnf=0, bf=0, b=false; for(i=0; i<ar.length; i++){ if(ar[i]['col'] > ar[i]['max']) cf += parseInt(ar[i]['max']); 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 )); } } if(isNaN(kf) || cnf == 0){ kf = ''; cnf = ''; bf = ''; } } 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)); 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)); n++; }) } } function createtable(ar, i, t){ if(ar.length>0){ var cf=0, kf=0, cnf=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(isNaN(kf)){ kf = 0; cnf = 0; bf = 0; } }else{ kf = 0; cnf = 0; bf = 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)+'</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>'); } 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)+'</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>'); $(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; var but_1 = $('<input type="button" rel="'+j+'" value="+" />').click(function() { add($(this).attr('rel'),1,txt) }); var but_2 = $('<input type="button" rel="'+j+'" value="+" />').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(n==0){ $(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(n==0){ $(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; 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').click(function(){ if($('.helpsn').is(':visible')) $('.helpsn').hide(); else $('.helpsn').show(); return false; }) $('input[name*=party_quantity]').keyup(function(){ updatetable(8); scladr(); }) $('.allsclad select').change(function(){ updatetable(8); scladr(); }) updatetable(0); scladr() var but_ras = $('<input type="button" value="Расчет" />').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){ form = true; 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; 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 but_1 = $('<input type="button" rel="'+k+'" value="+" />').click(function() { add($(this).attr('rel'),1,txt) }); var but_2 = $('<input type="button" rel="'+k+'" value="+" />').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){ but_1 = $('<input type="button" rel="'+k+'" value="+" />').click(function() { add($(this).attr('rel'),1,txt) }); but_2 = $('<input type="button" rel="'+k+'" value="+" />').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; 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(isNaN(kf)){ kf = 0; cnf = 0; } }else{ kf = 0; cnf = 0; } 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)+'</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]').keyup(function(){ updatetablepr(7); }) var but_ras = $('<input type="button" value="Расчет" />').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, 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(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(isNaN(kf)){ kf = 0; cnf = 0; } }else{ kf = 0; cnf = 0; } if(t){ $('.cf',cel).text(num(cf, false)).click(function(){$('#sc').val(cf); $('#sk').val(kf.toFixed(2));}); $('.cnf',cel).text('$'+cnf.toFixed(2)); $('.kf',cel).text(kf.toFixed(2)); $(cel).css('background-color','#efe'); ssred(cel,ar,false); } if(b){ $(cel).css('background-color','#fee'); $('.cf',cel).append('<div style="color:#f00;">'+num(cf, false)+'</div>').click(function(){$('#sc').val(cf); $('#sk').val(kf.toFixed(2));}); $('.cnf',cel).append('<div style="color:#f00">$'+cnf.toFixed(2)+'</div>'); $('.kf',cel).append('<div style="color:#f00">'+kf.toFixed(2)+'</div>'); } } function updatetablesk(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')){ if(t){ ko[j] = parseFloat($(cels[4]).text()); var skach = $('<input>', {'type':'text', 'class':'skach','style':'display:block;','ids':j}).val(ko[j]).keyup(function(){ updatetablesk(false, true); }); $('.p_title_l', this).prepend(skach); if($('.p_title_l div table',$(this)).html().length < 25){ $(cels[1]).append('<strong style="display:block" class="cf"></strong>'); $(cels[3]).append('<strong style="display:block" class="cnf"></strong>'); $(cels[5]).append('<strong style="display:block" class="kf"></strong>'); }else{ $('.p_title_l div table',$(this)) .append('<tr><td colspan="2"><strong>После пересчета</strong></td></tr>') .append('<tr><th>На складе:</th><td><strong style="display:block;" class="ccf"></strong></td></tr>') .append('<tr><th>Качество/Себестоимость:</th><td><strong style="display:block;" class="ccf1"></strong></td></tr>'); $(cels[7]).append('<strong style="display:block" class="cf"></strong>'); $(cels[9]).append('<strong style="display:block" class="cnf"></strong>'); $(cels[11]).append('<strong style="display:block" class="kf"></strong>'); } } name = 'q'+randWD(5); $(this).addClass(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, '')); k = nullpr(k), ck = cn / 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'); } if(c > max){ $(cels[8]).css('background-color','#FEE'); $('span', cels[8]).css('color','red'); } if(c < max){ $(cels[8]).css('background-color',''); $('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, '')); $('input[type=text]', tr).val(max); updatetablesk(false); }) $(cels[3]).append('<span style="display:block;color:#f00;">'+ck.toFixed(2)+'</span>'); but_1 = $('<input type="button" rel="'+n+'" value="+" />').click(function() { add($(this).attr('rel'),1,txt) }); but_2 = $('<input type="button" rel="'+n+'" value="+" />').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++){ nasklade.nasklade = $('.'+ txt1[i][0].name +' div table tr td:contains("На складе")').next().text(); nasklade.nasklade = parseInt(nasklade.nasklade.replace(/ /g, '')); if(isNaN(nasklade.nasklade)) nasklade.nasklade = 0; nasklade.naskladecach = $('.'+ txt1[i][0].name +' div table tr td:contains("Качество/Себестоимость")').next().text(); 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; nasklade.otgruzki = $('.'+ txt1[i][0].name +' div table tr td:contains("Отгрузки")').next().text(); 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; var q1 = parseFloat( cf1 / col); 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(r1.toFixed(2) + '/$' + r2.toFixed(2)); } } }); } updatetablesk(true,true); $('input[name*=supplyContractData]').keyup(function(){ updatetablesk(false); }) var hidep1 = true; var hidep = $('<button>Скрыть поставщиков</button>').appendTo($('table.list th')[0]).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="Расчет" />').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;" />').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').click(function(){$('#mainformc').hide()}) } } // Хак, что бы получить полноценный доступ к DOM >:] var script = document.createElement("script"); script.textContent = '(' + run.toString() + ')();'; document.documentElement.appendChild(script);