com.cinecolombia.interfases.ingresarDatosComplejo.modelvalue
Class Complejo

java.lang.Object
  |
  +--com.cinecolombia.interfases.ingresarDatosComplejo.modelvalue.Complejo

public class Complejo
extends java.lang.Object

Contiene toda la información de un complejo, incluyendo sus salas y ubicaciones.


Field Summary
private  TripletaNAA agencia
           
static int BAD_ZIP
           
private  java.lang.String bodega
           
private  java.lang.String centroCosto
           
private  DuplaAA ciudad
           
private  java.lang.String codigo
          Código decidido por Cinecolombia para el complejo
private  java.lang.String codigoIcon
          Código en el sistema Icon para el complejo
private  java.lang.String codigoTesoreria
           
static java.lang.String COMIDAS
           
private  int cortesias
          Número de cortesías.
private static Debug debug
           
private  int espectadores
          Total de espectadores (solamente se usa para despliegue de información).
private  java.lang.String estado
          Estado, el cual puede ser "A" o "I".
static java.lang.String EXHIBICION
           
private  java.lang.String extensionArchVentas
           
private  java.util.Date fechaProceso
          Fecha para la siguiente capturade datos
(package private)  java.text.SimpleDateFormat ff_yyyyMMdd
           
(package private)  java.text.SimpleDateFormat ffAMD
           
(package private)  java.text.SimpleDateFormat ffDMA
           
private  int id
          Llave del complejo en la BD
private  long ingresoTotal
          Total de dinero ingresado en una fecha (solamente se usa para despliegue de información).
static int IO_ZIP_PROBLEM
           
static int MISSING_PROCESS
           
static int NO_PROBLEM
           
static int NO_ZIP
           
private  java.lang.String nombre
          Nombre del complejo
private  long numeroFacturaDian
           
private  int numPlanillas
           
private  int planillaInicial
           
static java.lang.String PORTAL
           
private  java.lang.String[] procesos
          Procesos automáticos del complejo
private  Sala salaCabeza
           
private  Sala[] salas
          Todas las salas del complejo
private  Sala[] salasIngreso
          Salas con ingresos en una fecha dada, ordenadas según el orden de los ingresos.
private  int saldoFinal
           
private  int saldoInicial
           
static java.lang.String SEPARADOR
           
private  int teatroCabeza
          Versión numérica del código AS-400 del teatro cabeza.
private  long topeFacturaDian
           
static int TROUBLE_IN_PROCESS
           
private  Ubicacion[] ubicaciones
          Ubicaciones del complejo.
private  java.util.Date ultimaImportacion
          Ultima fecha para la cual se incorporaron datos en la BD.
private  long umbralFacturaDian
           
 
Constructor Summary
Complejo()
           
 
Method Summary
private  void closePreciosPelicula(PeliculaExhibida pelicula, java.util.List precios)
          Establece los PrecioExhibicion provenientes de una exhibición de una película.
 boolean colisiona(java.util.List shallowComplejos)
          Certifica si este complejo colisiona con los complejos de una lista.
 boolean colisionaUbicacion(Ubicacion ubic)
          Certifica si una ubicación colisiona con las ubicaciones de este complejo (ver Ubicacion)
static boolean colisionaUbicacion(Ubicacion ubic, Ubicacion[] ubicaciones)
          Certifica si una ubicación colisiona con un arreglo de ubicaciones.
 java.lang.String debugSalasIngreso(IngresoSala[] ingresos)
          Calcula una cadena de caracteres que permite visualizar la información de exhibición de este complejo con respecto a un conjunto de ingresos.
