Vencimentos - Gratificações

Ana Dias
03/06/2024 15:13:28

VALOR POR DEFEITO


- Apenas quando manda imprimir

- O comando xbase é um programa

- Também atualiza na alteração


select pr


_date=year(pr.DATA)

**msg(astr(_date))


select prre




TEXT to strSQL noshow textmerge


select 

rem, sum(ere) 'soma'

from pr 

inner join prre on pr.prstamp=prre.prstamp

where pr.no='<>' and prre.rem='Gratificações' and pr.prstamp<>'<>' and year(pr.DATA)=<<_date>>

group by rem


ENDTEXT


**msg(strSQL)

u_sqlexec(strSQL,"crsinto")


_valorre=crsinto.soma


_soma=0


select prre


_existe=.F.


goto top

scan


if prre.cr=116

_existe=.T.

_soma=_soma+prre.ere


**msg("_soma")

**msg(astr(_soma))

endif

endscan


_valorf=0

_valorf=_valorre+_soma


_valgrat=_soma-4100


_TTNSUJ=_valgrat*200.482


Goto top

scan



if _valorf>4100 and prre.cr=116


**msg("VALOR")


Replace prre.ERE with abs(_valgrat)

Replace prre.ERVU with abs(_valgrat)

Replace prre.EREIRS with 0

Replace pr.TTSUJ  with 0  

Replace pr.TTSUJCX with 0

Replace prre.ESUJSS with 0

Replace prre.SUJSS with 0

Replace pr.ETTNSUJ with abs(_valgrat)

Replace pr.TTNSUJ with (_TTNSUJ)

endif


endscan


if _valorf>4100

**msg("_valorf")

**msg(astr(_valorf))


_valorere=(4100-_valorf)


**msg(astr(_valorere))



select prre

goto bottom

SPR.pageframe1.page1.inserir1.click()



Replace prre.cr with 117

Replace prre.rem with 'Gratificações Suj. IRS'



Replace prre.ERE with abs(_valorere)

Replace prre.RE with abs(_valorere)*200.482


Replace prre.EREIRS with abs(_valorere)

Replace prre.REIRS with abs(_valorere)*200.482


Replace prre.ESUJSS with abs(_valorere)

Replace prre.SUJSS with abs(_valorere)*200.482


Replace prre.ERVU with abs(_valorere)

Replace prre.RVU with abs(_valorere)*200.482


Replace pr.ETTSUJ with abs(_valorere)

Replace pr.TTSUJ with abs(_valorere)*200.482


Replace pr.ETTSUJCX with abs(_valorere)

Replace pr.TTSUJCX with abs(_valorere)*200.482


Replace prre. crend with 'A82'

Replace prre.rqtt with 1


Do prproc

do prprocf



endif



**msg(strSQL)

return pr.status


Vencimentos - Função para atualizar Linhas dos Vencimentos

Ana Dias
03/06/2024 13:02:46

Do prproc
do prprocf




Impressão de Recibos de Vencimento de seguida para único PDF

Ana Dias
21/05/2024 17:22:30

LINK DA PHC

https://community.phcsoftware.com/ass/paview.aspx?stamp=96d78d15896.db5%3a.eg25.d85

OU


Como workaround enviamos em anexo um IDU que permite imprimir vários recibos de vencimento para um único pdf.

Nota: Este idu deverá ser criado a partir das opções diversas do ecrã de recibos de vencimento:

"Mapas e Impressões/Mapas Desenhados"

Uma vez criado o IDU nesta zona, para efetuar a impressão basta também aceder às opções diversas do ecrã de recibos de vencimento:

Mapas e Impressões/Impressão de Mapas Desenhados e usar o botão para selecionar o formato PDF.

Alterações de versões do NODE - npm rebuild

Rafael Rodrigues
10/05/2024 14:35:29

Ao utilizar o NVM para alterar versões do node, se se instalar uma versão nova deve-se correr o npm rebuild na pasta do projeto, por exemplo para voltar a correr o sqlite vai-se ao cmd navega-se até à pasta dist onde estão as bases de dados do sqlite e executa-se esse comando.

Alterar a versão do java sem ter de alterar pastas

Rafael Rodrigues
08/04/2024 12:15:26

Seguir o que diz neste tutorial:

https://www.happycoders.eu/java/how-to-switch-multiple-java-versions-windows/ 

SQL - Quebrar linha no último espaço detetado na string

Rafael Rodrigues
27/03/2024 15:02:31

