Páginas filhas
  • DT Importação de pedido de compra


01. DADOS GERAIS

Linha de Produto:Virtual Age
Segmento:Moda
Módulo:Integração
Função:Permitir realizar importação de pedido de compra por pacote
Ticket:
Requisito/Story/Issue (informe o requisito relacionado) :DVAITG-2592


02. SITUAÇÃO/REQUISITO

Muito de nossos clientes realizam a utilização do processo de importação de pedido de compra, porém atualmente não é possível realizar este processo de importação por pacote.
Para atender a necessidade de nossos clientes, será necessário a implementação do processo de importação de pedido de compra por pacote.

03. SOLUÇÃO

Foi implementado a rotina para permitir realizar a importação de pedido de compra, com base no layout "8001 - Pedido de compra", utilizando o processo de importação pelo componente INTFP053.


Layout base
<!-- PK: Chave primaria -->
<!-- *: Obrigatorio -->
<!-- Definir layout -->
<!-- PK: Chave primaria -->
<!-- *: Obrigatorio -->
<dados>
	<tipoDesconto><!-- Ocorrencia: 0-N -->
		<cdTipoDesc>NUMBER(3) PK *</cdTipoDesc>
		<dsTipoDesc>CHAR(40) *</dsTipoDesc>
		<prDescPadrao>NUMBER(9,6)</prDescPadrao>
	</tipoDesconto>		
	<tipoClassificacao><!-- Ocorrencia: 0-N -->
		<cdTipoClas>NUMBER(4) PK *</cdTipoClas>
		<dsTipoClas>VARCHAR2(40) *</dsTipoClas>
		<classificacao><!-- Ocorrencia: 1-N -->
			<cdClassificacao>CHAR(10) PK *</cdClassificacao>
			<dsClassificacao>VARCHAR2(60) *</dsClassificacao>
		</classificacao>
	</tipoClassificacao>
	<campoAdicional><!-- Ocorrencia: 0-N -->
		<cdCampoAdic>NUMBER(4) PK *</cdCampoAdic>
		<dsCampoAdic>CHAR(60) *</dsCampoAdic>
		<tpCampoAdic>NUMBER(2) *</tpCampoAdic> <!-- 01: Alfanumerico / 03: Numerico / 03: Data -->
		<nrTamanhoAdic>NUMBER(4) *</nrTamanhoAdic>
		<nrDecimalAdic>NUMBER(2)</nrDecimalAdic> <!-- preencher apenas quando tpCampo for igual a 2 -->
		<tpUtilizacaoAdic>NUMBER(2)</tpUtilizacaoAdic> <!-- 01: Capa / 02: Item -->		
	</campoAdicional>	
	<pedidoCompra> <!-- Ocorrencia: 0-N -->
		<nrCNPJEmp>CHAR(18) PK *</nrCNPJEmp><!-- Empresa onde será gravado o pedido -->
		<nrPedido>CHAR(20) PK *</nrPedido>	<!-- Codigo do pedido no fornecedor-->
		<cdPedido>NUMBER(9)</cdPedido>	<!--Na entrada do pedido é gerado automaticamente -->
		<dtPedido>DATE *</dtPedido> <!--Data inclusão do pedido DT_INCLUSAO -->
		<nrCPFCNPJFor>CHAR(18) *</nrCPFCNPJFor>	<!--CNPJ do Fornecedor do pedido -->	
		<cdComprador>NUMBER(6)	</cdComprador>
		<cdOperacao>CHAR(10)</cdOperacao>	
		<cdCondPgto>CHAR(10)*</cdCondPgto>
		<dtBasePagamento>DATE</dtBasePagamento>
		<cdTabelaPreco>CHAR(10)</cdTabelaPreco>
		<nrCPFCNPJTransp>CHAR(18)</nrCPFCNPJTransp>
		<nrCPFCNPJRedespac>CHAR(18)</nrCPFCNPJRedespac>
		<tpFrete>CHAR(01)</tpFrete> <!-- 1-Contratado por conta remetente (CIF)/2 - Contratado por conta destinatrio (FOB)/3 Contratado por conta Terceiros/4-Sem ocorrencia transporte/5-Proprio por conta remetente/6-Proprio por conta destinatrio   -->
		<prFrete>NUMBER(9,6)</prFrete> <!-- 1: Quando preenchido nao informar vlFrete -->
		<vlFrete>NUMBER(12,2)</vlFrete> <!-- 1: Quando preenchido nao informar prFrete -->
		<dtPrevBaixa>DATE</dtPrevBaixa>
		<dtLimiteEntrega>DATE</dtLimiteEntrega>
		<tpSituacao>NUMBER(2)</tpSituacao> <!-- Novo 19/02/2019 --> <!-- 1: Em andamento / 5: Bloqueado -->
		<tpCobranca>NUMBER(2)</tpCobranca> <!-- 1-Duplicata/2-Boleto Bancario/12-Deposito Bancario -->
		<desconto> <!-- Ocorrencia: 0-N -->
			<cdTipoDescPedido>NUMBER(03) PK *</cdTipoDescPedido>
			<prDesc>NUMBER(9,6) *</prDesc>
		</desconto>
		<despesa> <!-- Ocorrencia: 0-N -->
			<cdDespesa>NUMBER(8) PK *</cdDespesa> 
			<cdCCusto>NUMBER(9) PK *</cdCCusto>
			<vlRateio>NUMBER(14,2) </vlRateio> <!--ou enviar valor ou envia o percentual -->
			<prRateio>NUMBER(9,6)</prRateio> <!--ou enviar valor ou envia o percentual -->
		</despesa>		
		<classificacaoPedido> <!-- Ocorrencia: 0-N --> 
			<cdTipoClasPedido>NUMBER(4) *</cdTipoClasPedido>
			<cdClassificacaoPedido>CHAR(10) *</cdClassificacaoPedido>
		</classificacaoPedido>
		<campoAdicPedido> <!-- Ocorrencia: 0-N -->
			<cdCampoAdicPedido>NUMBER(4) PK *</cdCampoAdicPedido> 
			<dsCampoAdicPedido>CHAR(80)</dsCampoAdicPedido>
		</campoAdicPedido>		
		<observacaoPedido> <!-- Ocorrencia: 0-N -->
			<dsObservacao>CHAR(80) *</dsObservacao>
		</observacaoPedido>
		<itemPedido> <!-- Ocorrencia: 1-N -->	
			<cdProdutoVA>CHAR(40) PK *</cdProdutoVA><!-- ou envia a tag do codigo do VA ou do Fornecedor-->
			<cdProdutoFornec>CHAR(40) PK *</cdProdutoFornec><!-- ou envia tag do codigo do VA ou do Fornecedor - Se enviar do fornecedor tem que estar cadastrado no VA PRDFM021/PRDFM053-->
			<dtPrevBaixaItem>DATE</dtPrevBaixaItem>	
			<qtSolicitada>NUMBER(12,3) *</qtSolicitada>
			<vlUnitario>NUMBER(18,6) *</vlUnitario>
			<vlUnitarioOrig>NUMBER(18,6)</vlUnitarioOrig> <!-- Novo 19/02/2019 -->
			<prDesconto>NUMBER(9,6)</prDesconto>
			<qtAtendida>NUMBER(12,3)</qtAtendida> <!-- Novo 19/02/2019 -->
			<qtCancelada>NUMBER(12,3)</qtCancelada> <!-- Novo 19/02/2019 -->
			<campoAdicItem> <!-- Ocorrencia: 0-N -->
				<cdCampoAdicItem>NUMBER(4) PK *</cdCampoAdicItem> 
				<dsCampoAdicItem>CHAR(80)</dsCampoAdicItem>
			</campoAdicItem>
			<despesaItem> <!-- Ocorrencia: 0-N -->
				<cdDespesa>NUMBER(8) PK *</cdDespesa> 
				<cdCCusto>NUMBER(9) PK *</cdCCusto>
				<vlRateio>NUMBER(14,2) </vlRateio> <!--ou enviar valor ou envia o percentual -->
				<prRateio>NUMBER(9,6)</prRateio> <!--ou enviar valor ou envia o percentual -->
			</despesaItem>
			<distribuicaoLoja><!-- Gera dados para utilizar a distribuição - Ocorrencia: 0-N -->
				<nrCNPJLoja>CHAR(18) PK *</nrCNPJLoja>
				<cdProduto>CHAR(40) PK *</cdProduto>
				<qtDistribuicao>NUMBER(12,3) *</qtDistribuicao>
			</distribuicaoLoja>
		</itemPedido>
	</pedidoCompra>
