<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>http://wiki.geosales.com.br:8000/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rafael</id>
	<title>GeoSales - Contribuições do(a) usuário(a) [pt-br]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.geosales.com.br:8000/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rafael"/>
	<link rel="alternate" type="text/html" href="http://wiki.geosales.com.br:8000/index.php/Especial:Contribui%C3%A7%C3%B5es/Rafael"/>
	<updated>2026-05-07T14:16:23Z</updated>
	<subtitle>Contribuições do(a) usuário(a)</subtitle>
	<generator>MediaWiki 1.35.0</generator>
	<entry>
		<id>http://wiki.geosales.com.br:8000/index.php?title=Rateio_de_Prazo_Excedido&amp;diff=6077</id>
		<title>Rateio de Prazo Excedido</title>
		<link rel="alternate" type="text/html" href="http://wiki.geosales.com.br:8000/index.php?title=Rateio_de_Prazo_Excedido&amp;diff=6077"/>
		<updated>2018-01-30T17:26:32Z</updated>

		<summary type="html">&lt;p&gt;Rafael: alteração do tipo nas tabelas para decimal&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Histórico de Revisões ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data&lt;br /&gt;
! Quem &lt;br /&gt;
! Comentários &lt;br /&gt;
|-&lt;br /&gt;
|  18/09/2017  ||  Renato Lima    ||  Criação do Documento &lt;br /&gt;
|-&lt;br /&gt;
|  18/09/2017  ||  Leonardo Sousa    ||  Aprovação&lt;br /&gt;
|-&lt;br /&gt;
|  25/09/2017  ||  Inaldo França     ||  Aprovação da TOTVS / Cliente&lt;br /&gt;
|-&lt;br /&gt;
|  26/09/2017  ||  Marcus Fábio Salviano     ||  Ajustes na tabela PRAZO_MEDIO_TAB_PRECO&lt;br /&gt;
|-&lt;br /&gt;
|  30/01/2018  ||  Rafael Caetano     ||  Ajustes na tabela PRAZO_MEDIO_TAB_PRECO, Prazo max e min alterado para decimal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Necessidade ==&lt;br /&gt;
No processo de venda, quando no pedido, o prazo médio da condição de pagamento e valor do pedido não forem compatíveis com  as regras comercias ligadas a prazo médio da tabela de preço e valor minimo, o vendedor precisa definir onde o valor gerado de juros poderá ser rateado no momento de finalização do pedido.&lt;br /&gt;
&lt;br /&gt;
== Solução ==&lt;br /&gt;
&lt;br /&gt;
Será implementada solução para realização dos calculos baseados nos dados relacionados a prazo médio e valor minimo da tabela de preço, alem de permitir o rateo para verba ou Comissão.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
A implementação vai acontecer da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
*Será criada uma tabela onde as informações de Tabela de preço, Prazo Médio, Prazo Maximo e valor minimo para tabela de preço, serão integrados.&lt;br /&gt;
&lt;br /&gt;
O integrador vai obter essas informações através dos campos do Protheus:&lt;br /&gt;
*Tabela de preço do Campo que já é entregado. &lt;br /&gt;
*Prazo Médio da Tabela de Preço  - DA0_XPRAZM&lt;br /&gt;
*Valor Mínimo da Tabela de Preço - DA0_XVLRMI&lt;br /&gt;
*Prazo Médio Máximo da Tabela de Preço-DA0_XPRAZE&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;5&amp;quot;  | PRAZO_MEDIO_TAB_PRECO&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:200px&amp;quot; |Coluna&lt;br /&gt;
! Tipo&lt;br /&gt;
! style=&amp;quot;width:200px&amp;quot; |Obrigatório&lt;br /&gt;
! style=&amp;quot;width:300px&amp;quot; |Chave Primária&lt;br /&gt;
! style=&amp;quot;width:300px&amp;quot; |Explicação&lt;br /&gt;
|- &lt;br /&gt;
| CD_TAB_PRECO&lt;br /&gt;
| INT&lt;br /&gt;
| SIM&lt;br /&gt;
| SIM&lt;br /&gt;
| Código da tabela preco&lt;br /&gt;
|- &lt;br /&gt;
| PRAZO_MEDIO&lt;br /&gt;
| DECIMAL&lt;br /&gt;
| NÃO&lt;br /&gt;
| NÃO&lt;br /&gt;
| Prazo Medio tabela de preco&lt;br /&gt;
|-&lt;br /&gt;
| PRAZO_MAXIMO&lt;br /&gt;
| DECIMAL&lt;br /&gt;
| NÃO&lt;br /&gt;
| NÃO&lt;br /&gt;
| Prazo Maximo Tabela Preco&lt;br /&gt;
|-&lt;br /&gt;
| VR_MINIMO&lt;br /&gt;
| DECIMAL&lt;br /&gt;
| NÃO&lt;br /&gt;
| NÃO&lt;br /&gt;
| Valor minimo tabela&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Na tabela de condição de pagamento será incluído mais um campo, que será integrado o percentual de Juros por condição de pagamento.&lt;br /&gt;
*Juros da condição de pagamento será integrado através da Tabela: ZZS Campo: ZZS_JURGEO&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;5&amp;quot;  | CONDICAO_PAGAMENTO&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:200px&amp;quot; |Coluna&lt;br /&gt;
! Tipo&lt;br /&gt;
! style=&amp;quot;width:200px&amp;quot; |Obrigatório&lt;br /&gt;
! style=&amp;quot;width:300px&amp;quot; |Chave Primária&lt;br /&gt;
! style=&amp;quot;width:300px&amp;quot; |Explicação&lt;br /&gt;
|- &lt;br /&gt;
| PR_JUROS&lt;br /&gt;
| DECIMAL&lt;br /&gt;
| NÃO&lt;br /&gt;
| NÃO&lt;br /&gt;
| Código do pedido&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Para ativar o calculo e tela de rateio será criada a configuração ID_UTILIZA_RATEIO_PRAZO_MEDIO, que é a mesma tela de rateio desconto com dois campos novos.&lt;br /&gt;
**Rateio Desconto&lt;br /&gt;
**Rateio Prazo&lt;br /&gt;
**No campo Total Rateio apresentará a soma de Rateio desconto e Rateio Prazo quando tiver habilitado as duas configurações ID_UTILIZA_RATEIO_PRAZO_MEDIO e ID_UTILIZA_RATEIO_DESCONTO ou de um dos tipos, quando estiver habilitada a configuração.&lt;br /&gt;
**Apresentará informação do Prazo médio da condição, Prazo Médio da Tabela(Qual prazo médio foi usado para o calculo) e Diferença Prazo médio cond. para prazo médio tabela.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Rateio.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Como a configuração habilitada ao salvar o pedido o sistema vai verificar se precisa fazer rateio de prazo médio da Seguinte forma:&lt;br /&gt;
&lt;br /&gt;
Ao inserir o pedido precisa ser avaliados O valor total do pedido, Prazo Medio da condição, Valor minimo da tabela de preço, &lt;br /&gt;
Prazo Medio da tabela e prazo Maximo tabela.&lt;br /&gt;
&lt;br /&gt;
De acordo com esses dados podem ocorrer as seguintes situações:&lt;br /&gt;
&lt;br /&gt;
*'''Situação 1'''&lt;br /&gt;
Quando o valor do pedido for menor que o valor minimo da tabela e o prazo médio da condição for menor que o prazo médio da tabela, não ocorrerá rateio.&lt;br /&gt;
&lt;br /&gt;
*'''Situação 2'''&lt;br /&gt;
Quando o valor do pedido for maior que o valor minimo da tabela e o prazo médio da condição for maior que o prazo médio da tabela e menor que o prazo maximo da tabela o sistema não ira calculcar o rateio&lt;br /&gt;
&lt;br /&gt;
*'''Situação 3'''&lt;br /&gt;
Quando o valor do pedido for igual o valor minimo da tabela de preço e o prazo médio da condição for igual o prazo médio da tabela e menor que o prazo maximo da tabela o sistema não ira calcular o rateio.&lt;br /&gt;
&lt;br /&gt;
*'''Situação 4'''&lt;br /&gt;
Quando o valor do pedido for igual o valor minimo da tabela de preco e o prazo medio da condição for maior que o prazo médio da tabela e menor que o prazo maximo da tabela o sistema não ira calcular o rateio.&lt;br /&gt;
&lt;br /&gt;
*'''Situação 5'''&lt;br /&gt;
Quando o valor do pedido for menor que o valor minimo da tabela e o prazo médio da condição for maior que o prazo médio da tabela e menor que o prazo máximo da tabela o sistema ira calcular o rateio.&lt;br /&gt;
*Valor a ratear =(Prazo Condição - Prazo médio tabela)*(Valor do pedido* Taxa de Juros condição)&lt;br /&gt;
&lt;br /&gt;
*'''Situação 6'''&lt;br /&gt;
Quando o valor do pedido for maior que o valor minimo da tabela e o prazo médio da condição for maior que o prazo médio da tabela e maior que o prazo máximo da tabela o sistema ira calcular o rateio.&lt;br /&gt;
&lt;br /&gt;
Neste caso como o valor do pedido foi maior que o valor minimo da tabela, o prazo a ser usado para o calculo deve ser o prazo máximo da tabela de preco.&lt;br /&gt;
*Valor a ratear =(Prazo Condição - '''Prazo Maximo tabela''')*(Valor do pedido* Taxa de Juros condição)&lt;br /&gt;
&lt;br /&gt;
*'''Situação 7'''&lt;br /&gt;
Quando o valor do pedido for menor que o valor minimo da tabela e o prazo médio da condição for maior que o prazo médio da tabela e maior que o prazo máximo da tabela o sistema ira calcular o rateio.&lt;br /&gt;
&lt;br /&gt;
Neste caso como o valor do pedido foi menor que o valor minimo da tabela, o prazo a ser usado para o calculo deve ser o prazo médio da tabela de preço.&lt;br /&gt;
*Valor a ratear =(Prazo Condição - '''Prazo médio tabela''')*(Valor do pedido* Taxa de Juros condição)&lt;br /&gt;
&lt;br /&gt;
Abaixo temos uma tabela com um cenário de cada uma das situações:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot;  | CENÁRIO&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:200px&amp;quot; |SITUAÇÃO&lt;br /&gt;
! style=&amp;quot;width:200px&amp;quot; |VALOR PEDIDO&lt;br /&gt;
! style=&amp;quot;width:200px&amp;quot; |PRAZO MÉDIO CONDIÇÃO&lt;br /&gt;
! style=&amp;quot;width:300px&amp;quot; |VALOR MINIMO TABELA PREÇO&lt;br /&gt;
! style=&amp;quot;width:300px&amp;quot; |PRAZO MÉDIO TABELA PREÇO&lt;br /&gt;
! style=&amp;quot;width:300px&amp;quot; |PRAZO MAXIMO TABELA PREÇO&lt;br /&gt;
! style=&amp;quot;width:300px&amp;quot; |% JUROS CONDIÇAO TABELA PREÇO&lt;br /&gt;
! style=&amp;quot;width:300px&amp;quot; |RESULTADO&lt;br /&gt;
! style=&amp;quot;width:300px&amp;quot; |VALOR A RATEAR&lt;br /&gt;
|- &lt;br /&gt;
| 1&lt;br /&gt;
| R$ 1000,00&lt;br /&gt;
| 32&lt;br /&gt;
| R$ 5000,00&lt;br /&gt;
| 35&lt;br /&gt;
| 40&lt;br /&gt;
| 0,20%&lt;br /&gt;
| NÃO CALCULA&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| 2&lt;br /&gt;
| R$ 6000,00&lt;br /&gt;
| 38&lt;br /&gt;
| R$ 5000,00&lt;br /&gt;
| 35&lt;br /&gt;
| 40&lt;br /&gt;
| 0,20%&lt;br /&gt;
| NÃO CALCULA&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| R$ 5000,00&lt;br /&gt;
| 35&lt;br /&gt;
| R$ 5000,00&lt;br /&gt;
| 35&lt;br /&gt;
| 40&lt;br /&gt;
| 0,20%&lt;br /&gt;
| NÃO CALCULA&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| 4&lt;br /&gt;
| R$ 5000,00&lt;br /&gt;
| 36&lt;br /&gt;
| R$ 5000,00&lt;br /&gt;
| 35&lt;br /&gt;
| 40&lt;br /&gt;
| 0,20%&lt;br /&gt;
| NÃO CALCULA&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| R$ 1000,00&lt;br /&gt;
| 38&lt;br /&gt;
| R$ 5000,00&lt;br /&gt;
| 35&lt;br /&gt;
| 40&lt;br /&gt;
| 0,20%&lt;br /&gt;
| 3&lt;br /&gt;
| (38-35)*(1000*0,20%)=R$ 6,00&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| R$ 6000,00&lt;br /&gt;
| 45&lt;br /&gt;
| R$ 5000,00&lt;br /&gt;
| 35&lt;br /&gt;
| 40&lt;br /&gt;
| 0,20%&lt;br /&gt;
| 5&lt;br /&gt;
| (45-40)*(6000*0,20%)=R$ 60,00&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| R$ 1000,00&lt;br /&gt;
| 45&lt;br /&gt;
| R$ 5000,00&lt;br /&gt;
| 35&lt;br /&gt;
| 40&lt;br /&gt;
| 0,20%&lt;br /&gt;
| 10&lt;br /&gt;
| (45-35)*(1000*0,20%)=R$ 20,00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Regras de Negócio===&lt;br /&gt;
&lt;br /&gt;
'''RN1''' – Com a configuração ID_UTILIZA_RATEIO_PRAZO_MEDIO estiver habilitada o sistema exibirá a informação para rateio.&lt;br /&gt;
&lt;br /&gt;
'''RN2''' – Quando o valor do pedido for maior que o valor minimo da tabela de preço e o prazo médio da condição for maior que o prazo médio da tabela de preço, será  usado no calculo o prazo médio máximo da tabela de preço.&lt;br /&gt;
&lt;br /&gt;
Valor a Ratear=(Prazo_Medio_cond - Prazo Medio Tab Preco)*(Valor do pedido * Juros da Cond)&lt;br /&gt;
&lt;br /&gt;
'''RN3''' – Quando o valor do pedido for menor que o valor minimo da tabela de preço e o prazo médio da condição for maior que o prazo médio da tabela de preço, será  usado no calculo o prazo médio da tabela de preço.&lt;br /&gt;
&lt;br /&gt;
Valor a Ratear=(Prazo_Medio_cond - Prazo Maximo Tab Preco)*(Valor do pedido * Juros da Cond)&lt;br /&gt;
&lt;br /&gt;
'''RN4''' - Quando estiver as configurações ID_UTILIZA_RATEIO_PRAZO_MEDIO e ID_UTILIZA_RATEIO_DESCONTO, o valor total para ser rateado entre comissão e verba, será a soma dos dois, mostrando os valores distintamente.&lt;br /&gt;
&lt;br /&gt;
'''RN5''' – Quando o valor total do pedido for igual ao valor minimo da tabela de preço e prazo medido da condição estiver entre a faixa, não ocorre aplicação de calculo, para geração de valor para rateio.&lt;br /&gt;
&lt;br /&gt;
'''RN6''' – A funcionalidade será aplicada nas opções disponiveis para retirada de pedido (portal e mobile).&lt;br /&gt;
&lt;br /&gt;
== Aprovação ==&lt;br /&gt;
&lt;br /&gt;
Considero aprovada a documentação da funcionalidade especificada acima, e autorizo a implementação da mesma no Sistema GeoSales, em nome da Organização a qual estou vinculado. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px&amp;quot; |Setor &lt;br /&gt;
! Aprovado Por&lt;br /&gt;
! style=&amp;quot;width:200px&amp;quot; |Data&lt;br /&gt;
! style=&amp;quot;width:300px&amp;quot; |Assinatura&lt;br /&gt;
|- &lt;br /&gt;
| Gerente TOTVS&lt;br /&gt;
| Ronildo Gama&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| Gerente Projeto&lt;br /&gt;
| Inaldo França&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| Diretor Comercial&lt;br /&gt;
| Leandro Carvalho&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rafael</name></author>
	</entry>
	<entry>
		<id>http://wiki.geosales.com.br:8000/index.php?title=Scritps_%C3%9Ateis&amp;diff=5998</id>
		<title>Scritps Úteis</title>
		<link rel="alternate" type="text/html" href="http://wiki.geosales.com.br:8000/index.php?title=Scritps_%C3%9Ateis&amp;diff=5998"/>
		<updated>2018-01-24T18:12:39Z</updated>

		<summary type="html">&lt;p&gt;Rafael: adicionando consulta para ver bases vencidas&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Scrips Tabelas Web Service NOVO|Scrips Tabelas Web Service NOVO]]&lt;br /&gt;
