Ir para conteúdo
  • Cadastre-se

Rodrigo Cardilo

Membros Pro
  • Total de ítens

    251
  • Registro em

  • Última visita

Posts postados por Rodrigo Cardilo

  1. 2 minutos atrás, Cristofer Rodrigues disse:

    Olá bom dia @Rodrigo Cardilo,

    Como não tem maiores detalhes, ao menos no XML anexo sugiro que você consulte no site: https://portalunico.siscomex.gov.br/classif/#/sumario?perfil=publico

    Onde todos os NCM's estão atualizados, estas informações são frequentemente atualizadas pela Receita Federal.

    Atenciosamente,

    Oi @Cristofer Rodrigues, Eu inclusive tenho uma lista atualizada que pode ser baixada no próprio portal. Meu problema é saber qual item da venda está errado.

    Grato mesmo assim

  2. Bom dia Amigos,

    Estou com um problema na emissão NFC-e em MG que já procurei no fórum e não achei nada semelhante.

    Quanto emito uma nfc-e e em algum produto da venda tem algum NCM incorreto ou inexistente é retornado o seguinte erro:

    778 - Rejeição: Informado NCM inexistente

    O motivo eu sei o problema é descobrir qual item está com esse NCM incorreto. Na NF-e a mensagem retorna o número do item porém não achei nada no retorno da NFC-e.

    Segue anexo o xml do retorno.310003554380957-pro-rec.xml

    Alguém tem alguma rotina para verificar se o NCM é válido ou existe?

    Grato desde já.d

  3. Boa tarde amigos,

    Tenho uma tabela de itens de venda com os seguintes campos:

    CODVENDA
    CODPRODUTO
    CODTAMANHO
    QUANT
    VLRTOTAL

    Preciso montar um select onde eu pegue a quantidade total de tamanhos vendidos 
    e transforme em uma coluna.
    Mais ou menos assim:

    SELECT I.CODPRODUTO, SUM(I.QUANT) AS QTDTOTAL,
    (SELECT SUM(E.QUANT) FROM ITENS E WHERE E.CODPRODUTO = I.CODPRODUTO
    AND E.CODVENDA = I.CODVENDA AND E.CODTAMANHO = 'P') AS P
    FROM ITENS I
    GROUP BY I.CODPRODUTO

     

    Porém quando tento rodar esse select me retorna a mensagem:

    Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).

    Lembrando que tenho que agrupar somente por produto. O que mais eu deveria colocar nesse select?

    Grato desde já
     

  4. Bom dia Amigos,

    Comigo deu o seguinte erro:

    E:\Sistemas\Componentes\Rio\ACBr\Fontes\ACBrBoleto\ACBrBancoBradesco.pas(396) Error: E2003 Undeclared identifier: 'Mensagem'
    E:\Sistemas\Componentes\Rio\ACBr\Fontes\ACBrBoleto\ACBrBoleto.pas(3945) Fatal: F2063 Could not compile used unit 'ACBrBancoBradesco.pas'
     

    Na linha 396 do arquivo ACBrBancoBradesco.pas tem agora um Sacado.Mensagem que não existia antes.

    Acredito que falta implementar mais alguma coisa no tipo TACBRSacado.

     

     

  5. Olá amigos,

    No banco Itaú existe uma particularidade sobre descontos. Acontece que é permitido cadastrar além do desconto normal até uma data específica, cadastrar outros 2 descontos com mais 2 datas.

    Essa informação consta no manual de cobrança CNAB400, nota 16.

    Já percebi que o ACBR não tem essa opção. Gostaria de saber se é possível eu desenvolver e compartilhar. Como faço para mandar os fontes para serem analisados?

    Grato desde já,

    @Juliana Tamizou

  6. @Juliomar Marchetti alterei aqui e deu certo, porém o problema inicial ainda persiste. 

    No meu exemplo acima eu tenho dois apartamentos e quando faço essa consulta entre  12/09/2020 a 18/09/2020 precisaria que só me retornasse o 

    apartamento disponível em todos esses dias, o que não acontece com o 101 já que ele não tem disponibilidade nos dias 12, 13, 14 e 15.

    Mesmo assim obrigado pela ajuda.

  7. Boa tarde,

    Tenho uma aplicação e estou usando Firedac a pouco tempo. Me deparei com um problema que acredito que seja apenas algum parâmetro ou propriedade do mesmo.

    Quando incluo um registro em uma tabela eu termino com o Post e o ApplyUpdates(-1). Até aí tudo certo. Porém quando tento alterar imediatamente o mesmo registro ele me mostra a alteração

    mas quando eu fecho e abro a tabela essa alteração não aparece.

    Existe algum parâmetro ou propriedade que posso utilizar para funcionar?

    Grato desde já,

  8. Em 01/08/2020 at 08:49, Juliomar Marchetti disse:

    Algo assim

    
    WITH RECURSIVE date_range AS (
        SELECT date'2019-01-03' dateval 
        FROM rdb$database
        UNION ALL 
        SELECT dateval + 1
        FROM date_range
        WHERE dateval < date'2019-01-09' 
    )
    SELECT *
    FROM date_range
    LEFT JOIN APTO_DIPOSNIVEL 
      ON date_range.dateval = APTO_DIPOSNIVEL.DATA
    select CODAPTO  from 
    WHERE  
     SITUACAO = 0

     

    Amigo @Juliomar Marchetti

    Entendi sua lógica porém o final do código não consegui entender. Vou colocar abaixo a procedure que tentei gerar usando seu exemplo... Coloquei interrogação no trecho onde eu travei.

    Grato desde já,

     

    CREATE PROCEDURE SP_DATES(
      DTINI DATE,
      DTFIM DATE)
    RETURNS(
      CODAP INTEGER)
    AS
    begin
    FOR WITH RECURSIVE
    DATES (DT) AS (
    SELECT :DTINI 
    FROM RDB$DATABASE
    UNION ALL
    SELECT DT + 1 FROM DATES
    WHERE DT < :DTFIM
    )
    SELECT * FROM DATES
    LEFT JOIN UN10150 R ON DATES.DT = R.DATA
    ???????????????????
    select CODAPTO from  WHERE SITUACAO = 0
    INTO :CODAP DO
    suspend;
    end

     

  9.  

    1 hora atrás, Juliana Tamizou disse:

    Boa tarde.

    Conseguiu resolver?

    Att.

    Oi @Juliana Tamizou ainda não.

    Me ajudaram  com o código abaixo em outro post mas não consegui adaptar à minha tabela.

    WITH RECURSIVE
    DATES (DT) AS (
    SELECT CURRENT_DATE
    FROM RDB$DATABASE
    UNION ALL
    SELECT DT + 1 FROM DATES
    WHERE DT < CURRENT_DATE + 31
    )
    SELECT DT FROM DATES

    Se alguém souber fico agradecido

    Obrigado

  10. Bom dia amigos,

    Preciso fazer uma consulta numa tabela do meu banco de dados com as seguintes características:

    Tabela de apartamentos disponíveis na data (DISPONIVEL = SITUACAO = 0)

    CODAPTO    DATA    SITUACAO  
    101    16/09/2020    0    
    101    17/09/2020    0    
    101    18/09/2020    0    
    101    19/09/2020    0    
    101    20/09/2020    0    
    101    21/09/2020    0    
    101    22/09/2020    0    

    102    11/09/2020    0 
    102    12/09/2020    0 
    102    13/09/2020    0 
    102    14/09/2020    0 
    102    15/09/2020    0 
    102    16/09/2020    0 
    102    17/09/2020    0 
    102    18/09/2020    0 
    102    19/09/2020    0 
    102    20/09/2020    0 

    Preciso de um select para saber quais apartamentos estão disponíveis (SITUACAO = 0) no período de 12/09/2020 a 18/09/2020.

    Já tentei usando between  e outro código porém eles me retornam os aptos 101 e 102 e no caso só estaria disponível o apartamento 102.

    select CODAPTO  from APTO_DIPOSNIVEL
    WHERE  DATA >= '09/12/2020' AND data <= '09/20/2020'
    AND SITUACAO = 0
    select CODAPTO  from UN10150
    WHERE DATA BETWEEN '09/12/2020' AND '09/20/2020'
    AND SITUACAO = 0

    Se alguém puder me ajudar fico agradecido.
     

     

  11. Oi amigos,

    Tenho a seguinte situação. Um servidor Windows Server onde tenho 3 usuários que fazem acesso via RDP.

    Esse acesso pode acontecer ao mesmo tempo. Até aí tudo bem. Porém eu queria bloquear o usuário que está logado a abrir o programa (executável)

    mais de uma vez. A rotina para verificar se o programa está aberto eu já conheço, porém a mesma olha o processo ou aplicativo aberto no windows e não

    somente daquele usuário logado. Alguém conhece alguma solução?

    Segue abaixo a rotina que eu já uso, que funciona muito bem.

    function ListProcess(Executavel: WideString): Boolean; export; stdcall;
    var
      ContinueLoop: BOOL;
      FSnapshotHandle: THandle;
      FProcessEntry32: TProcessEntry32;
    begin
      FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
      FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
      ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
      Result := False;
      while Integer(ContinueLoop) <> 0 do
      begin
        if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
          UpperCase(Executavel)) or (UpperCase(FProcessEntry32.szExeFile) =
          UpperCase(Executavel))) then
        begin
          Result := True;
        end;
        ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
      end;
      CloseHandle(FSnapshotHandle);
    end;

    Grato desde já

  12. Em 15/02/2020 at 10:34, Daniel Simoes disse:

    Não existe..  você precisa informar as coordenadas do início...

    Mas... repare que as fontes são mono-espacejadas... então imprima no início da coluna e use PADC para centralizar o texto

    Vamos supor que caibam até  30 caracteres por Linha... então use 

    padc(Sua_variavel, 30) 

     

    Em alguns tamanhos de fonte deu certo em outros não.. Mas já resolveu meu problema.

    Obrigado pela dica @Daniel Simoes

    • Curtir 2
  13. Caros amigos,

    Estou imprimindo etiquetas pelo ACBRETq como o exemplo abaixo. Existe alguma forma de eu centralizar o texto de acordo com o tamanho dele?

        ImprimirTexto(orNormal, '4', 1, 2, 1, 1, 'SHEILA MEDEIROS CONFECCOES - EIRELI', 0, False);
        ImprimirTexto(orNormal, '4', 1, 1, 3, 1, 'TELEFONE: (32) 3287-1183', 0, False);
        ImprimirTexto(orNormal, '4', 1, 2, 5, 1, 'NOME: CONFECCOES DO ZE LTDA.', 0, False);
        ImprimirTexto(orNormal, '4', 1, 2, 8, 1, 'CIDADE: SAO PAULO-SP', 0, False);
        ImprimirTexto(orNormal, '5', 1, 1, 11, 1, 'NF N: 11220', 0, False);
        ImprimirTexto(orNormal, '5', 1, 1, 14, 1, 'VOLUMES: 3', 0, False);
        ImprimirTexto(orNormal, '4', 1, 2, 18, 1, 'TNT CARGAS E ENCOMENDAS', 0, False);
        ImprimirTexto(orNormal, '3', 2, 1, 18, 30, '337', 0, False);

    a linha do telefone, nf e volumes nunca muda de tamanho mas as demais terão alterações de acordo com o cadastro.

    Alguém já passou por isso e tem alguma luz?

     

    Grato desde já

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.