Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

 

01. DADOS GERAIS

Linha de Produto:Microsiga Protheus®
Segmento:Serviços
Módulo:Livros Fiscais - SIGAFIS

02. DESCRIÇÃO

Este ponto de entrada tem como finalidade retornar um Array com as informações do produto para os clientes que possuem uma forma diferente do padrão de compor o código do produto.

...

Parâmetros do ponto de entrada:

NomeTipoDescrição
PARAMIXBArray

Array com dados:

[1] = cAliasSFT

[2] = cRegsped

[3] = cUnid



NomeTipoDescrição
cAliasSFTCaracterAlias da tabela SFT filtrada onde são lidas as  informações do documento fiscal
cRegspedCaracterNome do registro
cUnidCaracterCampo Unidade de Medida do produto

Retorno:

NomeTipoDescrição
aProdArray

Array com as informações do produto:

aProd[1] - Código do Produto (campo padrão B1_COD)

aProd[2] - Descrição do produto (campo padrão B1_DESC)

aProd[3] - Código de barras (campo padrão B1_CODBAR)

aProd[4] - Código Anterior (campo padrão B1_CODANT)

aProd[5] - Unidade de medida (campo padrão B1_UM)

aProd[6] - Tipo do Item

aProd[7] - Código de NCM (campo padrão B1_POSIPI)

aProd[8] - Exceção da NCM (campo padrão B1_EX_NCM)

aProd[9] - Código do gênero do item (2 primeiros caracteres do NCM obs.: (se for um item de serviço o código do gênero é 00)) (campo padrão B1_POSIPI)

aProd[10] - Código de ISS (campo padrão B1_CODISS)

aProd[11] - Alíquota de ICMS (campo padrão B1_PICM)

aProd[12] - CEST - Código Especificador da Substituição Tributária (campo padrão B1_CEST)

Obs

Observação.CEST - Exclusivo para SPEDFISCAL - Campo 13 do registro 0200.


Aviso
titleImportante

Ao utilizar o ponto de entrada é necessário que para o preenchimento da posição aProd[6], seja retornado conforme correspondência aos códigos abaixo, que são relacionados ao tipo do Item. Maiores informações podem ser obtidas no Guia Prático.

Registro 0200: Tabela de Identificação do Item (Produtos e Serviços)

Image Added

Aviso
titleImportante

Ao utilizar este ponto de entrada, todas as posições do array aProd devem ser preenchidas, mesmo com informações em branco. Para os casos em que exista relacionamento com outras tabelas, é imprescindível que o conteúdo exista também na tabela relacionada (Ex. Unidade de Medida deve existir na tabela SAH). 

Aviso
titleImportante

Caso o cliente possua o parâmetro MV_CSDXML (vínculo com o XML do fornecedor)ativado (.T.), algumas informações do ponto de entrada não serão considerados, priorizando os dados do XML de entrada.

04. EXEMPLO DE UTILIZAÇÃO

...

Desta forma sabemos realmente se o campo FTcampo FT_PRODUTO , ou CODou COD_ITEM realmente existe no alias passado, e assim podemos tomar devida ação ou processamento dentro deste ponto, evitando erro. Abaixo exemplo completo:

Bloco de código
languagejava
themeMidnight
firstline1
titleSPEDPROD
linenumberstrue
#include "Rwmake.ch"

User Function SPEDPROD()
	Local cAlias 	 := Iif(Len(paramixb) >= 1, paramixb[1], '')
	Local cRegspd 	 := Iif(Len(paramixb) >= 2, paramixb[2], '')
	Local cUnid 	 := Iif(Len(paramixb) >= 3, paramixb[3], '')
	Local aProd 	 := {}
	Local lFTProduto := .F.
	Local lB1Cod 	 := .F.
	Local lCodItem 	 := .F.
	Local lD2Cod 	 := .F.
	Local lCF8Item 	 := .F.
	
	    Do Case
		//Verifica se o campo FT_PRODUTO existe no alias
	Case (cAlias)->(FieldPos('FT_PRODUTO')) > 0
		lFTProduto := .T.
		//Verifica se o campo B1_COD existe no alias
	Case (cAlias)->(FieldPos('B1_COD')) > 0
		lB1Cod := .T.
		//Verifica se o campo COD_ITEM existe no alias
	Case (cAlias)->(FieldPos('COD_ITEM')) > 0
		lCodItem := .T.
		//Verifica se o campo D2_COD existe no alias
	Case (cAlias)->(FieldPos('D2_COD')) > 0
		lD2Cod := .T.
		//Verifica se o campo CF8_ITEM existe no alias
	Case (cAlias)->(FieldPos('CF8_ITEM')) > 0
		lCF8Item := .T.
	EndCase

	aAdd(aProd, "00001")     //  aProd[1] - Código do Produto(campo padrão B1_COD )
	aAdd(aProd, "Teste")     //  aProd[2] - Descrição do produto(campo padrão B1_DESC)
	aAdd(aProd, "")          //  aProd[3] - Código de barras(campo padrão B1_CODBAR)
	aAdd(aProd, "")          //  aProd[4] - Código Anterior(campo padrão B1_CODANT)
	aAdd(aProd, "UN")        //  aProd[5] - Unidade de medida(campo padrão B1_UM)
	aAdd(aProd, "04")        //  aProd[6] - Tipo do Item
	aAdd(aProd, "33074900")  //  aProd[7] - Código de NCM(campo padrão B1_POSIPI)
	aAdd(aProd, "")          //  aProd[8] - Exceção da NCM(campo padrão B1_EX_NCM)
	aAdd(aProd, "33")        //  aProd[9] - Código do gênero do item (2 primeiros caracteres do NCM obs.:
                             //            (se for um item de serviço o código do genero é 00))(campo padrão B1_POSIPI)
	aAdd(aProd, "")          // aProd[10] - Código de ISS(campo padrão B1_CODISS)
	aAdd(aProd, 18)          // aProd[11] - Alíquota de ICMS(campo padrão B1_PICM)
	aAdd(aProd, "")          // aProd[12] - CEST - Código Especificador da Substituição Tributária(campo padrão B1_CEST)

Return (aProd)

05. DEMAIS INFORMAÇÕES

Não há.

...