<?php
require_once('clases/xajax/xajax_core/xajax.inc.php');
$xajax = new xajax();
//$xajax->setFlag('debug',true); 
$xajax->configure('javascript URI', 'clases/xajax/');
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";
	$varEst = (isset($varForm["est"]) && $varForm["est"]<>'Ninguno')?"'".$varForm["est"]."'":"NULL";
	$varUsr = (isset($_SESSION["_CUSE"]))?$_SESSION["_CUSE"]:1;
	$varFie = (isset($varField) && $varField<>'')? "'$varField'":"NULL";
	$varOrd = (isset($varOrder) && $varOrder<>'')? "'$varOrder'":"NULL";
	
	$sql = "call spQuery_CXP_Registro_Compras('101', $varPro, $varTip, $varIni, $varFin, $varEst, $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) {
	$objResponse = new xajaxResponse();
	
	if(!isset($_SESSION["_CUSE"])) {
		$objResponse->redirect("logout.php");
		$objResponse->alert("AQUI");
		return $objResponse;
		}
	else {
		$var = VarServer("MYSQLI");
		$obj = new clsRegistroCompras($var[0],$var[1],$var[2],$var[3],$var[4]);	
		$varTabla = $obj->GridDatos($varForm, $varField, $varOrder);
		$objResponse->assign("divDatos", "innerHTML", utf8_encode($varTabla));
		$varMarcar="ResaltarSeleccionado()";
		$objResponse->script($varMarcar); 
		return $objResponse;
		
		}
	
	}

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);
	$objResponse = new xajaxResponse();
	$objResponse->assign("divForm", "innerHTML", utf8_encode($varTabla));
	$objResponse->script($variable); 
	$varFecha = '$(document).ready(function() {
					function startChange() {
                        var startDate = femi.value();

                        if (startDate) {
                            startDate = new Date(startDate);
                            startDate.setDate(startDate.getDate());
                            fmov.min(startDate);
							fven.min(startDate);
                        }
                    }

                    function endChange() {
                        var endDate = fmov.value();
                        if (endDate) {
                            endDate = new Date(endDate);
                            endDate.setDate(endDate.getDate());
                            //femi.max(endDate);
                        	}
                    	}
					function endChangeVen() {
                        var endDate = fven.value();
                        if (endDate) {
                            endDate = new Date(endDate);
                            endDate.setDate(endDate.getDate());
                            //femi.max(endDate);
                        	}
                    	}

                    var femi = $("#femi").kendoDatePicker({
                        change: startChange,
						format: "dd/MM/yyyy"
                    }).data("kendoDatePicker");

                    var fmov = $("#fmov").kendoDatePicker({
                        change: endChange,
						format: "dd/MM/yyyy"
                    }).data("kendoDatePicker");
					
					var fven = $("#fven").kendoDatePicker({
                        change: endChangeVen,
						format: "dd/MM/yyyy"
                    }).data("kendoDatePicker");

					fecha_actual = new Date("'.sumaDia2(date("Y-m-d",time()),-60).'");
					femi.min(fecha_actual);
                    fmov.min(femi.value());
					fven.min(femi.value());
                });';
	$objResponse->script($varFecha);
	return $objResponse;
	}

function xFormuDetalle($varCod) {
	$var = VarServer("MYSQLI");
	$obj = new clsRegistroCompras($var[0],$var[1],$var[2],$var[3],$var[4]);
	$varTabla = $obj->FormuDetalle($varCod);
	$objResponse = new xajaxResponse();
	$objResponse->assign("divForm", "innerHTML", utf8_encode($varTabla));
	return $objResponse;
	}
	
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>";
	$objResponse = new xajaxResponse();
	$objResponse->assign("divForm", "innerHTML", utf8_encode($varTabla));
	$varFecha = '$(document).ready(function() {
				function startChange() {
					var startDate = fini.value();
		
					if (startDate) {
						startDate = new Date(startDate);
						startDate.setDate(startDate.getDate());
						ffin.min(startDate);
					}
				}
		
				function endChange() {
					var endDate = ffin.value();
		
					if (endDate) {
						endDate = new Date(endDate);
						endDate.setDate(endDate.getDate());
						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");
		
			});';
	$objResponse->script($varFecha);
	return $objResponse;
	}
function xGrabar($varForm) {
	$var = VarServer("MYSQLI");
	$obj = new clsRegistroCompras($var[0],$var[1],$var[2],$var[3],$var[4]);
	$varResul = $obj->ProcesoGrabar($varForm);
	$objResponse = new xajaxResponse();
	if ($varResul[0]=="OK") {
		$varTabla = $obj->FormuDetalle($varResul[1]);
		$objResponse = new xajaxResponse();
		$objResponse->assign("divForm", "innerHTML", utf8_encode($varTabla));
		}
	else
		$objResponse->alert("ERROR AL PROCESAR DATOS...!!!!!\n====================================\n".$varResul[0]."\nVERIFIQUE LOS DATOS POR FAVOR");
		
	return $objResponse;
	}
	
