/** * 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; }
/** * inicio eporte Deposito * @param \Zend\ServiceManager\ServiceLocatorInterface $serviceLocator * @param \Tesoreria\Models\ERequest $request * @return \Tesoreria\Models\EResponse */ public static function inicioReporteDeposito($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, "", "inicio eporte Deposito", $params, "", $request->header->usuario); // Busco un maestro especifico, en este caso la terminal que esta interactuando $maestroTerminal = self::$maestroBaseDao->getOneObject(array('codigo_alternativo' => $request->header->serieEquipo)); /// ---------------------------------- BUSCO DE LOS ITEMS DEL FAJO -------------------------------------/// // ----- Realizo la busqueda del item de fajos para la terminal en cuestion ------------- /// $condicion = 'owner = ' . $maestroTerminal->getId() . ' and it_cantidad > 0'; $resultSetItemsFajos = ExpStoresProcedures::findItems($serviceLocator, Constants::MA_BA_FAJOS, $condicion); $cadenaIds = ''; foreach ($resultSetItemsFajos as $item) { $cadenaIds .= $item->it_id . ','; } //$response->result = $cadenaIds; //return $response; $itemsFajos = self::$itemDao->getAllObjects(array('it_id_in' => $cadenaIds . '0')); /*foreach ($itemsFajos as $key => $item ) { $usosItem = $item->getUsosDatosAdicionales($serviceLocator); $item->setUsosDatosAdicionales($usosItem); $itemsFajos[$key] = $item; }*/ /// ---------------------------------------------------------------------------------------------------------/// /// ---------------------------------- BUSCO EL ITEM DE PESOS DE LA TESORERIA -------------------------------/// $maestroPesos = self::$maestroBaseDao->getById(Constants::MA_BA_PESOS); $condicion = 'owner = ' . $maestroTerminal->getId(); $resultSetItemPesos = ExpStoresProcedures::findItems($serviceLocator, Constants::MA_BA_PESOS, $condicion); if (count($resultSetItemPesos) == 0) { throw new Exception("Error: el item de pesos de la terminal no ha sido encontrado"); } $itemPesos = self::$itemDao->getOneObject(array('it_id' => $resultSetItemPesos[0]->it_id)); /// ---------------------------------------------------------------------------------------------------------/// // ----- Construyo el parametro de retorno de los items ------------- /// // Items de Fajos $paramItem = new ParamItems(); $paramItem->setNombre('Fajos'); $paramItem->setItems($itemsFajos); // Items de Pesos $paramItem1 = new ParamItems(); $paramItem1->setNombre('Pesos'); $paramItem1->setItems(array($itemPesos)); // Seteo la variable para retornar $response->param_items = array($paramItem, $paramItem1); /// ---------------------------------------------------------------------------------------------------------/// // ----- Construyo el parametro de retorno de los maestros ------------- /// // Busco un maestro especifico, en este caso $maestroBanco = self::$maestroBaseDao->getOneObject(array('ma_ba_id' => Constants::MA_BA_BANCO)); // Busco un maestro especifico, en este caso $maestroTransporte = self::$maestroBaseDao->getOneObject(array('ma_ba_id' => Constants::MA_BA_TRANSEPORTE)); $paramMaestros = new ParamMaestros(); $paramMaestros->setNombre('TipoDepositos'); $paramMaestros->setMaestrosBase(array($maestroBanco, $maestroTransporte)); # 2. Construyo el parametro de retorno de los maestros del tipo ente $padreId = $maestroTerminal->getPadre($serviceLocator)->getId(); $maestrosOrigenFajos = self::$maestroBaseDao->getAllObjects(array('ma_ba_padre' => $padreId)); $paramMaestrosFajos = new ParamMaestros(); $paramMaestrosFajos->setNombre('Origen_Fajos'); $paramMaestrosFajos->setMaestrosBase($maestrosOrigenFajos); # 3. Seteo la variable para retornar $response->param_maestros = array($paramMaestros, $paramMaestrosFajos); /// ---------------------------------------------------------------------------------------------------------/// /// ---------------------------------- CONSTRUYO LOS DATOS ADICIONALES DE LA REGISTRACION -------------------------------/// # Configuracion de fajos $confDAFajos = self::$confDatosAdicionalesDao->getAllObjects(array('ma_ba_maestro' => Constants::MA_BA_FAJOS)); $allParamDA = array(); foreach ($resultSetItemsFajos as $item) { $arrayListaConfiguraciones = array(); $maestroFajos = self::$maestroBaseDao->getById(Constants::MA_BA_FAJOS); $paramDAFajos = new ParamDatosAdicionales(); $paramDAFajos->setMaestroBase($maestroFajos); $paramDAFajos->setTipo(Constants::MO_SALIDA_CORTO); $paramDAFajos->setIdItem((int) $item->it_id); foreach ($confDAFajos as $conf) { $listaConfiguracion = new ListaConfiguraciones(); $listaConfiguracion->setConfiguracion(self::$confDatosAdicionalesDao->getById($conf->id)); $columnName = $conf->nombre; $listaConfiguracion->setValor($item->{$columnName}); $arrayListaConfiguraciones[] = $listaConfiguracion; } $paramDAFajos->setListaConfiguraciones($arrayListaConfiguraciones); $allParamDA[] = $paramDAFajos; } # Configuracion de Deposito Banco $confDADepBanco = self::$confDatosAdicionalesDao->getAllObjects(array('ma_ba_maestro' => Constants::MA_BA_BANCO)); $maestroDepBanco = self::$maestroBaseDao->getById(Constants::MA_BA_BANCO); $paramDABanco = new ParamDatosAdicionales(); $paramDABanco->setMaestroBase($maestroDepBanco); $paramDABanco->setTipo(Constants::MO_ENTRADA_CORTO); $arrayListaConfiguraciones = array(); foreach ($confDADepBanco as $conf) { $listaConfiguracion = new ListaConfiguraciones(); $listaConfiguracion->setConfiguracion(self::$confDatosAdicionalesDao->getById($conf->id)); if ($conf->nombre == 'owner') { $listaConfiguracion->setValor($maestroTerminal->id); } $arrayListaConfiguraciones[] = $listaConfiguracion; } $paramDABanco->setListaConfiguraciones($arrayListaConfiguraciones); $allParamDA[] = $paramDABanco; # Configuracion de Deposito Banco $confDADepTransp = self::$confDatosAdicionalesDao->getAllObjects(array('ma_ba_maestro' => Constants::MA_BA_TRANSEPORTE)); $maestroDepTransp = self::$maestroBaseDao->getById(Constants::MA_BA_TRANSEPORTE); $paramDATransp = new ParamDatosAdicionales(); $paramDATransp->setMaestroBase($maestroDepTransp); $paramDATransp->setTipo(Constants::MO_ENTRADA_CORTO); $arrayListaConfiguraciones = array(); foreach ($confDADepTransp as $conf) { $listaConfiguracion = new ListaConfiguraciones(); $listaConfiguracion->setConfiguracion(self::$confDatosAdicionalesDao->getById($conf->id)); if ($conf->nombre == 'owner') { $listaConfiguracion->setValor($maestroTerminal->id); } $arrayListaConfiguraciones[] = $listaConfiguracion; } $paramDATransp->setListaConfiguraciones($arrayListaConfiguraciones); $allParamDA[] = $paramDATransp; # Configuracion de Pesos $confDAPesos = self::$confDatosAdicionalesDao->getAllObjects(array('ma_ba_maestro' => Constants::MA_BA_PESOS)); $paramDAPesos = new ParamDatosAdicionales(); $paramDAPesos->setMaestroBase($maestroPesos); $paramDAPesos->setTipo(Constants::MO_SALIDA_CORTO); $paramDAPesos->setIdItem($itemPesos->id); $arrayListaConfiguraciones = array(); foreach ($confDAPesos as $conf) { $listaConfiguracion = new ListaConfiguraciones(); $listaConfiguracion->setConfiguracion(self::$confDatosAdicionalesDao->getById($conf->id)); $listaConfiguracion->setValor($maestroTerminal->id); $arrayListaConfiguraciones[] = $listaConfiguracion; } $paramDAPesos->setListaConfiguraciones($arrayListaConfiguraciones); $allParamDA[] = $paramDAPesos; /// finalmente agregro todos los datoa al response. $response->param_da = $allParamDA; /// ---------------------------------------------------------------------------------------------------------------------/// $conexion->commit(); return $response; } catch (Exception $e) { $conexion->rollback(); ExpLog::save($serviceLocator, $request->header->serieEquipo, Constants::LOG_ERROR, "", "inicio eporte Deposito", $params, $e->getMessage(), $request->header->usuario); $error = new Error(); $error->setMensaje("Error: no se pudo iniciar el corte de caja."); $response->error = $error; return $response; } }