/**
  * Get param datos adicionales
  * @param \Zend\ServiceManager\ServiceLocatorInterface $serviceLocator
  * @param \Tesoreria\Models\MaestroBase $maestroTerminal
  * @param \Tesoreria\Models\ERequestHeader|\Siris\Models\ERequestHeader $requestHeader
  * @return \Tesoreria\Models\ParamDatosAdicionales
  */
 public static function getNroTrxTerminal($serviceLocator, $maestroTerminal = null, $requestHeader)
 {
     self::init($serviceLocator);
     if (is_null($maestroTerminal)) {
         $maestroTerminal = self::$maestroBaseDao->getOneObject(array('codigo_alternativo' => $requestHeader->serieEquipo));
     }
     $usoDAMaestro = self::$usoDAMaestroDao->getOneObject(array('uso_dam_conf_da' => Constants::CONF_DA_NRO_TRX_TERMINAL, 'ma_ba_maestro' => $maestroTerminal->getId()));
     $trxEquipo = $usoDAMaestro->getValor();
     if ($usoDAMaestro->getValor() == Constants::CONF_DA_LONG_NRO_TRX_TERMINAL) {
         $trxEquipo = 1;
     } else {
         $trxEquipo = $trxEquipo + 1;
     }
     return $trxEquipo;
 }
Esempio n. 2
0
 /**
  * Crear Registracion
  * @param \Zend\ServiceManager\ServiceLocatorInterface $serviceLocator
  * @param int $idTipoRegistracion
  * @param \Tesoreria\Models\ERequest $request
  * @param int $trxEquipo
  * @return \Tesoreria\Models\Registracion
  * @throws Exception
  */
 public static function crearRegistracion($serviceLocator, $idTipoRegistracion, $request, $trxEquipo = null)
 {
     self::init($serviceLocator);
     $tipoRegistracion = self::$parametroSistemaDao->getById($idTipoRegistracion);
     $maestroTerminal = self::$maestroBaseDao->getOneObject(array('codigo_alternativo' => $request->header->serieEquipo));
     $sucursal = $maestroTerminal->getPadre($serviceLocator);
     $registracion = new Registracion();
     $registracion->setTipoRegistracion($tipoRegistracion);
     $registracion->setEntidad($maestroTerminal);
     $registracion->setSucursal($sucursal);
     $registracion->setUsuario($request->header->usuario);
     $registracion->setUsuarioAutorizador($request->header->usuarioAutorizador);
     $registracion->setFechaRegistracion(date('Y-m-d H:i:s'));
     $registracion->setFechaSistema(date('Y-m-d H:i:s'));
     $registracion->setMonto($request->monto_registracion);
     $registracion->setNroTrxTerminal($trxEquipo);
     $objRegistracion = self::$registracionDao->save($registracion);
     if (!$objRegistracion) {
         throw new Exception("Error: no se pudo guardar el objeto registracion");
     }
     return $objRegistracion;
 }
Esempio n. 3
0
 /**
  * Anular transaccion
  * @param \Zend\ServiceManager\ServiceLocatorInterface $serviceLocator
  * @param \Siris\Models\ERequest $request
  * @param \Siris\Models\ERequestHeader $requestHeader
  * @return \Siris\Models\EResponse
  */
 public static function voidTransaction($serviceLocator, $request, $requestHeader)
 {
     self::init($serviceLocator);
     $response = new EResponse();
     $maestroTerminal = self::$maestroBaseDao->getOneObject(array('codigo_alternativo' => $requestHeader->serieEquipo));
     $condicion = 'owner = ' . $maestroTerminal->getId();
     $resultSetItemPesos = ExpStoresProcedures::findItems($serviceLocator, Constants::MA_BA_PESOS, $condicion);
     $montoTransaccion = (double) $request->valor;
     $efectivoTerminal = (double) $resultSetItemPesos[0]->it_cantidad;
     if ($montoTransaccion > $efectivoTerminal) {
         $error = new Error();
         $error->mensaje = "El monto de la transaccion que desea anular supera el efectivo disponible en caja.";
         $response->error = $error;
         return $response;
     }
     $newRequest = ExpWebService::makeRequestVoidTransaccion($request, $requestHeader, Constants::CO_VOID_TRANSACTION);
     $result = WSDL::callMethod($newRequest);
     $response = ExpWebService::makeGeneralResponse($serviceLocator, $result, $requestHeader);
     return $response;
 }
