/** * Recibe un objeto y realiza un apunte en caja con los * valores del mismo. Si la caja no estuviera abierta, la abre. * * El apunte de caja se realiza en la sucursal y tpv en curso * * Los objetos posibles son: * * Contratos * FemitidasCab * FrecibidasCab * RecibosClientes * RecibosProveedores * * La forma de pago que se pondrá en el apunte de caja es la indicada en el * parámetro $idFormaPago, y si no se indica, será la que tenga asociada * el objeto. * * @param object $objeto Contratos, FemitidasCab, FrecibidasCab, RecibosClientes, RecibosProveedores * @param integer $idFormaPago El id de la forma de pago (opcional) * @return boolean TRUE si se pudo crear, FALSE si no. */ public function anotaEnCaja($objeto, $idFormaPago = '') { $ok = false; if ($_SESSION['tpv'] == '') { $this->_errores[] = "No se ha establecido el TPV"; return $ok; } $entidad = get_class($objeto); //$idSucursal = $objeto->getIDSucursal()->getIDSucursal(); if ($idFormaPago == '') { $idFormaPago = $objeto->getIDFP()->getIDFP(); } switch ($entidad) { case 'Contratos': $concepto = "Pago Contrato " . $objeto->getIDArticulo()->getIDVenta() . " " . $objeto->getNumeroDocumento(); $origen = 7; $importe = -1 * $objeto->getImportePago(); $idEntidad = $objeto->getPrimaryKeyValue(); break; case 'FemitidasCab': $concepto = "Cobro N/Fra. {$objeto->getNumeroFactura()} de {$objeto->getIDCLiente()}"; $origen = 2; $importe = $objeto->getTotal(); $idEntidad = $objeto->getPrimaryKeyValue(); break; case 'RecibosClientes': $concepto = "Cobro N/Fra. {$objeto->getIDFactura()->getNumeroFactura()} de {$objeto->getIDCliente()}"; $origen = 3; $importe = $objeto->getImporte(); $idEntidad = $objeto->getPrimaryKeyValue(); break; case 'FrecibidasCab': $concepto = "Pago S/Fra. {$objeto->getNumeroFactura()} de {$objeto->getIDProveedor()}"; $origen = 4; $importe = -1 * $objeto->getTotal(); $idEntidad = $objeto->getPrimaryKeyValue(); break; case 'RecibosProveedores': $concepto = "Pago S/Fra. {$objeto->getIDFactura()->getNumeroFactura()} de {$objeto->getIDProveedor()}"; $origen = 5; $importe = -1 * $objeto->getImporte(); $idEntidad = $objeto->getPrimaryKeyValue(); break; } // Comprobar que la caja esté abierta, si no, abrirla $this->setIDSucursal($_SESSION['suc']); $this->setIDTpv($_SESSION['tpv']); $this->setDia(date('Y-m-d')); $idArqueo = $this->estaAbierta(); if (!$idArqueo) { $idArqueo = $this->apertura(); } if ($idArqueo) { $apunte = new CajaLineas(); $apunte->setIDArqueo($idArqueo); $apunte->setFecha(date('Y-m-d H:i:s')); $apunte->setConcepto($concepto); $apunte->setIDFP($idFormaPago); $apunte->setOrigen($origen); $apunte->setEntidad($entidad); $apunte->setIDEntidad($idEntidad); $apunte->setImporte($importe); $apunte->setIDAgente($_SESSION['usuarioPortal']['Id']); $ok = $apunte->create(); $this->_errores = $apunte->getErrores(); } else { $this->_errores[] = "No se ha realizado el apunte de caja."; } return $ok; }