/* (non-Javadoc)
   * @see ec.com.smx.sic.articulo.gestor.admin.calculo.ICalculoArticuloNovedadGestor#registrarNovedadArticulo(ec.com.smx.sic.cliente.mdl.vo.ArticuloVO)
   */
  @Override
  public void registrarNovedadArticuloProveedor(ArticuloVO articuloVO) throws SICException {
    try {
      if (articuloVO.getBaseDTO().getArticuloProveedorCol() != null
          && !articuloVO.getBaseDTO().getArticuloProveedorCol().isEmpty()) {
        for (ArticuloProveedorDTO articuloProveedorDTOIte :
            articuloVO.getBaseDTO().getArticuloProveedorCol()) {
          if (articuloProveedorDTOIte.hasDynamicProperty(ArticuloTransient.ALERTA_IMPORTACION)) {
            //						Boolean crearAlerta = Boolean.TRUE;
            ArticuloProveedorNovedadDTO artnov =
                ((ArticuloProveedorNovedadDTO)
                    articuloProveedorDTOIte.getDynamicProperty(
                        ArticuloTransient.ALERTA_IMPORTACION));
            ArticuloProveedorNovedadDTO nov = new ArticuloProveedorNovedadDTO();
            nov.getId().setCodigoCompania(articuloProveedorDTOIte.getId().getCodigoCompania());
            nov.setCodigoArticulo(articuloProveedorDTOIte.getId().getCodigoArticulo());
            nov.setCodigoProveedor(articuloProveedorDTOIte.getId().getCodigoProveedor());
            nov.setEstado(SICConstantes.ESTADO_ACTIVO_NUMERICO);
            nov.setCodigoTipoNovedad(TipoCatalogoArticulo.TIPO_NOVEDAD_IMPORTACION);
            nov.setValorTipoNovedad(artnov.getValorTipoNovedad());
            nov.setUserId(articuloVO.getBaseDTO().getUserId());
            nov.setCodigoEstadoNovedad(TipoCatalogoArticulo.TIPO_ESTADO_NOVEDAD);
            nov.setValorEstadoNovedad(TipoCatalogoArticulo.VALOR_ESTADO_NOVEDAD_PENDIENTE);
            dataGestor.create(nov);

            if (CollectionUtils.isNotEmpty(artnov.getReferencias())) {
              for (ArticuloProveedorNovedadReferenciaDTO anr : artnov.getReferencias()) {
                anr.getId().setCodigoCompania(nov.getId().getCodigoCompania());
                anr.getId().setSecuencialNovedad(nov.getId().getSecuencial());
                anr.getId().setCodigoArticulo(anr.getId().getCodigoArticulo());
                anr.getId().setCodigoProveedor(anr.getId().getCodigoProveedor());
                if (StringUtils.isEmpty(anr.getReferenciaProveedor())) {
                  anr.setReferenciaProveedor("");
                }
                if (StringUtils.isEmpty(anr.getCodigoBarras())) {
                  anr.setCodigoBarras("");
                }
                anr.setEstado(SICConstantes.ESTADO_ACTIVO_NUMERICO);
                anr.setUserId(nov.getUserId());
                dataGestor.create(anr);
              }
            }
            articuloVO.getBaseDTO().removeDynamicProperty(ArticuloTransient.ALERTA_IMPORTACION);
          }
          //					else if(articuloProveedorDTOIte.getTieneNovedades()){
          //						//desde la pantalla del MAX
          //					}
        }
      }
    } catch (Exception e) {
      throw new SICException(
          SICArticuloMessages.getInstancia().getString("mensaje.error.registro.articulo.novedad"),
          e);
    }
  }
  public void actualizarPromocion(GestionPrecioDTO gestionPrecioDTO) {
    dataGestor.update(gestionPrecioDTO);
    if (CollectionUtils.isNotEmpty(gestionPrecioDTO.getArticulosGestionPrecios())) {
      for (ArticuloGestionPrecioDTO gestionPrecioArticuloDTO :
          gestionPrecioDTO.getArticulosGestionPrecios()) {

        this.fijarDatosPorDefecto(
            gestionPrecioDTO.getId().getCodigoGestionPrecio(), gestionPrecioArticuloDTO);

        dataGestor.createOrUpdate(gestionPrecioArticuloDTO);
      }
    }
  }
  public void registrarPromocion(GestionPrecioDTO gestionPrecioDTO) {

    gestionPrecioDTO.setEstado(SICConstantes.ESTADO_ACTIVO_NUMERICO);
    dataGestor.create(gestionPrecioDTO);

    if (CollectionUtils.isNotEmpty(gestionPrecioDTO.getArticulosGestionPrecios())) {
      for (ArticuloGestionPrecioDTO gestionPrecioArticuloDTO :
          gestionPrecioDTO.getArticulosGestionPrecios()) {

        this.fijarDatosPorDefecto(
            gestionPrecioDTO.getId().getCodigoGestionPrecio(), gestionPrecioArticuloDTO);

        dataGestor.create(gestionPrecioArticuloDTO);
      }
    }
  }
 public Collection<GestionPrecioDTO> buscarPromociones() {
   Collection<GestionPrecioDTO> gestionPrecioCol;
   GestionPrecioDTO gestionPrecioDTO = new GestionPrecioDTO();
   CatalogoValorDTO catalogoGestionPrecio = new CatalogoValorDTO();
   catalogoGestionPrecio
       .getId()
       .setCodigoCatalogoTipo(TipoGestionPrecio.CODIGO_TIPO_GESTION_PRECIO);
   catalogoGestionPrecio
       .getId()
       .setCodigoCatalogoValor(TipoGestionPrecio.PROMOCION.getValorTipoGestionPrecio());
   gestionPrecioDTO.setTipoGestionPrecio(catalogoGestionPrecio);
   gestionPrecioCol = dataGestor.findObjects(gestionPrecioDTO);
   return gestionPrecioCol;
 }
 public Collection<ArticuloGestionPrecioDTO> buscarPromocionesArticulo(
     GestionPrecioDTO gestionPrecioDTO) {
   Collection<ArticuloGestionPrecioDTO> gestPrecArtCol;
   ArticuloGestionPrecioDTO gestionPrecioArticuloDTO = new ArticuloGestionPrecioDTO();
   GestionPrecioDTO gestionPrecio = new GestionPrecioDTO();
   gestionPrecio.getId().setCodigoCompania(gestionPrecioDTO.getId().getCodigoCompania());
   gestionPrecio.getId().setCodigoGestionPrecio(gestionPrecioDTO.getId().getCodigoGestionPrecio());
   gestionPrecioArticuloDTO.setGestionPrecio(gestionPrecio);
   ArticuloDTO articuloDTO = new ArticuloDTO();
   articuloDTO.setArticuloTemporadaDTO(new ArticuloTemporadaDTO());
   ArticuloBitacoraCodigoBarrasDTO abcb = new ArticuloBitacoraCodigoBarrasDTO();
   abcb.setEstadoArticuloBitacora(SICConstantes.ESTADO_ACTIVO_NUMERICO);
   articuloDTO.setArtBitCodBarCol(new ArrayList<ArticuloBitacoraCodigoBarrasDTO>());
   articuloDTO.getArtBitCodBarCol().add(abcb);
   gestionPrecioArticuloDTO.setArticulo(articuloDTO);
   gestPrecArtCol = dataGestor.findObjects(gestionPrecioArticuloDTO);
   return gestPrecArtCol;
 }
  public Collection<GestionPrecioDTO> buscarPromocionesCriterio(
      CriteriaSearchParameter<?> criteriaSearchParameter) {

    Collection<GestionPrecioDTO> gestionPrecioCol;
    GestionPrecioDTO gestionPrecioDTO = new GestionPrecioDTO();
    CatalogoValorDTO catalogoGestionPrecio = new CatalogoValorDTO();
    catalogoGestionPrecio
        .getId()
        .setCodigoCatalogoTipo(TipoGestionPrecio.CODIGO_TIPO_GESTION_PRECIO);
    catalogoGestionPrecio
        .getId()
        .setCodigoCatalogoValor(TipoGestionPrecio.PROMOCION.getValorTipoGestionPrecio());
    gestionPrecioDTO.setTipoGestionPrecio(catalogoGestionPrecio);
    if (criteriaSearchParameter != null) {
      gestionPrecioDTO.addCriteriaSearchParameter(criteriaSearchParameter);
    }
    gestionPrecioCol = dataGestor.findObjects(gestionPrecioDTO);
    return gestionPrecioCol;
  }