Jump to content
Fivewin Brasil

edutraini

Membros
  • Posts

    1,402
  • Joined

  • Last visited

  • Days Won

    31

Posts posted by edutraini

  1. Bom dia pessoal

    Eu uso o rmail para envio de emails funcionando perfeitamente 

    Um cliente louco tem 5 contas no outlook para envio de emails 

    A pergunta tem como mandar algum parametro dentro do rmail para ele selecionar automaticamente o remetente 

  2. Bom dia Pessoal 

    Um cliente meu esta integrando as vendas pelo shopee e magalu 

    Hoje ele tira nota usando meu sistema na serie 1 da nfe

    O proprio sistema deles fazem a emissao da nota 

    ai vem minha duvida

    Tenho que criar uma serie de nf para cada loja para nao confrontar com a numeracao do meu sistema

    Alguem tem experiencia nisso

    Obrigado

       

     

  3. Bom dia Pessoal

    EU uso essa rotina que pega aqui no forum que pega  os dados do cliente na receita  e alguns computadores esta dando erro e outros vao normal

    Alguem poderia dar uma dica

    Obrigado

     

     

    Error description: Error

    MSXML2.serverxmlhttp.6.0/3

    disp_e_membernotfound: send

     

     

     

    Function GetCNPJ(cOnde,cCnpj,cNome,cEndereco,cNro,cComplemento,cBairro,cCidade,cEstado,cCep,cTelefone)
    Local oServerWS, cUrl, aArray, x1, erro

         if len(alltrim(cCnpj))<14
            msginfo("Somente Pessoa Juridica para consultar os dados na Receita !!!","Atenção ")
           retur(.t.)
         endif
        
      

        cUrl := "https://www.receitaws.com.br/v1/cnpj/"+cCnpj

        Try
            oServerWS := CreateObject( 'MSXML2.ServerXMLHTTP.6.0' )
        Catch erro
            ? erro:Description
            return nil
        End
                                                                            
        oServerWS:open('GET', cUrl, .f.)
        oServerWS:setRequestHeader("Content-Type", "text/xml; charset=utf-8")
        oServerWS:send()

        If oServerWS:Status != 200
           MsgStop(Alltrim(STR(oServerWS:Status))+" - "+oServerWS:StatusText , "Erro")
           Return nil
        Endif

        While oServerWS:readyState != 4
           oServerWS:WaitForResponse(1000)
        End

        x1 := hb_jsondecode( oServerWS:responseText, @aArray )

        If aArray == nil
            MsgStop("Erro ao retornar os dados. Tente novamente.")
            Return nil
        Endif

        If aArray['status'] != 'OK'
           MsgStop(aArray['message'], "Erro")
           Return nil
        Endif
         


        MsgInfo("NOME:  "+Alltrim(aArray['nome'])+CRLF+;
                "FANTASIA:  "+Alltrim(aArray['fantasia'])+CRLF+;
                "ENDEREÇO:  "+Alltrim(aArray['logradouro'])+", "+Alltrim(aArray['numero'])+" "+Alltrim(aArray['complemento'])+CRLF+;
                "BAIRRO:  "+Alltrim(aArray['bairro'])+" CEP: "+Alltrim(aArray['cep'])+CRLF+;
                "CIDADE:  "+Alltrim(aArray['municipio'])+"-"+Alltrim(aArray['uf'])+CRLF+;
                "TELEFONE:  "+Alltrim(aArray['telefone'])+CRLF+CRLF+;
                "NATUREZA JURÍDICA:  "+Alltrim(aArray['natureza_juridica'])+CRLF+;
                "TIPO:  "+Alltrim(aArray['tipo'])+CRLF+;
                "SITUAÇÃO:  "+Alltrim(aArray['situacao'])+CRLF+;
                "DATA SITUAÇÃO:  "+Alltrim(aArray['data_situacao'])+CRLF+;
                "ULTIMA ATUALIZAÇÃO:  "+Alltrim(aArray['ultima_atualizacao']), "CNPJ CONSULTA")

        cNome = alltrim(aArray['nome'])
        cEndereco = alltrim(aArray['logradouro'])
         cNro = Alltrim(aArray['numero']) 
        cNro = StrTran(cNro,".","",1,10)
         cNro = val(cNro)
         cComplemento = alltrim(aArray['complemento'])
        cBairro = alltrim(aArray['bairro'])
         cCep = Alltrim(aArray['cep'])
        cCidade = Alltrim(aArray['municipio'])
         cEstado = Alltrim(aArray['uf'])
         cTelefone  = Alltrim(aArray['telefone'])
         *
         if cOnde = "T"
            cEndereco = cEndereco+" "+alltrim(str(cNro,10))+" "+alltrim(cComplemento)
         Endif
         cNome        = cNome+spac(100-len(cNome))
         cEndereco    = cEndereco+spac(100-len(cEndereco))
         cComplemento = cComplemento+spac(100-len(cComplemento))
         cBairro      = cBairro+spac(100-len(cBairro))
         cCep         = cCep+spac(10-len(cCep))
        cCep        := StrTran(cCep,".","",1,10)
         cCidade      = cCidade+spac(50-len(cCidade))
         cTelefone    = cTelefone+spac(20-len(cTelefone))

    Return nil
     

  4. Bom dia Ladinilson obrigado pela dica achei interessante o unico problema é que o cliente quer receber isso no celular 

    Entao preciso que rotina enviei via whats ou algum aplicativo no celular que fiqeui lendo esse arquivo na nuvens e mostrasse a venda

     

  5. Bom dia, Pessoal 

    Agora que miguei meu sistema para sql meu cliente esta pedindo para que ele receba no celular aviso de vendas 

    Alguem tem alguma sugestão de qual aplicativo usar pode ser via whats ou derrepente um aplicativo no celular 

    Agradeço

     

  6. Edu to fazendo os testes aqui e aparentemente perfeito ele cria uma outra janela e fica la a dialog presa executando 

    eu minimizo essa janela e volta para principal e continuo trabalhando

    qq coisa me chamo zap ai vc entra na minha maquina para ver se é isso que vc quer

     

  7. Boa tarde Emotta e Kapi

    Consegui fazer da seguinte forma. Peguei o exemplo que kapi e adptei 

    Aparentemente funcionando perfeitamente 

    So precisa tomar cuidado com o nome da variavel para nao misturar com outro programa que vai abrir

     

    function tabela_precos()

       local  oBarPreco, oMenuPreco
        private pr_pro1,pr_pro2,pr_pro3,pr_pro4,pr_pro5,pr_reser
       SetGetColorFocus()
       DEFINE WINDOW oWndpreco FROM 19, 82 TO 20, 70 TITLE "Tabela de Precos "
        ACTIVATE WINDOW oWndPreco on init  browse_precos( AS_DIALOG )
        owndpreco:end()

    return nil                                                 

    function browse_precos( nAs)

       local oDlgpre, oCbx, oChk, oFontpre, oBrushpre
       local cVar1, cVar2, cVar3
       local lSwitch1, lSwitch2, lSwitch3
       local cVar     := "Two"
       local aGrad    := {{1, CLR_WHITE, CLR_HBLUE }}


       
        pr_pro1:=spac(20)
       pr_pro2:=spac(2)
       pr_pro3:=0.00                            
       pr_pro4:=0.00
       pr_pro5:=spac(3)
       pr_reser :=0

       cVar1 := cVar2 := Space( 50 )
       lSwitch1 := lSwitch2 := lSwitch3 := .f.
        *
       IF SELECT("prepre") != 0
          prepre->(DbCloseArea())
       ENDIF                                                   
        if m->sql = "S"
          USE DPROPRO0 shared INDEX XPROPRO1,XPROPRO2 ALIAS PREPRE NEW via "Sqlrdd"
        Else
          USE DPROPRO0 INDEX XPROPRO1,XPROPRO2 ALIAS PREPRE NEW 
        Endif
        
        dbsetorder(2)
        *
       DEFINE BRUSH oBrushpre GRADIENT aGrad
       DEFINE FONT oFontpre NAME "Segoe UI" SIZE 0,-12

       DEFINE DIALOG oDlgpre RESOURCE "MDIDLG" FONT oFontpre TITLE "Tabela de Preços" BRUSH oBrushpre

       RELEASE FONT oFontpre
       RELEASE BRUSH oBrushpre

       REDEFINE SAY oSayPre6  VAR prepre->estqatual  PICTURE "999999.999" ID 26 OF oDlgpre FONT FT_ESTQ
       REDEFINE SAY oSayPre7  VAR pr_reser PICTURE "999999.999" ID 27 OF oDlgpre FONT FT_ESTQ
       REDEFINE SAY oSayPre8  VAR prepre->estqatual-pr_reser  PICTURE "999999.999" ID 28 OF oDlgpre FONT FT_ESTQ
       REDEFINE SAY oSayPre9  VAR prepre->estqcpa     PICTURE "999999.999" ID 29 OF oDlgpre FONT FT_ESTQ
       REDEFINE SAY oSayPre10  VAR prepre->Texto MEMO  ID 4004  OF oDlgpre update

        *
       REDEFINE listbox oBrwPre ;
       FIELDS STR(PREPRE->CODPROD,7)+'-'+PREPRE->LOTE,;
                  PREPRE->TIPO,;
                     PREPRE->SECAO,;
                     PREPRE->BITOLA,;
                 PREPRE->ACAB,;
                     TRANS(PREPRE->ESTQATUAL,"999999.999"),;  
                 PREPRE->OBS,;
                 PREPRE->LOCAL,;
                 TRATAMENTO(PREPRE->TRATAMENTO),;
                 STR(PREPRE->COMPRIMENT,6)+" a "+STR(PREPRE->COMPRIMENF,6),;
                     PREPRE->FORNECEDOR,;
                 PREPRE->CORRIDA+' '+PREPRE->SEQCORRIDA ;
                 HEADERS 'Código','Tipo','SE','Bitola','Acab','Estq.Atual','Observacao','Local','Tratamento','Comprimento','Fornecedor','Corrida';
                 SIZES 50,150,30,120,35,60,100,50,50,80,100,80;
                 ALIAS  PREPRE->(Alias()) ID 150 OF  oDlgpre  UPDATE 
       WITH OBJECT oBrwPre
       :aJustify      :={.t.,.f.,.f.,.f.,.f.,.t.,.f.,.f.,.f.,.f.,.f.,.f.,.f.}
       :bChange    := {|| ESTQ_VENDA(prepre->codprod,prepre->lote,@pr_reser),oSaypre6:Refresh(),oSaypre7:Refresh(),oSaypre8:Refresh()}
       :bClrStd       := {|| iif(prepre->marcalista=.t.,{CLR_BLACK,nRGB(255,0,0)},{CLR_BLACK,CLR_WHITE})}

       END                                                                  
       REDEFINE GET oGetPre1  VAR pr_pro1         ID 1020  OF oDlgpre PICTURE "@!"      VALID BuscaPro(pr_pro1,pr_pro2,pr_pro3,pr_pro4,pr_pro5,IF(M->BUSCA_PROD="2","6","1"),oBrwPre)
       REDEFINE COMBOBOX oGetPre2 VAR pr_pro2 ITEMS vn_TPsecao  ID 1015 OF oDlgpre      VALID BuscaPro(pr_pro1,pr_pro2,pr_pro3,pr_pro4,pr_pro5,IF(M->BUSCA_PROD="2","6","1"),oBrwPre)
       REDEFINE GET oGetPre3  VAR pr_pro3         ID 1005 OF oDlgpre PICTURE "9999.99" VALID BuscaPro(pr_pro1,pr_pro2,pr_pro3,pr_pro4,pr_pro5,IF(M->BUSCA_PROD="2","6","1"),oBrwPre)
       REDEFINE GET oGetPre4  VAR pr_pro4         ID 18   OF oDlgpre PICTURE "9999.99" VALID BuscaPro(pr_pro1,pr_pro2,pr_pro3,pr_pro4,pr_pro5,IF(M->BUSCA_PROD="2","6","1"),oBrwPre,xsetfocus(oBrwPre) )


                                                                                  

       REDEFINE SAY ID 1200 OF oDlgpre TRANSPARENT COLOR CLR_WHITE,CLR_WHITE


       REDEFINE BTNBMP PROMPT "FECHAR" ID 2001 OF oDlgpre CENTER 2007 ACTION (oDlgpre:End(),oWndPreco:end())

       REDEFINE BUTTON oPrePre1 ID 4011 OF oDlgpre ACTION(Kardex(prepre->codprod,prepre->lote),oBrwPre:SetFocus()) // Mostra Ficha Kardex

       if nAs == AS_MDICHILD

          ACTIVATE DIALOG oDlgpre AS MDICHILD ;
             ON PAINT oDlgpre:Box( 8,8, 373, 584, CLR_HRED ) ;
             ON RIGHT CLICK MsgInfo( oDlgpre:ClassName(), "oDlgpre:ClassName" )

       elseif nAs == AS_DIALOG

          ACTIVATE DIALOG oDlgpre CENTERED

       endif                                     

                                                                                     
    return oDlgpre

     

  8. Boa tarde, Pessoal

    Tenho um rotina que atualiza alguns dados em um servidor nas nuvens

    Qual tipo de dialog que posso usar para que assim que usuario clicar para atualizar ele possa minimizar e fazer outras tarefas no sistema

    Sem ter que ficar preso ate a rotina terminar

    Obrigado

     

  9. Bom dia, Pessoal

    Gostaria de uma opiniao de vcs

    Migrei meu banco de dados sql para nuvens na locaweb. Até agora funcionando perfeitamente

    Meu maior problema agora é que quando se tira uma nota fiscal o xml fica local na maquina do cliente, impossibilitando que outro usuario use esse xml

    Quando o servidor era local na empresa não tinhamos problema mas agora que o servidor esta nas nuvens preciso achar uma forma de subir tambem todos os documentos para nuvens

    para que todos tenham acesso

    Alguem ja faz esse tipo de serviço

    Obrigado

     

  10. Bom dia, Pessoal

    Ja alguem tempo estou usando sqlrdd+sqlexpress aonde na tabela existe o campo sr_deleted

    na hora de fazer a select uso essa instrucao  'SR_DELETED <>'+ "'T'" para nao filtrar os deletados

    Tudo funcionando perfeitamente 

    Agora estou mudando para sqlrdd+mariadb e essa instrucao nao funciona devido ao campo esta null

    Mudei para usar essa instrucao "COALESCE(sr_deleted,' ') = ' '"  e funcionou perfeitamente tanto em sqlexpress e mariadb

    So queria saber se essa foi a solucao certa 

    Obrigado

     

     

×
×
  • Create New...