&lt;br /&gt;
:*Saber quais as bases estão vencidas que procedure vai apagar&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
USE bd_ssm_adm;&lt;br /&gt;
&lt;br /&gt;
SELECT s.name, ub.DATA_EXPIRACAO FROM sys.sysdatabases s&lt;br /&gt;
LEFT JOIN USUARIO_BASE ub ON s.name = ub.nm_base&lt;br /&gt;
WHERE &lt;br /&gt;
	s.name LIKE 'bd_ssm_%'&lt;br /&gt;
	AND s.name NOT LIKE 'bd_ssm_adm'&lt;br /&gt;
	AND (ub.nm_base IS NULL OR ub.DATA_EXPIRACAO &amp;lt; GETDATE())&lt;br /&gt;
ORDER BY crdate ASC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Saber quais os processos estão bloqueado outros e não estão sendo bloqueados&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select db_name(dbid), *&lt;br /&gt;
from sys.sysprocesses&lt;br /&gt;
where spid in (&lt;br /&gt;
     select blocked&lt;br /&gt;
      from sys.sysprocesses&lt;br /&gt;
     where blocked &amp;gt; 0)&lt;br /&gt;
      and blocked = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Detalhar um processo &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EXEC sp_who2 252&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:* Ver a query que está sendo executada por um processo (Parâmetro spid)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DBCC INPUTBUFFER(6001)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Checar qual versão determinado vendedor tá usando&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select cd_usuario,&lt;br /&gt;
       substring(ds_log, CHARINDEX('@', ds_log) + 1, charindex(':', ds_log, CHARINDEX('@', ds_log) + 1) - CHARINDEX('@', ds_log) - 1)&lt;br /&gt;
