﻿$.fn.agreecart = function (gridviewid, panelid, hfdispid) {
	var gridview = $("#" + gridviewid);
	var panel = $("#" + panelid);
	var hfdisp = $("#" + hfdispid);
	hfdisp.val('none');
	$.ajax(
	{
		type: "POST",
		url: "/WebMethods.aspx/AllowAgreeCart",
		data: "{}",
		contentType: "application/json; charset=utf-8",
		dataType: "json",
		async: true,
		cache: false,
		success: function (msg) {

			if (gridview.find("tr").length == 1) {
				$.fn.messageBox("Система заказов", "Корзина пуста.", { color: 'red' });
				return;
			}
			panel.css('display', '');
			hfdisp.val('');
		},
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			if (XMLHttpRequest.responseText.indexOf("AccessViolationException") < 0) {
				$.fn.messageBox('Ошибка', 'Ошибка соединения с базой данных.<br />Проверьте ваше подключение к сети Интернет.', { color: 'red' });
			}
			else {
				$.fn.messageBox("Система заказов", "Для подтверждения заказа вам необходимо<br />войти в систему под своей учетной записью!", { color: 'red' });
			}
		}
	});
}

$.fn.discountextrachargesummary = function (src) {

	var newSum = 0;
	var prepaymentSum = 0;
	var sumCell = 0;
	var discount = 0;
	var paymentIndex = 0;
	var prepayment = 0;
	var hf = $(document).find('[id*=hfDiscountExtrachargeSettings]');

	hf.val('');

	$(src).parents('#confirmdetails2').find('input:checked').each(function () {
		sumCell = $(this).parents('table:first').parents('tr:first').find('#rowsum').text().replace(',', '.');
		discount = $(this).parents('td:first').prev().text().toString().replace('%', '').replace(',', '.').replace('скидка ', '').replace('наценка ', '');
		paymentIndex = $(this).parents('td:eq(1)')[0].cellIndex + 1;
		prepayment = $(this).parents('table:eq(1)').first('tr').find('th:eq(' + paymentIndex + ')').text().replace('%', '').replace(',', '.');
		newSum += sumCell * (1 - discount / 100);
		prepaymentSum += newSum * prepayment / 100;
		hf.val(hf.val() + this.id.replace('dep', '') + ';');
	});

	$(src).parents('#confirmdetails2').find('#sumwithdiscountTD').text(newSum.toFixed(2).replace('.', ','));
	$(src).parents('#confirmdetails2').find('#prepaymentTD').text(prepaymentSum.toFixed(2).replace('.', ','));

}


