terça-feira, 3 de junho de 2014

MySQL - update when case

Exemplo prático de When Case no UPDATE, quando a data de hoje é menor que a data do final da assinatura (pagamento antecipado) o programa assume a data do final do pagamento + um ano:

UPDATE assinaturas set
inicio_assinatura= IF(inicio_assinatura='0000-00-00', CURDATE(), inicio_assinatura),
fim_assinatura=
   CASE
    WHEN CURDATE( ) <  `fim_assinatura` THEN DATE_ADD( fim_assinatura, INTERVAL 365 DAY )
    ELSE DATE_ADD( CURDATE( ) , INTERVAL 365 DAY )
   END
where id_da_empresa='$id_empresa' and id_do_contato='$id_contato'


terça-feira, 13 de maio de 2014

PHP mascara - PHP mask

Usar para qualquer tipo de mascara que deseje exemplos abaixo com data, cep, cnpj e cpf
Use with any kind of mask you wish like zip code and dates. 

<?php

function mask($val, $mask)
{
 $maskared = '';
 $k = 0;
 for($i = 0; $i<=strlen($mask)-1; $i++)
 {
   if($mask[$i] == '#')
   {
      if(isset($val[$k]))
       $maskared .= $val[$k++];
   }
   else
 {
     if(isset($mask[$i]))
     $maskared .= $mask[$i];
     }
 }
 return $maskared;
}

?>
Forma de Adicionar a máscara
<?php
$cnpj = "11222333000199";
$cpf = "00100200300";
$cep = "08665110";
$data = "10102010";

echo mask($cnpj,'##.###.###/####-##');
echo mask($cpf,'###.###.###-##');
echo mask($cep,'#####-###');
echo mask($data,'##/##/####');

?>
Retirado de http://blog.clares.com.br/php-mascara-cnpj-cpf-data-e-qualquer-outra-coisa/

sábado, 1 de fevereiro de 2014

WordPress WP-Pool - Editor pode ver pesquisa

Thank's in advance to http://familypress.net/2009/02/27/wp-polls-for-non-admins/


Em wp-pool.php dentro da função 'add_submenu_page' adicone o seguinte:

// começo
global $current_user;

    if (!current_user_can('administrator')) {
        add_submenu_page('wp-polls/polls-manager.php', __('Manage Polls', 'wp-polls'), __('Manage Polls', 'wp-polls'), 'manage_polls', 'wp-polls/polls-manager.php');
        add_submenu_page('wp-polls/polls-manager.php', __('Add Poll', 'wp-polls'), __('Add Poll', 'wp-polls'), 'manage_polls', 'wp-polls/polls-add.php');
}
    else {
add_submenu_page('wp-polls/polls-manager.php', __('Manage Polls', 'wp-polls'), __('Manage Polls', 'wp-polls'), 'manage_polls', 'wp-polls/polls-manager.php');
add_submenu_page('wp-polls/polls-manager.php', __('Add Poll', 'wp-polls'), __('Add Poll', 'wp-polls'), 'manage_polls', 'wp-polls/polls-add.php');
add_submenu_page('wp-polls/polls-manager.php', __('Poll Options', 'wp-polls'), __('Poll Options', 'wp-polls'), 'manage_polls', 'wp-polls/polls-options.php');
add_submenu_page('wp-polls/polls-manager.php', __('Poll Templates', 'wp-polls'), __('Poll Templates', 'wp-polls'), 'manage_polls', 'wp-polls/polls-templates.php');
add_submenu_page('wp-polls/polls-manager.php', __('Uninstall WP-Polls', 'wp-polls'), __('Uninstall WP-Polls', 'wp-polls'), 'manage_polls', 'wp-polls/polls-uninstall.php');

  }
//final

E depois no final da pagina em:

// Set 'manage_polls' Capabilities To Administrator
$role = get_role('editor');



quarta-feira, 6 de novembro de 2013

