Quanto vale um cliente?

Minha sogra e a OI. Uma história de frustração, desrespeito e contrangimento.

Preciso expor um fato que ocorreu em uma loja OI, no Plaza Shopping de Niterói-RJ, fato este que trouxe indignação, incômodo, constrangimento, transtorno e perda de tempo para mim, minha esposa, meus dois filhos, que estávamos acompanhando minha sogra, com o propósito de tão-somente contratar para ela um plano chamado Oi Conta Total Light. O fato ocorrido se deu em duas tentativas, uma no dia 24/10 (sábado) e a última hoje, 28/10 (quarta-feira), ambas sem sucesso.

Minha sogra chama-se XXXXX, cliente da OI no telefone fixo XXXX, RG XXXX e CPF XXXX

No ano de 1982 ela tirou um CPF provisório. Era o antigo CIC. Posteriormente ela deveria pegar seu CIC definitivo, mas nunca fez isto. Entretanto, desde então, há 27 anos, ela utiliza este documento, com a informação do número de CIC/CPF, para tudo:

1) Fazer crediários;
2) Abrir conta bancária;
3) Retirar sua aposentadoria do INSS e (obviamente, porque não?);
4) Contratar plano de operadora de telefonia (antiga telemar – vide anexo).

Insatisfeita com a outra operadora e desejando um plano que atendesse às suas necessidades, eu e minha família dispomos de tempo para ajudar minha sogra nesta questão, a princípio, muito simples. Uma operadora quer vender, e ela (uma cliente antiga para linha fixa) queria contratar um novo plano.

Em um intervalo de 40 minutos, entramos eu e minha sogra na referida loja OI, olhamos o folder com os planos disponíveis, escolhemos o melhor plano para ela, escolhemos o aparelho novo que ela tanto queria e aguardamos nossa vez para sermos atendidos por uma vendedora. Esta estranhou que existisse um documento (CIC) tão antigo, mas nem por isso interrompeu o atendimento. Ao fim do cadastro, o gerente desta loja vetou a venda!!! Para a minha surpresa e, logicamente, para ela, uma senhora de 61 anos, a qual sofre dos nervos e toma medicamentos diariamente, o “gerente-que-recebe-ordens-de-cima” não reconheceu o CIC provisório dela como um documento válido!!!! Sem acreditar, nossa única opção foi sairmos da loja, boquiabertos. Não houve qualquer negociação, nenhuma compreensão, um mínimo de consideração e bom senso por parte da OI.

Minha sogra tem usado este documento por longos 27 anos, sem passar qualquer constrangimento. E agora a OI se julga no direito de não reconhecer o velho CIC dela como um documento válido, apesar de ela JÁ SER UMA CLIENTE! Mesmo tendo que engolir essa atitude grotesta e descabida da OI, ela se dirigiu para uma agência dos Correios mais próxima (Fonseca – Niterói) para solicitar uma 2ª via do seu agora CPF. Bom, agora ela tem um PROTOCOLO, emitido pelos Correios, uma instituição do governo confiável. Pensamos: “agora a OI irá aceitar o número do CIC dela, pois ela tem um protocolo emitido pelos Correios”.

Hoje, 28/10, fomos novamente na mesma loja, levando um amigo nosso por segurança, funcionário da OI, no caso de haver uma nova negativa. E a negativa infelizmente veio! VIVA A OI!!!! Mesma vendedora, outra gerente-substituta (Marina), e infelizmente a mesma resposta: “a OI não reconhece esse documento como válido”. Nem mesmo com um protocolo emitido pelos Correios! Agora a OI se superou, pois está colocando em dúvida os Correios! E porque não falar da Receita Federal, a qual, através do seu site, dá que o número do CPF dela está REGULAR!

Apesar de todos os esforços do meu amigo, o qual é funcionário da OI, efetuando diversas ligações e falando, inclusive, com o supervisor daquela loja (Diogo), a OI CONSEGUIU A FAÇANHA E OBTEVE SUCESSO EM NEGAR UMA SIMPLES VENDA, por duas vezes consecutivas, a uma mesma pessoa, trazendo tristeza, revolta e constrangimento a uma cliente que só queria um plano melhor para ela. Eu pergunto: quantas vendas a OI já não perdeu com esta atitude insana e desrespeitosa? Acabei descobrindo que meu sogro e minha mãe, ambos possuem o mesmo CIC, cor parda, com o rótulo de provisório em marca d’água, mas com um número igualmente válido e regular na Receita Federal. Já são dois clientes pré-vetados na OI. Minha mãe que não saia da VIVO, senão sofrerá o mesmo que minha sogra está sofrendo.

O atual slogam da OI é: EU POSSO! Pode o quê? Minha sogra SÓ PODE se esperar de 30 a 60 dias o CPF dela definitivo chegar em sua residência. Que tal a OI avisar a todo o Brasil o seguinte:

Idosos de todo o Brasil… quem tiver um CIC provisório, mesmo que o número esteja regular na Receita Federal, e quiser vir para a OI, façam o favor… tirem a 2ª via, aguardem 60 dias em casa, para finalmente poderem desfrutar de nossos excelentes serviços…

