<?php
header("Content-Type: text/html;charset=utf-8");
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}
if (!isset($_SESSION["usuario_editor"]) || $_SESSION["usuario_editor"] == 0){
	header("Location: ./");
	exit;
}
	$modo_vista = array("vista"=>"", "codigo"=>0); 
	if ($_SESSION["control"]["tipo_editor"] == "administracion_general"){
		if (isset($_COOKIE["vista"])) {
			$modo_vista = json_decode($_COOKIE["vista"], true);
		} else {
			$modo_vista = array("vista"=>"administracion", "codigo"=>0); 
		}
	} else if ($_SESSION["control"]["tipo_editor"] == "administracion_almacen"){
		$modo_vista = array("vista"=>"almacen", "codigo"=>0); 
	} else if ($_SESSION["control"]["tipo_editor"] == "administracion_tienda") {
		$modo_vista = array("vista"=>"tienda", "codigo"=>$_SESSION["control"]["tienda_editor"]); 
	} else {
		$modo_vista["codigo"] = -2;
	}
require_once("data/Conexion.php");
require_once("clases/cls_tienda.php");
?>
<?php require_once("seccion_cabecera.php"); ?>
<?php require_once("seccion_css.php"); ?>
<?php require_once("seccion_dialogo.php"); ?>
<?php require_once("seccion_alertas.php"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">

<head>
	<link rel="icon" type="image/png" href="libreria/imagenes/favicon.png" sizes="64x64">
	<title>Reportes</title>
	<meta http-equiv="content-type" content="text/html;charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta name="generator" content="Geany 1.38" />
	<?php if (isset($_COOKIE["custom_css"])){ ?>
	<link id="link_css" rel="stylesheet" type="text/css" href="libreria/css/demo_css_<?php echo($_COOKIE["custom_css"]); ?>.css?vervion=1.3">
	<?php } else { ?>
	<link id="link_css" rel="stylesheet" type="text/css" href="libreria/css/demo_css_Cristal.css?vervion=1.3">
	<?php } ?>
	<link rel="stylesheet" type="text/css" href="libreria/css/jquery-ui.css">
	<script language="JavaScript" type="text/javascript" src="libreria/js/jquery.min.js"></script>
	<script language="JavaScript" type="text/javascript" src="libreria/js/jquery-ui.js"></script>
	<script src="libreria/js/xlsx.full.min.js"></script>
	<script src="libreria/js/FileSaver.min.js"></script>
	<script src="libreria/js/html2canvas.js"></script>

</head>
<style>
<?php get_css(); ?>
<?php dialogo_loading_css(); ?>
<?php dialogo_image_css(); ?>
<?php dialogo_alert_css(); ?>
<?php dialogo_confirm_css(); ?>
.list_store .row_store{
	padding: 5px 0px;
}
</style>
<body>
	<?php alertas_pedidos_html(); ?>
	<?php dialogo_loading_html(); ?>
	<?php dialogo_image_html(); ?>
	<?php dialogo_alert_html(); ?>
	<?php dialogo_confirm_html(); ?>
	<?php dialogo_document_html(); ?>
	<?php get_header_html(); ?>
	<section class="section_body">
		<div class="dv_left">
			<div class="dv_border">
				<div class="box" style="overflow:auto;">
					<div class="header">
						<span>Reportes</span>
					</div>
					<hr>
					<ul class="list_store">
					</ul>
				</div>
			</div>
		</div>
		<div class="dv_middle"><span></span><span></span><span></span></div>
		<div class="dv_right">
			<div class="menu_button"><span></span><span></span><span></span></div>
			<div id="panel_reporte" class="dv_border" style="display:none;">
				<div class="header">
					<span>Datos reporte</span>
				</div>
					<div class="buscador_input">
						<input type="text" placeholder="Buscar" id="btn_filtro_buscar" name="btn_filtro_buscar" />
						<svg width="64px" height="64px" 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="M11 6C13.7614 6 16 8.23858 16 11M16.6588 16.6549L21 21M19 11C19 15.4183 15.4183 19 11 19C6.58172 19 3 15.4183 3 11C3 6.58172 6.58172 3 11 3C15.4183 3 19 6.58172 19 11Z" stroke="#1C274C" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </g></svg>
					</div>
					<div class="buscador_options">
	<?php if ($modo_vista["codigo"] == 0){?>
						<select class="option_select" id="filtro_almacen" name="filtro_almacen">
							<option value="0" select>Almacen General</option>
						</select>
	<?php } else { ?>
	<input type="hidden" id="filtro_almacen" name="filtro_almacen" readonly="true" autocomplete="false" />
	<?php } ?>
						<select class="option_select" id="btn_filtro_usuario_tipo" name="btn_filtro_usuario_tipo">
							<option value="Todos" select>Tipo (Todos)</option>
							<option value="Administrador">Administrador</option>
							<option value="Vendedor">Vendedor</option>
							<option value="Almacenero">Almacenero</option>
						</select>
						<select class="option_select" id="btn_filtro_usuario_estado" name="btn_filtro_usuario_estado">
							<option value="Todos" select>Estado (Todos)</option>
							<option value="Activo">Activo</option>
							<option value="Suspendido">Suspendido</option>
						</select>
						<select class="option_select" id="filtro_existencias" name="filtro_existencias">
							<option value="-1" select="">Existencias (Todos)</option>
							<option value="100">Stock &lt;= de 100</option>
							<option value="50">Stock &lt;= de 50</option>
							<option value="30">Stock &lt;= de 30</option>
							<option value="20">Stock &lt;= de 20</option>
							<option value="10">Stock &lt;= de 10</option>
							<option value="5">Stock &lt;= de 5</option>
							<option value="2">Stock &lt;= de 2</option>
							<option value="0">Stock agotado</option>
						</select>
						<div class="input_text" id="filtro_fecha_min"><span>Fecha (desde)</span><input type="text" readonly="true" autocomplete="false" /></div>
						<div class="input_text" id="filtro_fecha_max"><span>Fecha (hasta)</span><input type="text" readonly="true" autocomplete="false" /></div>
						<div style="flex:1;"></div>
						<button class="option_button" id="btn_order_asc">
							<svg width="64px" height="64px" 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.22 15.97L9 17.19V5C9 4.59 8.66 4.25 8.25 4.25C7.84 4.25 7.5 4.59 7.5 5V17.19L6.28 15.97C5.99 15.68 5.51 15.68 5.22 15.97C4.93 16.26 4.93 16.74 5.22 17.03L7.72 19.53C7.79 19.6 7.87 19.65 7.96 19.69C8.05 19.73 8.15 19.75 8.25 19.75C8.35 19.75 8.45 19.73 8.54 19.69C8.63 19.65 8.71 19.6 8.78 19.53L11.28 17.03C11.57 16.74 11.57 16.26 11.28 15.97C10.99 15.68 10.51 15.68 10.22 15.97Z" fill="#1c274c"></path> <path d="M14 11.21C14.39 11.35 14.82 11.15 14.96 10.76L15.24 9.98001H17.27L17.55 10.76C17.66 11.07 17.95 11.26 18.26 11.26C18.34 11.26 18.43 11.25 18.51 11.22C18.9 11.08 19.1 10.65 18.96 10.26L17.25 5.47001C17.08 5.04001 16.69 4.76001 16.25 4.76001C15.81 4.76001 15.42 5.04001 15.25 5.49001L13.55 10.26C13.41 10.65 13.61 11.08 14 11.22V11.21ZM16.73 8.48001H15.77L16.25 7.14001L16.73 8.48001Z" fill="#1c274c"></path> <path d="M18.67 13.46C18.48 13.02 18.08 12.75 17.62 12.75H14.51C14.1 12.75 13.76 13.09 13.76 13.5C13.76 13.91 14.1 14.25 14.51 14.25H16.9L14.07 17.2C13.73 17.56 13.64 18.08 13.83 18.54C14.02 18.98 14.42 19.25 14.88 19.25H18.01C18.42 19.25 18.76 18.91 18.76 18.5C18.76 18.09 18.42 17.75 18.01 17.75H15.62L18.44 14.82C18.78 14.46 18.88 13.93 18.68 13.47L18.67 13.46Z" fill="#1c274c"></path> </g></svg>
						</button>
						<button class="option_button" id="btn_order_desc" style="display:none;">
							<svg width="64px" height="64px" 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.22 15.97L9 17.19V5C9 4.59 8.66 4.25 8.25 4.25C7.84 4.25 7.5 4.59 7.5 5V17.19L6.28 15.97C5.99 15.68 5.51 15.68 5.22 15.97C4.93 16.26 4.93 16.74 5.22 17.03L7.72 19.53C7.79 19.6 7.87 19.65 7.96 19.69C8.05 19.73 8.15 19.75 8.25 19.75C8.35 19.75 8.44 19.73 8.54 19.69C8.63 19.65 8.71 19.6 8.78 19.53L11.28 17.03C11.57 16.74 11.57 16.26 11.28 15.97C10.99 15.68 10.51 15.68 10.22 15.97Z" fill="#1c274c"></path> <path d="M18.96 18.25L17.25 13.46C17.08 13.03 16.69 12.75 16.25 12.75C15.81 12.75 15.42 13.03 15.25 13.48L13.55 18.25C13.41 18.64 13.61 19.07 14 19.21C14.39 19.35 14.82 19.15 14.96 18.76L15.24 17.98H17.27L17.55 18.76C17.66 19.07 17.95 19.26 18.26 19.26C18.34 19.26 18.43 19.25 18.51 19.22C18.9 19.08 19.1 18.65 18.96 18.26V18.25ZM15.77 16.48L16.25 15.14L16.73 16.48H15.77Z" fill="#1c274c"></path> <path d="M13.83 10.54C14.02 10.98 14.42 11.25 14.88 11.25H18.01C18.42 11.25 18.76 10.91 18.76 10.5C18.76 10.09 18.42 9.75001 18.01 9.75001H15.62L18.44 6.82001C18.78 6.46001 18.88 5.93001 18.68 5.47001C18.49 5.03001 18.09 4.76001 17.63 4.76001H14.52C14.11 4.76001 13.77 5.10001 13.77 5.51001C13.77 5.92001 14.11 6.26001 14.52 6.26001H16.91L14.08 9.21001C13.74 9.57001 13.65 10.09 13.84 10.55L13.83 10.54Z" fill="#1c274c"></path> </g></svg>
						</button>
						<button class="option_button" id="btn_print_table">
							<svg width="64px" height="64px" viewBox="0 0 1024 1024" class="icon" version="1.1" xmlns="http://www.w3.org/2000/svg" fill="#000000"><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="M192 234.666667h640v64H192z" fill="#424242"></path><path d="M85.333333 533.333333h853.333334v-149.333333c0-46.933333-38.4-85.333333-85.333334-85.333333H170.666667c-46.933333 0-85.333333 38.4-85.333334 85.333333v149.333333z" fill="#616161"></path><path d="M170.666667 768h682.666666c46.933333 0 85.333333-38.4 85.333334-85.333333v-170.666667H85.333333v170.666667c0 46.933333 38.4 85.333333 85.333334 85.333333z" fill="#424242"></path><path d="M853.333333 384m-21.333333 0a21.333333 21.333333 0 1 0 42.666667 0 21.333333 21.333333 0 1 0-42.666667 0Z" fill="#00E676"></path><path d="M234.666667 85.333333h554.666666v213.333334H234.666667z" fill="#90CAF9"></path><path d="M800 661.333333h-576c-17.066667 0-32-14.933333-32-32s14.933333-32 32-32h576c17.066667 0 32 14.933333 32 32s-14.933333 32-32 32z" fill="#242424"></path><path d="M234.666667 661.333333h554.666666v234.666667H234.666667z" fill="#90CAF9"></path><path d="M234.666667 618.666667h554.666666v42.666666H234.666667z" fill="#42A5F5"></path><path d="M341.333333 704h362.666667v42.666667H341.333333zM341.333333 789.333333h277.333334v42.666667H341.333333z" fill="#1976D2"></path></g></svg>
						</button>
						<div class="option_button" id="btn_export_csv" style="background-color:unset;border:0px;">
							<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 303.188 303.188" xml:space="preserve" width="64px" height="64px" fill="#000000"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <g> <polygon style="fill:#E4E4E4;" points="219.821,0 32.842,0 32.842,303.188 270.346,303.188 270.346,50.525 "></polygon> <polygon style="fill:#007934;" points="227.64,25.263 32.842,25.263 32.842,0 219.821,0 "></polygon> <g> <g> <path style="fill:#A4A9AD;" d="M114.872,227.984c-2.982,0-5.311,1.223-6.982,3.666c-1.671,2.444-2.507,5.814-2.507,10.109 c0,8.929,3.396,13.393,10.188,13.393c2.052,0,4.041-0.285,5.967-0.856c1.925-0.571,3.86-1.259,5.808-2.063v10.601 c-3.872,1.713-8.252,2.57-13.14,2.57c-7.004,0-12.373-2.031-16.107-6.094c-3.734-4.062-5.602-9.934-5.602-17.615 c0-4.803,0.904-9.023,2.714-12.663c1.809-3.64,4.411-6.438,7.808-8.395c3.396-1.957,7.39-2.937,11.98-2.937 c5.016,0,9.808,1.09,14.378,3.27l-3.841,9.871c-1.713-0.805-3.428-1.481-5.141-2.031 C118.681,228.26,116.841,227.984,114.872,227.984z"></path> <path style="fill:#A4A9AD;" d="M166.732,250.678c0,2.878-0.729,5.433-2.191,7.665c-1.459,2.232-3.565,3.967-6.315,5.205 c-2.751,1.237-5.977,1.856-9.681,1.856c-3.089,0-5.681-0.217-7.775-0.65c-2.095-0.434-4.274-1.191-6.538-2.27v-11.172 c2.391,1.227,4.877,2.186,7.458,2.872c2.582,0.689,4.951,1.032,7.109,1.032c1.862,0,3.227-0.322,4.095-0.969 c0.867-0.645,1.302-1.476,1.302-2.491c0-0.635-0.175-1.19-0.524-1.666c-0.349-0.477-0.91-0.958-1.682-1.444 c-0.772-0.486-2.83-1.48-6.173-2.983c-3.026-1.375-5.296-2.708-6.809-3.999s-2.634-2.771-3.364-4.443s-1.095-3.65-1.095-5.936 c0-4.273,1.555-7.605,4.666-9.997c3.109-2.391,7.384-3.587,12.822-3.587c4.803,0,9.7,1.111,14.694,3.333l-3.841,9.681 c-4.337-1.989-8.082-2.984-11.234-2.984c-1.63,0-2.814,0.286-3.555,0.857s-1.111,1.28-1.111,2.127 c0,0.91,0.471,1.725,1.412,2.443c0.941,0.72,3.496,2.031,7.665,3.936c3.999,1.799,6.776,3.729,8.331,5.792 C165.955,244.949,166.732,247.547,166.732,250.678z"></path> <path style="fill:#A4A9AD;" d="M199.964,218.368h14.027l-15.202,46.401H184.03l-15.139-46.401h14.092l6.316,23.519 c1.312,5.227,2.031,8.865,2.158,10.918c0.148-1.481,0.443-3.333,0.889-5.555c0.443-2.222,0.835-3.967,1.174-5.236 L199.964,218.368z"></path> </g> </g> <polygon style="fill:#D1D3D3;" points="219.821,50.525 270.346,50.525 219.821,0 "></polygon> <g> <rect x="134.957" y="80.344" style="fill:#007934;" width="33.274" height="15.418"></rect> <rect x="175.602" y="80.344" style="fill:#007934;" width="33.273" height="15.418"></rect> <rect x="134.957" y="102.661" style="fill:#007934;" width="33.274" height="15.419"></rect> <rect x="175.602" y="102.661" style="fill:#007934;" width="33.273" height="15.419"></rect> <rect x="134.957" y="124.979" style="fill:#007934;" width="33.274" height="15.418"></rect> <rect x="175.602" y="124.979" style="fill:#007934;" width="33.273" height="15.418"></rect> <rect x="94.312" y="124.979" style="fill:#007934;" width="33.273" height="15.418"></rect> <rect x="134.957" y="147.298" style="fill:#007934;" width="33.274" height="15.418"></rect> <rect x="175.602" y="147.298" style="fill:#007934;" width="33.273" height="15.418"></rect> <rect x="94.312" y="147.298" style="fill:#007934;" width="33.273" height="15.418"></rect> <g> <path style="fill:#007934;" d="M127.088,116.162h-10.04l-6.262-10.041l-6.196,10.041h-9.821l10.656-16.435L95.406,84.04h9.624 l5.8,9.932l5.581-9.932h9.909l-10.173,16.369L127.088,116.162z"></path> </g> </g> </g> </g></svg>
						</div>
						<div class="option_button" id="btn_export_xls" style="background-color:unset;border:0px;">
							<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 303.188 303.188" xml:space="preserve" width="64px" height="64px" fill="#000000"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <g> <polygon style="fill:#E8E8E8;" points="219.821,0 32.842,0 32.842,303.188 270.346,303.188 270.346,50.525 "></polygon> <g> <rect x="90.902" y="61.704" style="fill:#007934;" width="119.89" height="119.89"></rect> <rect x="101.303" y="72.105" style="fill:#FFFFFF;" width="99.088" height="99.088"></rect> <polygon style="fill:#007934;" points="192.62,137.423 162.041,137.423 171.073,148.703 162.041,159.982 192.62,159.982 183.588,148.703 "></polygon> <polygon style="fill:#007934;" points="183.875,97.886 154.609,97.886 148.122,105.987 141.635,97.886 112.369,97.886 133.489,124.262 112.369,150.638 183.875,150.638 162.755,124.262 "></polygon> <polygon style="fill:#FFFFFF;" points="124.911,101.616 120.676,101.616 156.944,146.908 161.178,146.908 "></polygon> </g> <polygon style="fill:#007934;" points="227.64,25.263 32.842,25.263 32.842,0 219.821,0 "></polygon> <g> <path style="fill:#A4A9AD;" d="M135.998,273.871H121l-9.353-14.997l-9.254,14.997h-14.67l15.917-24.547l-14.965-23.432h14.374 l8.664,14.834l8.336-14.834h14.801l-15.194,24.449L135.998,273.871z"></path> <path style="fill:#A4A9AD;" d="M141.38,273.871v-47.979h12.963v37.511h18.477v10.469h-31.44V273.871z"></path> <path style="fill:#A4A9AD;" d="M211.872,259.3c0,2.976-0.755,5.617-2.265,7.925c-1.509,2.309-3.687,4.102-6.53,5.382 c-2.845,1.28-6.181,1.92-10.01,1.92c-3.194,0-5.874-0.225-8.04-0.673s-4.42-1.23-6.761-2.346v-11.552 c2.473,1.269,5.043,2.259,7.713,2.97c2.669,0.711,5.119,1.067,7.351,1.067c1.925,0,3.336-0.333,4.233-1.001 c0.897-0.667,1.346-1.526,1.346-2.576c0-0.656-0.181-1.231-0.541-1.723c-0.361-0.492-0.941-0.99-1.739-1.493 c-0.8-0.503-2.927-1.531-6.384-3.085c-3.129-1.422-5.475-2.8-7.039-4.135c-1.564-1.334-2.724-2.866-3.479-4.595 c-0.755-1.728-1.132-3.774-1.132-6.137c0-4.419,1.607-7.865,4.823-10.337c3.217-2.472,7.636-3.708,13.259-3.708 c4.966,0,10.031,1.148,15.194,3.446l-3.971,10.009c-4.485-2.056-8.357-3.085-11.617-3.085c-1.686,0-2.91,0.295-3.676,0.886 c-0.767,0.591-1.148,1.324-1.148,2.199c0,0.941,0.486,1.784,1.46,2.527c0.974,0.744,3.615,2.101,7.926,4.07 c4.135,1.859,7.007,3.856,8.614,5.989C211.068,253.376,211.872,256.063,211.872,259.3z"></path> </g> <polygon style="fill:#D1D3D3;" points="219.821,50.525 270.346,50.525 219.821,0 "></polygon> </g> </g></svg>
						</div>
					</div>
					<div class="opciones_adicionales_btn">Opciones Adicionales</div>
					<div class="opciones_adicionales_view">
						<div class="opciones_adicionales_columns" style="display:flex;">
						</div>
					</div>
				<div class="table_view">
					<table style="width:100%;" id="tabla_lista_reporte">
						<thead>
							<tr>
								<th width="40px">Nº</th>
								<th width="100px">Imagen</th>
								<th>Nombres</th>
								<th width="70px">Usuario</th>
								<th width="70px">DNI</th>
								<th width="70px">Teléfono</th>
								<th width="70px">Correo</th>
								<th width="70px">Dirección</th>
								<th width="70px">Tipo</th>
								<th width="70px">Estado</th>
							</tr>
						</thead>
						<tbody>
							<?php for ($idx=0; $idx<0; $idx++){ ?>
							<tr class="row_data">
								<td align="center"><?php echo($idx+1); ?></td>
								<td align="center"></td>
								<td align="center"></td>
								<td align="center"></td>
								<td align="right"></td>
								<td align="right"></td>
								<td align="right"></td>
								<td align="right"></td>
								<td align="right"></td>
								<td align="right"></td>
							</tr>
							<?php } ?>
						</tbody>
					</table>
				</div>
				<div class="header">
					<span></span>
				</div>
			</div>
			<div id="panel_splash" class="splash" style="flex:1;">
				<span class="splash_title">La Casa De La Seguridad S.A.C.</span>
				<div class="splash_image" style="background-image: url(libreria/imagenes/logo_casa_de_seguridad.png);"></div>
				<span class="splash_subtitle">Reportes</span>
			</div>
		</div>
	</section>
</body>
<script>

var ctrl_datos = {
	buscar: "",
	fecha_min: "",
	fecha_max: "",
	filtro_estados: "Todos",
	filtro_tipos: "Todos",
	filtro_fabricante: "",
	filtro_categoria: "",
	filtro_tienda: "<?php echo($modo_vista["codigo"]); ?>",
	items_pagina: 0,
	items_cantidad: 0,
	filtro_exitencia: 0,
	orden: "ASC",
	recargar: null,
	ver_detalles: null,
}
function fecha_guardar(date) {
	let year = date.getFullYear();
	let month = date.getMonth() + 1;
	let day = date.getDate();
	return year + "-" + (month < 10 ? "0" : "") + month + "-" + (day < 10 ? "0" : "") + day;
  }
function fecha_corta(date){
	let day = date.getDate();
	let month = date.getMonth() + 1;
	let year = date.getFullYear();
	if (day < 10) {
		day = "0" + day;
	}
	if (month < 10) {
		month = "0" + month;
	}
	return day + "-" + month + "-" + year;
}
function fecha_larga(fecha){
	fecha = fecha.split(" ")[0]; 
	let partesFecha = fecha.split("-"); 
	let anio = parseInt(partesFecha[0]);
	let mes = parseInt(partesFecha[1]) - 1;
	let dia = parseInt(partesFecha[2]);
	let fechaObjeto = new Date(anio, mes, dia);
	let nombreMes = fechaObjeto.toLocaleString('es-ES', { month: 'long' });
	let fechaLarga = dia + " de " + nombreMes + " de " + anio;
	return fechaLarga;
}
function cargar_cbo_tiendas(){
	<?php if ($modo_vista["codigo"] == 0){?>
	$.ajax({
		type: "POST",
		dataType: "json",
		url: "control/ctrl_tienda.php",
		data: {
			accion: "lista",
			buscar: "",
			nombres: "",
			orden: "asc",
		},
		success: function (datos) {
			//console.log(datos);
			if (datos.estado == "ok") {
				for(let idx=0; idx<datos.datos.length; idx++){
					let lista = datos.datos[idx];
					$("#filtro_almacen").append('<option value="'+lista.tienda_id+'">'+lista.nombre+'</option>');
				}
			} 
		}
	});
	<?php } ?>
}
function cargar_usuarios(){
	$.ajax({
		type: 'POST',
		dataType: "json",
		url: "control/ctrl_usuario.php",
		data: {
			accion: "lista",
			buscar: "",
			nombres: ctrl_datos.buscar,
			filtro_estados: ctrl_datos.filtro_estados,
			filtro_tipos: ctrl_datos.filtro_tipos,
			orden: ctrl_datos.orden,
			items_pagina: ctrl_datos.items_pagina,
			items_cantidad: ctrl_datos.items_cantidad,
		},
		success: function (datos) {
			//console.log(datos);
			$("#tabla_lista_reporte .row_data").remove();
			if (datos.estado == "ok") {
				for(let idx=0; idx<datos.datos.length; idx++){
					let indice = $("#tabla_lista_reporte .row_data").length;
					let lista = datos.datos[idx];
					let img = '<img src="libreria/imagenes/sin_imagen.png" style="max-width:50px;max-height:50px;" />';
					if (lista.foto != ""){
						img = '<img src="libreria/imagenes/usuario/'+lista.foto+'" style="max-width:50px;max-height:50px;" />';
					}
					let html = '<tr class="row_data">';
					html += '<td class="v_column_0" align="center">'+(indice+1)+'</td>';
					html += '<td class="v_column_1" align="center">'+img+'</td>';
					html += '<td class="v_column_3" align="left">'+lista.usuario+'</td>';
					html += '<td class="v_column_2" align="left">'+lista.nombres+'</td>';
					html += '<td class="v_column_4" align="left">'+lista.documento_tipo+'</td>';
					html += '<td class="v_column_5" align="left">'+lista.documento_numero+'</td>';
					html += '<td class="v_column_6" align="left">'+lista.telefono+'</td>';
					html += '<td class="v_column_7" align="left">'+lista.correo+'</td>';
					html += '<td class="v_column_8" align="left">'+lista.direccion+'</td>';
					html += '<td class="v_column_9" align="left">'+lista.tipo+'</td>';
					html += '<td class="v_column_10" align="left">'+lista.estado_actividad+'</td>';
					html += '</tr>';
					$("#tabla_lista_reporte").append(html);
				}
			} else if (datos.estado == "error") {
				open_dialog_alert(datos.mensaje);
			} else {
				open_dialog_alert("ocurrió un error inesperado.");
			}
			vista_columnas_reporte();
			close_loading();
		}, error: function(){
			vista_columnas_reporte();
			close_loading();
		}
	});
}
function cargar_tiendas(){
	$.ajax({
		type: 'POST',
		dataType: "json",
		url: "control/ctrl_tienda.php",
		data: {
			accion: "lista",
			buscar: ctrl_datos.buscar,
			nombres: ctrl_datos.buscar,
			orden: ctrl_datos.orden,
			items_pagina: ctrl_datos.items_pagina,
			items_cantidad: ctrl_datos.items_cantidad,
		},
		success: function (datos) {
			//console.log(datos);
			$("#tabla_lista_reporte .row_data").remove();
			if (datos.estado == "ok") {
				for(let idx=0; idx<datos.datos.length; idx++){
					let indice = $("#tabla_lista_reporte .row_data").length;
					let lista = datos.datos[idx];
					let img = '<img src="libreria/imagenes/sin_imagen.png" style="max-width:50px;max-height:50px;" />';
					if (lista.imagen != ""){
						img = '<img src="libreria/imagenes/tiendas/'+lista.imagen+'" style="max-width:50px;max-height:50px;" />';
					}
					let html = '<tr class="row_data">';
					html += '<td class="v_column_0" align="center">'+(indice+1)+'</td>';
					html += '<td class="v_column_1" align="center">'+img+'</td>';
					html += '<td class="v_column_2" align="left">'+lista.nombre+'</td>';
					html += '<td class="v_column_3" align="left">'+lista.ubicacion+'</td>';
					html += '<td class="v_column_4" align="left">'+lista.telefono+'</td>';
					html += '</tr>';
					$("#tabla_lista_reporte").append(html);
				}
			} else if (datos.estado == "error") {
				open_dialog_alert(datos.mensaje);
			} else {
				open_dialog_alert("ocurrió un error inesperado.");
			}
			vista_columnas_reporte();
			close_loading();
		}, error: function(){
			vista_columnas_reporte();
			close_loading();
		}
	});
}
function cargar_compras(){
	$.ajax({
		type: 'POST',
		dataType: "json",
		url: "control/ctrl_compra.php",
		data: {
			accion: "lista",
			buscar: "", //ctrl_datos.buscar,
			filtro_tienda: ctrl_datos.filtro_tienda,
			fecha_min: ctrl_datos.fecha_min,
			fecha_max: ctrl_datos.fecha_max,
			orden: ctrl_datos.orden,
			items_pagina: ctrl_datos.items_pagina,
			items_cantidad: ctrl_datos.items_cantidad,
		},
		success: function (datos) {
			//console.log(datos);
			$("#tabla_lista_reporte .row_data").remove();
			if (datos.estado == "ok") {
				for(let idx=0; idx<datos.datos.length; idx++){
					let indice = $("#tabla_lista_reporte .row_data").length;
					let lista = datos.datos[idx];
					let html = '<tr class="row_data">';
					html += '<td class="v_column_0" align="center">'+(indice+1)+'</td>';
					html += '<td class="v_column_1" align="left">'+lista.responsable_nombre+'</td>';
					html += '<td class="v_column_2" align="left">'+lista.proveedor_nombre+'</td>';
					if (lista.comprobante == "Sin Documento"){
						html += '<td class="v_column_3" align="left">'+lista.comprobante+'</td>';
					} else {
						html += '<td class="v_column_3" align="left">'+lista.comprobante+' '+lista.numero+'</td>';
					}
					html += '<td class="v_column_4" align="left">'+fecha_larga(lista.fecha)+'</td>';
					html += '<td class="v_column_5" align="right">$ '+lista.costo_total.toFixed(2)+'</td>';
					html += '<td class="v_column_6" align="left">'+lista.estado_registro+'</td>';
					html += '<td class="v_column_7" align="left">'+lista.operacion+'</td>';
					html += '<td class="v_column_8" align="center"><div class="btn_preview" data-codigo="'+lista.compra_id+'" style="width:24px;height:24px;cursor:pointer;"><svg width="24px" height="24px" 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="M21 6V3.50519C21 2.92196 20.3109 2.61251 19.875 2.99999C19.2334 3.57029 18.2666 3.57029 17.625 2.99999C16.9834 2.42969 16.0166 2.42969 15.375 2.99999C14.7334 3.57029 13.7666 3.57029 13.125 2.99999C12.4834 2.42969 11.5166 2.42969 10.875 2.99999C10.2334 3.57029 9.26659 3.57029 8.625 2.99999C7.98341 2.42969 7.01659 2.42969 6.375 2.99999C5.73341 3.57029 4.76659 3.57029 4.125 2.99999C3.68909 2.61251 3 2.92196 3 3.50519V14M21 10V20.495C21 21.0782 20.3109 21.3876 19.875 21.0002C19.2334 20.4299 18.2666 20.4299 17.625 21.0002C16.9834 21.5705 16.0166 21.5705 15.375 21.0002C14.7334 20.4299 13.7666 20.4299 13.125 21.0002C12.4834 21.5705 11.5166 21.5705 10.875 21.0002C10.2334 20.4299 9.26659 20.4299 8.625 21.0002C7.98341 21.5705 7.01659 21.5705 6.375 21.0002C5.73341 20.4299 4.76659 20.4299 4.125 21.0002C3.68909 21.3876 3 21.0782 3 20.495V18" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> <path d="M7.5 15.5H11.5M16.5 15.5H14.5" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> <path d="M16.5 12H12.5M7.5 12H9.5" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> <path d="M7.5 8.5H16.5" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> </g></svg></div></td>';
					html += '</tr>';
					$("#tabla_lista_reporte").append(html);
				}
			} else if (datos.estado == "error") {
				open_dialog_alert(datos.mensaje);
			} else {
				open_dialog_alert("ocurrió un error inesperado.");
			}
			vista_columnas_reporte();
			close_loading();
		}, error: function(){
			vista_columnas_reporte();
			close_loading();
		}
	});
}
function cargar_ventas(){
	$.ajax({
		type: 'POST',
		dataType: "json",
		url: "control/ctrl_venta.php",
		data: {
			accion: "lista_fecha_estado",
			buscar: "", //ctrl_datos.buscar,
			filtro_tienda: ctrl_datos.filtro_tienda,
			fecha_min: ctrl_datos.fecha_min,
			fecha_max: ctrl_datos.fecha_max,
			orden: ctrl_datos.orden,
			items_pagina: ctrl_datos.items_pagina,
			items_cantidad: ctrl_datos.items_cantidad,
			filtro_estado: "Completado",
		},
		success: function (datos) {
			//console.log(datos);
			$("#tabla_lista_reporte .row_data").remove();
			if (datos.estado == "ok") {
				for(let idx=0; idx<datos.datos.length; idx++){
					let indice = $("#tabla_lista_reporte .row_data").length;
					let lista = datos.datos[idx];
					let observaciones = JSON.parse(lista.observaciones);
					let cambio = parseFloat(observaciones.cambio);
					let comision_tarjeta = 0.0;
					if (lista.tipo_pago == "Efectivo"){
					} else {
						comision_tarjeta = parseFloat(lista.total)*0.05;
					}
					let html = '<tr class="row_data">';
					html += '<td class="v_column_0" align="center">'+(indice+1)+'</td>';
					html += '<td class="v_column_1" align="left">'+lista.comprobante+'</td>';
					html += '<td class="v_column_2" align="left">'+lista.serie+'</td>';
					html += '<td class="v_column_3" align="left">'+lista.tipo_pago+'</td>';
					html += '<td class="v_column_4" align="left">s/. '+parseFloat(lista.subtotal).toFixed(2)+'</td>';
					html += '<td class="v_column_5" align="left">s/. '+parseFloat(lista.igv).toFixed(2)+'</td>';
					html += '<td class="v_column_6" align="left">s/. '+comision_tarjeta.toFixed(2)+'</td>';
					html += '<td class="v_column_7" align="left">s/. '+(parseFloat(lista.total)+comision_tarjeta).toFixed(2)+'</td>';
					html += '<td class="v_column_8" align="left">'+fecha_larga(lista.fecha)+'</td>';
					html += '<td class="v_column_9" align="left">'+lista.hora+'</td>';
					html += '<td class="v_column_10" align="left">'+lista.cliente_nombre+'</td>';
					html += '<td class="v_column_11" align="left">'+lista.cliente_documento_tipo+" "+lista.cliente_documento_numero+'</td>';
					html += '<td class="v_column_12" align="left">'+lista.vendedor_nombres+'</td>';
					html += '<td class="v_column_13" align="left">'+lista.tienda_nombre+'</td>';
					html += '<td class="v_column_14" align="center"><div class="btn_preview" data-documento="'+lista.comprobante+'" data-codigo="'+lista.venta_id+'" style="width:24px;height:24px;cursor:pointer;"><svg width="24px" height="24px" 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="M21 6V3.50519C21 2.92196 20.3109 2.61251 19.875 2.99999C19.2334 3.57029 18.2666 3.57029 17.625 2.99999C16.9834 2.42969 16.0166 2.42969 15.375 2.99999C14.7334 3.57029 13.7666 3.57029 13.125 2.99999C12.4834 2.42969 11.5166 2.42969 10.875 2.99999C10.2334 3.57029 9.26659 3.57029 8.625 2.99999C7.98341 2.42969 7.01659 2.42969 6.375 2.99999C5.73341 3.57029 4.76659 3.57029 4.125 2.99999C3.68909 2.61251 3 2.92196 3 3.50519V14M21 10V20.495C21 21.0782 20.3109 21.3876 19.875 21.0002C19.2334 20.4299 18.2666 20.4299 17.625 21.0002C16.9834 21.5705 16.0166 21.5705 15.375 21.0002C14.7334 20.4299 13.7666 20.4299 13.125 21.0002C12.4834 21.5705 11.5166 21.5705 10.875 21.0002C10.2334 20.4299 9.26659 20.4299 8.625 21.0002C7.98341 21.5705 7.01659 21.5705 6.375 21.0002C5.73341 20.4299 4.76659 20.4299 4.125 21.0002C3.68909 21.3876 3 21.0782 3 20.495V18" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> <path d="M7.5 15.5H11.5M16.5 15.5H14.5" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> <path d="M16.5 12H12.5M7.5 12H9.5" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> <path d="M7.5 8.5H16.5" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> </g></svg></div></td>';
					html += '</tr>';
					$("#tabla_lista_reporte").append(html);
				}
			} else if (datos.estado == "error") {
				open_dialog_alert(datos.mensaje);
			} else {
				open_dialog_alert("ocurrió un error inesperado.");
			}
			vista_columnas_reporte();
			close_loading();
		}, error: function(){
			vista_columnas_reporte();
			close_loading();
		}
	});
}
function cargar_almacen(){
    let url = "control/ctrl_almacen_general.php";
	if (ctrl_datos.filtro_tienda != "0"){
		url = "control/ctrl_almacen_tienda.php";
	}
	$.ajax({
		type: 'POST',
		dataType: "json",
		url: url,
		data: {
			accion: "lista",
			buscar: ctrl_datos.buscar,
			filtro_almacen: ctrl_datos.filtro_tienda,
			filtro_tienda: ctrl_datos.filtro_tienda,
			filtro_fabricante: ctrl_datos.filtro_fabricante,
			filtro_categoria: ctrl_datos.filtro_categoria,
			filtro_exitencia: $("#filtro_existencias").val(),
			items_pagina: ctrl_datos.items_pagina,
			items_cantidad: ctrl_datos.items_cantidad,
			orden: ctrl_datos.orden,
			agrupar: true
		},
		success: function (datos) {
			//console.log(datos);
			$("#tabla_lista_reporte .row_data").remove();
			if (datos.estado == "ok") {
				for(let idx=0; idx<datos.datos.length; idx++){
					let row = datos.datos[idx];
					if(row.producto_id != null && row.producto_id != undefined){
						let childs = $("#tabla_lista_reporte .row_data");
						let cambio = parseFloat(row.moneda_cambio);
						let p_ventas = row.precio_venta.split(",");
						let p_compras = row.precio_compra.split(",");
						let imagenes = row.producto_imagen.split(",");
						let html = '';
						if (row.almacen_tienda_id != undefined){
							html += '<tr class="row_data" data-producto="'+row.producto_id+'" data-almacen="'+row.almacen_tienda_id+'" data-origen="almacen_tienda">';
						} else {
							html += '<tr class="row_data" data-producto="'+row.producto_id+'" data-almacen="'+row.almacen_general_id+'" data-origen="almacen_general">';
						}
						let txt_ventas = [];
						for(let idy=0; idy<p_ventas.length; idy++){
							txt_ventas.push("s/. "+(parseFloat(p_ventas[idy])).toFixed(2));
						}
						let txt_compras = [];
						for(let idy=0; idy<p_compras.length; idy++){
							txt_compras.push("s/. "+(parseFloat(p_compras[idy])).toFixed(2));
						}
						html += '<td class="v_column_0" align="center">'+(childs.length+1)+'</td>';
						if (imagenes[0].length <= 0){
							html += '<td class="v_column_1" align="center"><img src="libreria/imagenes/sin_imagen.png" height="50"></td>';
						} else {
							html += '<td class="v_column_1" align="center"><img src="libreria/imagenes/productos/'+imagenes[0]+'" height="50"></td>';
						}
						html += '<td class="v_column_2" align="left">'+row.producto_codigo+'</td>';
						html += '<td class="v_column_3" align="left">'+row.producto_nombre+'</td>';
						html += '<td class="v_column_4" align="left">'+row.nombre_alternativo+'</td>';
						html += '<td class="v_column_5" align="left">'+row.producto_fabricante+'</td>';
						html += '<td class="v_column_6" align="left">'+row.producto_modelo+'</td>';
						html += '<td class="v_column_7" align="left">'+row.producto_serie+'</td>';
						html += '<td class="v_column_8" align="right" width="70" class="td_cantidad">'+row.producto_stock_minimo+'</td>';
						html += '<td class="v_column_9" align="right" width="70" class="td_cantidad">'+row.unidades+'</td>';
						html += '<td class="v_column_10" align="right" width="70" class="td_precio_compra">'+txt_compras.join('<br />')+'</td>';
						html += '<td class="v_column_11" align="right" width="70" class="td_precio_venta">'+txt_ventas.join('<br />')+'</td>';
						html += '</tr> \
						';
						$("#tabla_lista_reporte").append(html);
					}
				}
			}
			vista_columnas_reporte();
			close_loading();
		}, error: function(){
			vista_columnas_reporte();
			close_loading();
		}
	});
}
function cargar_transferencias_salientes(){
	$.ajax({
		type: 'POST',
		dataType: "json",
		url: "control/ctrl_movimiento.php",
		data: {
			accion: "transferencias",
			buscar: "", //ctrl_datos.buscar,
			filtro_tienda: ctrl_datos.filtro_tienda,
			fecha_min: ctrl_datos.fecha_min,
			fecha_max: ctrl_datos.fecha_max,
			orden: ctrl_datos.orden,
			items_pagina: ctrl_datos.items_pagina,
			items_cantidad: ctrl_datos.items_cantidad,
		},
		success: function (datos) {
			//console.log(datos);
			$("#tabla_lista_reporte .row_data").remove();
			if (datos.estado == "ok") {
				for(let idx=0; idx<datos.datos.length; idx++){
					let indice = $("#tabla_lista_reporte .row_data").length;
					let lista = datos.datos[idx];
					let html = '<tr class="row_data">';
					html += '<td class="v_column_0" align="center">'+(indice+1)+'</td>';
					if (lista.origen_id == 0){
						html += '<td class="v_column_1" align="left">Almacen General</td>';
					} else {
						html += '<td class="v_column_1" align="left">'+lista.origen_nombre+'</td>';
					}
					if (lista.destino_id == 0){
						html += '<td class="v_column_2" align="left">Almacen General</td>';
					} else {
						html += '<td class="v_column_2" align="left">'+lista.destino_nombre+'</td>';
					}
					html += '<td class="v_column_3" align="left">'+fecha_larga(lista.fecha)+'</td>';
					html += '<td class="v_column_4" align="left">'+lista.hora+'</td>';
					html += '<td class="v_column_5" align="left">'+lista.tipo_movimiento+'</td>';
					html += '<td class="v_column_6" align="left">'+lista.estado_registro+'</td>';
					html += '<td class="v_column_6" align="left">'+lista.estado_proceso+'</td>';
					html += '<td class="v_column_7" align="center"><div class="btn_preview" data-codigo="'+lista.movimiento_id+'" style="width:24px;height:24px;cursor:pointer;"><svg width="24px" height="24px" 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="M21 6V3.50519C21 2.92196 20.3109 2.61251 19.875 2.99999C19.2334 3.57029 18.2666 3.57029 17.625 2.99999C16.9834 2.42969 16.0166 2.42969 15.375 2.99999C14.7334 3.57029 13.7666 3.57029 13.125 2.99999C12.4834 2.42969 11.5166 2.42969 10.875 2.99999C10.2334 3.57029 9.26659 3.57029 8.625 2.99999C7.98341 2.42969 7.01659 2.42969 6.375 2.99999C5.73341 3.57029 4.76659 3.57029 4.125 2.99999C3.68909 2.61251 3 2.92196 3 3.50519V14M21 10V20.495C21 21.0782 20.3109 21.3876 19.875 21.0002C19.2334 20.4299 18.2666 20.4299 17.625 21.0002C16.9834 21.5705 16.0166 21.5705 15.375 21.0002C14.7334 20.4299 13.7666 20.4299 13.125 21.0002C12.4834 21.5705 11.5166 21.5705 10.875 21.0002C10.2334 20.4299 9.26659 20.4299 8.625 21.0002C7.98341 21.5705 7.01659 21.5705 6.375 21.0002C5.73341 20.4299 4.76659 20.4299 4.125 21.0002C3.68909 21.3876 3 21.0782 3 20.495V18" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> <path d="M7.5 15.5H11.5M16.5 15.5H14.5" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> <path d="M16.5 12H12.5M7.5 12H9.5" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> <path d="M7.5 8.5H16.5" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> </g></svg></div></td>';
					html += '</tr>';
					//if (lista.destino_id != 0){
						$("#tabla_lista_reporte").append(html);
					//}
				}
			} else if (datos.estado == "error") {
				open_dialog_alert(datos.mensaje);
			} else {
				open_dialog_alert("ocurrió un error inesperado.");
			}
			vista_columnas_reporte();
			close_loading();
		}, error: function(){
			vista_columnas_reporte();
			close_loading();
		}
	});
}
function cargar_transferencias_ingresantes(){
	$.ajax({
		type: 'POST',
		dataType: "json",
		url: "control/ctrl_movimiento.php",
		data: {
			accion: "pedidos_recibidos",
			buscar: "", //ctrl_datos.buscar,
			filtro_tienda: ctrl_datos.filtro_tienda,
			fecha_min: ctrl_datos.fecha_min,
			fecha_max: ctrl_datos.fecha_max,
			orden: ctrl_datos.orden,
			items_pagina: ctrl_datos.items_pagina,
			items_cantidad: ctrl_datos.items_cantidad,
			filtro_tipo: "Transferencia",
		},
		success: function (datos) {
			//console.log(datos);
			$("#tabla_lista_reporte .row_data").remove();
			if (datos.estado == "ok") {
				for(let idx=0; idx<datos.datos.length; idx++){
					let indice = $("#tabla_lista_reporte .row_data").length;
					let lista = datos.datos[idx];
					let html = '<tr class="row_data">';
					html += '<td class="v_column_0" align="center">'+(indice+1)+'</td>';
					if (lista.origen_id == 0){
						html += '<td class="v_column_1" align="left">Almacen General</td>';
					} else {
						html += '<td class="v_column_1" align="left">'+lista.origen_nombre+'</td>';
					}
					if (lista.destino_id == 0){
						html += '<td class="v_column_2" align="left">Almacen General</td>';
					} else {
						html += '<td class="v_column_2" align="left">'+lista.destino_nombre+'</td>';
					}
					html += '<td class="v_column_3" align="left">'+fecha_larga(lista.fecha)+'</td>';
					html += '<td class="v_column_4" align="left">'+lista.hora+'</td>';
					html += '<td class="v_column_5" align="left">'+lista.tipo_movimiento+'</td>';
					html += '<td class="v_column_6" align="left">'+lista.estado_registro+'</td>';
					html += '<td class="v_column_7" align="left">'+lista.estado_proceso+'</td>';
					html += '<td class="v_column_8" align="center"><div class="btn_preview" data-codigo="'+lista.movimiento_id+'" style="width:24px;height:24px;cursor:pointer;"><svg width="24px" height="24px" 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="M21 6V3.50519C21 2.92196 20.3109 2.61251 19.875 2.99999C19.2334 3.57029 18.2666 3.57029 17.625 2.99999C16.9834 2.42969 16.0166 2.42969 15.375 2.99999C14.7334 3.57029 13.7666 3.57029 13.125 2.99999C12.4834 2.42969 11.5166 2.42969 10.875 2.99999C10.2334 3.57029 9.26659 3.57029 8.625 2.99999C7.98341 2.42969 7.01659 2.42969 6.375 2.99999C5.73341 3.57029 4.76659 3.57029 4.125 2.99999C3.68909 2.61251 3 2.92196 3 3.50519V14M21 10V20.495C21 21.0782 20.3109 21.3876 19.875 21.0002C19.2334 20.4299 18.2666 20.4299 17.625 21.0002C16.9834 21.5705 16.0166 21.5705 15.375 21.0002C14.7334 20.4299 13.7666 20.4299 13.125 21.0002C12.4834 21.5705 11.5166 21.5705 10.875 21.0002C10.2334 20.4299 9.26659 20.4299 8.625 21.0002C7.98341 21.5705 7.01659 21.5705 6.375 21.0002C5.73341 20.4299 4.76659 20.4299 4.125 21.0002C3.68909 21.3876 3 21.0782 3 20.495V18" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> <path d="M7.5 15.5H11.5M16.5 15.5H14.5" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> <path d="M16.5 12H12.5M7.5 12H9.5" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> <path d="M7.5 8.5H16.5" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> </g></svg></div></td>';
					html += '</tr>';
					$("#tabla_lista_reporte").append(html);
				}
			} else if (datos.estado == "error") {
				open_dialog_alert(datos.mensaje);
			} else {
				open_dialog_alert("ocurrió un error inesperado.");
			}
			vista_columnas_reporte();
			close_loading();
		}, error: function(){
			vista_columnas_reporte();
			close_loading();
		}
	});
}
function cargar_productos_salida(){
	$.ajax({
		type: 'POST',
		dataType: "json",
		url: "control/ctrl_control_movimiento.php",
		data: {
			accion: "lista_salida",
			buscar: ctrl_datos.buscar,
			filtro_tienda: ctrl_datos.filtro_tienda,
			fecha_min: ctrl_datos.fecha_min,
			fecha_max: ctrl_datos.fecha_max,
			orden: ctrl_datos.orden,
			items_pagina: ctrl_datos.items_pagina,
			items_cantidad: ctrl_datos.items_cantidad,
			filtro_tipo: "Transferencia",
		},
		success: function (datos) {
			//console.log(datos);
			$("#tabla_lista_reporte .row_data").remove();
			if (datos.estado == "ok") {
				for(let idx=0; idx<datos.datos.length; idx++){
					let indice = $("#tabla_lista_reporte .row_data").length;
					let lista = datos.datos[idx];
					let origen_nombre = "Desconocido";
					if (lista.origen_id == 0){
						origen_nombre = "Almacen General";
					} else if (lista.origen_id > 0){
						origen_nombre = lista.origen_nombre;
					} else if (lista.origen_id == -1){
						origen_nombre = "";
					}
					let tienda_nombre = "Desconocido";
					if (lista.tienda_id == 0){
						tienda_nombre = "Almacen General";
					} else if (lista.tienda_id > 0){
						tienda_nombre = lista.tienda_nombre;
					} else if (lista.tienda_id == -1){
						tienda_nombre = "";
					}
					let fecha = lista.movimiento_fecha.split(" ");
					if (fecha.length > 1){
						fecha = fecha[0];
					} else {
						fecha = lista.movimiento_fecha;
					}
					let html = '<tr class="row_data">';
					html += '<td class="v_column_0" align="center">'+(indice+1)+'</td>';
					if (lista.producto_imagen.length <= 0){
						html += '<td class="v_column_1" align="center"><img src="libreria/imagenes/sin_imagen.png" height="50"></td>';
					} else {
						html += '<td class="v_column_1" align="center"><img src="libreria/imagenes/productos/'+imagenes[0]+'" height="50"></td>';
					}
					html += '<td class="v_column_2" align="left">'+lista.producto_codigo+'</td>';
					html += '<td class="v_column_3" align="left">'+lista.producto_nombre+'</td>';
					html += '<td class="v_column_4" align="left">'+lista.producto_fabricante+'</td>';
					html += '<td class="v_column_5" align="left">'+lista.producto_modelo+'</td>';
					html += '<td class="v_column_6" align="left">'+lista.producto_serie+'</td>';
					html += '<td class="v_column_7" align="center">'+lista.unidades+'</td>';
					html += '<td class="v_column_8" align="center">'+lista.tipo_movimiento+'</td>';
					html += '<td class="v_column_9" align="center">'+fecha+'</td>';
					html += '<td class="v_column_10" align="center">'+tienda_nombre+'</td>';
					html += '<td class="v_column_11" align="center">'+origen_nombre+'</td>';
					html += '</tr>';
					$("#tabla_lista_reporte").append(html);
				}
			} else if (datos.estado == "error") {
				open_dialog_alert(datos.mensaje);
			} else {
				open_dialog_alert("ocurrió un error inesperado.");
			}
			vista_columnas_reporte();
			close_loading();
		}, error: function(){
			vista_columnas_reporte();
			close_loading();
		}
	});
}
function cargar_productos_ingreso(){
	$.ajax({
		type: 'POST',
		dataType: "json",
		url: "control/ctrl_control_movimiento.php",
		data: {
			accion: "lista_ingreso",
			buscar: ctrl_datos.buscar,
			filtro_tienda: ctrl_datos.filtro_tienda,
			fecha_min: ctrl_datos.fecha_min,
			fecha_max: ctrl_datos.fecha_max,
			orden: ctrl_datos.orden,
			items_pagina: ctrl_datos.items_pagina,
			items_cantidad: ctrl_datos.items_cantidad,
			filtro_tipo: "Transferencia",
		},
		success: function (datos) {
			//console.log(datos);
			//datos = JSON.parse(datos);
			$("#tabla_lista_reporte .row_data").remove();
			if (datos.estado == "ok") {
				for(let idx=0; idx<datos.datos.length; idx++){
					let indice = $("#tabla_lista_reporte .row_data").length;
					let lista = datos.datos[idx];
					let origen_nombre = "Desconocido";
					if (lista.origen_id == 0){
						origen_nombre = "Almacen General";
					} else if (lista.origen_id > 0){
						origen_nombre = lista.origen_nombre;
					} else if (lista.origen_id == -1){
						origen_nombre = "";
					}
					let tienda_nombre = "Desconocido";
					if (lista.tienda_id == 0){
						tienda_nombre = "Almacen General";
					} else if (lista.tienda_id > 0){
						tienda_nombre = lista.tienda_nombre;
					} else if (lista.tienda_id == -1){
						tienda_nombre = "";
					}
					let fecha = lista.movimiento_fecha.split(" ");
					if (fecha.length > 1){
						fecha = fecha[0];
					} else {
						fecha = lista.movimiento_fecha;
					}
					let html = '<tr class="row_data">';
					html += '<td class="v_column_0" align="center">'+(indice+1)+'</td>';
					if (lista.producto_imagen.length <= 0){
						html += '<td class="v_column_1" align="center"><img src="libreria/imagenes/sin_imagen.png" height="50"></td>';
					} else {
						html += '<td class="v_column_1" align="center"><img src="libreria/imagenes/productos/'+imagenes[0]+'" height="50"></td>';
					}
					html += '<td class="v_column_2" align="left">'+lista.producto_codigo+'</td>';
					html += '<td class="v_column_3" align="left">'+lista.producto_nombre+'</td>';
					html += '<td class="v_column_4" align="left">'+lista.producto_fabricante+'</td>';
					html += '<td class="v_column_5" align="left">'+lista.producto_modelo+'</td>';
					html += '<td class="v_column_6" align="left">'+lista.producto_serie+'</td>';
					html += '<td class="v_column_7" align="center">'+lista.unidades+'</td>';
					html += '<td class="v_column_8" align="center">'+lista.tipo_movimiento+'</td>';
					html += '<td class="v_column_9" align="center">'+fecha+'</td>';
					html += '<td class="v_column_10" align="center">'+tienda_nombre+'</td>';
					html += '<td class="v_column_11" align="center">'+origen_nombre+'</td>';
					html += '</tr>';
					$("#tabla_lista_reporte").append(html);
				}
			} else if (datos.estado == "error") {
				open_dialog_alert(datos.mensaje);
			} else {
				open_dialog_alert("ocurrió un error inesperado.");
			}
			vista_columnas_reporte();
			close_loading();
		}, error: function(){
			vista_columnas_reporte();
			close_loading();
		}
	});
}
function cargar_venta_productos(){
	$.ajax({
		type: 'POST',
		dataType: "json",
		url: "control/ctrl_venta_producto.php",
		data: {
			accion: "lista_productos",
			buscar: ctrl_datos.buscar,
			filtro_tienda: ctrl_datos.filtro_tienda,
			fecha_min: ctrl_datos.fecha_min,
			fecha_max: ctrl_datos.fecha_max,
			orden: ctrl_datos.orden,
			items_pagina: ctrl_datos.items_pagina,
			items_cantidad: ctrl_datos.items_cantidad,
			filtro_tipo: "Transferencia",
		},
		success: function (datos) {
			//console.log(datos);
			$("#tabla_lista_reporte .row_data").remove();
			if (datos.estado == "ok") {
				let suma_venta = 0.0;
				for(let idx=0; idx<datos.datos.length; idx++){
					let indice = $("#tabla_lista_reporte .row_data").length;
					let lista = datos.datos[idx];
					suma_venta += parseFloat(lista.precio_subtotal);
					let html = '<tr class="row_data">';
					html += '<td class="v_column_0" align="center">'+(indice+1)+'</td>';
					if (lista.producto_imagen.length <= 0){
						html += '<td class="v_column_1" align="center"><img src="libreria/imagenes/sin_imagen.png" height="50"></td>';
					} else {
						html += '<td class="v_column_1" align="center"><img src="libreria/imagenes/productos/'+imagenes[0]+'" height="50"></td>';
					}
					html += '<td class="v_column_2" align="left">'+lista.producto_codigo+'</td>';
					html += '<td class="v_column_3" align="left">'+lista.producto_nombre+'</td>';
					html += '<td class="v_column_4" align="left">'+lista.fabricante+'</td>';
					html += '<td class="v_column_5" align="left">'+lista.modelo+'</td>';
					html += '<td class="v_column_6" align="left">'+lista.serie+'</td>';
					html += '<td class="v_column_7" align="center">'+lista.unidades+'</td>';
					html += '<td class="v_column_8" align="center">s/. '+lista.precio_subtotal.toFixed(2)+'</td>';
					html += '<td class="v_column_9" align="center">'+lista.tienda_nombre+'</td>';
					html += '</tr>';
					$("#tabla_lista_reporte").append(html);
				}
				if (datos.datos.length > 0){
					let html = '<tr class="row_data">';
					html += '<td class="v_column_0"></td>';
					html += '<td class="v_column_1"></td>';
					html += '<td class="v_column_2" align="left"></td>';
					html += '<td class="v_column_3" align="left"></td>';
					html += '<td class="v_column_4" align="left"></td>';
					html += '<td class="v_column_5" align="left"></td>';
					html += '<td class="v_column_6" align="left"></td>';
					html += '<td class="v_column_7" align="center"></td>';
					html += '<td class="v_column_8" align="center" style="border: 2px solid #000070;font-weight:bold;">TOTAL s/. '+suma_venta.toFixed(2)+'</td>';
					html += '<td class="v_column_9" align="center"></td>';
					html += '</tr>';
					$("#tabla_lista_reporte").append(html);
				}
			} else if (datos.estado == "error") {
				open_dialog_alert(datos.mensaje);
			} else {
				open_dialog_alert("ocurrió un error inesperado.");
			}
			vista_columnas_reporte();
			close_loading();
		}, error: function(){
			vista_columnas_reporte();
			close_loading();
		}
	});
}
function ver_detalles_compra(codigo){
		open_loading();
		$.ajax({
			type: 'POST',
			dataType: "json",
			url: "control/ctrl_documento.php",
			data: {
				accion: "doc_compra",
				codigo: codigo,
			},
			success: function (datos) {
				//console.log(datos);
				//datos = JSON.parse(datos);
				if (datos.estado == "ok") {
					cargar_documentos_vista(datos.vista_ticket, datos.vista_documento, datos.width_ticket, datos.width_documento);
					mostrar_dialogo_imprimir();
				} else if (datos.estado == "error") {
					open_dialog_alert(datos.mensaje);
				} else {
					open_dialog_alert("ocurrió un error inesperado.");
				}
				close_loading();
			},
			error: function(){
				close_loading();
			}
		});
}
function ver_detalles_venta(codigo){
	let btn = $("#tabla_lista_reporte .btn_preview[data-codigo='"+codigo+"']");
	let doc = btn.attr("data-documento");
	let accion = "";
	if (doc == "Nota de Devolución"){
		accion = "doc_devolucion";
	} else if (doc == "Nota de Venta"){
		accion = "doc_venta";
	} else {
		return;
	}
		open_loading();
		$.ajax({
			type: 'POST',
			dataType: "json",
			url: "control/ctrl_documento.php",
			data: {
				accion: accion,
				codigo: codigo,
			},
			success: function (datos) {
				//console.log(datos);
				if (datos.estado == "ok") {
					cargar_documentos_vista(datos.vista_ticket, datos.vista_documento, datos.width_ticket, datos.width_documento);
					mostrar_dialogo_imprimir();
				} else if (datos.estado == "error") {
					open_dialog_alert(datos.mensaje);
				} else {
					open_dialog_alert("ocurrió un error inesperado.");
				}
				close_loading();
			},
			error: function(){
				close_loading();
			}
		});
}
function ver_detalles_transferencia_salientes(codigo){
		open_loading();
		$.ajax({
			type: 'POST',
			dataType: "json",
			url: "control/ctrl_documento.php",
			data: {
				accion: "doc_transferencia",
				codigo: codigo,
			},
			success: function (datos) {
				//console.log(datos);
				if (datos.estado == "ok") {
					cargar_documentos_vista(datos.vista_ticket, datos.vista_documento, datos.width_ticket, datos.width_documento);
					mostrar_dialogo_imprimir();
				} else if (datos.estado == "error") {
					open_dialog_alert(datos.mensaje);
				} else {
					open_dialog_alert("ocurrió un error inesperado.");
				}
				close_loading();
			}
		});
}
function ver_detalles_transferencia_ingresantes(codigo){
		open_loading();
		$.ajax({
			type: 'POST',
			dataType: "json",
			url: "control/ctrl_documento.php",
			data: {
				accion: "doc_transferencia",
				codigo: codigo,
			},
			success: function (datos) {
				//console.log(datos);
				if (datos.estado == "ok") {
					cargar_documentos_vista(datos.vista_ticket, datos.vista_documento, datos.width_ticket, datos.width_documento);
					mostrar_dialogo_imprimir();
				} else if (datos.estado == "error") {
					open_dialog_alert(datos.mensaje);
				} else {
					open_dialog_alert("ocurrió un error inesperado.");
				}
				close_loading();
			}
		});
}
var galeria = [
	<?php if ($modo_vista["codigo"] == 0){?>
	{
		menu: "Reporte Usuario",
		tabla: [
			{nombre: "Imagen", ancho:100, columna: "v_column_1", label: "", visible: true}, 
			{nombre: "Usuario", ancho: "auto", columna: "v_column_2", label: "Ver usuario", visible: true}, 
			{nombre: "Nombres", ancho: "auto", columna: "v_column_3", label: "", visible: true}, 
			{nombre: "Documento de identidad", ancho:70, columna: "v_column_4", label: "Ver Documento de identidad", visible: true}, 
			{nombre: "Número de documento", ancho:70, columna: "v_column_5", label: "Ver Número de documento", visible: true}, 
			{nombre: "Teléfono", ancho:70, columna: "v_column_6", label: "Ver teléfono", visible: false}, 
			{nombre: "Correo", ancho:150, columna: "v_column_7", label: "Ver correo", visible: false}, 
			{nombre: "Dirección", ancho:150, columna: "v_column_8", label: "Ver dirección", visible: false}, 
			{nombre: "Tipo", ancho:70, columna: "v_column_9", label: "Ver tipo", visible: true}, 
			{nombre: "Estado", ancho:70, columna: "v_column_10", label: "Ver estado", visible: true}
		],
		filtros: ["btn_filtro_buscar","btn_filtro_usuario_tipo", "btn_filtro_usuario_estado"],
		cargar_lista: cargar_usuarios,
		ver_detalles: null,
	},
	{
		menu: "Reporte Tiendas",
		tabla: [
			{nombre: "Imagen", ancho:100, columna: "v_column_1", label: "", visible: true}, 
			{nombre: "Nombre", ancho: "auto", columna: "v_column_2", label: "", visible: true}, 
			{nombre: "Ubicación", ancho: "auto", columna: "v_column_3", label: "Ver ubicación", visible: true}, 
			{nombre: "Teléfono", ancho:70, columna: "v_column_4", label: "Ver teléfono", visible: true}
		],
		filtros: ["btn_filtro_buscar"],
		cargar_lista: cargar_tiendas,
		ver_detalles: null,
	},
	{
		menu: "Reporte de Compras",
		tabla: [
			{nombre: "Responsable", ancho:"auto", columna: "v_column_1", label: "Ver Responsable", visible: true}, 
			{nombre: "Proveedor", ancho:"auto", columna: "v_column_2", label: "Ver Proveedor", visible: true}, 
			{nombre: "Comprobante", ancho: "auto", columna: "v_column_3", label: "Ver Comprobante", visible: true}, 
			{nombre: "Fecha", ancho:100, columna: "v_column_4", label: "Ver Fecha", visible: true}, 
			{nombre: "Costo calculado", ancho:100, columna: "v_column_5", label: "Ver Costo calculado", visible: false}, 
			{nombre: "Estado", ancho:100, columna: "v_column_6", label: "Ver Estado", visible: true}, 
			{nombre: "Operación", ancho:100, columna: "v_column_7", label: "", visible: false}, 
			{nombre: "E", ancho:100, columna: "v_column_8", label: "", visible: true},
		],
		filtros: ["filtro_fecha_min","filtro_fecha_max"],
		cargar_lista: cargar_compras,
		ver_detalles: ver_detalles_compra,
	},
	<?php } ?>
	{
		menu: "Reporte de Ventas",
		tabla: [
			{nombre: "Comprobante", ancho:"auto", columna: "v_column_1", label: "", visible: true}, 
			{nombre: "N° de serie", ancho:"80", columna: "v_column_2", label: "Ver N° del documento", visible: true}, 
			{nombre: "Tipo de pago", ancho:"auto", columna: "v_column_3", label: "Ver Tipo de pago", visible: false}, 
			{nombre: "Precio sub-total", ancho: 100, columna: "v_column_4", label: "Ver Sub-Total s/.", visible: false}, 
			{nombre: "IGV", ancho:100, columna: "v_column_5", label: "Ver Igv s/.", visible: false}, 
			{nombre: "Comisión por tarjeta", ancho:100, columna: "v_column_6", label: "Ver Comisión por tarjeta", visible: false}, 
			{nombre: "Precio total", ancho:100, columna: "v_column_7", label: "Ver Total s/.", visible: true}, 
			{nombre: "Fecha", ancho:100, columna: "v_column_8", label: "Ver Fecha", visible: true}, 
			{nombre: "Hora", ancho:100, columna: "v_column_9", label: "Ver Hora", visible: false}, 
			{nombre: "Cliente", ancho:100, columna: "v_column_10", label: "Ver Cliente", visible: false}, 
			{nombre: "Documento del cliente", ancho:100, columna: "v_column_11", label: "Ver Documento del cliente", visible: false}, 
			{nombre: "Vendedor", ancho:100, columna: "v_column_12", label: "Ver Nombre del vendedor", visible: false}, 
			{nombre: "Tienda", ancho:100, columna: "v_column_13", label: "Ver Tienda", visible: true}, 
			{nombre: "E", ancho:50, columna: "v_column_14", label: "", visible: true},
		],
		filtros: ["filtro_almacen","filtro_fecha_min","filtro_fecha_max"],
		cargar_lista: cargar_ventas,
		ver_detalles: ver_detalles_venta,
	},
	{
		menu: "Reporte de Stock",
		tabla: [
			{nombre: "Imagen", ancho:100, columna: "v_column_1", label: "", visible: true}, 
			{nombre: "Código", ancho: 100, columna: "v_column_2", label: "", visible: true}, 
			{nombre: "Producto", ancho: "auto", columna: "v_column_3", label: "", visible: true}, 
			{nombre: "Nombre Alternativo", ancho: "auto", columna: "v_column_4", label: "Ver Nombre Alternativo", visible: false}, 
			{nombre: "Fabricante", ancho: "auto", columna: "v_column_5", label: "Ver Fabricante", visible: true}, 
			{nombre: "Modelo", ancho: "auto", columna: "v_column_6", label: "Ver Modelo", visible: false}, 
			{nombre: "Serie", ancho: "auto", columna: "v_column_7", label: "Ver Serie", visible: false}, 
			{nombre: "Stock minimo", ancho: 100, columna: "v_column_8", label: "Ver Stock Minimo", visible: false}, 
			{nombre: "Stock", ancho: 100, columna: "v_column_9", label: "Ver Stock", visible: true}, 
			{nombre: "Precio de compra", ancho:70, columna: "v_column_10", label: "Ver Precio de compra", visible: false},
			{nombre: "Precio de venta", ancho:70, columna: "v_column_11", label: "Ver precio de venta", visible: true},
		],
		filtros: ["btn_filtro_buscar","filtro_almacen","filtro_existencias"],
		cargar_lista: cargar_almacen,
		ver_detalles: null,
	},
	{
		menu: "Pedidos y Transferencias generados",
		tabla: [
			{nombre: "Remitente", ancho:"auto", columna: "v_column_1", label: "Ver Remitente", visible: false}, 
			{nombre: "Destinatario", ancho:"auto", columna: "v_column_2", label: "Ver Destinatario", visible: true}, 
			{nombre: "Fecha", ancho:100, columna: "v_column_3", label: "Ver Fecha", visible: true}, 
			{nombre: "Hora", ancho: "auto", columna: "v_column_4", label: "Ver Hora", visible: true}, 
			{nombre: "Tipo de movimiento", ancho:150, columna: "v_column_5", label: "Ver Tipo de movimiento", visible: false}, 
			{nombre: "Estado", ancho:100, columna: "v_column_6", label: "Ver Estado", visible: true}, 
			{nombre: "Proceso", ancho:100, columna: "v_column_7", label: "", visible: false}, 
			{nombre: "E", ancho:100, columna: "v_column_8", label: "", visible: true},
		],
		filtros: ["filtro_almacen","filtro_fecha_min","filtro_fecha_max"],
		cargar_lista: cargar_transferencias_salientes,
		ver_detalles: ver_detalles_transferencia_salientes,
	},
	{
		menu: "Pedidos y Transferencias recibidos",
		tabla: [
			{nombre: "Remitente", ancho:"auto", columna: "v_column_1", label: "Ver Remitente", visible: true}, 
			{nombre: "Destinatario", ancho:"auto", columna: "v_column_2", label: "Ver Destinatario", visible: false}, 
			{nombre: "Fecha", ancho:100, columna: "v_column_3", label: "Ver Fecha", visible: true}, 
			{nombre: "Hora", ancho: "auto", columna: "v_column_4", label: "Ver Hora", visible: true}, 
			{nombre: "Tipo de movimiento", ancho:150, columna: "v_column_5", label: "Ver Tipo de movimiento", visible: false}, 
			{nombre: "Estado", ancho:100, columna: "v_column_6", label: "Ver Estado", visible: true}, 
			{nombre: "Proceso", ancho:100, columna: "v_column_7", label: "", visible: false}, 
			{nombre: "E", ancho:100, columna: "v_column_8", label: "", visible: true},
		],
		filtros: ["filtro_almacen","filtro_fecha_min","filtro_fecha_max"],
		cargar_lista: cargar_transferencias_ingresantes,
		ver_detalles: ver_detalles_transferencia_ingresantes,
	},
	{
		menu: "Ingreso de productos",
		tabla: [
			{nombre: "Imagen", ancho:100, columna: "v_column_1", label: "", visible: true}, 
			{nombre: "Código", ancho: 100, columna: "v_column_2", label: "", visible: true}, 
			{nombre: "Producto", ancho: "auto", columna: "v_column_3", label: "", visible: true}, 
			{nombre: "Fabricante", ancho: "auto", columna: "v_column_4", label: "Ver Fabricante", visible: true}, 
			{nombre: "Modelo", ancho: "auto", columna: "v_column_5", label: "Ver Modelo", visible: false}, 
			{nombre: "Serie", ancho: "auto", columna: "v_column_6", label: "Ver Serie", visible: false}, 
			{nombre: "Unidades", ancho: 100, columna: "v_column_8", label: "Ver Stock", visible: true}, 
			{nombre: "Tipo de movimiento", ancho: 100, columna: "v_column_8", label: "Ver Tipo de movimiento", visible: true}, 
			{nombre: "Fecha", ancho:"auto", columna: "v_column_9", label: "Ver Fecha", visible: true},
			{nombre: "Tienda", ancho:"auto", columna: "v_column_10", label: "Ver Tienda", visible: true},
			{nombre: "Procedencia", ancho:"auto", columna: "v_column_11", label: "Ver Procedencia", visible: false},
		],
		filtros: ["btn_filtro_buscar","filtro_almacen","filtro_fecha_min","filtro_fecha_max"],
		cargar_lista: cargar_productos_ingreso,
		ver_detalles: null,
	},
	{
		menu: "Salida de productos",
		tabla: [
			{nombre: "Imagen", ancho:100, columna: "v_column_1", label: "", visible: true}, 
			{nombre: "Código", ancho: 100, columna: "v_column_2", label: "", visible: true}, 
			{nombre: "Producto", ancho: "auto", columna: "v_column_3", label: "", visible: true}, 
			{nombre: "Fabricante", ancho: "auto", columna: "v_column_4", label: "Ver Fabricante", visible: true}, 
			{nombre: "Modelo", ancho: "auto", columna: "v_column_5", label: "Ver Modelo", visible: false}, 
			{nombre: "Serie", ancho: "auto", columna: "v_column_6", label: "Ver Serie", visible: false}, 
			{nombre: "Unidades", ancho: 100, columna: "v_column_8", label: "Ver Stock", visible: true}, 
			{nombre: "Tipo de movimiento", ancho: 100, columna: "v_column_8", label: "Ver Tipo de movimiento", visible: true}, 
			{nombre: "Fecha", ancho:"auto", columna: "v_column_9", label: "Ver Fecha", visible: true},
			{nombre: "Tienda", ancho:"auto", columna: "v_column_10", label: "Ver Tienda", visible: false},
			{nombre: "Procedencia", ancho:"auto", columna: "v_column_11", label: "Ver Procedencia", visible: true},
		],
		filtros: ["btn_filtro_buscar","filtro_almacen","filtro_fecha_min","filtro_fecha_max"],
		cargar_lista: cargar_productos_salida,
		ver_detalles: null,
	},
	{
		menu: "Venta de productos",
		tabla: [
			{nombre: "Imagen", ancho:100, columna: "v_column_1", label: "", visible: true}, 
			{nombre: "Código", ancho: 100, columna: "v_column_2", label: "", visible: true}, 
			{nombre: "Producto", ancho: "auto", columna: "v_column_3", label: "", visible: true}, 
			{nombre: "Fabricante", ancho: "auto", columna: "v_column_4", label: "Ver Fabricante", visible: true}, 
			{nombre: "Modelo", ancho: "auto", columna: "v_column_5", label: "Ver Modelo", visible: false}, 
			{nombre: "Serie", ancho: "auto", columna: "v_column_6", label: "Ver Serie", visible: false}, 
			{nombre: "Unidades vendidas", ancho: 100, columna: "v_column_7", label: "Ver Unidades vendidas", visible: true},
			{nombre: "Suma de venta", ancho:"auto", columna: "v_column_8", label: "Ver Suma de venta", visible: false},
			{nombre: "Tienda", ancho:"auto", columna: "v_column_9", label: "Ver Tienda", visible: true},
		],
		filtros: ["btn_filtro_buscar","filtro_almacen","filtro_fecha_min","filtro_fecha_max"],
		cargar_lista: cargar_venta_productos,
		ver_detalles: null,
	}
];
function recargar_lista(){
	if (ctrl_datos.recargar != null){
		ctrl_datos.recargar();
	}
}
function vista_columnas_reporte(){
	let master = $("#tabla_lista_reporte").parent().parent();
	let checks = master.find(".opciones_adicionales_columns input[type='checkbox']");
	let tabla = master.find(".table_view table");
	for (let idx=0; idx<checks.length; idx++){
		let check = $(checks[idx]);
		if (check.prop("checked")){
			tabla.find("."+check.attr("data-column")).css("display", "table-cell");
		} else {
			tabla.find("."+check.attr("data-column")).css("display", "none");
		}
	}
}
function resizeWindow(){
	resizePanel();
}
<?php get_header_javascript(); ?>
<?php alertas_pedidos_javascript(); ?>
<?php dialogo_loading_javascript(); ?>
<?php dialogo_image_javascript(); ?>
<?php dialogo_alert_javascript(); ?>
<?php dialogo_confirm_javascript(); ?>
<?php dialogo_document_javascript(); ?>
$(document).ready(function() {
	$.datepicker.regional['es'] = {
		closeText: 'Cerrar',
		prevText: '< Ant',
		nextText: 'Sig >',
		currentText: 'Hoy',
		monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
		monthNamesShort: ['Ene','Feb','Mar','Abr', 'May','Jun','Jul','Ago','Sep', 'Oct','Nov','Dic'],
		dayNames: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
		dayNamesShort: ['Dom','Lun','Mar','Mié','Juv','Vie','Sáb'],
		dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sá'],
		weekHeader: 'Sm',
		dateFormat: 'dd-mm-yy',
		firstDay: 1,
		isRTL: false,
		showMonthAfterYear: false,
		yearSuffix: ''
	};
	$.datepicker.setDefaults($.datepicker.regional['es']);
	$( window ).on("resize", function(){
		resizeWindow();
	});
	resizeWindow();
	<?php get_header_ready(); ?>
	<?php alertas_pedidos_ready(); ?>
	<?php dialogo_loading_ready(); ?>
	<?php dialogo_image_ready(); ?>
	<?php dialogo_alert_ready(); ?>
	<?php dialogo_confirm_ready(); ?>
	<?php dialogo_document_ready(); ?>
	for (let idx=0; idx<galeria.length; idx++){
		$(".dv_left .list_store").append("<li class='row_store' data-codigo='"+idx+"'><span>"+galeria[idx].menu+"</span></li>");
	}
	$(".dv_left .list_store").on("click", ".row_store", function(e){
		let filas = $(".dv_left .list_store .row_select");
		filas.removeClass("row_select");
		$(this).addClass("row_select");
		let idx = $(this).attr("data-codigo");
		$(".buscador_options .option_select").css("display", "none");
		$(".buscador_options .input_text").css("display", "none");
		$("#btn_filtro_buscar").parent().css("display", "none");
		let filtros = galeria[idx].filtros;
		for (let idy=0; idy<filtros.length; idy++){
			if (filtros[idy] == "btn_filtro_buscar"){
				$("#btn_filtro_buscar").parent().css("display", "flex");
			} else {
				$("#"+filtros[idy]).css("display", "block");
			}
		}
		let columnas = galeria[idx].tabla;
		let header = "<th width='40px'>Nº</th>";
		let views = "";
		$(".dv_right .opciones_adicionales_columns").html(views);
		for (let idy=0; idy<columnas.length; idy++){
			header += "<th class='"+columnas[idy].columna+"' width='"+columnas[idy].ancho+"'>"+columnas[idy].nombre+"</th>";
			if (columnas[idy].label != ""){
				if (columnas[idy].visible){
					views += "<label><input type='checkbox' data-column='"+columnas[idy].columna+"' checked />"+columnas[idy].label+"</label>";
				} else {
					views += "<label><input type='checkbox' data-column='"+columnas[idy].columna+"' />"+columnas[idy].label+"</label>";
				}
			}
		}
		$(".dv_right .table_view table").html("<tr>"+header+"</tr>");
		$(".dv_right .opciones_adicionales_columns").html(views+"<span style='flex: 1;'></span>");
		
		$("#panel_splash").css("display", "none");
		$(".dv_right .dv_border").css("display", "flex");
		galeria[idx].cargar_lista();
		ctrl_datos.recargar = galeria[idx].cargar_lista;
		ctrl_datos.ver_detalles = galeria[idx].ver_detalles;
	});
	$(".opciones_adicionales_btn").click(function(){
		let panel = $(this).next();
		if (panel.css("display") != "none"){
			panel.slideUp(500);
		} else {
			panel.slideDown(500);
		}
	});
	$(".opciones_adicionales_columns").on("change", "input[type='checkbox']", function(){
		vista_columnas_reporte();
	});
	$("#tabla_lista_reporte").on("click", ".btn_preview", function(){
		let codigo = $(this).attr("data-codigo");
		if (ctrl_datos.ver_detalles != null){
			ctrl_datos.ver_detalles(codigo);
		}
	});
	$("#tabla_lista_reporte").on("click", ".row_data", function(){
		let filas = $("#tabla_lista_reporte .row_select");
		filas.removeClass("row_select");
		$(this).addClass("row_select");
	});
	let fechaHoy = new Date();
	let fechaMenos3Dias = new Date(fechaHoy);
	fechaMenos3Dias.setDate(fechaMenos3Dias.getDate() - 3);
	let fechaHoyFormateada = fecha_corta(fechaHoy);
	let fechaMenos3DiasFormateada = fecha_corta(fechaMenos3Dias);
	ctrl_datos.fecha_min = fecha_guardar(fechaMenos3Dias);
	ctrl_datos.fecha_max = fecha_guardar(fechaHoy);
	$("#filtro_fecha_min input").val(fechaMenos3DiasFormateada);
	$("#filtro_fecha_max input").val(fechaHoyFormateada);
	$("#filtro_fecha_min input").datepicker({
		changeMonth: true,
		monthNamesShort: [
			"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio",
			"Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
		changeYear: true,
		yearRange: "c-5:c+20",
		onSelect: function(dateText, inst) {
			let num = dateText.split("-");
			num.reverse();
			ctrl_datos.fecha_min = num.join("-");
			ctrl_datos.items_pagina = 0;
			ctrl_datos.items_cantidad = 0;
			recargar_lista();
		}
	});
	$("#filtro_fecha_max input").datepicker({
		changeMonth: true,
		monthNamesShort: [
			"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio",
			"Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
		changeYear: true,
		yearRange: "c-5:c+20",
		onSelect: function(dateText, inst) {
			let num = dateText.split("-");
			num.reverse();
			ctrl_datos.fecha_max = num.join("-");
			ctrl_datos.items_pagina = 0;
			ctrl_datos.items_cantidad = 0;
			recargar_lista();
		}
	});
	$("#btn_filtro_usuario_tipo").change(function(){
		ctrl_datos.filtro_tipos = $(this).val();
		recargar_lista();
	});
	$("#btn_filtro_usuario_estado").change(function(){
		ctrl_datos.filtro_estados = $(this).val();
		recargar_lista();
	});
	$("#filtro_almacen").change(function(){
		ctrl_datos.filtro_tienda = $(this).val();
		recargar_lista();
	});
	$("#filtro_existencias").change(function(){
		ctrl_datos.filtro_exitencia = $(this).val();
		recargar_lista();
	});
	$("#btn_filtro_buscar").change(function(){
		ctrl_datos.items_pagina = 0;
		ctrl_datos.items_cantidad = 0;
		ctrl_datos.buscar = $(this).val();
		recargar_lista();
	});
	$("#btn_filtro_buscar").keyup(function(e){
		if(e.keyCode == 13){
			$("#btn_filtro_buscar").change();
		}
	});
	$("#btn_filtro_buscar").next().click(function(e){
		$("#btn_filtro_buscar").change();
	});
	$("#btn_order_asc").click(function(){
		ctrl_datos.items_pagina = 0;
		ctrl_datos.items_cantidad = 0;
		ctrl_datos.orden = "DESC";
		$("#btn_order_asc").css("display", "none");
		$("#btn_order_desc").css("display", "flex");
		recargar_lista();
	});
    $("#btn_order_desc").click(function(){
		ctrl_datos.items_pagina = 0;
		ctrl_datos.items_cantidad = 0;
		ctrl_datos.orden = "ASC";
		$("#btn_order_asc").css("display", "flex");
		$("#btn_order_desc").css("display", "none");
		recargar_lista();
	});
	$("#btn_print_table").click(function(){
		var divContents = $("#tabla_lista_reporte").parent().html();
		var a = window.open('', '', 'height=500, width=500');
		a.document.write('<html><title>Reporte</title>');
		a.document.write('<style>');
		a.document.write('html{font-family:arial;font-size:12px;}');
		a.document.write('table {border-collapse: collapse;}');
		a.document.write('table tr:nth-child(odd) {background-color: rgba(255, 255, 255, 0.2);}');
		a.document.write('table tr:nth-child(even) {background-color: rgba(100, 100, 100, 0.2);}');
		a.document.write('table th {background-color: rgba(0, 0, 0, 0.8);color: white;}');
		a.document.write('table th, table td {padding: 5px;}');
		a.document.write('</style>');
		a.document.write('<body >');
		a.document.write(divContents);
		a.document.write('</body></html>');
		a.document.close();
		a.print();
	});
	$("#btn_export_csv").click(function(){
		let tabla_datos = [];
		let tabla = $("#tabla_lista_reporte");
		let filas = tabla.find("tr");
		for (let idx=0; idx<filas.length; idx++){
			let tabla_fila = [];
			let fila = $(filas[idx]);
			let celdas = [];
			if (fila.hasClass("row_data")){
				celdas = fila.find("td");
			} else {
				celdas = fila.find("th");
			}
			for (let idy=0; idy<celdas.length; idy++){
				if ($(celdas[idy]).css("display") != "none"){
					if ($(celdas[idy]).find("svg").length > 0){
					} else if ($(celdas[idy]).find("img").length > 0){
						tabla_fila.push($(celdas[idy]).find("img").attr("src"));
					} else {
						tabla_fila.push($(celdas[idy]).html());
					}
				}
			}
			tabla_datos.push(tabla_fila);
		}
		var form = $("<form target='_blank'></form>");
		form.attr("action", "reporte_csv.php");
		form.attr("method", "post");
		form.css("display", "none");
		form.append('<input type="text" id="accion" name="accion" value="tienda">');
		form.append('<input type="text" id="tabla" name="tabla" value="">');
		form.append('<input type="text" id="nombre_archivo" name="nombre_archivo" value="reporte.csv">');
		form.find("#tabla").val(JSON.stringify(tabla_datos));
		$("body").append(form);
		form.submit();
		
	});
	$("#btn_export_xls").click(function(){
		let tabla_datos = [];
		let tabla = $("#tabla_lista_reporte");
		let filas = tabla.find("tr");
		for (let idx=0; idx<filas.length; idx++){
			let tabla_fila = [];
			let fila = $(filas[idx]);
			let celdas = [];
			if (fila.hasClass("row_data")){
				celdas = fila.find("td");
			} else {
				celdas = fila.find("th");
			}
			for (let idy=0; idy<celdas.length; idy++){
				if ($(celdas[idy]).css("display") != "none"){
					if ($(celdas[idy]).find("svg").length > 0){
					} else if ($(celdas[idy]).find("img").length > 0){
						tabla_fila.push($(celdas[idy]).find("img").attr("src"));
					} else {
						tabla_fila.push($(celdas[idy]).html());
					}
				}
			}
			tabla_datos.push(tabla_fila);
		}
		var form = $("<form target='_blank'></form>");
		form.attr("action", "reporte_excel.php");
		form.attr("method", "post");
		form.css("display", "none");
		form.append('<input type="text" id="accion" name="accion" value="tiendas">');
		form.append('<input type="text" id="tabla" name="tabla" value="">');
		form.append('<input type="text" id="nombre_archivo" name="nombre_archivo" value="reporte.xlsx">');
		form.find("#tabla").val(JSON.stringify(tabla_datos));
		$("body").append(form);
		form.submit();
	});
	var tabla_lista = "#tabla_lista_reporte";
	$(document).keydown(function(event) {
		var ajustarScroll = function($elemento) {
			let height_view = $(tabla_lista).parent().outerHeight()/2;
			let pos_top = $(tabla_lista).parent().position().top+($(tabla_lista).parent().outerHeight(true)/2.0);
			$(tabla_lista).parent().scrollTop($elemento.position().top+$(tabla_lista).parent().scrollTop()-pos_top);
		}
		if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
			let $filas = $(tabla_lista+' tr');
			let $filaSeleccionada = $(tabla_lista+' .row_select');
			if (!$filaSeleccionada.length) {
                $filas.eq(0).addClass('row_select');
                ajustarScroll($filas.eq(0));
                return;
            }
            let indiceSeleccionada = $filas.index($filaSeleccionada);
            if (event.key === 'ArrowUp' && indiceSeleccionada > 1) {
                $filaSeleccionada.removeClass('row_select');
                $filas.eq(indiceSeleccionada - 1).addClass('row_select');
                $filas.eq(indiceSeleccionada - 1).click();
                ajustarScroll($filas.eq(indiceSeleccionada - 1));
            } else if (event.key === 'ArrowDown' && indiceSeleccionada < $filas.length - 1) {
                $filaSeleccionada.removeClass('row_select');
                $filas.eq(indiceSeleccionada + 1).addClass('row_select');
                $filas.eq(indiceSeleccionada + 1).click();
                ajustarScroll($filas.eq(indiceSeleccionada + 1));
            }
			event.preventDefault();
		}
	});
	cargar_cbo_tiendas();
	//cargar_cbo_categorias();
	close_loading();
	<?php if ($_SESSION["control"]["tipo_editor"] == "administracion_tienda" && $_SESSION["control"]["tienda_editor"] <= 0){ ?>
		open_dialog_alert("Su cuenta no se encuentra vinculada a una tienda.<br />Comuniquese con su administrador y vuelva a iniciar sesión.");
	<?php } ?>
});
</script>
</html>