private  void evalCortesias()
          Calcula el total de cortesias del complejo.
 int evalEspectadores()
          Calcula el número de espectadores usando la información de espectadores de las salasIngreso.
 int evalIngresoTotal()
          Calcula el ingreso total usando la información de ingreso de las salasIngreso.
 TripletaNAA getAgencia()
           
 java.lang.String getBodega()
           
 int getCantidadPlanillas()
          Calcula el "número de números de planilla" que serán asignados para el complejo.
 java.lang.String getCentroCosto()
           
 DuplaAA getCiudad()
           
 java.lang.String getCodigo()
           
 java.lang.String getCodigoIcon()
           
 java.lang.String getCodigoTesoreria()
           
 int getCortesias()
           
 DisplayIngreso getDisplayIngreso(IngresoVigente ingVig, IngresoSala[] ingresos)
          Calcula un objeto DisplayIngreso apropiado para mostrar datos de ingreso al usuario.
 int getEspectadores()
           
 java.lang.String getEstado()
           
 java.lang.String getExtensionArchVentas()
           
 java.util.Date getFechaProceso()
           
 int getId()
           
 long getIngresoTotal()
           
 java.lang.String getMessage(int msg)
          Calcula un mensaje correspondiente a un código de problema.
 java.lang.String getNombre()
           
 java.lang.String getNombreArchivoExhibiciones()
          Calcula el nombre del archivo .0 correpondiente a la fechaProceso.
 java.lang.String getNombreArchivoTipo_1(java.util.Date fecha)
          Calcula el nombre del archivo de registros tipo 1 correspondiente a este complejo y una fecha dada.
 java.lang.String getNombreArchivoTipo_2(java.util.Date fecha)
          Calcula el nombre del archivo de registros tipo 2 correspondiente a este complejo y una fecha dada.
 java.lang.String getNombreArchivoTipo_3(java.util.Date fecha)
          Calcula el nombre del archivo de registros tipo 3 correspondiente a este complejo y una fecha dada.
 long getNumeroFacturaDian()
           
 java.lang.String[] getProcesos()
           
 Sala getSalaCabeza()
           
 Sala[] getSalas()
           
 Sala[] getSalasIngreso()
           
 long getSaldoFinal()
           
 long getSaldoInicial()
           
 int getTeatroCabeza()
           
 long getTopeFacturaDian()
           
 Ubicacion[] getUbicaciones()
           
 java.util.Date getUltimaImportacion()
           
 long getUmbralFacturaDian()
           
 boolean hasProcess(java.lang.String process)
          Decide si un proceso automático está en procesos.
private  PrecioExhibicion initPrecioExhib(IngresoSala ingr, int index)
          Construye un objeto PrecioExhibicion para iniciar un "slot" de precios extraidos de un archivo de exhibición.
 void makeSalasIngreso(IngresoSala[] ingresos)
          Arma una estructura jerárquica de la información de ingreso para la fecha de proceso de este complejo.
 PropagablesIngreso propagarValores(IngresoSala[] ingresosSala, int planillaInicial, boolean isFinal)
          Calcula los valores de espectadores, saldos, series, ingresoTotal y planillas para todas las salas, películas, precios e ingresos de sala asociados con este complejo para una fecha dada.
 Ubicacion[] searchUbicaciones(SearchUbicacion criterio)
          Busca, dentro de las ubicaciones de este complejo, un conjunto de ubicaciones que satisfagan un criterio.
 void setAgencia(TripletaNAA agencia)
           
 void setBodega(java.lang.String bodega)
           
 void setCentroCosto(java.lang.String centroCosto)
           
 void setCiudad(DuplaAA ciudad)
           
 void setCodigo(java.lang.String codigo)
           
 void setCodigoIcon(java.lang.String codigoIcon)
           
 void setCodigoTesoreria(java.lang.String codigoTesoreria)
           
 void setCortesias(int cortesias)
           
 void setEspectadores(int espectadores)
           
 void setEstado(java.lang.String estado)
           
 void setExtensionArchVentas(java.lang.String extensionArchVentas)
           
 void setFechaProceso(java.util.Date fechaProceso)
           
 void setId(int id)
           
 void setIngresoTotal(long ingresoTotal)
           
 void setNombre(java.lang.String nombre)
           
 void setNumeroFacturaDian(long numeroFacturaDian)
           
