<?php if(false){ ?><style><?php } ?>
<?php function dialogo_autoload_css(){ ?>
<?php } ?>
<?php if(false){ ?></style><?php } ?>
<?php function dialogo_autoload_html(){ ?>
	<div class="background_window" id="_dialogo_autoload" style="z-index:500;">
		<div class="window">
			<div class="window_title">
				<svg width="25px" height="25px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <path d="M10.125 8.875C10.125 7.83947 10.9645 7 12 7C13.0355 7 13.875 7.83947 13.875 8.875C13.875 9.56245 13.505 10.1635 12.9534 10.4899C12.478 10.7711 12 11.1977 12 11.75V13" stroke="#ff0000" stroke-width="1.5" stroke-linecap="round"></path> <circle cx="12" cy="16" r="1" fill="#ff0000"></circle> <path d="M7 3.33782C8.47087 2.48697 10.1786 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 10.1786 2.48697 8.47087 3.33782 7" stroke="#ff0000" stroke-width="1.5" stroke-linecap="round"></path> </g></svg>
				<div>Autocarga de lista</div>
				<span style="width:25px;"></span>
			</div>
			<div class="window_body">
				<p><span>Seleccione las columnas para identificar la ubicación de los datos.</span></p>
						<div class="input_select">
							<span>Tipo de moneda utilizado en el archivo</span><select id="import_val_tipo_moneda" name="import_val_tipo_moneda"></select>
						</div>
						<h3>Organizar las columnas</h3>
						<div class="input_select">
							<span>Nombre del producto ( * )</span><select class="column_import" id="import_col_producto_nombre" name="import_col_producto_nombre"></select>
						</div>
						<div class="input_select">
							<span>Código del producto</span><select class="column_import" id="import_col_producto_codigo" name="import_col_producto_codigo"></select>
						</div>
						<div class="input_select">
							<span>Fabricante</span><select class="column_import" id="import_col_fabricante_nombre" name="import_col_fabricante_nombre"></select>
						</div>
						<div class="input_select">
							<span>Modelo</span><select class="column_import" id="import_col_producto_modelo" name="import_col_producto_modelo"></select>
						</div>
						<div class="input_select">
							<span>Serie</span><select class="column_import" id="import_col_producto_serie" name="import_col_producto_serie"></select>
						</div>
						<div class="input_select">
							<span>Precio de compra</span><select class="column_import" id="import_col_precio_compra" name="import_col_precio_compra"></select>
						</div>
						<div class="input_select" style="display:none;">
							<span>Precio minimo</span><select class="column_import" id="import_col_precio_minimo" name="import_col_precio_minimo"></select>
						</div>
						<div class="input_select">
							<span>Unidades</span><select class="column_import" id="import_col_unidades" name="import_col_unidades"></select>
						</div>
						<h3>Vista previa ( 10 lineas )</h3>
						<input type="hidden" id="autoload_lista_datos" name="autoload_lista_datos" value="" />
						<div class="table_preview" style="margin:auto;margin-bottom:10px;;width:98%;height:150px;overflow:auto;border:1px solid #cccccc;"></div>
			</div>
			<div class="window_buttons">
				<span style="flex:1;"></span>
				<button class="btn_accept buttons_active"><span>Aceptar</span></button>
				<button class="btn_close buttons_active"><span>Cancelar</span></button>
			</div>
		</div>
	</div>
<?php } ?>
<?php if(false){ ?><script><?php } ?>
<?php function dialogo_autoload_javascript(){ ?>
var ctrl_autoload_datos = {
	tipo: "compra",
}
function dialogo_autoload_open(tipo="compra"){
	ctrl_autoload_datos.tipo = tipo;
	$("#_dialogo_autoload").css("display", "flex");
}
function dialogo_autoload_close(){
	$("#_dialogo_autoload").css("display", "none");
}
<?php } ?>
<?php function dialogo_autoload_ready(){ ?>
	$("#_dialogo_autoload .btn_accept").click(function (){
		let datos = $("#autoload_lista_datos").val();
		if (datos.length == 0){
			open_dialog_alert("No hay datos que importar.");
			return;
		}
		datos = JSON.parse(datos);
		datos.shift();
		let import_val_tipo_moneda = $("#import_val_tipo_moneda").val();
		let import_col_producto_nombre = $("#import_col_producto_nombre").val();
		let import_col_producto_codigo = $("#import_col_producto_codigo").val();
		let import_col_fabricante_nombre = $("#import_col_fabricante_nombre").val();
		let import_col_producto_modelo = $("#import_col_producto_modelo").val();
		let import_col_producto_serie = $("#import_col_producto_serie").val();
		let import_col_precio_compra = $("#import_col_precio_compra").val();
		let import_col_unidades = $("#import_col_unidades").val();
		if (import_col_producto_nombre == undefined || import_col_producto_nombre == null){
			import_col_producto_nombre = -1;
		}
		if (import_col_producto_codigo == undefined || import_col_producto_codigo == null){
			import_col_producto_codigo = -1;
		}
		if (import_col_fabricante_nombre == undefined || import_col_fabricante_nombre == null){
			import_col_fabricante_nombre = -1;
		}
		if (import_col_producto_modelo == undefined || import_col_producto_modelo == null){
			import_col_producto_modelo = -1;
		}
		if (import_col_producto_serie == undefined || import_col_producto_serie == null){
			import_col_producto_serie = -1;
		}
		if (import_col_precio_compra == undefined || import_col_precio_compra == null){
			import_col_precio_compra = -1;
		}
		if (import_col_unidades == undefined || import_col_unidades == null){
			import_col_unidades = -1;
		}
		if (import_col_producto_nombre < 0){
			open_dialog_alert("Seleccione la columna que tiene los nombres");
		} else {
			//_dialog_confirm_options.func_accept();
			let id_virtual = 1;
			function procesarLotes(codigo, datos, batchSize, startIndex) {
				let lote = datos.slice(startIndex, startIndex + batchSize);
				if (lote.length > 0) { // Envía el lote actual por AJAX
					//console.log(lote);
					$.ajax({
						url: 'control/ctrl_importar.php',
						method: 'POST',
						dataType: "json",
						data: { 
							accion: "autoload_datos",
							lote: JSON.stringify(lote),
							import_val_tipo_moneda: import_val_tipo_moneda,
							import_col_producto_nombre: import_col_producto_nombre,
							import_col_producto_codigo: import_col_producto_codigo,
							import_col_fabricante_nombre: import_col_fabricante_nombre,
							import_col_producto_modelo: import_col_producto_modelo,
							import_col_producto_serie: import_col_producto_serie,
							import_col_precio_compra: import_col_precio_compra,
							import_col_unidades: import_col_unidades,
						},
						success: function (respuesta) {
							//console.log(respuesta);
							if (respuesta.estado == "ok"){
								ctrl_datos.beep_activo = false;
								for (let idx=0; idx<respuesta.lista.length; idx++){
									let fila = respuesta.lista[idx];
									if (fila.producto_id == 0){
										let row_data = agregar_fila_producto(0, fila.producto_id, fila.producto_nombre);
										row_data.attr("data-producto", "-"+id_virtual);
										row_data.attr("data-almacen", fila.almacen_general_id);
										row_data.find(".v_column_2").html(fila.producto_codigo);
										row_data.find(".v_column_3").html(fila.producto_nombre);
										row_data.find(".v_column_4").html(fila.producto_fabricante);
										row_data.find(".v_column_5").html(fila.producto_modelo);
										row_data.find(".v_column_6").html(fila.producto_serie);
										row_data.find(".td_cantidad input[type='number']").val(fila.unidades);
										row_data.find(".td_precio_compra .td_precio_dolar input").val(parseFloat(fila.precio_compra).toFixed(3));
										row_data.find(".td_precio_compra .td_precio_soles input").val(parseFloat(fila.precio_compra_cambio).toFixed(2));
										row_data.find(".td_precio_venta .td_precio_dolar input").val(parseFloat(fila.precio_venta).toFixed(3));
										row_data.find(".td_precio_venta .td_precio_soles input").val(parseFloat(fila.precio_venta_cambio).toFixed(2));
										row_data.css("background-color", "red");
										id_virtual++;
									} else {
										let row_data = agregar_fila_producto(0, fila.producto_id, fila.producto_nombre);
										row_data.attr("data-almacen", fila.almacen_general_id);
										row_data.find(".v_column_2").html(fila.producto_codigo);
										row_data.find(".td_cantidad input[type='number']").val(fila.unidades);
										row_data.find(".td_precio_compra .td_precio_dolar input").val(parseFloat(fila.precio_compra).toFixed(3));
										row_data.find(".td_precio_compra .td_precio_soles input").val(parseFloat(fila.precio_compra_cambio).toFixed(2));
										row_data.find(".td_precio_venta .td_precio_dolar input").val(parseFloat(fila.precio_venta).toFixed(3));
										row_data.find(".td_precio_venta .td_precio_soles input").val(parseFloat(fila.precio_venta_cambio).toFixed(2));
									}
								}
								ctrl_datos.beep_activo = true;
								vista_columnas_tabla();
								procesarLotes(respuesta.codigo, datos, batchSize, startIndex + batchSize);
								
							} else {
								close_loading();
								$("#_dialogo_autoload").css("display", "none");
								open_dialog_alert(respuesta.mensaje);
							}
						},
						error: function (xhr, status, error) {
							//$("#import_table_detalles").append("<span style='color:red;'>Error en la solicitud </span><br />");
							close_loading();
							$("#_dialogo_autoload").css("display", "none");
						}
					});
				} else {
					// Todos los lotes se han procesado
					//$("#import_table_detalles").append("<span style='color:green;font-weight:bold;'>Procesamiento completo </span><br />");
					close_loading();
					$("#_dialogo_autoload").css("display", "none");
				}
			}
			open_loading();
			var import_codigo = 0;
			var batchSize = 100;
			var startIndex = 0;
			procesarLotes(import_codigo, datos, batchSize, startIndex);
		}
	});
	$("#_dialogo_autoload .btn_close").click(function (){
		//_dialog_confirm_options.func_cancel();
		$("#_dialogo_autoload").css("display", "none");
	});
<?php } ?>

<?php if(false){ ?></script><?php } ?>
