<?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 xExportar($varForm) {
	$varPro = (isset($varForm["pcod"]) && $varForm["pcod"]<>'')? $varForm["pcod"]:"NULL";
	$varTip = (isset($varForm["tcod"]) && $varForm["tcod"]<>'')? $varForm["tcod"]:"NULL";
	$varIni = (isset($varForm["fini"]) && $varForm["fini"]<>'')? "'".FechaMySql($varForm["fini"])."'":"NULL";
	$varFin = (isset($varForm["ffin"]) && $varForm["ffin"]<>'')? "'".FechaMySql($varForm["ffin"])."'":"NULL";
	
	$sql = "call spQuery_Registro_Compras($varPro, $varTip, $varIni, $varFin, 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 clsRegistroCompras($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="ResaltarSeleccionado()";
	$respuestaXajax->script($varMarcar); 
	return $respuestaXajax;
	}

function xFormuRegistro($varOpt, $varCod) {
	$var = VarServer("MYSQLI");
	$obj = new clsRegistroCompras($var[0],$var[1],$var[2],$var[3],$var[4]);
	$varTabla = $obj->FormuRegistro($varOpt, $varCod);
	$respuestaXajax = new xajaxResponse();
	$variable = "$(function() {
					$('#femi').datepicker({ 
						  minDate: -10, 
						  maxDate: +10
						});
					$('#fmov').datepicker({ 
						  minDate: -10, 
						  maxDate: +10
						});
				});";
	$respuestaXajax->assign("divForm", "innerHTML", utf8_encode($varTabla));
	$respuestaXajax->script($variable); 
	return $respuestaXajax;
	}

