示例#1
0
 /**
  * Al finalizar un trámite, ver si es necesario emitir un comprobante.
  * 
  * @param Tramite $tramite
  */
 public function EmitirComprobante($tramite)
 {
     $Comprob = null;
     $ComprobanteTipo = $tramite->getTramiteTipo()->getComprobanteTipo();
     if ($ComprobanteTipo) {
         // Tiene un tipo de comprobante asociado
         $Clase = $ComprobanteTipo->getClase();
         if ($Clase) {
             // Instancio un comprobante del tipo asociado
             $Comprob = new $Clase();
             $Comprob->setComprobanteTipo($ComprobanteTipo);
             $Comprob->setTramiteOrigen($tramite);
             $Comprob->setTitular($tramite->getTitular());
             if ($ComprobanteTipo->getPeriodoValidez()) {
                 // Este tipo de comprobante tiene un período de validez predeterminado
                 // Fecha de vencimiento: validez indicada por el comprobante, menos 1 día
                 $Venc = new \DateTime();
                 $Comprob->setFechaValidezHasta($Venc->add(new \DateInterval('P' . $ComprobanteTipo->getPeriodoValidez())));
             }
         }
     }
     return $Comprob;
 }