</dados>
Layout exemplo
<dados>
	<tipoDesconto><!-- Ocorrencia: 0-N -->
		<cdTipoDesc>77</cdTipoDesc>
		<dsTipoDesc>DESCONTO TIPO 77</dsTipoDesc>
		<prDescPadrao>77</prDescPadrao>
	</tipoDesconto>		
	<tipoDesconto><!-- Ocorrencia: 0-N -->
		<cdTipoDesc>78</cdTipoDesc>
		<dsTipoDesc>DESCONTO TIPO 78</dsTipoDesc>
		<prDescPadrao>78</prDescPadrao>
	</tipoDesconto>		
	<tipoDesconto><!-- Ocorrencia: 0-N -->
		<cdTipoDesc>79</cdTipoDesc>
		<dsTipoDesc>DESCONTO TIPO 79</dsTipoDesc>
		<prDescPadrao>79</prDescPadrao>
	</tipoDesconto>		
	<tipoClassificacao><!-- Ocorrencia: 0-N -->
		<cdTipoClas>9998</cdTipoClas>
		<dsTipoClas>PRIORIDADE</dsTipoClas>
		<classificacao><!-- Ocorrencia: 1-N -->
			<cdClassificacao>1</cdClassificacao>
			<dsClassificacao>BAIXA</dsClassificacao>
		</classificacao>
		<classificacao><!-- Ocorrencia: 1-N -->
			<cdClassificacao>2</cdClassificacao>
			<dsClassificacao>MEDIA</dsClassificacao>
		</classificacao>
		<classificacao><!-- Ocorrencia: 1-N -->
			<cdClassificacao>3</cdClassificacao>
			<dsClassificacao>ALTA</dsClassificacao>
		</classificacao>		
	</tipoClassificacao>
	<tipoClassificacao><!-- Ocorrencia: 0-N -->
		<cdTipoClas>9999</cdTipoClas>
		<dsTipoClas>PERIODO</dsTipoClas>
		<classificacao><!-- Ocorrencia: 1-N -->
			<cdClassificacao>1</cdClassificacao>
			<dsClassificacao>PRIMEIRO TRIMESTRE</dsClassificacao>
		</classificacao>
		<classificacao><!-- Ocorrencia: 1-N -->
			<cdClassificacao>2</cdClassificacao>
			<dsClassificacao>SEGUNDO TRIMESTRE</dsClassificacao>
		</classificacao>
		<classificacao><!-- Ocorrencia: 1-N -->
			<cdClassificacao>3</cdClassificacao>
			<dsClassificacao>TERCEIRO TRIMESTRE</dsClassificacao>
		</classificacao>
		<classificacao><!-- Ocorrencia: 1-N -->
			<cdClassificacao>4</cdClassificacao>
			<dsClassificacao>QUARTO TRIMESTRE</dsClassificacao>
		</classificacao>				
	</tipoClassificacao>
	<tipoClassificacao><!-- Ocorrencia: 0-N -->
		<cdTipoClas>44</cdTipoClas>
		<dsTipoClas>TESTE</dsTipoClas>
		<classificacao><!-- Ocorrencia: 1-N -->
			<cdClassificacao>A1</cdClassificacao>
			<dsClassificacao>TESTE ALFANUMERICO</dsClassificacao>
		</classificacao>
		<classificacao><!-- Ocorrencia: 1-N -->
			<cdClassificacao>2</cdClassificacao>
			<dsClassificacao>NUMERICO</dsClassificacao>
		</classificacao>
	</tipoClassificacao>
	<campoAdicional><!-- Ocorrencia: 0-N -->
		<cdCampoAdic>11</cdCampoAdic>
		<dsCampoAdic>CAMPO STRING CAPA</dsCampoAdic>
		<tpCampoAdic>1</tpCampoAdic> <!-- 01: Alfanumerico / 03: Numerico / 03: Data -->
		<nrTamanhoAdic>10</nrTamanhoAdic>
		<nrDecimalAdic></nrDecimalAdic> <!-- preencher apenas quando tpCampo for igual a 2 -->
		<tpUtilizacaoAdic>1</tpUtilizacaoAdic> <!-- 01: Capa / 02: Item -->		
	</campoAdicional>	
	<campoAdicional><!-- Ocorrencia: 0-N -->
		<cdCampoAdic>12</cdCampoAdic>
		<dsCampoAdic>CAMPO STRING ITEM</dsCampoAdic>
		<tpCampoAdic>1</tpCampoAdic> <!-- 01: Alfanumerico / 03: Numerico / 03: Data -->
		<nrTamanhoAdic>20</nrTamanhoAdic>
		<nrDecimalAdic></nrDecimalAdic> <!-- preencher apenas quando tpCampo for igual a 2 -->
		<tpUtilizacaoAdic>2</tpUtilizacaoAdic> <!-- 01: Capa / 02: Item -->		
	</campoAdicional>	
	<campoAdicional><!-- Ocorrencia: 0-N -->
		<cdCampoAdic>13</cdCampoAdic>
		<dsCampoAdic>CAMPO NUMERICO</dsCampoAdic>
		<tpCampoAdic>2</tpCampoAdic> <!-- 01: Alfanumerico / 03: Numerico / 03: Data -->
		<nrTamanhoAdic>10</nrTamanhoAdic>
		<nrDecimalAdic>3</nrDecimalAdic> <!-- preencher apenas quando tpCampo for igual a 2 -->
		<tpUtilizacaoAdic>1</tpUtilizacaoAdic> <!-- 01: Capa / 02: Item -->		
	</campoAdicional>
	<pedidoCompra> <!-- Ocorrencia: 0-N -->
		<nrCNPJEmp>98247742000110</nrCNPJEmp><!-- Empresa onde será gravado o pedido -->
		<nrPedido>30082019</nrPedido>	<!-- Codigo do pedido no fornecedor-->
		<dtPedido>30/08/2019</dtPedido> <!--Data inclusão do pedido DT_INCLUSAO -->
		<nrCPFCNPJFor>63247015000179</nrCPFCNPJFor>	<!--CNPJ do Fornecedor do pedido -->	
		<cdComprador>10</cdComprador>
		<cdOperacao>3</cdOperacao>	
		<cdCondPgto>1</cdCondPgto>
		<dtBasePagamento>31/08/2019</dtBasePagamento>
		<cdTabelaPreco>201</cdTabelaPreco>
		<nrCPFCNPJTransp>25385668000125</nrCPFCNPJTransp>
		<nrCPFCNPJRedespac>91595323000120</nrCPFCNPJRedespac>
		<tpFrete>2</tpFrete> <!-- 1-Contratado por conta remetente (CIF)/2 - Contratado por conta destinatrio (FOB)/3 Contratado por conta Terceiros/4-Sem ocorrencia transporte/5-Proprio por conta remetente/6-Proprio por conta destinatrio   -->
		<prFrete>11</prFrete> <!-- 1: Quando preenchido nao informar vlFrete -->
		<vlFrete>31</vlFrete> <!-- 1: Quando preenchido nao informar prFrete | Na importação, caso for recebido será gravado como prFrete--> 
		<dtPrevBaixa>31/08/2019</dtPrevBaixa>
		<dtLimiteEntrega>31/08/2019</dtLimiteEntrega>
		<tpSituacao>1</tpSituacao> <!-- Novo 19/02/2019 --> <!-- 1: Em andamento / 5: Bloqueado -->
		<tpCobranca>2</tpCobranca> <!-- 1-Duplicata/2-Boleto Bancario/12-Deposito Bancario -->
		<desconto> <!-- Ocorrencia: 0-N -->
			<cdTipoDescPedido>1</cdTipoDescPedido>
			<prDesc>10</prDesc>
		</desconto>
		<desconto> <!-- Ocorrencia: 0-N -->
			<cdTipoDescPedido>2</cdTipoDescPedido>
			<prDesc>5</prDesc>
		</desconto>
		<despesa> <!-- Ocorrencia: 0-N -->
			<cdDespesa>61093</cdDespesa> 
			<cdCCusto>1</cdCCusto>
			<prRateio>20</prRateio> <!--ou enviar valor ou envia o percentual -->
		</despesa>		
		<despesa> <!-- Ocorrencia: 0-N -->
			<cdDespesa>61130</cdDespesa> 
			<cdCCusto>33</cdCCusto>
			<prRateio>30</prRateio> <!--ou enviar valor ou envia o percentual -->
		</despesa>		
		<despesa> <!-- Ocorrencia: 0-N -->
			<cdDespesa>61130</cdDespesa> 
			<cdCCusto>38</cdCCusto>
			<prRateio>30</prRateio> <!--ou enviar valor ou envia o percentual -->
		</despesa>		
		<despesa> <!-- Ocorrencia: 0-N -->
			<cdDespesa>61093</cdDespesa> 
			<cdCCusto>51</cdCCusto>
			<prRateio>20</prRateio> <!--ou enviar valor ou envia o percentual -->
		</despesa>		
		<classificacaoPedido> <!-- Ocorrencia: 0-N --> 
			<cdTipoClasPedido>44</cdTipoClasPedido>
			<cdClassificacaoPedido>2</cdClassificacaoPedido>
		</classificacaoPedido>
		<classificacaoPedido> <!-- Ocorrencia: 0-N --> 
			<cdTipoClasPedido>44</cdTipoClasPedido>
			<cdClassificacaoPedido>A1</cdClassificacaoPedido>
		</classificacaoPedido>
		<classificacaoPedido> <!-- Ocorrencia: 0-N --> 
			<cdTipoClasPedido>1</cdTipoClasPedido>
			<cdClassificacaoPedido>01</cdClassificacaoPedido>
		</classificacaoPedido>
		<campoAdicPedido> <!-- Ocorrencia: 0-N -->
			<cdCampoAdicPedido>1</cdCampoAdicPedido> 
			<dsCampoAdicPedido>20</dsCampoAdicPedido>
		</campoAdicPedido>		
		<campoAdicPedido> <!-- Ocorrencia: 0-N -->
			<cdCampoAdicPedido>3</cdCampoAdicPedido> 
			<dsCampoAdicPedido>99.800</dsCampoAdicPedido>
		</campoAdicPedido>	
		<campoAdicPedido> <!-- Ocorrencia: 0-N -->
			<cdCampoAdicPedido>4</cdCampoAdicPedido> 
			<dsCampoAdicPedido>30/08/2019</dsCampoAdicPedido>
		</campoAdicPedido>		
		<observacaoPedido> <!-- Ocorrencia: 0-N -->
			<dsObservacao>OBS 01</dsObservacao>
		</observacaoPedido>
		<observacaoPedido> <!-- Ocorrencia: 0-N -->
			<dsObservacao>OBS 02</dsObservacao>
		</observacaoPedido>
		<observacaoPedido> <!-- Ocorrencia: 0-N -->
			<dsObservacao>OBSERVACAO TESTE</dsObservacao>
		</observacaoPedido>
		<itemPedido> <!-- Ocorrencia: 1-N -->	
			<cdProdutoVA>199914</cdProdutoVA><!-- ou envia a tag do codigo do VA ou do Fornecedor-->
			<cdProdutoFornec>AVFMIGAY</cdProdutoFornec><!-- ou envia tag do codigo do VA ou do Fornecedor - Se enviar do fornecedor tem que estar cadastrado no VA PRDFM021/PRDFM053-->
			<dtPrevBaixaItem>31/08/2019</dtPrevBaixaItem>	
			<qtSolicitada>10</qtSolicitada>
			<vlUnitario>1</vlUnitario>
			<vlUnitarioOrig>1</vlUnitarioOrig> <!-- Novo 19/02/2019 -->
			<prDesconto>0</prDesconto>
			<qtAtendida>0</qtAtendida> <!-- Novo 19/02/2019 -->
			<qtCancelada>0</qtCancelada> <!-- Novo 19/02/2019 -->
			<campoAdicItem> <!-- Ocorrencia: 0-N -->
				<cdCampoAdicItem>1</cdCampoAdicItem> 
				<dsCampoAdicItem>CAMPO ITEM 01</dsCampoAdicItem>
			</campoAdicItem>
			<campoAdicItem> <!-- Ocorrencia: 0-N -->
				<cdCampoAdicItem>3</cdCampoAdicItem> 
				<dsCampoAdicItem>99998</dsCampoAdicItem>
			</campoAdicItem>
			<despesaItem> <!-- Ocorrencia: 0-N -->
				<cdDespesa>61645</cdDespesa> 
				<cdCCusto>101</cdCCusto>
				<vlRateio>0</vlRateio> <!--ou enviar valor ou envia o percentual -->
				<prRateio>55</prRateio> <!--ou enviar valor ou envia o percentual -->
			</despesaItem>
			<despesaItem> <!-- Ocorrencia: 0-N -->
				<cdDespesa>61645</cdDespesa> 
				<cdCCusto>81</cdCCusto>
				<vlRateio>0</vlRateio> <!--ou enviar valor ou envia o percentual -->
				<prRateio>45</prRateio> <!--ou enviar valor ou envia o percentual -->
			</despesaItem>
			<distribuicaoLoja><!-- Gera dados para utilizar a distribuição - Ocorrencia: 0-N -->
				<nrCNPJLoja>89434225000160</nrCNPJLoja>
				<cdProduto>199914</cdProduto>
				<qtDistribuicao>2</qtDistribuicao>
			</distribuicaoLoja>
			<distribuicaoLoja><!-- Gera dados para utilizar a distribuição - Ocorrencia: 0-N -->
				<nrCNPJLoja>70449685000133</nrCNPJLoja>
				<cdProduto>199914</cdProduto>
				<qtDistribuicao>3</qtDistribuicao>
			</distribuicaoLoja>
			<distribuicaoLoja><!-- Gera dados para utilizar a distribuição - Ocorrencia: 0-N -->
				<nrCNPJLoja>04213909000189</nrCNPJLoja>
				<cdProduto>199914</cdProduto>
				<qtDistribuicao>5</qtDistribuicao>
			</distribuicaoLoja>
		</itemPedido>
	</pedidoCompra>