function xFormuDetalle($varCod) {
	$var = VarServer("MYSQLI");
	$obj = new clsRegistroCompras($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 clsRegistroCompras($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 clsRegistroCompras($var[0],$var[1],$var[2],$var[3],$var[4]);
	$varResul = $obj->ProcesoGrabar($varForm);
	$respuestaXajax = new xajaxResponse();
	if ($varResul[0]=="OK") {
		$varTabla = $obj->FormuDetalle($varResul[1]);
		$respuestaXajax = new xajaxResponse();
		$respuestaXajax->assign("divForm", "innerHTML", utf8_encode($varTabla));
		}
	else
		$respuestaXajax->alert("ERROR AL PROCESAR DATOS...!!!!!\n====================================\n".$varResul[0]."\nVERIFIQUE LOS DATOS POR FAVOR");
		
	return $respuestaXajax;
	}
	
function xEliminar($varCod) {
	$var = VarServer("MYSQLI");
	$obj = new clsRegistroCompras($var[0],$var[1],$var[2],$var[3],$var[4]);
	$varResul = $obj->ProcesoEliminar($varCod);	
	$respuestaXajax = new xajaxResponse();
	if ($varResul=="OK") {
		//$varTabla = $obj->FormuDetalle($varResul[1]);
		//$respuestaXajax = new xajaxResponse();
		//$respuestaXajax->assign("divForm", "innerHTML", utf8_encode($varTabla));
		$respuestaXajax->alert("COMPRA ANULADA CORRECTAMENTE");
		}
	else
		$respuestaXajax->alert("ERROR AL PROCESAR DATOS...!!!!!\n====================================\n".$varResul."\nVERIFIQUE LOS DATOS POR FAVOR");
		
	return $respuestaXajax;
	}
	
function seleccionaProducto($ide) {
	if($ide<>"") {
		$var = VarServer("MYSQLI");
		$obj = new clsConexion($var[0],$var[1],$var[2],$var[3],$var[4]);
		$obj->AbrirConexion();
		$sql = "call spQuery_Lista_Producto('$ide','');";
		$rs = $obj->Query($sql);
		$obj->CerrarConexion();
		$Fila = $obj->FetchArray($rs);
		if($obj->NumFilas($rs)>0) $retorna = $Fila["PRODUCTO"]."[[sep]]".$Fila["UM_COMPRA"]."[[sep]]".$Fila["PRECIO_COMPRA"];
		else $retorna = "NO EXISTE";
		}
	return $retorna;
	}

function seleccionar_producto_compra($ide, $varCod, $varNom, $varUMe) {
	if($ide<>"") {
		$var = VarServer("MYSQLI");
		$obj = new clsConexion($var[0],$var[1],$var[2],$var[3],$var[4]);
		$obj->AbrirConexion();
		$sql = "call spQuery_Lista_Producto('$ide','');";
		$rs = $obj->Query($sql);
		$obj->CerrarConexion();
		$Fila = $obj->FetchArray($rs);
		$objResponse = new xajaxResponse();
		if($obj->NumFilas($rs)>0) $retorna = utf8_encode($Fila[1]);
		else {
			$retorna = "NO EXISTE";		
			$objResponse->assign($varCod, "value", "");
			$objResponse->assign($varNom, "value", "");
			$objResponse->assign($varUMe, "value", "");
			}
		$objResponse->assign($varNom, "value", $retorna);
		$sql = "select id_um, id_um as um
				from
				(
				select id_um_compra as id_um from _sv_producto where id_producto='$varCod'
				union
				select id_um_venta from _sv_producto where id_producto='$varCod'
				union
				select id_um_stock from _sv_producto where id_producto='$varCod'
				) A;";
		
		$comboUM = $obj->SetCombo($varUMe, $sql, NULL, "50", NULL, NULL);
	
		$objResponse->assign($varUMe, "value", $comboUM);
		return $objResponse;
		}
	else {
		$objResponse = new xajaxResponse();
		$objResponse->assign($varNom, "value", "");
		$objResponse->assign($varUMe, "value", "");
		return $objResponse;
		}	
	}

function addValorCombo($varCod, $varFiel) {
	if($ide<>"") {
		$var = VarServer("MYSQLI");
		$obj = new clsConexion($var[0],$var[1],$var[2],$var[3],$var[4]);
		$obj->AbrirConexion();
		$sql = "call spQuery_Lista_Producto('$ide','');";
		$rs = $obj->Query($sql);
		$obj->CerrarConexion();
		$Fila = $obj->FetchArray($rs);
		$objResponse = new xajaxResponse();
		if($obj->NumFilas($rs)>0) $retorna = utf8_encode($Fila[1]);
		else {
			$retorna = "NO EXISTE";		
			$objResponse->assign($varCod, "value", "");
			$objResponse->assign($varNom, "value", "");
			$objResponse->assign($varUMe, "value", "");
			}
		$objResponse->assign($varNom, "value", $retorna);
		$sql = "select id_um, id_um as um
				from
				(
				select id_um_compra as id_um from _sv_producto where id_producto='$varCod'
				union
				select id_um_venta from _sv_producto where id_producto='$varCod'
				union
				select id_um_stock from _sv_producto where id_producto='$varCod'
				) A;";
		
		$comboUM = $obj->SetCombo($varUMe, $sql, NULL, "50", NULL, NULL);
	
		$objResponse->assign($varUMe, "value", $comboUM);
		return $objResponse;
		}
	else {
		$objResponse = new xajaxResponse();
		$objResponse->assign($varNom, "value", "");
		$objResponse->assign($varUMe, "value", "");
		return $objResponse;
		}
	$variable = "$(function() {
					$('#femi').datepicker({ 
						  minDate: -10, 
						  maxDate: +10
						});
					$('#fmov').datepicker({ 
						  minDate: -10, 
						  maxDate: +10
						});
				});";
	$respuestaXajax->assign("divForm", "innerHTML", utf8_encode($varTabla));
	$respuestaXajax->script($variable); 
	}


$xajax->register(XAJAX_FUNCTION, 'seleccionar_proveedor');
$xajax->register(XAJAX_FUNCTION, 'seleccionar_tipo_docpago');

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


