Introdução
Este documento de procedimento operacional tem o intuito de instruir o Analista a realizar a migração do saldo entre estabelecimentos, utilizando a inserção de itens no orçamento via banco de dados.
Descrição
Para realizar a transferência ou venda de todo o saldo para outro estabelecimento será necessário seguir os seguintes passo:
1. Dependendo do acordado com o cliente, será necessário criar um nova E/S na R117 para realizar esta movimentação.
Caso seja uma venda sem gerar financeiro será necessário desmarcar a opção gerar títulos,

Validar qual será o tipo de preço utilizado na saída

1.1 Ao utilizar uma operação de transferência as configurações abaixo permitem que a entrada seja automática no estabelecimento de destino, sendo necessário apenas realizar a confirmação na R387, caso a empresa use a confirmação de entrada de nota fiscal
Tipo E/S = Transferência Saída
Perm. Oper. Loja? Define se este tipo de entrada ou saída permite operações entre lojas com raízes de CNPJ diferentes.
Desmarcado: Se o estabelecimento de destino pertencer à mesma raiz de CNPJ (relação matriz e filial).
Marcado: Se o estabelecimento de destino possuir uma raiz de CNPJ diferente.
Gera nota de Entrada? Sim, e selecionar qual será a E/S utilizada para entrada

Caso a opção Perm. Oper. Loja? esteja desmarcada e a raiz CNPJ do estabelecimento de destino não tenha relação de matriz e filial esse será o bloqueio apresentado.

2. Criar um orçamento na R419 informando a E/S criada para esta finalidade e inserir o estabelecimento de destino que pode ser a mesma raiz CNPJ ou não.

3. Inserir pelo menos um item no orçamento, pois os demais serão inseridos via banco de dados.

