<?php $__env->startSection('CSS'); ?>
<?php echo HTML::style('DataTables/dataTables.bootstrap.min.css'); ?>

<?php echo HTML::style('DataTables/responsive.dataTables.min.css'); ?>

<?php echo HTML::style('bootstrap-daterangepicker/daterangepicker.css'); ?>

<?php echo HTML::style('Intl-Tel-Input/17.0.3/css/intlTelInput.min.css'); ?>

<?php echo HTML::style('bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css'); ?>

<?php echo HTML::style('bootstrap-select/css/bootstrap-select.min.css'); ?>

<?php echo HTML::style('DataTables/fixedHeader.dataTables.min.css'); ?>

<style type="text/css">
	@media (max-width: 450px) { .ModalEliminar .modal-dialog { width: auto; } }
	@media (min-width: 451px) { .ModalEliminar .modal-dialog { width: 450px; } }
	.progress {
		position: relative;
	}
	.progress span {
		position: absolute;
		display: block;
		width: 100%;
		color: black;
	}
	.table > tbody > tr.success > td {
		background-color: #b4ef9d;
	}
	.table > tbody > tr.success:hover > td {
		background-color: #9fec82;
	}
	.table > tbody > tr.info > td {
		background-color: #b1dff6;
	}
	.table > tbody > tr.info:hover > td {
		background-color: #95d6f6;
	}
	.table > tbody > tr.warning > td {
		background-color: #f5e8a5;
	}
	.table-hover > tbody > tr.warning:hover > td {
		background-color: #f5e490;
	}
	.table > tbody > tr.danger > td {
		background-color: #f6b9b9;
	}
	.table > tbody > tr.danger:hover > td {
		background-color: #f89494;
	}
	.table-bordered {
		border: 1px solid #7a7a7a;
	}
	.table-bordered > thead > tr > th {
		border: 1px solid #7a7a7a;
	}
	.table-bordered > tbody > tr > td, .table-bordered > tfoot > tr > td {
		border: 1px solid #7a7a7a;
	}
	.country-list {
		z-index: 10000 !important;
		/* position: fixed !important; */
	}
	.intl-tel-input input[type="text"] {
		padding-left: 52px !important;
	}
	.intl-tel-input {
		width: 100%;
		display: block !important;
	}
	.intl-tel-input .iti-flag .arrow {
		border: none;
	}
	.bootstrap-select.form-control:not([class*="col-"]) {
		width: unset !important;
	}
	table.table.fixedHeader-floating {
		top: 35px !important;
		z-index: 99;
	}
	.intl-tel-input, .iti {
		height: 34px !important;
		width: 100%;
		/*display: table-cell;*/
	}
	.mdAvatar .modal-dialog .modal-content .modal-header, .modalCrearVenta .modal-dialog .modal-content .modal-header {
		background-color: #363B3F;
	}
	.mdAvatar .modal-dialog .modal-content .bootstrap-dialog-title{
		display: block;
	}
	.modalCrearVenta .bootstrap-select.form-control:not([class*="col-"]){
		width: 100% !important;
	}
	.dvEnvio{
		display: flex;
    	justify-content: space-around;
	}
	.datos {
		width: 49.5%;
	}
	.desactivado {
		opacity: 0.5;
		pointer-events: none;
		display: none;
	}
	#frmPaso4 .radio-inline + span{
		display: block;
	}
	.btn-aplicar {
		background: #428BCA;
		color: white;
	}
	.btn-aplicar:hover {
		background: #3276B1;
		color: white;
	}
	.btn-aplicar:focus {
		color: white;
	}
	.product-selection-view {
		display: none;
	}
</style>
<?php $__env->stopSection(); ?>

<?php $__env->startSection('Contenido'); ?>
<?php
	//if( Auth::user()->tipo == 'EC' ){
		/*$Empleado = Empleado::find( Empleado::select('id')->where('users_id', '=', Auth::id())->first()->id );
		$CargoEmpleado = Cargo::select('nombre')->where('id', '=', $Empleado->cargos_id)->first()->nombre;*/
	//}
?>
<div class="row">
	<div class="col-md-12">
		<h2><i class="fa fa-shopping-cart"></i> Gestión de ventas en línea </h2>
	</div><!--/col-md-12-->
</div><!--/row-->

<div class="row">
	<div class="col-md-12">
		<?php if(Session::has('message')): ?>
		<div class="alert alert-info"><?php echo Session::get('message'); ?></div>
		<?php endif; ?>
	</div>
</div>

<div class="row">
	<div class="col-md-12">
		<div class="block-web">
			<div class="header">
				<h3 class="content-header">
					Listado de ventas realizadas
					<button type="button" class="btn btn-primary btn-agregar"  style="border-radius: 3px;">Agregar venta</button>
					<div data-toggle="buttons" class="button-group pull-right">
						<a class="refresh tooltips" data-toggle="tooltip" data-original-title="Actualizar registros" onclick="Actualizar()" href="javascript:Actualizar()" style="color: rgba(0, 0, 0, 0.3)">
							<i class="fa fa-repeat"> </i>
						</a>
					</div>
				</h3>
			</div>
			<div class="porlets-content">
				<form id="frmFiltroFechas" class="form-inline" style="padding-bottom: 15px;">
					<div class="form-group">
						<label for="FiltroFechas" style="padding-top: 10px;"> Fecha: </label>
						<input id="FiltroFechas" type="text" name="filtrofechas" value="" readonly>
					</div>
					<div class="form-group">
						<label for="slEstadoPedido" style="/*padding-top: 10px;*/"> Estados: </label>
						<select class="form-control selectpicker" name="slEstadoPedido" multiple data-selected-text-format="count > 5">
							<option selected value="PENV"> Pendiente de envío </option>
							<option selected value="E"> Enviado </option>
							<option selected value="R"> Recibido </option>
							<option selected value="RP"> Retorno de producto </option>
							<option selected value="DD"> Devolución de dinero </option>
							<option selected value="RPDD"> Retorno y devolución </option>
							<option selected value="F"> Finalizada </option>
							<option selected value="PENT"> Pendiente de entrega </option>
							<option selected value="PEND"> Pendiente de descarga </option>
							<option selected value="PEVI"> Pendiente de visto </option>
							<option selected value="PENU"> Pendiente de usar </option>
							<option selected value="USAD"> Usado </option>
							<option selected value="PP"> Pendiente de pago </option>
							<option selected value="CPE"> Cancelado por pago en efectivo </option>
						</select>
					</div>
					<button type="submit" class="btn btn-primary tooltips" data-toggle="tooltip" data-original-title="Buscar"><i class="fa fa-search"></i></button>
					<button id="btnLimpiar" type="button" class="btn btn-default tooltips" data-toggle="tooltip" data-original-title="Limpiar"><i class="fa fa-paint-brush"></i></button>
				</form>
				<div class="table-responsive">
					<table class="table table-striped table-bordered table-hover" id="tblVentasRealizadas">
						<thead>
							<tr>
								<th class="text-center" style="width: 9%;"> Fecha </th>
								<th class="text-center"> Número de seguimiento </th>
								<th class="text-center"> Número de orden </th>
								<th class="text-center"> Información de comprador </th>
								<th class="text-center"> Correo de comprador </th>
								<th class="text-center"> Telefono de comprador </th>
								<th class="text-center"> Nombre de comprador </th>
								<th class="text-center"> Información de envío </th>
								<th class="text-center" style=""> Información del pedido </th>
								<th class="text-center" style=""> Estado del pedido </th>
								<th class="text-center" style=""> Acciones </th>
							</tr>
							<!-- <tr>
								<th> Fecha </th>
								<th> Número de seguimiento </th>
								<th> Número de orden </th>
								<th> Información de comprador </th>
								<th> Información de envío </th>
								<th> Información del pedido </th>
								<th> Estado del pedido </th>
								<th> Acciones </th>
							</tr> -->
						</thead>
						<!-- <tfoot>
							<tr>
								<th> Fecha </th>
								<th> Número de seguimiento </th>
								<th> Número de orden </th>
								<th> Información de comprador </th>
								<th> Información de envío </th>
								<th> Información del pedido </th>
								<th> Estado del pedido </th>
								<th> Acciones </th>
							</tr>
						</tfoot> -->
					</table>
				</div>
				<div class="footer">
					<button type="button" class="btn btn-primary btn-agregar">Agregar venta</button>
				</div>
			</div>
		</div>
	</div>
</div><!--/row end-->
<?php $__env->stopSection(); ?>

<?php $__env->startSection('JS'); ?>
<?php echo HTML::script('DataTables/jquery.dataTables.min.js'); ?>

<?php echo HTML::script('DataTables/dataTables.bootstrap.min.js'); ?>

<?php echo HTML::script('DataTables/dataTables.responsive.min.js'); ?>

<?php echo HTML::script('bootstrap-daterangepicker/moment.min.js'); ?>

<?php echo HTML::script('bootstrap-daterangepicker/daterangepicker.js'); ?>

<?php echo HTML::script('Intl-Tel-Input/17.0.3/js/intlTelInput-jquery17-0-16.min.js'); ?>

<?php echo HTML::script('country-region-selector/crs.min.js'); ?>

<?php /*<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/jquery.validate.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/additional-methods.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/localization/messages_es.min.js"></script> */ ?>
<?php echo HTML::script('jQueryValidate/jquery.validate.min.js'); ?>

<?php echo HTML::script('jQueryValidate/additional-methods.min.js'); ?>

<?php echo HTML::script('jQueryValidate/jquery.validationEngine-es.js'); ?>

<?php echo HTML::script('jQueryValidate/messages_es.min.js'); ?>

<?php echo HTML::script('AccountingJS/accounting.min.js'); ?>

<?php echo HTML::script('jquery-browser-plugin/jquery.browser.min.js'); ?>

<?php echo HTML::script('bootstrap-select/js/bootstrap-select.min.js'); ?>

<?php echo HTML::script('bootstrap-select/js/i18n/defaults-es_CL.min.js'); ?>

<?php echo HTML::script('DataTables/dataTables.fixedHeader.min.js'); ?>

<?php echo HTML::script('Alphanum/jquery.alphanum.min.js'); ?>

<?php echo HTML::script('WebPro/plugins/bootstrap-wizard/bootstrap-wizard.min.js'); ?>

<?php echo HTML::script('WebPro/plugins/bootstrap-wizard/bootstrap-wizard.min.js'); ?>