from LOG_SINCRONISMO with(nolock) &lt;br /&gt;
order by 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Descobrir exatamente qual script está sendo executado no momento dado um processo qualquer&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DECLARE @comandoSQL VARCHAR(8000)&lt;br /&gt;
SET @comandoSQL = (SELECT CAST([TEXT] AS VARCHAR(8000))&lt;br /&gt;
FROM ::fn_get_sql((SELECT [sql_handle] FROM sysprocesses where spid = 1071)))&lt;br /&gt;
select @comandoSQL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Descobrir exatamente qual script está sendo executado no momento dado um processo qualquer quando existem mais de um script sendo executado&lt;br /&gt;
em background para o spid passado&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DECLARE @comandoSQL VARCHAR(8000)&lt;br /&gt;
DECLARE @tableComandoSQL TABLE (comando VARCHAR(8000))&lt;br /&gt;
--SET @comandoSQL = (SELECT CAST([TEXT] AS VARCHAR(8000))&lt;br /&gt;
--FROM ::fn_get_sql((SELECT [sql_handle] FROM sysprocesses where spid = 1071)))&lt;br /&gt;
--select @comandoSQL&lt;br /&gt;
INSERT INTO @tableComandoSQL SELECT CAST([TEXT] AS VARCHAR(8000))&lt;br /&gt;
FROM ::fn_get_sql((SELECT top 1 [sql_handle] FROM sys.sysprocesses where spid = 1071))&lt;br /&gt;
SELECT * FROM @tableComandoSQL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ver o tamanho das tabelas&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT&lt;br /&gt;
    OBJECT_NAME(object_id) As Tabela, Rows As Linhas,&lt;br /&gt;
    SUM(Total_Pages * 8) As Reservado,&lt;br /&gt;
    SUM(CASE WHEN Index_ID &amp;gt; 1 THEN 0 ELSE Data_Pages * 8 END) As Dados,&lt;br /&gt;
        SUM(Used_Pages * 8) -&lt;br /&gt;
        SUM(CASE WHEN Index_ID &amp;gt; 1 THEN 0 ELSE Data_Pages * 8 END) As Indice,&lt;br /&gt;
    SUM((Total_Pages - Used_Pages) * 8) As NaoUtilizado&lt;br /&gt;
FROM&lt;br /&gt;
    sys.partitions As P&lt;br /&gt;
    INNER JOIN sys.allocation_units As A ON P.hobt_id = A.container_id&lt;br /&gt;
GROUP BY OBJECT_NAME(object_id), Rows&lt;br /&gt;
ORDER BY DADOS DESC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Listar agendamentos de importações de todas as empresas num único script (Caso você queira adicionar mais empresas só seguir o modelo)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select 'bd_ssm_DCA', * from bd_ssm_DCA..CONFIGURACAO_GERA_REGISTRO_AUTO&lt;br /&gt;
union all&lt;br /&gt;
select 'bd_ssm_CAMIL', * from bd_ssm_CAMIL..CONFIGURACAO_GERA_REGISTRO_AUTO&lt;br /&gt;
union all&lt;br /&gt;
select 'bd_ssm_BEVILAQUA', * from bd_ssm_BEVILAQUA..CONFIGURACAO_GERA_REGISTRO_AUTO&lt;br /&gt;
union all&lt;br /&gt;
select 'bd_ssm_GUARAVES', * from bd_ssm_GUARAVES..CONFIGURACAO_GERA_REGISTRO_AUTO&lt;br /&gt;
union all&lt;br /&gt;
select 'bd_ssm_PAULUS', * from bd_ssm_PAULUS..CONFIGURACAO_GERA_REGISTRO_AUTO&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Ver todas as bases que utilizam a geração de registro automático&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sp_update_databases &lt;br /&gt;
'&lt;br /&gt;
insert into ##tabela&lt;br /&gt;
select db_name(),* from CONFIGURACAO_GERA_REGISTRO_AUTO', 'org_venda_cliente'&lt;br /&gt;
&amp;lt;/pre&lt;br /&gt;
&lt;br /&gt;
*Update com select e join:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
UPDATE PEDIDO SET PEDIDO.NM_CLIENTE = (C.NM_CLIENTE)&lt;br /&gt;
from PEDIDO&lt;br /&gt;
inner join CLIENTE C on &lt;br /&gt;
PEDIDO.CD_CLIENTE = C.CD_CLIENTE&lt;br /&gt;
WHERE PEDIDO.DT_EMISSAO &amp;gt;= '2016-10-01' AND PEDIDO.NM_CLIENTE IS NULL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Atualizar Nome da Tabela&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EXEC sp_rename 'ITEM_PEDIDO_REMESSA_FUTURA', 'ITEM_PED_REMESSA_FUTURA';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Remover Foreign Keys&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from sys.sysobjects where name = 'FK__LISTA_PRO__CD_SE__361203C5'&lt;br /&gt;
SELECT * FROM sys.sysobjects where ID = 907150277&lt;br /&gt;
ALTER TABLE Orders DROP CONSTRAINT fk_PerOrders&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER TABLE ITEM_PEDIDO_EXCLUIDO DROP CONSTRAINT FK_SAV_ITEM__PEDIDO_PEDIDO_DEL; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Retornar consulta por banco de dados do tamanho usado no banco&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select 'Use '+name+';' + 'Exec SP_SpaceUsed ;'  from sys.databases&lt;br /&gt;
where  name like 'bd_ssm_%' and state_desc = 'online' and name not like '%prontaentrega%' &lt;br /&gt;
and name not like '%adm%'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Lista os Vendedores da Hierárquia do Supervisor passado no Parâmetro&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT cd_vendedor [Código], &lt;br /&gt;
       nm_vendedor [Vendedor]&lt;br /&gt;