Esempio n. 4
0
 /**
  * Guarda la recaudacion en el modulo de tesoreria
  * @param \Zend\ServiceManager\ServiceLocatorInterface $serviceLocator
  * @param \Siris\Models\ERequestHeader $requestHeader
  * @param string $total
  * @param string $tipoMovimiento
  * @return void
  */
 private static function guardarRegistracionTesoreria($serviceLocator, $requestHeader, $total, $tipoMovimiento)
 {
     $header = new \Tesoreria\Models\ERequestHeader();
     $header->serieEquipo = $requestHeader->serieEquipo;
     $header->usuario = $requestHeader->usuario;
     $header->usuarioAutorizador = $requestHeader->usuarioAutorizador;
     $requestRegistracion = new \Tesoreria\Models\ERequest();
     $requestRegistracion->header = $header;
     $requestRegistracion->monto_registracion = $total;
     $maestroTerminal = self::$maestroBaseDao->getOneObject(array('codigo_alternativo' => $requestHeader->serieEquipo));
     $trxEquipo = ExpUsoDatosAdicionales::getNroTrxTerminal($serviceLocator, $maestroTerminal);
     $objRegistracion = ExpRegistracion::crearRegistracion($serviceLocator, Constants::PA_SIS_RECAUDACION, $requestRegistracion, $trxEquipo);
     # Configuracion de recaudaciones varias
     $valores = new \stdClass();
     $idConf = Constants::CONF_DA_RECAUDACIONES_VARIAS_OWNER;
     $valores->{$idConf} = $maestroTerminal->getId();
     $paramDARecaudacionesVarias = ExpConfiguracion::getParamDatosAdicionales($serviceLocator, Constants::MA_BA_RECAUDACIONES_VARIAS, $valores, $tipoMovimiento);
     $paramDARecaudacionesVarias->setValor($total);
     # Configuracion de pesos
     $valores = new \stdClass();
     $idConf = Constants::CONF_DA_PESOS_OWNER;
     $valores->{$idConf} = $maestroTerminal->getId();
     $paramDAPesos = ExpConfiguracion::getParamDatosAdicionales($serviceLocator, Constants::MA_BA_PESOS, $valores, $tipoMovimiento);
     $paramDAPesos->setValor($total);
     $requestDetalle = new \Tesoreria\Models\ERequest();
     $requestDetalle->param_da = array($paramDARecaudacionesVarias, $paramDAPesos);
     $estadoDetalle = ExpRegistracion::crearDetalle($serviceLocator, $objRegistracion, $requestDetalle);
     # 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 = $requestHeader;
     $requestTesoreria->param_da = array($paramDATerminal);
     ExpTerminal::actualizarConfMaestro($serviceLocator, $requestTesoreria);
 }
Esempio n. 5
0
 /**
  * registro Cierre Caja
  * @param \Zend\ServiceManager\ServiceLocatorInterface $serviceLocator
  * @param \Tesoreria\Models\ERequest $request
  * @param boolean $forzado
  * @return \Tesoreria\Models\EResponse
  */
 public static function registroCierreCaja($serviceLocator, $request, $forzado = false)
 {
     $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 Cierre Caja", $params, "", $request->header->usuario);
         # 1. Realizo el cierre en SIRIS
         $newRequest = new ERequestHeader();
         $newRequest->secuencia = Constants::SEQ_0;
         $newRequest->serieEquipo = $request->header->serieEquipo;
         $newRequest->trxEquipo = "1";
         //$request->header->trxEquipo;
         $newRequest->usuario = $request->header->usuario;
         $newRequest->password = $request->header->password;
         $responseCierre = \Siris\Experts\ExpTerminal::closeTerminal($serviceLocator, $newRequest);
         # 2. Realizo la registracion en tesoreria si es que no hay errores
         if ($responseCierre->error == null) {
             $codOperacion = Constants::PA_SIS_CIERRE_CAJA;
             $estado = Constants::MA_BA_ESTADO_CERRADA;
             if ($forzado) {
                 $codOperacion = Constants::PA_SIS_FORZAR_CIERRE_CAJA;
                 $estado = Constants::MA_BA_ESTADO_CERRADA_FORZADA;
             }
             $maestroTerminal = self::$maestroBaseDao->getOneObject(array('codigo_alternativo' => $request->header->serieEquipo));
             $trxEquipo = ExpUsoDatosAdicionales::getNroTrxTerminal($serviceLocator, $maestroTerminal);
             $objRegistracion = ExpRegistracion::crearRegistracion($serviceLocator, $codOperacion, $request, $trxEquipo);
             $result = ExpRegistracion::crearDetalle($serviceLocator, $objRegistracion, $request);
             # 1. Debo cambiar el estado de la terminal según el tipo de cierre que se esta haciendo
             # 1.1 Al $request que llega le agreo la información necesaria para poder grabar los cambios.
             # Configuracion de la terminal
             $valores = new \stdClass();
             $idConfTrx = Constants::CONF_DA_NRO_TRX_TERMINAL;
             $valores->{$idConfTrx} = $trxEquipo;
             $idConfEstado = Constants::CONF_DA_ESTADO_TERMINAL;
             $valores->{$idConfEstado} = $estado;
             $paramDATerminal = ExpConfiguracion::getParamDatosAdicionalesMaestro($serviceLocator, Constants::MA_BA_AGENCIAS_PROPIAS, $valores, $maestroTerminal);
             $request->param_da = array($paramDATerminal);
             $responseActualizarMaestro = self::actualizarConfMaestro($serviceLocator, $request, true);
             if (!is_null($responseActualizarMaestro->error)) {
                 throw new Exception("No se pudo actualizar la configuracion del maestro terminal");
             }
             $conexion->commit();
             $ticketCierreSiris = $responseCierre->tickets;
             $ticketFinal = ExpTicket::getTicketCajaNoCuadrada($serviceLocator, "CIERRE", $objRegistracion, $ticketCierreSiris);
             $response->param_tickets = $ticketFinal;
         } else {
             $response->result = json_encode($responseCierre);
             $response->error = $responseCierre->error;
         }
         return $response;
     } catch (Exception $e) {
         $conexion->rollback();
         ExpLog::save($serviceLocator, $request->header->serieEquipo, Constants::LOG_ERROR, "", "registro Cierre Caja", $params, $e->getMessage(), $request->header->usuario);
         $conexion->commit();
         $error = new Error();
         $error->setMensaje("Error: no se pudo realizar el Cierre de Caja.");
         $response->error = $error;
         return $response;
     }
 }