LEFT(descricao, LEN(descricao) - CHARINDEX(' ', REVERSE(SUBSTRING(descricao, 1, LEN(descricao) - 1)))) + 
CHAR(13) + CHAR(10) + 
SUBSTRING(descricao, LEN(descricao) - CHARINDEX(' ', REVERSE(SUBSTRING(descricao, 1, LEN(descricao)))) + 2, LEN(descricao)) 

Mapeamento de colunas para o ERP

Rafael Rodrigues
29/02/2024 13:19:33

Na Tabela (EIM) colocar no:

  • segundo campo como o nome da tabela que se pretende mapear no ERP;
  • quarto campo do documento destino;
  • quinto campo como a origem da integração.

Na Tabela (EIC) colocar no:

  • segundo campo como o nome da tabela que se pretende mapear no ERP;
  • terceiro campo a coluna da tabela a ser mapeada do ERP;
  • quarto campo o valor na tabela de origem da cloud junto com o campo da própria tabela;
  • sexto campo o id correspondente da tabela EIM.

Criação do SITEMAP e ficheiro robots.txt

João Cancelo
29/02/2024 11:06:48

SITEMAP Páginas

Para criação de um SITEMAP para o site, é necessário criar um query com todas as páginas que queremos que apareçam e  que não apareçam.

Exemplo query:

select strUrl 
from [WEBSITE_PAGES] 
where WEBSITE_PAGES.bitActive=1 and WEBSITE_PAGES.idPageHead>0 
and strUrl not like '%confirmation%' 
and strUrl not like '%checkout%' 
and strUrl not like '%index_bk%'
and strUrl not like '%novaPass%'

Neste exemplo estão a ser excluídas a página da confirmação, checkout...

Para que esta query seja executada é necessário coloca-la no parâmetro "strSitemapPagesQuery"

Para que esta query seja executada, é necessário "chamar" o url -> https://enderecaodosite/sitemap

Para verificar o SITEMAP, é ir ao endereço https://enderecaodosite/sitemap.xml

NOTA: é necessário limpar a cache do site para que este novo parâmetro seja aplicado. 


SITEMAP Produtos

