/*
Добавились фацеты 15,20,30мм.
Добавилась наклейка черной плёнки на плитку
*/
//Партнерская скидка или наценка Поменять число, чтобы сделать наценку на нашу цену или скидку.
var skidkaPartnera = 1.5*0.035; //т.е. наценка 20%
jQuery(document).ready(function()
{
$('#check2').click(function() {
if ($('#check2').prop("checked") == true) {
jQuery("#mirrorPanoWidthKolvo").slideDown("slow");
jQuery("#mirrorPanoHeigthKolvo").slideDown("slow");
jQuery("#hideN").slideUp("slow");
$('#check2').prop("checked",true);
$('#check1').prop("checked",false);
} else if ($('#check2').prop("checked") == false){
jQuery("#mirrorPanoWidthKolvo").slideUp("slow");
jQuery("#mirrorPanoHeigthKolvo").slideUp("slow");
jQuery("#hideN").slideDown("slow");
$('#check2').prop("checked",false);
$('#check1').prop("checked",true);
}
});
$('#check1').click(function() {
if ($('#check1').prop("checked") == false) {
jQuery("#mirrorPanoWidthKolvo").slideDown("slow");
jQuery("#mirrorPanoHeigthKolvo").slideDown("slow");
jQuery("#hideN").slideUp("slow");
$('#check2').prop("checked",true);
$('#check1').prop("checked",false);
} else if ($('#check2').prop("checked") == true){
jQuery("#mirrorPanoWidthKolvo").slideUp("slow");
jQuery("#mirrorPanoHeigthKolvo").slideUp("slow");
jQuery("#hideN").slideDown("slow");
$('#check2').prop("checked",false);
$('#check1').prop("checked",true);
}
});
$('#figurCheckBox').click(function(){
hideMe('#figurCheckBox');
$('.figurRadioClass').prop("checked",false);
});
var cx1 = document.querySelector("#canvas1").getContext("2d");
var cx2 = document.querySelector("#canvas2").getContext("2d");
function isNumeric(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
jQuery("#mirrorTileCalkButton").click(function()
{
var mirrorTileWidth = jQuery("#mirrorTileWidth").val();
var mirrorTileHeight = jQuery("#mirrorTileHeight").val();
var mirrorTileMatType = jQuery("#mirrorTileMatType").val();
var mirrorTileForma = jQuery("#mirrorTileForma").val();
var mirrorTileSlide = jQuery("#mirrorTileSlide").val();
var kolvo = jQuery("#mirrorTileKolvo").val();
var plenkaTile = jQuery("#plenkaTile").prop("checked");
var mirrorTilePrise;
var raskrPrise;
var slidePrise;
var matPrise;
var itogo;
var mirrorTileSquare;
var mirrorTilePerimetr;
var mirrorCase;
var k;
var mirrorTileSquareAll;
var itogoAll;
var matPriseBuy = 0;
var deltaProfit;
var itogoBuy;
var matPriseProfit;
var mirrorTileH;
var mirrorTileName = "";
var trudK; // коэффициент трудоемкости на размер плитки
var priseParam = 0;
var raskrParam;
mirrorTileWidth = +mirrorTileWidth;
mirrorTileHeight = +mirrorTileHeight;
mirrorTileMatType = +mirrorTileMatType;
mirrorTileForma = +mirrorTileForma;
mirrorTileSlide = +mirrorTileSlide;
var canvasHeight = 150;
var canvasWidth = 200;
var kChange = 1; // коэф изменения размера ромба
//Определяем размеры ромбов для рисования, чтобы вместились в канву
var a = 7; //ширина фацета
//ЧИСТИМ КАНВАС
// Сохраняем текущую матрицу трансформации
cx1.save();
// Используем идентичную матрицу трансформации на время очистки
cx1.setTransform(1, 0, 0, 1, 0, 0);
cx1.clearRect(0, 0, canvasWidth, canvasHeight);
// Возобновляем матрицу трансформации
cx1.restore();
//ЧИСТИМ КАНВАС КОНЕц
//Проверяем введено ли число в размере
if ( isNumeric(mirrorTileWidth) == false) {
jQuery("#mirrorTileCalkResult p").replaceWith("
Ошибка в поле ШИРИНА: Нужно ввести Число
");
return;
} else if (isNumeric(mirrorTileHeight) == false ) {
jQuery("#mirrorTileCalkResult p").replaceWith("Ошибка в поле ВЫСОТА: Нужно ввести Число
");
return;
} else if (mirrorTileWidth <= 0 ) {
jQuery("#mirrorTileCalkResult p").replaceWith("Ошибка в поле ШИРИНА: Нужно ввести Число больше нуля
");
return;
} else if (mirrorTileHeight <= 0 ) {
jQuery("#mirrorTileCalkResult p").replaceWith("Ошибка в поле ВЫСОТА: Нужно ввести Число больше нуля
");
return;
}
//Проверяем введено ли число в кол-ве плиток
if ( isNumeric(kolvo) == false) {
jQuery("#mirrorTileCalkResult p").replaceWith("Ошибка в поле КОЛ-ВО: Нужно ввести число больше нуля
");
return;
} else if (kolvo <= 0){
jQuery("#mirrorTileCalkResult p").replaceWith("Ошибка в поле КОЛ-ВО: Нужно ввести число больше нуля
");
return;
}
//Проверяем размер плиток, находим большую сторону
if (mirrorTileWidth >= mirrorTileHeight) {
mirrorCase = mirrorTileWidth;
} else if (mirrorTileWidth < mirrorTileHeight) {
mirrorCase = mirrorTileHeight;
}
//Узнаём какого размера плитка, нужен ли повышающий коэффициент
/*
if ((mirrorTileWidth < 150 && mirrorTileWidth >= 100)||(mirrorTileHeight < 150 && mirrorTileHeight >= 100)) {
trudK = 1.5;
} else if ((mirrorTileWidth < 200 && mirrorTileWidth >= 150)||(mirrorTileHeight < 200 && mirrorTileHeight >= 150)) {
trudK = 1.25;
} else {
trudK = 1;
}
*/
trudK = 1;
//Узнаем какую форму выбрали
if (mirrorTileForma == 1) {
k=1;
//Если больше 300мм по стороне, включаются нормальные цены
if (mirrorTileWidth > 300 || mirrorTileHeight > 300) {
priseParam = 1;
//jQuery("#mirrorTileCalkResult p").replaceWith("Размер прямоугольной плитки должен быть не более 300мм по стороне
");
//return;
} else if (mirrorTileWidth < 100 || mirrorTileHeight < 100) {
jQuery("#mirrorTileCalkResult p").replaceWith("Размер прямоугольной плитки должен быть не менее 100мм по стороне
");
return;
}
} else if (mirrorTileForma == 2) {
k=1.2;
mirrorTileH =(mirrorTileWidth/2 * mirrorTileHeight/2) / Math.sqrt(mirrorTileWidth/2 * mirrorTileWidth/2 + mirrorTileHeight/2 * mirrorTileHeight/2)*2;
if ( mirrorTileHeight < 100 ) {
jQuery("#mirrorTileCalkResult p").replaceWith("Ошибка ВЫСОТА ромба меньше 100мм.
");
return;
} else if (mirrorTileH < 100) {
jQuery("#mirrorTileCalkResult p").replaceWith("Ошибка ПЕРПЕНДИКУЛЯР ромба =" + Math.ceil(mirrorTileH) + " мм., что меньше 100мм. (мин размер)
");
return;
} else if (mirrorTileWidth < 100) {
jQuery("#mirrorTileCalkResult p").replaceWith("Ошибка ШИРИНА ромба меньше 100мм.
");
return;
}else if (mirrorTileWidth > 500) {
//Включаются нормальные цены
priseParam = 1;
//jQuery("#mirrorTileCalkResult p").replaceWith("Ошибка ШИРИНА ромба больше 500мм.
");
//return;
} else if (mirrorTileHeight > 500) {
priseParam = 1;
//jQuery("#mirrorTileCalkResult p").replaceWith("Ошибка ВЫСОТА ромба больше 500мм.
");
} else if (mirrorTileH > 300) {
priseParam = 1;
//jQuery("#mirrorTileCalkResult p").replaceWith("Ошибка ПЕРПЕНДИКУЛЯР ромба =" + Math.ceil(mirrorTileH) + " мм. больше 300мм. (макс. размер)
");
//return;
}
}
//Цены если зеркальная плитка от 01/10/2020
var matPrisePlitka = Array(0,1140,1880,1880); //цена материала - зерк чистое, зеркало бронза, зеркало серое
var matSlidePlitka = Array(0,52,86,132,132,160,184,400); //цена обработки материала - матовая, полировка, фацет 7, фацет 10, фацет15, фацет 20, фацет 30
var matSlideWidth = Array(0,2,2,7,10,15,20,30); //отрисовываем ширину фацета на картинке
var matRaskrPrisePlitka = Array(0,15,30); //цена раскроя форма квадрать, форма ромб
//Цены при условии, что размеры вышли за стандарты плитки от 01/10/2020
var matPriseNorm = Array(0,1350,2350,2350); //цена материала - зерк чистое, зеркало бронза, зеркало серое
var matRaskrPriseNorm = Array(0,110,220,440); //раскрой материала - до 0,2 , нормальный, габаритный
var matSlidePriseNorm = Array(0,200,230,230,230,250,285,400); //цена обработки материала - матовая, полировка, фацет 7, фацет 10, фацет15, фацет 20, фацет 30
//Рассчитываем параметры
mirrorTilePerimetr = (mirrorTileWidth + mirrorTileHeight)/1000*2;
mirrorTileSquare = mirrorTileWidth * mirrorTileHeight/1000000;
//Условие если мы нарисовали квадрат, а указали ромб
if (mirrorTileForma == 2 && mirrorTileWidth == mirrorTileHeight) {
k=1;
mirrorTileForma = 1;
mirrorTileName = "КВАДРАТ со стороной: " + (mirrorTileH ^0) + "мм.";
mirrorTileSquare = mirrorTileH * mirrorTileH/1000000;
mirrorTilePerimetr = mirrorTileH*4/1000;
}
//Проверяем плитку на габаритность.
if (mirrorTileSquare <=0.2 ) {
raskrParam = 1;
} else if (mirrorTileSquare > 1.3 || mirrorCase>1700) {
raskrParam = 3;
} else {
raskrParam = 2;
}
if (priseParam == 1) {
matPrise = matPriseNorm[mirrorTileMatType];
raskrPrise = matRaskrPriseNorm[raskrParam];
slidePrise = matSlidePriseNorm[mirrorTileSlide];
mirrorTileName = mirrorTileName + "НЕ ПЛИТКА!!!";
} else {
matPrise = matPrisePlitka[mirrorTileMatType];
raskrPrise = matRaskrPrisePlitka[mirrorTileForma];
slidePrise = matSlidePlitka[mirrorTileSlide];
}
a = matSlideWidth[mirrorTileSlide];
//Выводим цену Округляем вверх
itogo = Math.ceil(((Math.ceil(mirrorTileSquare * matPrise) + Math.ceil(mirrorTilePerimetr*slidePrise))*k +raskrPrise) *trudK *skidkaPartnera);
//Условие на наклейку плёнки защитной
var plenkaPrise = 600;
var plenkaNakatka = 15;
var itogoPlenkaTile = 0;
if (plenkaTile == true ) {
itogoPlenkaTile = Math.ceil((mirrorTileSquare*plenkaPrise + plenkaNakatka))*skidkaPartnera;
itogo = itogo + itogoPlenkaTile;
}
mirrorTileSquareAll = mirrorTileSquare*kolvo;
itogoAll = itogo*kolvo;
itogoMPrise = Math.ceil(itogo/mirrorTileSquare);
// Выводим коэффициент накрутки на себестоимость материала
// itogoBuy = mirrorTileSquare*matPriseBuy;
// deltaProfit = Math.round(itogo/itogoBuy*100)/100;
//Выводим результат на экран
jQuery("#mirrorTileCalkResult p").replaceWith("Итого "+ kolvo+ "шт.: " + itogoAll +"р. ( " + (itogo - itogoPlenkaTile) + "р./шт. + " +itogoPlenkaTile + "р.защитка)
" + mirrorTileName + "
");
//НОВОЕ РИСОВАНИЕ
if ((canvasHeight/mirrorTileHeight) <= (canvasWidth/mirrorTileWidth)) {
kChange = canvasHeight/mirrorTileHeight;
} else {
kChange = canvasWidth/mirrorTileWidth;
};
if (mirrorTileForma == 2) {
drawRomb(mirrorTileWidth*kChange, mirrorTileHeight*kChange,0,0, kChange, a, cx1);
};
if (mirrorTileForma == 1) {
drawBlock (mirrorTileWidth*kChange, mirrorTileHeight*kChange,0,0, kChange, a, cx1)
};
});
/*
*******************
* *
*ЗЕРКАЛЬНЫЕ ПАННО *
* *
*******************
*/
//Печатаем пано
jQuery("#mirrorTilePrintPanoButton").click(function()
{
print_doc();
});
//Считаем пано
jQuery("#mirrorTileCalkPanoButton").click(function()
{
var mirrorPanoWidth = jQuery("#mirrorPanoWidth").val();
var mirrorPanoHeight = jQuery("#mirrorPanoHeight").val();
var mirrorPanoKolvo = jQuery("#mirrorPanoKolvo").val();
var mirrorPanoVektor = jQuery("#mirrorPanoVektor").val();
var mirrorPanoTip = jQuery("#mirrorPanoTip").val();
var mirrorPanoMatType = jQuery("#mirrorPanoMatType").val();
var mirrorPanoSlide = jQuery("#mirrorPanoSlide").val();
var plenkaPano = jQuery("#plenkaPano").prop("checked");
mirrorPanoMatType = +mirrorPanoMatType;
mirrorPanoSlide = +mirrorPanoSlide;
var mirrorPanoTileWidth = 0;
var mirrorPanoTileHeight = 0;
var mirrorPanoHeightKolvo = 0;
var mirrorPanoWidthKolvo = 0;
var mirrorPanoPolKolvo =0;
var mirrorPanoHeightOst = 0;
var mirrorPanoWidthOst = 0;
var mirrorPanoKolvoItogo=0;
var mirrorPanoKolvoTriTop = 0;
var mirrorPanoKolvoTriSide=0;
var mirrorPanoKolvoTriCorner = 0;
var slidePrise;
var matPrise;
var mirrorCase;
var plenkaPrise = 500;
var plenkaNakatka = 10;
var itogoPlenkaTile = 0;
var nacPanno = 1.2;
var a; //ширина обработки для канваса
var priseParam = 0;
//Цены при условии, что размеры вышли за стандарты плитки от 24/09/2018
var matPriseNorm = Array(0,1100,1950,1950); //цена материала - зерк чистое, зеркало бронза, зеркало серое
var matRaskrPriseNorm = Array(0,90,180,360); //раскрой материала - до 0,2 , нормальный, габаритный
var matSlidePriseNorm = Array(0,170,200,180,180,200,300,495); //цена обработки материала - матовая, полировка, фацет 7, фацет 10, фацет15, фацет 20, фацет 30
//Узнаем какую обработку выбрали от 24/09/2018
if (mirrorPanoSlide == 1) {
slidePrise = 52; //35, 42, 50
a = 2;
} else if (mirrorPanoSlide == 2) {
slidePrise = 86; //60, 72, 95
a = 2;
} else if (mirrorPanoSlide == 3) { //фацет 7мм
slidePrise = 132; //90 , 108, 140
a = 7;
} else if (mirrorPanoSlide ==4 ) { //фацет 10мм
slidePrise = 132; //90 , 108, 140
a = 10;
} else if (mirrorPanoSlide ==5 ) { //фацет 15мм
slidePrise = 160; //160
a = 15;
} else if (mirrorPanoSlide ==6 ) { //фацет 20мм
slidePrise = 184; //190
a = 20;
} else if (mirrorPanoSlide ==7 ) { //фацет 30мм
slidePrise = 400; //395
a = 30;
}
//Узнаем какой Материал Выбрали от 24/09/2018
if (mirrorPanoMatType == 1) {
matPrise = 1140; //610, 732
matPriseBuy = 450;
} else if (mirrorPanoMatType == 2) {
matPrise = 1880; //805, 966
matPriseBuy = 600;
} else if (mirrorPanoMatType == 3) {
matPrise = 1880; //805, 966
matPriseBuy = 600;
}
var raskrPrise=15; //8,10
var raskrPrise2=30;
var panoPrise = 0;
var panoIPrise = 0;
var OstTitle = "";
var imgPanoCalk="";
var mirrorPanoImgCalk ="mirrorPano1.png";
var mirrorPanoTileH = 0;
var trudK; // повышающий коэф на размер плитки
var polKolvo = 4;
var canvasHieght = 1300;
var canvasWidth = 600;
var canvasHeightForScript = 330;
var canvasHeightForPanno = 1300- canvasHeightForScript;
var kolX = Math.floor(mirrorPanoWidthKolvo); //количество ромбов по горизонтали
var kolY = Math.floor(mirrorPanoHeightKolvo); // кол-во ромбов по вертикаи
var kChange = 1; // коэф изменения размера ромба
var x; // ширина ромба
var y; // высота ромба
var panoMPrise;
var raskrParam;
var mirrorTileName="";
var mirrorTileSquare;
var nacenka = 1; // 0.9
//Чистим второй результат
jQuery("#mirrorPanoCalkResult1 p").replaceWith("");
//Если Выбраны Квадраты
if ($('#check1').prop('checked') == true) {
//Проверяем введено ли число в размере
if ( isNumeric(mirrorPanoWidth) == false) {
jQuery("#mirrorPanoCalkResult p").replaceWith("Ошибка в поле ШИРИНА ПАНО: Нужно ввести Число больше нуля
");
return;
} else if (isNumeric(mirrorPanoHeight) == false ) {
jQuery("#mirrorPanoCalkResult p").replaceWith("Ошибка в поле ВЫСОТА ПАНО: Нужно ввести Число больше нуля
");
return;
} else if (mirrorPanoWidth <= 0 ) {
jQuery("#mirrorPanoCalkResult p").replaceWith("Ошибка в поле ШИРИНА ПАНО: Нужно ввести Число больше нуля
");
return;
} else if (mirrorPanoHeight <= 0 ) {
jQuery("#mirrorPanoCalkResult p").replaceWith("Ошибка в поле ВЫСОТА ПАНО: Нужно ввести Число больше нуля
");
return;
}
//Проверяем введено ли число в кол-ве плиток
if ( isNumeric(mirrorPanoKolvo) == false) {
jQuery("#mirrorPanoCalkResult p").replaceWith("Ошибка в поле КОЛ-ВО ШТ. ПО НАПРАВЛЕНИЮ: Нужно ввести число кратное 0.5 больше нуля
");
return;
} else if (mirrorPanoKolvo <= 0){
jQuery("#mirrorPanoCalkResult p").replaceWith("Ошибка в поле КОЛ-ВО ШТ. ПО НАПРАВЛЕНИЮ: Нужно ввести число кратное 0.5 больше нуля
");
return;
}
if (mirrorPanoVektor == 1) {
mirrorPanoWidthKolvo = mirrorPanoKolvo;
mirrorPanoTileWidth = Math.floor(mirrorPanoWidth/mirrorPanoWidthKolvo);
mirrorPanoTileHeight = mirrorPanoTileWidth;
mirrorPanoHeightKolvo = Math.floor(mirrorPanoHeight/mirrorPanoTileHeight);
//Есть ли половинки или нет
mirrorPanoPolKolvo = Math.floor((mirrorPanoHeight - mirrorPanoHeightKolvo*
mirrorPanoTileHeight)/(mirrorPanoTileHeight/2));
mirrorPanoHeightOst = mirrorPanoHeight - mirrorPanoHeightKolvo * mirrorPanoTileHeight - mirrorPanoPolKolvo*(mirrorPanoTileHeight/2);
mirrorPanoWidthOst = mirrorPanoWidth - mirrorPanoWidthKolvo*mirrorPanoTileWidth;
OstTitle = "Остаток Y: " + mirrorPanoHeightOst + "мм.
";
//Если выбрано направление 'по высоте'
} else if (mirrorPanoVektor == 2) {
mirrorPanoHeightKolvo = mirrorPanoKolvo;
mirrorPanoTileHeight = Math.floor(mirrorPanoHeight/mirrorPanoHeightKolvo);
mirrorPanoTileWidth = mirrorPanoTileHeight;
mirrorPanoWidthKolvo = Math.floor(mirrorPanoWidth/mirrorPanoTileWidth);
//Есть ли половинки или нет
mirrorPanoPolKolvo = Math.floor((mirrorPanoWidth - mirrorPanoWidthKolvo*mirrorPanoTileWidth)/(mirrorPanoTileWidth/2));
mirrorPanoWidthOst = mirrorPanoWidth - mirrorPanoWidthKolvo*mirrorPanoTileWidth-mirrorPanoPolKolvo*(mirrorPanoTileWidth/2);
mirrorPanoHeightOst = mirrorPanoHeight - mirrorPanoHeightKolvo*mirrorPanoTileHeight;
OstTitle = "Остаток X: " + mirrorPanoWidthOst + "мм.
";
}
// Считаем кол-во плиток в пано
if (mirrorPanoTip == 1) {
if (mirrorPanoPolKolvo == 0) {
mirrorPanoKolvoItogo = mirrorPanoWidthKolvo*mirrorPanoHeightKolvo + ((mirrorPanoWidthKolvo-1) * (mirrorPanoHeightKolvo-1));
mirrorPanoKolvoTriTop = (mirrorPanoWidthKolvo-1)*2;
mirrorPanoKolvoTriSide = (mirrorPanoHeightKolvo-1)*2;
mirrorPanoKolvoTriCorner= 4;
} else {
if (mirrorPanoVektor == 1) {
mirrorPanoKolvoItogo = mirrorPanoWidthKolvo*mirrorPanoHeightKolvo + ((mirrorPanoWidthKolvo-1) * mirrorPanoHeightKolvo);
mirrorPanoKolvoTriTop = mirrorPanoWidthKolvo*2-1;
mirrorPanoKolvoTriSide = mirrorPanoHeightKolvo*2;
mirrorPanoKolvoTriCorner= 2;
} else if (mirrorPanoVektor == 2) {
mirrorPanoKolvoItogo = mirrorPanoWidthKolvo*mirrorPanoHeightKolvo + (mirrorPanoWidthKolvo * (mirrorPanoHeightKolvo-1));
mirrorPanoKolvoTriTop = mirrorPanoWidthKolvo*2;
mirrorPanoKolvoTriSide = mirrorPanoHeightKolvo*2-1;
mirrorPanoKolvoTriCorner= 2;
}
}
} else if (mirrorPanoTip == 2) {
if (mirrorPanoPolKolvo == 0) {
mirrorPanoKolvoItogo = mirrorPanoWidthKolvo*(mirrorPanoHeightKolvo-1) + (mirrorPanoWidthKolvo-1) * mirrorPanoHeightKolvo;
mirrorPanoKolvoTriTop = mirrorPanoWidthKolvo*2;
mirrorPanoKolvoTriSide = mirrorPanoHeightKolvo*2;
mirrorPanoKolvoTriCorner= 0;
} else{
if (mirrorPanoVektor == 1) {
mirrorPanoKolvoItogo = mirrorPanoWidthKolvo*mirrorPanoHeightKolvo + ((mirrorPanoWidthKolvo-1) * mirrorPanoHeightKolvo);
mirrorPanoKolvoTriTop = mirrorPanoWidthKolvo*2-1;
mirrorPanoKolvoTriSide = mirrorPanoHeightKolvo*2;
mirrorPanoKolvoTriCorner= 2;
} else if (mirrorPanoVektor == 2) {
mirrorPanoKolvoItogo = mirrorPanoWidthKolvo*mirrorPanoHeightKolvo + (mirrorPanoWidthKolvo * (mirrorPanoHeightKolvo-1));
mirrorPanoKolvoTriTop = mirrorPanoWidthKolvo*2;
mirrorPanoKolvoTriSide = mirrorPanoHeightKolvo*2-1;
mirrorPanoKolvoTriCorner= 2;
}
}
}
//Находим размер плитки если её повернуть как квадрат
/* mirrorPanoTileH =(mirrorPanoTileWidth/2 * mirrorPanoTileHeight/2) / Math.sqrt(mirrorPanoTileWidth/2 * mirrorPanoTileWidth/2 + mirrorPanoTileHeight/2 * mirrorPanoTileHeight/2)*2 ^0;
*/
//Находим размер плитки если её повернуть как квадрат
var mirrorPanoTileHFull =(mirrorPanoTileWidth/2 * mirrorPanoTileHeight/2) / Math.sqrt(mirrorPanoTileWidth/2 * mirrorPanoTileWidth/2 + mirrorPanoTileHeight/2 * mirrorPanoTileHeight/2)*2;
mirrorPanoTileH = mirrorPanoTileHFull ^0;
//Находим Зазор между плитками по высоте и ширине для квадрата
var zazor = 5;
var zazorLenght = (mirrorPanoTileWidth * zazor)/mirrorPanoTileHFull;
var zazorLenghtH = (mirrorPanoTileHeight * zazor)/mirrorPanoTileHFull;
// Проверяем выполняется ли условие на размер плитки
if ( mirrorPanoTileHeight < 100 ) {
jQuery("#mirrorPanoCalkResult p").replaceWith("Размер плитки:" + mirrorPanoTileH +"х"+ mirrorPanoTileH + "(мм)
увеличьте кол-во ромбов
ВЫСОТА ромба меньше 100мм.
");
return;
} else if (mirrorPanoTileH < 100) {
jQuery("#mirrorPanoCalkResult p").replaceWith("Размер плитки:" + mirrorPanoTileH +"х"+ mirrorPanoTileH + "(мм)
измените кол-во ромбов
ПЕРПЕНДИКУЛЯР ромба (Высота квадрата) меньше 100мм.
");
return;
} else if (mirrorPanoTileWidth < 100) {
jQuery("#mirrorPanoCalkResult p").replaceWith("Размер плитки:" + mirrorPanoTileH +"х"+ mirrorPanoTileH + "(мм)
увеличьте кол-во ромбов
ШИРИНА ромба (Высота квадрата) меньше 100мм.
");
return;
} else if (mirrorPanoTileH/2 < (70 + a)) {
jQuery("#mirrorPanoCalkResult1 p").replaceWith(" ФАЦЕТА НЕ БУДЕТ на четвертинках (Высота четвертинки " + mirrorPanoTileH/2 + "мм)
");
} else if (mirrorPanoTileWidth > 500) {
priseParam = 1;
//jQuery("#mirrorPanoCalkResult p").replaceWith("Размер плитки:" + mirrorPanoTileH +"х"+ mirrorPanoTileH + "(мм)
увеличьте кол-во ромбов
ШИРИНА ромба больше 500мм.
");
//return;
} else if (mirrorPanoTileHeight > 500) {
priseParam = 1;
//jQuery("#mirrorPanoCalkResult p").replaceWith("Размер плитки:" + mirrorPanoTileH +"х"+ mirrorPanoTileH + "(мм)
увеличьте кол-во ромбов
ВЫСОТА ромба больше 500мм.
");
//return;
} else if (mirrorPanoTileH > 300) {
priseParam = 1;
//jQuery("#mirrorPanoCalkResult p").replaceWith("Размер плитки:" + mirrorPanoTileH +"х"+ mirrorPanoTileH + "(мм)
измените кол-во ромбов
ПЕРПЕНДИКУЛЯР ромба больше 300мм.
");
//return;
}
//Узнаём какого размера плитка, нужен ли повышающий коэффициент
/*if (mirrorPanoTileH < 150 && mirrorPanoTileH >= 100) {
trudK = 1.5;
} else if (mirrorPanoTileH < 200 && mirrorPanoTileH >= 150) {
trudK = 1.25;
} else {
trudK = 1;
}
*/
trudK = 1;
//Проверяем размер плиток, находим большую сторону
if (mirrorPanoTileWidth >= mirrorPanoTileHeight) {
mirrorCase = mirrorPanoTileWidth;
} else if (mirrorPanoTileWidth < mirrorPanoTileHeight) {
mirrorCase = mirrorPanoTileHeight;
}
mirrorTileSquare = mirrorPanoTileH*mirrorPanoTileH/1000000;
//Проверяем плитку на габаритность.
if (mirrorTileSquare <=0.2 ) {
raskrParam = 1;
} else if (mirrorTileSquare > 1.3 || mirrorCase>1700) {
raskrParam = 3;
} else {
raskrParam = 2;
}
if (priseParam == 1) {
matPrise = matPriseNorm[mirrorPanoMatType];
raskrPrise = matRaskrPriseNorm[raskrParam];
slidePrise = matSlidePriseNorm[mirrorPanoSlide];
mirrorTileName = mirrorTileName + "НЕ ПЛИТКА!!!
";
}
//Считаем цену Пано:
panoIPrise = Math.ceil(((mirrorPanoTileH*4/1000*slidePrise) + Math.ceil(mirrorPanoTileH*mirrorPanoTileH/1000000*matPrise) + raskrPrise)*trudK*nacPanno/nacenka*skidkaPartnera);
//Условие на наклейку плёнки защитной
if (plenkaPano == true ) {
itogoPlenkaTile = Math.ceil((((mirrorPanoTileH*mirrorPanoTileH/1000000)*plenkaPrise + plenkaNakatka)/nacenka)*skidkaPartnera);
panoIPrise = panoIPrise + itogoPlenkaTile;
}
panoPrise = Math.ceil((mirrorPanoKolvoItogo+mirrorPanoKolvoTriTop+mirrorPanoKolvoTriSide+mirrorPanoKolvoTriCorner)*panoIPrise);
panoMPrise = Math.ceil(panoIPrise/(mirrorPanoTileH*mirrorPanoTileH/1000000));
//Выводим результат
jQuery("#mirrorPanoCalkResult p").replaceWith(" " + mirrorTileName + "Цена Пано: " + panoPrise + "р.
(" + (panoIPrise - itogoPlenkaTile) + "р./плитка + "+itogoPlenkaTile+"р.пленка)
Размеры пано (ВхШ) факт.: " + mirrorPanoTileHeight*mirrorPanoHeightKolvo +"х" + mirrorPanoTileWidth*mirrorPanoWidthKolvo + "мм.
" + OstTitle + "
Плитки Квадрат(ВхШ) : " + mirrorPanoTileH + "х" + mirrorPanoTileH +"мм.
Размер пано (ВхШ) плиток: " + mirrorPanoHeightKolvo + "х" + mirrorPanoWidthKolvo +"шт.
Всего плиток:" + (mirrorPanoKolvoItogo+mirrorPanoKolvoTriTop+mirrorPanoKolvoTriSide+mirrorPanoKolvoTriCorner) + "шт.
");
kolX = Math.floor(mirrorPanoWidthKolvo); //количество ромбов по горизонтали
kolY = Math.floor(mirrorPanoHeightKolvo); // кол-во ромбов по вертикаи
} else if ($('#check1').prop('checked') == false) {
//Если Выбраны РОМБЫ
mirrorPanoPolKolvo = 1; //Индикатор, чтобы не срабатывали лишние условия для ромбов
mirrorPanoVektor = 3;
//Размеры плиток если выбраны ромбы
mirrorPanoWidthKolvo = $('#mirrorPanoWidthKolvo').val();
mirrorPanoHeightKolvo = $('#mirrorPanoHeigthKolvo').val();
mirrorPanoTileWidth = Math.floor(mirrorPanoWidth/mirrorPanoWidthKolvo);
mirrorPanoTileHeight = Math.floor(mirrorPanoHeight/mirrorPanoHeightKolvo);
polKolvo =0; //индикатор половинок
x = mirrorPanoTileWidth; // ширина ромба
y = mirrorPanoTileHeight; // высота ромба
kolX = Math.floor(mirrorPanoWidthKolvo); //количество ромбов по горизонтали
kolY = Math.floor(mirrorPanoHeightKolvo); // кол-во ромбов по вертикаи
//Есть ли половинки или нет
if ((((mirrorPanoHeightKolvo*2)%2)==1) && (((mirrorPanoWidthKolvo*2)%2)==1) ) {
polKolvo = 3; // половинки по ширине и высоте
} else if (((mirrorPanoHeightKolvo*2)%2)==1) {
polKolvo = 2; //половинки по высоте
} else if (((mirrorPanoWidthKolvo*2)%2)==1) {
polKolvo = 1; //половинки по ширине
} else {
polKolvo = 0;
mirrorPanoPolKolvo =0;
}
//Считаем кол-во плиток
if (polKolvo ==0) {
//Кол-во плиток если выбраны ромбы без половинок
if (mirrorPanoTip == 1) {
mirrorPanoKolvoItogo = kolX*kolY + ((kolX-1) * (kolY-1));
mirrorPanoKolvoTriTop = (kolX-1)*2;
mirrorPanoKolvoTriSide = (kolY-1)*2;
mirrorPanoKolvoTriCorner= 4;
} else if (mirrorPanoTip == 2) {
mirrorPanoKolvoItogo = kolX*(kolY-1) + (kolX-1) * kolY;
mirrorPanoKolvoTriTop = kolX*2;
mirrorPanoKolvoTriSide = kolY*2;
mirrorPanoKolvoTriCorner= 0;
}
} else if (polKolvo == 1) {
//Кол-во плиток если выбраны ромбы половинки по ширине
mirrorPanoKolvoItogo = kolX*kolY + (kolX * (kolY-1));
mirrorPanoKolvoTriTop = kolX*2;
mirrorPanoKolvoTriSide = kolY*2-1;
mirrorPanoKolvoTriCorner= 2;
} else if (polKolvo == 2) {
//Кол-во плиток если выбраны ромбы половинки по высоте
mirrorPanoKolvoItogo = kolX*kolY + ((kolX-1) * kolY);
mirrorPanoKolvoTriTop = kolX*2-1;
mirrorPanoKolvoTriSide = kolY*2;
mirrorPanoKolvoTriCorner= 2;
} else if (polKolvo ==3) {
// Кол-во плиток если выбраны ромбы половинки и по высоте и по ширине
mirrorPanoKolvoItogo = kolX*kolY + kolX * kolY;
mirrorPanoKolvoTriTop = kolX*2;
mirrorPanoKolvoTriSide = kolY*2;
mirrorPanoKolvoTriCorner= 2;
}
//Находим размер плитки если её повернуть как квадрат
/*mirrorPanoTileH =(mirrorPanoTileWidth/2 * mirrorPanoTileHeight/2) / Math.sqrt(mirrorPanoTileWidth/2 * mirrorPanoTileWidth/2 + mirrorPanoTileHeight/2 * mirrorPanoTileHeight/2)*2 ^0;
*/
//Находим размер плитки если её повернуть как квадрат
var mirrorPanoTileHFull =(mirrorPanoTileWidth/2 * mirrorPanoTileHeight/2) / Math.sqrt(mirrorPanoTileWidth/2 * mirrorPanoTileWidth/2 + mirrorPanoTileHeight/2 * mirrorPanoTileHeight/2)*2;
mirrorPanoTileH = mirrorPanoTileHFull ^0;
//Находим Зазор между плитками по высоте и ширине для квадрата
var zazor = 5;
var zazorLenght = (mirrorPanoTileWidth * zazor)/mirrorPanoTileHFull;
var zazorLenghtH = (mirrorPanoTileHeight * zazor)/mirrorPanoTileHFull;
// Проверяем выполняется ли условие на размер плитки (Такое же в квадратах)
if ( mirrorPanoTileHeight < 100 ) {
jQuery("#mirrorPanoCalkResult p").replaceWith("Размер плитки:" + mirrorPanoTileHeight +"х"+ mirrorPanoTileWidth + "(мм)
увеличьте кол-во ромбов
ВЫСОТА ромба меньше 100мм.
");
return;
} else if (mirrorPanoTileH < 100) {
jQuery("#mirrorPanoCalkResult p").replaceWith("Размер плитки:" + mirrorPanoTileHeight +"х"+ mirrorPanoTileWidth + "(мм)
измените кол-во ромбов
ПЕРПЕНДИКУЛЯР ромба (Высота квадрата) меньше 100мм.
");
return;
} else if (mirrorPanoTileWidth < 100) {
jQuery("#mirrorPanoCalkResult p").replaceWith("Размер плитки:" + mirrorPanoTileHeight +"х"+ mirrorPanoTileWidth + "(мм)
увеличьте кол-во ромбов
ШИРИНА ромба (Высота квадрата) меньше 100мм.
");
return;
} else if (mirrorPanoTileH/2 < (70 + a)) {
jQuery("#mirrorPanoCalkResult1 p").replaceWith(" ФАЦЕТА НЕ БУДЕТ на четвертинках (Высота четвертинки " + mirrorPanoTileH/2 + "мм)
");
} else if (mirrorPanoTileWidth > 500) {
priseParam = 1;
//jQuery("#mirrorPanoCalkResult p").replaceWith("Размер плитки:" + mirrorPanoTileHeight +"х"+ mirrorPanoTileWidth + "(мм)
увеличьте кол-во ромбов
ШИРИНА ромба больше 500мм.
");
//return;
} else if (mirrorPanoTileHeight > 500) {
priseParam = 1;
//jQuery("#mirrorPanoCalkResult p").replaceWith("Размер плитки:" + mirrorPanoTileHeight +"х"+ mirrorPanoTileWidth + "(мм)
увеличьте кол-во ромбов
ВЫСОТА ромба больше 500мм.
");
//return;
} else if (mirrorPanoTileH > 300) {
priseParam = 1;
//jQuery("#mirrorPanoCalkResult p").replaceWith("Размер плитки:" + mirrorPanoTileHeight +"х"+ mirrorPanoTileWidth + "(мм)
измените кол-во ромбов
ПЕРПЕНДИКУЛЯР ромба больше 300мм.
");
//return;
}
//Узнаём какого размера плитка, нужен ли повышающий коэффициент
/*if ((mirrorPanoTileHeight < 150 && mirrorPanoTileHeight >= 100)||(mirrorPanoTileWidth < 150 && mirrorPanoTileWidth >= 100)) {
trudK = 1.5;
} else if ((mirrorPanoTileWidth < 200 && mirrorPanoTileWidth >= 150)||(mirrorPanoTileWidth < 200 && mirrorPanoTileWidth >= 150)) {
trudK = 1.25;
} else {
trudK = 1;
}
*/
trudK = 1;
var mirrorTilePerimetr = (mirrorPanoTileWidth + mirrorPanoTileHeight)/1000*2;
var mirrorTileSquare = mirrorPanoTileWidth * mirrorPanoTileHeight/1000000;
var k=1.2;
raskrPrise = 30;
//Площадь плитки если квадраты
if (mirrorPanoTileWidth == mirrorPanoTileHeight) {
mirrorTileSquare = mirrorPanoTileH*mirrorPanoTileH/1000000;
mirrorTilePerimetr = mirrorPanoTileH*4/1000;
k = 1;
raskrPrise = 15;
}
//Проверяем размер плиток, находим большую сторону
if (mirrorPanoTileWidth >= mirrorPanoTileHeight) {
mirrorCase = mirrorPanoTileWidth;
} else if (mirrorPanoTileWidth < mirrorPanoTileHeight) {
mirrorCase = mirrorPanoTileHeight;
}
//Проверяем плитку на габаритность.
if (mirrorTileSquare <=0.2 ) {
raskrParam = 1;
} else if (mirrorTileSquare > 1.3 || mirrorCase>1700) {
raskrParam = 3;
} else {
raskrParam = 2;
}
if (priseParam == 1) {
matPrise = matPriseNorm[mirrorPanoMatType];
raskrPrise = matRaskrPriseNorm[raskrParam];
slidePrise = matSlidePriseNorm[mirrorPanoSlide];
mirrorTileName = mirrorTileName + "НЕ ПЛИТКА!!!
";
}
//Цена панно если получились ромбы
panoIPrise = Math.ceil(((Math.ceil(mirrorTileSquare * matPrise) + Math.ceil(mirrorTilePerimetr*slidePrise)) * k + raskrPrise) *trudK*nacPanno/nacenka);
//Условие на наклейку плёнки защитной
if (plenkaPano == true ) {
itogoPlenkaTile = Math.ceil((mirrorTileSquare*plenkaPrise + plenkaNakatka)/nacenka);
panoIPrise = panoIPrise + itogoPlenkaTile;
}
panoPrise = Math.ceil((mirrorPanoKolvoItogo+mirrorPanoKolvoTriTop+mirrorPanoKolvoTriSide+mirrorPanoKolvoTriCorner)*panoIPrise*skidkaPartnera)
panoMPrise = Math.ceil(panoIPrise/mirrorTileSquare*skidkaPartnera);
//Выводим результат
if (mirrorPanoTileWidth == mirrorPanoTileHeight) {
//Если квадраты
jQuery("#mirrorPanoCalkResult p").replaceWith(" " + mirrorTileName + "Цена Пано: " + panoPrise + "р.
(" + (panoIPrise - itogoPlenkaTile) + "р./плитка + " + itogoPlenkaTile + "р.защитка)
Размеры пано (ВхШ) факт.: " + mirrorPanoTileHeight*mirrorPanoHeightKolvo +"х" + mirrorPanoTileWidth*mirrorPanoWidthKolvo + "мм.
" + OstTitle + "
Плитки Квадрат(ВхШ) : " + mirrorPanoTileH + "х" + mirrorPanoTileH +"мм.
Размер пано (ВхШ) плиток: " + mirrorPanoHeightKolvo + "х" + mirrorPanoWidthKolvo +"шт.
Всего плиток:" + (mirrorPanoKolvoItogo+mirrorPanoKolvoTriTop+mirrorPanoKolvoTriSide+mirrorPanoKolvoTriCorner) + "шт. )
");
} else {
//Если ромбы
jQuery("#mirrorPanoCalkResult p").replaceWith(" " + mirrorTileName + "Цена Пано: " + panoPrise + "р.
(" + (panoIPrise - itogoPlenkaTile) + "р./плитка + " + itogoPlenkaTile + "р.защитка)
Размеры пано (ВхШ) факт.: " + mirrorPanoTileHeight*mirrorPanoHeightKolvo +"х" + mirrorPanoTileWidth*mirrorPanoWidthKolvo + "мм.
" + OstTitle + "
Плитка Ромб (ВхШ) : " + mirrorPanoTileHeight + "х" + mirrorPanoTileWidth +"мм.
Размер пано (ВхШ) плиток: " + mirrorPanoHeightKolvo + "х" + mirrorPanoWidthKolvo +"
Всего плиток:" + (mirrorPanoKolvoItogo+mirrorPanoKolvoTriTop+mirrorPanoKolvoTriSide+mirrorPanoKolvoTriCorner) + "шт.
" + mirrorPanoTileH/2);
}
}
//ЧИСТИМ КАНВАС
// Сохраняем текущую матрицу трансформации
cx2.save();
// Используем идентичную матрицу трансформации на время очистки
cx2.setTransform(1, 0, 0, 1, 0, 0);
cx2.clearRect(0, 0, canvasWidth, canvasHieght);
// Возобновляем матрицу трансформации
cx2.restore();
//ЧИСТИМ КАНВАС КОНЕц
//Находим коэффициент схимания панно.
if (canvasHeightForPanno / mirrorPanoHeight <= canvasWidth / mirrorPanoWidth) {
kChange = canvasHeightForPanno / mirrorPanoHeight;
} else {
kChange = canvasWidth / mirrorPanoWidth;
};
var kx=0; //1 смещение по горизонтали
var ky=0; //1 смещение по вертикаи
var kx1=x/2; //2смещение по горизнотали
var ky1=y/2; //2cмещение по вертикали
x = mirrorPanoTileWidth*kChange; //ширина ромба для канваса
y = mirrorPanoTileHeight*kChange; // высота ромба для канваса
//РИСУЕМ ПАНО
for (var i=0; i