Como sabem a partir do dia 1 de Junho entram em vigor as novas taxas de IVA e para quem como eu tem que manter os sistemas de gestão de dezenas de clientes em funcionamento, sabe que é uma dor de cabeça.
Sendo assim vou deixar aqui uma ajuda para quem dá suporte a aplicações da WINTOUCH.
Todos sabem que no dia será impossivel passar em todos os clientes para fazer essa alteração, tanto é que uma grande parte dos clientes fecham dia 30 de Junho quase de madrugada e abrem dia 1 de Julho de manha.
Então a solução passa por criar uma query SQL com todas as alterações necessárias e um ficheiro .bat para executar no dia 1 de Julho antes de começar a Facturar.
Deixo aqui o que precisam fazer:
1-Criar um ficheiro chamado iva.bat com o seguinte código:
pause
sqlcmd -S .\sqlexpress -i sgw.iva.sql
pause
Tenham atenção que só funciona em SQL 2005 ou 2008, e se usarem outra estancia que não seja “sqlexpress” precisam alterar.
2-Caso seja wSir e usem o documento wsir.vdtxiva.cfd precisam alterar o mesmo, a minha sugestão vai para incluirem o seguinte código no ficheiro .bat :
@ echo off
setlocal
REM DIRECTORIA_* acaba com um \
set DIRECTORIA_=”C:\Programas\wintouch\SGW\mapas\”
ren %DIRECTORIA_%wsir.vdtxiva.cfd wsir.vdtxiva_old.cfd
ren %DIRECTORIA_%wsir.vdtxiva_new.cfd wsir.vdtxiva.cfd
3-Precisam duplicar o ficheiro aqui descrito e dar-lhe o nome wsir.vdtxiva_new.cfd e alterar os campos do resumo de IVA para os seguintes,:
<@AL2>Iva <txIva3>% <incid3> <valoriva3> <totaliva3>
<@AL2>Iva <txIva5>% <incid5> <valoriva5> <totaliva5>
<@AL2>Iva <txIva7>% <incid7> <valoriva7> <totaliva7>
Tenham atenção que esta ordem é apenas para o caso de existirem ja 4 taxas de IVA configuradas (0,5,12,20), isto deve-se a uma falha no wSir que vai buscar as taxas para impressão por ordem de taxa na tabela wgcivas.
4-Criar uma query sql com o nome wgc.ivas.sql e guardar na mesma directoria do ficehiro .bat, colocando seguinte código:
/* mudar wsir pelo nome da base de dados a alterar */
use WSIR
/* novas taxas de iva, o codigo nome e taxa fica igual assim sera mais facil identificar */
insert into wgcivas (codigo, nome, taxa, cblcgeral, cblcanalitica, cblcccusto, exportado, grupobalanca, tipomovimento, txrecargo) values (21, 21, 21, 0, 0, 0, 0, 0,0, 0)
insert into wgcivas (codigo, nome, taxa, cblcgeral, cblcanalitica, cblcccusto, exportado, grupobalanca, tipomovimento, txrecargo) values (13, 13, 13, 0, 0, 0, 0, 0,0, 0)
insert into wgcivas (codigo, nome, taxa, cblcgeral, cblcanalitica, cblcccusto, exportado, grupobalanca, tipomovimento, txrecargo) values (6, 6, 6, 0, 0, 0, 0, 0,0, 0)
/* altera IVA com base na taxa configurada */
update wgcartigos set iva=’21′ FROM wgcartigos INNER JOIN wgcivas ON wgcivas.codigo = wgcartigos.iva WHERE(wgcivas.taxa = ’20′)
update wgcartigos set iva=’13′ FROM wgcartigos INNER JOIN wgcivas ON wgcivas.codigo = wgcartigos.iva WHERE(wgcivas.taxa = ’12′)
update wgcartigos set iva=’6′ FROM wgcartigos INNER JOIN wgcivas ON wgcivas.codigo = wgcartigos.iva WHERE(wgcivas.taxa = ’5′)
update wgcartigos set ivacompra=’21′ FROM wgcartigos INNER JOIN wgcivas ON wgcivas.codigo = wgcartigos.ivacompra WHERE(wgcivas.taxa = ’20′)
update wgcartigos set ivacompra=’13′ FROM wgcartigos INNER JOIN wgcivas ON wgcivas.codigo = wgcartigos.ivacompra WHERE(wgcivas.taxa = ’12′)
update wgcartigos set ivacompra=’6′ FROM wgcartigos INNER JOIN wgcivas ON wgcivas.codigo = wgcartigos.ivacompra WHERE(wgcivas.taxa = ’5′)
update wgcartigos set iva1=’21′ FROM wgcartigos INNER JOIN wgcivas ON wgcivas.codigo = wgcartigos.iva1 WHERE(wgcivas.taxa = ’20′)
update wgcartigos set iva1=’13′ FROM wgcartigos INNER JOIN wgcivas ON wgcivas.codigo = wgcartigos.iva1 WHERE(wgcivas.taxa = ’12′)
update wgcartigos set iva1=’6′ FROM wgcartigos INNER JOIN wgcivas ON wgcivas.codigo = wgcartigos.iva1 WHERE(wgcivas.taxa = ’5′)
update wgcparametros set ivavenda=’21′ FROM wgcparametros INNER JOIN wgcivas ON wgcivas.codigo = wgcparametros.ivavenda WHERE(wgcivas.taxa = ’20′)
update wgcparametros set ivavenda=’13′ FROM wgcparametros INNER JOIN wgcivas ON wgcivas.codigo = wgcparametros.ivavenda WHERE(wgcivas.taxa = ’12′)
update wgcparametros set ivavenda=’6′ FROM wgcparametros INNER JOIN wgcivas ON wgcivas.codigo = wgcparametros.ivavenda WHERE(wgcivas.taxa = ’5′)
update wgcparametros set ivacompra=’21′ FROM wgcparametros INNER JOIN wgcivas ON wgcivas.codigo = wgcparametros.ivacompra WHERE(wgcivas.taxa = ’20′)
update wgcparametros set ivacompra=’13′ FROM wgcparametros INNER JOIN wgcivas ON wgcivas.codigo = wgcparametros.ivacompra WHERE(wgcivas.taxa = ’12′)
update wgcparametros set ivacompra=’6′ FROM wgcparametros INNER JOIN wgcivas ON wgcivas.codigo = wgcparametros.ivacompra WHERE(wgcivas.taxa = ’5′)
5- Por fim criem um atalho para este .bat e no dia 1 de Julho antes de iniciar a facturação o cliente apenas tem que dar 2 cliques para fazer a alteração,sao uns segundinhos e “boom, fez-se o chocapic…
)…
Espero que aproveitem a dica, tardia mas mais vale tarde do que nunca.
Comentários
161