<?php
require_once('../clases/xajax/xajax_core/xajax.inc.php');
$xajax = new xajax();
//$xajax->setFlag('debug',true); 
$xajax->configure('javascript URI', '../clases/xajax/');
$xajax->setCharEncoding("ISO-8859-1");
function xExportar($varForm) {
	$varEmp = (isset($varForm["ecod"]) && $varForm["ecod"]<>'')? $varForm["ecod"]:"NULL";
	$varVen = (isset($varForm["vcod"]) && $varForm["vcod"]<>'')? $varForm["vcod"]:"NULL";
	$varCli = (isset($varForm["ccod"]) && $varForm["ccod"]<>'')? $varForm["ccod"]:"NULL";
	$varRut = (isset($varForm["rcod"]) && $varForm["rcod"]<>'')? $varForm["rcod"]:"NULL";
	$varIni = (isset($varForm["fini"]) && $varForm["fini"]<>'')? "'".FechaMySql($varForm["fini"])."'":"NULL";
	$varFin = (isset($varForm["ffin"]) && $varForm["ffin"]<>'')? "'".FechaMySql($varForm["ffin"])."'":"NULL";
	$varUsr = (isset($_SESSION["_CUSE"]))?$_SESSION["_CUSE"]:1;
	$varFie = (isset($varField) && $varField<>'')? "'$varField'":"NULL";
	$varOrd = (isset($varOrder) && $varOrder<>'')? "'$varOrder'":"NULL";
	
	$sql = "call spQuery_Registro_Pedidos($varEmp, $varVen, $varCli, $varRut, $varIni, $varFin, 'IN', $varFie, $varOrd);";
	$_SESSION["expor_sql_1"] =  $sql;
	$_SESSION["expor_sql_2"] = NULL;
	$varTitulo = (isset($varForm["titu"]))?$varForm["titu"]:"Reporte";	
	$objResponse=new xajaxResponse();
    $objResponse->redirect("../export.php?page=$varTitulo");
    return $objResponse;
	}

function xBuscar($varForm, $varField, $varOrder) {
	$var = VarServer("MYSQLI");
	$obj = new clsFacturarPedidos($var[0],$var[1],$var[2],$var[3],$var[4]);	
	$varTabla = $obj->GridDatos($varForm, $varField, $varOrder);
	$respuestaXajax = new xajaxResponse();
	$respuestaXajax->assign("divDatos", "innerHTML", $varTabla);
	$varMarcar="PMA_markRowsInit()";
	$respuestaXajax->script($varMarcar);
	
	$varFecha = 'var femi = $("#femi").kendoDatePicker({
					format: "dd/MM/yyyy"
					}).data("kendoDatePicker");
			
				varFechaMin = new Date();
				femi.min(varFechaMin);
				';
	$respuestaXajax->script($varFecha);
	
	return $respuestaXajax;
	}

function xFormuRegistro($varOpt, $varCod) {
	$var = VarServer("MYSQLI");
	$obj = new clsFacturarPedidos($var[0],$var[1],$var[2],$var[3],$var[4]);
	$varTabla = $obj->FormuRegistro($varOpt, $varCod);
	$respuestaXajax = new xajaxResponse();
	$respuestaXajax->assign("divForm", "innerHTML", $varTabla);
	return $respuestaXajax;
	}

function xFormuEditar($varCod) {
	$var = VarServer("MYSQLI");
	$obj = new clsFacturarPedidos($var[0],$var[1],$var[2],$var[3],$var[4]);
	$varTabla = $obj->FormuEditar($varCod);
	$respuestaXajax = new xajaxResponse();
	$respuestaXajax->assign("divForm", "innerHTML", $varTabla);
	return $respuestaXajax;
	}
	
function xFormuDetalle($varCod) {
	$var = VarServer("MYSQLI");
	$obj = new clsFacturarPedidos($var[0],$var[1],$var[2],$var[3],$var[4]);
	$varTabla = $obj->FormuDetalle($varCod);
	$respuestaXajax = new xajaxResponse();
	$respuestaXajax->assign("divForm", "innerHTML", $varTabla);
	return $respuestaXajax;
	}
	