static java.lang.String setOfProcessToString(java.lang.String[] procs)
          Convierte un conjunto de procesos en una cadena de caracteres, codificada como lo especifican las constantes EXHIBICION, PORTAL y COMIDAS.
 void setProcesos(java.lang.String[] procesos)
           
 void setSalaCabeza(Sala salaCabeza)
           
 void setSalas(Sala[] salas)
           
 void setSalasIngreso(Sala[] salasIngreso)
           
 void setSaldoFinal(int saldoFinal)
           
 void setSaldoInicial(int saldoInicial)
           
 void setTeatroCabeza(int teatroCabeza)
           
 void setTopeFacturaDian(long topeFacturaDian)
           
 void setUbicaciones(Ubicacion[] ubicaciones)
           
 void setUltimaImportacion(java.util.Date ultimaImportacion)
           
 void setUmbralFacturaDian(long umbralFacturaDian)
           
static java.lang.String[] stringToSetOfProcess(java.lang.String s, java.lang.String[] orderedProcs)
          Calcula un conjunto de procesos a partir de una cadena de caracteres.
 java.lang.String toString()
          Representación, como caracteres, de la información "superficial" del complejo.
 java.lang.String zipFileName()
          Calcula el nombre del zip file que debe contener los archivos exportados para el complejo en la fecha de proceso.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

id

private int id
Llave del complejo en la BD


codigo

private java.lang.String codigo
Código decidido por Cinecolombia para el complejo


nombre

private java.lang.String nombre
Nombre del complejo


codigoIcon

private java.lang.String codigoIcon
Código en el sistema Icon para el complejo


teatroCabeza

private int teatroCabeza
Versión numérica del código AS-400 del teatro cabeza.


fechaProceso

private java.util.Date fechaProceso
Fecha para la siguiente capturade datos


procesos

private java.lang.String[] procesos
Procesos automáticos del complejo


estado

private java.lang.String estado
Estado, el cual puede ser "A" o "I".


ultimaImportacion

private java.util.Date ultimaImportacion
Ultima fecha para la cual se incorporaron datos en la BD.


agencia

private TripletaNAA agencia

ciudad

private DuplaAA ciudad

salaCabeza

private Sala salaCabeza

centroCosto

private java.lang.String centroCosto

bodega

private java.lang.String bodega

codigoTesoreria

private java.lang.String codigoTesoreria

saldoInicial

private int saldoInicial

saldoFinal

private int saldoFinal

numeroFacturaDian

private long numeroFacturaDian

topeFacturaDian

private long topeFacturaDian

umbralFacturaDian

private long umbralFacturaDian

extensionArchVentas

private java.lang.String extensionArchVentas

planillaInicial

private int planillaInicial

numPlanillas

private int numPlanillas

salas

private Sala[] salas
Todas las salas del complejo


salasIngreso

private Sala[] salasIngreso
Salas con ingresos en una fecha dada, ordenadas según el orden de los ingresos. Ver IngresoSala.


ubicaciones

private Ubicacion[] ubicaciones
Ubicaciones del complejo.


espectadores

private int espectadores
Total de espectadores (solamente se usa para despliegue de información).


cortesias

private int cortesias
Número de cortesías. No hace parte del total de ingresos.


ingresoTotal

private long ingresoTotal
Total de dinero ingresado en una fecha (solamente se usa para despliegue de información).


NO_ZIP

public static final int NO_ZIP
See Also:
Constant Field Values

MISSING_PROCESS

public static final int MISSING_PROCESS
See Also:
Constant Field Values

BAD_ZIP

public static final int BAD_ZIP
See Also:
Constant Field Values

IO_ZIP_PROBLEM

public static final int IO_ZIP_PROBLEM
See Also:
Constant Field Values

TROUBLE_IN_PROCESS

public static final int TROUBLE_IN_PROCESS
See Also:
Constant Field Values

NO_PROBLEM

public static final int NO_PROBLEM
See Also:
Constant Field Values

EXHIBICION

public static final java.lang.String EXHIBICION
See Also:
Constant Field Values

