01. DADOS GERAIS

Produto:

Linha de Produto:

Segmento:

Módulo:

Função:

MNTUTIL_OS


02. DESCRIÇÃO

Descrição:

Ponto de Entrada que possibilita incluir novos campos ou alterar o conteúdo de qualquer campo ao gerar uma S.A.

Parâmetros:
PosiçãoTipoDescrição
1array

Lista dos campos de cabeçalho do pedido de compra a ser gerado.

[1] Nome de campo

[2] Conteúdo

[3] Nil

2array

Lista dos campos para os itens do pedido de compra a ser gerado.

[1] Nome de campo

[2] Conteúdo

[3] Nil

Retorno:
TipoDescrição

array

Lista contendo os campos de itens e cabeçalho,

[1] Campos do cabeçalho do pedido

[2] Campos dos itens do pedido

[3] Rateio de centro de custos

03. DEMAIS INFORMAÇÕES

#Include 'Protheus.ch'
 
User Function NGUTIL51()

    Local aCabec := ParamIXB[1]
    Local aItens := ParamIXB[2]
    Local aRatCC := {}
    Local nInd1  := 0
    Local nPos   := 0

    If ( nPos := aScan( aCabec, { |x| x[1] == 'C7_CONTATO' } ) ) > 0

        aCabec[nPos,2] := 'PE NGUTIL51'

    EndIf

    For nInd1 := 1 To Len( aItens )
        
        aAdd( aRatCC, Array( 2 ) )

        aRatCC[nInd1,1] := PadL( nInd1, FWTamSx3( 'CH_ITEMPD' )[1], '0' )
        aRatCC[nInd1,2] := {}

        aCC := {}
        aAdd( aCC, { 'CH_FILIAL' , FWxFilial( 'SCH' )                      , Nil } )
        aAdd( aCC, { 'CH_ITEM'   , PadL( 1, FWTamSx3( 'CH_ITEM' )[1], '0' ), Nil } )
        aAdd( aCC, { 'CH_PERC'   , 50                                      , Nil } )
        aAdd( aCC, { 'CH_CC'     , '001'                                   , Nil } )
        aAdd( aCC, { 'CH_CONTA'  , '000001'                                , Nil } )
        aAdd( aCC, { 'CH_ITEMCTA', 'IC001'                                 , Nil } )
        aAdd( aCC, { 'CH_CLVL'   , 'CV001'                                 , Nil } )

        aAdd( aRatCC[nInd1,2], aClone( aCC ) )

        aCC := {}
        aAdd( aCC, { 'CH_FILIAL' , FWxFilial( 'SCH' )                      , Nil } )
        aAdd( aCC, { 'CH_ITEM'   , PadL( 2, FWTamSx3( 'CH_ITEM' )[1], '0' ), Nil } )
        aAdd( aCC, { 'CH_PERC'   , 50                                      , Nil } )
        aAdd( aCC, { 'CH_CC'     , '002'                                   , Nil } )
        aAdd( aCC, { 'CH_CONTA'  , '000001'                                , Nil } )
        aAdd( aCC, { 'CH_ITEMCTA', 'IC001'                                 , Nil } )
        aAdd( aCC, { 'CH_CLVL'   , 'CV001'                                 , Nil } )

        aAdd( aRatCC[nInd1,2], aClone( aCC ) )


        /*-------------------------------------------------------------------------------------+
        | Para utilizar o rateio de custos, os campos abaixo devem ser removidos da integração |
        +-------------------------------------------------------------------------------------*/
        If ( nPos := aScan( aItens[nInd1], { |x| x[1] == 'C7_CLVL' } ) ) > 0

            aDel( aItens[nInd1], nPos )
            
            aSize( aItens[nInd1], Len( aItens[nInd1] ) - 1 )

        EndIf

        If ( nPos := aScan( aItens[nInd1], { |x| x[1] == 'C7_ITEMCTA' } ) ) > 0

            aDel( aItens[nInd1], nPos )
            
            aSize( aItens[nInd1], Len( aItens[nInd1] ) - 1 )

        EndIf

        If ( nPos := aScan( aItens[nInd1], { |x| x[1] == 'C7_CC' } ) ) > 0

            aDel( aItens[nInd1], nPos )
            
            aSize( aItens[nInd1], Len( aItens[nInd1] ) - 1 )

        EndIf

    Next nInd1

Return { aCabec, aItens, aRatCC }


04. ASSUNTOS RELACIONADOS