Ejemplo n.º 1
0
 /**
  * Registro Corte Caja
  * @param \Zend\ServiceManager\ServiceLocatorInterface $serviceLocator
  * @param \Tesoreria\Models\ERequest $request
  * @return \Tesoreria\Models\EResponse
  */
 public static function registroCorteCaja($serviceLocator, $request)
 {
     $response = new EResponse();
     $params = array();
     $params["request"] = $request;
     $params = json_encode($params);
     $conexion = $serviceLocator->get(Constants::SCHEMA_1)->getDriver()->getConnection();
     $conexion->beginTransaction();
     try {
         self::init($serviceLocator);
         ExpLog::save($serviceLocator, $request->header->serieEquipo, Constants::LOG_ACTIVIDAD, "", "Registro Corte de Caja", $params, "", $request->header->usuario);
         $maestroTerminal = self::$maestroBaseDao->getOneObject(array('codigo_alternativo' => $request->header->serieEquipo));
         $trxEquipo = ExpUsoDatosAdicionales::getNroTrxTerminal($serviceLocator, $maestroTerminal);
         $objRegistracion = ExpRegistracion::crearRegistracion($serviceLocator, Constants::PA_SIS_CORTE_CAJA, $request, $trxEquipo);
         $result = ExpRegistracion::crearDetalle($serviceLocator, $objRegistracion, $request);
         # Configuracion de la terminal
         $valores = new \stdClass();
         $idConf = Constants::CONF_DA_NRO_TRX_TERMINAL;
         $valores->{$idConf} = $trxEquipo;
         $paramDATerminal = ExpConfiguracion::getParamDatosAdicionalesMaestro($serviceLocator, Constants::MA_BA_AGENCIAS_PROPIAS, $valores, $maestroTerminal);
         $requestTesoreria = new \Tesoreria\Models\ERequest();
         $requestTesoreria->header = $request->header;
         $requestTesoreria->param_da = array($paramDATerminal);
         self::actualizarConfMaestro($serviceLocator, $requestTesoreria, true);
         $conexion->commit();
         $ticketFinal = ExpTicket::getTicketCorteCaja($serviceLocator, $objRegistracion);
         $response->param_tickets = $ticketFinal;
         return $response;
     } catch (Exception $e) {
         $conexion->rollback();
         ExpLog::save($serviceLocator, $request->header->serieEquipo, Constants::LOG_ERROR, "", "Registro Corte de Caja", $params, $e->getMessage(), $request->header->usuario);
         $error = new Error();
         $error->setMensaje("Error: no se pudo realizar el corte de caja.");
         $response->error = $error;
         return $response;
     }
 }