Histórico da Página
01. DADOS GERAIS
Linha de Produto: | Microsiga Protheus® |
---|---|
Segmento: | Serviços |
Módulo: | Fiscal |
02. DESCRIÇÃO
Este ponto de entrada tem a finalidade de fornecer flexibilidade de regra do preenchimento, na Portaria CAT 44 de São Paulo (Registro dos Estoques), dos valores para os campos:
- Valores de alíquota;
- Preço;
- Margem de valor agregado;
- Preço final
Por meio desse ponto de entrada, poderão ser identificados os valores por regra da exceção fiscal, ultimas notas, média dos itens em estoque, etc, de acordo com a necessidade de cada empresa.
03. ESPECIFICAÇÃO
Parâmetros do ponto de entrada:
Nome | Tipo | Descrição |
---|---|---|
PARAMIXB | Array of Record | [1] = Código do Produto [2] = Alíquota ICMS (com base na tabela SB1) [3] = Último preço de venda (com base na tabela SB1) [4] = Margem Valor Agregado na Entrada (com base na tabela SB1) [5] = Preço final (com base na tabela SB1) |
Retorno:
Nome | Tipo | Descrição |
---|---|---|
Array of Record | Retorna um array com 4 posições, sendo: [1] = Alíquota ICMS, [2] = Último preço de venda, [3] = Margem Valor Agregado na Entrada, [4] = Preço final O ponto de entrada deverá retornar obrigatoriamente os 4 valores indicados, sendo que os valores padrão são passados como parâmetro. Caso não exista nenhuma regra específica para algum dos valores, o conteúdo padrão pode ser utilizado como retorno. Caso não seja utilizado o ponto de entrada, o preenchimento dos campos continuará com a mesma regra, buscando as informações da tabela cadastro de produtos (SB1) campos: - Aliq. ICMS (B1_PICM) |
04. EXEMPLO DE UTILIZAÇÃO
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
User Function PRCCAT44()
Local nCodigo := PARAMIXB[1]
Local MV_IVAST := GetNewPar("MV_IVAST",0)
Local nIVAP := 0
Local nAliqP := 0
Local nPrecFiP := 0
Local nPrecP := 0
Local cAliasSD1 := "SD1"
Local aStruSD1 := {}
Local cQuery := ""
Local nY := 0
Local nX := 1
Local dDtIni := LastDay(mv_par02)+1
Local dDti := mv_par01
Local dDtf := mv_par02
dbSelectArea("SFK")
If SFK->(MsSeek(xFilial('SFK')+nCodigo+Dtos(dDtIni)))
nAliqP := Iif(!empty(SFK->FK_AICMS),SFK->FK_AICMS,0)
EndIf
dbSelectArea("SD1")
For nX := 1 To 36
cAliasSD1 := "AliasSD1"
aStruSD1 := SD1->(dbStruct())
cQuery := "SELECT D1_DOC,D1_FILIAL,D1_LOJA,D1_VUNIT "
cQuery += "FROM " + RetSqlName("SD1") + " "
cQuery += "WHERE D1_FILIAL = '" + xFilial("SD1") + "' AND "
cQuery += "D1_COD = '" + nCodigo + "' AND "
cQuery += "D1_DTDIGIT > '" + Dtos(dDti) + "' AND "
cQuery += "D1_DTDIGIT <= '" + Dtos(dDtf) + "' AND "
cQuery += "D1_TIPO = 'N' AND "
cQuery += "D_E_L_E_T_= ' ' "
cQuery += "ORDER BY D1_DTDIGIT DESC"
cQuery := ChangeQuery(cQuery)
dbUseArea(.T.,"TOPCONN",TcGenQry(,,cQuery),cAliasSD1,.T.,.T.)
For nY := 1 To Len(aStruSD1)
If ( aStruSD1[nY][2] <> "C" )
TcSetField(cAliasSD1,aStruSD1[nY][1],aStruSD1[nY][2],aStruSD1[nY][3],aStruSD1[nY][4])
EndIf
Next nY
If (cAliasSD1)->(EOF())
dbSelectArea(cAliasSD1)
dbCloseArea()
dDti := Ctod("01/"+ StrZero(Iif(Month(dDti)==1,12,Month(dDti) -1 ),2)+ "/" +StrZero(Iif(Month(dDti)==1 ,year(dDti)-1,year(dDti)),4), "ddmmyy")
dDtf := LastDay(dDti)
Else
nPrecP := (cAliasSD1)->D1_VUNIT
Exit
EndIf
Next nX
nIVAP := MV_IVAST // Margem de Valor Agregadon
PrecFiP := 0 // Preco Final
dbCloseArea()
Return ({nAliqP,nPrecP,nIVAP,nPrecFiP}) |
05. DEMAIS INFORMAÇÕES
Não se aplica.
CONTEÚDO
- Visão Geral
- Exemplo de utilização
- Tela XXX
- Outras Ações / Ações relacionadas
- Outras Ações / Ações relacionadas
- Tela XXX
- Principais Campos e Parâmetros
- Principais Campos e Parâmetros
- Tabelas utilizadas
01. VISÃO GERAL
02. EXEMPLO DE UTILIZAÇÃO
03. TELA XXXXX
Outras Ações / Ações relacionadas
...
04. TELA XXXXX
Principais Campos e Parâmetros
...
Card documentos | ||||
---|---|---|---|---|
|
...