<?php
include_once('../../../php/sessionStart.php');
include_once('../../../php/db/dbExec.php');
include_once('../../../php/functions.php');
include_once('../../../php/timezone.php');
include_once('../../../php/privileges.php');

$bitForm = "cnt1080";
$bitMod = "cnt";
$empCod = $_SESSION['empCod'];
$usuCod = utf8_decode($_SESSION['usuCod']);
$usuNom = utf8_decode($_SESSION['usuNom']);

switch ($_POST['action']) {

	case 'borrar':
		echo borrar();
		break;
}


function borrar() {
	global $empCod, $usuNom, $bitMod, $bitForm;

	$func = new functions();

	$dtFeci=$_POST['dtFeci'];
	$dtFecf=$_POST['dtFecf'];
	$selTipo=$_POST['selTipo'];
	$selTipoNom=$_POST['selTipoNom'];	
	

	# QUERYS

	$sPoliDet = "SELECT * FROM poli_det WHERE pold_emp='$empCod' AND pold_fec>='$dtFeci' AND pold_fec<='$dtFecf' AND pold_tipo='$selTipo'";

	$dPolizas = "DELETE FROM polizas WHERE pol_emp='$empCod' AND pol_fec>='$dtFeci' AND pol_fec<='$dtFecf' AND pol_tipo='$selTipo'";
	$dPoliDet = "DELETE FROM poli_det WHERE pold_emp='$empCod' AND pold_fec>='$dtFeci' AND pold_fec<='$dtFecf' AND pold_tipo='$selTipo'";

	function sCuentas($cta) { 
		global $empCod;
		return "SELECT * FROM cuentas WHERE cta_emp='$empCod' AND cta='$cta'";
	}

	function sCierres($cta, $numAnio, $numMes) { 
		global $empCod;
		return "SELECT * FROM cierres WHERE cie_emp='$empCod' AND cie_ano=$numAnio AND cie_mes=$numMes AND cie_cta='$cta'";
	}

	function uCierres($cta, $numAnio, $numMes, $mdebe, $mhaber) { 
		global $empCod, $usuNom;
		return "UPDATE cierres SET cie_mdebe=$mdebe, cie_mhaber=$mhaber, cie_ulcam='$usuNom' WHERE cie_emp='$empCod' AND cie_ano=$numAnio AND cie_mes=$numMes AND cie_cta='$cta'";
	}

	function sCiemes($numAnio, $numMes) { 
		global $empCod;
		return "SELECT * FROM ciemes WHERE ciem_emp='$empCod' AND ciem_ano=$numAnio AND ciem_mes=$numMes";
	}

	# EJECUCION DE QUERYS 
	$db = new dbExec();

	// VARIABLES PARA VERIFICAR LA ACUMULACIÓN DE MESES CERRADOS
	$numMesAnt=0;
	$numAnioAnt=0;

	// PARA REVERTIR LOS CIERRES
	$select["poli_det"]=$db->query($sPoliDet);
	$mesesCerrados="";
	while ($rec = $db->fetchAssoc($select['poli_det'])) {
		$cta = $rec["pold_cta"];
		$numAnio=date("Y", strtotime($rec["pold_fec"]));
		$numMes=date("m", strtotime($rec["pold_fec"]));
		
		$fetchAssoc["ciemes"] = $db->sFetchAssoc(sCiemes($numAnio, $numMes));
		if ($fetchAssoc["ciemes"]["ciem_stat"]!="C") {
			while (!empty($cta)) {
				$fetchAssoc["cuentas"] = $db->sFetchAssoc(sCuentas($cta));
				$fetchAssoc["cierres"] = $db->sFetchAssoc(sCierres($cta, $numAnio, $numMes));

				$ctaActa = trim($fetchAssoc["cuentas"]["cta_acta"]);
				$mdebe=$fetchAssoc["cierres"]["cie_mdebe"]-$rec["pold_debe"];
				$mhaber=$fetchAssoc["cierres"]["cie_mhaber"]-$rec["pold_haber"];

				$db->query(uCierres($cta, $numAnio, $numMes, $mdebe, $mhaber));
				$resp = $db->dEx($dPolizas);
				$resp = $db->dEx($dPoliDet);

				$cta = $ctaActa;
			}
		} else {
			if ($numMes!=$numMesAnt) {
				$mesesCerrados.="<tr><td>$numMes</td><td>$numAnio</td><tr>";
			}
			$numAnioAnt = $numAnio;
			$numMesAnt = $numMes;
		}
	}
 
	if ($db->numRows($select["poli_det"])>0) {
		$resp['msgWarning'] = array(
			'recNull'=>false,
			'mesesCerrados'=>(!empty($mesesCerrados)) ? true : false,
			'msg'=>array(
				'title'=>'Meses Cerrados',
				'text'=>'No se eliminaron las pólizas de las siguientes fechas: <table class="mx-auto"><tr><th>Mes</th><th>Año</th><tr>'.$mesesCerrados.'</table>'
			),
		);
	} else {
		$resp['msgWarning'] = array(
			'recNull'=>true,
			'msg'=>array(
				'title'=>'No se encontró ningún registro',
				'text'=>'No hay pólizas registradas en este rango de fechas'
			),
		);
	}

	$db->iEx($func->iBitacora(utf8_decode("Se borraron las Polizas Tipo: $selTipoNom del: $dtFeci  al:  $dtFecf Usuario: ").$usuNom, $bitMod, $bitForm));
	$db->close();

	$resp["qwer"]=$sPoliDet;

	return json_encode($resp);
}
?>