Parece uma piada, não é?

Sinto-me culpado, por ter indicado a OI para minha sogra, e feito ela cancelar sua conta na outra operadora. Agora terei que ficar ouvindo suas queixas? De jeito nenhum… ela vai é para a TIM, para a Claro, para a VIVO… mas PARA A OI? De jeito nenhum. Ela poderá gastar um pouco mais, mas poderá continuar (se quiser) usando seu velho CIC, sem se preocupar que é provisório, quem sabe até morrer, desde que não se esbarre novamente com a OI.

WTP Eclipse Plugin x JBoss

Um caminho simples para publicar EarProjects ou WarProjects utilizando o WTP incluso no Eclipse Ganymede e servidor de aplicação JBoss4.2.3.GA

Visto que não encontrei na Internet nenhum ant build modificado do WebTools para publicações no JBoss, de maneira a “explodir” um EAR ou WAR no servidor de aplicação, resolvi eu mesmo modificar o arquivo server323.xml padrão. Abaixo descrevo a solução.

A solução abaixo foi testada com a versão do WTP inclusa no Eclipse Ganymede e servidor de aplicação JBoss 4.2.3.GA.

1) Baixe os arquivos ant-contrib-0.6.jar e ant4eclipse-0.5.0.rc1.jar

2) Prepare o runtime do Apache ANT no workspace do Eclipse:

No workspace do Eclipse, vá em “Windows –> Preferences –> Ant –> Runtime –> Global Entries –> Add JARs” e referencie as duas bibliotecas acima (1).

3) Se você não tiver esse projeto (LibraryANT), crie a seguinte classe Java:

—————————————————————-

WebModulesTask.java

/**
* @author leonardop
* 14/10/2009
*/
public class WebModulesTask extends Task {
private String ear;
private String webModules;

public static class WarFilenameFilter implements FilenameFilter {
/**
* Method overridden accept
* @see java.io.FilenameFilter#accept(java.io.File, java.lang.String)
*/
public boolean accept(File dir, String name) {
return name != null && name.endsWith(“.war”);
}
}

/**
* Constructor of WebModulesTask
*/
public WebModulesTask() {
super();
}

/**
* Method getWebModulesDiscovered
* @return String
*/
private String getWebModulesDiscovered() {
System.out.println(“this.ear = ” + this.ear);
StringBuffer sbWebModules = new StringBuffer();
File file = new File(this.ear);
if (file.isDirectory()) {
File[] warFiles = file.listFiles(new WarFilenameFilter());
for (int index = 0; index < warFiles.length; index++) {
String warFilename = warFiles[index].getName();
sbWebModules.append(warFilename.substring(0, warFilename.lastIndexOf(‘.’)));
if (index + 1 < warFiles.length)
sbWebModules.append(‘,’);
}
}
else {
System.out.println(“NÃO É UM DIRETÓRIO!!”);
// TODO extract ear file
}
return sbWebModules.toString();
}

/**
* Method overridden execute
* @see org.apache.tools.ant.Task#execute()
*/
public void execute() throws BuildException {
super.getProject().setProperty(this.webModules, this.getWebModulesDiscovered());
}

/**
* Method getEar
* @return Returns the ear.
*/
public String getEar() {
return this.ear;
}

/**
* Method setEar
* @param ear The ear to set.
*/
public void setEar(String ear) {
this.ear = ear;
}

/**
* Method getWebModules
* @return Returns the webModules.
*/
public String getWebModules() {
return this.webModules;
}

/**
* Method setWebModules
* @param webModules The webModules to set.
*/
public void setWebModules(String webModules) {
this.webModules = webModules;
}
}

—————————————————————-

4) Agora crie um arquivo  jee_antlib.xml, no diretório root de fontes Java do projeto onde está a classe Java acima. Este arquivo deve ter seguinte conteúdo:

—————————————————————-

<?xml version=”1.0″?>
<antlib>
<typedef name=”getWebModules” classname=”package.WebModulesTask” />
</antlib>

—————————————————————-

5) Seguindo o mesmo passo (2), adicione o projeto Java criado, o qual contém a classe Java acima, assim como o antlib.xml

6) Criar e editar o arquivo abaixo:

/eclipse/plugins/org.eclipse.jst.server.generic.jboss_1.5.206.v20090115/buildfiles/jboss42exploded.xml

——————————————————————

<project name=”deployextension” default=”deploy.j2ee.web” basedir=”.”>
<property name=”pause.deploy” value=”10″ />
<property name=”pause.undeploy” value=”5″ />

<!– declare ant4eclipse –>
<taskdef resource=”net/sf/ant4eclipse/antlib.xml” />
<!– optional: declare ant-contrib –>
<taskdef resource=”net/sf/antcontrib/antlib.xml” />
<!– declare antlib –>
<taskdef resource=”jee_antlib.xml” />

