
bnobre
Membros Pro-
Total de ítens
1.502 -
Registro em
-
Última visita
-
Days Won
4
Tudo que bnobre postou
-
Olá a todos, Tenho uma dúvida que pode parecer trivial para muitos, mas na falta de certeza resolvi perguntar. Nas NTs, quando se explica as tags, algumas colunas TAMANHO vem com valores como por exemplo: Observem a IdEstrangeiro, o tamanho da mesma é 5-20. O que significa esse "5-20"? Desde já agradeço a atenção de todos
-
Rapaz, entao vai demorar mesmo pois eu também não sei trabalhar com classes e nem sei o que é ORM. Vou tentar criar esses valores de ID temporariamente com inteiro negativos (pois evito conflitos com os IDs em uso que são positivos) e depois associar aos mesmos os valores corretos gerados pelo banco ao CONFIRMAR.
-
A grande complexidade que eu vejo é associar corretamente os registros das subtelas às telas antes de enviar tudo ao banco, pois mesmo em memória se eu não especificar um ID relacionando eles não irá ocorrer a separação, ex: Adição 1 da D1 do Item1, Adição 2 da DI2 do Item2... Ao meu ver terei que criar valores de IDs temporários para que essa associação entre as telas aconteça, com isso as Adições serão associadas às DIs que serão associadas aos Itens da NFe corretamente. Aí na hora de confirmar jogo tudo no banco substituindo os IDs pelo valores gerados pelo mesmo... Estou certo?
-
Boas dicas... Você disse já ter feito algo similar jogando tudo na memória e enviando ao fim no banco, o problema é que depois de confirmado o cadastro da NFe o usuário AINDA pode modificar ela posteriormente, tornando mais complexo o tratamento, pois ele poderia adicionar/editar/excluir DIs posteriormente, mas creio que a saída está nas suas sugestões. Ainda tem parte desse código que usou ou algum exemplo para eu me basear? Desde já agradeço a ajuda
-
Olá EMBarbosa, tudo bom meu amigo? Vamos lá, infelizmente mesmo se existir essa mudança de comportamento no componente irá surgir um problema MUITO maior, que também me impede de forçar o post na tabela master antes, vou explicar com maior riqueza de detalhes o que ocorre, pois com certeza alguém já passou por isso e poderá compartilhar a solução: Eu possuo um emissor de NFe e o preenchimento dos campos principais referentes a tela principal ficam na TBL_NFE, tais como serie, nnf, emitente, demi, etc. Porém é óbvio que precisaria de outras tabelas se relacionando com a TBL_NFE, tais como TBL_NFE_ITENS(onde ficam detalhes dos produtos da nota), TBL_NFE_REFERENCIADAS (onde armazeno os detalhes de notas referenciadas a essa NFe), dentre outras, cada uma com sua própria tela de preenchimento de campos que é chamada pela tela principal do emissor. Vou simular a utilização do sistema: 1° - O usuário na tela principal clica em incluir, a TBL_NFE fica em modo Insert e o mesmo começa a preencher os dados da referida tela/tabela, tais como série, número da nota, emitente, etc. Observe que não houve até então um Post através do botão CONFIRMAR da tela, portanto o PK dessa tabela (id_nfe) está 0, pois é um campo AutoIncrement do MySQL. 2° - O usuário através da tela principal chama a subtela para preenchimento dos produtos que alimentarão a TBL_NFE_ITENS que está associada a TBL_NFE através da FK id_nfe presente em ambas. Como ainda não sei se o usuário vai CONFIRMAR ou irá cancelar a inserção dessa NFe, abro a TBL_NFE_ITENS em CachedUpdates = True para armazenar os dados em memória e só Commitar se o botão CONFIRMAR na tela principal for clicado. Aqui já tem uma situação "atípica" pois observe que carrego a TBL_NFE_ITENS com a FK tendo valor 0, pois é o valor da PK da TBL_NFE no momento, como não existe nenhuma NFe com essa ID = 0 ele exibe corretamente só os itens que estou cadastrando na hora, mas na hora de clicar no botão CONFIRMAR da tela principal preciso gravar primeiro (conforme você sugeriu) a TBL_NFE, descobrir o valor gerado na PK da mesma (pois é AutoIncrement) e alimentar os itens da TBL_NFE_ITENS com esse valor correto (pois até o momento não esqueça que está 0). Faço isso com todas as telas/tabelas vinculadas a TBL_NFE que preciso há anos e deu certo até o momento. Só que agora... 3º - Agora tenho a TBL_NFE_ITENS_DI que tem a sua própria tela para preenchimento de seus campos assim como as tabelas vinculadas a TBL_NFE, só que ela é DIFERENTE pois é vinculada a TBL_NFE_ITENS que por sua vez é vinculada a TBL_NFE. Se eu usar a metodologia descrita na segunda parte irei ter problemas, pois vamos supor que eu queira ver as DIs do PRODUTO1, vou clicar em Editar o PRODUTO1 na tela principal, irá me abrir a tela de preenchimento desse produto que possui como PK (id_nfe_itens) o valor 0 (pois TAMBÉM está em Insert) da TBL_NFE_ITENS, depois vou clicar em DIs que vai me abrir a tela de preenchimento das DIs desse produto da TBL_NFE_ITENS_DI com a FK (id_nfe_itens) = 0, após preencher todos as DIs irei fechar a tela de DI, depois fechar a tela de produtos e voltar a tela principal de emissão da NFe. Aí ao tentar abrir a tela de preenchimento de outro produto, depois a tela de DIs desse outro produto irá aparecer todas as DIs do primeiro, pois todos os produtos no momento estão com a PK (id_nfe_itens) = 0. E como pode constatar eu não posso simplesmente gravar a tabela PAI antes, pois quero possibilitar ao meu cliente a possibilidade de CANCELAR toda a inserção. E isso ainda piora com a outra subtela de "Adições de DI", que é uma subtela da DI, que por sua vez é de Itens que é da tela principal. Espero que eu tenha conseguido passar todo o cenário, pois é meio complexo. Eu nunca precisei ter mais de uma subtela/subtabela, então o procedimento realizado no segundo passo sempre funcionou comigo durante anos, mas agora que precisei acrescentar essa parte de DIs em meu emissor fui gerar essa nova hierarquia de subtela e me deparei com essa problemática. Como vocês agem nesse caso?
-
Olá a todos, Utilizo Delphi 2010 + Zeos para conexão com MySQL no seguinte esquema de Banco de dados: //Tabela de Declarações de Importação tbl_nfe_itens_di: id_nfe_itens_di - [integer, not null, auto_increment, pk], ndi [varchar(12)], ddi [date] //Tabela de Adições de Declarações de Importação tbl_nfe_itens_di_adi: id_nfe_itens_di_adi - [integer, not null, auto_increment, pk], id_nfe_itens_di - [integer, not null, fk], nadi [integer] No Delphi, utilizo a propriedade MasterSource do componente para tbl_nfe_itens_di_adi do tipo TZQuery para ligá-lo à tbl_nfe_itens_di, funciona perfeitamente para TUDO, exceto quando se dá o seguinte quadro: preciso inserir uma Adição quando a Declaração de Importação ainda não tem um ID (tbl_nfe_itens_di está com um registro novo também, portanto ID ainda está nulo), o campo tbl_nfe_itens_di_adi.id_nfe_itens_di é preenchido com 0. Quando dou o POST na tabela tbl_nfe_itens_di, ele primeiro dá POST nos datasets DETALHES (no caso, tbl_nfe_itens_di_adi), gerando uma exceção do banco de dados, porque a Adição está tentando ser salva antes da Declaração de Importação, com o campo que identifica a Declaração de Importação(id_nfe_itens_di) nulo. Como os amigos contornam isso? Desde já agradeço a atenção de todos
-
tag idEstrangeiro é realmente obrigatória?
um tópico no fórum postou bnobre Legislação Fiscal e Tributária
Olá a todos, Um cliente meu precisou emitir uma nota de importação e como meu emissor NFe ainda não está preparado para tal, usei o emissor gratuito do Sebrae para resolver temporariamente o problema. Agora implementando as devidas tags em meu emissor observei que a NFe gerada no gratuito foi autorizada com a tag idEstrangeira sem ser preenchida, conforme imagem abaixo: A questão é que de acordo com a Nota Técnica 2013/005 (final da página 11), consta na coluna Ocor. da tag idEstrangeira o valor 1-1, que até então eu entendo que significa campo obrigatório, estou errado? Caso eu esteja certo, como a Fazenda autorizou essa NFe sem o preenchimento da tag idEstrangeiro? Desde já agradeço a atenção de todos -
Olá a todos, Entrou em vigor hoje a NT 2019.001 versão 1.30 e na mesma surgem novas validações relacionadas ao Benefício Fiscal. Ao menos aqui no RJ, produtos com CST 40 são obrigados a informar o código de Benefício Fiscal, Valor do ICMS Desonerado e Motivo do Desoneramento. Até aí tudo bem, pois meu aplicativo contempla tal configuração, o problema é que como sempre o contador não sabe o que fazer. Apenas um cliente meu usa esse CST em seus produtos e seu contador está "perdido". Então fiz o seguinte: 1º - De acordo com http://www.fazenda.rj.gov.br/sefaz/faces/oracle/webcenter/portalapp/pages/navigation-renderer.jspx?_afrLoop=22750049148221306&datasource=UCMServer%23dDocName%3AWCC342616&_adf.ctrl-state=bnatvtk0h_42 o cálculo para descobrir o Valor do ICMS Desonerado é Valor do ICMS desonerado = (Preço na Nota Fiscal / (1 - Alíquota)) * Alíquota. Estou usando essa fórmula com a alíquota de 20%, pois de acordo com o contador ele ACHA que é 20% pois seria a alíquota padrão do RJ. O que vocês estão fazendo para calcular o Valor do ICMS Desonerado? 2º - No Motivo do Desoneramento coloquei 9 que é Outros, mas também têm o 90 que é Solicitado pelo Fisco. Qual motivo vocês estão usando? 3 - A tabela dos códigos de Benefício Fiscal está no link http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=u3vMflqEe6w=. A mesma possui inúmeros códigos e o contador disse que varia de produto para produto. Qual código vocês estão usando? Desde já agradeço a atenção de todos.
-
DBNavigator com Setas do Teclado
bnobre replied to bnobre's tópico in Object Pascal - Delphi & Lazarus
Olá EMBarbosa, Tudo bom? Na verdade é um Form comum, adicionado pelo menu File -> New -> Form Delphi. -
Fechar Formulário no Evento FormShow
bnobre replied to bnobre's tópico in Object Pascal - Delphi & Lazarus
Obrigado pelo dica, funcionou perfeitamente meu amigo. Só que rra ser sincero eu não estava gostando da maneira que eu fiz essa rotina, tinha muito código e não estava elegante esse fechamento do formulário no FormShow do mesmo. Fiz uma mudança simples na rotina e acho que ficou bem melhor, agora o código está pequeno e eu não preciso mais fechar o form no evento FormShow do mesmo. Segue abaixo: procedure PDV1Click; begin if not(CaixaAberto) Then frm_abrircaixa.ShowModal; if CaixaAberto Then frm_pdv.ShowModal; end; Agora eu chamo o frm_abrircaixa antes de chamar o frm_pdv, se e só se o caixa estiver fechado. Caso o caixa já esteja aberto eu pulo essa etapa e chamo o frm_pdv direto. -
Fechar Formulário no Evento FormShow
um tópico no fórum postou bnobre Object Pascal - Delphi & Lazarus
Olá a todos, Atualmente em meu sistema na tela principal existe um menu com a opção "Abrir Caixa" e a opção "Abrir PDV", se o caixa não estiver aberto ao tentar carregar a tela do PDV o mesmo não consegue e recebe o alerta que "O Caixa encontra-se fechado", então o usuário vai na opção "Abrir Caixa" e realiza o procedimento em questão. Agora quero mudar o passo a passo, quero eliminar esse menu de "Abrir Caixa" e deixar somente "Abrir PDV", unindo as 2 ações. Quando o caixa estiver aberto estará tudo OK, pois o sistema irá chamar através de um ShowModal o frm_pdv para o operador trabalhar, mas quando o caixa estiver fechado a minha idéia é a seguinte: 1- Clicou em "Abrir PDV" 2 - Chamou o frm_pdv.ShowModal 3 - No Evento FormShow do frm_pdv verifica se o caixa está fechado, se sim chamar o frm_abrircaixa.ShowModal 4 - Ao fechar o frm_abrircaixa volta para o FormShow do frm_pdv e verifica se o caixa realmente foi aberto, se não, fecha o frm_pdv da tela principal O problema é que não funciona o frm_pdv.Close no FormShow do próprio(frm_pdv). Alguém poderia me ajudar nessa? -
DBNavigator com Setas do Teclado
bnobre replied to bnobre's tópico in Object Pascal - Delphi & Lazarus
Oi Daniel, tudo bom? Obrigado pela pronta resposta e me perdoe pela demora, mas foram "dias cheios". Na verdade eu até já tinha tentado fazer essa sua sugestão, o problema é que no formulário tenho diversos outros objetos (edits, memos, pagecontrols, etc) e quando vou clicar nas teclas direcionais (esquerda e direita) do teclado, o foco simplesmente muda entre os objetos e o evento FormKeyPress não é acionado. -
Olá a todos... Gostaria de utilizar as teclas direcionais (esquerda e direita) do teclado para acionar os botões Prior e Next do DBNavigator em meu formulário... É possível? Desde já agradeço a atenção de todos
-
Olá a todos, recentemente recebi o seguinte informe em meu e-mail: A minha grande dúvida é: aqui na empresa possuímos um emissor de NF-e/NFC-e, essa lei irá gerar novas NTs e consequentemente teremos que mudar algo internamente em nossos emissores? Desde já agradeço a atenção de todos
-
Gerar Código de Barras igual Etiqueta de Balança
bnobre replied to datilas's tópico in Dúvidas Gerais sobre o ACBr
Poxa, que pena que eu não conheci esse ACBrInStore antes... Eu faço esse desmembramento manualmente com um código que criei. Porque "InStore"??? -
Gerar Código de Barras igual Etiqueta de Balança
bnobre replied to datilas's tópico in Dúvidas Gerais sobre o ACBr
Caro amigo, grato pelo esforço em me responder... Mas surgiram duas dúvidas: 1 - Posso simplesmente adicionar o 1 como DV sem problemas? Pois pelo que observei a respeito desse código que postou é que o mesmo serve para encontrar o DV correto. 2 - O que é o ACBrInStore1? -
Redução de cancelamento NFCe para 30 minutos
bnobre replied to bnobre's tópico in Legislação Fiscal e Tributária
Não, se fosse isso a versão 1.00 da NT 2019.001 publicada hoje mesmo, por exemplo, só teria textos grifados em AMARELO, mas existem textos grifados em VERDE também. Agora fiquei curioso... Porque VERDE e porque AMARELO? -
Redução de cancelamento NFCe para 30 minutos
bnobre replied to bnobre's tópico in Legislação Fiscal e Tributária
Caro BigWings... Tudo bom???? Rapaz, eu tinha lido essa NT e inclusive me preparado para a mesma, só que olha o título dela: Cancelamento por Substituição da NFCe. Com isso me levou a crer, erroneamente, que o texto versava apenas sobre o Cancelamento por Substituição, mas conforme você evidenciou realmente um pequeno trecho onde é comentado a redução do cancelamento normal. Isso me gerou outra grande dúvida... As vezes partes das NTs são grifadas na cor VERDE e/ou na cor AMARELA, essa em questão só tem textos grifados na cor AMARELA, e foi aí que eu "me dei mal", pois eu só dava importância até então ao que era grifado em VERDE. Qual a diferença e importância dos textos grifados em VERDE e dos grifados em AMARELO? -
Redução de cancelamento NFCe para 30 minutos
um tópico no fórum postou bnobre Legislação Fiscal e Tributária
Olá a todos, Sou do RJ e todos os textos que acho na internet sobre a redução do prazo de cancelamento da NFCe de 24 horas para 30 minutos são de 2018, como o abaixo por exemplo: http://www.coad.com.br/home/noticias-detalhe/90573/rj-determina-que-o-cancelamento-da-nfc-e-deve-ocorrer-no-prazo-de-30-minutos A grande questão é que até ontem todos os meus clientes estavam conseguindo cancelar normalmente em até 24 horas, somente hoje passaram a não conseguir... A redução para 30 minutos já entrou em vigor aqui no RJ? Alguém tem um comunicado oficial sobre o tema? Desde já agradeço a atenção de todos -
kkkkkkkk... sem problemas meu amigo, é sempre melhor conversarmos por aqui pois todos ficam cientes dos procedimentos e podem opinar para melhoria, mas observei que o tópico fugiu um pouco do assunto, por isso sugeri o ZapZap... Mas sobre a sua dúvida, a resposta é bem simples, a SEFAZ nem vai saber desse "P", você não enviou e muito menos gerou contingência, pra ela tanto faz. De repente tu só vai ter que explicar para um possível fiscal que visite o seu cliente essa sua lógica do "P" e demonstrar pra ele porque tu faz assim e que não há fraude alguma nisso.