/** * Devuelve el id del arqueo en donde está anotado * el cobro del recibo en curso * * @return integer El id del arqueo */ public function getIDArqueo() { $arqueo = new CajaLineas(); $rows = $arqueo->cargaCondicion("IDArqueo", "Entidad='RecibosClientes' AND IDEntidad='{$this->IDRecibo}'"); unset($arqueo); return $rows[0]['IDArqueo']; }
/** * Genera un array con la informacion necesaria para imprimir el documento * Recibe un array con los ids de arqueos de caja * * @param array $idsDocumento Array con los ids de arqueos * @return array Array con dos elementos: master es un objeto CajaArqueos y detail es un array de objetos lineas de arqueos */ protected function getDatosDocumento(array $idsDocumento) { $master = array(); $detail = array(); // Recorro el array de los albaranes a imprimir foreach ($idsDocumento as $key => $idDocumento) { // Instancio la cabecera del albaran $master[$key] = new CajaArqueos($idDocumento); // LLeno el array con objetos de lineas de arqueo $lineas = array(); $cajaLineas = new CajaLineas(); $rows = $cajaLineas->cargaCondicion('IDApunte', "IDArqueo='{$idDocumento}'", "IDAgente,IDApunte ASC"); foreach ($rows as $row) { $lineas[] = new CajaLineas($row['IDApunte']); } $detail[$key] = $lineas; } return array('master' => $master, 'detail' => $detail); }
/** * 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; }