<?php
	$Cliente = Cliente::select('id', 'codigo_moneda', 'simbolo_moneda', 'pais')->where('users_id', '=', Auth::id())->first();
	$ConfTienda = ConfiguracionTienda::select('separador_decimal', 'posicion_moneda')->where('clientes_id', '=', $Cliente->id)->first();
	$Productos = DB::table('productos_servicios AS ps')
	->select('ps.id AS idPS', 'ps.tipo', 'ps.nombre', 'ps.sin_variaciones', 'ps.precio AS precioPS', 'ps.cantidad_ilimitada AS ilimitado', 'vps.id AS idVPS', 'vps.precio AS precioVPS', 'vps.inventario', 'vps.margen_ganancia AS margenGanancia', 'vps.tipo_margen_ganancia AS tipoMargenGanancia')
	->join('variaciones_productos_servicios AS vps', 'vps.productos_servicios_id', '=', 'ps.id')
	->where('ps.clientes_id', '=', $Cliente->id)
	->where('ps.activo', '=', 1)
	/*->whereRaw("(ps.tipo IN('PD', 'S') OR (ps.tipo = 'P'))")*/
	->orderBy('ps.id', 'ASC')
	->groupBy('ps.id')
	->get();
	DB::statement('SET SESSION group_concat_max_len = 10000000000000000000;');
	$query = 'SELECT ps.id AS idPS, ps.nombre, ps.precio AS precioPS, ps.cantidad_ilimitada AS ilimitado, vps.id AS idVPS, ps.tipo, ps.sin_variaciones,
		(
			IF(	
				(SELECT COUNT(vps.id) FROM variaciones_productos_servicios AS vps WHERE vps.productos_servicios_id = ps.id) > 0,
				(SELECT
					CONCAT(\'[\',
						GROUP_CONCAT(
							\'{\',
								\'"idPS":"\',ps.id,\'",\'
								\'"idVPS":"\',vps.id,\'",\'
								\'"nombre":"\',ps.nombre,\'",\',
								\'"precio":"\',vps.precio,\'",\',
								\'"inventario":"\',vps.inventario,\'",\'
								\'"ilimitado":"\',vps.cantidad_ilimitada,\'",\'
								\'"margenGanancia": "\',IF(vps.margen_ganancia > 0, vps.margen_ganancia, 0.00),\'",\'
								\'"tipoMargenGanancia": "\',IF(vps.tipo_margen_ganancia <> \'\', vps.tipo_margen_ganancia, \'\'),\'",\'
								\'"atributos": \',
									IF(  ps.sin_variaciones = 0, 
										(
											SELECT
												CONCAT(\'[\',
													GROUP_CONCAT(\'"\',aps.nombre,\' : \',avps.valor,\'"\')
												,\']\')
											FROM
												atributos_x_variaciones_productos AS avps
											INNER JOIN
												atributos_productos_servicios AS aps
												ON aps.id = avps.atributos_productos_servicios_id
											WHERE
												avps.variaciones_productos_servicios_id = vps.id
										), 
										\'[]\' 
									),
								\'\'
							,\'}
						\')
					,\']\')
				FROM
					variaciones_productos_servicios AS vps
				WHERE
					vps.productos_servicios_id = ps.id
				),
				\'{"0":""}\'
			)
		) AS variaciones
	FROM
		productos_servicios  as ps 
	INNER JOIN 
		variaciones_productos_servicios as vps 
		ON(vps.productos_servicios_id = ps.id) 
	WHERE 
		ps.activo = 1
	AND 
		(ps.tipo IN(\'PD\', \'S\') OR (ps.tipo = \'P\'))
	AND 
		ps.clientes_id = '.$Cliente->id.'
	GROUP BY (ps.id)';
	$ProductosV = DB::select(DB::raw($query));
	$ProductosJSON = json_encode($Productos);
	$ProductosJSON2 = json_encode($ProductosV);
	$sql = "SELECT
		IF(
			((SELECT COUNT(id) FROM productos_servicios WHERE clientes_id = @idC) > 0),
			(SELECT
				CONCAT('[',
					GROUP_CONCAT('
						{
							\"idPS\": \"',ps.id,'\",
							\"nombrePS\": \"',REPLACE(ps.nombre, '\"', \"'\"),'\",
							\"relacionados\": ',(
								IF(
									((SELECT COUNT(id) FROM ps_relacionados WHERE principal = ps.id) > 0),
									(SELECT
										CONCAT('[',
											GROUP_CONCAT('{
												\"idPS\": \"',r.id,'\",
												\"nombrePS\": \"',REPLACE(r.nombre, '\"', \"'\"),'\"
											}')
										,']')
									FROM
										ps_relacionados AS psr
									INNER JOIN
										productos_servicios AS r
										ON r.id = psr.relacionado
									WHERE
										psr.principal = ps.id
									),
									'[]'
								)
							)
						,'}')
				,']') AS productos
			FROM
				productos_servicios AS ps
			WHERE
				ps.clientes_id = @idC
			),
			'[]'
		) AS productos
	;";
	$sql = str_replace('@idC', $Cliente->id, $sql);
	$jSonProductosR = DB::select(DB::raw($sql));
?>
<script type="text/javascript">
	var productos = <?php echo $ProductosJSON; ?>;
	var productos2 = <?php echo $ProductosJSON2; ?>;
	var jSonProductosR = <?php echo $jSonProductosR[0]->productos; ?>;

	$.validator.addMethod("glibphonenumber", function(value, element){
		return $(element).intlTelInput("isValidNumber");
	}, "El número de teléfono es inválido");
	$.validator.addMethod("zipcode", function(value, element){
		return this.optional(element) || /^\d{5}(?:-\d{4})?$/.test(value);
	}, "El código postal ingresado es inválido");
	var codigoMoneda = "<?php echo $Cliente->codigo_moneda; ?>";
	var simboloMoneda = "<?php echo $Cliente->simbolo_moneda; ?>";
	var separadorDecimales = "<?php echo $ConfTienda->separador_decimal; ?>";
	var posicionMoneda = "<?php echo $ConfTienda->posicion_moneda; ?>";
	function Actualizar(){
		var table = $("#tblVentasRealizadas").DataTable();
		table.ajax.reload(null, false);
	}
	function guardarSeguimiento(idP){
		$.isLoading({ text: "Cargando..." }); NProgress.start();
		var idP = idP;
		$.post(
			"<?php echo URL::route('SysWebVentasRealizadasModificarPedido'); ?>",
			{idP: idP, proceso: "seguimiento", numero_seguimiento: $(".txtNSeguimiento"+idP).val()},
			function(data){
				if(data.success){
					$.isLoading("hide"); NProgress.done();
					var table = $("#tblVentasRealizadas").DataTable();
					table.ajax.reload(null, false);
					if(data.success){
						new PNotify({ title: "Realizado", text: data.mensaje, type: "success" });
					}
					else{
						if(data.mensaje != ''){ new PNotify({ title: "Error", text: data.mensaje, type: "error" }); }
					}
				}
				else{
					if(data.mensaje != ''){ new PNotify({ title: "Error", text: data.mensaje, type: "error" }); }
				}
			},
			"json"
		);
	}
	function guardarEstado(idP){
		$.isLoading({ text: "Cargando..." }); NProgress.start();
		var idP = idP;
		$.post(
			"<?php echo URL::route('SysWebVentasRealizadasModificarPedido'); ?>",
			{idP: idP, proceso: "estado", estado: $(".slEstadoPedido"+idP).val(), pasarela: $(".slEstadoPedido"+idP).closest("tr").find(".tpPasarela").val()},
			function(data){
				if(data.success){
					$.isLoading("hide"); NProgress.done();
					var table = $("#tblVentasRealizadas").DataTable();
					table.ajax.reload(null, false);
					if(data.success){
						new PNotify({ title: "Realizado", text: data.mensaje, type: "success" });
					}
					else{
						if(data.mensaje != ''){ new PNotify({ title: "Error", text: data.mensaje, type: "error" }); }
					}
				}
				else{
					if(data.mensaje != ''){ new PNotify({ title: "Error", text: data.mensaje, type: "error" }); }
				}
			},
			"json"
		);
	}
	function verInfoComprador(idP){
		var idP = idP;
		var mensaje = '<form action="#" id="frmInformacionComprador"> \
			<div class="form-group"> \
				<label for="nombre_comprador"> Nombre del comprador | Titular de la tarjeta </label> \
				<input type="text" class="form-control" value="'+$(".hdnNombreComprador"+idP).val()+'" name="nombre_comprador"> \
				<span class="text-danger" id="errnombre_comprador"> </span> \
			</div> \
			<div class="form-group"> \
				<label for="correo_electronico_comprador"> Correo electrónico del comprador </label> \
				<input type="text" class="form-control" value="'+$(".hdnCorreoElectronicoComprador"+idP).val()+'" name="correo_electronico_comprador"> \
				<span class="text-danger" id="errcorreo_electronico_comprador"> </span> \
			</div> \
			<div class="form-group"> \
				<label for="telefono_comprador"> Número del teléfono del comprador </label> \
				<input type="text" class="form-control" value="'+$(".hdnTelefonoComprador"+idP).val()+'" name="telefono_comprador"> \
				<span class="text-danger" id="errtelefono_comprador"> </span> \
			</div> \
			<div class="form-group"> \
				<label for="pais_comprador"> País del comprador </label> \
				<select class="form-control crs-country" id="pais" name="pais_comprador" data-region-id="estado" data-default-option="Seleccione un país" data-whitelist="US,MX,CU,DM,DO,PR,BZ,GT,SV,HN,NI,CR,PA,VE,EC,CO,PE,BO,CL,PY,UY,AR,ES,GQ" data-value="shortcode" style="font-size: 13px; padding: 7.5px 11px !important;" data-default-value="'+$(".hdnPaisComprador"+idP).val()+'"> \
				</select> \
				<span class="text-danger" id="errpais_comprador"> </span> \
			</div> \
			<div class="form-group"> \
				<label for="estado_comprador"> Estado/Provincia/Departamento del comprador </label> \
				<select class="form-control" id="estado" name="estado_comprador" data-blank-option="Seleccione un estado" data-default-option="Seleccione un estado" style="font-size: 13px; padding: 7.5px 11px !important;" data-default-value="'+$(".hdnEstadoComprador"+idP).val()+'"> \
				</select> \
				<span class="text-danger" id="errestado_comprador"> </span> \
			</div> \
			<div class="form-group"> \
				<label for="ciudad_comprador"> Ciudad del comprador </label> \
				<input type="text" class="form-control" value="'+$(".hdnCiudadComprador"+idP).val()+'" name="ciudad_comprador"> \
				<span class="text-danger" id="errciudad_comprador"> </span> \
			</div> \
			<div class="form-group"> \
				<label for="codigo_postal_comprador"> Código postal del comprador </label> \
				<input type="text" class="form-control" value="'+$(".hdnCodigoPostalComprador"+idP).val()+'" name="codigo_postal_comprador"> \
				<span class="text-danger" id="errcodigo_postal_comprador"> </span> \
			</div> \
			<div class="form-group"> \
				<label for="direccion_comprador"> Dirección del comprador </label> \
				<input type="text" class="form-control" value="'+$(".hdnDireccionComprador"+idP).val()+'" name="direccion_comprador"> \
				<span class="text-danger" id="errdireccion_comprador"> </span> \
			</div> \
			<div class="form-group"> \
				<label for="direccion2_comprador"> Segunda dirección o referencia del comprador </label> \
				<input type="text" class="form-control" value="'+$(".hdnDireccion2Comprador"+idP).val()+'" name="direccion2_comprador"> \
				<span class="text-danger" id="errdireccion2_comprador"> </span> \
			</div> \
			<div class="form-group"> \
				<label for="comentario"> Comentario de la compra </label> \
				<textarea class="form-control" name="comentario">'+$(".hdnComentario"+idP).val()+'</textarea> \
				<span class="text-danger" id="errcomentario"> </span> \
			</div> \
			<input type="hidden" value="'+idP+'" name="idP"> \
			<input type="hidden" value="actualizarComprador" name="proceso"> \
		</form>';
		BootstrapDialog.show({
			cssClass: "mdAvatar",
			title: "Información del comprador",
			message: mensaje,
			draggable: true,
			buttons: [{
				id: "btnCambiar",
				label: "Editar",
				cssClass: "btn-warning btn-lg btn-block",
				action: function(dialogItself){
					if( dialogItself.getModalBody().find("#frmInformacionComprador").valid() ){
						$.isLoading({ text: "Cargando..." }); NProgress.start();
						dialogItself.getModalBody().find("input[name='telefono_comprador']").val( dialogItself.getModalBody().find("input[name='telefono_comprador']").intlTelInput("getNumber") );
						$("#btnCambiar").prop("disabled", true).html('<i class="fa fa-spinner fa-spin"></i> Procesando...');
						$.post(
							"<?php echo URL::route('SysWebVentasRealizadasModificarPedido'); ?>",
							$("#frmInformacionComprador").serialize(),
							function(data){
								$.isLoading("hide"); NProgress.done();
								$("#btnCambiar").html("Editar").prop("disabled", false);
								if(data.success){
									dialogItself.close();
									var table = $("#tblVentasRealizadas").DataTable();
									table.ajax.reload(null, false);
									new PNotify({ title: "Realizado", text: data.mensaje, type: "success" });
								}
								else{
									if(data.mensaje != ''){ new PNotify({ title: "Error", text: data.mensaje, type: "error" }); }
									$.each(data.errMensajes, function(key, value){ if(value != ''){ $("#err"+key).html(value); } else{ $("#err"+key).html(""); } });
								}
							},
							"json"
						);
					}
				}
			}],
			onshown: function(dialogItself){
				var defaultCountry = $(".hdnPaisComprador"+idP).val();
				var defaultState = $(".hdnEstadoComprador"+idP).val();
				var modalBody = dialogItself.getModalBody();
				$("body").addClass("modal-open");
				dialogItself.getModalBody().find("input[name='telefono_comprador']").intlTelInput("setCountry", $(".hdnPaisComprador"+idP).val());
				dialogItself.getModalBody().find("input[name='telefono_comprador']").intlTelInput({
					utilsScript: "<?php echo asset('Intl-Tel-Input/17.0.3/js/utils17-0-16.min.js'); ?>"
				});
				// crs.init(); // SE INICILIZA LOS SELECTORES DE PAIS Y ESTADO DEL COMPRADOR
				var shippingCountrySelector = modalBody.find('[name="pais_comprador"]');
				var shippingCountryList = Array.from((shippingCountrySelector.attr("data-whitelist")).split(","));
				getCountryStateCity().then(function(data){
					data.forEach(country => {
						// SE CREAN LAS OPCIONES PARA PAISES DE ENVIO
						if(shippingCountryList.includes(country.iso2)){
							shippingCountrySelector.append($('<option>', {
								value: country.iso2,
								text: country.name
							}));
						}
					});
					modalBody.find("#pais").val(defaultCountry);
					modalBody.find("#pais").change();
				});
				dialogItself.getModalBody().find("#pais").change(function(){
					if( $(this).val() != "" ){
						$(this).addClass("seleccionado");
						dialogItself.getModalBody().find("input[name='telefono_comprador']").intlTelInput("setCountry", $(this).val());
					}
					else{
						$(this).removeClass("seleccionado");
						dialogItself.getModalBody().find("#estado").removeClass("seleccionado");
					}
					var parametersState = {"getData": "state", "countryCode": $(this).val(), "stateCode": "SS"};
					// AGREGANDO OPCIONES CON CODGO ISO
					getCountryStateCity(parametersState).then(function(data){
						var option = "";
						// ORDENAR ESTADOS ALFABETICAMENTE
						data.sort((a, b) => a.name.localeCompare(b.name));
						// CREANDO HTML DE OPCIONES PARA EL SELECT
						$.each(data, function(i, state){
							option += '<option value="'+state.name+'" data-iso="'+state.iso2+'">'+state.name+'</option>';
						});
						modalBody.find("#estado").html(option);
						// ASIGNANDO ESTADO POR DEFECTO
						modalBody.find("#estado").val(defaultState);
						modalBody.find("#estado").change();
					}).catch(function(error){
						console.error("Error:", error);
					});
				});
				dialogItself.getModalBody().find("#estado").change(function(){
					if( $(this).val() != "" ){
						$(this).addClass("seleccionado");
					}
					else{
						$(this).removeClass("seleccionado");
					}
				});
				dialogItself.getModalBody().find("#frmInformacionComprador").validate({
					lang: "es",
					onkeyup: false,
					errorClass: "text-danger",
					errorElement: "span",
					rules: {
						nombre_comprador: {
							required: true
						},
						correo_electronico_comprador: {
							email: true,
							required: true
						},
						telefono_comprador: {
							required: true,
							glibphonenumber: true
						},
						pais_comprador: {
							required: true
						},
						estado_comprador: {
							required: true
						},
						ciudad_comprador: {
							required: true
						},
						codigo_postal_comprador: {
							required: true,
							zipcode: true
						},
						direccion_comprador: {
							required: true
						}
					},
					submitHandler: function(form){
						$("#btnCambiar").trigger("click");
					}
				});
			},
			onhidden: function(dialogRef){
				$("body").removeClass("modal-open");
			}
		});
	}
	function verInfoEnvio(idP){
		var idP = idP;
		var mensaje = '<form action="#" id="frmInformacionEnvio"> \
			<div class="form-group"> \
				<label for="nombre_receptor"> Nombre de quien recibirá el paquete </label> \
				<input type="text" class="form-control" value="'+$(".hdnNombreReceptor"+idP).val()+'" name="nombre_receptor"> \
				<span class="text-danger" id="errnombre_receptor"> </span> \
			</div> \
			<div class="form-group"> \
				<label for="correo_electronico_receptor"> Correo electrónico de quien recibirá el paquete </label> \
				<input type="text" class="form-control" value="'+$(".hdnCorreoElectronicoReceptor"+idP).val()+'" name="correo_electronico_comprador"> \
				<span class="text-danger" id="errcorreo_electronico_comprador"> </span> \
			</div> \
			<div class="form-group"> \
				<label for="telefono_receptor"> Número del teléfono de quien recibirá el paquete </label> \
				<input type="text" class="form-control" value="'+$(".hdnTelefonoReceptor"+idP).val()+'" name="telefono_receptor"> \
				<span class="text-danger" id="errtelefono_receptor"> </span> \
			</div> \
			<div class="form-group"> \
				<label for="pais_envio"> País de envío </label> \
				<select class="form-control " id="pais" name="pais_envio" data-region-id="estado" data-default-option="Seleccione un país" data-whitelist="US,MX,CU,DM,DO,PR,BZ,GT,SV,HN,NI,CR,PA,VE,EC,CO,PE,BO,CL,PY,UY,AR,ES,GQ" data-value="shortcode" style="font-size: 13px; padding: 7.5px 11px !important;" data-default-value="'+$(".hdnPaisEnvio"+idP).val()+'"> \
				</select> \
				<span class="text-danger" id="errpais_envio"> </span> \
			</div> \
			<div class="form-group"> \
				<label for="estado_envio"> Estado/Provincia/Departamento de envío </label> \
				<select class="form-control" id="estado" name="estado_envio" data-blank-option="Seleccione un estado" data-default-option="Seleccione un estado" style="font-size: 13px; padding: 7.5px 11px !important;" data-default-value="'+$(".hdnEstadoEnvio"+idP).val()+'"> \
				</select> \
				<span class="text-danger" id="errestado_envio"> </span> \
			</div> \
			<div class="form-group"> \
				<label for="ciudad_envio"> Ciudad de envío </label> \
				<input type="text" class="form-control" value="'+$(".hdnCiudadEnvio"+idP).val()+'" name="ciudad_envio"> \
				<span class="text-danger" id="errciudad_envio"> </span> \
			</div> \
			<div class="form-group"> \
				<label for="codigo_postal_envio"> Código postal de envío </label> \
				<input type="text" class="form-control" value="'+$(".hdnCodigoPostalEnvio"+idP).val()+'" name="codigo_postal_envio"> \
				<span class="text-danger" id="errcodigo_postal_envio"> </span> \
			</div> \
			<div class="form-group"> \
				<label for="direccion_envio"> Dirección de envío </label> \
				<input type="text" class="form-control" value="'+$(".hdnDireccionEnvio"+idP).val()+'" name="direccion_envio"> \
				<span class="text-danger" id="errdireccion_envio"> </span> \
			</div> \
			<div class="form-group"> \
				<label for="direccion2_envio"> Segunda dirección o referencia de envío </label> \
				<input type="text" class="form-control" value="'+$(".hdnDireccion2Envio"+idP).val()+'" name="direccion2_envio"> \
				<span class="text-danger" id="errdireccion2_envio"> </span> \
			</div> \
			<div class="form-group"> \
				<label for="comentarios_envio"> Comentario del envio </label> \
				<textarea class="form-control" name="comentarios_envio">'+$(".hdnComentariosEnvio"+idP).val()+'</textarea> \
				<span class="text-danger" id="errcomentarios_envio"> </span> \
			</div> \
			<input type="hidden" value="'+idP+'" name="idP"> \
			<input type="hidden" value="actualizarEnvio" name="proceso"> \
		</form>';
		BootstrapDialog.show({
			cssClass: "mdAvatar",
			title: "Información de envío",
			message: mensaje,
			draggable: true,
			buttons: [{
				id: "btnCambiar",
				label: "Editar",
				cssClass: "btn-warning btn-lg btn-block",
				action: function(dialogItself){
					if( dialogItself.getModalBody().find("#frmInformacionEnvio").valid() ){
						$.isLoading({ text: "Cargando..." }); NProgress.start();
						dialogItself.getModalBody().find("input[name='telefono_receptor']").val( dialogItself.getModalBody().find("input[name='telefono_receptor']").intlTelInput("getNumber") );
						$("#btnCambiar").prop("disabled", true).html('<i class="fa fa-spinner fa-spin"></i> Procesando...');
						$.post(
							"<?php echo URL::route('SysWebVentasRealizadasModificarPedido'); ?>",
							$("#frmInformacionEnvio").serialize(),
							function(data){
								$.isLoading("hide"); NProgress.done();
								$("#btnCambiar").html("Editar").prop("disabled", false);
								if(data.success){
									dialogItself.close();
									var table = $("#tblVentasRealizadas").DataTable();
									table.ajax.reload(null, false);
									new PNotify({ title: "Realizado", text: data.mensaje, type: "success" });
								}
								else{
									if(data.mensaje != ''){ new PNotify({ title: "Error", text: data.mensaje, type: "error" }); }
									$.each(data.errMensajes, function(key, value){ if(value != ''){ $("#err"+key).html(value); } else{ $("#err"+key).html(""); } });
								}
							},
							"json"
						);
					}
				}
			}],
			onshown: function(dialogItself){
				dialogItself.getModalBody().find("input[name='telefono_receptor']").intlTelInput("setCountry", $(".hdnPaisEnvio"+idP).val());
				dialogItself.getModalBody().find("input[name='telefono_receptor']").intlTelInput({
					utilsScript: "<?php echo asset('Intl-Tel-Input/17.0.3/js/utils17-0-16.min.js'); ?>"
				});
				crs.init();
				dialogItself.getModalBody().find("#pais").change(function(){
					if( $(this).val() != "" ){
						$(this).addClass("seleccionado");
						dialogItself.getModalBody().find("input[name='telefono_receptor']").intlTelInput("setCountry", $(this).val());
					}
					else{
						$(this).removeClass("seleccionado");
						dialogItself.getModalBody().find("#estado").removeClass("seleccionado");
					}
				});
				dialogItself.getModalBody().find("#estado").change(function(){
					if( $(this).val() != "" ){
						$(this).addClass("seleccionado");
					}
					else{
						$(this).removeClass("seleccionado");
					}
				});
				dialogItself.getModalBody().find("#frmInformacionEnvio").validate({
					lang: "es",
					onkeyup: false,
					errorClass: "text-danger",
					errorElement: "span",
					rules: {
						nombre_receptor: {
							required: true
						},
						correo_electronico_receptor: {
							email: true
						},
						telefono_receptor: {
							required: true,
							glibphonenumber: true
						},
						pais_envio: {
							required: true
						},
						estado_envio: {
							required: true
						},
						ciudad_envio: {
							required: true
						},
						codigo_postal_envio: {
							required: true,
							zipcode: true
						},
						direccion_envio: {
							required: true
						}
					},
					submitHandler: function(form){
						$("#btnCambiar").trigger("click");
					}
				});
			},
		});
	}
	function verDetalle(idP){
		var idP = idP;
		//var detallePedido = JSON.stringify(eval("("+$("li[data-detalle-pedido-"+idP+"]").attr("data-detalle-pedido-"+idP)+")"));
		var detallePedido = JSON.stringify(eval("("+$("a[data-detalle-pedido-"+idP+"]").attr("data-detalle-pedido-"+idP)+")"));
		detallePedido = JSON.parse(detallePedido);
		var tbody = '';
		var total = 0;
		var impuestos = parseFloat( $("a[data-impuestos-"+idP+"]").attr("data-impuestos-"+idP)+")" );
		var gastosEnvio = parseFloat( $("a[data-gastos-envio-"+idP+"]").attr("data-gastos-envio-"+idP)+")" );
		var cargo_extra = parseFloat( $("a[data-cargo-extra-"+idP+"]").attr("data-cargo-extra-"+idP)+")" );
		var descuentos = parseFloat( $("a[data-descuentos-"+idP+"]").attr("data-descuentos-"+idP)+")" );
		if( impuestos > 0 ){ total = total + impuestos; }
		if( gastosEnvio > 0 ){ total = total + gastosEnvio; }
		if( cargo_extra > 0 ){ total = total + cargo_extra; }
		if( descuentos > 0 ){ total = total - descuentos; }
		$.each(detallePedido, function(i, variacion){
			var subTotal = accounting.formatMoney(parseInt(variacion.cantidad)*parseFloat(variacion.precioVenta), {
				symbol: codigoMoneda+" "+simboloMoneda,
				precision: 2,
				decimal : separadorDecimales,
				thousand: (separadorDecimales==".")?",":".",
				format: (posicionMoneda=="I")?"%s%v":"%v%s"
			});
			var nombre = variacion.nombre;
			if( variacion.atributos.length ){
				nombre = nombre+" [";
				var ultimo = variacion.atributos.length;
				$.each(variacion.atributos, function(i, atributo){
					nombre = nombre+atributo.nombre+":"+atributo.valor;
					if( !(i === (ultimo-1)) ){
						nombre = nombre+", ";
					}
					else{
						nombre = nombre+"]";
					}
				});
			}
			tbody = tbody+'<tr> <td>'+nombre+'</td> <td class="text-center">'+variacion.cantidad+'</td> <td class="text-center">'+subTotal+'</td> </tr>';
			total = total+( parseInt(variacion.cantidad)*parseFloat(variacion.precioVenta) );
		});
		total = accounting.formatMoney(total, {
			symbol: codigoMoneda+" "+simboloMoneda,
			precision: 2,
			decimal : separadorDecimales,
			thousand: (separadorDecimales==".")?",":".",
			format: (posicionMoneda=="I")?"%s%v":"%v%s"
		});
		if( gastosEnvio > 0 ){
			gastosEnvio = accounting.formatMoney(gastosEnvio, {
				symbol: codigoMoneda+" "+simboloMoneda,
				precision: 2,
				decimal : separadorDecimales,
				thousand: (separadorDecimales==".")?",":".",
				format: (posicionMoneda=="I")?"%s%v":"%v%s"
			});
			tbody = tbody+'<tr> <th colspan="2" class="text-right"> Gastos de envío </th> <td class="text-center">'+gastosEnvio+'</td> </tr>';
		}
		if( gastosEnvio > 0 ){
			gastosEnvio = accounting.formatMoney(gastosEnvio, {
				symbol: codigoMoneda+" "+simboloMoneda,
				precision: 2,
				decimal : separadorDecimales,
				thousand: (separadorDecimales==".")?",":".",
				format: (posicionMoneda=="I")?"%s%v":"%v%s"
			});
			tbody = tbody+'<tr> <th colspan="2" class="text-right"> Gastos de envío </th> <td class="text-center">'+gastosEnvio+'</td> </tr>';
		}
		if( cargo_extra > 0 ){
			cargo_extra = accounting.formatMoney(cargo_extra, {
				symbol: codigoMoneda+" "+simboloMoneda,
				precision: 2,
				decimal : separadorDecimales,
				thousand: (separadorDecimales==".")?",":".",
				format: (posicionMoneda=="I")?"%s%v":"%v%s"
			});
			tbody = tbody+'<tr> <th colspan="2" class="text-right"> Cargos extra </th> <td class="text-center">'+cargo_extra+'</td> </tr>';
		}
		if( descuentos > 0 ){
			descuentos = accounting.formatMoney(descuentos, {
				symbol: codigoMoneda+" "+simboloMoneda,
				precision: 2,
				decimal : separadorDecimales,
				thousand: (separadorDecimales==".")?",":".",
				format: (posicionMoneda=="I")?"%s%v":"%v%s"
			});
			tbody = tbody+'<tr> <th colspan="2" class="text-right"> Descuentos </th> <td class="text-center">'+descuentos+'</td> </tr>';
		}
		if( impuestos > 0 ){
			impuestos = accounting.formatMoney(impuestos, {
				symbol: codigoMoneda+" "+simboloMoneda,
				precision: 2,
				decimal : separadorDecimales,
				thousand: (separadorDecimales==".")?",":".",
				format: (posicionMoneda=="I")?"%s%v":"%v%s"
			});
			tbody = tbody+'<tr> <th colspan="2" class="text-right"> Impuestos </th> <td class="text-center">'+impuestos+'</td> </tr>';
		}
		tbody = tbody+'<tr> <th colspan="2" class="text-right"> Total </th> <td class="text-center">'+total+'</td> </tr>';
		var mensaje = '<div class="row"> \
			<div class="col-xs-12 col-sm-12 col-md-12"> \
				<div class="table-responsive"> \
					<table class="table"> \
						<thead> \
							<tr> <th>Producto</th> <th class="text-center">Cantidad</th> <th class="text-center">Subtotal</th> </tr> \
						</thead> \
						<tbody class="tbodyProductos"> \
							'+tbody+' \
						</tbody> \
					</table> \
				</div> \
			</div> \
		</div>';
		BootstrapDialog.show({
			cssClass: "mdAvatar",
			title: "Detalle del pedido",
			message: mensaje,
			draggable: true,
			onshown: function(dialogItself){
				dialogItself.getModalBody().find("input[name='telefono_comprador']").intlTelInput("setCountry", $(".hdnPaisComprador"+idP).val());
				dialogItself.getModalBody().find("input[name='telefono_comprador']").intlTelInput({
					utilsScript: "<?php echo asset('Intl-Tel-Input/17.0.3/js/utils17-0-16.min.js'); ?>"
				});
			},
		});
	}
	function verificarProductosR(){
		var dvPSR = '<div class="dvPSR"> \
			<p class="pPSR"> \
				<strong>Productos relacionados</strong> \
			</p> \
			<ul class="list-unstyled"> \
				{%lisPSR%} \
			</ul> \
		</div>';
		var liPSR = '<li> \
			<span class="label label-info spLPSR{%idPSR%} {%spLPSRO%}" data-valor="{%idPSR%}"> \
				{%nombrePSR%} \
				<i class="fa fa-plus agregarPS{%idPSR%}" data-id="{%idPSR%}" style="cursor: pointer; padding-left: 5px" ></i> \
			</span> \
		</li>';
		var pidsPSRS = ( $('[name="idsPSRS"]').val() == "" )?true:false;
		$("#tblProductosVenta").find("tbody tr").each(function(e){
			var tr = $(this);
			tr.find(".dvPSR").remove();
			if( tr[0].hasAttribute("data-idps") ){
				var idPS = tr.attr("data-idps");
				$.each(jSonProductosR, function(indice, productoR){
					if( parseInt(idPS) == parseInt(productoR.idPS) ){
						if( pidsPSRS ){
							var idsPSRS = new Array();
						}
						var lisPSR = "";
						if( productoR.relacionados.length > 0 ){
							$.each(productoR.relacionados, function(indice, productoNR){
								var idPSR = productoNR.idPS
								var nombrePSR = productoNR.nombrePS;
								if( $(".spLPSR"+idPSR).length == 0 ){
									if($("#tblProductosVenta").find("tbody tr[data-idps='"+idPSR+"']").length == 0){
										liPSRN = liPSR;
										liPSRN = liPSRN.replace(/{%idPSR%}/g, idPSR);
										liPSRN = liPSRN.replace(/{%nombrePSR%}/g, nombrePSR);
										var spLPSRO = ( $('#tblProductosVenta tr[data-idps="'+idPSR+'"]').length > 0 )?'spLPSRO':'';
										liPSRN = liPSRN.replace(/{%spLPSRO%}/g, spLPSRO);
										lisPSR = lisPSR+liPSRN;
										if( pidsPSRS ){
											idsPSRS.push(idPSR);
										}
									}
								}
							});
							if( lisPSR != "" ){
								var dvPSRN = dvPSR;
								dvPSRN = dvPSRN.replace(/{%lisPSR%}/g, lisPSR);
								tr.find("td:first").append(dvPSRN);
								tr.find(".fa-plus").each(function(e){
									var agregarPS = $(this);
									var idPSA = agregarPS.attr("data-id");
									agregarPS.closest(".label").click(function(e){
										$.each(productos, function(indice, producto){
											if( parseInt(producto.idPS) == parseInt(idPSA) ){
												var nPA = $('tr[data-PA]').length;
												nPA = "00"+nPA;
												var max = "";
												var errInventario = "";
												if( parseInt(producto.ilimitado) == 0 ){
													var valor = (producto.inventario == 0)?1:producto.inventario;
													max = 'max="'+valor+'"';
													if( parseInt(producto.inventario) == 0 ){
														errInventario = '<span class="text-danger" id="errIn">Este producto actualmente no cuenta con inventario</span>';
													}
												}
												var total = 1*parseFloat(producto.precioVPS);
												total = Math.round(total*100)/100;
												var margenPorPrecio = "";
												if( producto.tipoMargenGanancia == "D" ){
													var precioSinGanancia = parseFloat(producto.precioVPS)-parseFloat(producto.margenGanancia);
													margenPorPrecio = 'data-precio-sin-ganancia="'+precioSinGanancia+'"';
												}
												var tr = '<tr data-idPS="'+producto.idPS+'" data-idVPS="'+producto.idVPS+'" data-idVXP="0" data-PA="'+nPA+'"> \
													<td> \
														<span class="label label-warning" style="cursor: pointer;" onclick="eliminarProducto(\''+nPA+'\')"><i class="fa fa-trash"></i></span> \
														'+producto.nombre+' \
														<input type="hidden" name="PAproducto'+nPA+'" value="'+producto.idPS+'"> \
														<input type="hidden" name="PAvariacion'+nPA+'" value="'+producto.idVPS+'"> \
														<input type="hidden" name="PAilimitado'+nPA+'" value="'+producto.ilimitado+'"> \
													</td> \
													<td class="precio"> \
														'+producto.precioVPS+' \
													</td> \
													<td> \
														<input class="form-control nmPV nmPVC" data-id="'+nPA+'" type="number" name="PAcantidad'+nPA+'" value="1" min="1" '+max+'> \
														<span class="text-danger" id="errcantidad'+nPA+'"></span> \
														'+errInventario+' \
													</td> \
													<td> \
														<input class="form-control nmPV nmPVPV" data-id="'+nPA+'" type="number" name="PAprecio_venta'+nPA+'" value="'+parseFloat(producto.precioVPS).toFixed(2)+'" min="0.01" step="0.01" '+margenPorPrecio+'> \
														<span class="text-danger" id="errprecio_ventaPA'+nPA+'"></span> \
													</td> \
													<td> \
														<input class="form-control nmTU" data-id="'+nPA+'" data-totalu="'+total+'" type="text" readonly value="'+total.toFixed(2)+'"> \
													</td> \
												</tr>';
												$("#tblProductosVenta").find("tbody > tr:last").before(tr);
												agregarPS.closest("li").hide();
												programarTablaPrecios();
												
												var total = 0;
												$(".nmTU").each(function(e){
													total = total+parseFloat( $(this).val() );
												});
												total = Math.round(total*100)/100;
												$(".nmTT").val( total.toFixed(2) );
											}
										});
										actualizarRelacionados($(".spLPSR"+idPSA));
									});
								});
								if( pidsPSRS ){
									var idsPSRSString = idsPSRS.join();
									$('[name="idsPSRS"]').val( idsPSRSString );
								}
							}
						}
					}
				});
			}
		});
	}
	function eliminarProducto(idP){
		var mensajeEl = "<h2> ¿Seguro que desea eliminar? </h2>";
		var classEl = "";
		if( $("#tblProductosVenta").find("tbody tr").length == 2 ){
			mensajeEl = '<div class="alert alert-warning" role="alert"> \
				<p style="font-size: 16px;"> Debes agregar un producto extra para poder eliminar este ya que no puede quedar vacía la venta... </p> \
			</div>';
			classEl = "disabled";
		}
		var mensaje = '<div class="row"> \
			<div class="col-xs-12"> \
				<form id="frmEliminar"> \
					'+mensajeEl+' \
				</form> \
			</div> \
		</div>';
		BootstrapDialog.show({
			title: "Eliminar producto de la venta",
			type: BootstrapDialog.TYPE_WARNING,
			message: mensaje,
			draggable: true,
			cssClass: "mdAvatar",
			closable: true,
			buttons: [{
				id: "btnEliminar",
				label: "Eliminar",
				cssClass: "btn-warning btn-lg btn-block "+classEl,
				action: function(dialogItself){
					if( $("#tblProductosVenta").find("tbody tr").length > 2 ){
						if( idP.startsWith("00") ){
							$('tr[data-pa="'+idP+'"]').remove();
						}
						else{
							$("#tblProductosVenta").append('<input type="hidden" name="PEidVXP'+idP+'" value="'+idP+'">')
							$('tr[data-idvxp="'+idP+'"]').remove();
						}
						var total = 0;
						$(".nmTU").each(function(e){
							total = total+parseFloat( $(this).val() );
						});
						total = Math.round(total*100)/100;
						$(".nmTT").val( total.toFixed(2) );
						programarTablaPrecios();
						dialogItself.close();
					}
				}
			}]
		});
	}
	function agregarVenta(){	
	}
	function crearTabla(valor){
		var valor = valor;
		$.each(
			valor,
			function(key, value){
				var nPA = $('tr[data-PA]').length;
				nPA = "00"+nPA;
				var option = $("#op"+value);
				var max = "";
				var errInventario = "";
				if( parseInt(option.attr("data-ilimitado")) == 0 ){
					var valor = (option.attr("data-inventario") == 0)?1:option.attr("data-inventario");
					max = 'max="'+valor+'"';
					if(valor == 1){
						errInventario = '<span class="text-danger" id="errIn">Este producto actualmente no cuenta con inventario</span>';
					}
				}
				var total = 1*parseFloat(option.attr("data-precio"));
				total = Math.round(total*100)/100;
				var readonly = "";
				if($("#slTipo").val() == "CD" || $("#slTipo").val() == "PD"){
					var readonly = "readonly";
				}
				var variacion = (option.parent().attr("name") != "slProductos")?'<div class="atrib-product"><p class="pA"><strong>Variación</strong></p><p class="pA-text">'+option.attr("data-subtext")+'</p></div>':"";
				var tr = '<tr data-idPS="'+option.attr("data-idps")+'" data-idVPS="'+option.attr("data-idvps")+'" data-idVXP="0" data-PA="'+nPA+'" class="product-row"> \
					<td> \
						<span class="label label-warning" style="cursor: pointer;" onclick="eliminarProducto(\''+nPA+'\')"><i class="fa fa-trash"></i></span> \
						'+option.html()+' \
						<input type="hidden" name="PAproducto'+nPA+'" value="'+option.attr("data-idps")+'"> \
						<input type="hidden" name="PAvariacion'+nPA+'" value="'+option.attr("data-idvps")+'"> \
						<input type="hidden" name="PAilimitado'+nPA+'" value="'+option.attr("data-ilimitado")+'"> \
						'+variacion+'\
					</td> \
					<td class="precio"> \
						'+option.attr("data-precio")+' \
					</td> \
					<td> \
						<input class="form-control nmPV nmPVC" data-id="'+nPA+'" type="number" '+readonly+' name="PAcantidad'+nPA+'" value="1" min="1" '+max+'> \
						<span class="text-danger" id="errcantidad'+nPA+'"></span> \
						'+errInventario+' \
					</td> \
					<td> \
						<input class="form-control nmPV nmPVPV" data-id="'+nPA+'" type="number"  name="PAprecio_venta'+nPA+'" value="'+parseFloat(option.attr("data-precio")).toFixed(2)+'" min="0.01" step="0.01"> \
						<span class="text-danger" id="errprecio_ventaPA'+option.attr("data-idvps")+'"></span> \
					</td> \
					<td> \
						<input class="form-control nmTU" data-id="'+nPA+'" data-totalu="'+total+'" type="text" readonly value="'+total.toFixed(2)+'"> \
					</td> \
				</tr>';
				$("#tblProductosVenta").find("tbody > tr:last").before(tr);
			}
		);
		$("#productos").val(1)
	}
	function programarTablaPrecios(){
		$(".nmPVC").numeric({
			allowMinus: false,
			allowThouSep: false,
			allowDecSep: false
		});
		$(".nmPVPV").alphanum({
			allow: ".0123456789",
			disallow: "abcdefghijklmnñopqrstuvwxyz",
			allowSpace: false,
			allowNumeric: true,
			allowUpper: false,
			allowCaseless: false,
			allowOtherCharSets: false,
			forceLower: true
		});
		$(".table").find(".precio").each(function(){
			var precio = accounting.formatMoney($(this).text().trim(), {
				symbol: " ",
				precision: 2,
				decimal : ".",
				thousand: ",",
				format: "%s%v"
			});
			$(this).text(precio);
		});
		$(".nmPV").blur(function(){
			var input = $(this);
			var nInput = $(this).attr("data-id");
			var precioVenta = $('.nmPVPV[data-id="'+nInput+'"]').val();
			var totalUnitario = parseFloat(precioVenta);
			$('.nmPVPV[data-id="'+nInput+'"]').val(totalUnitario.toFixed(2));
		});
		$(".nmPV").off("input").on("input", function(e){
			var input = $(this);
			var nInput = $(this).attr("data-id");
			var cantidad = $('.nmPVC[data-id="'+nInput+'"]').val();
			var precioVenta = $('.nmPVPV[data-id="'+nInput+'"]').val();
			var totalUnitario = parseInt(cantidad)*parseFloat(precioVenta);
			totalUnitario = Math.round(totalUnitario*100)/100;
			$('.nmTU[data-id="'+nInput+'"]').attr("data-totalu", totalUnitario);
			totalUnitario = accounting.formatMoney(totalUnitario, {
				symbol: " ",
				precision: 2,
				decimal : ".",
				thousand: ",",
				format: "%s%v"
			});
			$('.nmTU[data-id="'+nInput+'"]').val(totalUnitario);
			var total = 0;
			$(".nmTU").each(function(e){
				total = total+parseFloat( $(this).attr("data-totalu") );
			});
			total = accounting.formatMoney(total, {
				symbol: " ",
				precision: 2,
				decimal : ".",
				thousand: ",",
				format: "%s%v"
			});
			$(".nmTT").val( total );
		});
		verificarProductosR();
	}
	function eliminarVenta(id,tipo){
		if(tipo == "CD"){
			var msj = '<div class="alert alert-danger" style="margin-bottom: 0px;">Si eliminas esta venta el usuario relacionado a esta venta perdera el acceso al contenido digital y las estadisticas tambien se veran afectadas</div>';
		}
		else{
			var msj = "";
		}
		var mensaje = '<div class="row"> \
			<div class="col-xs-12 col-sm-12 col-md-12"> \
				<h3>Estas seguro que deseas eliminar la venta</h3>\
				'+msj+'\
			</div> \
		</div>';
		BootstrapDialog.show({
			cssClass: "mdAvatar",
			title: "Eliminar Venta",
			message: mensaje,
			draggable: true,
			onshown: function(dialogItself){
			},
			buttons: [{
				id: "btnConfirmar",
				label: "Confirmar",
				cssClass: "btn-danger btn-lg btn-block",
				action: function(dialogItself){
					NProgress.start();
					dialogItself.getModalBody().find("input[name='telefono_receptor']").val( dialogItself.getModalBody().find("input[name='telefono_receptor']").intlTelInput("getNumber") );
					$("#btnConfirmar").prop("disabled", true).html('<i class="fa fa-spinner fa-spin"></i> Procesando...');
					$.post(
						"<?php echo URL::route('SysWebVentasRealizadasEliminar'); ?>",
						{ id: id },
						function(data){
							NProgress.done();
							$("#btnConfirmar").html("Confirmar").prop("disabled", false);
							if(data.success){
								dialogItself.close();
								var table = $("#tblVentasRealizadas").DataTable();
								table.ajax.reload(null, false);
								new PNotify({ title: "Realizado", text: data.mensaje, type: "success" });
							}
							else{
								if(data.mensaje != ''){ new PNotify({ title: "Error", text: data.mensaje, type: "error" }); }
								$.each(data.errMensajes, function(key, value){ if(value != ''){ $("#err"+key).html(value); } else{ $("#err"+key).html(""); } });
							}
						},
						"json"
					);
				}
			}],
		});
	}
	function mostrarMensaje(selector, mensaje){
		$(selector).text(mensaje);
		$(selector).show("slow");
		setTimeout(function () {$(selector).fadeOut("slow");}, 4000);
	}
</script>
<?php $__env->stopSection(); ?>

<?php $__env->startSection('JSOr'); ?>
<?php if( Agent::isDesktop() ): ?>
$(".sidebar-toggle-box").trigger("click");
<?php endif; ?>
$(".sidebar-toggle-box").click(function(e){
	var tabla = $("#tblVentasRealizadas").DataTable();
	tabla.fixedHeader.adjust();
});
$("a[data-toggle=\"tab\"]").on("shown.bs.tab", function(e){
	$.fn.dataTable.tables({
		visible: true,
		api: true
	}).columns.adjust();
});
/*CUADROS DE BÚSQUEDA POR COLUMNA DE JQUERYDATATABLES*/
/*$("#tblVentasRealizadas tfoot th").each(function(){
	var title = $(this).text();
	$(this).html( '<input type="text" placeholder="Buscar '+title+'" />' );
});*/
/*$("#tblVentasRealizadas thead tr:eq(1) th").each(function(){
	var title = $(this).text();
	$(this).html( '<input type="text" placeholder="Buscar '+title+'" class="column_search" />' );
});*/
/*/CUADROS DE BÚSQUEDA POR COLUMNA DE JQUERYDATATABLES*/
$.fn.DataTable.ext.pager.numbers_length = 5;
$("#tblVentasRealizadas").DataTable({
	orderCellsTop: true,
	"processing": true,
	"serverSide": true,
	fixedHeader: ($.browser.mobile)?false:true,
	preDrawCallback: function (settings) { $.isLoading("hide"); },
	"ajax": {
		url: "<?php echo URL::route('SysWebVentasRealizadas'); ?>",
		data: function(d){
			d.filtrofechas = $("#FiltroFechas").val();
			d.chEstadoPENV = $('[name="chEstadoPENV"]').is(":checked");
			d.chEstadoE = $('[name="chEstadoE"]').is(":checked");
			d.chEstadoR = $('[name="chEstadoR"]').is(":checked");
			d.chEstadoRP = $('[name="chEstadoRP"]').is(":checked");
			d.chEstadoDD = $('[name="chEstadoDD"]').is(":checked");
			d.chEstadoRPDD = $('[name="chEstadoRPDD"]').is(":checked");
			d.chEstadoF = $('[name="chEstadoF"]').is(":checked");
			d.chEstadoPENT = $('[name="chEstadoPENT"]').is(":checked");
			d.slEstadoPedido = $('[name="slEstadoPedido"]').val();
		}
	},
	columns: [
		{data: "fecha_registrado", name: "fecha_registrado"},
		{data: "numero_seguimiento", name: "numero_seguimiento"},
		{data: "tco_order_number", name: "tco_order_number",
			"fnCreatedCell": function (nTd, sData, oData, iRow, iCol) {
				$(nTd).text("")
				var log = JSON.parse(oData.tco_log);
				var number = '<span style="display: block;">'+oData.tco_order_number+'</span>';
				if(log.pasarela == "pago_contra_entrega"){
					log.pasarela = "pago contra entrega";
				}
				var pasarela = '<span style="font-weight: bold;"> Pasarela de pago:  </span> <span style="display: block;">'+log.pasarela+'</span>';
				var input = '<input type="hidden" class="tpPasarela" value="'+log.pasarela+'">';
				$(nTd).append(number, pasarela, input);
			}
		},
		{data: "informacionComprador", name: "informacionComprador", "searchable": false, "orderable": false},
		{data: "correo_electronico_comprador", name: "correo_electronico_comprador", "searchable": true, "visible": false, "orderable": false},
		{data: "telefono_comprador", name: "telefono_comprador", "searchable": true, "visible": false, "orderable": false},
		{data: "nombre_comprador", name: "nombre_comprador", "searchable": true, "visible": false, "orderable": false},
		{data: "informacionEnvio", name: "informacionEnvio", "searchable": false, "orderable": false},
		{data: "detallePedido", name: "detallePedido", "searchable": false, "orderable": false},
		{data: "estado", name: "estado",
			"fnCreatedCell": function (nTd, sData, oData, iRow, iCol) {
				var log = JSON.parse(oData.tco_log);
				if(log.pasarela == "personalizado"){
					$(nTd).find(".tooltips").removeAttr("disabled");
				}
			}
		},
		{data: "acciones", name: "acciones", "searchable": false, "orderable": false, "class": "text-center"}
	],
	"language": {
		"url": "<?php echo asset('DataTables/Spanish.json'); ?>"
	},
	"fnDrawCallback": function( oSettings ) {
		$(".tooltips").tooltip();
		$(".spTotalPagado").each(function(indice){
			var total = $(this).html();
			total = accounting.formatMoney(total, {
				symbol: codigoMoneda+" "+simboloMoneda,
				precision: 2,
				decimal : separadorDecimales,
				thousand: (separadorDecimales==".")?",":".",
				format: (posicionMoneda=="I")?"%s%v":"%v%s"
			});
			$(this).html(total);
		});
	},
	autoWidth: false,
	//dom: "<'row'<'col-sm-3'l><'col-sm-4'f><'col-sm-5'p>>" +
	//	"<'row'<'col-sm-12'tr>>" +
	//"<'row'<'col-sm-5'i><'col-sm-7'p>>",
	"order": [[ 0, "desc" ]],
	responsive: true,
	//initComplete: function(){
	//	var input = $(".dataTables_filter input").unbind(),
	//	self = this.api(),
	//	$searchButton = $('<button class="btn btn-primary tooltips" style="margin-left: 5px;" data-toggle="tooltip" data-original-title="Buscar">').html('<i class="fa fa-search"></i>').click(function(){
	//		self.search(input.val().trim()).draw();
	//	}),
	//	$clearButton = $('<button class="btn btn-default tooltips" style="margin-left: 5px;" data-toggle="tooltip" data-original-title="Limpiar">>').html('<i class="fa fa-paint-brush"></i>').click(function(){
	//		input.val('');
	//		$searchButton.click(); 
	//	});
	//	$(".dataTables_filter").append($searchButton, $clearButton);
	//	$("body").tooltip({selector: "[data-toggle='tooltip']"});
	//	/*this.api().columns().every(function(){
	//		var column = this;
	//		var input = document.createElement("input");
	//		$(input).appendTo($(column.footer()).empty()).on("change", function(){
	//			column.search($(this).val()).draw();
	//			column.search($(this).val(), false, false, true).draw();
	//		});
	//		$($("input", this.footer()), $("input", this.header())).on("keyup change clear", function(){
	//			console.log( this.value );
	//			if( column.search() !== this.value ){
	//				column.search( this.value ).draw();
	//			}
	//		});
	//	});*/
	//}
	initComplete: function(){
		var input = $(".dataTables_filter input").unbind();
		$(".dataTables_filter").html('');
		var self = this.api(),
		$searchButton = $('<button class="btn btn-primary tooltips" style="margin-left: 5px;" data-toggle="tooltip" data-original-title="Buscar">').html('<i class="fa fa-search"></i>').click(function(){
			self.search(input.val().trim()).draw();
		}),
		divInputGroup = $('<div class="input-group div-groupinput">'+
			'<div class="input-group-btn div-groupbutton">'+
			'</div>'+
		'</div>');
		$(".dataTables_filter").append(divInputGroup);
		$(".div-groupinput").prepend(input);
		$(".div-groupbutton").append($searchButton);
		$("body").tooltip({selector: "[data-toggle='tooltip']"});
		$("input[type=search]").attr("placeholder", "Buscar...");
		detectarPantalla();
	}
}).on("processing.dt", function(e, settings, processing) {
	if (processing) {
		$.isLoading();
	}
	else{
		$.isLoading("hide");
		window.scrollTo(0, 0);
	}
});
$("#FiltroFechas").daterangepicker({
	"ranges": {
		"Hoy": [moment(), moment()],
		"Ayer": [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
		"Últimos 7 días": [moment().subtract(6, 'days'), moment()],
		"Últimos 30 días": [moment().subtract(29, 'days'), moment()],
		"Este mes": [moment().startOf('month'), moment().endOf('month')],
		"Último mes": [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
	},
	"alwaysShowCalendars": true,
	locale: {
		format: 'DD/MM/YYYY'
	},
	autoUpdateInput: false,
	"startDate": moment(),
	"endDate": moment()
}, function(start, end, label) {
	console.log("New date range selected: ' + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD') + ' (predefined range: ' + label + ')");
});
$("#FiltroFechas").on("apply.daterangepicker", function(ev, picker) { $(this).val(picker.startDate.format("DD/MM/YYYY") + " - " + picker.endDate.format("DD/MM/YYYY")); });
$("#FiltroFechas").on("cancel.daterangepicker", function(ev, picker) { $(this).val(""); });
$("#frmFiltroFechas").submit(function(e){
	e.preventDefault();
	var table = $("#tblVentasRealizadas").DataTable();
	table.ajax.reload(null, false);
});
$("#btnLimpiar").click(function(e){
	e.preventDefault();
	$("#FiltroFechas").val("");
	$(".div-groupinput").find("input[type='search']").val("");
	var table = $("#tblVentasRealizadas").DataTable();
	table.ajax.reload(null, false);
});
$(".btn-agregar").click(function(){
	var mensaje = '<div class="row"> \
		<div class="col-xs-12"> \
			<div id="progressWizard" class="basic-wizard dvConfiguracionVenta">\
				<ul class="nav nav-pills nav-justified"> \
					<li><a href="#ptab1" data-toggle="tab"><span></span> Producto o servicio</a></li> \
					<li><a href="#ptab2" data-toggle="tab"><span></span> Datos de envio</a></li> \
					<li><a href="#ptab3" data-toggle="tab"><span></span> Datos de comprador</a></li> \
					<li><a href="#ptab4" data-toggle="tab"><span></span> Finalización de compra</a></li> \
				</ul> \
				<div class="tab-content" style="overflow: unset;"> \
					<div class="tab-pane" id="ptab1">\
						<div class="form-group">\
							<label for="" style="display: block">Tipo de producto o servicio</label>\
							<select class="form-control selectpicker" name="tipo" id="slTipo" title="Seleccione un tipo">\
								<option value="P"> Producto </option>\
								<option value="S"> Servicio </option>\
								<option value="PD"> Producto digital </option>\
								<option value="CD"> Contenido digital </option>\
							</select>\
						</div>\
						<div class="form-group">\
							<label for="" class="lbprd" style="display: block"> Producto a agregar</label>\
							<select class="form-control selectpicker" name="slProductos" data-live-search="true" data-selected-text-format="count" multiple>\
							</select>\
						</div>\
						<div class="form-group variaciones" style="display: none;"> \
							<label for="slProductos" style="display: block;">Variaciones de productos</label> \
							<select class="form-control productosvps selectpicker" name="slProductosVPS" data-live-search="true" title="Seleccione una opción" data-selected-text-format="count" multiple> \
							<select> \
							<span class="text-danger" id="errslProductos"></span> \
							<div id="dvProductos" style="padding-top: 10px;"></div> \
						</div> \
						<div class="form-group">\
							<button type="button" class="btn btn-aplicar"> Agregar </button>\
						</div> \
						<div class="form-group">\
							<table class="table table-bordered" id="tblProductosVenta">\
									<thead>\
										<tr>\
											<th>Producto</th>\
											<th>Precio de lista (<?php echo $Cliente->codigo_moneda; ?> <?php echo $Cliente->simbolo_moneda; ?>)</th>\
											<th>Cantidad</th>\
											<th>Precio de unitario (<?php echo $Cliente->codigo_moneda; ?> <?php echo $Cliente->simbolo_moneda; ?>)</th>\
											<th>Total (<?php echo $Cliente->codigo_moneda; ?> <?php echo $Cliente->simbolo_moneda; ?>)</th>\
										</tr>\
									</thead>\
									<tbody>\
										<tr>\
											<th colspan="4" style="text-align: right;">\
												Total (<?php echo $Cliente->codigo_moneda; ?> <?php echo $Cliente->simbolo_moneda; ?>)\
											</th>\
											<td>\
												<input class="form-control nmTT" type="text" readonly value="0">\
											</td>\
										</tr>\
									</tbody>\
							</table>\
							<div class="alert alert-danger product-selection-view" role="alert"></div> \
						</div>\
						<input type="hidden" id="productos" value=""/> \
					</div> \
					<div class="tab-pane" id="ptab2">\
						<form id="frmPaso2"> \
							<div class="form-group dvEnvio">\
								<div class="datos">\
									<input type="text" class="form-control" id="nombres" name="nombres" placeholder="Nombres" value=""/> \
								</div>\
								<div class="datos">\
									<input type="text" class="form-control" id="apellidos" name="apellidos" placeholder="Apellidos" value=""/> \
								</div>\
							</div>\
							<div class="form-group dvEnvio">\
								<div class="datos">\
									<input type="text" class="form-control" name="correo_envio" id="correo_envio" placeholder="Correo electrónico" value=""/> \
								</div>\
								<div class="datos">\
									<input type="text" class="form-control" name="telefono_envio" id="telefono_envio" placeholder="Teléfono" value=""/> \
								</div>\
							</div>\
							<div class="form-group dvEnvio">\
								<div class="datos">\
									<select name="country_envio" class="text-left crs-country form-control" data-region-id="slEstado" data-live-search="true" data-default-option="Seleccione un país" data-value="shortcode" id="pais_envio">\
									</select>\
								</div>\
								<div class="datos">\
									<select name="estado_envio" class="text-left form-control" data-live-search="true" data-default-option="Seleccione un estado" title="Seleccione un estado" data-value="shortcode" id="slEstado">\
									</select>\
								</div>\
							</div>\
							<div class="form-group dvEnvio">\
								<div class="datos">\
										<input type="text" class="form-control" name="city_envio" id="ciudad_envio" placeholder="Ciudad de envio" value=""/> \
								</div>\
								<div class="datos">\
									<input type="text" class="form-control" name="code" id="postal_envio" placeholder="Codigo postal" value=""/> \
								</div>\
							</div>\
							<div class="form-group">\
								<input type="text" class="form-control" name="street_address_envio" id="direccion_envio" placeholder="Dirección de envio" value=""/> \
							</div>\
							<div class="alert alert-warning customer-data-view" role="alert"><strong>NOTA: </strong>Verifique que la dirección de correo esté bien escrita.</div> \
						</form> \
					</div> \
					<div class="tab-pane" id="ptab3">\
						<form id="frmPaso3"> \
							<div class="form-group dvEnvio">\
								<div class="datos">\
									<input type="text" class="form-control" name="name_comprador" id="name" placeholder="Nombres" value=""/> \
								</div>\
								<div class="datos">\
									<input type="text" class="form-control" id="last_name" name="lastName_comprador" placeholder="Apellidos" value=""/> \
								</div>\
							</div>\
							<div class="form-group dvEnvio">\
								<div class="datos">\
									<input type="text" class="form-control" id="correo" name="email" placeholder="Correo electrónico" value=""/> \
								</div>\
								<div class="datos">\
									<input type="text" class="form-control" id="telefono" name="phone" placeholder="Teléfono" value=""/> \
								</div>\
							</div>\
							<legend>Campos opcionales</legend>\
							<div class="form-group dvEnvio cpl">\
								<div class="datos">\
									<select name="country" class="text-left crs-country form-control" data-region-id="slEstadoE" data-live-search="true" data-default-option="Seleccione un país" data-value="shortcode" id="pais">\
									</select>\
								</div>\
								<div class="datos">\
									<select name="state" class="text-left form-control"  title="Seleccione un estado" data-live-search="true" data-default-option="Seleccione un estado" data-value="shortcode" id="slEstadoE">\
									</select>\
								</div>\
							</div>\
							<div class="form-group dvEnvio cpl">\
								<div class="datos">\
									<input type="text" class="form-control" name="city" id="ciudad" placeholder="Ciudad" value=""/> \
								</div>\
								<div class="datos">\
									<input type="text" class="form-control" name="zip" id="zip" placeholder="Codigo postal" value=""/> \
								</div>\
							</div>\
							<div class="form-group cpl">\
								<input type="text" class="form-control" name="street_address" id="direccion" placeholder="Dirección" value=""/> \
							</div>\
							<div class="alert alert-warning customer-data-view" role="alert"><strong>NOTA: </strong>Verifique que la dirección de correo esté bien escrita.</div> \
						</form> \
					</div> \
					<div class="tab-pane" id="ptab4">\
						<form id="frmPaso4"> \
							<div class="form-group">\
								<label for="" class="lbp" style="display: block"> ¿Estado de compra?</label>\
								<select class="form-control selectpicker" title="Seleccione una opción" name="slEstadoP">\
									<option value="F">Compra finalizada</option>\
									<option value="PP">Reservada</option>\
								</select>\
							</div>\
							<div class="form-group">\
								<label for="" class="lbp" style="display: block"> ¿Notificar compra?</label>\
								<br> \
								<label class="radio-inline"> \
									<input type="radio" value="1" id="rdNtCompraSi" name="rdNtCompra"> \
									<span class="custom-radio"></span> \
									Si \
								</label> \
									<label class="radio-inline"> \
									<input type="radio" value="0" id="rdNtCompraNo" name="rdNtCompra"> \
									<span class="custom-radio"></span> \
									No  \
								</label> \
								<br> \
								<div class="alert alert-info msg-cp" style="display: none; margin-top:15px;"></div>\
							</div>\
							<div class="form-group dvCred">\
								<label for="" class="lbp" style="display: block"> ¿Enviar crendenciales?</label>\
								<br> \
								<label class="radio-inline"> \
									<input type="radio" value="1" id="rdEnviarCredSi" name="rdEnviarCred"> \
									<span class="custom-radio"></span> \
									Si \
								</label> \
									<label class="radio-inline"> \
									<input type="radio" value="0" id="rdEnviarCredNo" name="rdEnviarCred"> \
									<span class="custom-radio"></span> \
									No  \
								</label> \
							</div>\
							<div class="form-group dvList">\
								<label for="" class="lbp" style="display: block">Agregar a una lista de suscriptores ademas de la del producto/servicio (opcional)</label>\
								<select class="form-control selectpicker" title="Seleccione una lista" name="slListasSuscriptores" id="slListasSuscriptores">\
								</select>\
							</div>\
						</form> \
					</div> \
				</div> \
				<ul class="pager wizard"> \
						<li class="previous"> \
							<a href="javascript:void(0)"> \
								Anterior \
							</a> \
						</li> \
						<li class="next"> \
							<a href="javascript:void(0)"> \
								Siguiente \
							</a> \
						</li> \
				</ul> \
			</div>\
		</div> \
	</div>';
	BootstrapDialog.show({
		title: "Crear una venta",
		type: BootstrapDialog.TYPE_PRIMARY,
		size: BootstrapDialog.SIZE_WIDE,
		message: mensaje,
		draggable: true,
		closable: true,
		closeByBackdrop: false,
		cssClass: "modalCrearVenta color-head-modal",
		onshown: function(dialogRef){
			var modalBody = dialogRef.getModalBody();
			window.crs.init();
			var pais = "<?php echo $Cliente->pais; ?>";
			$(".selectpicker").selectpicker();
			$("#frmPaso2").validate({
				lang: "es",
				onkeyup: false,
				ignore: [],
				errorClass: "text-danger",
				errorElement: "span",
				rules: {
					nombres: {
						required: true
					},
					apellidos: {
						required: true,
					},
					correo_envio: {
						required: true,
						email: true,
					},
					telefono_envio: {
						required: true,
					},
					country_envio: {
						required: true,
					},
					estado_envio: {
						required: true,
					},
					city_envio: {
						required: true,
					},
					code: {
						required: true,
					}
				},
				errorPlacement: function(error, element) {
					if($(element).attr("name") == "country_envio" || $(element).attr("name") == "estado_envio"){
						error.insertAfter($(element).closest(".iti--allow-dropdown"));
					}
					else{
						($(element).attr("name") == "telefono")?error.insertAfter($(element).closest(".iti--allow-dropdown")):error.insertAfter(element);
					}
				},
				success: function(label, elemento) {
				},
			});
			$("#frmPaso3").validate({
				lang: "es",
				onkeyup: false,
				ignore: [],
				errorClass: "text-danger",
				errorElement: "span",
				rules: {
					name_comprador: {
						required: true
					},
					lastName_comprador: {
						required: true,
					},
					email: {
						required: true,
						email: true,
					},
					phone: {
						required: true,
					}
				},
				errorPlacement: function(error, element) {
					if($(element).attr("name") == "country" || $(element).attr("name") == "state"){
						error.insertAfter($(element).closest(".iti--allow-dropdown"));
					}
					else{
						($(element).attr("name") == "phone")?error.insertAfter($(element).closest(".iti--allow-dropdown")):error.insertAfter(element);
					}
				},
				success: function(label, elemento) {
				},
			});
			$("#frmPaso4").validate({
				lang: "es",
				onkeyup: false,
				ignore: [],
				errorClass: "text-danger",
				errorElement: "span",
				rules: {
					slEstadoP: {
						required: true
					},
					rdNtCompra: {
						required: true,
					}
				},
				errorPlacement: function(error, element) {
					($(element).attr("name") == "rdNtCompra")?error.insertAfter($(element).closest(".radio-inline").next()):error.insertAfter(element);
				},
				success: function(label, elemento) {
				},
			});
			$("#slTipo").change(function(){
				var valor = $(this).val();
				var option = '';
				$.each(productos, function(i, producto){
					if( ($("#tblProductosVenta").find('tr[data-idPS="'+producto.idPS+'"]').length == 0 && producto.sin_variaciones == 1) || producto.sin_variaciones == 0 ){
						if(valor == producto.tipo){
							option += '<option id="op'+producto.idPS+'" data-variacion="'+producto.sin_variaciones+'" data-tipo="'+producto.tipo+'" value="'+producto.idPS+'" data-idPS="'+producto.idPS+'" data-precio="'+producto.precioVPS+'" data-ilimitado="'+producto.ilimitado+'" data-idVPS="'+producto.idVPS+'" data-inventario="'+producto.inventario+'"> \
								'+producto.nombre+'\
							</option>';
						}
					}
				});
				$('[name="slProductos"]').selectpicker("destroy");
				if(valor != "CD" && valor != "PD"){
					$(".lbprd").after('<select class="form-control" name="slProductos" data-live-search="true" data-selected-text-format="count" multiple></select>');
				}
				else{
					$(".lbprd").after('<select class="form-control" name="slProductos" data-live-search="true"></select>');
				}
				$('[name="slProductos"]').html(option);
				$('[name="slProductos"]').selectpicker();
				$("#tblProductosVenta").find("tr[data-idps]").remove();
				$('[name="slProductos"]').change(function(){
					var idP = $(this).val();
					var option = "";
					var tipo = 0;
					$.each(productos2, function(i, producto){
						var id = String(producto.idPS);
						if(idP.indexOf(id) > -1){
							if(producto.tipo != "S" && producto.sin_variaciones == 0 ){
								option += '<optgroup label="Variaciones de '+producto.nombre+'">';
								$.each(JSON.parse(producto.variaciones), function(i, variaciones){
									var atrib = variaciones.atributos.join(" , ");
									if( $("#tblProductosVenta").find('tr[data-idvps="'+variaciones.idVPS+'"]').length == 0 ){
										option += ' <option id="op'+variaciones.idVPS+'" data-subtext="[ '+atrib+' ]" value="'+variaciones.idVPS+'" data-idPS="'+variaciones.idPS+'" data-precio="'+variaciones.precio+'" data-ilimitado="'+variaciones.ilimitado+'" data-idVPS="'+variaciones.idVPS+'" data-inventario="'+variaciones.inventario+'">'+variaciones.nombre+'</option>';
									}
									else{
										option += ' <option id="op'+variaciones.idVPS+'" data-subtext="[ '+atrib+' ]" value="'+variaciones.idVPS+'" data-idPS="'+variaciones.idPS+'" data-precio="'+variaciones.precio+'" data-ilimitado="'+variaciones.ilimitado+'" data-idVPS="'+variaciones.idVPS+'" data-inventario="'+variaciones.inventario+'" disabled>'+variaciones.nombre+'</option>';
									}
								});
								option += '</optgroup>';
								tipo++;
							}
						}
					});
					if(tipo){
						modalBody.find(".variaciones").show("slow");
					}
					modalBody.find('[name="slProductosVPS"]').html(option);
					modalBody.find(".productosvps").selectpicker("refresh");
				});
				if(valor == "CD"){
					$(".dvCred").removeClass("hide");
				}
				else{
					$(".dvCred").addClass("hide");
				}
			});
			$(".btn-aplicar").click(function(){
				var servicios = Array();
				modalBody.find('[name="slProductos"]>option[data-tipo="S"]:selected').each(function(){
					servicios.push($(this).attr("value"));
				});
				modalBody.find('[name="slProductos"]>option[data-variacion="1"]:selected').each(function(){
					if(servicios.indexOf($(this).attr("value")) == -1){
						servicios.push($(this).attr("value"));
					}
				});
				if(modalBody.find(".productosvps").val() != "" && modalBody.find(".productosvps").val() != null){
					servicios.push(modalBody.find(".productosvps").val());
				}
				var tipoProducto =  $("#slTipo").val();
				if(!servicios.length){
					mostrarMensaje(".product-selection-view", "Ningún producto seleccionado.");
					return;
				}
				if(tipoProducto != "PD" && tipoProducto != "CD"){
					crearTabla(servicios);
				}
				else {
					if($(".product-row").length >= 1){
						mostrarMensaje(".product-selection-view", "Solo puede registrar una venta de contenido o producto digital a la vez.");
						return;
					}
					else {
						crearTabla(servicios);
					}
				}
				programarTablaPrecios();
				var total = 0;
				$(".nmTU").each(function(e){
					total = total+parseFloat( $(this).val() );
				});
				total = Math.round(total*100)/100;
				$(".nmTT").val( total.toFixed(2) );
			});
			$('[name="country_envio"]').find("option:first").addClass("bs-title-option");
			$('[name="estado_envio"]').find("option:first").addClass("bs-title-option").text("Seleccione un estado");
			$('[name="country"]').find("option:first").addClass("bs-title-option");
			$('[name="state"]').find("option:first").addClass("bs-title-option").text("Seleccione un estado");

			$('[name="country"]').selectpicker();
			$('[name="state"]').selectpicker();

			$('[name="country_envio"]').selectpicker();
			$('[name="estado_envio"]').selectpicker();

			$('[name="country_envio"]').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
				$('[name="estado_envio"]').selectpicker("refresh");
			});
			$('[name="country"]').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
				$('[name="state"]').selectpicker("refresh");
			});
			$('[name="telefono_envio"]').intlTelInput({
				utilsScript: "https://sume.space/Intl-Tel-Input/js/utils.js",
			});
			$('[name="phone"]').intlTelInput({
				utilsScript: "https://sume.space/Intl-Tel-Input/js/utils.js",
			});
			$('[name="telefono_envio"]').intlTelInput("setCountry", pais);
			$('[name="phone"]').intlTelInput("setCountry", pais);
			var myWizard = $(".dvConfiguracionVenta").bootstrapWizard({
				onInit: function(tab, navigation, index){
					$(".dvConfiguracionVenta .progress").addClass("active");
				},
				onTabClick: function(tab, navigation, index){
					return false;
				},
				onTabShow: function(tab, navigation, index){
					var $total = navigation.find("li").length;
					var $current = index+1;
					var $percent = ($current/$total) * 100;
					$(".dvConfiguracionVenta .progress-bar").css({
						width: $percent+"%"
					});
				},
				onNext: function(tab, navigation, index){	
					if( index == 1 ){
						if($("#productos").val()){
							if($("#slTipo").val() == "CD" || $("#slTipo").val() == "PD"){
								myWizard.bootstrapWizard('show',1);
							}
							if($(".product-row").length < 1){
								mostrarMensaje(".product-selection-view", "Ningún producto seleccionado.");
								return false;
							}
							else{
								return true;
							}
						}
						else{
							mostrarMensaje(".product-selection-view", "Ningún producto seleccionado.");
							return false;
						}
						//return ( $("#productos").val() )?true:false;
					}
					else if(index == 2){
						if($("#slTipo").val() != "CD" && $("#slTipo").val() != "PD"){	
							return ( $("#frmPaso2").valid() )?true:false;	
						}
					}
					else if(index == 3){
						if($("#slTipo").val() == "CD" || $("#slTipo").val() == "PD"){
							var nombre =  $('[name="name_comprador"]').val()+' '+ $('[name="lastName_comprador"]').val();
							$.post(
								"<?php echo URL::route('SysWebVentasRealizadasVerificarUsuarioSW'); ?>",
								{usuario: nombre, correo: $('[name="email"]').val() },
								function(data){
									if(!data.success){
										$(".dvCred").addClass("hide");
									}
									else{
										$(".dvCred").removeClass("hide");
									}
								},
								"json"
							)
						}	
						if($("#frmPaso3").valid()){
							$(".modalCrearVenta").find("#btnCrearVenta").removeClass("desactivado");
							return true;
						}
						else{
							return false;
						}
					}
					
				},
				onPrevious: function(tab, navigation, index){
					if( index == 1 ){
						if($("#productos").val()){
							if($("#slTipo").val() == "CD" || $("#slTipo").val() == "PD"){
								myWizard.bootstrapWizard('show',0);
							}
							return true;
						}
						else{
							return false;
						}
					}
				}
			});
			$('[name="rdNtCompra"]').click(function(){
				if($('[name="slEstadoP"]').val() == "PP"){
					if(parseInt($('[name="rdNtCompra"]:checked').val()) == 1){
						$(".msg-cp").text("Asegurate de haber modificado el texto del correo de indicaciones de reservación de pedido en la pasarela pago personalizada, con las indicaciones de la forma tus clientes te pagarán")
						$(".msg-cp").show("slow");
					}
					else{
						$(".msg-cp").hide("slow");
					}
				}
				else{
					$(".msg-cp").hide("slow");
				}
			});
			$.get(
				"<?php echo URL::route('SysWebPAterrizajeListasSuscriptores', array($Cliente->id)); ?>",
				function(data){
					$.each(data, function(index, val) {
						$("#slListasSuscriptores").append('<option value="'+val.id+'">'+val.nombre+'</option>');
					});
					$("#slListasSuscriptores").selectpicker("refresh");
				},
				"json"
			);
		},
		buttons: [{
			id: "btnCrearVenta",
			label: "Crear",
			cssClass: "btn-primary btn-block btn-lg desactivado",
			action: function(dialogItself){
				var tipoSeccion;
				var detalle = [];
				$("#tblProductosVenta").find("tr").each(function(){
					if($(this).attr("data-idvps") != undefined){
						detalle.push({"id":$(this).attr("data-idvps"),"cantidad":$(this).find(".nmPVC").val(),"precio":$(this).find(".nmPVPV").val()});
					}
				})
				var cuenta = ($('[name="rdEnviarCred"]:checked').val() != undefined)?$('[name="rdEnviarCred"]:checked').val():0;
				var compra = $('[name="rdNtCompra"]:checked').val();
				var json = {
					nombre_comprador: $('[name="name_comprador"]').val(),
					apellido_comprador: $('[name="lastName_comprador"]').val(),
					email: $('[name="email"]').val(),
					phone: $('[name="phone"]').intlTelInput("getNumber"),
					impuestos:0,
					detalle_pedido: JSON.stringify(detalle),
					country:$('[name="country"]').val(),
					state:$('[name="state"]').val(),
					city:$('[name="city"]').val(),
					zip:$('[name="zip"]').val(),
					street_address:$('[name="street_address"]').val(),
					nombre_receptor:$('[name="nombres"]').val()+" "+$('[name="apellidos"]').val(),
					correo_receptor:$('[name="correo_envio"]').val(), 
					telefono_receptor:$('[name="telefono_envio"]').intlTelInput("getNumber"),
					pais_receptor: $('[name="correo_envio"]').val(),
					estado_receptor: $('[name="telefono_envio"]').val(),
					ciudad_receptor: $('[name="city_envio"]').val(),
					codigo_postal_receptor:$('[name="postal_envio"]').val(),
					direccion_receptor: $('[name="street_address_envio"]').val(),
					chCuenta: cuenta,
					compra: compra,
					estado: $('[name="slEstadoP"]').val(),
					tipo_pp: "ppTEL",
					tipo:$('[name="tipo"]').val(),
					idC:"<?php echo $Cliente->id; ?>",
					tipo_venta: "manual",
					sc_idls: $("#slListasSuscriptores").val(),
				}
				if($("#frmPaso4").valid()){
					NProgress.start();
					$("#btnCrearVenta").prop("disabled", true).html('<i class="fa fa-spinner fa-spin"></i> Procesando...');
					$.post(
						"<?php echo URL::route('SysWebReservacionEP'); ?>",
						json,
						function(data){
							NProgress.done();
							$("#btnCrearVenta").prop("disabled", false).html("Crear");
							if(data.success){
								new PNotify({ title: "Realizado", text: "Venta Realizada", type: "success" });
								var table = $("#tblVentasRealizadas").DataTable();
								table.ajax.reload(null, false);
								dialogItself.close();
							}
							else{
								$(".msjError").remove();
								$(".dvList").after('<div class="msjError form-group"><div class="alert alert-danger msjError" style="margin-top: 10px;"> \
									'+data.mensaje+'\
								</div></div>');
							}
						},
						"json"
					)
				}
			}
		}]
	});	
});
<?php if(Session::has('EliminarMensajeS')): ?>
new PNotify({ title: "Realizado", text: "<?php echo Session::get('EliminarMensajeS'); ?>", type: "success" });
<?php endif; ?>
<?php if(Session::has('EliminarMensajeE')): ?>
new PNotify({ title: "Realizado", text: "<?php echo Session::get('EliminarMensajeE'); ?>", type: "error" });
<?php endif; ?>
<?php $__env->stopSection(); ?>
<?php echo $__env->make('BaseSistemaWeb', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>