Para os SITEMAP dos produtos, existem dois parâmetros que podem ser alterados:

  • strUrlNameProduct  -> Defenir qual a página do produto (se não estiver preenchido, é colocado "product")
  • strSitemapProductsQuery -> Defenir a query para os produtos 
    • Tem dois campos de SQL obrigatórios: strReference e strProductURL


      Robots.txt

      Os robots.txt é um ficheiro que tem que estar inserido na raiz do servidor da página web. Este pode ser inserido por FTP.

      Exemplo

      User-Agent: *
      Disallow: /cart
      Disallow: /checkout
      Disallow: /myorder
      Disallow: /profile
      Disallow: /new-
      Sitemap: https://enderecaodosite/sitemap.xml

      Neste exemplo, está a indicar qual o sitemap do site, sendo este o obrigatório e o User-agent.
      O "Disallow" são todas as páginas que são bloqueadas a sua indexação ao google.  

      Tabela Contabilidade para ver se o ano está aberto ou não

      Ana Dias
      23/02/2024 17:29:42

      select * from anospc where fechado = XX

      Tecla para importar ficheiro excel para Painel

      Anabela Pereira
      23/02/2024 16:07:16





      Set Talk Off

      Local lcXLBook As String, lnSQLHand As Integer, ;

      lcSQLCmd As String, lnSuccess As Integer, ;

      lcConnstr As String

      Clear

      **Define a extensão do ficheiro a ler, aqui pode colocar a opção "XLSX" de Excel2007

      lcXLBook = Getfile("xls")

      lcConnstr = [Driver=] + ;

      [{Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};] + ;

      [DBQ=] + lcXLBook

      If !File( lcXLBook )

      ? [Ficheiro Excel não encontrado]

      Return .F.

      Endif

      lnSQLHand = Sqlstringconnect( lcConnstr )

      ** Define o nome da folha onde estão os dados

      lcSQLCmd = [Select * FROM "Folha1$"]

      lnSuccess = SQLExec( lnSQLHand, lcSQLCmd, [xlResults] )

      **Verifica se a leitura foi bem sucedida ou se falhou

      ? [SQL Cmd Success:], Iif( lnSuccess > 0, 'OK!', 'Falhou' )


      If lnSuccess < 0

      msg("Entra")

      Local Array laErr[1]

      Aerror( laErr )

      ? laErr(3)

      SQLDisconnect( lnSQLHand )

      Return .F.

      Endif


      **Posiciona-se no cursor das linhas da grelha



      **Posiciona-se no cursor com os dados lidos da folha de Excel

      Select xlResults

      m.totrec=Reccount("xlResults")

      =regua(0,m.totrec,"Registos a importar... ")

      Scan

      **Régua para mostrar o progresso da tarefa

      =regua(1,Recno(),"Processando a registo Nº"+astr(xlResults.ref))

      **Funcionalidade que permite abortar a importação dos registos

      If aborta()

      regua(2)

      mensagem("INTERROMPIDO ....")

      fecha("xlResults")

      Return .F.

      Endif


      Select xlResults

      **Introduz linhas

      Select crsteste

      Append Blank

      **Preenche o campo "ref"

      Replace crsteste.ref With Iif(Vartype(xlResults.ref)='C',Alltrim(xlResults.ref),astr(xlResults.ref))


      Replace crsteste.qtt With Val(astr(xlResults.qtt))



      Replace crsteste.dataobra With Nvl((xlResults.Data),'')

      Replace crsteste.obrano With Val(astr(xlResults.FS))



      Endscan


      **Liberta a ligação ao ficheiro de Excel

      SQLDisconnect( lnSQLHand )



      regua(2)

      **Programa terminado

      ******************************************************


      BOACTREF quando tem referencias alternativas

      Anabela Pereira
      23/02/2024 12:57:47

      A Função BOACTREF no modo normal quando existe referencias alternativas e a principal não tem stock sugere a escolha de outra referencia que pode levar a que se movimente o artigo errado.

      Para ultrapassar essa sugestão teremos de ativar o parâmetro de modo rápido e já não faz essa validação.

      Do BOACTREF With 'BORAPIDO',.T.,'OKPRECOS','bi'

      Criação de aviso para encomendas não pagas

      João Cancelo
      23/02/2024 11:04:56

      Para criar avisos para encomendas que não se encontram pagas, é necessários preencher os seguintes dados

      Parametros:

      • intFORCEPAYidEmailFirstEmail
      • intFORCEPAYminutesFirstEmail
      • intFORCEPAYminutesSecondEmail

      Query Templates:

      • EMAIL_FORCEPAY

      Envio de emails de carrinho abandonado

      Tiago Araújo
      23/02/2024 10:51:23

      Para envio de e-mails de carrinho abandonado devemos preencher os seguintes parâmetros:

      1.idEmailAbandonedCart (id do e-mail a sair)

      2. intNumberOfNotificationsAbandonedCart (nº de vezes que vai enviar o e-mail)

      3. intTimeMinutesRemindAbandonedCart (intervalo de tempo entre o envio de e-mail)

       

      Após configuração dos parâmetros criar uma linha no queryTemplates e queryjobs conforme imagem abaixo.


      6 boas práticas para imagens de produtos para lojas on-line

      Sebastião Montes
      23/02/2024 10:35:38

      Uma boa imagem de produto desempenha um papel crucial nas vendas on-line, pois refletem a primeira impressão que os clientes têm dos artigos no momento de seleção e compra. Portanto, é essencial seguir boas práticas para garantir que as imagens dos produtos sejam atrativas, informativas e capazes de influenciar positivamente a decisão de compra dos consumidores. Deste modo, seguem algumas especificidades importantes a considerar:


      1. Tamanhos e resolução

      As imagens devem ter uma resolução adequada para garantir que os detalhes do produto sejam claramente visíveis. Recomenda-se que as imagens tenham uma resolução mínima de 1000x1000 pixels e um tamanho máximo de 200Kb para garantir uma boa qualidade e performance de visualização em diferentes dispositivos. Evite ampliar imagens com baixa resolução, com a agravante que pode resultar em distorções e perda de qualidade.


      2. Formatos de Arquivo

      Dê preferência a formatos de arquivo de imagem com suporte universal, como JPEG, PNG ou WEBP. O JPEG é ideal para fotografias de alta qualidade, o PNG é mais adequado para imagens com áreas transparentes, tal como logótipos. O formato WEBP, apesar de ser um formato de arquivo recente e que pode não funcionar em motores de pesquisa menos conhecidos, reúne as duas vantagens anteriormente faladas, especialmente no facto de tamanho do arquivo ser drasticamente mais baixo. 


      3. Fundo e contexto

      As imagens dos produtos devem ser capturadas em um fundo limpo, neutro ou sem fundo para destacar o produto em si. Evite fundos distrativos que possam desviar a atenção do produto, a menos que seja uma imagem do produto integrado em ambiente ou em utilização. Se possível, forneça múltiplas visualizações do produto, incluindo imagens de diferentes ângulos e contextos para fornecer uma visão abrangente.


      4. Iluminação e qualidade visual

      A iluminação adequada é fundamental para capturar imagens nítidas e bem iluminadas dos produtos. Evite sombras indesejadas ou reflexos que possam prejudicar os detalhes do produto. Considere também investir em equipamentos de iluminação adequados ou fotografar os produtos em ambientes bem iluminados para obter os melhores resultados.


      5. Consistência visual

      Mantenha um padrão consistente para todas as imagens dos produtos da sua loja on-line, como por exemplo, a proporção, o estilo e a qualidade visual das imagens. Uma aparência consistente ajuda a criar uma experiência de compra coesa e profissional para os clientes, transmitindo confiança na marca e nos produtos oferecidos.


      6. Otimização da velocidade de carregamento

      Certifique-se de que as imagens dos produtos sejam otimizadas para um carregamento rápido, especialmente em dispositivos móveis. Reduza o tamanho do arquivo sem comprometer a qualidade visual, utilizando técnicas de compressão de imagem. Isso irá ajudar a garantir uma experiência do utilizador suave e evita a frustração dos clientes devido a tempos de carregamento prolongados.



      Em resumo, seguir essas boas práticas para imagens de produtos em lojas on-line pode fazer a diferença entre atrair e converter clientes ou perdê-los para a sua concorrência. Investir tempo e recursos na criação de imagens de alta qualidade e bem otimizadas é fundamental para o sucesso das vendas on-line.


      Acertar Relógio para Comunicação das Guias de Transporte

      Ana Dias
      23/02/2024 10:10:02

      Integração de encomendas com a API

      João Cancelo
      22/02/2024 11:51:25

      Para integração das encomendas efetuadas, são necessários colocar os dois seguintes parametros a "true"
      bitCallShipmentSentERP
      bitUsesV2ShippingMethods


      SQL Single quotes (Pelica '')

      Rafael Rodrigues
      20/02/2024 14:11:49

      As Pelica podem ser utilizadas em strings basta utilizar duas de seguida, p.e.:

      Select 'I''m' 'exemplo'

      //OUTPUT: I'm 

      Nota: Não deve ter espaços entre as pelicas seguidas;
      (valido desde, pelo menos, SQL Server 2008)

      Integrar documentos para NDOS específicos

      Rafael Rodrigues
      20/02/2024 14:11:33

      No website_documents_header, colocar no campo strDestinationDoc o dossier interno de destino (número - ndos ou equivalente) para o qual queira que o documento seja integrado.

      Parâmetro para adição de produtos ao facebook

      Tiago Araújo
      19/02/2024 14:34:29

      Adicionar query com a estrutura abaixo nos parâmetros do website.

      Parâmetro: strQueryFacebookStore ou strQueryFacebookStore2 ou strQueryFacebookStore3

       

      SELECT distinct 

      'An5566732' id

      , strReference

      ,'Sapato Criança' title

      ,'Sapato Criança' description

      ,(case when 1>0 then 'in stock' else 'available for order' end) 'availability'

      ,'new' condition      

      , replace(cast( '24.90'  as nvarchar),',','.') + 'EUR' 'price'

      ,replace(cast( '19.92' as nvarchar),',','.') + 'EUR'  'sale_price'

      ,'https://testaria.pt/product/crianca-sapato-an5566732' link

      ,'https://testaria.pt/testaria/images/AN5566732_BRA_1.jpg' image_link

      ,'webincode' brand

      ,'187'  google_product_category --Ver tabela de categorias

      ,'' gtin

      ,'Calçado' 'custom_label_0'

      ,'Sapato' 'custom_label_1'

      ,'Promoções' 'custom_label_2'

       

      Para gerar o ficheiro csv aceder ao link: http://testaria.pt/pixelfacebook

      Para ver o fichero: https:// testaria.pt/pixelfile.csv 


      Pode-se criar um query jobs para gerar o ficheiro automaticamente de x em x horas


      Fazer scroll em uma página web até determinada posição sem escrever no URL.

      Tiago Araújo
      15/02/2024 10:16:19

      Fazer scroll em uma página web até determinada posição sem escrever no URL.

      Alternativa as anchor "/#footer"

      $([document.documentElement, document.body]).animate({
      scrollTop: $("#footer").offset().top
      }, 2000);

      Inserir novo registo de servidor e criar grupos de registo

      Rafael Rodrigues
      12/02/2024 11:56:09

      No SQL SERVER, na janela geralmente situada do lado superior esquerdo do ecrã (Registered Servers), abrir Database Engine > Local Server Groups, clicar no botão direito do rato em e clicar em new Server Group e dar o nome e descrição (opcional) ao grupo.
      Feito isso, clicar no botão direito em cima do grupo criado e clicar em . Na janela que se abrirá, inseri a instância do servidor que quer adicionar, selecionar o modo de autenticação, normalmente é e caso seja esse o selecionado, deverá colocar o utilizador e password.


      Opcional:

      Em baixo onde diz <Registered server name> coloque o nome da instancia que quer que apareça no Grupo e a descrição.
      Ainda no mesmo ecrã, após configurar a instância, pode ir ao menu e selecionar a base de dados padrão que quer ao fazer clicando no botão direito do rato na instância criada. Para isso onde diz (por padrão está ) selecione e selecione a base de dados que pretende como padrão.


      Espaços em branco da tag para imagens responsivas

      Rafael Rodrigues
      31/01/2024 17:14:24

      Ao utilizar a tag para imagens responsivas, utilizem o REPLACE('*nome_da_imagem*',' ','%20') assim evita que seja mandatório não colocar espaços em branco a separar as palavras.

      Fonte: 
      https://forum.bootstrapstudio.io/t/issue-on-srcset-w-space-in-file-name/5937/2 

      Pesquisar nº da linha VSC/devOps Chrome

      Rafael Rodrigues
      31/01/2024 17:09:32

      CTRL+G no VSCode e no devOps do chrome abre input para pesquisar por linha

      Consulta de logs de transportadoras

      Tiago Araújo
      18/01/2024 10:40:03

      Tabela para consultar os pedidos efetuados à transportadora: INWEB_SHIPPING_LOG

      inWeb: Esconder menus e objetos

      Tiago Fernandes
      12/01/2024 02:39:25

      Identificar o ID do objeto na página e de seguida adicionar o registo à tabela BACKOFFICEWEB_PERMISSIONS

      inSales : Visualizar stock em número

      Tiago Fernandes
      11/01/2024 12:01:58

      INSALES_PARAMETERS.bitShowStockInformation

      Sincronização de Imagens no inSales

      Tiago Fernandes
      11/01/2024 11:38:25

      Sincronização de imagens devem ser preenchidos os seguintes parâmetros:
      SYNKION_PARAMETERS.strLocalImageFolder - Caminho associado ao local das imagens por exemplo: C:\FOTOS


      Criar um QueryTemplate em que:
      strDescription=IMAGENS
      strTableFrom=IMAGENS_INSALES
      strDirection=ERP-ECOMMERCE


      De seguida criar o QueriesJobs associado ao mesmo.

      Selecionar um separador em FOX

      Tiago Fernandes
      08/01/2024 12:16:55

      Este código vai selecionar a página com o ID nº 4


      PDU_5OP11ABAY.pageFrame1.ActivePage=4

      Ativar Taras inLogys

      Tiago Fernandes
      24/10/2022 17:09:01

      Para ativar a funcionalidade de taras no inLogys, devem adicionar o parâmetro bitUsesTaras na tabela GENERAL_PARAMETERS, indicando true ou false.

      Configurar HIPAY

      Tiago Fernandes
      19/04/2022 18:33:41

      Para ativar o meio de pagamento Hipay, deve aceder ao backoffice inWeb e configurar os seguintes parâmetros:

      1. hipay_websiteId - Id de Website
      2. hipay_wsLogin - User Webservice
      3. hipay_wsPassword - Password Webservice


      Esta informação podem ser encontradas na área reservada de cliente https://hipay.com/



      Pesquisa Imagens numa pasta a partir do SQL

      Ana Dias
      29/03/2022 11:11:43

      EXEMPLO:

      SELECT * FROM OPENROWSET(BULK N'C:\Imagem.gif', SINGLE_BLOB) AS Imagem

      Remover acentos sql

      Ana Dias
      04/03/2022 16:27:29

      fmin.nome COLLATE SQL_Latin1_General_Cp1251_CS_AS AS [string]

      Selecionar palavra até primeiro espaço

      Ana Dias
      04/03/2022 15:21:45

      SUBSTRING(UsuNome, 1, CHARINDEX(' ', UsuNome, 1) - 1)

      Envio Declaração IRS por Email

      Ana Dias
      04/03/2022 11:07:38

      Vencimentos - Mapas Habituais > impressão de fichas de seguida > imprimir > enviar por email.