Example #1
0
 protected function traceEntity(Doc $cloneDoc, Doc $doc)
 {
     $curUser = $this->getSecurityTokenStorage()->getToken()->getUser();
     $trace = new Trace();
     $trace->setActionId($doc->getId());
     $trace->setActionType(Trace::AT_UPDATE);
     $trace->setUserId($curUser->getId());
     $trace->setCompanyId($doc->getCompany()->getId());
     $trace->setUserFullname($curUser->getFullName());
     if (!$this->hasRole('ROLE_SUPERADMIN')) {
         if (!$this->hasRole('ROLE_ADMIN')) {
             $trace->setUserType(Trace::UT_CLIENT);
         } else {
             $trace->setUserType(Trace::UT_ADMIN);
         }
     } else {
         $trace->setUserType(Trace::UT_SUPERADMIN);
     }
     $tableBegin = ': <br><table class="table table-bordered table-condensed table-hover table-striped">';
     $tableBegin .= '<thead><tr><th class="text-left">' . $this->translate('Entity.field') . '</th>';
     $tableBegin .= '<th class="text-left">' . $this->translate('Entity.oldVal') . '</th>';
     $tableBegin .= '<th class="text-left">' . $this->translate('Entity.newVal') . '</th></tr></thead><tbody>';
     $tableEnd = '</tbody></table>';
     $trace->setActionEntity(Trace::AE_DOC);
     $trace->setActionId2($doc->getCompany()->getId());
     $trace->setActionEntity2(Trace::AE_COMPANY);
     $msg = '';
     if ($cloneDoc->getFileName() != $doc->getFileName()) {
         $msg .= '<tr><td>' . $this->translate('Doc.fileName.label') . '</td><td>';
         if ($cloneDoc->getFileName() == null) {
             $msg .= '<span class="label label-warning">' . $this->translate('_NA') . '</span>';
         } else {
             $msg .= $cloneDoc->getFileName();
         }
         $msg .= '</td><td>';
         if ($doc->getFileName() == null) {
             $msg .= '<span class="label label-warning">' . $this->translate('_NA') . '</span>';
         } else {
             $msg .= $doc->getFileName();
         }
         $msg .= '</td></tr>';
     }
     if ($cloneDoc->getSize() != $doc->getSize()) {
         $msg .= '<tr><td>' . $this->translate('Doc.size.label') . '</td><td>';
         if ($cloneDoc->getSize() == null) {
             $msg .= '<span class="label label-warning">' . $this->translate('_NA') . '</span>';
         } else {
             $msg .= $cloneDoc->getSize();
         }
         $msg .= '</td><td>';
         if ($doc->getSize() == null) {
             $msg .= '<span class="label label-warning">' . $this->translate('_NA') . '</span>';
         } else {
             $msg .= $doc->getSize();
         }
         $msg .= '</td></tr>';
     }
     if ($cloneDoc->getMimeType() != $doc->getMimeType()) {
         $msg .= '<tr><td>' . $this->translate('Doc.mimeType.label') . '</td><td>';
         if ($cloneDoc->getMimeType() == null) {
             $msg .= '<span class="label label-warning">' . $this->translate('_NA') . '</span>';
         } else {
             $msg .= $cloneDoc->getMimeType();
         }
         $msg .= '</td><td>';
         if ($doc->getMimeType() == null) {
             $msg .= '<span class="label label-warning">' . $this->translate('_NA') . '</span>';
         } else {
             $msg .= $doc->getMimeType();
         }
         $msg .= '</td></tr>';
     }
     if ($cloneDoc->getMd5() != $doc->getMd5()) {
         $msg .= '<tr><td>' . $this->translate('Doc.md5.label') . '</td><td>';
         if ($cloneDoc->getMd5() == null) {
             $msg .= '<span class="label label-warning">' . $this->translate('_NA') . '</span>';
         } else {
             $msg .= $cloneDoc->getMd5();
         }
         $msg .= '</td><td>';
         if ($doc->getMd5() == null) {
             $msg .= '<span class="label label-warning">' . $this->translate('_NA') . '</span>';
         } else {
             $msg .= $doc->getMd5();
         }
         $msg .= '</td></tr>';
     }
     if ($cloneDoc->getOriginalName() != $doc->getOriginalName()) {
         $msg .= '<tr><td>' . $this->translate('Doc.originalName.label') . '</td><td>';
         if ($cloneDoc->getOriginalName() == null) {
             $msg .= '<span class="label label-warning">' . $this->translate('_NA') . '</span>';
         } else {
             $msg .= $cloneDoc->getOriginalName();
         }
         $msg .= '</td><td>';
         if ($doc->getOriginalName() == null) {
             $msg .= '<span class="label label-warning">' . $this->translate('_NA') . '</span>';
         } else {
             $msg .= $doc->getOriginalName();
         }
         $msg .= '</td></tr>';
     }
     if ($cloneDoc->getDescription() != $doc->getDescription()) {
         $msg .= '<tr><td>' . $this->translate('Doc.description.label') . '</td><td>';
         if ($cloneDoc->getDescription() == null) {
             $msg .= '<span class="label label-warning">' . $this->translate('_NA') . '</span>';
         } else {
             $msg .= $cloneDoc->getDescription();
         }
         $msg .= '</td><td>';
         if ($doc->getDescription() == null) {
             $msg .= '<span class="label label-warning">' . $this->translate('_NA') . '</span>';
         } else {
             $msg .= $doc->getDescription();
         }
         $msg .= '</td></tr>';
     }
     if ($msg != '') {
         $msg = $tableBegin . $msg . $tableEnd;
         $trace->setMsg($this->translate('Doc.traceEdit', array('%doc%' => $doc->getOriginalName(), '%company%' => $doc->getCompany()->getCorporateName())) . $msg);
         $trace->setDtCrea(new \DateTime('now'));
         $em = $this->getEntityManager();
         $em->persist($trace);
         $em->flush();
     }
 }