Nota: Se ao inserir o item no orçamento for apresentado a alerta abaixo, utilizar base de conhecimento Configuração Percentual Margem Mínima.
Obs.: as informações tributárias dos itens devem ser validadas com o cliente, bem como a série que será utilizada.
Nota: Caso a série utilizada na movimentação seja pedido 'PD', o ideal é realizar uma transferência e não uma venda. Isso porque, conforme as configurações de E/S no tópico 1.1, o lançamento da nota na R139 é automático. Caso contrário, o lançamento deverá ser manual, visto que a série 'PD' não possui XML.
Obs.: Não inserir mais de 350 itens por nota, caso a quantidade seja maior, criar novos orçamentos.
4. Com o orçamento criado será necessário inserir os demais itens via banco, fazendo as devidas alterações no script, conforme necessário
Exemplo: Cód.: Estabelecimento, campos que usam custo de compra, reposição, preço de venda de compra, código do vendedor, orçamento, informações tributárias.
insert into t0124 select t0177.f0001idempresa as f0001idempresa , 1 as f0002idestab , -- Alterar conforme necessário 1 f0120idorcamento , -- Inserir número do orçamento após a criação na R419 row_number () over (partition by t0177.f0002idestab order by t0177.f0002idestab) + 1 f0124idsequenciaitem , t0177.f0125iditem as f0125iditem , t0125.f0130idembalagemvenda f0130idembalagemvenda , t0125.f0125nome f0124nomeitemvariavel , t0177.f0177saldo f0124quantidade , t0177.f0177saldo f0124quantidadepedida , t0140.f0140valorcustoreposicao as f0124valorprecounitario, -- Alterar conforme necessário t0140.f0140valorcustoreposicao as f0124valorprecotabela , -- Alterar conforme necessário 0.00 f0124percdesconto , 100.00 f0124percdescontopermitido , 0.00 f0124valordesconto , 0.00 f0124valordescontocorpo , 0.00 f0124valorfrete , 0.00 f0124valorseguro , 0.00 f0124valoracrescimofinanceiro , t0140.f0140valorcustoreposicao * t0177.f0177saldo as f0124valortotalitem , -- Alterar conforme necessário t0140.f0140valorcustoreposicao f0124valorcustocompra , -- Alterar conforme necessário t0140.f0140valorcustoreposicao f0124valorcustoreposicao , -- Alterar conforme necessário 60 f0115idcst , -- Alterar conforme necessário t0140.f0108idcondicaoicms f0108idcondicaoicms , t0140.f0140aliquotaicmssaida f0124aliquotaicms , 0.00 f0124valorbasecalculoicms , 0.00 f0124valoricms , 0.00 f0124valormargemicmssubstituicao , 0.00 f0124valorbasecalculoicmssubstituicao , 0.00 f0124valoricmssubstituicao , 0.00 f0124valorisentasicms , (f0140valorcustoreposicao * 10) / 100 f0124valoroutrasicms , -- Alterar conforme necessário t0140.f0110idcondicaoipi f0110idcondicaoipi , -- Alterar conforme necessário 0.00 f0124aliquotaipi , 0.00 f0124valorbasecalculoipi , 0.00 f0124valoripi , 0.00 f0124valorisentasipi , 0.00 f0124valoroutrasipi , 0.00 f0124aliquotaiss , 0.00 f0124valorbasecalculoiss , 0.00 f0124valoriss , 0.00 f0124valorbasecalculoisssubstituicao , 0.00 f0124valorisssubstituicao , 0.00 f0124valorisentasiss , 0.00 f0124valoroutrasiss , 5928 f0082idcfop , -- Alterar conforme necessário 1 f0078idvendedor1 , -- Alterar conforme necessário null f0078idvendedor2 , 0.00 f0124pesoliquido , 0.00 f0124pesobruto , null f0124perccomissaovendedor1 , null f0124perccomissaovendedor2 , null f0124valorcomissaovendedor1 , null f0124valorcomissaovendedor2 , t0177.f0129iddeposito f0129iddeposito , 0 f0124itemoferta , t0140.f0140valorcustoreposicao f0124valorprecotabelacalculado , -- Alterar conforme necessário 0 f0124ipicompoebasecalculoicms , null f0178idoferta , 53 f0356idcstipi , -- Alterar conforme necessário t0140.f0140valorcustoreposicao f0124valorcustocompraoriginal , -- Alterar conforme necessário t0140.f0140valorcustoreposicao f0124valorcustoreposicaooriginal , -- Alterar conforme necessário 0.00 f0124quantidademontagem , 1 f0124confirmado , t0177.f0177saldo f0124quantidadeconfirmada , 'C' f0124statusconfirmacao , f0140valorcustoreposicao f0124valorcustomedio , -- Alterar conforme necessário 0.00 f0124valortaxaadminfinanceira , t0140.f0140valorcustoreposicao f0124valorprecotabelaoriginal , -- Alterar conforme necessário t0140.f0140valorcustoreposicao f0124valorcustomediooriginal , -- Alterar conforme necessário 0.00 f0124perctriangulacao , null f0124basecomissaovendedor1 , null f0124basecomissaovendedor2 , null f0124perccomissaoespecial , null f0124valorcomissaoespecial , null f0124tipocomissaoespecial , 0 f0124faturadoaparte , 1 f0002idestabvendedor1 , -- Alterar conforme necessário null f0002idestabvendedor2 , null f0078idvendedor3 , null f0124perccomissaovendedor3 , null f0124valorcomissaovendedor3 , null f0124basecomissaovendedor3 , null f0002idestabvendedor3 , 5928 f0082idcfoporiginal , null f0124automatico , t0140.f0523idcstpis f0523idcstpis , t0140.f0140aliquotapis f0124aliquotapis , t0140.f0140valorcustoreposicao * t0177.f0177saldo f0124valorbasecalculopis , ((t0140.f0140valorcustoreposicao* t0177.f0177saldo) * (t0140.f0140aliquotapis/100)) as f0124valorpis , -- Alterar conforme necessário null f0124aliquotaquantpissubstituido , null f0124aliquotapissubstituido , null f0124valorbasecalculopissubstituido , null f0124valorpissubstituido , t0140.f0524idcstcofins f0524idcstcofins , t0140.f0140aliquotacofins f0124aliquotacofins , t0140.f0140valorcustoreposicao * t0177.f0177saldo f0124valorbasecalculocofins , -- Alterar conforme necessário ((f0140valorcustoreposicao * t0177.f0177saldo) * (t0140.f0140aliquotacofins/100)) f0124valorcofins , -- Alterar conforme necessário 0 f0124cofinssubstituido , null f0124aliquotaquantcofinssubstituido , null f0124aliquotacofinssubstituido , null f0124valorbasecalculocofinssubstituido , null f0124valorcofinssubstituido , 0.00 f0124valoroutrosimpostos , 0.00 f0124valoroutrosimpostosfora , null f0073idsupervisor1 , null f0002idestabsupervisor1 , null f0124basecomissaosupervisor1 , null f0124perccomissaosupervisor1 , null f0124valorcomissaosupervisor1 , null f0073idsupervisor2 , null f0002idestabsupervisor2 , null f0124basecomissaosupervisor2 , null f0124perccomissaosupervisor2 , null f0124valorcomissaosupervisor2 , null f0073idsupervisor3 , null f0002idestabsupervisor3 , null f0124basecomissaosupervisor3 , null f0124perccomissaosupervisor3 , null f0124valorcomissaosupervisor3 , 0.00 f0124valornaotributadoicms , 0.00 f0124valornaotributadoiss , null f0124codigodebarras , t0125.f0528idncmsh f0528idncmsh , t0140.f0107idnaturezaitens f0107idnaturezaitens , 0.00 f0124percreducaoipi , null f0555csosn , null f0124aliquotacreditoicms , null f0124valorcreditoicms , null f0124perccargamedia , 0.00 f0124percreducaoicms , 0.00 f0124percreducaoicmssubstituicao , null f0303idordemproducao , 1 f0124itemcompoenota , t0125.f0126idunidademedida f0126idunidademedidatributavel , 1.00 f0124fatortributavel , t0177.f0177saldo f0124quantidadetributavel , t0140.f0140valorcustoreposicao f0124valorprecounitariotributavel , -- Alterar conforme necessário 1 f0124auto , (t0140.f0140percentualimpostosfederal + t0140.f0140percentualimpostosestadual + t0140.f0140percentualimpostosmunicipal) as f0124totaldeimpostositem , t0140.f0140valorcustoreposicao f0124valorcustopersonalizavel , -- Alterar conforme necessário t0140.f0140valorcustoreposicao f0124valorcustopersonalizaveloriginal , -- Alterar conforme necessário null f0124pedidocliente , null f0124numeroitempedido , t0140.f0140percentualimpostosfederal f0124totaldeimpostositemfederal , t0140.f0140percentualimpostosestadual f0124totaldeimpostositemestadual , t0140.f0140percentualimpostosmunicipal f0124totaldeimpostositemmunicipal , null f0101idtabelapreco , null f0002idestabordemproducao , null f0124quantidadepneucareca, null f0124valorunitariopneucareca , t0125.f0558idcest f0558idcest , null f0125iditembase , null f0945idconjunto , null f0124baseComissaoAdicional , null f0124valorComissaoAdicional , null f0124percentualComissaoAdicional , null f0124identificadorNaOrdemDeServico , null f0129idDepositoDestino , 0.00 f0124aliquotaIcmsSubstituicao , null f1145idDesoneracaoIcms , 0.00 f0124valorDesoneracaoIcms , 0 f0124subtraiValorDesoneracaoIcmsTotalNota , null f0124despesasforanotaimportacao , 0 f0124deveAtualizarCustosNaRotina11 , null f0124creditosforanotaimportacao , null f0124detalhesDaPoliticaDeMargem , null f0125qtdeMaximaNaOs , '' f0125itensRelacionados , null f0124percicmsdif , null f0124valoricmsdif , null f0124valoricmsop , null f0124valorDescontoPorCashback , null f0124variacaoCambial , 1 f0078idVendedor4 , null f0124baseComissaoVendedor4 , null f0124valorComissaoVendedor4 , null f0124percComissaoVendedor4 , null f0073idSupervisor4 , 13 f0002idEstabVendedor4 , null f0002idEstabSupervisor4 , null f0124baseComissaoSupervisor4 , null f0124valorComissaoSupervisor4 , null f0124percComissaoSupervisor4 , null f0124valorDescontoPortador , 1 f0124origemDestacouIcmsUfDestino , 1 f0124origemDestacouIcmsRetidoAnteriormente , null f0124percentualReducaoBaseCalculoPis , null f0124percentualReducaoBaseCalculoCofins from t0177 inner join t0125 on t0177.f0125iditem = t0125.f0125iditem and t0177.f0001idempresa = t0125.f0001idempresa inner join t0140 on t0177.f0125iditem = t0140.f0125iditem and t0177.f0001idempresa = t0140.f0001idempresa and t0177.f0002idestab = t0140.f0002idestab where t0177.f0002idestab = 1 -- Alterar conforme necessário and f0177saldo > 0 and t0140.f0107idnaturezaitens = 2
Após a inserção dos itens no orçamento será necessário alterar o valor total do orçamento.
Na R419 clicar em VIS, verificar a soma da coluna valor total


Alterar o valor via banco de dados, usando o script modelo abaixo
update t0120 set f0120valortotalorcamento = 58289.32 -- Inserir valor da coluna valor total where f0120idorcamento = 506 and f0002idestab = 1 -- Informar o orçamento estabelecimento
Após a alteração conferir o valor

5. Ao realizar a inserção dos itens e alterar o valor do orçamento, clicar em fechar a venda para emitir a nota 'PD' ou NF-e
6. Com a nota já emitida, constando na R232, será necessário realizar a entrada pela R139 e confirmação na R387, caso a base esteja configurada para realizar confirmação de nota fiscal de entrada
Vídeo: BC Migração de Saldo entre Estabelecimentos Via Banco de Dados
7. Após a realizar a entrada da nota, deverá validar o saldo emitindo o R301, caso o saldo não tenha sido atualizado executar o reprocessamento de estoque na R228, apenas para clientes que utilizam o controle de estoque antigo.
Para validar qual tipo de controle de estoque o cliente está utilizando R29 parâmetro 1283, caso valor e e ativo estejam SIM, cliente utiliza novo controle.

Atenciosamente,
Bruno Coelho