<?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;
}

require_once("data/Conexion.php");
require_once("clases/cls_tienda.php");
require_once("clases/cls_usuario.php");
$cambiar_precio_venta = false;
if (isset($_SESSION["usuario_editor"])){
	$usuario_editor = cls_Usuario::Indice($_SESSION["usuario_editor"]);
	$permisos = $usuario_editor->get_permisos();
	if (strlen($permisos) > 2){
		$permisos = json_decode($permisos, true);
		if (isset($permisos["cambiar_precio_venta"])){
			$cambiar_precio_venta = $permisos["cambiar_precio_venta"];
		}
	}
}
?>
<?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>Actualizar Venta</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/html2canvas.js"></script>
</head>
<style>
<?php get_css(); ?>
<?php dialogo_loading_css(); ?>
<?php dialogo_image_css(); ?>
<?php dialogo_alert_css(); ?>
<?php dialogo_confirm_css(); ?>
</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 id="panel_store_list" class="box">
					<div class="header">
						<span>Ventas</span>
					</div>
					<hr>
					<div class="buscador_input">
						<input type="text" placeholder="Codigo de nota de venta" id="txt_buscar_venta" name="txt_buscar_venta" />
						<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="input_text"><span>Fecha (desde)</span><input type="text" id="txt_filtro_fecha_1" name="txt_filtro_fecha_1" readonly="true" autocomplete="false" /></div>
					<div class="input_text"><span>Fecha (hasta)</span><input type="text" id="txt_filtro_fecha_2" name="txt_filtro_fecha_2" readonly="true" autocomplete="false" /></div>
					
					<div><h3>Ventas Realizadas</h3></div>
					<ul class="list_store" id="lista_elementos">

					</ul>
					<div class="header">
						<span></span>
					</div>
				</div>
				<div id="panel_product_list" class="box" style="display:none;">
					<div class="box" style="overflow: auto;">
						<div class="header">
							<span>Producto</span>
						</div>
						<hr>
						<div id="producto_informacion">
							<table style="width:100%;">
								<tr><td colspan='2' align='center'><img class="info_imagen" src='libreria/imagenes/sin_imagen.png' style='max-width:80%;max-height:200px;margin:auto;' /></td></tr>
								<tr><td colspan='2'><strong>Información del articulo</strong></td></tr>
								<tr class='row_info'><td><strong>Nombre</strong></td><td class="info_nombre"></td></tr>
								<tr class='row_info row_info_extra' style='display:none;'><td><strong>Fabricante</strong></td><td class="info_fabricante"></td></tr>
								<tr class='row_info row_info_extra' style='display:none;'><td><strong>Modelo</strong></td><td class="info_modelo"></td></tr>
								<tr class='row_info row_info_extra' style='display:none;'><td><strong>Serie</strong></td><td class="info_serie"></td></tr>
								<tr class='row_info'><td><strong>Codigo</strong></td><td class="info_codigo"></td></tr>
								<tr class='row_info row_info_extra' style='display:none;'><td><strong>Codigo de barras</strong></td><td class="info_codigo_barras"></td></tr>
								<tr class='row_info'><td><strong>Precio de venta</strong></td><td class="info_precio_venta">s/. 0.00</td></tr>
								<tr class='row_info row_info_extra' style='display:none;'><td><strong>Stock minimo</strong></td><td class="info_stock_minimo">0 unidades</td></tr>
								<tr class='row_info'><td><strong>Stock</strong></td><td class="info_stock">0 unidades</td></tr>
							</table>
						</div>
						<div id="btn_producto_informacion" style="padding:10px 0px;cursor:pointer;">Ver mas +</div>
						<hr>
						<ul class="list_store">
						</ul>
					</div>
				</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_edit" class="dv_border" style="display:none;">
				<div class="header">
					<span>Devolución de productos</span>
					<button id="btn_cancelar_1" class="buttons buttons_active" style="display:none;background-color:red;">
						<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="M22 2L17 6.99998M17 1.99998L22 6.99996" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> <path d="M2 12C2 16.714 2 19.0711 3.46447 20.5355C4.92893 22 7.28595 22 12 22C16.714 22 19.0711 22 20.5355 20.5355C22 19.0711 22 16.714 22 12V10.5M13.5 2H12C7.28595 2 4.92893 2 3.46447 3.46447C2.49073 4.43821 2.16444 5.80655 2.0551 8" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> </g></svg>
						<span>Cancelar</span>
					</button>
					&nbsp;
					<button id="btn_guardar_1" class="buttons buttons_inactive" 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="M22 12C22 16.714 22 19.0711 20.5355 20.5355C19.0711 22 16.714 22 12 22C7.28595 22 4.92893 22 3.46447 20.5355C2 19.0711 2 16.714 2 12C2 7.28595 2 4.92893 3.46447 3.46447C4.92893 2 7.28595 2 12 2C16.714 2 19.0711 2 20.5355 3.46447C21.5093 4.43821 21.8356 5.80655 21.9449 8" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> <path d="M17 2V8.8076C17 9.78253 17 10.27 16.8709 10.5607C16.5766 11.2233 15.8506 11.5805 15.1461 11.4095C14.8369 11.3344 14.4507 11.037 13.6782 10.4422C13.2421 10.1064 13.024 9.9385 12.797 9.83985C12.2886 9.61899 11.7114 9.61899 11.203 9.83985C10.976 9.9385 10.7579 10.1064 10.3218 10.4422C9.5493 11.037 9.16307 11.3344 8.85391 11.4095C8.14942 11.5805 7.42342 11.2233 7.12914 10.5607C7 10.27 7 9.78253 7 8.8076V2" stroke="#1C274C" stroke-width="1.5"></path> </g></svg>
						<span>Registrar devolución</span>
					</button>
					<button id="btn_editar_1" class="buttons buttons_inactive">
						<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="M18.562 2.9354L18.9791 2.5183C19.6702 1.82723 20.7906 1.82723 21.4817 2.5183C22.1728 3.20937 22.1728 4.32981 21.4817 5.02087L21.0646 5.43797M18.562 2.9354C18.562 2.9354 18.6142 3.82172 19.3962 4.60378C20.1783 5.38583 21.0646 5.43797 21.0646 5.43797M18.562 2.9354L14.7275 6.76995C14.4677 7.02968 14.3379 7.15954 14.2262 7.30273C14.0945 7.47163 13.9815 7.65439 13.8894 7.84776C13.8112 8.01169 13.7532 8.18591 13.637 8.53437L13.2651 9.65M21.0646 5.43797L17.23 9.27253C16.9703 9.53225 16.8405 9.66211 16.6973 9.7738C16.5284 9.90554 16.3456 10.0185 16.1522 10.1106C15.9883 10.1888 15.8141 10.2468 15.4656 10.363L14.35 10.7349M14.35 10.7349L13.6281 10.9755C13.4567 11.0327 13.2676 10.988 13.1398 10.8602C13.012 10.7324 12.9673 10.5433 13.0245 10.3719L13.2651 9.65M14.35 10.7349L13.2651 9.65" stroke="#1C274C" stroke-width="1.5"></path> <path d="M22 12C22 16.714 22 19.0711 20.5355 20.5355C19.0711 22 16.714 22 12 22C7.28595 22 4.92893 22 3.46447 20.5355C2 19.0711 2 16.714 2 12C2 10.8717 2 9.87835 2.02008 9M12 2C7.28595 2 4.92893 2 3.46447 3.46447C3.03965 3.88929 2.73806 4.38921 2.52396 5" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> </g></svg>
						<span>Devolver productos</span>
					</button>
				</div>
					<input type="hidden" id="accion" name="accion" value="" />
					<input type="hidden" id="txt_codigo" name="txt_codigo" value="0" />
					<input type="hidden" id="txt_origen" name="txt_origen" value="0" />
					<input type="hidden" id="txt_eliminado" name="txt_eliminado" value="[]" />
					<input type="hidden" id="txt_observaciones" name="txt_observaciones" value="" />
					<div class="input_column_double">
						<div class="input_text">
							<span>Fecha</span>
							<input type="text" id="txt_fecha" name="txt_fecha" readonly />
							<input type="time" id="txt_hora" name="txt_hora" style="display:none" readonly />
						</div>
						<div class="input_select"><span>Tipo de pago</span><select id="txt_tipo_pago" name="txt_tipo_pago" ><option value="Efectivo" selected>Efectivo</option><option value="Tarjeta">Tarjeta ( 5 % más )</option></select></div>
					</div>
					<div class="input_column_double">
						<div class="input_text"><span>Cliente</span><input type="text" id="txt_cliente" name="txt_cliente" /></div>
						<div class="input_combotext"><span>Documento</span><div>
							<select id="txt_cliente_documento_tipo" name="txt_cliente_documento_tipo" style="max-width:none;">
								<option>DNI</option>
								<option>RUC</option>
								<option>Carné de Extranjería</option>
								<option>Pasaporte</option>
								<option>Cédula de Identidad</option>
							</select><input type="text" id="txt_cliente_documento_numero" name="txt_cliente_documento_numero" maxlength="15" /></div>
						</div>
					</div>
					<div class="input_column_double">
						<div class="input_select"><span>Comprobante</span><select id="txt_comprobante_tipo" name="txt_comprobante_tipo">
							<option value="Factura">Factura</option>
							<option value="Boleta">Boleta</option>
							<option value="Nota de Crédito">Nota de Crédito</option>
							<option value="Nota de Venta" selected >Nota de Venta</option>
							<option value="Nota de Devolución">Nota de Devolución</option>
						</select></div>
						<div class="input_text"><span><label style="display:flex;align-items: center;"><input type="checkbox" id="chk_comprobante_numero" name="chk_comprobante_numero" style="display:none" />Serie y Número</label></span><input type="text" id="txt_comprobante_numero" name="txt_comprobante_numero" /></div>
					</div>
					<div class="input_column_double" style="display: none;">
						<div class="input_select" style="visibility:hidden;"><span>Moneda</span><input id="txt_moneda" name="txt_moneda" data-cambio="1.0" data-simbolo="" /></div>
						<div class="input_select">
						</div>
					</div>
					<div class="input_column_double" style="display:none;">
						<!--<div class="input_select"><span>IGV</span><select id="txt_igv" name="txt_igv" ></select></div>-->
						<div class="input_select"><span>IGV</span><input type="hidden" id="txt_igv" name="txt_igv" value="18" ></div>
						<div class="input_select">
						</div>
					</div>
					<div class="opciones_adicionales_btn">Opciones Adicionales</div>
					<div class="opciones_adicionales_view">
						<div class="opciones_adicionales_columns" style="display:flex;">
							<label><input type="checkbox" data-column="v_column_2" checked />Ver códigos</label>
							<label><input type="checkbox" data-column="v_column_4" />Ver Fabricante</label>
							<label><input type="checkbox" data-column="v_column_5" />Ver Modelo</label>
							<label><input type="checkbox" data-column="v_column_6" />Ver Serie</label><div style="flex:1;"></div>
						</div>
					</div>
				<div class="table_view">
					<table style="width:100%;" id="table_list">
						<thead>
							<tr>
								<th class="v_column_1" width="40px">Nº</th>
								<th class="v_column_2">Código</th>
								<th class="v_column_3">Producto</th>
								<th class="v_column_4" width="100px">Fabricante</th>
								<th class="v_column_5" width="100px">Modelo</th>
								<th class="v_column_6" width="100px">Serie</th>
								<th class="v_column_7" width="70px">Vendidos</th>
								<th class="v_column_8" width="70px">Devueltos</th>
								<th class="v_column_9" width="70px">Precio unit.</th>
								<th class="v_column_10" width="70px">Subtotal</th>
							</tr>
						</thead>
						<tbody>
							<tr class="row_data">
								<td align="center">0</td>
								<td align="left"></td>
								<td align="right">0</td>
								<td align="right">0</td>
								<td align="right">s/. 00.00</td>
								<td align="right">s/. 00.00</td>
							</tr>
						</tbody>
					</table>
				</div>
					<div class="input_column_double">
						<div class="input_text"></div>
						<div class="input_text"><span>Subtotal ( s/. )</span><input type="text" id="txt_costo_subtotal" name="txt_costo_subtotal" data-base="0" style="text-align:right;" readonly /></div>
					</div>
					<div class="input_column_double">
						<div class="input_text"></div>
						<div class="input_text"><span>I.G.V. ( 18% )</span><input type="text" id="txt_costo_igv" name="txt_costo_igv" data-base="0" style="text-align:right;" value="18" readonly /></div>
					</div>
					<div class="input_column_double">
						<div class="input_text"></div>
						<div class="input_text"><span>TOTAL ( s/. )</span><input type="text" id="txt_costo_total" name="txt_costo_total" data-base="0" style="text-align:right;" readonly /></div>
					</div>
					<div class="input_column_double" style="display:none;">
						<div class="input_text"></div>
						<div class="input_text"><span>Tarjeta ( s/. )</span><input type="text" id="txt_costo_tarjeta" name="txt_costo_tarjeta" data-base="0" style="text-align:right;" readonly /></div>
					</div>
					<div class="input_column_double" style="display:none;">
						<div class="input_text"></div>
						<div class="input_text"><span>TOTAL ( s/. )</span><input type="text" id="txt_costo_total_base" name="txt_costo_total_base" data-base="0" style="text-align:right;" readonly /></div>
					</div>
					<br />
				<div class="header">
						<button id="btn_vincular_2" class="buttons buttons_active" style="">
							<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="M15 12L12 12M12 12L9 12M12 12L12 9M12 12L12 15" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> <path d="M22 12C22 16.714 22 19.0711 20.5355 20.5355C19.0711 22 16.714 22 12 22C7.28595 22 4.92893 22 3.46447 20.5355C2 19.0711 2 16.714 2 12C2 7.28595 2 4.92893 3.46447 3.46447C4.92893 2 7.28595 2 12 2C16.714 2 19.0711 2 20.5355 3.46447C21.5093 4.43821 21.8356 5.80655 21.9449 8" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> </g></svg>
							<span>Agregar productos</span>
						</button>
					<span></span>
						<button id="btn_cancelar_2" class="buttons buttons_active" style="display:none;background-color:red;">
							<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="M22 2L17 6.99998M17 1.99998L22 6.99996" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> <path d="M2 12C2 16.714 2 19.0711 3.46447 20.5355C4.92893 22 7.28595 22 12 22C16.714 22 19.0711 22 20.5355 20.5355C22 19.0711 22 16.714 22 12V10.5M13.5 2H12C7.28595 2 4.92893 2 3.46447 3.46447C2.49073 4.43821 2.16444 5.80655 2.0551 8" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> </g></svg>
							<span>Cancelar</span>
						</button>
						&nbsp;
						<button id="btn_guardar_2" class="buttons buttons_inactive" 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="M22 12C22 16.714 22 19.0711 20.5355 20.5355C19.0711 22 16.714 22 12 22C7.28595 22 4.92893 22 3.46447 20.5355C2 19.0711 2 16.714 2 12C2 7.28595 2 4.92893 3.46447 3.46447C4.92893 2 7.28595 2 12 2C16.714 2 19.0711 2 20.5355 3.46447C21.5093 4.43821 21.8356 5.80655 21.9449 8" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> <path d="M17 2V8.8076C17 9.78253 17 10.27 16.8709 10.5607C16.5766 11.2233 15.8506 11.5805 15.1461 11.4095C14.8369 11.3344 14.4507 11.037 13.6782 10.4422C13.2421 10.1064 13.024 9.9385 12.797 9.83985C12.2886 9.61899 11.7114 9.61899 11.203 9.83985C10.976 9.9385 10.7579 10.1064 10.3218 10.4422C9.5493 11.037 9.16307 11.3344 8.85391 11.4095C8.14942 11.5805 7.42342 11.2233 7.12914 10.5607C7 10.27 7 9.78253 7 8.8076V2" stroke="#1C274C" stroke-width="1.5"></path> </g></svg>
							<span>Registrar Devolución</span>
						</button>
						<button id="btn_editar_2" class="buttons buttons_inactive">
							<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="M18.562 2.9354L18.9791 2.5183C19.6702 1.82723 20.7906 1.82723 21.4817 2.5183C22.1728 3.20937 22.1728 4.32981 21.4817 5.02087L21.0646 5.43797M18.562 2.9354C18.562 2.9354 18.6142 3.82172 19.3962 4.60378C20.1783 5.38583 21.0646 5.43797 21.0646 5.43797M18.562 2.9354L14.7275 6.76995C14.4677 7.02968 14.3379 7.15954 14.2262 7.30273C14.0945 7.47163 13.9815 7.65439 13.8894 7.84776C13.8112 8.01169 13.7532 8.18591 13.637 8.53437L13.2651 9.65M21.0646 5.43797L17.23 9.27253C16.9703 9.53225 16.8405 9.66211 16.6973 9.7738C16.5284 9.90554 16.3456 10.0185 16.1522 10.1106C15.9883 10.1888 15.8141 10.2468 15.4656 10.363L14.35 10.7349M14.35 10.7349L13.6281 10.9755C13.4567 11.0327 13.2676 10.988 13.1398 10.8602C13.012 10.7324 12.9673 10.5433 13.0245 10.3719L13.2651 9.65M14.35 10.7349L13.2651 9.65" stroke="#1C274C" stroke-width="1.5"></path> <path d="M22 12C22 16.714 22 19.0711 20.5355 20.5355C19.0711 22 16.714 22 12 22C7.28595 22 4.92893 22 3.46447 20.5355C2 19.0711 2 16.714 2 12C2 10.8717 2 9.87835 2.02008 9M12 2C7.28595 2 4.92893 2 3.46447 3.46447C3.03965 3.88929 2.73806 4.38921 2.52396 5" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> </g></svg>
							<span>Devolver productos</span>
						</button>
				</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">Venta de productos</span>
			</div>
		</div>
	</section>