PORTAL

public static final java.lang.String PORTAL
See Also:
Constant Field Values

COMIDAS

public static final java.lang.String COMIDAS
See Also:
Constant Field Values

SEPARADOR

public static final java.lang.String SEPARADOR
See Also:
Constant Field Values

ffAMD

java.text.SimpleDateFormat ffAMD

ffDMA

java.text.SimpleDateFormat ffDMA

ff_yyyyMMdd

java.text.SimpleDateFormat ff_yyyyMMdd

debug

private static Debug debug
Constructor Detail

Complejo

public Complejo()
Method Detail

setAgencia

public void setAgencia(TripletaNAA agencia)

setCiudad

public void setCiudad(DuplaAA ciudad)

setSalaCabeza

public void setSalaCabeza(Sala salaCabeza)

setCentroCosto

public void setCentroCosto(java.lang.String centroCosto)

setBodega

public void setBodega(java.lang.String bodega)

setCodigoTesoreria

public void setCodigoTesoreria(java.lang.String codigoTesoreria)

setSaldoInicial

public void setSaldoInicial(int saldoInicial)

setSaldoFinal

public void setSaldoFinal(int saldoFinal)

setNumeroFacturaDian

public void setNumeroFacturaDian(long numeroFacturaDian)

setTopeFacturaDian

public void setTopeFacturaDian(long topeFacturaDian)

setUmbralFacturaDian

public void setUmbralFacturaDian(long umbralFacturaDian)

setExtensionArchVentas

public void setExtensionArchVentas(java.lang.String extensionArchVentas)

setSalas

public void setSalas(Sala[] salas)

setSalasIngreso

public void setSalasIngreso(Sala[] salasIngreso)

setUbicaciones

public void setUbicaciones(Ubicacion[] ubicaciones)

setCortesias

public void setCortesias(int cortesias)

getCortesias

public int getCortesias()

getAgencia

public TripletaNAA getAgencia()

getCiudad

public DuplaAA getCiudad()

getSalaCabeza

public Sala getSalaCabeza()

getCentroCosto

public java.lang.String getCentroCosto()

getBodega

public java.lang.String getBodega()

getCodigoTesoreria

public java.lang.String getCodigoTesoreria()

getSaldoInicial

public long getSaldoInicial()

getSaldoFinal

public long getSaldoFinal()

getNumeroFacturaDian

public long getNumeroFacturaDian()

getTopeFacturaDian

public long getTopeFacturaDian()

getUmbralFacturaDian

public long getUmbralFacturaDian()

getExtensionArchVentas

public java.lang.String getExtensionArchVentas()

getSalas

public Sala[] getSalas()

getSalasIngreso

public Sala[] getSalasIngreso()

getUbicaciones

public Ubicacion[] getUbicaciones()

setId

public void setId(int id)

setIngresoTotal

public void setIngresoTotal(long ingresoTotal)

setCodigo

public void setCodigo(java.lang.String codigo)

setNombre

public void setNombre(java.lang.String nombre)

setCodigoIcon

public void setCodigoIcon(java.lang.String codigoIcon)

setTeatroCabeza

public void setTeatroCabeza(int teatroCabeza)

setFechaProceso

public void setFechaProceso(java.util.Date fechaProceso)

setProcesos

public void setProcesos(java.lang.String[] procesos)

setEspectadores

public void setEspectadores(int espectadores)

setEstado

public void setEstado(java.lang.String estado)

setUltimaImportacion

public void setUltimaImportacion(java.util.Date ultimaImportacion)

getId

public int getId()

getIngresoTotal

public long getIngresoTotal()

getCodigo

public java.lang.String getCodigo()

getNombre

public java.lang.String getNombre()

getCodigoIcon

public java.lang.String getCodigoIcon()

getTeatroCabeza

public int getTeatroCabeza()

getFechaProceso

public java.util.Date getFechaProceso()

getProcesos

public java.lang.String[] getProcesos()

getEspectadores

