$(document).ready(function() {
	$(".costo-neto").change(function() {
		var neto = $(this).val();
		var bruto = Math.round($(this).val() * 1.19);
		var p25 = Math.round(bruto * 100 / 75);
		var p30 = Math.round(bruto * 100 / 70);
		$(".costo").val(bruto);
		$(".precio25").html("25%: " + p25);
		$(".precio30").html("30%: " + p30);
	});
	$(".costo").change(function() {
		var bruto = $(this).val();
		var neto = Math.round($(this).val() / 1.19);
		var p25 = Math.round(bruto * 100 / 75);
		var p30 = Math.round(bruto * 100 / 70);
		$(".costo-neto").val(neto);
		$(".precio25").html("25%: " + p25);
		$(".precio30").html("30%: " + p30);
	});

	autocompleteProductoPS($('.ps-nombre'));
	$('.ps-nombre').change(function(){
		var ps_nombre = $(this).val();
		if (ps_nombre == '') {
			$('.ps-id').val('');
			$(this).addClass('not-found').removeClass('found');
		}
	});

	// Abrir modal para editar producto
	$('#modalProducto').on('show.bs.modal', function (event) {
		$('.modal-wait').hide();
		var button = $(event.relatedTarget)
		var modal = $(this);

		modal.find('#idProducto').val(0);
		modal.find('.nombre-producto').val('');
		modal.find('.ps-nombre').val('');
		modal.find('.ps-id').val('');
		modal.find('.ps-id-asociado').val('');
		modal.find('.el-ps-asociado').hide();
		modal.find('.id-categoria').val('');
		modal.find('.ps-nombre').val('');
		modal.find('.id-proveedor').val('');
		//modal.find('.costo-neto').val('');
		//modal.find('.costo').val('');
		//modal.find('.precio').val('');
		modal.find('.input-codigo-barra').val('');
		modal.find('.input-sku').val('');
		modal.find('.check-ignora-descuadre').prop('checked', false);
		modal.find('.id-ranking').val(0);
		

		modal.find('.badge.disponibles').html(0);
		modal.find('.badge.reservados').html(0);
		modal.find('.text-descripcion').html('');
		modal.find('.text-observaciones').html('');
		//modal.find('.input-stock-almacen').val(0);

		// each por cada marketplace para deesactivar check y poner stock en ''
		//modal.find('.check-activo-meli').prop('checked', false);
		//modal.find('.input-stock-meli').val(0);
		$('.mp-detalles').each(function() {
			$(this).find('.check-mp-activo').prop('checked', false);
			$(this).find('.input-mp-stock').val('');
		});



		$('.alert-producto').html('').hide();

		modal.find('#editarProducto').removeAttr('disabled').html('Editar');
		if (button.data('id') == 0) {
			modal.find('#editarProducto').html('Crear');
		}

		// Importar producto desde PS
		if (button.data('ps-id') > 0){
			var parametros = {
				id: button.data('ps-id')
			};

			$.ajax({
				data: parametros,
				url:  '/productos/get_ps',
				type: 'post',
				beforeSend: function () {
				},
				success:  function (response) {
					producto = JSON.parse(response);
					modal.find('.nombre-producto').val(producto.nombre);
					modal.find('.ps-id').val(producto.ps_id);
					modal.find('.ps-nombre').val(producto.nombre);
					let costo = Math.round(producto.precio/10*7);
					modal.find('.costo').val(costo);
					modal.find('.costo-neto').val(Math.round(costo/1.19));
					modal.find('.precio').val(producto.precio);
					modal.find('.ps-nombre').addClass('found').removeClass('not-found');
					modal.find('#editarProducto').html('Editar');
					$('.modal-wait').show();
				}
			});
		}
		else {
			// Crear Producto
			if (button.data('id') == 0) {
				$('#eliminarProducto').hide();
				modal.find('#editarProducto').html('Crear');
				$('.modal-wait').show();
			}
			// Editar producto
			else {
				$('#eliminarProducto').show();

				var parametros = {
					id: button.data('id')
				};

				// Obtener datos de producto a editar
				$.ajax({
					data: parametros,
					url:  '/productos/get',
					type: 'post',
					beforeSend: function () {
					},
					success:  function (response) {
						producto = JSON.parse(response);
						modal.find('#idProducto').val(producto.id);
						modal.find('.nombre-producto').val(producto.nombre);
						modal.find('.ps-id').val(producto.ps_id);
						modal.find('.id-categoria').val(producto.id_categoria);
						
						// PS asociado solo disponible para productos demo
						if (producto.id_categoria == 10) {
							modal.find('.ps-id-asociado').val(producto.ps_id_asociado);
							modal.find('.el-ps-asociado').show();
						}
						modal.find('.id-proveedor').val(producto.id_proveedor);
						modal.find('.costo-neto').val(producto.costo_neto);
						modal.find('.costo').val(producto.costo);
						modal.find('.precio').val(producto.precio);
						modal.find('.input-codigo-barra').val(producto.codigo_barra);
						modal.find('.input-sku').val(producto.sku);
						modal.find('.id-ranking').val(producto.id_ranking);

						if (producto.ignora_descuadre == 1) {
							modal.find('.check-ignora-descuadre').prop('checked', true);
						}
						

						$.each(producto.marketplaces, function(idMp, datosMp) {
							if ('activo' in datosMp) {
								$(`#mp-activo-${idMp}`).prop('checked', !!datosMp.activo);
							}
						
							if ('stock' in datosMp && datosMp.stock !== null && datosMp.stock !== undefined) {
								$(`#mp-stock-${idMp}`).val(datosMp.stock);
							}
						});

						modal.find('.text-descripcion').val(producto.descripcion);
						modal.find('.text-observaciones').val(producto.observaciones);
						
						if (producto.ps_id > 0) {
							modal.find('.ps-nombre').val(producto.ps_nombre);
							modal.find('.ps-nombre').addClass('found').removeClass('not-found');
						}
						else {
							modal.find('.ps-nombre').addClass('not-found').removeClass('found');
						}

						modal.find('.tipo-reposicion').val(producto.tipo_reposicion);
						// Ejecuta lógica para mostrar/ocultar razón
						$('.tipo-reposicion').trigger('change');
						// Si está marcado No Reponer (-1), rellenamos razón
						if (producto.tipo_reposicion == -1) {
							if (producto.razon_no_reponer) {
								$('.razon-no-reponer').val(producto.razon_no_reponer);
								$('.razon-no-reponer').trigger('change');
							}

							if (producto.razon_no_reponer_detalle) {
								$('.razon-detalle').val(producto.razon_no_reponer_detalle);
							}
						}


						modal.find('#editarProducto').html('Editar');
						$('.modal-wait').show();
					}
				});
			}
		}
	});

	// Abrir modal para editar producto
	$('#modalStockAlmacenes').on('show.bs.modal', function (event) {
		$('.modal-wait').hide();
		var button = $(event.relatedTarget)
		var modal = $(this);

		modal.find('#idProducto').val(0);
		modal.find('.badge.disponibles').html(0);
		modal.find('.badge.reservados').html(0);
		modal.find('.input-stock-almacen').val(0);
		modal.find('.input-deseados-almacen').val(0);
		modal.find('.input-deseados-max-almacen').val(0);

		$('.alert-producto').html('').hide();

		modal.find('#editarStock').removeAttr('disabled').html('Editar');
		if (button.data('id') == 0) {
			// Error
		}

		var parametros = {
			id: button.data('id')
		};

		// Obtener datos de stocks a editar
		$.ajax({
			data: parametros,
			url:  '/productos/get_stock',
			type: 'post',
			beforeSend: function () {
			},
			success:  function (response) {
				producto = JSON.parse(response);
				modal.find('#idProducto').val(button.data('id'));
				// Stock almacenes
				if (typeof producto.almacenes != "undefined") {
					for (let key of Object.keys(producto.almacenes)) {
						almacen = producto.almacenes[key];
						if (almacen != null) {
							modal.find('#disponibles-' + key + ' .disponibles').html(almacen.disponibles);
							modal.find('#reservados-' + key + ' .reservados').html(almacen.reservados);
							modal.find('input[name="stock_almacen[' + almacen.id_almacen + ']"]').val(almacen.stock);
							modal.find('#stock-' + almacen.id_almacen + ' .stock').html(almacen.stock);
							modal.find('input[name="deseados_almacen[' + almacen.id_almacen + ']"]').val(almacen.deseados);
							modal.find('input[name="deseados_max_almacen[' + almacen.id_almacen + ']"]').val(almacen.deseados_max);
							modal.find('.id-ubicacion-' + key).val(almacen.id_ubicacion);
						}
					}
				}

				modal.find('#editarStock').html('Editar');
				$('.modal-wait').show();
			}
		});
	});

	$("#formProducto").submit(function( event ) {
		event.preventDefault();
		$('#editarProducto').click();
	});

	// Guardar producto
	$("#editarProducto" ).click(function() {
		var button = $(this);
		$('.alert-producto').html('').hide();
		button.attr('disabled', 'disabled');
		button.html('Enviando');
		var parametros = $('#formProducto').serialize();

		let psId = $('#formProducto').find('.ps-id').val();


		$.ajax({
			data:  parametros,
			url:   '/productos/save',
			type:  'post',
			success:  function (response) {
				var id = $('#idProducto').val();
				if (response.status == 'success') {
					//location.reload();
					console.log('#producto'+psId);
					$('#producto'+psId).hide();
					$('#modalProducto').modal('hide');
				}
				else {
					$('.alert-producto').html(response.message).show();
					button.removeAttr('disabled');
					button.html('Editar');
					if (id == 0) {
						button.html('Crear');
					}
				}
				

				
			}
		});
	});


	$("#formStockProducto").submit(function( event ) {
		event.preventDefault();
		$('#editarStock').click();
	});

	// Guardar producto
	$("#editarStock" ).click(function() {
		var button = $(this);
		$('.alert-producto').html('').hide();
		button.attr('disabled', 'disabled');
		button.html('Enviando');
		var parametros = $('#formStockProducto').serialize();
		$.ajax({
			data:  parametros,
			url:   '/productos/save_stock',
			type:  'post',
			success:  function (response) {
				var id = $('#idProducto').val();
				if (response.status == 'success') {
					//location.reload();
					$('#modalStockAlmacenes').modal('hide');
				}
				else {
					$('.alert-producto').html(response.message).show();
					button.removeAttr('disabled');
					button.html('Editar');
				}
			}
		});
	});

	$( "#eliminarProducto" ).click(function() {
		if (confirm('Eliminar')) {
			var id = $('#idProducto').val();
			var parametros = {
				id : id
			};
			$.ajax({
				data:  parametros,
				url:   '/productos/delete',
				type:  'post',
				beforeSend: function () {
				
				},
				success:  function (response) {
					$('#producto' + id).remove();
					$('#modalProducto').modal('hide');
				}
			});
		}
	});

	$( ".imagen-producto-single" ).mouseover(function() {
		var imagen = $(this);
		var title = imagen.attr('title');
		if (!imagen.hasClass('has-tooltip')) {
			var parametros = {
				id : imagen.data('id')
			};
			$.ajax({
				data:  parametros,
				url:   '/productos/get_ps_image',
				type:  'post',
				beforeSend: function () {
				},
				success:  function (response) {
					var res = JSON.parse(response);
					imagen.attr('src', 'https://dementegames.cl/'+res.id_image+'-medium_default/img.jpg');
					imagen.attr('title', '<img src=\'https://dementegames.cl/'+res.id_image+'-medium_default/img.jpg\'>')
					if (!imagen.hasClass('has-tooltip')) {
						imagen.tooltip({
							animated: 'fade',
							placement: 'right',
							html: true
						});
					}
					imagen.addClass('has-tooltip');
				}
			});
		}
	});


	$('.id-categoria').change(function() {
		let idCategoria = $(this).val();
		if (idCategoria == 10) {
			$('.el-ps-asociado').show();
		}
		else {
			$('.ps-id-asociado').val('');
			$('.el-ps-asociado').hide();
		}
	});

	$('.input-codigo-barra-autosave').change(function() {
		let input = $(this);
		var parametros = {
			id: $(this).data('id-producto'),
			codigo: ""+$(this).val()
		};

		$.ajax({
			data: parametros,
			url:  '/productos/guarda_codigo',
			type: 'post',
			beforeSend: function () {
			},
			success: function (response) {
				if (response) {
					//add class success
					input.addClass('found');
				}
				else {
					// add class error
					input.addClass('not-found');
				}
			}
		});

		input.closest('tr').next().find('.input-codigo-barra-autosave').focus();
	});

	$('.get-code').click(function() {
		let id = $('#idProducto').val();
		if (id > 0) {
			$.ajax({
				url:  '/productos/genera_ean13/' + id,
				type: 'get',
				success: function (response) {
					if (response.status == 'success') {
						$('.input-codigo-barra').val(response.codigo);
					}
					else {
						$('.input-codigo-barra').val('');
					}
				}
			});
		}
	});

	$('.span-quitar-preventa').click(function() {
		if (confirm('El producto será removido de las preventas y quedará disponible para compra inmediata')){
			let psId = $(this).data('ps-id');
			if (psId > 0){
				var parametros = {
					id: psId
				};

				$.ajax({
					data: parametros,
					url:  '/productos/quita_preventa',
					type: 'post',
					beforeSend: function () {
					},
					success: function (response) {
						location.reload();
					}
				});
			}
		}
	});
});