function xRegresar() {
	$var = VarServer("MYSQLI");
	$obj = new clsFacturarPedidos($var[0],$var[1],$var[2],$var[3],$var[4]);
	$varTabla.= $obj->FormuBusqueda();
	$varTabla.= "<div id=\"divDatos\">";
	//$varTabla.= $obj->GridDatos();		
	$varTabla.= "</div>";
	$respuestaXajax = new xajaxResponse();
	$respuestaXajax->assign("divForm", "innerHTML", $varTabla);
	$varFecha = '$(document).ready(function() {
					function startChange() {
						var startDate = fini.value();
				
						if (startDate) {
							startDate = new Date(startDate);
							startDate.setDate(startDate.getDate() + 0);
							ffin.min(startDate);
						}
					}
				
					function endChange() {
						var endDate = ffin.value();
				
						if (endDate) {
							endDate = new Date(endDate);
							endDate.setDate(endDate.getDate() - 0);
							fini.max(endDate);
						}
					}
				
					var fini = $("#fini").kendoDatePicker({
						change: startChange,
						format: "dd/MM/yyyy"
					}).data("kendoDatePicker");
				
					var ffin = $("#ffin").kendoDatePicker({
						change: endChange,
						format: "dd/MM/yyyy"
					}).data("kendoDatePicker");
				
					fini.max(ffin.value());
					ffin.min(fini.value());
					});
				';
	$respuestaXajax->script($varFecha);
	return $respuestaXajax;
	}
function xGrabar($varForm) {
	$var = VarServer("MYSQLI");
	$obj = new clsFacturarPedidos($var[0],$var[1],$var[2],$var[3],$var[4]);
	$varResul = $obj->ProcesoGrabar($varForm);
	$respuestaXajax = new xajaxResponse();
	if ($varResul=="OK") {
		$varAlert = "PEDIDOS FACTURADOS CORRECTAMENTE";
		}
	else {
		$varAlert = "ERROR AL PROCESAR DATOS...!!!!!\n====================================\n".$varResul."\nVERIFIQUE LOS DATOS POR FAVOR";
		}
		$varTabla =  "<div id=\"divForm\">";
		$varTabla.=  $obj->FormuBusqueda();
		$varTabla.=  "<div id=\"divDatos\">";
		$varTabla.=  "</div>";
		$varTabla.=  "</div>";
	
		$respuestaXajax = new xajaxResponse();
		$respuestaXajax->assign("divForm", "innerHTML", $varTabla);
		$respuestaXajax->alert($varAlert);
		$varFecha = '$(document).ready(function() {
					function startChange() {
						var startDate = fini.value();
				
						if (startDate) {
							startDate = new Date(startDate);
							startDate.setDate(startDate.getDate() + 0);
							ffin.min(startDate);
						}
					}
				
					function endChange() {
						var endDate = ffin.value();
				
						if (endDate) {
							endDate = new Date(endDate);
							endDate.setDate(endDate.getDate() - 0);
							fini.max(endDate);
						}
					}
				
					var fini = $("#fini").kendoDatePicker({
						change: startChange,
						format: "dd/MM/yyyy"
					}).data("kendoDatePicker");
				
					var ffin = $("#ffin").kendoDatePicker({
						change: endChange,
						format: "dd/MM/yyyy"
					}).data("kendoDatePicker");
				
					fini.max(ffin.value());
					ffin.min(fini.value());
					});
				';
	$respuestaXajax->script($varFecha);
	return $respuestaXajax;
	}
	
function xEliminar($varCod) {
	$var = VarServer("MYSQLI");
	$obj = new clsFacturarPedidos($var[0],$var[1],$var[2],$var[3],$var[4]);
	$varResul = $obj->ProcesoEliminar($varCod);	
	$respuestaXajax = new xajaxResponse();
	if ($varResul=="OK") {
		$respuestaXajax->alert("PEDIDO ANULADO CORRECTAMENTE");
		}
	else
		$respuestaXajax->alert("ERROR AL PROCESAR DATOS...!!!!!\n====================================\n".$varResul."\nVERIFIQUE LOS DATOS POR FAVOR");
		
	return $respuestaXajax;
	}