$xajax->processRequest();
$xajax->printJavascript("clases/xajax");
$koolajax->enableFunction("seleccionaProducto");
echo $koolajax->Render();
?>
<script language="javascript">


	
function CalcularItem(i) {
	var varCant = 0;
	var varUnitario = 0;
	var varDes  = 0;
	
	var vuni = document.getElementById('ipre['+i+']');
	var vcan = document.getElementById('ican['+i+']');
	var vdes1 = document.getElementById('ides1['+i+']');
	var vdes2 = document.getElementById('ides2['+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;
	
	if (vdes1.value=="") varDes1	="0";
	else	varDes1 = vdes1.value;
	
	if (vdes2.value=="") varDes2	="0";
	else	varDes2 = vdes2.value;
	
	var varTotTemp = parseFloat(varUnitario)*parseFloat(varCant);
	var varTotal1  = parseFloat(varTotTemp) - parseFloat(varTotTemp)*parseFloat(varDes1)/100;
	var varTotal2  = parseFloat(varTotal1) - parseFloat(varTotal1)*parseFloat(varDes2)/100;
	
	vtot.value = redondear(varTotal2,2);
	CalculaRTotal();
	}

function CalcularItemSubTotal(i) {
	var varCant = 0;
	var varUnitario = 0;
	var varDes1 = 0;
	var varDes2 = 0;
	var varTot	= 0;
	
	var vuni  = document.getElementById('ipre['+i+']');
	var vcan  = document.getElementById('ican['+i+']');
	var vdes1 = document.getElementById('ides1['+i+']');
	var vdes2 = document.getElementById('ides2['+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;
	
	if (vdes1.value=="") varDes1	= "0";
	else	varDes1 = vdes1.value;
	
	if (vdes2.value=="") varDes2	= "0";
	else	varDes2 = vdes2.value;
	
	if (vtot.value=="") varTot	= "0";
	else	varTot = vtot.value;
	
	var varDesTot = 1 - (1 - varDes1/100)*(1 - varDes2/100);
	varUnitario  = (parseFloat(varTot)/(1 - varDesTot))/parseFloat(varCant);
	vuni.value = redondear(varUnitario,5);
	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 vTot = document.getElementById('tot');
	var vSub = document.getElementById('stot');
	var vIgv = document.getElementById('igv');
	var vFla = document.getElementById('flag_igv');
	if (vFla.value == "S") {
		vTot.value = redondear(sto,2);
		vIgv.value = redondear(sto-sto/1.18,2);
		vSub.value = redondear(sto/1.18,2);
		}
	else {
		vSub.value = redondear(sto,2);
		vIgv.value = redondear(sto*0.18,2);
		vTot.value = redondear(sto*1.18,2);
		}
	}

function DeleteRow(x) {
	EliminarFilaTabla(x);
	CalculaRTotal();
	}
	
function valida(e){
	tecla=(document.all) ? e.keyCode : e.which;
	if(tecla == 13)
	document.form.cond.focus();
	}

		
function select_producto(ccod, cnom, cum, cuni) {
	var ccod1 = document.getElementById(ccod);
	var cnom1 = document.getElementById(cnom);
	var cum1  = document.getElementById(cum);
	var cuni1 = document.getElementById(cuni);
	var existe="NO";
	var form = document.getElementById('form');		
	if(ccod1.value=="") {
		ccod1.value = "";
		cnom1.value = "";
		//cum1.value  = "";
		cuni1.value = "";
		}
	else {		
		var dato = koolajax.callback(seleccionaProducto(ccod1.value));
		if(dato=="NO EXISTE") {
			alert("PRODUCTO ESCRITO NO EXISTE...");
			ccod1.value = "";
			cnom1.value = dato;
			cum1.value  = "";
			//cuni1.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 != ccod) {
					existe="SI";	
					}	
				}
				
			if (existe=="SI") {
				ccod1.value = "";
				cnom1.value = "";
				cum1.value = "";
				//cuni1.value = "";
				alert("EL ARTICULO : " + ccod1.value + "\n" + myArray[0] + "\nYA ESTA AGREGADO, SELECCIONE OTRO POR FAVOR");
				ccod1.focus();
				}
			else {
				cnom1.value = myArray[0];
				cum1.value  = myArray[1];
				xajax_addValorCombo(ccod1.value, cum1);
				//addValorCombo("iuni["+num+"]","UND");
				//cuni1.value = myArray[2];
				}
			}
		}
	}