PHP arredondar dizima centavos - round fractional cents

Para dividir um valor em X vezes nem sempre dá um numero inteiro, sendo assim criei uma fórmula para calcular o valor e cobrar a diferença (a maior ou a menor) na ultima parcela:

Exemplo prático 1:

Total: 4128
Parcelas=7
Valor quebrado antes do programa= 589,7142857142

Depois de rodar o programa teremos:

Parcela 1:  589.71
Parcela 2:  589.71
Parcela 3:  589.71
Parcela 4:  589.71
Parcela 5:  589.71
Parcela 6:  589.71
Parcela 7:  589.74

Ou seja na parcela 7 há 0,03 centavos a mais para fechar o valor quebrado (589,7142857142).

Exemplo prático 2:

Total: 56000
Parcelas= 12
Valor quebrado antes do programa= 4666,66666666666667

Depois de rodar o programa teremos:

Parcela 1:   4666.67
Parcela 2:   4666.67
Parcela 3:   4666.67
Parcela 4:   4666.67
Parcela 5:   4666.67
Parcela 6:   4666.67
Parcela 7:   4666.67
Parcela 8:   4666.67
Parcela 9:   4666.67
Parcela 10:  4666.67
Parcela 11: 4666.67
Parcela 12: 4666.63

Ou seja na parcela 12 há 0,04 centavos a menos para fechar o valor quebrado (4666,66666666666667).

<?php

$total_pagamento="4128.00";
$parcelas="7";
$valor_quebrado=round(($total_pagamento/$parcelas),2);
$valor_quebrado_total=round($total_pagamento-($valor_quebrado*$parcelas),2);

for ($i=1;$i<=$parcelas;$i++) {
            if ($i==$parcelas) $valor_quebrado=$valor_quebrado+$valor_quebrado_total;
            echo "Parcelamento $i:  $valor_quebrado<br/>";
}

?>

quarta-feira, 9 de outubro de 2013

Gmail - não enviar para caixa de SPAM

Para que isso não ocorra tem um procedimento simples no Gmail:
  1. Entre no Webmail/Gmail;
  2. Clique no icone roda de engrenagem (fica a direita) e escolha configurações;
  3. No menu horizontal clique em Filtros;
  4. Clique em Criar novo filtro;
  5. Vai abrir uma janela, no campo de: coloque e-mail *@empresa_que_quer_liberar.com.br (o asterisco significa todos os emails dessa empresa);
  6. Clique em Criar Filtro com esta pesquisa;
  7. Na proxima tela clique em nunca enviar para SPAM;
  8. Clique em Criar Filtro.

segunda-feira, 19 de agosto de 2013

MySQL pesquisar as mesmas colunas em tabelas diferentes sem duplicar

A idéia aki é puxar valores de uma mesma coluna que está em duas tabelas diferentes sem duplicar.
Por exemplo: eu tenho SANTOS na TABELA1 e na TABELA2  e tenho MANAUS na TABELA1 e tenho SUAPE na TABELA2.

O resultado será:
  • Manaus
  • Santos
  • Suape

