Fatal error: Call-time pass-by-reference has been removed; If you would like to pass argument by reference, modify the declaration of comprimir_arreglo(). in /home/gersofts/public_html/phpHotel/panel_facturas.php on line 24
-------------------------------------------------------------------------------------------------------------------
<?php
include_once('inc/validar.inc');
chdir(dirname(__FILE__));
include_once('../general/inc/gestor_facturacion.php');
chdir(dirname(__FILE__));
include_once('inc/xajax/xajax.inc.php');
function comprimir_arreglo($array){
$new_array = array();
foreach ($array as $element){
array_push($new_array,$element);
}
$array = $new_array;
}
function eliminar_facturas($arrFacturasPausadasJS,$arrFacturasEnCursoJS){
/* @var $gestor_facturacion Gestor_Facturacion */
$gestor_facturacion = Gestor_Facturacion::getInstancia();
$respuesta = new xajaxResponse();
$host = 1;
$arrFacturasPausadasBorrar = array();
$arrFacturasPausadasBD = $gestor_facturacion->obtener_facturas_pausadas($host);
$arrFacturasPausadasBorrar = array_diff($arrFacturasPausadasJS,$arrFacturasPausadasBD);
comprimir_arreglo(&$arrFacturasPausadasBorrar);
if(sizeof($arrFacturasPausadasBorrar) > 0){
$respuesta->addScriptCall('eliminar_facturas_pausadas',$arrFacturasPausadasBorrar);
}
$arrFacturasEnCursoBorrar = array();
$arrFacturasEnCursoBD = $gestor_facturacion->obtener_facturas_en_curso($host);
$arrFacturasEnCursoBorrar = array_diff($arrFacturasEnCursoJS,$arrFacturasEnCursoBD);
comprimir_arreglo(&$arrFacturasEnCursoBorrar);
if(sizeof($arrFacturasEnCursoBorrar) > 0){
$respuesta->addScriptCall('eliminar_facturas_en_curso',$arrFacturasEnCursoBorrar);
}
$respuesta->addScriptCall('obtener_facturas');
return $respuesta;
}
function agregar_facturas($arrFacturasPausadasJS,$arrFacturasEnCursoJS){
/* @var $gestor_facturacion Gestor_Facturacion */
$gestor_facturacion = Gestor_Facturacion::getInstancia();
$respuesta = new xajaxResponse();
$host = 1;
$arrFacturasPausadasAgregar = array();
$arrFacturasPausadasBD = $gestor_facturacion->obtener_facturas_pausadas($host);
$arrFacturasPausadasAgregar = array_diff($arrFacturasPausadasBD,$arrFacturasPausadasJS);
comprimir_arreglo(&$arrFacturasPausadasAgregar);
foreach ($arrFacturasPausadasAgregar as $factura_impresion_id){
if(($arrFactura = $gestor_facturacion->obtener_datos_factura($factura_impresion_id))){
$respuesta->addScriptCall('agregar_factura',$arrFactura);
}
else{
$respuesta->addAlert('Se produjo un error al recuperar una factura');
}
}
$arrFacturasEnCursoAgregar = array();
$arrFacturasEnCursoBD = $gestor_facturacion->obtener_facturas_en_curso($host);
$arrFacturasEnCursoAgregar = array_diff($arrFacturasEnCursoBD,$arrFacturasEnCursoJS);
comprimir_arreglo(&$arrFacturasEnCursoAgregar);
foreach ($arrFacturasEnCursoAgregar as $factura_impresion_id){
if(($arrFactura = $gestor_facturacion->obtener_datos_factura($factura_impresion_id))){
$respuesta->addScriptCall('agregar_factura',$arrFactura);
}
else{
$respuesta->addAlert('Se produjo un error al recuperar una factura');
}
}
return $respuesta;
}
function pausar_factura($factura_impresion_id){
$respuesta = new xajaxResponse();
$gestor_facturacion = Gestor_Facturacion::getInstancia();
/* @var $gestor_facturacion Gestor_Facturacion */
if($gestor_facturacion->pausar_factura($factura_impresion_id)){
$respuesta->addScriptCall('actualizar_facturas');
}
else{
$respuesta->addAlert('No se puede pausar la factura');
$respuesta->addScriptCall('actualizar_facturas');
}
return $respuesta;
}
function eliminar_factura($factura_impresion_id){
$respuesta = new xajaxResponse();
$gestor_facturacion = Gestor_Facturacion::getInstancia();
/* @var $gestor_facturacion Gestor_Facturacion */
if($gestor_facturacion->eliminar_factura_impresion($factura_impresion_id)){
$respuesta->addScriptCall('actualizar_facturas');
}
else{
$respuesta->addAlert('No se puede eliminar la factura');
$respuesta->addScriptCall('actualizar_facturas');
}
return $respuesta;
}
function reanudar_factura($factura_impresion_id){
$respuesta = new xajaxResponse();
$gestor_facturacion = Gestor_Facturacion::getInstancia();
/* @var $gestor_facturacion Gestor_Facturacion */
if($gestor_facturacion->reanudar_factura($factura_impresion_id)){
$respuesta->addScriptCall('actualizar_facturas');
}
else{
$respuesta->addAlert('No se puede reanudar la factura');
$respuesta->addScriptCall('actualizar_facturas');
}
return $respuesta;
}
$xajax = new xajax();
//$xajax->debugOn();
$xajax->registerFunction('eliminar_facturas');
$xajax->registerFunction('agregar_facturas');
$xajax->registerFunction('pausar_factura');
$xajax->registerFunction('eliminar_factura');
$xajax->registerFunction('reanudar_factura');
$xajax->processRequests();
$width['acciones'] = '15%';
$width['razon_social'] = '40%';
$width['fecha'] = '15%';
$width['hora'] = '15%';
$width['total'] = '15%';
$width['descripcion'] = '55%';
$width['cantidad'] = '15%';
$width['precio_unitario'] = '15%';
$width['subtotal'] = '15%';
?>
<html>
<head>
<meta http-equiv="Content-Language" content="en" />
<meta name="GENERATOR" content="Zend Studio" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Panel de facturas</title>
<link href="inc/estilos.css" rel="stylesheet" type="text/css" />
<link href="inc/estilo_autocomplete.css" rel="stylesheet" type="text/css" />
<?php $xajax->printJavascript("inc/xajax"); ?>
<script type="text/javascript" src="inc/scriptaculous/prototype.js"></script>
<script type="text/javascript" src="inc/scriptaculous/scriptaculous.js"></script>
<script language="JavaScript" type="text/javascript">
window.onload=inicializar;
var arrFacturasPausadasIds;
var arrFacturasEnCursoIds;
var Factura = Class.create();
Factura.prototype={
initialize: function(arrFactura){
this.factura_impresion_id = arrFactura.id_factura_impresion;
this.factura_id = arrFactura.id_factura;
this.pausada = arrFactura.pausada;
this.fecha = arrFactura.fecha;
this.hora = arrFactura.hora;
this.descuento = arrFactura.monto;
this.razon_social = arrFactura.nombre;
this.detalles = new Array();
this.total = arrFactura.total;
for (var i = 0 ; i < arrFactura.detalles.length ; i++){
this.detalles.push(arrFactura.detalles[i]);
}
},
pausar: function(){
xajax_pausar_factura(this.factura_impresion_id);
},
reanudar: function(){
xajax_reanudar_factura(this.factura_impresion_id);
},
eliminar: function(){
if(confirm("¿Esta seguro que desea eliminar la factura?\n(Esta acción es irreversible)")){
xajax_eliminar_factura(this.factura_impresion_id);
}
},
expandir: function(boton,objFactura){
boton.onclick = function(){objFactura.contraer(boton,objFactura)};
Effect.SlideDown('divDetalles_' + this.factura_impresion_id,{afterFinish:function(){
boton.src = 'images/fold.gif';
}});
},
contraer: function(boton,objFactura){
boton.onclick = function(){objFactura.expandir(boton,objFactura)};
Effect.SlideUp('divDetalles_' + this.factura_impresion_id,{afterFinish:function(){
boton.src = 'images/unfold.gif';
}});
}
}
function reset(){
var i;
arrFacturasPausadasIds = new Array();
arrFacturasEnCursoIds = new Array();
for(i = 0 ; i < $('divFacturasEnCurso').childNodes.length ; i++){
if($('divFacturasEnCurso').childNodes[i].tagName== "DIV"){
$('divFacturasEnCurso').childNodes[i].parentNode.removeChild($('divFacturasEnCurso').childNodes[i]);
i--;
}
}
for(i = 0 ; i < $('divFacturasPausadas').childNodes.length ; i++){
if($('divFacturasPausadas').childNodes[i].tagName== "DIV"){
$('divFacturasPausadas').childNodes[i].parentNode.removeChild($('divFacturasPausadas').childNodes[i]);
i--;
}
}
obtener_facturas();
}
function inicializar(){
arrFacturasPausadasIds = new Array();
arrFacturasEnCursoIds = new Array();
obtener_facturas();
new PeriodicalExecuter(function(){ actualizar_facturas();},10);
}
function agregar_factura(arrFactura){
var objFactura = new Factura(arrFactura);
var div = "";
var id = arrFactura.id_factura_impresion;
var boton;
if($('divFactura_' + id)){
return false;
}
div += '<div id="divFactura_' + id + '" style="display:none" width="100%">';
div += '<table width="100%" class="texto_comun">';
div += '<tr>';
div += '<td width="<?=$width['acciones']?>" id="tdBotonera_' + id + '"></td>';
div += '<td width="<?=$width['razon_social']?>"><img src="images/unfold.gif" class="boton" id="btnPlus_' + id + '"> ' + objFactura.razon_social + '</td>';
div += '<td width="<?=$width['fecha']?>">' + objFactura.fecha + '</td>';
div += '<td width="<?=$width['hora']?>">' + objFactura.hora + '</td>';
div += '<td width="<?=$width['total']?>">$ ' + objFactura.total + '</td>';
div += '</tr>';
if (objFactura.detalles.length > 0){
div += '<tr><td></td><td colspan="4">';
div += '<div id="divDetalles_' + id + '" style="display:none;border:solid;border-width:thin" width="100%"><table width="100%" class="texto_comun">';
div += '<tr>';
div += '<td width="<?=$width['descripcion']?>"><b>Descripción</b></td>';
div += '<td width="<?=$width['cantidad']?>"><b>Cantidad</b></td>';
div += '<td width="<?=$width['precio_unitario']?>"><b>Precio unitario</b></td>';
div += '<td width="<?=$width['subtotal']?>"><b>Total</b></td>';
div += '</tr>';
for(var i = 0; i < objFactura.detalles.length; i++){
div += '<tr>';
div += '<td>' + objFactura.detalles[i].descripcion + '</td>';
div += '<td>' + objFactura.detalles[i].cantidad + '</td>';
div += '<td>$ ' + objFactura.detalles[i].precio_unitario + '</td>';
div += '<td>$ ' + objFactura.detalles[i].total + '</td>';
div += '</tr>';
}
if(!(objFactura.descuento == '0,00')){
div += '<tr>';
div += '<td>Descuento</td>';
div += '<td> </td>';
div += '<td> </td>';
div += '<td>$ ' + objFactura.descuento + '</td>';
div += '</tr>';
}
div += '</table></div></td></tr>';
}
div += '</table>';
div += '</div>';
if (objFactura.pausada == 1){
arrFacturasPausadasIds.push(id);
new Insertion.Bottom('divFacturasPausadas',div);
boton = Builder.node('img', {id: 'btnDelete_' + id, src: 'images/trash.png', className: 'boton', width: '30', height: '30'});
boton.onclick = function(){objFactura.eliminar()};
$('tdBotonera_' + id).appendChild(boton);
boton = Builder.node('img', {id: 'btnPlay_' + id, src: 'images/play.png', className: 'boton', width: '30', height: '30'});
boton.onclick = function(){objFactura.reanudar()};
$('tdBotonera_' + id).appendChild(boton);
boton = $('btnPlus_' + id);
boton.onclick = function(){objFactura.expandir(boton,objFactura)};
$('divFactura_' + id).className = 'factura_pausada';
}
else{
arrFacturasEnCursoIds.push(id);
new Insertion.Bottom('divFacturasEnCurso',div);
boton = Builder.node('img', {id: 'btnDelete_' + id, src: 'images/trash.png', className: 'boton', width: '30', height: '30'});
boton.onclick = function(){objFactura.eliminar()};
$('tdBotonera_' + id).appendChild(boton);
boton = Builder.node('img', {id: 'btnPause_' + id, src: 'images/pause.png', className: 'boton', width: '30', height: '30'});
boton.onclick = function(){objFactura.pausar()};
$('tdBotonera_' + id).appendChild(boton);
boton = $('btnPlus_' + id);
boton.onclick = function(){objFactura.expandir(boton,objFactura)};
$('divFactura_' + id).className = 'factura_en_curso';
}
Effect.SlideDown('divFactura_' + id);
}
function eliminar_facturas_pausadas(arrFacturasEliminarIds){
for(var i = 0; i < arrFacturasEliminarIds.length; i++){
$('divFactura_' + arrFacturasEliminarIds[i]).parentNode.removeChild($('divFactura_' + arrFacturasEliminarIds[i]));
arrFacturasPausadasIds.splice(arrFacturasPausadasIds.indexOf(arrFacturasEliminarIds[i]),1);
}
}
function eliminar_facturas_en_curso(arrFacturasEliminarIds){
for(var i = 0; i < arrFacturasEliminarIds.length; i++){
$('divFactura_' + arrFacturasEliminarIds[i]).parentNode.removeChild($('divFactura_' + arrFacturasEliminarIds[i]));
arrFacturasEnCursoIds.splice(arrFacturasEnCursoIds.indexOf(arrFacturasEliminarIds[i]),1);
}
}
function obtener_facturas(){
xajax_agregar_facturas(arrFacturasPausadasIds,arrFacturasEnCursoIds);
}
function actualizar_facturas(){
xajax_eliminar_facturas(arrFacturasPausadasIds,arrFacturasEnCursoIds);
}
</script>
</head>
<body>
<table width="80%">
<tr bgcolor="#FFCC00" class="titulo_medio">
<td>Facturas en curso</td>
</tr>
<tr>
<td><div id="divFacturasEnCurso">
<table width="100%" class="titulochico" cellspacing="0"><tr bgcolor="#EEEEEE">
<td width="<?=$width['acciones']?>">Acciones</td>
<td width="<?=$width['razon_social']?>">Razón Social</td>
<td width="<?=$width['fecha']?>">Fecha</td>
<td width="<?=$width['hora']?>">Hora</td>
<td width="<?=$width['total']?>">Total</td>
</tr></table>
</div></td>
</tr>
</table>
<br>
<table width="80%">
<tr bgcolor="#FFCC00" class="titulo_medio">
<td>Facturas pausadas</td>
</tr>
<tr>
<td><div id="divFacturasPausadas">
<table width="100%" class="titulochico" cellspacing="0"><tr bgcolor="#EEEEEE">
<td width="<?=$width['acciones']?>">Acciones</td>
<td width="<?=$width['razon_social']?>">Razón Social</td>
<td width="<?=$width['fecha']?>">Fecha</td>
<td width="<?=$width['hora']?>">Hora</td>
<td width="<?=$width['total']?>">Total</td>
</tr></table>
</div></td>
</tr>
</table>
<br>
<div align="center" style="width:80%"><input type="button" value="Recargar" onclick="reset()" class="texto_comun"><div></div>
</body>
</html>