FROM   fn_obter_vendedores_supervisor(#codigoSupervisor#)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Lista os Supervisores Acima da Hierárquia do Supervisor passado no Parâmetro, incluindo ele mesmo&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT S.cd_supervisor [Código], &lt;br /&gt;
       S.nm_supervisor [Supervisor] &lt;br /&gt;
FROM   fn_obter_supervisor_supervisores(#codigoSupervisor#) FOSS &lt;br /&gt;
       INNER JOIN SUPERVISOR S &lt;br /&gt;
               ON FOSS.cd_supervisor = S.cd_supervisor&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Lista os Supervisores Abaixo da Hierárquia do Supervisor passado no Parâmetro, incluindo ele mesmo&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT S.cd_supervisor [Código], &lt;br /&gt;
       S.nm_supervisor [Supervisor] &lt;br /&gt;
FROM   fn_obter_supervisores_supervisor(#codigoSupervisor#) FOSS &lt;br /&gt;
       INNER JOIN SUPERVISOR S &lt;br /&gt;
               ON FOSS.cd_supervisor = S.cd_supervisor&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Verificar processos que estão travando o banco e ver a query do processo que está travado&lt;br /&gt;
** Selecionar os 100 primeiros processos bloqueados no banco&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select TOP 100 *&lt;br /&gt;
from sys.sysprocesses&lt;br /&gt;
where blocked &amp;lt;&amp;gt; 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:* Selecionar todos os processos bloqueados no banco ordenados por spid&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select spid, blocked, hostname=left(hostname,20), program_name=left(program_name,20),&lt;br /&gt;
       WaitTime_Seg = convert(int,(waittime/1000))  ,open_tran, status&lt;br /&gt;
From master.dbo.sysprocesses &lt;br /&gt;
where blocked &amp;gt; 0&lt;br /&gt;
order by spid&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Então você precisa verificar quais processos estão rodando em um determinado banco de dados:&lt;br /&gt;
** Lista todos os processos existentes em uma determinada base de dados&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DECLARE @database VARCHAR(100) = 'bd_ssm_suabase' -- INSIRA AQUI O NOME DO BANCO DE DADOS  &lt;br /&gt;
DECLARE @processosTemp TABLE &lt;br /&gt;
  ( &lt;br /&gt;
     spid       SMALLINT, &lt;br /&gt;
     ecid       SMALLINT, &lt;br /&gt;
     status     NCHAR(30), &lt;br /&gt;
     loginname  NCHAR(128), &lt;br /&gt;
     hostname   NCHAR(128), &lt;br /&gt;
     blk        CHAR(5), &lt;br /&gt;
     dbname     NCHAR(128), &lt;br /&gt;
     cmd        NCHAR(16), &lt;br /&gt;
     request_id INT &lt;br /&gt;
  ) &lt;br /&gt;
&lt;br /&gt;
INSERT INTO @processosTemp &lt;br /&gt;
EXEC Sp_who &lt;br /&gt;
&lt;br /&gt;
SELECT * &lt;br /&gt;
FROM   @processosTemp &lt;br /&gt;
WHERE  dbname = @database &lt;br /&gt;
ORDER  BY spid &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:* Aí você precisa remover essa base - faça esse procedimento apenas no ambiente de teste - mas existem processos bloqueando essa remoção. Então você deverá remover os mesmos processos referentes a consulta acima, para depois DROPAR a base.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
declare @execSql varchar(1000), @databaseName varchar(100)  &lt;br /&gt;
set @databaseName = 'bd_ssm_suabase'  -- INSIRA O NOME DA BASE QUE QUER MATAR SEUS PROCESSOS EM ABERTO&lt;br /&gt;
&lt;br /&gt;
set @execSql = ''   &lt;br /&gt;
select  @execSql = @execSql + 'kill ' + convert(char(10), spid) + CHAR(13)+CHAR(10)  &lt;br /&gt;
from    master.dbo.sysprocesses  &lt;br /&gt;
where   db_name(dbid) = @databaseName  &lt;br /&gt;
     and  &lt;br /&gt;
     DBID &amp;lt;&amp;gt; 0  &lt;br /&gt;
     and  &lt;br /&gt;
     spid &amp;lt;&amp;gt; @@spid  &lt;br /&gt;
order by spid&lt;br /&gt;
exec(@execSql)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Script para verificar se exste alguma configuração para algum serviço de envio de e-mail ativado&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT * FROM CONFIGURACAO &lt;br /&gt;
WHERE DS_CHAVE = 'ENVIA_EMAIL_CLIENTE_PEDIDO_EXPORTADO'&lt;br /&gt;
&lt;br /&gt;
SELECT * FROM CONFIGURACAO &lt;br /&gt;
WHERE DS_CHAVE = 'ENVIA_EMAIL_CLIENTE_PEDIDO_NAO_EFETIVADO'&lt;br /&gt;
&lt;br /&gt;
SELECT * FROM CONFIGURACAO &lt;br /&gt;
WHERE DS_CHAVE = 'ENVIA_EMAIL_FINANC_NOVO_CLIENTE'&lt;br /&gt;
&lt;br /&gt;
SELECT * FROM CONFIGURACAO &lt;br /&gt;
WHERE DS_CHAVE = 'ENVIA_EMAIL_SUPERVISOR_PEDIDO_PENDENTE'&lt;br /&gt;
&lt;br /&gt;
SELECT * FROM CONFIGURACAO &lt;br /&gt;
WHERE DS_CHAVE = 'CONDICAO_PAGAMENTO_ESPECIAL'&lt;br /&gt;
&lt;br /&gt;
SELECT * FROM CONFIGURACAO &lt;br /&gt;
WHERE DS_CHAVE = 'SP_ENVIA_EMAIL_CLIENTE_PEDIDO_CRIACAO'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Script para ver todas as foreign keys do banco&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT &lt;br /&gt;
 KCU1.CONSTRAINT_NAME AS 'FK_Nome_Constraint'&lt;br /&gt;
 , KCU1.TABLE_NAME AS 'FK_Nome_Tabela'&lt;br /&gt;
 , KCU1.COLUMN_NAME AS 'FK_Nome_Coluna'&lt;br /&gt;
 , FK.is_disabled AS 'FK_Esta_Desativada'&lt;br /&gt;
 , KCU2.CONSTRAINT_NAME AS 'PK_Nome_Constraint_Referenciada'&lt;br /&gt;
 , KCU2.TABLE_NAME AS 'PK_Nome_Tabela_Referenciada'&lt;br /&gt;
 , KCU2.COLUMN_NAME AS 'PK_Nome_Coluna_Referenciada'&lt;br /&gt;
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS RC&lt;br /&gt;
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU1&lt;br /&gt;
ON KCU1.CONSTRAINT_CATALOG = RC.CONSTRAINT_CATALOG &lt;br /&gt;
 AND KCU1.CONSTRAINT_SCHEMA = RC.CONSTRAINT_SCHEMA&lt;br /&gt;
 AND KCU1.CONSTRAINT_NAME = RC.CONSTRAINT_NAME&lt;br /&gt;
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU2&lt;br /&gt;
ON KCU2.CONSTRAINT_CATALOG = RC.UNIQUE_CONSTRAINT_CATALOG &lt;br /&gt;
 AND KCU2.CONSTRAINT_SCHEMA = RC.UNIQUE_CONSTRAINT_SCHEMA&lt;br /&gt;
 AND KCU2.CONSTRAINT_NAME = RC.UNIQUE_CONSTRAINT_NAME&lt;br /&gt;
 AND KCU2.ORDINAL_POSITION = KCU1.ORDINAL_POSITION&lt;br /&gt;
JOIN sys.foreign_keys FK on FK.name = KCU1.CONSTRAINT_NAME&lt;br /&gt;
&lt;br /&gt;
--where KCU1.CONSTRAINT_NAME like '%FK_PEDIDO_EXCLUIDO__PEDIDO%'&lt;br /&gt;
Order by &lt;br /&gt;
KCU1.TABLE_NAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Script para Cadastro de Menu do Portal&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- SELECT * FROM MENU WHERE DS_MENU IN('Cadastro', 'Bonificação','Associada ao Pedido')&lt;br /&gt;
-- UPDATE MENU SET DS_URL = null WHERE CD_MENU = 130&lt;br /&gt;
-- SELECT * FROM MENU WHERE CD_MENU_PAI = 1&lt;br /&gt;
&lt;br /&gt;
-- INCLUSÃO DE MENU -- &lt;br /&gt;
DECLARE @dsMenu    VARCHAR(100), &lt;br /&gt;
        @dsMenuPai VARCHAR(100), &lt;br /&gt;
        @cdMenuPai INT &lt;br /&gt;
&lt;br /&gt;
SELECT @dsMenu = 'Parâmetros de Configuração', &lt;br /&gt;
       @dsMenuPai = 'Cadastro'&lt;br /&gt;
 &lt;br /&gt;
SELECT	@dsMenu = LTRIM(RTRIM(@dsMenu)),&lt;br /&gt;
		@dsMenuPai = LTRIM(RTRIM(@dsMenuPai))&lt;br /&gt;
&lt;br /&gt;
SET @cdMenuPai = (SELECT TOP 1 cd_menu &lt;br /&gt;
                  FROM   menu &lt;br /&gt;
                  WHERE  ds_menu = @dsMenuPai)&lt;br /&gt;
&lt;br /&gt;
IF ( @cdMenuPai IS NOT NULL ) &lt;br /&gt;
  BEGIN &lt;br /&gt;
      IF NOT EXISTS (SELECT 1 &lt;br /&gt;
                     FROM   menu &lt;br /&gt;
                     WHERE  ds_menu = @dsMenu &lt;br /&gt;
                            AND cd_menu_pai = @cdMenuPai) &lt;br /&gt;
        BEGIN &lt;br /&gt;
            INSERT INTO menu &lt;br /&gt;
                        (cd_menu, &lt;br /&gt;
                         ds_menu, &lt;br /&gt;
                         ds_url, &lt;br /&gt;
                         ds_param, &lt;br /&gt;
                         cd_menu_pai, &lt;br /&gt;
                         id_ativo) &lt;br /&gt;
            SELECT Max(Isnull(cd_menu, 0)) + 1, &lt;br /&gt;
                   @dsMenu, &lt;br /&gt;
                   @dsMenu, &lt;br /&gt;
                   NULL, &lt;br /&gt;
                   @cdMenuPai, &lt;br /&gt;
                   'S' &lt;br /&gt;
            FROM   menu &lt;br /&gt;
            &lt;br /&gt;
            PRINT '-----------------  MENU CADASTRADO COM SUCESSO  -----------------'&lt;br /&gt;
			PRINT 'FOI CADASTRADO O SUBMENU &amp;quot;'+ @dsMenu + '&amp;quot; NO MENU &amp;quot;'+ @dsMenuPai + '&amp;quot;!'&lt;br /&gt;
        END &lt;br /&gt;
        ELSE&lt;br /&gt;
        BEGIN&lt;br /&gt;
			PRINT '-----------------  FALHA AO CADASTRAR MENU  -----------------'&lt;br /&gt;
			PRINT 'JÁ EXISTE O SUBMENU &amp;quot;'+ @dsMenu + '&amp;quot; NO MENU &amp;quot;'+ @dsMenuPai + '&amp;quot;!'&lt;br /&gt;
        END&lt;br /&gt;
  END &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Conjunto de Selects para visualizar se há algum desconto sendo persistido na base do Mobile&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select  * from desconto_produto;&lt;br /&gt;
select * from DESCONTO_ORG_PRODUTO;&lt;br /&gt;
select * from DESCONTO_MEGAZORD;&lt;br /&gt;
select * from DESCONTO_ICMS_DIF;&lt;br /&gt;
select * from DESCONTO_CLIENTE_FORNEC;&lt;br /&gt;
select * from DESCONTO_CLIENTE;&lt;br /&gt;
select * from DESCONTO_FORNECEDOR;&lt;br /&gt;
select * from DESCONTO_MEGAZORD_SEGMENTO;&lt;br /&gt;
select * from DESCONTO_UF;&lt;br /&gt;
select  * from desco_cliente_familia;&lt;br /&gt;
select * from DESCO_GRUP_CLIEN_FAMIL;&lt;br /&gt;
select * from desconto_cliente;&lt;br /&gt;
select  * from DESCO_VENDEDOR_FAMILIA;&lt;br /&gt;
select * from DESCO_GRUP_CLIEN_FAMIL;&lt;br /&gt;
select * from DESCO_GRUP_CLIENT_VEND;&lt;br /&gt;
select * from DESCO_GRUPO_CLIEN_PROD;&lt;br /&gt;
select * from DESCONTO_VEND_PRODUTO;&lt;br /&gt;
select * from DESCONTO_UF_PRODUTO;&lt;br /&gt;
select * from DESCONTO_UF_FAMILIA;&lt;br /&gt;
&lt;br /&gt;
select * from DESCONTO_CLIENTE_PRODUT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Select para contar os registros de uma tabela sem derrubar o banco&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM (row_count)&lt;br /&gt;
FROM sys.dm_db_partition_stats&lt;br /&gt;
WHERE object_id=OBJECT_ID('log_alteracao_usuario')   &lt;br /&gt;
AND (index_id=0 or index_id=1);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Desabilitar as triggers de geração de registros &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select 'alter table '+ OBJECT_NAME(parent_id)+ ' disable trigger '+name from sys.triggers&lt;br /&gt;
where name like 'log%'&lt;br /&gt;
order by 1, name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Habilitar as triggers de geração de registros &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select 'alter table '+ OBJECT_NAME(parent_id)+ ' enable trigger '+name from sys.triggers&lt;br /&gt;
where name like 'log%'&lt;br /&gt;
order by 1, name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Consulta para ver os processos em execução no banco da camil&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select DB_NAME(dbid),* from sys.sysprocesses&lt;br /&gt;
where program_name like '%ssmicro%'&lt;br /&gt;
and status like '%run%'&lt;br /&gt;
&lt;br /&gt;
dbcc inputbuffer(61)&lt;br /&gt;
dbcc inputbuffer(65)&lt;br /&gt;
guarda essa consulta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Listar todas as bases ativas criando um use bd_ssm_nomeempresa&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select 'Use '+name+';' from sys.databases&lt;br /&gt;
where  &lt;br /&gt;
	name like 'bd_ssm_%' &lt;br /&gt;
	and state_desc = 'online' &lt;br /&gt;
	and name not like '%prontaentrega%' &lt;br /&gt;
	and name not like '%adm%' &lt;br /&gt;
order by name asc;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Contar os registros da log_alteracao_usuario sem parar o banco de dados&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM (row_count)&lt;br /&gt;
FROM sys.dm_db_partition_stats&lt;br /&gt;
WHERE object_id=OBJECT_ID('log_alteracao_usuario')   &lt;br /&gt;
AND (index_id=0 or index_id=1);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Truncar tabela de log&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TRUNCATE TABLE LOG_ALTERACAO_USUARIO;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Usando a sys.databases de forma inteligente para economizar trabalho&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select 'use ' + name + '; select ' +name + ',* from CAMPO where cd_campo = 23;'&lt;br /&gt;
from sys.databases&lt;br /&gt;
where name like 'bd_ssm_%' and state_desc &amp;lt;&amp;gt; 'OFFLINE'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Listar todos os bancos de dados de empresa da softsite&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select name from sys.databases&lt;br /&gt;
where name like 'bd_ssm_%';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Limpeza de cadastros do ADM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT E.NM_EMPRESA, EB.DS_DATABASE, * FROM EMPRESA E &lt;br /&gt;
INNER JOIN EMPRESA_BD EB ON (E.CD_EMPRESA = EB.CD_EMPRESA)&lt;br /&gt;
INNER JOIN sys.sysdatabases SD ON (SD.name = EB.DS_DATABASE) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT E.CD_EMPRESA, E.NM_EMPRESA, EB.DS_DATABASE, * FROM EMPRESA E &lt;br /&gt;
LEFT JOIN EMPRESA_BD EB ON (E.CD_EMPRESA = EB.CD_EMPRESA)&lt;br /&gt;
LEFT JOIN sys.sysdatabases SD ON (SD.name = EB.DS_DATABASE)&lt;br /&gt;
WHERE &lt;br /&gt;
	SD.name IS NULL	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SELECT E.CD_EMPRESA, E.NM_EMPRESA, EB.DS_DATABASE, * FROM EMPRESA E &lt;br /&gt;
LEFT JOIN EMPRESA_BD EB ON (E.CD_EMPRESA = EB.CD_EMPRESA)&lt;br /&gt;
LEFT JOIN sys.sysdatabases SD ON (SD.name = EB.DS_DATABASE COLLATE SQL_Latin1_General_CP1_CI_AS) &lt;br /&gt;
INNER JOIN sys.databases SBD ON (SBD.name = EB.DS_DATABASE COLLATE SQL_Latin1_General_CP1_CI_AS) &lt;br /&gt;
WHERE &lt;br /&gt;
	state_desc = 'OFFLINE'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Tabelas que tem que ser analisadas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EMPRESA_SYNC_SISTEMA&lt;br /&gt;
EMPRESA_SYNC_BD&lt;br /&gt;
EMPRESA_SISTEMA&lt;br /&gt;
EMPRESA_BD&lt;br /&gt;
EMPRESA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Deletes necessários para limpar as bases&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Na base ADM:&lt;br /&gt;
select * from empresa order by nm_empresa asc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DELETE FROM EMPRESA_SYNC_BD&lt;br /&gt;
WHERE CD_EMPRESA IN &lt;br /&gt;
(1129)&lt;br /&gt;
&lt;br /&gt;
DELETE FROM EMPRESA_BD&lt;br /&gt;
WHERE CD_EMPRESA IN &lt;br /&gt;
(1129)&lt;br /&gt;
&lt;br /&gt;
DELETE FROM EMPRESA_SYNC_SISTEMA&lt;br /&gt;
WHERE CD_EMPRESA IN &lt;br /&gt;
(1129)&lt;br /&gt;
&lt;br /&gt;
DELETE FROM EMPRESA_SISTEMA&lt;br /&gt;
WHERE CD_EMPRESA IN &lt;br /&gt;
(1129)&lt;br /&gt;
&lt;br /&gt;
DELETE FROM EMPRESA&lt;br /&gt;
WHERE CD_EMPRESA IN &lt;br /&gt;
(1129)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Verificar quantidade de conexões abertas por base utilizadas pelo portal&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select db_name(dbid), count(*)&lt;br /&gt;
from sys.sysprocesses&lt;br /&gt;
where 1=1&lt;br /&gt;
--and   db_name(dbid) = 'bd_ssm_criasim'&lt;br /&gt;
and program_name = 'jTDS'&lt;br /&gt;
group &lt;br /&gt;
by db_name(dbid)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Comando para gerar os drops das Triggers do claudus&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select ' drop trigger ', tr.name  from sys.sysobjects tr&lt;br /&gt;
inner join sys.sysobjects tb on tr.parent_obj = tb.id and tb.xtype = 'U'&lt;br /&gt;
where tr.xtype = 'tr'&lt;br /&gt;
and tr.name like 'TR_AUDIT%'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Remover empresas do import que não estão mais acessíveis na base&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
use bd_ssm_adm&lt;br /&gt;
&lt;br /&gt;
select  * &lt;br /&gt;
--update es set id_realiza_importacao&lt;br /&gt;
from EMPRESA_SISTEMA es&lt;br /&gt;
inner join empresa_bd bd on es.CD_EMPRESA = bd.CD_EMPRESA &lt;br /&gt;
left  join sys.databases d on d.name = bd.DS_DATABASE collate Latin1_General_CI_AS&lt;br /&gt;
where (d.name is null or d.snapshot_isolation_state_desc = 'OFF')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Listar algo em todas as bases numa consulta só&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select 'select ''' + name + ''', *  from ' + name + '.dbo.INTERFACEERPCONFIGURACAOPARAMETRO where VR_PARAMETRO NOT LIKE ''%PEDIDO%ITEM_PEDIDO%'' UNION ALL'&lt;br /&gt;
from sys.databases&lt;br /&gt;
where name like 'bd_ssm_%' and state_desc &amp;lt;&amp;gt; 'OFFLINE' and (name not like '%pronta%' AND name not like 'bd_ssm_adm')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Descobrindo as empresas que importam&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
update es set id_realiza_importacao&lt;br /&gt;
from EMPRESA_SISTEMA es&lt;br /&gt;
inner join empresa_bd bd on es.CD_EMPRESA = bd.CD_EMPRESA &lt;br /&gt;
left  join sys.databases d on d.name = bd.DS_DATABASE collate Latin1_General_CI_AS&lt;br /&gt;
where (d.name is null or d.snapshot_isolation_state_desc = 'OFF')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*UPDATE para atualizar dados duplicados da tabela 001&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
UPDATE LISTA_PRODUTO_001&lt;br /&gt;
SET data_delete = data_insert+('00:00:00.200')&lt;br /&gt;
where id in (&lt;br /&gt;
-2146273629,&lt;br /&gt;
-2146273628,&lt;br /&gt;
-2146273627,&lt;br /&gt;
-2146273626,&lt;br /&gt;
-2146273625,&lt;br /&gt;
-2146273624,&lt;br /&gt;
-2146273623,&lt;br /&gt;
-2146273622,&lt;br /&gt;
-2146273621)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Comando para concatenar dentro do group by &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
STUFF&lt;br /&gt;
&lt;br /&gt;
SELECT NM_ESTADO,&lt;br /&gt;
       NM_CIDADE,&lt;br /&gt;
       STUFF(&lt;br /&gt;
               (SELECT DISTINCT ',' + NM_FANTASIA&lt;br /&gt;
                FROM cliente&lt;br /&gt;
                WHERE NM_ESTADO = a.NM_ESTADO&lt;br /&gt;
                  AND NM_CIDADE = a.NM_CIDADE&lt;br /&gt;
                  FOR XML PATH ('')) , 1, 1, '') AS URLList&lt;br /&gt;
FROM cliente AS a&lt;br /&gt;
WHERE NM_ESTADO = 'CE'&lt;br /&gt;
  AND NM_CIDADE = 'fortaleza'&lt;br /&gt;
GROUP BY NM_ESTADO,&lt;br /&gt;
         NM_CIDADE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Template base pra criar o script de uma tabela NOVA pro TJ&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* Criar a tabela TMP pra empresas que utilizam import */&lt;br /&gt;
CREATE TABLE [dbo].[DESCONTO_LOTE_OV_TP_TMP]&lt;br /&gt;
  ( &lt;br /&gt;
     CD_LOTE      int NOT NULL,  &lt;br /&gt;
     CD_ORG_VENDA VARCHAR(20) COLLATE SQL_LATIN1_GENERAL_CP1_CI_AI NOT NULL, &lt;br /&gt;
     CD_TAB_PRECO INT NOT NULL, &lt;br /&gt;
	 PR_DESCONTO  DECIMAL(18, 6) NOT NULL,&lt;br /&gt;
	CONSTRAINT [PK_DESCONTO_LOTE_OV_TP_TMP] PRIMARY KEY CLUSTERED (&lt;br /&gt;
		[CD_LOTE] ASC,&lt;br /&gt;
		[CD_ORG_VENDA] ASC,&lt;br /&gt;
		[CD_TAB_PRECO] ASC&lt;br /&gt;
	) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]&lt;br /&gt;
) ON [PRIMARY]&lt;br /&gt;
&lt;br /&gt;
/* Criar a tabela de LOG */&lt;br /&gt;
CREATE TABLE LOG_DESCONTO_LOTE_OV_TP&lt;br /&gt;
(&lt;br /&gt;
CD_LOG INT IDENTITY PRIMARY KEY&lt;br /&gt;
,DT_LOG DATETIME NOT NULL&lt;br /&gt;
,TP_OPERACAO VARCHAR(1) NOT NULL&lt;br /&gt;
,ID_KEY VARCHAR(200) NOT NULL&lt;br /&gt;
,CD_LOTE int&lt;br /&gt;
,CD_ORG_VENDA VARCHAR(20)&lt;br /&gt;
,CD_TAB_PRECO INT)&lt;br /&gt;
&lt;br /&gt;
/* Criar tabela 001 seguindo o padrão */&lt;br /&gt;
CREATE TABLE [dbo].[DESCONTO_LOTE_OV_TP_001]&lt;br /&gt;
  ( &lt;br /&gt;
     [id] [int] IDENTITY(-2147483648,1) NOT NULL,&lt;br /&gt;
     CD_LOTE      INT NOT NULL,  &lt;br /&gt;
     CD_ORG_VENDA VARCHAR(20) COLLATE SQL_LATIN1_GENERAL_CP1_CI_AI NOT NULL, &lt;br /&gt;
     CD_TAB_PRECO INT NOT NULL, &lt;br /&gt;
	 PR_DESCONTO  DECIMAL(18, 6) NOT NULL,&lt;br /&gt;
     [data_insert] [datetime] NOT NULL,&lt;br /&gt;
	 [data_update] [datetime] NULL,&lt;br /&gt;
	 [data_delete] [datetime] NULL,&lt;br /&gt;
PRIMARY KEY NONCLUSTERED &lt;br /&gt;
(&lt;br /&gt;
	[id] ASC&lt;br /&gt;
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]&lt;br /&gt;
) ON [PRIMARY]&lt;br /&gt;
&lt;br /&gt;
/* Adicionar Index */&lt;br /&gt;
CREATE CLUSTERED INDEX PK_DESCONTO_LOTE_OV_TP ON DESCONTO_LOTE_OV_TP_001 (CD_LOTE ASC, CD_ORG_VENDA ASC, CD_TAB_PRECO ASC)&lt;br /&gt;
&lt;br /&gt;
/* Adicionar constraint */&lt;br /&gt;
ALTER TABLE [dbo].[DESCONTO_LOTE_OV_TP_001] ADD  CONSTRAINT [DF_DATA_INSERCAO_DESCONTO]  DEFAULT (getdate()) FOR [data_insert]&lt;br /&gt;
&lt;br /&gt;
/* Criar trigger na tabela nova adicionando os campos necessários */&lt;br /&gt;
CREATE TRIGGER [dbo].[TR_TJ_UPDATE_DESCONTO_LOTE_OV_TP]&lt;br /&gt;
ON [dbo].[DESCONTO_LOTE_OV_TP_001]&lt;br /&gt;
instead OF UPDATE&lt;br /&gt;
AS&lt;br /&gt;
  BEGIN&lt;br /&gt;
      SET nocount ON;&lt;br /&gt;
&lt;br /&gt;
      UPDATE t&lt;br /&gt;
      SET    t.data_update = case when s.data_delete is null then  Getdate() else t.data_update end ,&lt;br /&gt;
             T.CD_LOTE = S.CD_LOTE,&lt;br /&gt;
			 T.CD_ORG_VENDA = S.CD_ORG_VENDA,&lt;br /&gt;
			 T.CD_TAB_PRECO = S.CD_TAB_PRECO,&lt;br /&gt;
			 T.PR_DESCONTO = S.PR_DESCONTO,&lt;br /&gt;
             t.data_delete = s.data_delete&lt;br /&gt;
      FROM   DESCONTO_LOTE_OV_TP_001 t&lt;br /&gt;
             INNER JOIN inserted s&lt;br /&gt;
                     ON ( t.id = s.id )&lt;br /&gt;
&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
/* Criar a view TJ */&lt;br /&gt;
CREATE VIEW [dbo].[DESCONTO_LOTE_OV_TP_TJ]&lt;br /&gt;
AS&lt;br /&gt;
  SELECT id,&lt;br /&gt;
         CD_LOTE, CD_ORG_VENDA, CD_TAB_PRECO, PR_DESCONTO&lt;br /&gt;
  FROM   DESCONTO_LOTE_OV_TP_001&lt;br /&gt;
  WHERE  data_delete IS NULL&lt;br /&gt;
&lt;br /&gt;
/* Criar Trigger da view */&lt;br /&gt;
CREATE TRIGGER [dbo].[TR_TJ_DELETE_DESCONTO_LOTE_OV_TP]&lt;br /&gt;
ON [dbo].[DESCONTO_LOTE_OV_TP_TJ]&lt;br /&gt;
instead OF DELETE&lt;br /&gt;
AS&lt;br /&gt;
  BEGIN&lt;br /&gt;
      SET nocount ON;&lt;br /&gt;
&lt;br /&gt;
      UPDATE t&lt;br /&gt;
      SET    data_delete = Getdate()&lt;br /&gt;
      FROM   deleted s&lt;br /&gt;
             INNER JOIN DESCONTO_LOTE_OV_TP_001 t&lt;br /&gt;
                     ON s.id = t.id&lt;br /&gt;
&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
/* Criar a view */&lt;br /&gt;
CREATE VIEW [dbo].[DESCONTO_LOTE_OV_TP]&lt;br /&gt;
AS&lt;br /&gt;
  SELECT CD_LOTE, CD_ORG_VENDA, CD_TAB_PRECO, PR_DESCONTO&lt;br /&gt;
  FROM   DESCONTO_LOTE_OV_TP_tj&lt;br /&gt;
&lt;br /&gt;
/* Criar a função de navegação */&lt;br /&gt;
CREATE FUNCTION fn_REGISTRO_SYNC_DESCONTO_LOTE_OV_TP(@ID_VENDEDOR  INT,&lt;br /&gt;
                                                           @DT_LAST_SINC DATETIME)&lt;br /&gt;
RETURNS TABLE&lt;br /&gt;
AS&lt;br /&gt;
    RETURN&lt;br /&gt;
      (SELECT	DLOT.id,&lt;br /&gt;
				DLOT.CD_LOTE,&lt;br /&gt;
				DLOT.CD_ORG_VENDA,&lt;br /&gt;
				DLOT.CD_TAB_PRECO,&lt;br /&gt;
				DLOT.PR_DESCONTO,&lt;br /&gt;
				DLOT.DATA_DELETE&lt;br /&gt;
        FROM   DESCONTO_LOTE_OV_TP_001 DLOT&lt;br /&gt;
		WHERE  &lt;br /&gt;
			(&lt;br /&gt;
				( &lt;br /&gt;
					( &lt;br /&gt;
						( DLOT.DATA_INSERT &amp;gt;= @DT_LAST_SINC&lt;br /&gt;
							OR DLOT.DATA_UPDATE &amp;gt;= @DT_LAST_SINC &lt;br /&gt;
						)&lt;br /&gt;
						AND DLOT.DATA_DELETE IS NULL &lt;br /&gt;
					)&lt;br /&gt;
					OR ( DLOT.DATA_DELETE &amp;gt;= @DT_LAST_SINC&lt;br /&gt;
							AND DLOT.DATA_INSERT &amp;lt; @DT_LAST_SINC&lt;br /&gt;
							AND NOT EXISTS(SELECT 1&lt;br /&gt;
											FROM   DESCONTO_LOTE_OV_TP_001 T&lt;br /&gt;
											WHERE  DLOT.CD_LOTE = T.CD_LOTE&lt;br /&gt;
											AND DLOT.CD_ORG_VENDA = T.CD_ORG_VENDA&lt;br /&gt;
											AND DLOT.CD_TAB_PRECO = T.CD_TAB_PRECO&lt;br /&gt;
												AND T.DATA_DELETE IS NULL&lt;br /&gt;
											)&lt;br /&gt;
					)&lt;br /&gt;
					OR ( &lt;br /&gt;
						@DT_LAST_SINC IS NULL&lt;br /&gt;
						AND DLOT.DATA_DELETE IS NULL&lt;br /&gt;
					)&lt;br /&gt;
				) &lt;br /&gt;
			)&lt;br /&gt;
		)&lt;br /&gt;
&lt;br /&gt;
/* Adicionando a função na tabela */&lt;br /&gt;
INSERT INTO TAMOJUNTO_TABELA_FUNCAO (NM_TABLE, NM_FN, FL_ATIVA) VALUES ('DESCONTO_LOTE_OV_TP', 'fn_REGISTRO_SYNC_DESCONTO_LOTE_OV_TP', 1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rafael</name></author>
	</entry>
	<entry>
		<id>http://wiki.geosales.com.br:8000/index.php?title=Hist%C3%B3rico_de_Carga&amp;diff=5953</id>
		<title>Histórico de Carga</title>
		<link rel="alternate" type="text/html" href="http://wiki.geosales.com.br:8000/index.php?title=Hist%C3%B3rico_de_Carga&amp;diff=5953"/>
		<updated>2018-01-04T17:25:52Z</updated>

		<summary type="html">&lt;p&gt;Rafael: /* Regras de Negócio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Histórico de Revisões ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data&lt;br /&gt;
! Quem &lt;br /&gt;
! Comentários &lt;br /&gt;
|-&lt;br /&gt;
|  10/11/2017  ||  Renato Lima||  Criação do Documento &lt;br /&gt;
|-&lt;br /&gt;
|  10/11/2017  ||  Ryvane Maria    ||  Edição do Documento&lt;br /&gt;
|-&lt;br /&gt;
|  18/12/2017  ||  Ryvane Maria    ||  Inclusão do modelo do relatório de planilha excel.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Necessidade ==&lt;br /&gt;
Com a criação da funcionalidade de montagem de carga, tornou-se necessário criar um breve histórico onde o usuário possa verificar as cargas que já foram montadas e salvas, tendo elas já sido enviadas para entrega ou não. Esse histórico deve ter como finalidade possibilitar ao usuário a edição de cargas salvas que ainda não foram finalizadas, além da visualização de informações importantes de cargas já finalizadas.&lt;br /&gt;
&lt;br /&gt;
== Solução ==&lt;br /&gt;
&lt;br /&gt;
Criação de uma funcionalidade no sistema, posterior a de montagem de carga, onde será permitido ao usuário visualizar as cargas já montadas e salvas. &lt;br /&gt;
&lt;br /&gt;
Através de um histórico de cargas, será permitido ao usuário realizar a edição de cargas pendentes, ou seja, que foram salvas mas ainda não foram finalizadas. Além disso, será permitido também gerar relatórios referentes as cargas existentes, tendo elas já sido finalizadas ou não.&lt;br /&gt;
&lt;br /&gt;
Logo abaixo observa-se o protótipo inicial da solução da tela de histórico de carga.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Tela HistoricoDeCarga.png|500px]]&lt;br /&gt;
&lt;br /&gt;
=Implementação=&lt;br /&gt;
&lt;br /&gt;
Será criada uma nova tela, que apresentará um breve resumo das cargas que foram criadas na tela de montagem de carga.&lt;br /&gt;
&lt;br /&gt;
As cargas serão gerenciadas e visualizadas a partir desta tela, seguindo as regras de negócio deste documento.&lt;br /&gt;
&lt;br /&gt;
Inicialmente, a tela apresentará opções para filtros de cargas. É permitido ao usuário adicionar alguns filtros de pesquisa, como por exemplo: código da carga, período de emissão e de expedição, data de faturamento, status da carga; se ela já foi finalizada, ou ainda está em aberto, quantidade de paletes, UF, cidade e organização de venda, como mostra a imagem abaixo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:HistoricoCarga Filtros.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Após a seleção e a pesquisa mediante os filtros desejados, o usuário se depara com uma lista de cargas, que podem já ter sido finalizadas ou não, como mostra a imagem abaixo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:HistoricoCarga listaDeCargas.png|700px]]&lt;br /&gt;
&lt;br /&gt;
A partir desta lista é possível visualizar algumas informações importantes a respeito das cargas filtradas, como código da carga, transportadora, valor total do frete e valor total da carga, data de expedição, peso total, quantidade de paletes, status, código do cliente/loja, nome do cliente, estado, quantidade de caixas, número e data de emissão da nota fiscal, código de romaneio e tipo de veículo. &lt;br /&gt;
&lt;br /&gt;
Para que todos esses dados possam ser visualizados em uma única tabela, será implementado um scroll com formatação horizontal, para facilitar a visualização desses campos. &lt;br /&gt;
&lt;br /&gt;
No canto direito da lista de cargas filtradas, podem ser encontrados um conjunto de botões que permitem ao usuário realizar algumas operações sob as cargas. &lt;br /&gt;
&lt;br /&gt;
O primeiro ícone, que representa o botão 'visualizar', ao ser clicado, aciona uma pop-up com todas as informações a respeito da carga em questão. &lt;br /&gt;
&lt;br /&gt;
O botão 'editar', representado pelo segundo ícone, redireciona o usuário à tela de montagem de carga e possibilita alterar informações nas cargas que ainda não foram finalizadas, incluindo remover ou adicionar pedidos, finalizar a carga, e qualquer outra operação que seja possível na tela 'Montagem de Carga'. &lt;br /&gt;
&lt;br /&gt;
Caso a carga já tenha sido finalizada pelo usuário, o ícone 'editar' será bloqueado e se tornará 50% mais opaco, sinalizando ao usuário a sua indisponibilidade. &lt;br /&gt;
&lt;br /&gt;
O terceiro ícone, denominado 'gerar PDF', disponibiliza para download no formato PDF um breve relatório da carga selecionada, contendo algumas informações importantes sobre a carga e os pedidos contidos nela. O modelo deste relatório será o padrão do sistema, e as informações contidas nele serão as mesmas que serão informadas no protótipo de planilha Excel abaixo.&lt;br /&gt;
&lt;br /&gt;
O quarto ícone, denominado 'gerar Excel', disponibiliza para download no formato Excel um breve relatório da carga selecionada, contendo algumas informações importantes sobre a carga e os pedidos contidos nela. A planilha a ser gerada tem como protótipo o modelo abaixo: &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Planilha montagem de carga.png|550px]]&lt;br /&gt;
&lt;br /&gt;
O botão 'excluir' está representado pelo ícone 'lixeira' e possibilita ao usuário excluir da lista as cargas que ainda não foram finalizadas. Ao excluir uma carga, todos os dados contidos nela serão apagados e os dados serão perdidos.&lt;br /&gt;
&lt;br /&gt;
Igualmente ao botão 'editar', o botão 'excluir' só pode ser acionado em cargas que ainda não foram finalizadas. Caso a carga já tenha sido finalizada pelo usuário, o ícone 'excluir' será bloqueado e se tornará 50% mais opaco, sinalizando ao usuário a sua indisponibilidade. &lt;br /&gt;
&lt;br /&gt;
Caso o número de cargas filtradas exceda a quantidade escolhida de cargas por página, que pode ser configurada no canto inferior direito da lista de cargas filtradas, é criada uma nova página. A navegação entre as páginas existentes é feita através dos botões 'próxima página' e 'página anterior', também situados no canto inferior direito da lista. Entre estes dois botões o usuário pode visualizar o número da página em que ele se encontra.&lt;br /&gt;
&lt;br /&gt;
'''Obs.: Todos os protótipos acima são meramente ilustrativos e, no momento do desenvolvimento, podem sofrer alguma alteração, em virtude de viabilidade técnica.&lt;br /&gt;
'''&lt;br /&gt;
==Regras de Negócio==&lt;br /&gt;
&lt;br /&gt;
'''[RN1]''' – Para realizar a edição na montagem da carga, as cargas não podem estar com o status de finalizadas. Ou seja, as cargas que já foram finalizadas não podem ser editadas.&lt;br /&gt;
&lt;br /&gt;
'''[RN2]''' – As cargas que já foram finalizadas não podem ser excluídas.&lt;br /&gt;
&lt;br /&gt;
'''[RN3]''' – Ao excluir uma carga, todos os dados contidos nela serão apagados e os pedidos que compõe a carga ficará disponível para ser incluídos em outra carga e não serão integrados com ERP.  &lt;br /&gt;
&lt;br /&gt;
'''[RN4]''' – Ao excluir uma carga, os pedidos contidos na carga devem ser liberados para serem adicionados a outra carga.&lt;br /&gt;
&lt;br /&gt;
== Aprovação ==&lt;br /&gt;
&lt;br /&gt;
Considero aprovada a documentação da funcionalidade especificada acima, e autorizo a implementação da mesma no Sistema GeoSales, em nome da Organização a qual estou vinculado. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px&amp;quot; |Setor &lt;br /&gt;
! style=&amp;quot;width:180px&amp;quot; |Aprovado Por&lt;br /&gt;
! style=&amp;quot;width:200px&amp;quot; |Data&lt;br /&gt;
! style=&amp;quot;width:300px&amp;quot; |Assinatura&lt;br /&gt;
|- &lt;br /&gt;
| Gerente TI&lt;br /&gt;
| Jean Semedo&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| Gerente Projeto&lt;br /&gt;
| Felipe Suppi&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| Gerente Comercial&lt;br /&gt;
| Fernanda Gomes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rafael</name></author>
	</entry>
	<entry>
		<id>http://wiki.geosales.com.br:8000/index.php?title=Qualidade&amp;diff=5951</id>
		<title>Qualidade</title>
		<link rel="alternate" type="text/html" href="http://wiki.geosales.com.br:8000/index.php?title=Qualidade&amp;diff=5951"/>
		<updated>2017-12-21T13:29:28Z</updated>

		<summary type="html">&lt;p&gt;Rafael: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Bugs Conhecidos|Bugs Conhecidos]]&lt;br /&gt;
*[[Ativar Funcionalidades]]&lt;br /&gt;
**[[Tela de Aprovação]]&lt;br /&gt;
**[[Instalar Geosales no MAC]]&lt;br /&gt;
Modelos e Padrões de Qualidade&lt;br /&gt;
**[[Padrão de Reporte de Bug]]&lt;br /&gt;
**[[Padrão de solicitação de melhorias]]&lt;/div&gt;</summary>
		<author><name>Rafael</name></author>
	</entry>
	<entry>
		<id>http://wiki.geosales.com.br:8000/index.php?title=Qualidade&amp;diff=5950</id>
		<title>Qualidade</title>
		<link rel="alternate" type="text/html" href="http://wiki.geosales.com.br:8000/index.php?title=Qualidade&amp;diff=5950"/>
		<updated>2017-12-21T13:28:49Z</updated>

		<summary type="html">&lt;p&gt;Rafael: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Bugs Conhecidos|Bugs Conhecidos]]&lt;br /&gt;
*[[Ativar Funcionalidades]]&lt;br /&gt;
**[[Tela de Aprovação]]&lt;br /&gt;
**[[Instalar Geosales no MAC]]&lt;br /&gt;
*[[Modelos e Padrões de Qualidade]]&lt;br /&gt;
[[Padrão de Reporte de Bug]]&lt;br /&gt;
**[[Padrão de solicitação de melhorias]]&lt;/div&gt;</summary>
		<author><name>Rafael</name></author>
	</entry>
	<entry>
		<id>http://wiki.geosales.com.br:8000/index.php?title=Qualidade&amp;diff=5949</id>
		<title>Qualidade</title>
		<link rel="alternate" type="text/html" href="http://wiki.geosales.com.br:8000/index.php?title=Qualidade&amp;diff=5949"/>
		<updated>2017-12-21T13:27:23Z</updated>

		<summary type="html">&lt;p&gt;Rafael: Modelos e Padrões de Qualidade&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Bugs Conhecidos|Bugs Conhecidos]]&lt;br /&gt;
*[[Ativar Funcionalidades]]&lt;br /&gt;
**[[Tela de Aprovação]]&lt;br /&gt;
**[[Instalar Geosales no MAC]]&lt;br /&gt;
*[[Modelos e Padrões de Qualidade]]&lt;br /&gt;
**[[Padrão de Reporte de Bug]]&lt;br /&gt;
**[[Padrão de solicitação de melhorias]]&lt;/div&gt;</summary>
		<author><name>Rafael</name></author>
	</entry>
</feed>