Class NotasDao

java.lang.Object
systextil.integracao.dao.GenericDao
systextil.integracao.dao.NotasDao

public class NotasDao extends GenericDao
DAO para Notas Fiscais (FLNF_010) - script_sql 257518-004. FLNF_010: COD_EMPRESA, DOCUMENTO, SERIE, DATA_EMISSAO, DATA_LEITURA, EMISSOR, STATUS.
  • Constructor Details

    • NotasDao

      public NotasDao()
  • Method Details

    • listarNotas

      public List<NotaFiscalDTO> listarNotas(br.com.intersys.systextil.connection.AppConnection conn, int codEmpresa, String status) throws Exception
      Throws:
      Exception
    • buscarNomeFornecedor

      public static String buscarNomeFornecedor(br.com.intersys.systextil.connection.AppConnection conn, Nota nota)
    • buscarNota

      public NotaFiscalDTO buscarNota(br.com.intersys.systextil.connection.AppConnection conn, int codEmpresa, int documento, int serie) throws Exception
      Throws:
      Exception
    • atualizarStatus

      public void atualizarStatus(br.com.intersys.systextil.connection.AppConnection conn, int codEmpresa, int documento, int serie, String novoStatus) throws Exception
      Throws:
      Exception
    • verificarPermissaoMultiEmpresa

      public static boolean verificarPermissaoMultiEmpresa(br.com.intersys.systextil.connection.AppConnection conn, int codEmpresa, String usuario) throws Exception
      Verifica se usuario tem permissao para visualizar notas de todas as empresas Consulta a tabela OPER_550 (programa FLNF_F001, subprograma multi_empresa)
      Throws:
      Exception
    • listarNotasComFiltroEmpresa

      public List<NotaFiscalDTO> listarNotasComFiltroEmpresa(br.com.intersys.systextil.connection.AppConnection conn, int codEmpresaLogada, String usuario, String status) throws Exception
      Lista notas fiscais com filtro de empresa baseado em permissao do usuario Se usuario tem permissao multi-empresa, retorna de todas as empresas Caso contrario, filtra apenas pela empresa logada
      Throws:
      Exception
    • registrarEntrada

      public void registrarEntrada(br.com.intersys.systextil.connection.AppConnection conn, int codEmpresa, int documento, int serie, Date dataEntrada, String transportadora, String placaCaminhao, String placaReboque, String motorista, String chaveAcesso, String observacao, Mdi mdi) throws Exception
      Registro de entrada (portaria): grava FLNF_016 e atualiza STATUS em FLNF_010/FLNF_015. FLNF_016: COD_EMPRESA, CHAVE_ACESSO, DOCUMENTO, SERIE, DATA_ENTRADA, TRANSPORTADORA, PLACA_CAMINHAO, PLACA_REBOQUE, MOTORISTA, OBSERVACAO, USUARIO. CHAVE_ACESSO passa a receber a chave real da NF-e, quando informada.
      Throws:
      Exception
    • calcularProximoStatusFluxoPublic

      public String calcularProximoStatusFluxoPublic(br.com.intersys.systextil.connection.AppConnection conn, int codEmpresa, int documento, int serie) throws Exception
      Calcula o proximo STATUS do fluxo (etapas) com base: - no fornecedor emissor da FLNF_010 (coluna EMISSOR) - no FORNECEDOR do roteiro em FLNF_020 - nas etapas vinculadas em FLNF_025/FLNF_030 (usa a descricao da primeira etapa). Regra: - tenta achar roteiro com FORNECEDOR = emissor; - se nao encontrar, pega roteiro com FORNECEDOR nula/vazia; - se nao achar roteiro ou etapa, retorna "CONFERENCIA".
      Throws:
      Exception
    • obterProximoStatusAposAtual

      public String obterProximoStatusAposAtual(br.com.intersys.systextil.connection.AppConnection conn, int codEmpresa, int documento, int serie, String statusAtual) throws Exception
      Obtem o proximo STATUS do fluxo apos o status atual (ex.: apos CONFERENCIA -> proxima etapa do roteiro). Usado ao concluir conferencia: avanca para a proxima etapa do fluxo com base no fornecedor da nota (FLNF_010.EMISSOR) e no roteiro cadastrado em FLNF_020 (fornecedor) e etapas em FLNF_025/FLNF_030.
      Throws:
      Exception
    • listarItensPendentesFlnf015

      public List<InconsistenciaPendenteDTO> listarItensPendentesFlnf015(br.com.intersys.systextil.connection.AppConnection conn, int codEmpresa, int documento, int serie) throws Exception
      Lista itens da FLNF_015 com STATUS = 'pendente' ou 'desligado'. Usa somente FLNF_015 para garantir consistencia com o estado atual da nota. Usado pelo Kanban para exibir os problemas pendentes (apenas visualizacao). FLNF_015: COD_EMPRESA, DOCUMENTO, SERIE, EMISSOR, VALIDACAO, STATUS, USUARIO, DATA_VLD (script 257518-005).
      Throws:
      Exception
    • listarItensPorChaveAcesso

      public List<ItemConferenciaDTO> listarItensPorChaveAcesso(br.com.intersys.systextil.connection.AppConnection conn, int codEmpresa, String chaveAcesso) throws Exception
      Lista itens da nota fiscal (I_OBRF_015) filtrados por chave de acesso. Usado no modal de conferencia de itens.
      Throws:
      Exception
    • listarItensPorDocumentoSerie

      public List<ItemConferenciaDTO> listarItensPorDocumentoSerie(br.com.intersys.systextil.connection.AppConnection conn, int codEmpresa, int documento, int serie) throws Exception
      Lista itens da nota fiscal (I_OBRF_015) filtrados por documento e serie. Usado no modal de conferencia de itens (fallback quando nao ha chave de acesso).
      Throws:
      Exception
    • buscarDescricaoEtapa

      public String buscarDescricaoEtapa(br.com.intersys.systextil.connection.AppConnection conn, int codEmpresa, int codEtapa)
    • registrarEntradaLote

      public RegistroEntradaLoteDTO.RegistroLoteResponse registrarEntradaLote(br.com.intersys.systextil.connection.AppConnection conn, List<RegistroEntradaLoteDTO.NotaInfo> notas, Date dataEntrada, String transportadora, String placaCaminhao, String placaReboque, String motorista, String observacao, String usuario, Mdi mdi) throws Exception
      Registra entrada de multiplas notas fiscais em lote Retorna lista de sucessos e falhas
      Throws:
      Exception
    • listarEtapasPermitidas

      public List<EtapaDTO> listarEtapasPermitidas(br.com.intersys.systextil.connection.AppConnection conn, int codEmpresa, int documento, int serie, String usuario) throws Exception
      Lista etapas permitidas para o usuario com base em FLNF_040/045. Retorna apenas etapas que o usuario tem permissao (liberador) e que fazem parte do fluxo do fornecedor da nota.
      Throws:
      Exception
    • moverNota

      public void moverNota(br.com.intersys.systextil.connection.AppConnection conn, int codEmpresa, int documento, int serie, int codEtapa, String usuario, String origem, Mdi mdi) throws Exception
      Move nota para etapa especifica (se usuario tem permissao). Registra log em FLNF_100.
      Parameters:
      origem - Nome da tela/aba de origem (ex: "Monitor", "Portaria", "Conferencia")
      Throws:
      Exception
    • moverNotasLote

      public MovimentacaoLoteResponse moverNotasLote(br.com.intersys.systextil.connection.AppConnection conn, int codEmpresa, List<MovimentacaoLoteDTO.NotaInfo> notas, int codEtapa, String usuario, String origem, Mdi mdi) throws Exception
      Move multiplas notas em lote.
      Parameters:
      origem - Nome da tela/aba de origem (ex: "Monitor", "Kanban")
      Throws:
      Exception