function xActualizar($varForm) {
	$var = VarServer("MYSQLI");
	$obj = new clsFacturarPedidos($var[0],$var[1],$var[2],$var[3],$var[4]);
	$varResul = $obj->ProcesoActualizar($varForm);
	$respuestaXajax = new xajaxResponse();
	if ($varResul=="OK") {
		$varTabla = $obj->FormuBusqueda();
		$varTabla.= "<div id=\"divDatos\">";
		$varTabla.= "</div>";

		$respuestaXajax = new xajaxResponse();
		$respuestaXajax->assign("divForm", "innerHTML", $varTabla);
		$respuestaXajax->alert("PEDIDO ACTUALIZADO CORRECTAMENTE");
		$varFecha = '$(document).ready(function() {
						function startChange() {
							var startDate = fini.value();
					
							if (startDate) {
								startDate = new Date(startDate);
								startDate.setDate(startDate.getDate() + 0);
								ffin.min(startDate);
							}
						}
					
						function endChange() {
							var endDate = ffin.value();
					
							if (endDate) {
								endDate = new Date(endDate);
								endDate.setDate(endDate.getDate() - 0);
								fini.max(endDate);
							}
						}
					
						var fini = $("#fini").kendoDatePicker({
							change: startChange,
							format: "dd/MM/yyyy"
						}).data("kendoDatePicker");
					
						var ffin = $("#ffin").kendoDatePicker({
							change: endChange,
							format: "dd/MM/yyyy"
						}).data("kendoDatePicker");
					
						fini.max(ffin.value());
						ffin.min(fini.value());
						});
					';
		$respuestaXajax->script($varFecha);
		return $respuestaXajax;
		}
	else
		$respuestaXajax->alert("ERROR AL PROCESAR DATOS...!!!!!\n====================================\n".$varResul."\nVERIFIQUE LOS DATOS POR FAVOR");
		
	return $respuestaXajax;
	}
$xajax->register(XAJAX_FUNCTION, 'seleccionar_empresa');
$xajax->register(XAJAX_FUNCTION, 'seleccionar_cliente');
$xajax->register(XAJAX_FUNCTION, 'seleccionar_cliente_simple');
$xajax->register(XAJAX_FUNCTION, 'seleccionar_ruta');
$xajax->register(XAJAX_FUNCTION, 'seleccionar_vendedor');
$xajax->register(XAJAX_FUNCTION, 'seleccionar_producto_venta');
$xajax->register(XAJAX_FUNCTION, 'ComboNroSerieFacturar');
$xajax->register(XAJAX_FUNCTION, 'ComboListaAgencia');

$xajax->register(XAJAX_FUNCTION, 'xBuscar');
$xajax->register(XAJAX_FUNCTION, 'xFormuDetalle');
$xajax->register(XAJAX_FUNCTION, 'xFormuEditar');
$xajax->register(XAJAX_FUNCTION, 'xRegresar');
$xajax->register(XAJAX_FUNCTION, 'xGrabar');
$xajax->register(XAJAX_FUNCTION, 'xActualizar');
$xajax->register(XAJAX_FUNCTION, 'xEliminar');
$xajax->register(XAJAX_FUNCTION, 'xExportar');


