<?php
require_once('clases/xajax/xajax_core/xajax.inc.php');
$xajax = new xajax();
//$xajax->setFlag('debug',true); 
$xajax->configure('javascript URI', 'clases/xajax/');

require "clases/KoolAjax/koolajax.php";
$koolajax->scriptFolder = "clases/KoolAjax";

function seleccionaProducto($ide, $varLista) {
	if($ide<>"") {
		$var = VarServer("MYSQLI");
		$obj = new clsFacturarCambios($var[0],$var[1],$var[2],$var[3],$var[4]);
		$obj->AbrirConexion();
		$sql = "call spQuery_Lista_Producto_Venta('$ide','','$varLista');";
		
		$rs = $obj->Query($sql);
		$obj->CerrarConexion();
		$Fila = $obj->FetchArray($rs);
		if($obj->NumFilas($rs)>0) $retorna = $Fila["PRODUCTO"]."[[sep]]".$Fila["UM_VENTA"]."[[sep]]".$Fila["PRECIO_VENTA"]."[[sep]]".$Fila["STOCK"];
		else $retorna = "NO EXISTE";
		}
	return $retorna;
	}				

function xExportar($varForm) {
	$varCli = (isset($varForm["ccod"]) && $varForm["ccod"]<>'')? $varForm["ccod"]:"NULL";
	$varVen = (isset($varForm["vcod"]) && $varForm["vcod"]<>'')? $varForm["vcod"]:"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($varCli, $varVen, $varRut, $varIni, $varFin, '$varForm[est]', NULL, NULL);";
	$_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 clsFacturarCambios($var[0],$var[1],$var[2],$var[3],$var[4]);	
	$varTabla = $obj->GridDatos($varForm, $varField, $varOrder);
	$respuestaXajax = new xajaxResponse();
	$respuestaXajax->assign("divDatos", "innerHTML", utf8_encode($varTabla));
	$varMarcar="PMA_markRowsInit()";
	$respuestaXajax->script($varMarcar); 
	return $respuestaXajax;
	}

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

function xFormuEditar($varCod) {
	$var = VarServer("MYSQLI");
	$obj = new clsFacturarCambios($var[0],$var[1],$var[2],$var[3],$var[4]);
	$varTabla = $obj->FormuEditar($varCod);
	$respuestaXajax = new xajaxResponse();
	$varFecha = "$(function() {
					$('#ifec1').datepicker({ 
						  minDate: -10, 
						  maxDate: +10
						});
					$('#ifec2').datepicker({ 
						  minDate: -10, 
						  maxDate: +10
						});
					$('#ifec3').datepicker({ 
						  minDate: -10, 
						  maxDate: +10
						});
					$('#ifec4').datepicker({ 
						  minDate: -10, 
						  maxDate: +10
						});
					$('#ifec5').datepicker({ 
						  minDate: -10, 
						  maxDate: +10
						});
					$('#ifec6').datepicker({ 
						  minDate: -10, 
						  maxDate: +10
						});
					$('#ifec7').datepicker({ 
						  minDate: -10, 
						  maxDate: +10
						});
				});";
	$respuestaXajax->assign("divForm", "innerHTML", utf8_encode($varTabla));
	$respuestaXajax->script($varFecha); 
	return $respuestaXajax;
	}
	
function xFormuDetalle($varCod) {
	$var = VarServer("MYSQLI");
	$obj = new clsFacturarCambios($var[0],$var[1],$var[2],$var[3],$var[4]);
	$varTabla = $obj->FormuDetalle($varCod);
	$respuestaXajax = new xajaxResponse();
	$respuestaXajax->assign("divForm", "innerHTML", utf8_encode($varTabla));
	return $respuestaXajax;
	}
	
