示例#1
0
 /**
  * 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;
 }
示例#2
0
 /**
  * inicio Cerrar Caja
  * @param \Zend\ServiceManager\ServiceLocatorInterface $serviceLocator
  * @param \Tesoreria\Models\ERequest $request
  * @return \Tesoreria\Models\EResponse
  */
 public static function inicioCerrarCaja($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 Cerra Caja", $params, "", $request->header->usuario);
         # Busco un maestro especifico, en este caso el de pesos
         $maestroPesos = self::$maestroBaseDao->getById(Constants::MA_BA_PESOS);
         # Busco un maestro especifico, en este caso la terminal que esta interactuando
         $maestroTerminal = self::$maestroBaseDao->getOneObject(array('codigo_alternativo' => $request->header->serieEquipo));
         // ----- Realizo la busqueda del item de pesos para la terminal en cuestion ------------- ///
         $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));
         /// ------------------------------ CONFIGURACION DATOS PARAM_INFORME -------------------------------///
         $paramDAInforme = ExpStoresProcedures::getCajaDetalle($serviceLocator, $maestroTerminal->getId(), date('Y-m-d'), date('Y-m-d'));
         $resultCierres = from('$detalle')->in($paramDAInforme)->where('$detalle =>  $detalle->id_operacion == 8 && $detalle->entidad == "' . $maestroTerminal->nombre . '"')->orderBy('$detalle => $detalle->fecha_registracion')->select('$detalle');
         $ultimoCierre = $resultCierres[count($resultCierres) - 1]->fecha_registracion;
         $response->param_informe = new ParamInforme();
         $response->param_informe->info_detalle_registraciones = from('$detalle')->in($paramDAInforme)->where('$detalle =>  $detalle->id_operacion != 8 && $detalle->fecha_registracion >  "' . $ultimoCierre . '" && $detalle->entidad == "' . $maestroTerminal->nombre . '"')->select('$detalle');
         /// ------------------------------ CONFIGURACION DATOS PARAM_COMPLEMENTARIOS -------------------------------///
         // Saldo de Pesos inicial para la terminal
         $paramComp = new ParamComplementarios();
         $paramComp->setNombre('Saldo_Inicial');
         # 1. Recalculo el saldo incial a partir de las registraciones
         //$saldoInicial= floatval($itemPesos->cantidad);
         # 1.1 obtengo el ultimo cierre para determinal que operaciones se han realizado posterior a este
         $resultCierres = from('$detalle')->in($paramDAInforme)->where('$detalle =>  $detalle->id_operacion == 8 && $detalle->entidad == "' . $maestroTerminal->nombre . '"')->orderBy('$detalle => $detalle->fecha_registracion')->select('$detalle');
         $ultimoCierre = $resultCierres[count($resultCierres) - 1]->fecha_registracion;
         # 1.2 Obtengo el movimiento de apertura
         $movimientoSaldoApertura = from('$detalle')->in($paramDAInforme)->where('$detalle =>  $detalle->id_operacion != 8 && $detalle->fecha_registracion >  "' . $ultimoCierre . '"
             && $detalle->entidad == "' . $maestroTerminal->nombre . '" && $detalle->concepto == "Saldo Apertura"')->select('new {
                 "Valor" => $detalle->valor
               }');
         $paramComp->setValor(floatval($movimientoSaldoApertura[0]->Valor));
         # 2. Seteo la variable para retornar
         $response->param_complementarios = array($paramComp);
         /// ------------------------------ CONFIGURACION DATOS PARAM_INFORME_RECAUDACION -------------------------------///
         # 1. Busco y Construyo datos de ingresos detallados en SIRIS
         $newRequest = new \stdClass();
         $newRequest->secuencia = Constants::SEQ_0;
         $newRequest->serieEquipo = $request->header->serieEquipo;
         $newRequest->trxEquipo = "1";
         $newRequest->usuario = $request->header->usuario;
         $newRequest->password = $request->header->password;
         $responseResport = \Siris\Experts\ExpReporte::analyticalReport($serviceLocator, $newRequest);
         $response->param_informe->informe_recaudaciones = $responseResport->informe;
         /// ------------------------------ CONFIGURACION DATOS PARAM_ITEMS -------------------------------///
         // Items de Pesos
         $paramItem1 = new ParamItems();
         $paramItem1->setNombre('Pesos');
         $paramItem1->setItems(array($itemPesos));
         // Seteo la variable para retornar
         $response->param_items = array($paramItem1);
         /// ------------------------------ CONFIGURACION DATOS PARAM_MAESTROS -------------------------------///
         # 1. Construyo el parametro de retorno de los maestros del tipo ente
         $paramMaestros = new ParamMaestros();
         $paramMaestros->setNombre('Entes');
         $confOrigenTrans = self::$confDatosAdicionalesDao->getById(Constants::CONF_DA_ENTES_RECAUDADORES);
         $maestrosOrigen = self::$maestroBaseDao->getAllObjects(array('ma_ba_padre' => $confOrigenTrans->origen_lista));
         $paramMaestros->setMaestrosBase($maestrosOrigen);
         # 2. Finalmente cargo la variable PARAM_MAESTROS
         $response->param_maestros = array($paramMaestros);
         /// ------------------------------ CONFIGURACION DATOS PARAM_DA -------------------------------///
         //$response->result = json_encode(self::ExisteRecaudacion($serviceLocator,$paramDAInforme,$maestroTerminal));
         if (!self::ExisteRecaudacion($serviceLocator, $paramDAInforme, $maestroTerminal)) {
             # 1. Configuracion de pesos tipo ENTRDA de la terminal
             $valores = new \stdClass();
             $idConf = Constants::CONF_DA_PESOS_OWNER;
             $valores->{$idConf} = $maestroTerminal->getId();
             $paramDAPesosTerminal = ExpConfiguracion::getParamDatosAdicionales($serviceLocator, Constants::MA_BA_PESOS, $valores, Constants::MO_ENTRADA_CORTO);
             # 2.  Configuracion de recaudaciones externas
             $valores = new \stdClass();
             $idConf = Constants::CONF_DA_RECAUDACION_EXTERNAS_OWNER;
             $valores->{$idConf} = $maestroTerminal->getId();
             $paramDARecaudaciones = ExpConfiguracion::getParamDatosAdicionales($serviceLocator, Constants::MA_BA_RECAUDACION_EXTERNA, $valores, Constants::MO_ENTRADA_CORTO);
             # 3. Finalmente cargo la variable PARAM_DA
             $allParamDA = array($paramDAPesosTerminal, $paramDARecaudaciones);
             $response->param_da = $allParamDA;
         } else {
             # 1. Configuracion de pesos tipo ENTRDA/SALIDA de la terminal
             $valores = new \stdClass();
             $idConf = Constants::CONF_DA_PESOS_OWNER;
             $valores->{$idConf} = $maestroTerminal->getId();
             $paramDAPesosTerminal = ExpConfiguracion::getParamDatosAdicionales($serviceLocator, Constants::MA_BA_PESOS, $valores, Constants::MO_ENTRADA_SALIDA);
             # 2. Configuracion del SOBRANTE DE CAJA
             $valores = new \stdClass();
             $idConf = Constants::CONF_DA_SOBRANTE_OWNER;
             $valores->{$idConf} = $maestroTerminal->getId();
             $paramDASobrante = ExpConfiguracion::getParamDatosAdicionales($serviceLocator, Constants::MA_BA_SOBRANTE, $valores, Constants::MO_ENTRADA_CORTO);
             # 3. Configuracion de saldo de Cierre tipo ENTRDA de la terminal
             $valores = new \stdClass();
             $idConf = Constants::CONF_DA_SALDO_CIERRE_OWNER;
             $valores->{$idConf} = $maestroTerminal->getId();
             $paramDASaldoCierre = ExpConfiguracion::getParamDatosAdicionales($serviceLocator, Constants::MA_BA_SALDO_CIERRE, $valores, Constants::MO_ENTRADA_CORTO);
             # 4. Configuracion del FALTANTE DE CAJA
             $valores = new \stdClass();
             $idConf = Constants::CONF_DA_FALTANTE_OWNER;
             $valores->{$idConf} = $maestroTerminal->getId();
             $paramDAFaltante = ExpConfiguracion::getParamDatosAdicionales($serviceLocator, Constants::MA_BA_FALTANTE, $valores, Constants::MO_ENTRADA_CORTO);
             # 5. Finalmente cargo la variable PARAM_DA
             $allParamDA = array($paramDAPesosTerminal, $paramDAFaltante, $paramDASobrante, $paramDASaldoCierre);
             $response->param_da = $allParamDA;
             $response->result = $maestroTerminal->getId();
             /// ---------------------------------------------------------------------------------------------------------///
         }
         /// ---------------------------------------------------------------------------------------------------------///
         $conexion->commit();
         return $response;
     } catch (Exception $e) {
         $conexion->rollback();
         ExpLog::save($serviceLocator, $request->header->serieEquipo, Constants::LOG_ERROR, "", "inicio Apertura Caja", $params, $e->getMessage(), $request->header->usuario);
         $error = new Error();
         $error->setMensaje("Error: no se pudo iniciar el Cerrar Caja.");
         $response->error = $error;
         return $response;
     }
 }
示例#3
0
 /**
  * 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;
 }