</body>
<script>

var ctrl_datos = {
	buscar: "",
	filtro_tipo: "filtro_nombre",
	filtro_almacenes: "actual",
	filtro_tienda: $("#txt_tienda").val(),
	fecha_min: "",
	fecha_max: "",
	items_pagina: 0,
	items_cantidad: 0,
	orden: "ASC",
	beep_activo: true,
}
function makeInt(value){
	if (value == null || value == undefined || value == NaN || value.length == 0){
		value = "0";
	}
	return parseInt(value);
}
function makeFloat(value){
	if (value == null || value == undefined || value == NaN || value.length == 0){
		value = "0.00";
	}
	return parseFloat(value);
}
function activar_guardar(value=true){
	if (value){
		$("#btn_guardar_1, #btn_guardar_2").removeClass("buttons_inactive");
		$("#btn_guardar_1, #btn_guardar_2").addClass("buttons_active");
		$("#btn_registrar_2").removeClass("buttons_active");
		$("#btn_registrar_2").addClass("buttons_inactive");
	} else {
		$("#btn_guardar_1, #btn_guardar_2").removeClass("buttons_active");
		$("#btn_guardar_1, #btn_guardar_2").addClass("buttons_inactive");
	}
	/*$("#btn_cancelar_1, #btn_cancelar_2").removeClass("buttons_inactive");
	$("#btn_cancelar_1, #btn_cancelar_2").addClass("buttons_active");
	$("#btn_cancelar_1, #btn_cancelar_2").css("background-color", "red");*/
}
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 actualizarHora() {
	//if ($("#accion").val() != "editar"){
		let horaActual = new Date();
		let hora = horaActual.getHours().toString().padStart(2, '0');
		let minutos = horaActual.getMinutes().toString().padStart(2, '0');
		let segundos = horaActual.getSeconds().toString().padStart(2, '0');
		let horaFormateada = `${hora}:${minutos}:${segundos}`;
		$("#txt_hora").val(horaFormateada);
	//}
}
function fecha_larga(fecha){
	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_productos(){
}
<?php if ($_SESSION["control"]["tipo_editor"] == "administracion_general"){ ?>
function cargar_tiendas(){
}
<?php } ?>
function cargar_lista_moneda(){
	$.ajax({
		type: 'POST',
		dataType: "json",
		url: "control/ctrl_moneda.php",
		data: {
			accion: "lista",
			buscar: "",
			orden: "ASC"
		},
		success: function (datos) {
			//console.log(datos);
			//$("#txt_moneda").html("");
			if (datos.estado == "ok") {
				for(let idx=0; idx<datos.datos.length; idx++){
					let row = datos.datos[idx];
					if (row.codigo == "USD"){
						$("#txt_moneda").val(row.codigo);
						$("#txt_moneda").attr("data-cambio", row.cambio);
						$("#txt_moneda").attr("data-simbolo", row.simbolo);
					}
					//$("#txt_moneda").append("<option value='"+row.codigo+"' data-cambio='"+row.cambio+"' data-simbolo='"+row.simbolo+"'>"+row.codigo+": "+row.simbolo+" | "+row.nombre+"</option>");
				}
			}
			//$("#txt_moneda").val("USD");
		},
		error: function (){
			$("#txt_moneda").html("");
			$("#txt_moneda").val("");
		}
	});
}
function cargar_lista_igv(){
}
function cargar_lista(){
	$.ajax({
		type: "POST",
		dataType: "json",
		url: "control/ctrl_venta.php",
		data: {
			accion: "lista_fecha_estado",
			buscar: ctrl_datos.buscar,
			filtro_tienda: $("#txt_tienda").val(),
			orden: ctrl_datos.orden,
			items_pagina: ctrl_datos.items_pagina,
			items_cantidad: ctrl_datos.items_cantidad,
			fecha_min: ctrl_datos.fecha_min,
			fecha_max: ctrl_datos.fecha_max,
			filtro_estado: "Completado",
		},
		success: function (datos) {
			//console.log(datos);
			$("#lista_elementos").html("");
			if (datos.estado == "ok") {
				for(let indice=0; indice<datos.datos.length; indice++){
					let lista = datos.datos[indice];
					let html = '<li class="row_store" data-codigo="'+lista.venta_id+'" data-comprobante="'+lista.comprobante+'">';
					html += '<span>';
					html += '<table>';
					if (lista.comprobante == "Nota de Venta"){
						html += '<tr><td colspan="2"><strong>Venta completada</strong></td></tr>';
					} else if (lista.comprobante == "Nota de Devolución"){
						html += '<tr><td colspan="2"><strong>Devolución completada</strong></td></tr>';
					} else {
						html += '<tr><td colspan="2"><strong>Movimiento desconocido</strong></td></tr>';
					}
					html += '<tr><td width="78">Comprobante:</td><td><strong>'+lista.comprobante+'</strong></td></tr>';
					html += '<tr><td width="78">Cliente:</td><td>'+lista.cliente_nombre+'</td></tr>';
					html += '<tr><td width="78">Fecha:</td><td>'+fecha_larga(lista.fecha)+'</td></tr>';
					html += '<tr><td width="78">Hora:</td><td>'+lista.hora+'</td></tr>';
					html += '</table>';
					html += '</span>';
					//html += '<svg class="btn_remove" 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="M20.5001 6H3.5" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> <path d="M9.5 11L10 16" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> <path d="M14.5 11L14 16" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> <path d="M6.5 6C6.55588 6 6.58382 6 6.60915 5.99936C7.43259 5.97849 8.15902 5.45491 8.43922 4.68032C8.44784 4.65649 8.45667 4.62999 8.47434 4.57697L8.57143 4.28571C8.65431 4.03708 8.69575 3.91276 8.75071 3.8072C8.97001 3.38607 9.37574 3.09364 9.84461 3.01877C9.96213 3 10.0932 3 10.3553 3H13.6447C13.9068 3 14.0379 3 14.1554 3.01877C14.6243 3.09364 15.03 3.38607 15.2493 3.8072C15.3043 3.91276 15.3457 4.03708 15.4286 4.28571L15.5257 4.57697C15.5433 4.62992 15.5522 4.65651 15.5608 4.68032C15.841 5.45491 16.5674 5.97849 17.3909 5.99936C17.4162 6 17.4441 6 17.5 6" stroke="#1C274C" stroke-width="1.5"></path> <path d="M18.3735 15.3991C18.1965 18.054 18.108 19.3815 17.243 20.1907C16.378 21 15.0476 21 12.3868 21H11.6134C8.9526 21 7.6222 21 6.75719 20.1907C5.89218 19.3815 5.80368 18.054 5.62669 15.3991L5.16675 8.5M18.8334 8.5L18.6334 11.5" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"></path> </g></svg>';
					html += '</li>';
					$("#lista_elementos").append(html);
				}
			} else if (datos.estado == "error") {
				open_dialog_alert(datos.mensaje);
			} else {
				open_dialog_alert("ocurrió un error inesperado.");
			}
			close_loading();
		}, 
		error: function(){
			open_dialog_alert("ocurrió un error inesperado.");
			close_loading();
		}
	});
}
function limpiar_datos(){
	$("#txt_codigo").val(0);
	$("#txt_eliminado").val("[]");
	$("#txt_fecha").val("");
	$("#txt_hora").val("");
	$("#txt_cliente").val("");
	$("#txt_cliente_documento_tipo").val("DNI");
	$("#txt_cliente_documento_numero").val("");
	$("#txt_comprobante_tipo").val("Nota de Venta");
	$("#chk_comprobante_numero").prop("checked", false);
	$("#txt_comprobante_numero").val("");
	$("#txt_tipo_pago").val("Efectivo");
	$("#txt_costo_subtotal").val("");
	$("#txt_costo_igv").val("");
	$("#txt_costo_total").val("");
	$("#txt_observaciones").val("");
	$("#txt_fecha").prop("disabled", true);
	$("#txt_hora").prop("disabled", true);
	$("#txt_cliente").prop("disabled", true);
	$("#txt_cliente_documento_tipo").prop("disabled", true);
	$("#txt_cliente_documento_numero").prop("disabled", true);
	$("#txt_comprobante_tipo").prop("disabled", true);
	$("#chk_comprobante_numero").prop("disabled", true);
	$("#txt_comprobante_numero").prop("disabled", true);
	$("#txt_tipo_pago").prop("disabled", true);
	$("#table_list .row_data").remove();
	$("#txt_fecha").val(fecha_corta(new Date()));
	activar_guardar(false);
	$("#btn_registrar_2").css("display", "flex");
}
function agregar_fila_producto(codigo, producto, nombre, almacen, igv){
	igv = 18;
	let row_data = $("#table_list").find("tr.row_data[data-producto='"+producto+"']");
	if(row_data.length <= 0){
		let data_enabled = " disabled ";
		let svg_visible = "none";
		if ($("#accion").val() == "nuevo" || $("#accion").val() == "editar"){
			data_enabled = "";
			svg_visible = "block";
		}
		let simbolo = $("#txt_moneda").attr("data-simbolo");
		let idx = $("#table_list .row_data").length;
		
		let html = '<tr class="row_data" data-indice="'+(idx+1)+'" data-producto="'+producto+'" data-codigo="'+codigo+'" data-almacen_tienda="'+almacen+'" data-almacen_general="0" data-costo="0">';
		html += '<td class="v_column_1 td_numero" align="center" width="40" >'+(idx+1)+'</td>';
		html += '<td class="v_column_2 td_codigo" align="left" style="text-align:left;"></td>';
		html += '<td class="v_column_3 td_nombre" align="left" style="text-align:left;"></td>';
		html += '<td class="v_column_4 td_fabricante" align="left" style="text-align:left;"></td>';
		html += '<td class="v_column_5 td_modelo" align="left" style="text-align:left;"></td>';
		html += '<td class="v_column_6 td_serie" align="left" style="text-align:left;"></td>';
		html += '<td class="v_column_7 td_cantidad" align="right" width="70"><div>ud. <input type="number" value="0" min="1" step="1" disabled realonly /></div></td>';
		html += '<td class="v_column_8 td_devueltos" align="right" width="70"><div>ud. <input type="number" value="0" min="0" step="1" disabled /></div></td>';
		html += '<td class="v_column_9 td_precio_venta" align="right" width="70">';
			html += '<div class="td_precio_moneda" style="display:flex;"><span style="width: 20px;">s/.&nbsp;</span>';
			html += '<input type="number" value="0.00" min="0.00" step="0.01" disabled readonly /></div>';
			html += '</div>';
		html += '</td>';
		html += '<td class="v_column_10 td_precio_subtotal" align="right" width="70">';
			html += '<div class="td_precio_moneda" style="display:flex;"><span style="width: 20px;">s/.&nbsp;</span>';
			html += '<input type="number" value="0.00" min="0.00" step="0.01" data-igv="'+igv+'" disabled readonly /></div>';
			html += '</div>';
		html += '</td>';
		html += '</tr>';
		row_data = $(html);
		$("#table_list").append(row_data);
	}
	$("#table_list .row_data").removeClass("row_select");
	row_data.addClass("row_select");
	row_data.find(".td_nombre").html(nombre);
	let cant = row_data.find(".td_cantidad input[type='number']").val();
	row_data.find(".td_cantidad input[type='number']").val(parseInt(cant)+1);
	if (ctrl_datos.beep_activo == true){
		let audio_beep = $("#audio_beep")[0];
		if (audio_beep.paused) {
			audio_beep.play();
		} else {
			audio_beep.pause();
			audio_beep.currentTime = 0;
			audio_beep.play();
		}
	}
	activar_guardar();
	return row_data;
}
function cargar_datos(){
	limpiar_datos();
	let codigo = $("#lista_elementos .row_select").attr("data-codigo");
	open_loading();
	$("#btn_vincular_2").css("visibility", "hidden");
	$("#btn_editar_1, #btn_editar_2").css("visibility", "hidden");
	$.ajax({
		type: "POST",
		dataType: "json",
		url: "control/ctrl_venta.php",
		data: {
			accion: "datos",
			buscar: codigo
		},
		success: function (respuesta) {
			//console.log(respuesta);
			if (respuesta.estado == "ok") {
				let datos = respuesta.datos;
				$("#txt_codigo").val(datos.venta_id);
				$("#txt_eliminado").val("[]");
				$("#txt_fecha").datepicker("setDate", new Date(datos.fecha));
				$("#txt_cliente").val(datos.cliente_nombre);
				$("#txt_cliente_documento_tipo").val(datos.cliente_documento_tipo);
				$("#txt_cliente_documento_numero").val(datos.cliente_documento_numero);
				$("#txt_comprobante_tipo").val(datos.comprobante_tipo);
				$("#txt_comprobante_numero").val(datos.comprobante_numero);
				$("#txt_tipo_pago").val(datos.tipo_pago);
				$("#txt_tipo_pago").change();
				
				let simbolo = $("#txt_moneda").attr("data-simbolo");
				let cambio = makeFloat($("#txt_moneda").attr("data-cambio"));
				ctrl_datos.beep_activo = false;
				for (let idx=0; idx<datos.productos.length; idx++){
					let row_data = agregar_fila_producto(datos.productos[idx].venta_producto_id, datos.productos[idx].producto_id, datos.productos[idx].producto_nombre);
					row_data.attr("data-codigo", datos.productos[idx].venta_producto_id);
					row_data.attr("data-costo", datos.productos[idx].precio_almacen);
					row_data.attr("data-almacen_general", datos.productos[idx].almacen_general_id);
					row_data.attr("data-almacen_tienda", datos.productos[idx].almacen_tienda_id);
					row_data.find(".td_precio_venta input[type='number']").val(datos.productos[idx].precio_venta.toFixed(2));
					//row_data.find(".td_precio_subtotal input[type='number']").val(datos.productos[idx].precio_subtotal.toFixed(2));
					if (datos.comprobante_tipo == "Nota de Devolución"){
						row_data.find(".td_devueltos input[type='number']").attr("max", datos.productos[idx].unidades);
						row_data.find(".td_cantidad input[type='number']").val(0);
						row_data.find(".td_devueltos input[type='number']").val(datos.productos[idx].unidades);
					} else {
						row_data.find(".td_devueltos input[type='number']").attr("max", datos.productos[idx].unidades);
						row_data.find(".td_cantidad input[type='number']").val(datos.productos[idx].unidades);
					}
				}
				$(".simbolo_moneda").html(simbolo+"&nbsp;");
				let observaciones = datos.observaciones;
				if (observaciones.length > 2){
					$("#txt_observaciones").val(observaciones);
					observaciones = JSON.parse(observaciones);
					if (observaciones.comprobante_numero != undefined){
						$("#chk_comprobante_numero").prop("checked", observaciones.comprobante_numero);
						$("#chk_comprobante_numero").change();
					}
				} else {
					$("#txt_observaciones").val("");
				}
				if (datos.comprobante_tipo == "Nota de Venta"){
					$("#btn_vincular_2").css("visibility", "visible");
					$("#btn_editar_1, #btn_editar_2").css("visibility", "visible");
				}
				$("#table_list .row_select").removeClass("row_select");
				$("#btn_registrar_2").removeClass("buttons_inactive");
				$("#btn_registrar_2").addClass("buttons_active");
				activar_guardar(false);
				ctrl_datos.beep_activo = true;
				vista_columnas_tabla();
				actualizar_costo_total()
			} else if (respuesta.estado == "error") {
				open_dialog_alert(respuesta.mensaje);
			} else {
				open_dialog_alert("ocurrió un error inesperado.");
			}
			$("#panel_splash").css("display", "none");
			$("#panel_edit").css("display", "flex");
			close_loading();
		},
		error: function (){
			close_loading();
			open_dialog_alert("ocurrió un error inesperado.");
		}
	});
}
function cargar_datos_producto(){
	let codigo = $("#table_list .row_select").attr("data-producto");
	let almacen_general = $("#table_list .row_select").attr("data-almacen_general");
	let almacen_tienda = $("#table_list .row_select").attr("data-almacen_tienda");
	let origen = $("#table_list .row_select").attr("data-origen");
			let info_imagen = "sin_imagen.png";
			let info_nombre = "";
			let info_fabricante = "";
			let info_modelo = "";
			let info_serie = "";
			let info_codigo = "";
			let info_codigo_barras = "";
			let info_codigo_almacen = "";
			let info_precio_compra = 0;
			let info_precio_venta = 0;
			let info_stock_minimo = 0;
			let info_stock = 0;
    $.ajax({
		type: 'POST',
		dataType: "json",
		url: "control/ctrl_almacen_tienda.php",
		data: {
			accion: "datos",
			buscar: almacen_tienda,
			almacen_tienda: almacen_tienda,
			almacen_general: almacen_general,
			origen: origen,
		},
		success: function (datos) {
			//console.log(datos);
			let html = '';
			if (datos.estado == "ok") {
				let imagenes = datos.datos.producto_imagen.split(",");
				if (imagenes[0].length > 0){
					info_imagen = "productos/"+imagenes[0];
				}
				info_nombre = datos.datos.producto_nombre;
				info_fabricante = datos.datos.producto_fabricante;
				info_modelo = datos.datos.producto_modelo;
				info_serie = datos.datos.producto_serie;
				info_codigo = datos.datos.producto_codigo;
				info_codigo_barras = datos.datos.producto_codigo_barras;
				info_codigo_almacen = datos.datos.producto_codigo_almacen;
				info_precio_venta = parseFloat(datos.datos.precio_venta)*parseFloat(datos.datos.moneda_cambio);
				info_stock_minimo = datos.datos.producto_stock_minimo;
				info_stock = datos.datos.unidades;
			}
			$("#producto_informacion .info_imagen").attr("src", "libreria/imagenes/"+info_imagen);
			$("#producto_informacion .info_nombre").html(info_nombre);
			$("#producto_informacion .info_fabricante").html(info_fabricante);
			$("#producto_informacion .info_modelo").html(info_modelo);
			$("#producto_informacion .info_serie").html(info_serie);
			$("#producto_informacion .info_codigo").html(info_codigo);
			$("#producto_informacion .info_codigo_barras").html(info_codigo_barras);
			$("#producto_informacion .info_codigo_almacen").html(info_codigo_almacen);
			$("#producto_informacion .info_precio_compra").html("s/. "+(info_precio_compra).toFixed(2));
			$("#producto_informacion .info_precio_venta").html("s/. "+(info_precio_venta).toFixed(2));
			$("#producto_informacion .info_stock_minimo").html(info_stock_minimo + "unidades");
			$("#producto_informacion .info_stock").html(info_stock + "unidades");
		},
		error: function (){
			$("#producto_informacion").html("");
		}
	});
}
function actualizar_costo_total(){
	let filas = $("#table_list .row_data");
	let subtotal = 0;
	let igv = 0;
	let total = 0;
	let valor_igv = makeFloat($("#txt_igv").val());
	let cambio = makeFloat($("#txt_moneda").attr("data-cambio"));
	for (let idx=0; idx<filas.length; idx++){
		let cantidad = $(filas[idx]).find(".td_devueltos input[type='number']").val();
		let precio_unit = $(filas[idx]).find(".td_precio_venta input[type='number']").val();
		let t_subtotal = parseInt(cantidad) * parseFloat(precio_unit);
		let input_precio_subtotal = $(filas[idx]).find(".td_precio_subtotal input[type='number']");
		input_precio_subtotal.val(t_subtotal.toFixed(2));
		let t_igv = t_subtotal*(parseFloat(valor_igv)/100.00);
		
		subtotal = subtotal + (t_subtotal-t_igv);
		igv = igv + t_igv;
		total = total + t_subtotal;
	}
	$("#txt_costo_subtotal").attr("data-base", subtotal);
	$("#txt_costo_subtotal").val(subtotal.toFixed(2));
	$("#txt_costo_igv").attr("data-base", igv);
	$("#txt_costo_igv").val(igv.toFixed(2));
	$("#txt_costo_total").attr("data-base", total);
	$("#txt_costo_total").val(total.toFixed(2));
	let adicional = 0.00;
	if ($("#txt_tipo_pago").val() == "Tarjeta"){
		adicional = total*0.05;
	}
	$("#txt_costo_tarjeta").attr("data-base", adicional);
	$("#txt_costo_tarjeta").val(adicional.toFixed(2));
	$("#txt_costo_total_base").attr("data-base", total-adicional);
	$("#txt_costo_total_base").val((total-adicional).toFixed(2));
	
}
function vista_columnas_tabla(){
	let checks = $("#table_list").parent().parent().find(".opciones_adicionales_view .opciones_adicionales_columns input[type='checkbox']");
	//let checks = $(".opciones_adicionales_view .opciones_adicionales_columns input[type='checkbox']");
	let tabla = $("#table_list");
	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");
		}
	}
	checks = $("#table_proforma_list").parent().parent().find(".opciones_adicionales_view .opciones_adicionales_columns input[type='checkbox']");
	tabla = $("#table_proforma_list");
	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(); ?>
	$("#txt_buscar_producto").prop("disabled", false);
	$("#txt_filtro_tipo").prop("disabled", false);
	$("#txt_filtro_almacenes").prop("disabled", false);
	ctrl_datos.filtro_tienda = $("#txt_tienda").val();
    $("#btn_producto_order_asc").click(function(){
		if ($("#txt_buscar_producto").prop("disabled")){
			return;
		}
		ctrl_datos.items_pagina = 0;
		ctrl_datos.items_cantidad = 0;
		ctrl_datos.orden = "DESC";
		$("#btn_producto_order_asc").css("display", "none");
		$("#btn_producto_order_desc").css("display", "flex");
		cargar_productos();
	});
    $("#btn_producto_order_desc").click(function(){
		if ($("#txt_buscar_producto").prop("disabled")){
			return;
		}
		ctrl_datos.items_pagina = 0;
		ctrl_datos.items_cantidad = 0;
		ctrl_datos.orden = "ASC";
		$("#btn_producto_order_asc").css("display", "flex");
		$("#btn_producto_order_desc").css("display", "none");
		cargar_productos();
	});
	$("#lista_elementos").on("click", ".row_store", function(e){
		tabla_lista = "#lista_elementos";
		let object = $(this);
		let codigo = $(this).attr("data-codigo");
		if (object.hasClass("row_select") == false){
			$("#lista_elementos .row_store").removeClass("row_select");
			$(this).addClass("row_select");
			$("#btn_editar_1, #btn_editar_2").removeClass("buttons_inactive");
			$("#btn_editar_1, #btn_editar_2").addClass("buttons_active");
			cargar_datos();
		}
		/*if($(e.target).attr("class") == "btn_remove"){
			open_dialog_confirm("¿Desea eliminar los datos de la venta seleccionada?", function(){
				open_loading();
				$.ajax({
					type: "POST",
					dataType: "json",
					url: "control/ctrl_venta.php",
					data: {
						accion: "eliminar",
						buscar: codigo
					},
					success: function (respuesta) {
						//console.log(respuesta);
						if (respuesta.estado == "ok") {
							$("#table_list .row_select").removeClass("row_select");
							object.remove();
							activar_guardar(false);
							$("#panel_splash").css("display", "flex");
							$("#panel_edit").css("display", "none");
						} else if (respuesta.estado == "error") {
							open_dialog_alert(respuesta.mensaje);
						} else {
							open_dialog_alert("ocurrió un error inesperado.");
						}
						close_loading();
					},
					error: function (){
						close_loading();
						open_dialog_alert("ocurrió un error inesperado.");
					}
				});
			});
		}*/
	});
	$("#lista_elementos").on("dblclick", ".row_store", function(e){
		$("#btn_editar_1").click();
	});
	$("#txt_comprobante").change(function(){
		if ($(this).val() == "" || $(this).val() == "Sin Documento"){
			$("#txt_numero").prop("disabled", true);
		} else {
			$("#txt_numero").prop("disabled", false);
		}
	});
	$("#table_list").on("click", ".row_data", function(){
		tabla_lista = "#table_list";
		$("#table_list .row_select").removeClass("row_select");
		$(this).addClass("row_select");
		cargar_datos_producto();
	});
	$(".opciones_adicionales_view .opciones_adicionales_columns").on("change", "input[type='checkbox']", function(){
		vista_columnas_tabla();
	});
	$("#table_list").on("click", ".btn_remove", function(){
		if ($("#accion").val() == "nuevo" || $("#accion").val() == "editar"){
			let parent = $(this).parent().parent();
			open_dialog_confirm("¿Desea eliminar la fila seleccionada?", function(){
				let indices = [];
				if ($("#txt_eliminado").val().length > 0){
					indices = JSON.parse($("#txt_eliminado").val());
				}
				indices.push(parent.attr("data-codigo"));
				$("#txt_eliminado").val(JSON.stringify(indices));
				parent.remove();
				actualizar_costo_total();
				activar_guardar();
			}, function(){});
		}
	});
	$("#table_list").on("change", ".td_precio_compra input", function(){
		actualizar_costo_total();
	});
	$("#table_list").on("change", ".td_cantidad input", function(){
		let value = $(this).val();
		if (makeInt(value) <= 0){
			$(this).val(1);
		}
	});
	$("#txt_fecha").datepicker({
		changeMonth: true,
		monthNamesShort: [
			"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio",
			"Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
		changeYear: true,
		yearRange: "c-5:c+20"
	});
	$("#btn_anular_1, #btn_anular_2").click(function(){
		open_dialog_confirm("<strong style='color:red;'>¿Desea anular la venta ya registrada?</strong><br />los productos vendidos se retornarán al stock de la tienda.", function(){
			let txt_codigo = $("#txt_codigo").val();
			let txt_tienda = $("#txt_tienda").val();
			open_loading();
			$.ajax({
				type: 'POST',
				dataType: "json",
				url: "control/ctrl_venta.php",
				data: {
					accion: "anular_venta",
					txt_codigo: txt_codigo,
					txt_tienda: txt_tienda,
				},
				success: function (datos) {
					//console.log(datos);
					close_loading();
					if (datos.estado == "ok") {
						$("#panel_splash").css("display", "flex");
						$("#panel_edit").css("display", "none");
						activar_guardar(false);
					} else {
						open_dialog_alert("Ocurrió un error actualizando el estado de la venta.");
					}
				},
				error: function(){
					close_loading();
					open_dialog_alert("Ocurrió un error actualizando el estado de la venta.");
				}
			});
		});
	});
	$("#btn_editar_1, #btn_editar_2").click(function(){
		open_dialog_confirm("<strong style='color:red;'>¿Desea retornar productos de una venta ya registrada?</strong><br />Seleccionara la cantidad de productos a devolver.", function(){
			
			$("#txt_tipo_pago").val("Efectivo");
			$("#txt_tipo_pago").change();
			let fechaHoy = new Date();
			let fechaHoyFormateada = fecha_corta(fechaHoy);
			$("#txt_fecha").val(fechaHoyFormateada);
			$("#txt_comprobante_numero").val("");
			$("#txt_comprobante_tipo").val("Nota de Devolución");
			
			$("#txt_fecha").prop("disabled", false);
			$("#txt_hora").prop("disabled", false);
			//$("#txt_cliente").prop("disabled", false);
			//$("#txt_cliente_documento_tipo").prop("disabled", false);
			//$("#chk_comprobante_numero").prop("disabled", false);
			//$("#txt_tipo_pago").prop("disabled", false);
			$("#txt_tipo_movimiento").prop("disabled", false);
			//$("#txt_cliente_documento_numero").prop("disabled", false);
			//$("#table_list .row_data input[type='number']").prop("disabled", false);
			//$("#table_list .row_data .td_cantidad input[type='number']").prop("disabled", false);
			$("#table_list .row_data .td_devueltos input[type='number']").prop("disabled", false);
			$("#table_list .btn_remove").css("display", "block");
			$("#accion").val("editar");
			if ($("#chk_comprobante_numero").prop("checked")){
				$("#txt_comprobante_numero").prop("disabled", false);
			}
			$("#txt_tipo_pago").change();
			$("#btn_editar_1, #btn_editar_2").css("display", "none");
			$("#btn_guardar_1, #btn_guardar_2").css("display", "flex");
			/*$("#btn_guardar_1, #btn_guardar_2").removeClass("buttons_active");
			$("#btn_guardar_1, #btn_guardar_2").addClass("buttons_inactive");*/
			$("#btn_cancelar_1, #btn_cancelar_2").css("display", "flex");
			$("#panel_store_list").css("display", "none");
			$("#panel_product_list").css("display", "flex");
			$("#btn_registrar_2").css("display", "none");
		});
	});
	$("#btn_cancelar_1, #btn_cancelar_2").click(function(){
		limpiar_datos();
		cargar_datos();
		$("#table_list .btn_remove").css("display", "none");
		$("#btn_registrar_2").removeClass("buttons_inactive");
		$("#btn_registrar_2").addClass("buttons_active");
		$("#btn_registrar_2").css("display", "flex");
		$("#btn_editar_1, #btn_editar_2").css("display", "flex");
		$("#btn_guardar_1, #btn_guardar_2").css("display", "none");
		$("#btn_cancelar_1, #btn_cancelar_2").css("display", "none");
		$("#btn_nuevo").css("visibility", "visible");
		$(".section_header").css("pointer-events", "unset");
		$("#txt_buscar").prop("disabled", false);
		$(".column_left .list_store .row_store").css("pointer-events", "unset");
		$("#btn_nueva_venta_1, #btn_nueva_venta_2").css("visibility", "visible");
		$(".section_header").css("pointer-events", "unset");
		$("#txt_buscar").prop("disabled", false);
		$(".column_left .list_store .row_store").css("pointer-events", "unset");
		$("#accion").val("");
		/*$("#btn_editar_1, #btn_editar_2").css("display", "flex");
		$("#btn_guardar_1, #btn_guardar_2").css("display", "none");
		$("#btn_cancelar_1, #btn_cancelar_2").css("display", "none");*/
		$("#panel_store_list").css("display", "flex");
		$("#panel_product_list").css("display", "none");
	});
	$("#btn_guardar_1, #btn_guardar_2").click(function(){
		if($(this).hasClass("buttons_inactive")){
			return;
		}
		let txt_tienda = $("#txt_tienda").val();
		let txt_codigo = $("#txt_codigo").val();
		let txt_eliminado = $("#txt_eliminado").val();
		let txt_fecha = $("#txt_fecha").datepicker("getDate");
		let txt_hora = $("#txt_hora").val();
		let txt_cliente = $("#txt_cliente").val().trim();
		let txt_cliente_documento_tipo = $("#txt_cliente_documento_tipo").val();
		let txt_cliente_documento_numero = $("#txt_cliente_documento_numero").val();
		let txt_comprobante_tipo = $("#txt_comprobante_tipo").val();
		let chk_comprobante_numero = $("#chk_comprobante_numero").prop("checked");
		let txt_comprobante_numero = $("#txt_comprobante_numero").val();
		let txt_tipo_pago = $("#txt_tipo_pago").val();
		let txt_moneda = $("#txt_moneda").val();
		let txt_observaciones = $("#txt_observaciones").val();
		let txt_igv = $("#txt_igv").val();
		let txt_costo_subtotal = $("#txt_costo_subtotal").attr("data-base"); //$("#txt_costo_subtotal").val();
		let txt_costo_igv = $("#txt_costo_igv").attr("data-base"); //$("#txt_costo_igv").val();
		let txt_costo_total = $("#txt_costo_total").attr("data-base"); //$("#txt_costo_total").val();
		let lista = [];
		let rows = $("#table_list .row_data");
		let cantidad_devueltos = 0;
		for (let idx=0; idx<rows.length; idx++){
			let row = $(rows[idx]);
			lista.push({
				indice: row.attr("data-indice"),
				codigo: row.attr("data-codigo"),
				producto_id: row.attr("data-producto"),
				almacen_general_id: row.attr("data-almacen_general"),
				almacen_tienda_id: row.attr("data-almacen_tienda"),
				moneda_id: 0,
				unidades: row.find(".td_cantidad input[type='number']").val(),
				devueltos: row.find(".td_devueltos input[type='number']").val(),
				precio_almacen: row.attr("data-costo"),
				precio_venta: row.find(".td_precio_venta input[type='number']").val(),
				precio_subtotal: row.find(".td_precio_subtotal input[type='number']").val(),
			});
			cantidad_devueltos += makeInt(row.find(".td_devueltos input[type='number']").val());
		}
		if (txt_fecha) {
			txt_fecha = $.datepicker.formatDate("yy-mm-dd", txt_fecha);
		}
		if (txt_tienda == null || txt_tienda == undefined || txt_tienda.length == 0){
			open_dialog_alert("No se detecta una tienda activa para registrar la venta.");
			return;
		} else if (txt_cliente.length == 0){
			open_dialog_alert("Ingrese el nombre del cliente");
			return;
		} else if (txt_moneda == null || txt_moneda == undefined || txt_moneda.length == 0){
			open_dialog_alert("El sistema no detecta que se haya registrado la moneda de codigo 'USD'.");
			return;
			txt_moneda = "USD";
		} else if (lista.length == 0){
			open_dialog_alert("No se detectan productos en la lista de venta");
			return;
		}
		if (cantidad_devueltos <= 0){
			open_dialog_alert("No se a agregado la cantidad de productos devueltos.");
			return;
		}
		if (txt_igv == null || txt_igv == undefined || txt_igv.length == 0){
			txt_igv = 18;
		}
		
		if (txt_observaciones.length > 0){
			txt_observaciones = JSON.parse(txt_observaciones);
		} else {
			txt_observaciones = {};
		}
		let sub_estado = $("#txt_sub_estado").val();
		let cambio = makeFloat($("#txt_moneda").attr("data-cambio"));
		txt_observaciones["comprobante_base"] = txt_codigo;
		txt_observaciones["cambio"] = cambio;
		txt_observaciones["comprobante_numero"] = chk_comprobante_numero;
		open_loading();
		$.ajax({
			type: "POST",
			dataType: "json",
			url: "control/ctrl_venta.php",
			data: {
				accion: "devolver_venta",
				txt_tienda: txt_tienda,
				txt_codigo: txt_codigo,
				txt_eliminado: txt_eliminado,
				txt_fecha: txt_fecha,
				txt_hora: txt_hora,
				txt_cliente: txt_cliente,
				txt_cliente_documento_tipo: txt_cliente_documento_tipo,
				txt_cliente_documento_numero: txt_cliente_documento_numero,
				txt_comprobante_tipo: txt_comprobante_tipo,
				txt_comprobante_numero: txt_comprobante_numero,
				txt_tipo_pago: txt_tipo_pago,
				txt_moneda: txt_moneda,
				txt_igv: txt_igv,
				txt_costo_subtotal: txt_costo_subtotal,
				txt_costo_igv: txt_costo_igv,
				txt_costo_total: txt_costo_total,
				txt_estado_registro: "Completado",
				txt_observaciones: JSON.stringify(txt_observaciones),
				txt_lista: JSON.stringify(lista),
			},
			success: function (datos) {
				//console.log(datos);
				if (datos.estado == "ok") {
					cargar_lista();
					$("#txt_codigo").val(datos.codigo);
					$("#btn_registrar_2").removeClass("buttons_inactive");
					$("#btn_registrar_2").addClass("buttons_active");
					$("#btn_registrar_2").css("display", "flex");
					$("#btn_cancelar_1").click();
					activar_guardar(false);
					
					open_loading();
					$.ajax({
						type: 'POST',
						dataType: "json",
						url: "control/ctrl_documento.php",
						data: {
							accion: "doc_devolucion",
							codigo: datos.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 cargando la nota de devolución.");
							}
							close_loading();
						},
						error: function(){
							close_loading();
						}
					});
				} else if (datos.estado == "error") {
					open_dialog_alert(datos.mensaje);
				} else {
					open_dialog_alert("ocurrió un error inesperado.");
				}
				close_loading();
			},
			error: function (){
				close_loading();
				open_dialog_alert("ocurrió un error inesperado.");
			}
		});
		
	});
	$("#btn_vincular_2").click(function(){
		open_dialog_confirm("¿Desea generar una nueva venta?<br />Se generará una nueva venta vinculada a esta venta.",function(){
			let txt_codigo = $("#txt_codigo").val();
			let txt_tienda = $("#txt_tienda").val();
			let txt_fecha = $("#txt_fecha").datepicker("getDate");
			let txt_hora = $("#txt_hora").val();
			txt_fecha = $.datepicker.formatDate("yy-mm-dd", txt_fecha);
			open_loading();
			$.ajax({
				type: 'POST',
				dataType: "json",
				url: "control/ctrl_venta.php",
				data: {
					accion: "vincular_venta",
					txt_codigo: txt_codigo,
					txt_tienda: txt_tienda,
					txt_fecha: txt_fecha,
					txt_hora: txt_hora,
				},
				success: function (datos) {
					//console.log(datos);
					close_loading();
					if (datos.estado == "ok") {
						$("#panel_splash").css("display", "flex");
						$("#panel_edit").css("display", "none");
						$("#btn_cancelar_1").click();
						activar_guardar(false);
						open_dialog_alert("<span style='color:green;'>Se generó una nueva venta vinculada a este documento..</span>", function(){
							window.location = "ventas.php";
						});
					} else {
						open_dialog_alert("Ocurrió un error actualizando el estado de la venta.");
					}
				},
				error: function(){
					close_loading();
					open_dialog_alert("Ocurrió un error actualizando el estado de la venta.");
				}
			});
		});
	});
	$("#txt_buscar_venta").on("input", function(event) {
		if (event.originalEvent.inputType === 'insertLineBreak') { // Comprueba si se ha ingresado un "retorno de carro" (Enter)
			let valor = $(this).val();
			ctrl_datos.buscar = valor;
			cargar_lista();
		}
	});
	$("#txt_buscar_venta").on("keydown", function(event) {
		if (event.keyCode === 13) {
			let valor = $(this).val();
			ctrl_datos.buscar = valor;
			cargar_lista();
			event.preventDefault();
		}
	});
	$("#txt_buscar_venta").next().click(function(){
		if ($("#txt_buscar_venta").prop("disabled")){
			return;
		}
		let valor = $("#txt_buscar_venta").val();
		ctrl_datos.buscar = valor;
		cargar_lista();
	});
	$("#txt_filtro_tipo").change(function(){
		ctrl_datos.filtro_tipo = $(this).val();
		cargar_productos();
	});
	$("#txt_filtro_almacenes").change(function(){
		ctrl_datos.filtro_almacenes = $(this).val();
		cargar_productos();
	});
	$("#lista_productos").on("click", ".row_store", function(e){
		tabla_lista = "#lista_productos";
		$("#lista_productos .row_select").removeClass("row_select");
		$(this).addClass("row_select");
	});
	$("#lista_productos").on("dblclick", ".row_store", function(){
		if ($("#accion").val() != "nuevo" && $("#accion").val() != "editar" && $("#accion").val() != "proforma"){
			return;
		}
		let codigo = $(this).attr("data-codigo");
		let producto = $(this).attr("data-producto");
		codigo = ""+codigo;
		if ($("#accion").val() == "proforma"){
			$.ajax({
				type: "POST",
				dataType: "json",
				url: "control/ctrl_almacen_general.php",
				data: {
					accion: "producto",
					buscar: producto,
				},
				success: function (datos) {
					//console.log(datos);
					if (datos.estado == "ok") {
						let row = datos.datos;
						let cambio = makeFloat($("#txt_moneda").attr("data-cambio"));
						
						let row_data = null;
						row_data = agregar_fila_producto_proforma(0, row.producto_id, row.producto_nombre, row.almacen_tienda_id, row.igv_porcentaje);
						let unidades = row_data.find(".td_cantidad input[type='number']");
						let precio_venta = row_data.find(".td_precio_venta input[type='number']");
						let precio_subtotal = row_data.find(".td_precio_subtotal input[type='number']");
						row_data.attr("data-almacen_general", row.almacen_general_id);
						row_data.attr("data-almacen_tienda", row.almacen_tienda_id);
						row_data.attr("data-costo", row.precio_venta);
						unidades.attr("data-costo", row.precio_venta.toFixed(2));
						if (parseInt(unidades.val()) > row.unidades){
							unidades.val(row.unidades);
						}
						if (parseFloat(precio_venta.val()) < parseFloat(row.precio_venta)){
							precio_venta.val((makeFloat(row.precio_venta)*cambio).toFixed(2));
						}
						precio_subtotal.val((makeFloat(precio_venta.val())*makeInt(unidades.val())).toFixed(2));
						actualizar_costo_total_proforma();
						vista_columnas_tabla();
					}
				},
				error: function (){
					open_dialog_alert("Ocurrió un error buscando los datos del producto");
				}
			});
			return
		}
		if (codigo == "0"){
			return;
		}
		$.ajax({
			type: "POST",
			dataType: "json",
			url: "control/ctrl_almacen_tienda.php",
			data: {
				accion: "datos",
				buscar: codigo,
			},
			success: function (datos) {
				//console.log(datos);
				if (datos.estado == "ok") {
					let row = datos.datos;
					let cambio = makeFloat($("#txt_moneda").attr("data-cambio"));
					
					let row_data = null;
					if ($("#accion").val() == "proforma"){
						row_data = agregar_fila_producto_proforma(0, row.producto_id, row.producto_nombre, row.almacen_tienda_id, row.igv_porcentaje);
					} else {
						row_data = agregar_fila_producto(0, row.producto_id, row.producto_nombre, row.almacen_tienda_id, row.igv_porcentaje);
					}
					
					let unidades = row_data.find(".td_cantidad input[type='number']");
					let precio_venta = row_data.find(".td_precio_venta input[type='number']");
					let precio_subtotal = row_data.find(".td_precio_subtotal input[type='number']");
					if ($("#accion").val() != "proforma"){
						unidades.attr("max", row.unidades);
					}
					row_data.attr("data-almacen_general", row.almacen_general_id);
					row_data.attr("data-almacen_tienda", row.almacen_tienda_id);
					row_data.attr("data-costo", row.precio_venta);
					unidades.attr("data-costo", row.precio_venta.toFixed(2));
					if (parseInt(unidades.val()) > row.unidades){
						unidades.val(row.unidades);
					}
					if (parseFloat(precio_venta.val()) < parseFloat(row.precio_venta)){
						precio_venta.val((makeFloat(row.precio_venta)*cambio).toFixed(2));
					}
					precio_subtotal.val((makeFloat(precio_venta.val())*makeInt(unidades.val())).toFixed(2));
					if ($("#accion").val() == "proforma"){
						actualizar_costo_total_proforma();
					} else {
						actualizar_costo_total();
					}
					vista_columnas_tabla();
				}
			},
			error: function (){
				open_dialog_alert("Ocurrió un error buscando los datos del producto");
			}
		});
	});
	$("#panel_edit").on("change", "input", function(){ activar_guardar(true); });
	$("#panel_edit").on("change", "select", function(){ activar_guardar(true); });
    $("#btn_order_asc").click(function(){
		if ($("#txt_buscar_producto").prop("disabled")){
			return;
		}
		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");
		cargar_lista();
	});
    $("#btn_order_desc").click(function(){
		if ($("#txt_buscar_producto").prop("disabled")){
			return;
		}
		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");
		cargar_lista();
	});
	$(".opciones_adicionales_btn").click(function(){
		let panel = $(this).next();
		if (panel.hasClass("opciones_adicionales_view")){
			if (panel.css("display") != "none"){
				panel.slideUp(500);
			} else {
				if ($("#accion").val() == "nuevo" || $("#accion").val() == "editar" || $("#accion").val() == "proforma"){
					panel.slideDown(500);
				}
			}
		}
	});
	$("#chk_comprobante_numero").click(function(){
		if ($("#chk_comprobante_numero").prop("checked")){
			$("#txt_comprobante_numero").prop("disabled", false);
		} else {
			$("#txt_comprobante_numero").prop("disabled", true);
		}
	});
	$("#txt_tipo_pago").change(function(){
		actualizar_costo_total();
		if ($("#txt_tipo_pago").val() == "Efectivo"){
			$("#txt_costo_total_base").parent().parent().css("display", "none");
			$("#txt_costo_tarjeta").parent().parent().css("display", "none");
		} else {
			$("#txt_costo_total_base").parent().parent().css("display", "flex");
			$("#txt_costo_tarjeta").parent().parent().css("display", "flex");
		}
	});
	$("#table_list").on("change", ".td_devueltos input[type='number']", function(){
		let value = makeInt($(this).val());
		let maxim = makeInt($(this).attr("max"));
		if (value > maxim){
			$(this).val(maxim);
		}
		if (value < 0){
			$(this).val(0);
		}
		let row_data = $(this).closest(".row_data");
		let cantidad = row_data.find(".td_devueltos input[type='number']");
		let precio_venta = row_data.find(".td_precio_venta input[type='number']");
		let precio_venta_text = row_data.find(".td_precio_venta input[type='text']");
		let precio_subtotal = row_data.find(".td_precio_subtotal input[type='number']");
		let precio_subtotal_text = row_data.find(".td_precio_subtotal input[type='text']");
		precio_subtotal.val((makeInt(cantidad.val())*makeFloat(precio_venta.val())).toFixed(2));
		precio_subtotal_text.val((makeInt(precio_subtotal.val())*makeFloat(precio_venta.val())).toFixed(2));
		actualizar_costo_total()
		activar_guardar();
	});
	$("#table_list").on("change", ".td_precio_venta input[type='number']", function(){
		let cambio = makeFloat($("#txt_moneda").attr("data-cambio"));
		let row_data = $(this).closest(".row_data");
		let cantidad = row_data.find(".td_cantidad input[type='number']");
		let precio_venta = row_data.find(".td_precio_venta input[type='number']");
		let precio_subtotal = row_data.find(".td_precio_subtotal input[type='number']");
		precio_subtotal.val((makeInt(cantidad.val())*makeFloat(precio_venta.val())).toFixed(2));
		actualizar_costo_total()
	});
	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(fechaHoy);
	ctrl_datos.fecha_max = fecha_guardar(fechaHoy);
	$("#txt_filtro_fecha_1").val(fechaHoyFormateada);
	$("#txt_filtro_fecha_2").val(fechaHoyFormateada);
	$("#txt_filtro_fecha_1").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;
			cargar_lista();
		}
	});
	$("#txt_filtro_fecha_2").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;
			cargar_lista();
		}
	});
	$("#btn_producto_informacion").click(function(){
		if ($("#btn_producto_informacion").html() == "Ver mas +"){
			$("#btn_producto_informacion").html("Ver menos -");
			$("#producto_informacion .row_info_extra").css("display", "block");
		} else {
			$("#btn_producto_informacion").html("Ver mas +");
			$("#producto_informacion .row_info_extra").css("display", "none");
		}
	});
	var tabla_lista = "";
	$(document).keydown(function(event) {
		if (tabla_lista == "#lista_elementos"){
			if ($("#accion").val() == "nuevo" || $("#accion").val() == "editar"){
				return;
			}
		} else if (tabla_lista == "#lista_productos"){
			if ($("#accion").val() != "nuevo" && $("#accion").val() != "editar"){
				return;
			}
		} else if (tabla_lista == "#table_list"){
		} else if (tabla_lista == ""){
			return;
		}
		if (tabla_lista == "#lista_elementos" || tabla_lista == "#lista_productos"){
			let $filas = $(tabla_lista+' li');
			if ($filas.length == 0){
				return;
			}
			var ajustarScroll = function($elemento) {
				let pos_top = $(tabla_lista).position().top+($(tabla_lista).outerHeight(true)/2.0);
				pos_top -= $elemento.outerHeight(true)/2.0;
				$(tabla_lista).scrollTop($elemento.position().top+$(tabla_lista).scrollTop()-pos_top);
			}
			if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
				let $filaSeleccionada = $(tabla_lista+' .row_select');
				if (!$filaSeleccionada.length) {
					$filas.eq(0).click();
					$filas.eq(0).addClass('row_select');
					ajustarScroll($filas.eq(0));
					return;
				}
				let indiceSeleccionada = $filas.index($filaSeleccionada);
				if (event.key === 'ArrowUp' && indiceSeleccionada > 0) {
					$filaSeleccionada.removeClass('row_select');
					$filas.eq(indiceSeleccionada - 1).click();
					$filas.eq(indiceSeleccionada - 1).addClass('row_select');
					ajustarScroll($filas.eq(indiceSeleccionada - 1));
				} else if (event.key === 'ArrowDown' && indiceSeleccionada < $filas.length - 1) {
					$filaSeleccionada.removeClass('row_select');
					$filas.eq(indiceSeleccionada + 1).click();
					$filas.eq(indiceSeleccionada + 1).addClass('row_select');
					ajustarScroll($filas.eq(indiceSeleccionada + 1));
				}
				event.preventDefault();
			}
		} else if(tabla_lista == "#table_list"){
			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_lista_moneda();
	cargar_lista_igv();
	setInterval(actualizarHora, 1000);
	actualizarHora();
	cargar_lista();
	close_loading();
	vista_columnas_tabla();
	<?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>