public int getEspectadores()

getEstado

public java.lang.String getEstado()

getUltimaImportacion

public java.util.Date getUltimaImportacion()

stringToSetOfProcess

public static java.lang.String[] stringToSetOfProcess(java.lang.String s,
                                                      java.lang.String[] orderedProcs)
Calcula un conjunto de procesos a partir de una cadena de caracteres. Los procesos deben estar codificados como lo especifican las constantes EXHIBICION, PORTAL y COMIDAS.

Parameters:
s - La cadena que será convertida.
orderedProcs - Orden estándar para los procesos.
Returns:
Description of the Return Value

hasProcess

public boolean hasProcess(java.lang.String process)
Decide si un proceso automático está en procesos.

Parameters:
process - Codificación del proceso. Los valores válidos son las constantes EXIBICION, PORTAL y COMIDAS de esta clase.
Returns:
Description of the Return Value
Note:
La búsqueda es secuencial pero el arreglo tiene menos de 10 elementos.

setOfProcessToString

public static java.lang.String setOfProcessToString(java.lang.String[] procs)
Convierte un conjunto de procesos en una cadena de caracteres, codificada como lo especifican las constantes EXHIBICION, PORTAL y COMIDAS.

Parameters:
procs - El conjunto de procesos que será convertido.
Returns:
Description of the Return Value

zipFileName

public java.lang.String zipFileName()
Calcula el nombre del zip file que debe contener los archivos exportados para el complejo en la fecha de proceso. El formato es: cc<CódigoComplejo>-yyyy-mmm-ddd.zip.

Returns:
Description of the Return Value

getMessage

public java.lang.String getMessage(int msg)
Calcula un mensaje correspondiente a un código de problema.

Parameters:
msg - Description of the Parameter
Returns:
El mensaje calculado.

getNombreArchivoExhibiciones

public java.lang.String getNombreArchivoExhibiciones()
Calcula el nombre del archivo .0 correpondiente a la fechaProceso.

Returns:
The nombreArchivoExhibiciones value

getNombreArchivoTipo_1

public java.lang.String getNombreArchivoTipo_1(java.util.Date fecha)
Calcula el nombre del archivo de registros tipo 1 correspondiente a este complejo y una fecha dada.

Parameters:
fecha - La fecha en cuestión.
Returns:
The nombreArchivoTipo_1 value

getNombreArchivoTipo_2

public java.lang.String getNombreArchivoTipo_2(java.util.Date fecha)
Calcula el nombre del archivo de registros tipo 2 correspondiente a este complejo y una fecha dada.

Parameters:
fecha - La fecha en cuestión.
Returns:
El nombre del archivo

getNombreArchivoTipo_3

public java.lang.String getNombreArchivoTipo_3(java.util.Date fecha)
Calcula el nombre del archivo de registros tipo 3 correspondiente a este complejo y una fecha dada.

Parameters:
fecha - La fecha en cuestión.
Returns:
El nombre del archivo

makeSalasIngreso

public void makeSalasIngreso(IngresoSala[] ingresos)
Arma una estructura jerárquica de la información de ingreso para la fecha de proceso de este complejo.

Parameters:
ingresos - Description of the Parameter

evalCortesias

private void evalCortesias()
Calcula el total de cortesias del complejo.

Side Effect:
Cambia el valor de cortesias.

closePreciosPelicula

private void closePreciosPelicula(PeliculaExhibida pelicula,
                                  java.util.List precios)
Establece los PrecioExhibicion provenientes de una exhibición de una película.

Parameters:
pelicula - Película en cuestión
precios - Lista de PrecioExhibicion ordenados.
Side Effect:
Filtra el primer precio si se trata de cortesías y cambia el valor de cortesias.

getDisplayIngreso

public DisplayIngreso getDisplayIngreso(IngresoVigente ingVig,
                                        IngresoSala[] ingresos)
Calcula un objeto DisplayIngreso apropiado para mostrar datos de ingreso al usuario.