function xEliminar($varCod) {
	$var = VarServer("MYSQLI");
	$obj = new clsRegistroCompras($var[0],$var[1],$var[2],$var[3],$var[4]);
	$varResul = $obj->ProcesoEliminar($varCod);	
	$objResponse = new xajaxResponse();
	if ($varResul=="OK") {
		//$varTabla = $obj->FormuDetalle($varResul[1]);
		//$objResponse = new xajaxResponse();
		//$objResponse->assign("divForm", "innerHTML", utf8_encode($varTabla));
		$objResponse->alert("COMPRA ANULADA CORRECTAMENTE");
		}
	else
		$objResponse->alert("ERROR AL PROCESAR DATOS...!!!!!\n====================================\n".$varResul."\nVERIFIQUE LOS DATOS POR FAVOR");
		
	return $objResponse;
	}
	
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 = $sql.$Fila["PRODUCTO"]."[[sep]]".$Fila["UM_COMPRA"]."[[sep]]".$Fila["PRECIO_COMPRA"];
		else $retorna = "NO EXISTE";
		}
	return $retorna;
	}

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

$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();
		}
</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 con1 = 0;
		var con2 = 0;
		var con3 = 0;
		var varNumItem = xajax.$('num').value;
		var varErrorCab = "ERROR AL PROCESAR DATOS...!!!!!\n";
		var varErrorDet = "";
			
		if (xajax.$("tdoc1") && xajax.$("tdoc1").value=="Ninguno") {
			varErrorDet = varErrorDet + "- DEBE SELECCIONAR UN TIPO DE DOCUMENTO\n";
			}
		if (xajax.$("nser") && xajax.$("nser").value=="") {
			varErrorDet = varErrorDet + "- DEBE ESPECIFICAR UN NUMERO DE SERIE";
			}
		if (xajax.$("nnum") && xajax.$("nnum").value=="") {
			varErrorDet = varErrorDet + "- DEBE ESPECIFICAR UN NUMERO DE DOCUMENTO";
			}		
		if (xajax.$("femi") && xajax.$("femi").value=="") { 
			varErrorDet = varErrorDet + "- DEBE ESPECIFICAR UNA FECHA DE EMISION";
			}
		if (xajax.$("fmov") && xajax.$("fmov").value=="") { 
			varErrorDet = varErrorDet + "- DEBE ESPECIFICAR UNA FECHA DE MOVIMIENTO";
			}	
		if (xajax.$("con") && xajax.$("con").value=="") { 
			varErrorDet = varErrorDet + "- DEBE ESPECIFICAR UNA CONDICION DE PAGO";
			}
		if (xajax.$("pcod1") && xajax.$("pcod1").value=="") { 
			varErrorDet = varErrorDet + "- DEBE SELECCIONAR UN PROVEEDOR";
			}
		if (xajax.$("num") && xajax.$("num").value=="0") { 
			varErrorDet = varErrorDet + "- NO INGRESO ITEM A ESTE DOCUMENTO\nDEBE INGRESAR AL MENOS UN IETM PARA CONTINUAR";
			}
		
		// KRSC 07/06/2013
		// Verificamos si existen 2 items iguales en el detalle de la compra
		for (i=1; i<=varNumItem; i++) {
			if(xajax.$('icod'+i)) {
				var varMov = xajax.$('imov'+i).value;
				var varCod = xajax.$('icod'+i).value;
				var varPro = xajax.$('inom'+i).value;
				var varUni = xajax.$('iuni'+i).value;
				var varPre = xajax.$('ipre'+i).value;
				var varCan = xajax.$('ican'+i).value;
				for (j=1; j<=varNumItem; j++) {
					if (j!=i && xajax.$('icod'+j)) {
						var varMov1 = xajax.$('imov'+j).value;
						var varCod1 = xajax.$('icod'+j).value;
						var varUni1 = xajax.$('iuni'+j).value;
						if(varMov==varMov1 && varCod==varCod1 && varUni==varUni1) {
							varErrorDet = varErrorDet + "- ITEM : " + varMov + " - " + varCod + " - " + varPro + " - " + varUni + " -> SE ENCUENTRA DUPLICADO\n";
							}
						}
					}
				if(varCod =="" && con1==0) {
					varErrorDet = varErrorDet + "- FALTA SELECCIONAR ALGUN ARTICULO\n";
					con1++;
					}
				if(parseFloat(varPre) <= 0 || varPre=='') {
					varErrorDet = varErrorDet + "- ITEM : " + varMov + " - " + varCod + " - " + varPro + " - " + varUni + ' -> ESPECIFICAR PRECIO\n';
					}
				if(parseFloat(varCan) <= 0  || varCan=='') {
					varErrorDet = varErrorDet + "- ITEM : " + varMov + " - " + varCod + " - " + varPro + " - " + varUni + ' -> ESPECIFICAR CANTIDAD\n';
					}
				}
			}
			
		if (varErrorDet!="") {
			alert(varErrorCab + varErrorDet)
			}
		else {
			if (confirm("¿DESEA 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_cxp_registro_compras_detalle.php?ide='+varCod;
		testwindow= window.open (Ruta, "Detalle_Pedido", "location=no,status=no,toolbar=no,scrollbars=1,width=900,height=550");	
		}
	function xImprimirJS() {
		var varPro = xajax.$("pcod").value;
		var varTip = xajax.$("tcod").value;
		var varIni = xajax.$("fini").value;
		var varFin = xajax.$("ffin").value;
		var varEst = xajax.$("est").value;
		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 {
			var Ruta = 'print/print_cxp_registro_compras.php?pro='+varPro+'&tip='+varTip+'&ini='+varIni+'&fin='+varFin+'&est='+varEst;
			testwindow= window.open (Ruta, "print_cxp_registro_compras", "location=no,status=no,toolbar=no,scrollbars=1,width=1100,height=500");
			}	
		}
</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>";
	}
?>