<!– PACKED EAR (DEFAULT)
<target name=”deploy.j2ee.ear”>
<jar destfile=”${project.working.dir}/${module.name}.ear”>
<zipfileset dir=”${module.dir}”>
<include name=”**/*.*”/>
<exclude name=”**/*.java”/>
</zipfileset>
</jar>
<move file=”${project.working.dir}/${module.name}.ear” todir=”${server.publish.dir}”/>
<sleep seconds=”${pause.deploy}”/>
</target>
–>
<!– EXPLODED EAR –>
<target name=”deploy.j2ee.ear”>
<echo>Copiando ${module.dir} em ${server.publish.dir}/${module.name}.ear</echo>
<copy todir=”${server.publish.dir}/${module.name}.ear”>
<fileset dir=”${module.dir}”>
<include name=”**/*.*” />
<exclude name=”**/*.war” />
</fileset>
</copy>
<echo>Buscando módulos web…</echo>
<getWebModules ear=”${module.dir}” webmodules=”webModulesProperty” />
<foreach list=”${webModulesProperty}” target=”deploy.j2ee.ear.webModule” param=”webModule.name” trim=”yes” inheritall=”true” />
<sleep seconds=”${pause.deploy}” />
</target>
<target name=”deploy.j2ee.ear.webModule”>
<echo>Copiando ${project.working.dir}/${webModule.name} em ${server.publish.dir}/${module.name}.ear/${webModule.name}.war</echo>
<copy todir=”${server.publish.dir}/${module.name}.ear/${webModule.name}.war”>
<fileset dir=”${project.working.dir}/${webModule.name}”>
<include name=”**/*.*” />
</fileset>
</copy>
</target>

<!– PACKED WAR (DEFAULT)
<target name=”deploy.j2ee.web”>
<jar destfile=”${project.working.dir}/${module.name}.war”>
<zipfileset dir=”${module.dir}”>
<include name=”**/*.*”/>
<exclude name=”**/*.war”/>
</zipfileset>
</jar>
<move file=”${project.working.dir}/${module.name}.war” todir=”${server.publish.dir}”/>
<sleep seconds=”${pause.deploy}”/>
</target>
–>
<!– EXPLODED WAR –>
<target name=”deploy.j2ee.web”>
<copy todir=”${server.publish.dir}/${module.name}.war”>
<fileset dir=”${module.dir}”>
<include name=”**/*.*” />
<exclude name=”**/*.war” />
</fileset>
</copy>
<sleep seconds=”${pause.deploy}” />
</target>

<target name=”deploy.j2ee.ejb”>
<jar destfile=”${project.working.dir}/${module.name}.jar”>
<zipfileset dir=”${module.dir}”>
<include name=”**/*.*” />
<exclude name=”**/*.java” />
</zipfileset>
</jar>
<move file=”${project.working.dir}/${module.name}.jar” todir=”${server.publish.dir}” />
<sleep seconds=”${pause.deploy}” />
</target>

<!– PACKED WAR (DEFAULT)
<target name=”undeploy.j2ee.web”>
<delete file=”${server.publish.dir}/${module.name}.war” failonerror=”false” />
<sleep seconds=”${pause.undeploy}” />
</target>
–>
<target name=”undeploy.j2ee.web”>
<delete dir=”${server.publish.dir}/${module.name}.war” failonerror=”false” />
<sleep seconds=”${pause.undeploy}” />
</target>

<target name=”undeploy.j2ee.ejb”>
<delete file=”${server.publish.dir}/${module.name}.jar” failonerror=”false” />
<sleep seconds=”${pause.undeploy}” />
</target>

<!– PACKED EAR (DEFAULT)
<target name=”undeploy.j2ee.ear”>
<delete file=”${server.publish.dir}/${module.name}.ear” failonerror=”false”>
</delete>
<sleep seconds=”${pause.undeploy}” />
</target>
–>
<target name=”undeploy.j2ee.ear”>
<delete dir=”${server.publish.dir}/${module.name}.ear” failonerror=”false” />
<sleep seconds=”${pause.undeploy}” />
</target>

</project>

——————————————————————

7) Editar o arquivo:

/eclipse/plugins/org.eclipse.jst.server.generic.jboss_1.5.206.v20090115/servers/jboss42.serverdef

Substitua, dentro do arquivo, a referência do arquivo jboss323.xml por jboss42exploded.xml, conforme abaixo:

—————————————–

<publisherdata>
<dataname>build.file</dataname>
<datavalue>/buildfiles/jboss42exploded.xml</datavalue>
</publisherdata>

—————————————–

8) Reinicie o Eclipse e parta para o abraço! 🙂

NOTA IMPORTANTE: Como é característica do JBoss, sempre que um EAR é publicado “explodido” no diretório /JBOSS_DIST/server/default/deploy, necessariamente a instância default deverá ser reiniciada. Para rápidas atualizações dos recursos web (html, js, imagens, jsp, css, etc), crie um ant-build simples que copie somente os arquivos alterados para o respectivo WAR “explodido” no servidor. Qualquer dúvida estou à disposição.

Leonardo Pereira