$xajax->processRequest();
$xajax->printJavascript("../clases/xajax");
?>
<script language="javascript">		
	function xBuscarJS(varField, varOrder) {
		var varErrorTitu = "ERROR AL FACTURAR PEDIDOS...!!!!!\n===================================\n";
		var varErrorDeta = "";
		if (xajax.$("emp").value=="Ninguno" || xajax.$("emp").value=="") {
			varErrorDeta += "=> DEBE SELECCIONAR UNA EMPRESA\n";  
			}
		if (xajax.$("age").value=="Ninguno" || xajax.$("age").value=="") {
			varErrorDeta += "=> DEBE SELECCIONAR UNA AGENCIA\n";  
			}
			
		if (varErrorDeta!="") {
			alert(varErrorTitu + varErrorDeta);
			}
		else {
			xajax_xBuscar(xajax.getFormValues('form1'),varField, varOrder);		
			}
		}
	function xFacturarJS() {
		
		
		var varErrorTitu = "ERROR AL FACTURAR PEDIDOS...!!!!!\n=====================================================\n";
		var varErrorDeta = "";
		var checkboxes = xajax.$("form").ped; //Array que contiene los checkbox
		//var checkboxes = document.getElementById("ped");
	  	
		var cont = 0; //Variable que lleva la cuenta de los checkbox pulsados
		for (var x=0; x < checkboxes.length; x++) {
			if (checkboxes[x].checked) {
				cont = cont + 1;
				
				}
			}
		if (xajax.$("emp").value=="") {
			varErrorDeta += "=> NO EXISTE EMPRESA SELECCIONADA\n";  
			}
		if (xajax.$("age").value=="Ninguno" || xajax.$("age").value=="") {
			varErrorDeta += "=> DEBE SELECCIONAR UNA AGENCIA\n";  
			}
		if (xajax.$("pun").value=="Ninguno" || xajax.$("pun").value=="") {
			varErrorDeta += "=> DEBE SELECCIONAR UN PUNTO DE VENTA\n";  
			}
		if (xajax.$("gui").value=="Ninguno" || xajax.$("gui").value=="") {
			varErrorDeta += "=> DEBE CONFIGURAR UN NUMERO DE SERIE Y SECUENCIA PARA LAS GUIAS INTERNAS\n";  
			}
		
		if (xajax.$("fac").value=="Ninguno" || xajax.$("fac").value=="") {
			varErrorDeta += "=> DEBE CONFIGURAR UN NUMERO DE SERIE Y SECUENCIA PARA LAS FACTURAS\n";  
			}
		if (xajax.$("bol").value=="Ninguno" || xajax.$("bol").value=="") {
			varErrorDeta += "=> DEBE CONFIGURAR UN NUMERO DE SERIE Y SECUENCIA PARA LAS BOLETAS\n";  
			}
		
		if (xajax.$("femi").value=="") {
			varErrorDeta += "=> DEBE ESPECIFICAR UNA FECHA DE EMISION\n";  
			}
		
		if (cont<=0) {
			varErrorDeta += "=> DEBE SELECCIONAR AL MENOS UN PEDIDO PARA FACTURAR\n";  
			}
		
		if (varErrorDeta!="") {
			alert(varErrorTitu + varErrorDeta);
			}
		else {
			if (confirm("¿DESEA FACTURAR ESTOS PEDIDOS CON FECHA "+xajax.$("femi").value+"?")) {
				xajax_xGrabar(xajax.getFormValues('form'));		
				}
			}
		}
	
	function xActualizarJS() {
		var msj_articulo="";
		var con1 = 0;
		var con2 = 0;
		var con3 = 0;
		var varPatronDoc = "^([0-9]{3})-([0-9]{7})$";
		var expreg = new RegExp (varPatronDoc);	
		var varNumItem = xajax.$('num');
	
		for (i=1; i<=varNumItem.value;i++) {
			if(xajax.$('icod['+i+']')) {
				var varCodigo = xajax.$('icod'+i);
				var varProduc = xajax.$('inom'+i);
				var varPrecio = xajax.$('ipre'+i);
				var varCant   = xajax.$('ican'+i);
				
				if(varCodigo.value=="" && con1==0) {
					msj_articulo = "FALTA SELECCIONAR ALGUN ARTICULO\n";
					con1++;
					}
				if(parseFloat(varPrecio.value) <= 0 || varPrecio.value=='' && con1==0) {
					msj_articulo = msj_articulo + "PRODUCTO : " + varCodigo.value + ' - ' + varProduc.value + ' -> Especificar Precio\n';
					}
				if(parseFloat(varCant.value) <= 0  || varCant.value=='' && con1==0) {
					msj_articulo = msj_articulo + "PRODUCTO : " + varCodigo.value + ' - ' + varProduc.value + ' -> Especificar una Cantidad\n';
					}
				}
			}
			
		if (xajax.$("cnom") && xajax.$("cnom").value=="NO EXISTE") { 
			alert("ERROR AL PROCESAR DATOS...!!!!!\nEL CLIENTE INGRESADO NO EXISTE, DEBE SELECCIONAR UN CLIENTE VALIDO");
			xajax.$("ccod").focus()
			return (false); 
			}
		else if (xajax.$("ccod") && xajax.$("ccod").value=="") { 
			alert("ERROR AL PROCESAR DATOS...!!!!!\n DEBE SELECCIONAR UN CLIENTE");
			xajax.$("ccod").focus()
			return (false); 
			}
		else if (xajax.$("vnom") && xajax.$("vnom").value=="NO EXISTE") { 
			alert("ERROR AL PROCESAR DATOS...!!!!!\nEL PROVEEDOR INGRESADO NO EXISTE, DEBE SELECCIONAR UN VENDEDOR VALIDO");
			xajax.$("vcod").focus()
			return (false); 
			}
		else if (xajax.$("vcod") && xajax.$("vcod").value=="") { 
			alert("ERROR AL PROCESAR DATOS...!!!!!\n DEBE SELECCIONAR UN VENDEDOR");
			xajax.$("vcod").focus()
			return (false); 
			}
		else if (xajax.$("num") && xajax.$("num").value=="0") { 
			alert("ERROR AL PROCESAR DATOS...!!!!!\nNO INGRESO ITEM A ESTE PEDIDO\nDEBE INGRESAR AL MENOS UN IETM PARA CONTINUAR");
			//xajax.$("btadd").focus()
			return (false); 
			}
		else if (msj_articulo!="") {
			alert("ERROR AL PROCESAR DATOS...!!!!!\n"+msj_articulo)
			return (false); 
			}
		else if (parseFloat(xajax.$("tot").value)<parseFloat(xajax.$("lmin").value)) {
			alert("ERROR AL PROCESAR DATOS...!!!!!\nEL MONTO DEL PEDIDO ES MENOR QUE EL MONTO MINIMO REQUERIDO")
			return (false); 
			}
		else {
			if (confirm("¿DESE REGISTRAR EL PEDIDO?")) {
				xajax_xActualizar(xajax.getFormValues('form'));		
				}
			}
		}
		
	function xExportarJS() {
		xajax_xExportar(xajax.getFormValues('form1'));		
		}
	function xExportarDetalleJS() {
		xajax_xExportarDetalle(xajax.getFormValues('form'));		
		}
	
	function xEliminarJS(varCod, varCCod, varCNom, varVCod, varVNom, varRCod, varRNom, varTab) {
		UnTip();
		if(_confirm('&iquest;ESTA SEGURO DE ANULAR ESTE PEDIDO?\n====================================\nNro. Pedido\t: '+varCod+'\nCliente \t\t: '+ varCCod+' - '+varCNom+'\nVendedor\t: '+varVCod+' - '+ varVNom+'\nRuta \t\t: '+varRCod+' - '+ varRNom)) {			
			xajax_xEliminar(varCod);
			EliminarFilaTabla(varTab)
			}
		}
		
	function FormuRegistroJS(varOpt, varCod) {
		UnTip();
		xajax_xFormuRegistro(varOpt, varCod);		
		}
	function FormuEditarJS(varCod) {
		UnTip();
		xajax_xFormuEditar(varCod);		
		}
	function FormuDetalleJS(varCod) {
		UnTip();
		var Ruta = 'print/print_detalle_pedido.php?ide='+varCod;
		testwindow= window.open (Ruta, "Detalle_Pedido", "location=no,status=no,toolbar=no,scrollbars=1,width=800,height=550");	
		}

	function CalcularItem(i) {
		var varCant = 0;
		var varUnitario = 0;
		
		var vuni = document.getElementById('ipre'+i);
		var vcan = document.getElementById('ican'+i);	
		var vtot = document.getElementById('itot'+i);
		
		if (vuni.value=="") varUnitario = "0";
		else	varUnitario = vuni.value;
		
		if (vcan.value=="") varCant="0";
		else	varCant = vcan.value;
		

		var varTotal = parseFloat(varUnitario)*parseFloat(varCant);
		vtot.value = redondear(varTotal,2);
		CalculaRTotal();
		}
	function CalculaRTotal() {
		var form = document.getElementById('form');
		var sto = 0;
		for (i=0;i<form.elements.length;i++) {	
			var Campo = form.elements[i].name;		
			if(Campo.indexOf("itot")==0) {			
				if (form.elements[i].value!="") {				
					sto = sto + parseFloat(form.elements[i].value);		
					}
				}
			}
		var vtotal = document.getElementById('tot');
		vtotal.value = redondear(sto,2);
		}
	function DeleteRow(x) {
		while (x.tagName.toLowerCase() !='tr') {
			if(x.parentElement)
				x=x.parentElement;
			else if(x.parentNode)
				x=x.parentNode;
			else
			return;
			}
		var rowNum=x.rowIndex;
		while (x.tagName.toLowerCase() !='table') {
			if(x.parentElement)
				x=x.parentElement;
			else if(x.parentNode)
				x=x.parentNode;
			else
				return;
			}
		x.deleteRow(rowNum);
		CalculaRTotal();
		}
</script>

<?php		
function MyTable($obj, $varTitulo, $Opcion, $Valor) {
	echo "<div id=\"divForm\">";
	echo $obj->FormuBusqueda();
	echo "<div id=\"divDatos\">";
	//echo $obj->GridDatos();		
	echo "</div>";
	echo "</div>";
	} 
?>