</dados>



Imagem 01 - Na imagem acima, temos um exemplo de solicitação de autorização/token, com ele será possível realizar a geração do conteúdo para o pacote de pedido de compra para importação.


Imagem 02 - Na imagem acima,  após informar o token de autorização e realizar a inclusão de pacote para o modelo "8001 - Pedido de compra", como no exemplo acima, será possível realizar a importação.

Imagem 01 - Para realizar a importação, abrir o componente INTFP053 e informar os filtros, neste nosso caso será informado apenas o modelo "8001 - Pedido de compra" e a data da inclusão do pacote, selecionar os pacotes e acionar a opção "Processar".


Imagem 02 - Podemos verificar o processamento realizado com sucesso.


Imagem 03 - Para o primeiro pacote, apenas foi importado um pedido dos dois presentes no arquivo, devido o código do pedido de compra para o fornecedor já possuir pedido de compra vinculado. 


Imagem 04 - Para o segundo pacote, podemos observar a inclusão de todos os pedidos de compra informados no pacote.


Imagem 05 - Podemos verificar as informações, como pedidos gerados referente ao pacote em foco ao acionar a opção "Detalhamento".


Imagem 06 - Ao detalhar o pacote, será aberto o componente INTFC008, carregando as respectivas informações do pacote, como podemos verificar acima.


Imagem 07 - Podemos observar na imagem acima o pacote importado, conforme conteúdo do pacote.