Parameters:
ingVig - Indices de la sala, pelicula y precio.
ingresos - Description of the Parameter
Returns:
The displayIngreso value

initPrecioExhib

private PrecioExhibicion initPrecioExhib(IngresoSala ingr,
                                         int index)
Construye un objeto PrecioExhibicion para iniciar un "slot" de precios extraidos de un archivo de exhibición.

Parameters:
ingr - Description of the Parameter
index - Description of the Parameter
Returns:
Description of the Return Value

evalEspectadores

public int evalEspectadores()
Calcula el número de espectadores usando la información de espectadores de las salasIngreso.

Returns:
Description of the Return Value

evalIngresoTotal

public int evalIngresoTotal()
Calcula el ingreso total usando la información de ingreso de las salasIngreso.

Returns:
Description of the Return Value

toString

public java.lang.String toString()
Representación, como caracteres, de la información "superficial" del complejo.

Overrides:
toString in class java.lang.Object
Returns:
Description of the Return Value

propagarValores

public PropagablesIngreso propagarValores(IngresoSala[] ingresosSala,
                                          int planillaInicial,
                                          boolean isFinal)
Calcula los valores de espectadores, saldos, series, ingresoTotal y planillas para todas las salas, películas, precios e ingresos de sala asociados con este complejo para una fecha dada.

Parameters:
ingresosSala - Ingresos asociados con el complejo, ordenados.
planillaInicial - Primer número de planilla disponible.
isFinal - Indica si los valores "finales" de serie y saldos calculados son definitivos.
Returns:
Un objeto que contiene los valores disponibles (finales) para saldo y planilla.
Note:
Cambia los atributos asociados con espectadores, saldos, series, ingresoTotal y planillas para las salas, peliculas, precios e Ingresos de Sala asociados.

getCantidadPlanillas

public int getCantidadPlanillas()
Calcula el "número de números de planilla" que serán asignados para el complejo. Corresponde al número de objetos PrecioExhibicion relacionados con el complejo.

Returns:
The cantidadPlanillas value

colisionaUbicacion

public boolean colisionaUbicacion(Ubicacion ubic)
Certifica si una ubicación colisiona con las ubicaciones de este complejo (ver Ubicacion)

Parameters:
ubic - La ubicación
Returns:
  • True Colisiona
  • False No Colisiona

colisionaUbicacion

public static boolean colisionaUbicacion(Ubicacion ubic,
                                         Ubicacion[] ubicaciones)
Certifica si una ubicación colisiona con un arreglo de ubicaciones.

Parameters:
ubic - La ubicación
ubicaciones - El arreglo de ubicaciones (ordenado por código).
Returns:
  • True Colisiona
  • False No Colisiona

colisiona

public boolean colisiona(java.util.List shallowComplejos)
Certifica si este complejo colisiona con los complejos de una lista.

Returns:
  • True Colisiona
  • False No Colisiona
Note:
Este complejo colisiona con alguno de la lista si se cumple una de las dos condiciones siguientes:
  1. id==UNDEF y existe alguna tripleta en shallowComplejos tal que su codigo o su nombre son iguales a los de este complejo.
  2. id!=UNDEF y existe alguna tripleta en shallowComplejos tal que su id sea diferente de this.id y además que su codigo o su nombre sean iguales a los de este complejo.

searchUbicaciones

public Ubicacion[] searchUbicaciones(SearchUbicacion criterio)
Busca, dentro de las ubicaciones de este complejo, un conjunto de ubicaciones que satisfagan un criterio.

Parameters:
criterio - Criterio de búsqueda
Returns:
Un arreglo con las ubicaciones encontradas. Si no hay ubicaciones, el arreglo es de tamaño cero.

debugSalasIngreso

public java.lang.String debugSalasIngreso(IngresoSala[] ingresos)
Calcula una cadena de caracteres que permite visualizar la información de exhibición de este complejo con respecto a un conjunto de ingresos.

Parameters:
ingresos - El cnjunto específico de ingresos.
Returns:
Description of the Return Value