function xRegresar() {
	$var = VarServer("MYSQLI");
	$obj = new clsFacturarCambios($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", utf8_encode($varTabla));
	return $respuestaXajax;
	}
function xGrabar($varForm) {
	$var = VarServer("MYSQLI");
	$obj = new clsFacturarCambios($var[0],$var[1],$var[2],$var[3],$var[4]);
	$varResul = $obj->ProcesoGrabar($varForm);
	$respuestaXajax = new xajaxResponse();
	if ($varResul=="OK") {		
		$varTabla =  "<div id=\"divForm\">";
		$varTabla.=  $obj->FormuBusqueda();
		$varTabla.=  "<div id=\"divDatos\">";
		$varTabla.=  "</div>";
		$varTabla.=  "</div>";
	
		$respuestaXajax = new xajaxResponse();
		$respuestaXajax->assign("divForm", "innerHTML", utf8_encode($varTabla));
		$respuestaXajax->alert("PEDIDOS FACTURADOS CORRECTAMENTE");
		return $respuestaXajax;
		}
	else {
		$respuestaXajax->alert("ERROR AL PROCESAR DATOS...!!!!!\n====================================\n".$varResul."\nVERIFIQUE LOS DATOS POR FAVOR");		
		return $respuestaXajax;
		}
	}
	
function xEliminar($varCod) {
	$var = VarServer("MYSQLI");
	$obj = new clsFacturarCambios($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 clsFacturarCambios($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", utf8_encode($varTabla));
		$respuestaXajax->alert("CAMBIO ACTUALIZADO CORRECTAMENTE");
		return $respuestaXajax;
		}
	else
		$respuestaXajax->alert("ERROR AL PROCESAR DATOS...!!!!!\n====================================\n".$varResul."\nVERIFIQUE LOS DATOS POR FAVOR");
		
	return $respuestaXajax;
	}

$xajax->register(XAJAX_FUNCTION, 'seleccionar_cliente');
$xajax->register(XAJAX_FUNCTION, 'seleccionar_ruta');
$xajax->register(XAJAX_FUNCTION, 'seleccionar_vendedor');

$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");

$koolajax->enableFunction("seleccionaProducto");
echo $koolajax->Render();

?>
<script language="javascript">		
	function xBuscarJS(varField, varOrder) {
		if (xajax.$("ccod").value=="" && xajax.$("vcod").value=="" && xajax.$("fini").value=="" && xajax.$("ffin").value=="" && xajax.$("rcod").value=="") {
			alert("ERROR AL PROCESAR DATOS...!!!!!\nDEBE UTILIZAR AL MENOS UN PARAMETRO DE BUSQUEDA");  
			xajax.$("pcod").focus();
			return (false); 
			}
		else {
			xajax_xBuscar(xajax.getFormValues('form1'),varField, varOrder);		
			}
		}
	function xFacturarJS() {
		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.$("femi").value=="") {
			alert("ERROR AL FACTURAR PEDIDOS DATOS...!!!!!\n=====================================================\nDEBE ESPECIFICAR UNA FECHA DE EMISION");  
			xajax.$("femi").focus();
			return (false); 
			}
		else if (cont<=0) {
			alert("ERROR AL FACTURAR PEDIDOS DATOS...!!!!!\n=====================================================\nDEBE SELECCIONAR AL MENOS UN PEDIDO PARA FACTURAR");  
			xajax.$("femi").focus();
			return (false); 
			}
		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');
		var flagItem = 0;
		
		for (i=1; i<=varNumItem.value;i++) {
			var varCodigo = document.getElementById('icod['+i+']');
			var varProduc = document.getElementById('inom['+i+']');
			var varStock  = document.getElementById('istk['+i+']');
			var varCant   = document.getElementById('ican['+i+']');		
			var varLote	  = document.getElementById('ilot['+i+']');		
			var varVenc   = document.getElementById('ifec'+i);	
			if(varCodigo) {
				flagItem++;
				
				if(varCodigo.value=="" && con1==0) {
					msj_articulo = "FALTA SELECCIONAR ALGUN ARTICULO\n";
					con1++;
					}
				if(parseFloat(varCant.value) <= 0  || varCant.value=='' && con1==0) {
					msj_articulo = msj_articulo + "PRODUCTO : " + varCodigo.value + ' - ' + varProduc.value + ' -> DEBE INGRESAR UNA CANTIDAD\n';
					}
				
				if(parseFloat(varStock.value) <= 0 || varStock.value=='' && con1==0 ) {
					msj_articulo = msj_articulo + "PRODUCTO : " + varCodigo.value + ' - ' + varProduc.value + ' -> NO CUENTA CON STOCK SUFICIENTE\n';
					}
				if(parseFloat(varStock.value) < parseFloat(varCant.value) ) {
					msj_articulo = msj_articulo + "PRODUCTO : " + varCodigo.value + ' - ' + varProduc.value + ' -> NO CUENTA CON STOCK SUFICIENTE\n';
					}
				if(varLote.value=="" && con1==0) {
					msj_articulo = msj_articulo + "PRODUCTO : " + varCodigo.value + ' - ' + varProduc.value + ' -> DEBE INGRESAR UN NRO. DE LOTE\n';
					}
				if(varVenc.value=="" && con1==0) {
					msj_articulo = msj_articulo + "PRODUCTO : " + varCodigo.value + ' - ' + varProduc.value + ' -> DEBE INGRESAR UNA FECHA DE VENCIMIENTO\n';
					}	
				}
			}
		if (parseFloat(flagItem) <= 0) { 
			alert("ERROR AL PROCESAR DATOS...!!!!!\nNO INGRESO ITEM A ESTE DOCUMENTO\nDEBE INGRESAR AL MENOS UN IETM PARA CONTINUAR");
			myForm.btadd.focus()
			return (false); 
			}	
		else 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 (confirm("¿DESEA ACTURALIZAR LOS DATOS DEL CAMBIO?")) {
				xajax_xActualizar(xajax.getFormValues('form'));		
				}
			}
		}
		
	function xExportarJS() {
		xajax_xExportar(xajax.getFormValues('form'));		
		}
	function xExportarDetalleJS() {
		xajax_xExportarDetalle(xajax.getFormValues('form'));		
		}
	
	function xEliminarJS(varCod, varCCod, varCNom, varVCod, varVNom, varRCod, varRNom, varTab) {
		UnTip();
		if(confirm('¿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_cambio.php?ide='+varCod;
		testwindow= window.open (Ruta, "print_detalle_pedido_cambio", "location=no,status=no,toolbar=no,scrollbars=1,width=800,height=550");	
		}
	function select_producto(ide, varLista) {	
		var ccod1 = document.getElementById('icod['+ide+']');
		var cnom1 = document.getElementById('inom['+ide+']');
		var cuni1 = document.getElementById('ipre['+ide+']');
		var cstk1 = document.getElementById('istk['+ide+']');
		var cume1 = document.getElementById('iuni['+ide+']');
		
		var existe="NO";
		var form = document.getElementById('form');	
		if(ccod1=="") {
			ccod1.value = "";
			cnom1.value = "";
			cstk1.value = "";
			cume1.value = "";
			}
		else {		
			var dato = koolajax.callback(seleccionaProducto(ccod1.value, varLista));		
			if(dato=="NO EXISTE") {
				alert("PRODUCTO ESCRITO NO EXISTE...");
				ccod1.value = "";
				cnom1.value = dato;
				cuni1.value = "";
				cume1.value = "";
				ccod1.focus();
				}
			else {
				var myArray = dato.split('[[sep]]'); 			
				for (i=0;i<form.elements.length;i++) {
					var Campo = form.elements[i].name;		
					if(Campo.indexOf("icod")==0 && form.elements[i].value==ccod1.value && Campo != ccod1.name) {
						existe="SI";	
						}	
					}				
				if (existe=="SI") {
					ccod1.value = "";
					cnom1.value = "";
					cuni1.value = "";
					cume1.value = "";
					alert("EL producto : " + ccod1.value + "\n" + myArray[0] + "\nYA ESTA AGREGADO, SELECCIONE OTRO POR FAVOR");
					ccod1.focus();
					}
				else {
					
					cnom1.value = myArray[0];
					cume1.value = myArray[1];
					cstk1.value = myArray[3];
					cuni1.value = myArray[2];
					}
				}
			}
		}
	function CalcularItem(i) {
		var varCant = 0;
		var varUnitario = 0;
		
		var vuni = document.getElementById('ipre['+i+']');
		var vcant = document.getElementById('ican['+i+']');	
		var vtot = document.getElementById('itot['+i+']');
		
		if (vuni.value=="") varUnitario = "0";
		else	varUnitario = vuni.value;
		
		if (vcant.value=="") varCant="0";
		else	varCant = vcant.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>";
	} 
?>