<select name='Porto' id='Porto'>
<?php
  $sql='';$err='';$linha='';
  $sql=mysql_query("
(select DISTINCT PORTO from TABELA1 where O_Q_VC_QUISER='REPOSTA Q PRECISAR')
                    UNION
 (select DISTINCT PORTO from TABELA2 where O_Q_VC_QUISER='REPOSTA Q PRECISAR')
                    order by PORTO // notem q o order by fica fora do select
                    ");
 
  $err=mysql_error();
  if ($err) echo "<option>$err</option>";
  while ($linha=mysql_fetch_array($sql)):
    $porto=$linha['PORTO'];
    echo "<option value='$porto'>$porto</option>\n";
  endwhile;
?>
</select>

quarta-feira, 1 de maio de 2013

Webmail e Google Docs

Tutorial do Google Docs:

http://www.youtube.com/watch?v=zcCyxJG0o6g

Na video-aula acima de apenas 7 minutos vcs aprendem a criar e manter os documentos na "nuvem", ensina até o recurso para verificar as revisões que foram feitas no arquivo original.

O Google Docs faz pesquisa tanto pelo nome do documento quanto pelo texto dentro do documento.

Tutorial Webmail

Criar Marcadores

Adicionar Cores aos marcadores:

Criar uma regra para sempre que receber um e-mail ele apareça com o Marcador/Cor escolhido:
  • Clicar no botão de Engrenagem no canto superior Direito da tela;
  • Escolher Configurações;
  • No menu horizontal escolher Filtros;
  • Clicar em Criar Filtro;
  • No primeiro campo coloque *@email da empresa -> exemplo: *@laweb.com.br (o asterisco é muito importante) apenas uma dica se o e-mail for gmail ou hotmail o melhor é colocar assim luis@gmail.com(pq o asterisco indica TODOS e vc não qr todos os emails @gmail com a mesma cor/marcador)
  • Clique em Criar filtro com esta pesquisa;
  • Na próxima tela marque -> Aplicar o marcador (e escolha o marcador), marque também Nunca enviar para SPAM;
  • Marque Também aplicar o filtro a XX correspondentes...
  • Clique em criar filtro.

terça-feira, 5 de fevereiro de 2013

Gmail selecionar/apagar e-mails por tamanho ou por data - Gmail select/delete many e-mails by size or by date



Faça a pesquisa por datas:

after:2005/01/01 before:2010/12/31 

pesquisa por tamanho (maior que 2 MBs e de um ano atrás):

larger:2m older_than:1y

Depois basta clicar no selecionar todas e no ícone da lixeira.



terça-feira, 11 de dezembro de 2012

Ubuntu instalando OCI8 para rodar no PHP

 Prerequisites:
sudo apt-get install build-essential
sudo apt-get install php5-dev php-pear libaio1

Then download the Oracle Instant Client from Oracle (you will need to create an account).
You will need the Basic (58MB) and SDK (600K) -- baixe as versões ZIP. The Basic Lite version does not work.
Vc precisará saber se seu servidor é AMD ou Intel e se é 32 ou 64 bits, clique aqui para conferir os comandos
crie a pasta lib se ela não existir
cd /usr/local/lib
sudo unzip <location-of-instant-client-basic>
sudo unzip <location-of-instant-client-sdk>
cd instantclient_11_2
sudo ln -s libclntsh.so.11.1 libclntsh.so
renomeie a pasta  instantclient_11_2
mv instantclient_11_2 instantclient

The symbolic link is needed during the compilation step later.
sudo pecl install oci8

You will be prompted for the location of the library:
instantclient,/usr/local/lib/instantclient

no meu caso eu apenas dei [enter] para ele localizar automaticamente, da maneira acima não funcionou.

PHP5 Instructions


You should now create a new oci8.ini file which will be included when loading php.ini (Editing the php.ini is discouraged):
nano /etc/php5/conf.d/oci8.ini

this will create a blank file; add to this file:
extension=oci8.so


Confira a instalação rodando phpinfo() no servidor.

segunda-feira, 10 de dezembro de 2012

MySQL select a partir de


No select abaixo teremos emails a partir da letra G

SELECT email, id
FROM `TABELA`
WHERE LOWER( LEFT( email, 1 ) ) NOT
IN (

'a', 'b', 'c', 'd', 'e', 'f'
)
ORDER BY email


Aki apenas letras:

SELECT `empresa`
FROM `TABELA`
WHERE empresa NOT
REGEXP '^[0-9]+$'


E aki apenas numeros:

SELECT * FROM table WHERE columnName REGEXP '^[0-9]+$'

Linux bash file returns unexpected token `$'do\r''

open file in vi edit with   vi filename.sh   command; type in vi  :set ff=unix  command; save file with  :wq It will save the file with unix...