$.extend(catalog, {
	cartAdd: function (target) {

		var row = $(target).parents('[aid]:first');
		var squantity = row.find('#q').val();

		if (!squantity)
			return;

		var errorMessage = "";
		var quantity = parseFloat(squantity);

		if (!quantity || quantity <= 0) {
			errorMessage += "В строке введено некорректное количество";
			$.fn.messageBox('Система заказов', errorMessage)
			return false;
		}

		var artID = row.attr("aid");
		var articleDescriptionID = row.attr("adid");
		var storeID = row.attr("sid");
		var storeType = row.attr("st");
		var rest = parseFloat(row.attr("r").toString().replace(",", "."));

		if (quantity > rest && storeType == 'СправочникСсылка.Склады') {
			q.css({ 'border-color': 'Red' });
			errorMessage += "В строке " + (row.index() + 1) + " введено количество превышающее остаток на складе<br />";
		}

		$.fn.callwebmethod('SET_CartAdd', '{sArtID:\'' + artID + '\', sArticleDescriptionID:\'' + articleDescriptionID + '\', sStoreID:\'' + storeID + '\', storeType:\'' + storeType + '\', sQuantity:\'' + quantity + '\', rest:' + rest + '}',
			function (msg) {
				$.fn.messageBox('Система заказов', msg.d);
				if (msg.d == "Товар успешно добавлен в корзину.") {
					$('#bEvent').click();
				}
			},
			function (XMLHttpRequest, textStatus, errorThrown) {
				$.fn.checkInternetConnection(XMLHttpRequest);
			}
		);
	},
	cartAddByScope: function (target) {
		var grid = $(target).parents('#gvSearchArticles').find('>tbody');
		var quantity;
		var resultXML = "";
		var errorMessage = "";
		var artID;
		var articleDescriptionID;
		var storeID;
		var storeType;
		var rest;
		var squantity;
		var row;
		var q;

		grid.find(">tr[aid]").each(function () {

			row = $(this);
			q = row.find('#q');
			squantity = q.val();
			if (!squantity)
				return;

			quantity = parseFloat(squantity.replace(",", "."));

			if (!quantity || quantity <= 0) {
				errorMessage += "В строке " + row.index() + " введено некорректное количество<br />";
				return;
			}

			artID = row.attr("aid");
			articleDescriptionID = row.attr("adid");
			storeID = row.attr("sid");
			storeType = row.attr("st");
			rest = parseFloat(row.attr("r").toString().replace(",", "."));

			if (quantity > rest && storeType == 'СправочникСсылка.Склады') {
				q.addClass("error");
				errorMessage += "В строке " + (row.index() + 1) + " введено количество превышающее остаток на складе<br />";
			}

			resultXML += "<Article><ArtID>" + artID + "</ArtID>"
							+ (articleDescriptionID ? "<ArticleDescriptionID>" + articleDescriptionID + "</ArticleDescriptionID>" : "")
							+ (storeID ? "<StoreID>" + storeID + "</StoreID>" : "")
							+ (storeType ? "<StoreType>" + storeType + "</StoreType>" : "")
							+ "<Quantity>" + quantity + "</Quantity></Article>";
		});

		if (errorMessage) {
			$.fn.messageBox('Система заказов', errorMessage, { color: 'red' });
			return;
		}

		if (!resultXML) {
			$.fn.messageBox('Система заказов', "Не указаны товары для добавления", { color: 'red' });
			return;
		}

		if (resultXML) {
			$.fn.callwebmethod(
		'SET_CartAddByScope',
		'{resultXML: \'' + resultXML + '\'}',
		function (msg) {
			$.fn.messageBox('Система заказов', msg.d);
			if (msg.d == "Товары успешно добавлены в корзину.")
				$('#bEvent').click();
		},
		function (XMLHttpRequest, textStatus, errorThrown) {
			$.fn.checkInternetConnection(XMLHttpRequest);
		}
		);
		}
	},
	confirmSum: function (target) {

		var totalSum = 0;
		var value;
		var grid = $(target).parents("table:first");
		grid.find("#cartCheckBox:checked").each(function () {
			value = parseFloat($(this).parent().attr("sum"));
			totalSum += value;
		}
	    );
		var lblSelectedTotalSum = grid.find('#selectedTotalSum');
		if (totalSum > 0) {
			lblSelectedTotalSum.text($.fn.formatMoney(totalSum));
		}
		else {
			lblSelectedTotalSum.text($.fn.formatMoney(0));
		}
		//		spans.each(function () {
		//			value = parseFloat($(this).text().replace(/[^0-9,\.]/g, "").replace(/[,\.]/, "."));
		//			totalSum += value;
		//		});
		//		var lblSelectedTotalSum = gridView.find('#selectedTotalSum');
		//		if (totalSum > 0) {
		//			lblSelectedTotalSum.text($.fn.formatMoney(totalSum));
		//		}
		//		else {
		//			lblSelectedTotalSum.text($.fn.formatMoney(0));
		//		}
	},
	changeQuantity: function (target, isPlus) {
		tbQuantity = $(target).parents("table:first").find("input[id='q']");
		currentQuantity = parseFloat(tbQuantity.val());
		if (!currentQuantity)
			currentQuantity = 1;
		if (currentQuantity == 1 && !isPlus)
			return;
		tbQuantity.val(currentQuantity + (isPlus ? 1 : -1));
	}
});

$.fn.hideDiscountColumn = function (grid) {
	//	var header = grid.find("a[href*='Sort$Discount']").parent();
	//	var hindex = header.index();
	//	var cells = grid.find("tbody:first").find(">tr>td").filter(function () {
	//		return $(this).index() == hindex;
	//	});

	//	if (!cells.filter(function () { return $(this).text(); }).length) {
	//		cells.each(function () { $(this).remove(); })
	//		header.remove();
	//		var footer = $(grid.find("tbody:first").find(">tr:last>td")[1]);
	//		var colspan = footer.attr("colspan") - 1;
	//		footer.attr("colspan", colspan);
	//	}


}
