/** * 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; }
public static function init($row, $id = null) { $objMaestroBase = new MaestroBase(); try { if (is_null($id)) { $objMaestroBase->setId($row->ma_ba_id); } else { $objMaestroBase->setId($row->{$id}); throw new \Exception(); } $objMaestroBase->setNombre($row->ma_ba_nombre); $objMaestroBase->setActivo($row->ma_ba_activo); $objMaestroBase->setCodigo($row->ma_ba_codigo); $objMaestroBase->setCodigoAlternativo($row->ma_ba_codigo_alternativo); $objMaestroBase->setCodigoAlternativo1($row->ma_ba_codigo_alternativo1); $objMaestroBase->setCodigoArbol($row->ma_ba_codigo_arbol); $objMaestroBase->setLook($row->ma_ba_look); $objMaestroBase->setNumeroDocumento($row->ma_ba_numero_documento); $objMaestroBase->setUnidadMedida($row->ma_ba_unidad_medida); $objMaestroBase->isFromDb(true); } catch (\Exception $e) { return $objMaestroBase; } $maestroPadre = MaestroBaseDao::init($row, "ma_ba_padre"); $objMaestroBase->setPadre($maestroPadre); $maestroTipoDocumento = MaestroBaseDao::init($row, "ma_ba_tipo_documento"); $objMaestroBase->setTipoDocumento($maestroTipoDocumento); return $objMaestroBase; }
public static function init($row, $id = null) { $objConfDA = new ConfDatosAdicionales(); try { if (is_null($id)) { $objConfDA->setId($row->conf_da_id); } else { $objConfDA->setId($row->{$id}); throw new \Exception(); } $objConfDA->setNombre($row->conf_da_nombre); $objConfDA->setDecimales($row->conf_da_decimales); $objConfDA->setGrupo($row->conf_da_grupo); $objConfDA->setLongitud($row->conf_da_longitud); $objConfDA->setMascara($row->conf_da_mascara); $objConfDA->setObligatorio($row->conf_da_obligatorio); $objConfDA->setOrden($row->conf_da_orden); $objConfDA->setOrigenLista($row->conf_da_origen_lista); $objConfDA->setTextoAyuda($row->conf_da_texto_ayuda); $objConfDA->setTipo($row->conf_da_tipo); $objConfDA->setTipoDato($row->conf_da_tipo_dato); $objConfDA->setValorInicial($row->conf_da_valor_inicial); $objConfDA->isFromDb(true); } catch (\Exception $e) { return $objConfDA; } $maestro = MaestroBaseDao::init($row, "ma_ba_maestro"); $objConfDA->setMaestro($maestro); return $objConfDA; }
public static function init($row, $id = null) { $objRegistracion = new Registracion(); try { if (is_null($id)) { $objRegistracion->setId($row->reg_id); } else { $objRegistracion->setId($row->{$id}); throw new \Exception(); } $objRegistracion->setFechaAnulacion($row->reg_fecha_anulacion); $objRegistracion->setFechaRegistracion($row->reg_fecha_registracion); $objRegistracion->setFechaSistema($row->reg_fecha_sistema); $objRegistracion->setMonto($row->reg_monto); $objRegistracion->setUsuario($row->reg_usuario); $objRegistracion->setUsuarioAutorizador($row->reg_usuario_autorizador); $objRegistracion->setNroTrxTerminal($row->reg_nro_trx_terminal); $objRegistracion->setHashControl($row->reg_hash_control); $objRegistracion->isFromDb(true); } catch (\Exception $e) { return $objRegistracion; } $entidad = MaestroBaseDao::init($row, "ma_ba_entidad"); $objRegistracion->setEntidad($entidad); $sucursal = MaestroBaseDao::init($row, "ma_ba_sucursal"); $objRegistracion->setSucursal($sucursal); $tipoRegistracion = ParametroSistemaDao::init($row, "pa_sis_tipo_registracion"); $objRegistracion->setTipoRegistracion($tipoRegistracion); return $objRegistracion; }
/** * Get param datos adicionales * @param \Zend\ServiceManager\ServiceLocatorInterface $serviceLocator * @param int $maestroId * @param \stdClass $valores * @param string $tipo * @return \Tesoreria\Models\ParamDatosAdicionales */ public static function getParamDatosAdicionales($serviceLocator, $maestroId, $valores = null, $tipo) { self::init($serviceLocator); $confDA = self::$confDatosAdicionalesDao->getAllObjects(array('ma_ba_maestro' => $maestroId)); $objMaestro = self::$maestroBaseDao->getById($maestroId); $arrayListaConfiguraciones = array(); $paramDA = new ParamDatosAdicionales(); foreach ($confDA as $conf) { $listaConfiguracion = new ListaConfiguraciones(); $listaConfiguracion->setConfiguracion($conf); if (!is_null($valores) && property_exists($valores, $conf->getId())) { $id = $conf->getId(); $listaConfiguracion->setValor($valores->{$id}); } $arrayListaConfiguraciones[] = $listaConfiguracion; } $paramDA->setMaestroBase($objMaestro); $paramDA->setTipo($tipo); $paramDA->setListaConfiguraciones($arrayListaConfiguraciones); return $paramDA; }
/** * 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; }
public static function init($row, $id = null) { $objItem = new Item(); try { if (is_null($id)) { $objItem->setId($row->it_id); } else { $objItem->setId($row->{$id}); throw new \Exception(); } $objItem->setCantidad($row->it_cantidad); $objItem->isFromDb(true); } catch (\Exception $e) { return $objItem; } $maestro = MaestroBaseDao::init($row, "ma_ba_maestro"); $objItem->setMaestro($maestro); return $objItem; }
/** * 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; }
public static function init($row, $id = null) { $objRelacionMaestro = new RelacionMaestro(); try { if (is_null($id)) { $objRelacionMaestro->setId($row->re_id); } else { $objRelacionMaestro->setId($row->{$id}); throw new \Exception(); } $objRelacionMaestro->setNombre($row->re_nombre); $objRelacionMaestro->isFromDb(true); } catch (\Exception $e) { return $objRelacionMaestro; } $maestroPrincipal = MaestroBaseDao::init($row, "ma_ba_principal"); $objRelacionMaestro->setMaestroPrincipal($maestroPrincipal); $maestroPadre = MaestroBaseDao::init($row, "ma_ba_padre"); $objRelacionMaestro->setMaestroPadre($maestroPadre); return $objRelacionMaestro; }
public static function init($row, $id = null) { $objUsoDAMaestro = new UsoDAMaestro(); try { if (is_null($id)) { $objUsoDAMaestro->setId($row->uso_dam_id); } else { $objUsoDAMaestro->setId($row->{$id}); throw new \Exception(); } $objUsoDAMaestro->setValor($row->uso_dam_valor); $objUsoDAMaestro->isFromDb(true); } catch (\Exception $e) { return $objUsoDAMaestro; } $maestro = MaestroBaseDao::init($row, "ma_ba_maestro"); $objUsoDAMaestro->setMaestro($maestro); $conf = ConfDatosAdicionalesDao::init($row, "uso_dam_conf_da"); $objUsoDAMaestro->setConfDatosAdicionales($conf); return $objUsoDAMaestro; }
/** * 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); }
public static function init($row, $id = null) { $objDetRegistracion = new DetalleRegistracion(); try { if (is_null($id)) { $objDetRegistracion->setId($row->de_re_id); } else { $objDetRegistracion->setId($row->{$id}); throw new \Exception(); } $objDetRegistracion->setValor($row->de_re_valor); $objDetRegistracion->setTipoMovimiento($row->de_re_tipo_movimiento); $objDetRegistracion->isFromDb(true); } catch (\Exception $e) { return $objDetRegistracion; } $maestro = MaestroBaseDao::init($row, "ma_ba_maestro"); $objDetRegistracion->setMaestro($maestro); $registracion = RegistracionDao::init($row, "reg_registracion"); $objDetRegistracion->setRegistracion($registracion); $item = RegistracionDao::init($row, "it_item"); $objDetRegistracion->setItem($item); return $objDetRegistracion; }
/** * 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; } }
/** * Get Ticket Cierre Unificado * @param \Zend\ServiceManager\ServiceLocatorInterface $serviceLocator * @param \Tesoreria\Models\Registracion $objRegistracion * @param \Siris\Models\Ticket[] $ticketCierreSiris * @param boolean $forzado * @return \Siris\Models\Ticket[] */ public static function getTicketCierreUnificado($serviceLocator, $objRegistracion = null, $ticketCierreSiris = null, $forzado) { self::init($serviceLocator); $hash = chunk_split($objRegistracion->getHashControl(), 5, ' '); $terminal = $objRegistracion->getEntidad($serviceLocator); $cajaDetalle = ExpStoresProcedures::getCajaDetalle($serviceLocator, $terminal->getId(), date('Y-m-d'), date('Y-m-d')); $resultCierres = from('$detalle')->in($cajaDetalle)->where('$detalle => $detalle->id_operacion == ' . Constants::PA_SIS_CIERRE_CAJA . ' && $detalle->entidad == "' . $terminal->getNombre() . '"')->orderBy('$detalle => $detalle->fecha_registracion')->select('$detalle'); $condicionFechaRegistracion = ""; if (count($resultCierres) > 1) { $ultimoCierre = $resultCierres[count($resultCierres) - 1]->fecha_registracion; $condicionFechaRegistracion = ' && $detalle->fecha_registracion > "' . $ultimoCierre . '" '; } ######## EXTRACCIONES DE EFECTIVO ######### $extraccionesEfectivo = from('$detalle')->in($cajaDetalle)->where('$detalle => $detalle->id_operacion == ' . Constants::PA_SIS_EGRESO_EFECTIVO . ' && $detalle->id_concepto == ' . Constants::MA_BA_RETIRO_EFECTIVO . ' && $detalle->entidad == "' . $terminal->nombre . '"' . $condicionFechaRegistracion)->select('$detalle'); $texto = $ticketCierreSiris[0]->texto; $texto[] = ""; $texto[] = "----------------------------------------"; $texto[] = ""; $texto[] = " EXTRACCIONES DE EFECTIVO "; $texto[] = ""; $totalExtraccion = 0; foreach ($extraccionesEfectivo as $ext) { $totalExtraccion += $ext->valor; $montoExtraccion = number_format($ext->monto_operacion, 2, ",", "."); $texto[] = "Monto: " . $montoExtraccion; } if ($totalExtraccion > 0) { $texto[] = ""; $texto[] = "Total Extracciones: " . number_format($totalExtraccion, 2, ",", "."); } ######## RECAUDACIONES EXTERNAS (CONCILIACION) ######### $recaudacionesExternas = from('$detalle')->in($cajaDetalle)->where('$detalle => $detalle->id_operacion == ' . Constants::PA_SIS_RECAUDACION_EXTERNA . ' && $detalle->id_concepto == ' . Constants::MA_BA_RECAUDACION_EXTERNA . ' && $detalle->entidad == "' . $terminal->nombre . '"' . $condicionFechaRegistracion)->select('$detalle'); $texto[] = ""; $texto[] = "----------------------------------------"; $texto[] = ""; $texto[] = " RECAUDACIONES EXTERNAS "; $texto[] = ""; $totalRecaudaciones = 0; foreach ($recaudacionesExternas as $rec) { $usosDAItem = self::$usoDAItemDao->getAllObjects(array("item_id" => $rec->id_item)); $entidad = "XXXXXX"; foreach ($usosDAItem as $uso) { if ($uso->getConfDatosAdicionales($serviceLocator)->getId() == Constants::CONF_DA_ENTES_RECAUDADORES) { $objEntidad = self::$maestroBaseDao->getById($uso->getValor()); $entidad = $objEntidad->getNombre(); } } $totalRecaudaciones += $rec->valor; $montoRecaudacion = number_format($rec->valor, 2, ",", "."); $texto[] = "Entidad: " . $entidad; $texto[] = "Monto: " . $montoRecaudacion; $texto[] = ""; } if ($totalRecaudaciones > 0) { $texto[] = ""; $texto[] = "Total Recaudacion Ext.: " . number_format($totalRecaudaciones, 2, ",", "."); } ######## CORTES DE CAJA ######### $cortesCaja = from('$detalle')->in($cajaDetalle)->where('$detalle => $detalle->id_operacion == ' . Constants::PA_SIS_CORTE_CAJA . ' && $detalle->id_concepto == ' . Constants::MA_BA_PESOS . ' && $detalle->tipo_movimiento == "' . Constants::MO_SALIDA . '" && $detalle->entidad == "' . $terminal->nombre . '"' . $condicionFechaRegistracion)->select('$detalle'); $texto[] = ""; $texto[] = "----------------------------------------"; $texto[] = ""; $texto[] = " CORTES DE CAJA "; $texto[] = ""; $totalCortes = 0; foreach ($cortesCaja as $cor) { $totalCortes += $cor->valor; $montoCorte = number_format($cor->valor, 2, ",", "."); $texto[] = "Monto: " . $montoCorte; } if ($totalCortes > 0) { $texto[] = ""; $texto[] = "Total Cortes Caja: " . number_format($totalCortes, 2, ",", "."); } if ($forzado) { $texto[] = ""; $texto[] = "CONCEPTO: CIERRE FORZADO"; } $ticketCierre = new Ticket(); $ticketCierre->texto = $texto; $ticketFinalCierre = self::getTicketCajaNoCuadrada($serviceLocator, "CIERRE", $objRegistracion, array($ticketCierre)); return $ticketFinalCierre; }