Jump to content
Fivewin Brasil

Wellington Vieira

Membros
  • Posts

    424
  • Joined

  • Last visited

  • Days Won

    10

Everything posted by Wellington Vieira

  1. Bom dia, Alguém saberia me informar como faço para imprimir jpeg na Report, eu sei que no Print é possível e na classe Report tem jeito ? Na Print function PrintImage( oImage ) local oPrn PRINT oPrn NAME "Imprimindo Imagem" PREVIEW PAGE oPrn:SayImage( 0, 0, oImage ) ENDPAGE ENDPRINT return nil E NA REPORT ?
  2. Rejeição 905: Campos do grupo Fatura não informados - Como resolver? Nº do Artigo: 789 | Avaliação: Não Avaliado | Última atualização: 03/07/2018 09:08:04 Quando for emitida uma NF-e (modelo 55) e informado Grupo de Cobrança (tag: cob - ID: Y01) sem os dados da fatura (nFat, vOrig, vDesc e vLiq), haverá a rejeição pelo motivo 905 - Campos do grupo Fatura não informados. Exceções e Observações Para essa Regra de Validação não há exceções. Sempre que informado o grupo de cobrança é obrigatório o preenchimento dos dados da fatura. Regra de Validação da Sefaz Exemplo Foi emitida uma NF-e com 2 parcelas de duplicatas, cada uma com o valor de R$ 183.92. Porém não foram preenchido os campos referente aos dados da fatura. Nessas condições, a NF-e foi rejeitada pelo motivo 905. Trecho de XML: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <!-- Grupo Dados da cobrança da NF-e --> <cobr> <dup> <nDup>001</nDup> <dVenc>2018-05-16</dVenc> <!-- Valor da duplicata --> <vDup>183.92</vDup> </dup> <dup> <nDup>002</nDup> <dVenc>2018-06-16</dVenc> <!-- Valor da duplicata --> <vDup>183.92</vDup> </dup> </cobr> Como resolver? A resolução é bem simples, utilizando os mesmos dados do exemplo devemos adicionar os campos referente aos dados da fatura. Trecho de XML que deverá ser alterado: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 <!-- Grupo Dados da cobrança da NF-e --> <cobr> <!-- Dados da fatura --> <fat> <!-- Número da fatura --> <nFat>001</nFat> <!-- Valor original da fatura --> <vOrig>367.84</vOrig> <!-- Valor do desconto da fatura --> <vDesc>0.00</vDesc> <!-- Valor líquido da fatura --> <vLiq>367.84</vLiq> </fat> <!-- Dados das duplicatas/parcelas --> <dup> <nDup>001</nDup> <dVenc>2018-05-16</dVenc> <!-- Valor da duplicata --> <vDup>183.92</vDup> </dup> <dup> <nDup>002</nDup> <dVenc>2018-06-16</dVenc> <!-- Valor da duplicata --> <vDup>183.92</vDup> </dup> </cobr>
  3. Boa tarde, Para emissão de NF-e : Quando for emitida uma NF-e (modelo 55) e informado Grupo de Cobrança (tag: cob - ID: Y01) sem os dados da fatura (nFat, vOrig, vDesc e vLiq), haverá a rejeição pelo motivo 905 - Campos do grupo Fatura não informados. Exceções e Observações Para essa Regra de Validação não há exceções. Sempre que informado o grupo de cobrança é obrigatório o preenchimento dos dados da fatura. Regra de Validação da Sefaz Exemplo Foi emitida uma NF-e com 2 parcelas de duplicatas, cada uma com o valor de R$ 183.92. Porém não foram preenchido os campos referente aos dados da fatura. Nessas condições, a NF-e foi rejeitada pelo motivo 905. Trecho de XML: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <!-- Grupo Dados da cobrança da NF-e --> <cobr> <dup> <nDup>001</nDup> <dVenc>2018-05-16</dVenc> <!-- Valor da duplicata --> <vDup>183.92</vDup> </dup> <dup> <nDup>002</nDup> <dVenc>2018-06-16</dVenc> <!-- Valor da duplicata --> <vDup>183.92</vDup> </dup> </cobr> Como resolver? A resolução é bem simples, utilizando os mesmos dados do exemplo devemos adicionar os campos referente aos dados da fatura. Trecho de XML que deverá ser alterado: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 <!-- Grupo Dados da cobrança da NF-e --> <cobr> <!-- Dados da fatura --> <fat> <!-- Número da fatura --> <nFat>001</nFat> <!-- Valor original da fatura --> <vOrig>367.84</vOrig> <!-- Valor do desconto da fatura --> <vDesc>0.00</vDesc> <!-- Valor líquido da fatura --> <vLiq>367.84</vLiq> </fat> <!-- Dados das duplicatas/parcelas --> <dup> <nDup>001</nDup> <dVenc>2018-05-16</dVenc> <!-- Valor da duplicata --> <vDup>183.92</vDup> </dup> <dup> <nDup>002</nDup> <dVenc>2018-06-16</dVenc> <!-- Valor da duplicata --> <vDup>183.92</vDup> </dup> </cobr>
  4. GTIN (tag: cEAN) em branco, campo sem informação. Rejeição: GTIN (cEAN) sem informação [nItem:999] Observação 1: Para produtos que não possuem GTIN, utilizar a informação de "SEM GTIN" Observação 2: Regra de validação aplicável, em homologação a partir de 02/07/2018, e em Produção a partir de 01/12/2018 Informações conforme - Nota Técnica 2017.001 Validação GTIN
  5. Boa tarde, Eu tive a mesma dúvida, e as respostas me ajudaram. Caso queira dar uma olhada. http://fivewin.com.br/index.php?/topic/27528-relacionar-a-tabela-cest-com-a-tabela-ncm/#comment-282455
  6. Bom dia, Trabalho com postgresql e dbf Em casos que preciso de um temporário rápido e simples, eu aindo utilizo o dbf, mas sempre recrio o dbf ao invés de apagar os seus dados..conforme um exemplo abaixo. // No arquivo pricipal.. ( Para dbf..) ( arquivos temporários) request dbfcdx dbsetdriver("dbfcdx") rddsetdefault("dbfcdx") // Arquivo temporário para dbf..... mArq = "Tmp" + left(time(), 2) + substr(time(), 4, 2) + right(time(), 2) + ".dbf" mAli = "Tmp" + left(time(), 2) + substr(time(), 4, 2) + right(time(), 2) + "1" mInd = "Tmp" + left(time(), 2) + substr(time(), 4, 2) + right(time(), 2) + ".cdx" banco := {} aadd(banco,{"bbase1" ,"c",45,0}) // trazaosocial aadd(banco,{"bbase2" ,"n",10,0}) // tnumerodopedido aadd(banco,{"bbase3" ,"d",08,0}) // tdataemissao aadd(banco,{"bbase31","c",10,0}) // nota fiscal aadd(banco,{"bbase4" ,"n",15,2}) // ttotalnotafiscal aadd(banco,{"bcupom","c",10,0}) // cupom fiscal aadd(banco,{"btotcp","n",15,2}) // total do cupom fiscal aadd(banco,{"bbase5" ,"n",01,0}) // ttipovenda aadd(banco,{"bbase6" ,"n",15,2}) // ttotaldopedido aadd(banco,{"bbase7" ,"n",15,0}) // sequencia do pedido aadd(banco,{"bbase8" ,"c",60,0}) // representante aadd(banco,{"bbase9" ,"n",01,0}) // tipo preco aadd(banco,{"bbase10","n",15,2}) // Quantidade de peças aadd(banco,{"ccan" ,"n",01,0}) dbcreate("&mArq", banco) select 99 set exclusive on use &mArq alias &mAli via "dbfcdx" index on dtoc(bbase3) + str(bbase2) tag bater1 to &mInd index on bbase1 + dtoc(bbase3) + str(bbase2) tag bater2 to &mInd index on bbase8 + dtoc(bbase3) + str(bbase2) tag bater3 to &mInd set index to &mInd additive go top //--------------------------------------------------------------- // Efetua todos os procedimentos da aplicação aqui.... //--------------------------------------------------------------- // Só depois de encerrado fecha e apaga o arquivo.... select 99 close all // no meu caso eu fecho todo e qualquer arquivo dbf aberto ( mas pode somente fechar o banco em questão ). delete file &nArq ---------------------------------------------------------------------------------------------------------------------- //No arquivo principal para o postgresql..... fwait(" ...Tentativa acesso 1 ...") // dialog chamada (odlgwait) com a informação " ...Tentativa acesso 1 ..." nn = 0 ns = "S" do while .t. // Pega os dados a partir de um xml gravado na pasta do software. cserver = abrir_xml(cDirXML,"server") // acesso ao postgresql ( ex: 127.0.0.01) cdatabase = abrir_xml(cDirXML,"database") // nome da base ( ex: wsiscom ) cuser = abrir_xml(cDirXML,"user") // nome do usuário ( ex: postgresql) cpass = abrir_xml(cDirXML,"pass") // senha da base de dados ( ex: xxxxxx) // usando a contrib PGSQL do xharbour oserver := tpqserver():new(cserver, cdatabase, cuser, cpass) if oserver:neterr() oserver = "" if nn = 1 odlgwait:end() fwait(" ...Tentativa acesso 2 ...") SysWait(3) elseif nn = 2 odlgwait:end() fwait(" ...Tentativa acesso 3 ...") SysWait(3) elseif nn = 3 odlgwait:end() fwait(" ...Tentativa acesso 4 ...") SysWait(3) elseif nn = 4 odlgwait:end() fwait(" ...Tentativa acesso 5 ...") SysWait(3) elseif nn = 5 ns = "N" exit endif else exit endif ++nn loop enddo if ns = "N" odlgwait:end() ferase(cDirXML) // apaga o arquivo xml, para se criar outro com as informações de acesso ao postgresql corretos.. msgstop("Erro de conexão com a base de dados. Contate o suporte","Atenção") return nil else odlgwait:end() endif
  7. Bom dia Luiz Para qual estado esta utilizando o Uninfe ? O ambiente é o de homologação ou produção ? Qual o tipo de certificado utilizado. A1 ou A3 ? Qual a versão do Uninfe ? Pode postar o xml ? Geralmente, quando ocorre erro semelhante, que já aconteceu comigo na NF-e, quando do processamento do xml pela SEFAZ do caso presente, e há o cancelamento da mesma pela SEFAZ, o erro geralmente, se da pelo retorno da mesma que retorna null. Neste caso o erro esta nos softwares que processam a NF-e pela SEFAZ. Mas para certeza disso se você puder responder acima eu posso fazer um teste aqui. Cordialmente, Wellington Vieira
  8. Boa tarde, Eu utilizo o UNINFE há muitos anos para emissão de NF-e, e estou finalizando a implementação para o uso com a NFC-e.
  9. Obrigado Jorge Andrade e Miragerr . Vou proceder conforme vocês fizeram, acho que é a solução menos penosa para o usuário final. Obrigado.
  10. Boa tarde a todos, Sabendo que a tabela do CEST tem nela o campo NCM, este por sua vez na tabela do CEST o NCM pode ser 23,33,96,811,901,7325,8482 ou seja pode ter de 02 a 06 dígitos e já a tabela do NCM terá quase sempre 08 dígitos, como vocês fariam para que quando o usuário escolher o NCM e automaticamente se este produto for ST, como pesquisaria na tabela de CEST pelo NCM para trazer o CEST específico daquele NCM ? Tabela CEST CEST | NCM | SEGMENTO | ITEM | DESCRIÇÃO | ATIVO Tabela NCM NCM | DESCRICAO | EXTIPI | TABELA | ALIQNAC | ALIQIMP | ATIVO Ligar os campos da tabela CEST->NCM com a tabela NCM->NCM, sabendo que no campo ncm da tabela cest o mesmo pode ter de 02 a 06 dígitos e já na tabela ncm o campo ncm quase sempre terá 08 dígitos. Seria montar um browser com as opções de CEST a partir de 02,03,04,05,06 dígitos do campo ncm da tabela ncm. Obrigado a todos.
  11. bom dia Eu uso com muita frequencia o NOTEPAD++ https://notepad-plus-plus.org/download/v7.5.4.html
  12. Não sei se ajuda, mas geralmente faço assim: GET com presquisa incremental. function realiza_importa_produto_pedido_orcamento() // obs.. // obrushsuspenso,corfrtsaysuspensa,corfdosaysuspensa,corfrtget,corfdoget são definidas no prg principal. define dialog listbox_importa title "Importando de pedidos" from 000,000 to 513,1020 pixel brush obrushsuspenso STYLE nOr( WS_BORDER, WS_POPUP, WS_VISIBLE ) transparent @ 0.1,0.3 to 1.5,72.7 label "" of listbox_importa color corfrtsaysuspensa,corfdosaysuspensa @ 1.7,0.3 to 17.9,72.7 label "" of listbox_importa color corfrtsaysuspensa,corfdosaysuspensa asamplzfornecedores = {""} arecfornecedores = {} atipofornecedores = {"Cliente","Fantasia","Parte do nome","CNPJ","CPF","Cidade","Estado"} mtipofornecedores = "Cliente" mpesquisafornecedores = space(300) asamplzconsentrada = {""} arecconsentrada = {} asamplznaoimportados = {} ncontanaoimportados = 0 @ 009,010 say "IMPORTA OS PRODUTOS A PARTIR DE UM PEDIDO" of listbox_importa font mtahoma color corfrtsaysuspensa,corfdosaysuspensa pixel @ 009,225 say "Cliente:" of listbox_importa font mtahoma size 050,9 color corfrtsaysuspensa,corfdosaysuspensa pixel @ 007,301 get opesquisafornecedores var mpesquisafornecedores picture "@!" font mtahoma size 200,12 of listbox_importa color corfrtget,corfdoget pixel on change enche_pedido_importa() @ 029.5,005 listbox obrzfornecedores fields asamplzfornecedores[obrzfornecedores:nat,1],asamplzfornecedores[obrzfornecedores:nat,2],; asamplzfornecedores[obrzfornecedores:nat,3],asamplzfornecedores[obrzfornecedores:nat,4],asamplzfornecedores[obrzfornecedores:nat,5]; headers "Codigo","Cliente","Cidade","Estado","CNPJ/CPF" FIELDSIZES 060,650,100,050,110; size 500,100; pixel of listbox_importa obrzfornecedores:nLineStyle := 2 obrzfornecedores:lCellStyle = .t. obrzfornecedores:lAutoSkip = .t. obrzfornecedores:SetArray(asamplzfornecedores) obrzfornecedores:bGoTop = { || obrzfornecedores:nat := 1 } obrzfornecedores:bGoBottom = { || obrzfornecedores:nat := Eval( obrzfornecedores:bLogicLen ) } obrzfornecedores:bSkip = { | nWant, nOld | nOld := obrzfornecedores:nat, obrzfornecedores:nat += nWant,; obrzfornecedores:nat := Max( 1, Min( obrzfornecedores:nat, Eval( obrzfornecedores:bLogicLen ) ) ),; obrzfornecedores:nat - nOld } obrzfornecedores:bLogicLen = { || Len( asamplzfornecedores ) } obrzfornecedores:cAlias = "Array" obrzfornecedores:nColAct := 1 obrzfornecedores:lMChange := .F. obrzfornecedores:SetFocus() obrzfornecedores:Refresh() @ 007,250 combobox otipofornecedores var mtipofornecedores items atipofornecedores font mtahoma size 050,90 of listbox_importa color corfrtget,corfdoget pixel //when .f. @ 130,005 listbox obrzconsentrada fields asamplzconsentrada[obrzconsentrada:nat,1],asamplzconsentrada[obrzconsentrada:nat,2],; asamplzconsentrada[obrzconsentrada:nat,3],asamplzconsentrada[obrzconsentrada:nat,4],asamplzconsentrada[obrzconsentrada:nat,5],; asamplzconsentrada[obrzconsentrada:nat,6],asamplzconsentrada[obrzconsentrada:nat,7],; asamplzconsentrada[obrzconsentrada:nat,8],asamplzconsentrada[obrzconsentrada:nat,9]; headers "Pedido","Data","Hora","Valor Bruto","Valor Liquido","Itens","Situacao","Nro da NF","Cliente"; FIELDSIZES 060,060,065,100,100,065,070,150,330; size 500,120; pixel of listbox_importa //obrzconsentrada:nClrPane := {|| iif(asamplzconsentrada[obrzconsentrada:nat,7] = 'Sim',corlstbxnormal,iif(empty(asamplzconsentrada[obrzconsentrada:nat,7]),corlstbxnormal,corlstbxdifere)) } obrzconsentrada:nLineStyle := 2 obrzconsentrada:lCellStyle = .f. obrzconsentrada:lAutoSkip = .t. obrzconsentrada:aJustify := { .F.,.F.,.F.,.T.,.T.,.T.,.F.,.F.,.F.} obrzconsentrada:SetArray(asamplzconsentrada) obrzconsentrada:bGoTop = { || obrzconsentrada:nat := 1 } obrzconsentrada:bGoBottom = { || obrzconsentrada:nat := Eval( obrzconsentrada:bLogicLen ) } obrzconsentrada:bSkip = { | nWant, nOld | nOld := obrzconsentrada:nat, obrzconsentrada:nat += nWant,; obrzconsentrada:nat := Max( 1, Min( obrzconsentrada:nat, Eval( obrzconsentrada:bLogicLen ) ) ),; obrzconsentrada:nat - nOld } obrzconsentrada:bLogicLen = { || Len( asamplzconsentrada ) } obrzconsentrada:cAlias = "Array" obrzconsentrada:nColAct := 1 obrzconsentrada:lMChange := .F. obrzconsentrada:SetFocus() obrzconsentrada:Refresh() listbox_importa:bKeyDown := {|nKey| IIf( nKey == VK_RETURN,listbox_importa:end(),0)} activate dialog listbox_importa center return nil function enche_pedido_importa() if empty(opesquisafornecedores:cText) asamplzfornecedores = {""} arecfornecedores = {} obrzfornecedores:SetArray(asamplzfornecedores) obrzfornecedores:refresh() asamplzconsentrada = {""} arecconsentrada = {} obrzconsentrada:SetArray(asamplzconsentrada) obrzconsentrada:refresh() return .t. endif asamplzfornecedores = {} arecfornecedores = {} cquery := "select * from fncliente where " +; "substr(razaosocial,1"+","+alltrim(str(len(alltrim(opesquisafornecedores:cText))))+")"+; " = " + "'"+alltrim(opesquisafornecedores:cText)+"'"+; " and ativo = 'y'" cquery += " order by razaosocial asc;" oquery := oServer:Query(cquery) DO WHILE ! oquery:Eof() a = oquery:Fieldget(oquery:Fieldpos('seqcliente')) b = oquery:Fieldget(oquery:Fieldpos('razaosocial')) c = oquery:Fieldget(oquery:Fieldpos('cidadeibge')) d = oquery:Fieldget(oquery:Fieldpos('uf')) e = oquery:Fieldget(oquery:Fieldpos('numerodocumentonacional')) if empty(e) e = space(14) else if len(alltrim(e)) >= 14 e = transform(e,"@r 99.999.999/9999-99") else e = transform(e,"@r 999.999.999-99") endif endif if !empty(a) aadd( asamplzfornecedores,{alltrim(str(a)),b,c,d,e} ) aadd( arecfornecedores,a ) endif oquery:Skip() END oquery:destroy() if empty( asamplzfornecedores ) asamplzfornecedores = {""} arecfornecedores = {} endif obrzfornecedores:SetArray(asamplzfornecedores) obrzfornecedores:refresh() asamplzconsentrada = {""} arecconsentrada = {} obrzconsentrada:SetArray(asamplzconsentrada) obrzconsentrada:refresh() return nil
  13. Bom dia, Enquanto desenvolve aplicação própria para NF-e ou NFS-e, você pode utilizar o Uninfe - Projeto nota fiscal eletrônica ( http://www.unimake.com.br/uninfe/ ) Funciona muito bem, e para NFS-e, esta disponibilizado para diversas cidades, se não estiver basta enviar os dados de acesso para a equipe e eles colocam para acesso na cidade. ( É free ) Wellington Vieira
  14. Boa Noite, Oscar Ribeiro, Você poderia postar o código completo por favor? No meu prg, da a mensagem: "Erro de criacao do arquivo de imagem", que esta na funcão: Function AtualizaImagem() Obrigado. Wellington
  15. Boa noite, Não sei se seria isso, mas para (DBF) eu uso assim... ( Funciona..) mArq = "Tmp" + left(time(), 2) + substr(time(), 4, 2) + right(time(), 2) + ".dbf" mAli = "Tmp" + left(time(), 2) + substr(time(), 4, 2) + right(time(), 2) + "1" mInd = "Tmp" + left(time(), 2) + substr(time(), 4, 2) + right(time(), 2) + ".cdx" banco := {} aadd(banco,{"bbase1" ,"c",45,0}) // trazaosocial aadd(banco,{"bbase2" ,"n",10,0}) // tnumerodopedido aadd(banco,{"bbase3" ,"d",08,0}) // tdataemissao aadd(banco,{"bbase31","c",10,0}) // nota fiscal aadd(banco,{"bbase4" ,"n",15,2}) // ttotalnotafiscal aadd(banco,{"bcupom","c",10,0}) // cupom fiscal aadd(banco,{"btotcp","n",15,2}) // total do cupom fiscal aadd(banco,{"bbase5" ,"n",01,0}) // ttipovenda aadd(banco,{"bbase6" ,"n",15,2}) // ttotaldopedido aadd(banco,{"bbase7" ,"n",15,0}) // sequencia do pedido aadd(banco,{"bbase8" ,"c",60,0}) // representante aadd(banco,{"ccan" ,"n",01,0}) dbcreate("&mArq", banco) select 99 set exclusive on use &mArq alias &mAli via "dbfcdx" index on dtoc(bbase3) + str(bbase2) tag bater1 to &mInd index on bbase1 + dtoc(bbase3) + str(bbase2) tag bater2 to &mInd index on bbase8 + dtoc(bbase3) + str(bbase2) tag bater3 to &mInd set index to &mInd additive go top e no final da operação.. close all if file(mArq) delete file &mArq endif if file(mInd) delete file &mInd endif
  16. Olá, Para quem quiser dar uma olhada nas ferramentas free ( embarcadero) FREE TOOLS for Startups - Delphi and C++Builder Starter Edition
  17. A quem possa interessar. Tenho um software desenvolvido na linguagem de programação FIVEWIN e XHARBOUR, com a base de dados POSTGRESQL ( 32/64 bits ). | SISTEMA JÁ INSTALADO E TESTADO EM MAIS DE 15 EMPRESAS COM MAIS DE 03(Três ) anos em diversas modos: TS, Rede, Nuvem. O que o sistema possui: É um sistema MULTI - EMPRESAS ou UMA ÚNICA EMPRESA | Pode ser configurado em um único computador ou REDE (interna) | Pode se colocar a base de dados em um provedor de base de dados e acessar esta base em nuvem a partir do executável instalado em qualquer máquina em qualquer lugar | Pode se trabalhar com TS ( TERMINAL SERVICE ) com windows service. Em manutenção - ( Cadastros ) | Lojas | Usuários e Senhas | Representantes (Vendedores) | Região | Clientes | Fornecedores | Transportadores | Unidade / Medidas | Grupo de produtos | Sub-grupo de produtos | Gêneros de produtos | Produtos | Tipos de movimentos | CTRC | Conta de energia | Conta de telefone | Geração do SPED FISCAL | Geração do Sintegra | Entrada Imediata de produtos | Saída Imediata de produtos | Transformação de produtos | Modelagem de produtos ( Multi-empresas) | Transferência de produtos (Multi-empresas) | entre outos Em movimentação - ( Movimentos ) | Entradas de notas fiscais ( a partir de XML ) | Entrada por pedido | Orçamentos | Emissão de pedidos | Venda expresso | Emissão de notas fiscais de entrada | Manutenção do inventário a qualquer tempo | Administração de compras | Consignado | entre outros... Em Faturamento - Cadastros de UF | CST / CSOSN | NCM | CEST | CFOP | Tipos de operações fiscais a serem usadas no sistema | Emissão de notas fiscais de saída a partir do pedido | Gerenciador de notas fiscais eletrônicas | CONTAS A PAGAR, CONTAS A RECEBER, BANCO, PLANO DE CONTAS, MEIO E FORMA DE PAGAMENTO, MOEDAS, CAIXA, MOVIMENTO DE CAIXA, FLUXO, BOLETO BANCÁRIO, INTEGRAÇÃO COM OUTROS SOFTWRES EMISSÃO DE CUPONS FISCAIS EM DIVERSAS IMPRESSORAS FISCAIS ( DARUMA, BEMATECH, SWEDA, ELGIN ETC..) OBS. ESTÁ EM FASE DE TÉRMINO E TESTES; FORÇA DE VENDAS ( LIGADO AO ERP), E-COMMERCE , NESTE CASO TODA A PARTE ADMINISTRATIVA DO E-COMMERCE É FEITA NO ERP e o e-commerce pode ser comercializado juntamente com o ERP e instalado onde o cliente sugerir ou quiser, lembrando que o mesmo esta em PHP, acessando uma base POSTGRESQL. CONTATO: Wellington Vieira de Oliveira (34)99168-9254 - Uberlândia/MG site: www.wsiscom.com.br | E-mail: wellington_programador@hotmail.com.br | adm@wsiscom.com.br
  18. veja se ajuda também: https://github.com/JoseQuintas/sefazclass
  19. Resolvido, No meu .rc, estava carregando um arquivo tema.lor e configurações para os get's e não se mostrassem como afundados na tela. foi só retirar estas linhas do rc e normalizou... obrigado.
  20. Quando eu passo o mouse sobre o do(s) rádio(s), elas voltam e não somem mais. O meu método colors na minha classe control.prg esta assim: METHOD Colors( hDC ) CLASS TControl DEFAULT ::nClrText := GetTextColor( hDC ),; ::nClrPane := GetBkColor( hDC ),; ::oBrush := TBrush():New( , ::nClrPane ),; ::lTransparent := .f. SetTextColor( hDC, ::nClrText ) SetBkColor( hDC, ::nClrPane ) if ::lTransparent SetBkMode( hDC, 1 ) // TRANSPARENT if IsAppThemed() if ! Empty( ::oBrush:hBitmap ) SetBrushOrgEx( hDC, nBmpWidth( ::oBrush:hBitmap ) - ::nLeft, nBmpHeight( ::oBrush:hBitmap ) - ::nTop ) FillRect( hDC, GetClientRect( ::hWnd ), ::oBrush:hBrush ) else // This condition is added by RAMESH BABU P on Nov. 06, 2006 if Upper( ::ClassName() ) $ "TCHECKBOX;TRADIO" DrawPBack( ::hWnd, hDC ) endif endif endif else if IsAppThemed() .and. Upper( ::ClassName() ) $ "TCHECKBOX;TRADIO" DrawPBack( ::hWnd, hDC ) endif endif return ::oBrush:hBrush Pode ser algo neste método...
  21. Boa tarde Na imagem abaixo a tela com os rádios estão normais. rádio esta normal na imagem de tela Depois de pressionar a tecla ALT a tela fica assim, sumindo a(s) rádio(s). Alguma idéia sobre como resolver isso. Rádio sumiu da imagem Obrigado
  22. Bom dia eu utilizo assim: "@r (99)!9999-9999" que serve tanto para fixo ou celular, que grava em um campo "caracter" na base de dados. exemplo que fica: onde celular (34)99999-9254 Fixo (34) 1234-1234 ( na digitação o cliente da um espaço depois do dd, caso o numero não tenha os 09 dígitos do celular.
  23. Mas no site da SEFAZ/MG. ( http://portalnfe.fazenda.mg.gov.br/ ), está esta informação: - Avisos - Prorrogado para 1º de julho de 2017 a exigência do CEST - Código Especificador da Substituição Tributária. O Convênio ICMS 90/2016, publicado no DOU de terça-feira (13/09), adia a exigência prevista para 1º de outubro de 2016. O CEST é um novo código que deverá ser informado nos itens das notas fiscais que estiverem sujeitos a ST, mesmo que em operações anteriores ou posteriores. Na NT 2015/003, constam as regras de validação que estão sendo implantadas e futuramente irão implicar na rejeição de notas que tiverem valor de ST em algum item e este não tiver o CEST informado. A lista do CEST consta do Anexo da Nota CONFAZ de 20 de outubro/2015.
×
×
  • Create New...