</script>
<script language="javascript">		
	function xBuscarJS(varField, varOrder) {
		if (xajax.$("pcod").value=="" && xajax.$("tcod").value=="" && xajax.$("fini").value=="" && xajax.$("ffin").value=="") {
			alert("ERROR AL PROCESAR DATOS...!!!!!\nDEBE UTILIZAR AL MENOS UN PARAMETRO DE BUSQUEDA");  
			xajax.$("pcod").focus();
			return (false); 
			}
		else {
			xajax_xBuscar(xajax.getFormValues('form'),varField, varOrder);		
			}
		}
	function xExportarJS() {
		xajax_xExportar(xajax.getFormValues('form'));		
		}
	function xExportarDetalleJS() {
		xajax_xExportarDetalle(xajax.getFormValues('form'));		
		}
	function xGrabarJS() {
		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.$("tdoc") && xajax.$("tdoc").value=="Ninguno") {
			alert("ERROR AL PROCESAR DATOS...!!!!!\nDEBE SELECCIONAR UN TIPO DE DOCUMENTO");  
			xajax.$("tdoc").focus();
			return (false); 
			}
		else if (expreg.test(xajax.$("ndoc").value)==false) {
			alert("ERROR AL PROCESAR DATOS...!!!!!\nEL NUMERO DE DOCUMENTO\n DEBE TENER EL SIGUIENTE FORMATO: ###-#######\nEjemplo: 123-1234567");
			xajax.$("ndoc").focus()
			return (false); 
			}		
		else if (xajax.$("femi") && xajax.$("femi").value=="") { 
			alert("ERROR AL PROCESAR DATOS...!!!!!\nDEBE INGRESAR UNA FECHA DE EMISION");
			xajax.$("femi").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.$("pnom") && xajax.$("pnom").value=="NO EXISTE") { 
			alert("ERROR AL PROCESAR DATOS...!!!!!\nEL PROVEEDOR INGRESADO NO EXISTE, DEBE SELECCIONAR UN PROVEEDOR VALIDO");
			xajax.$("pcod").focus()
			return (false); 
			}
		else if (xajax.$("pcod") && xajax.$("pcod").value=="") { 
			alert("ERROR AL PROCESAR DATOS...!!!!!\n DEBE SELECCIONAR UN PROVEEDOR");
			xajax.$("pcod").focus()
			return (false); 
			}
		else if (xajax.$("num") && xajax.$("num").value=="0") { 
			alert("ERROR AL PROCESAR DATOS...!!!!!\nNO INGRESO ITEM A ESTE DOCUMENTO\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("¿DESE REGISTRAR LA COMPRA?")) {
				xajax_xGrabar(xajax.getFormValues('form'));		
				}
			}
		}
	
	function xEliminarJS(varCod, varEmi, varTipo, varDoc, varTab) {
		if(confirm('¿ESTA SEGURO DE ANULAR ESTA COMPRA?\n====================================\nFecha Emisión \t: '+varEmi+'\nTipo Doc. \t\t: '+varTipo+'\nDocumento \t\t: '+varDoc+'\nTENGA EN CUENTA QUE ESTE PROCESO ANULARA EL MOVIMIENTO QUE SE REALIZO EN EL ALMACEN')) {			
			xajax_xEliminar(varCod);
			EliminarFilaTabla(varTab)
			}
		}
		
	function FormuRegistroJS(varOpt, varCod) {
		UnTip();
		xajax_xFormuRegistro(varOpt, varCod);		
		}
	function FormuDetalleJS(varCod) {
		UnTip();
		var Ruta = 'print/print_detalle_compra.php?ide='+varCod;
		testwindow= window.open (Ruta, "Detalle_Pedido", "location=no,status=no,toolbar=no,scrollbars=1,width=800,height=550");	
		}
</script>
<?php

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