public function generateInvoiceNo($opencart = false) { $rsm = new ResultSetMapping(); $rsm->addScalarResult('nr', 'nr'); if ($opencart) { $sql = "SELECT COALESCE(MAX(doc_nr),0) + 1 as nr FROM document WHERE disc = '" . Document::TYPE_INVOICE . "' OR disc = '" . Document::TYPE_CREDIT_INVOICE . "' AND opencart = 1"; } else { $sql = "SELECT COALESCE(MAX(doc_nr),0) + 1 as nr FROM document WHERE disc = '" . Document::TYPE_INVOICE . "' OR disc = '" . Document::TYPE_CREDIT_INVOICE . "'"; } $query = $this->entityManager->createNativeQuery($sql, $rsm); $result = $query->getScalarResult(); $sysNr = $result[0]['nr']; $type = $opencart ? Document\Number::TYPE_OPENCART_INVOICE : Document\Number::TYPE_INVOICE; $number = $this->getOneObjectByField(Document\Number::getClass(), 'type', $type); $defaultStartNumber = $number->getStartNumber(); return $defaultStartNumber > $sysNr ? $defaultStartNumber : $sysNr; }
/** * @param User $user * @return \Application\Entity\Document\Number */ public function getNumberByUser(User $user) { return $this->entityManager->getRepository(Number::getClass())->findOneBy(array('user' => $user)); }