Árvore de páginas

Ponto de Entrada

Descrição:

Ponto de Entrada que possibilita a manipulação do array aParamBox na tela de efetivação da transferência na rotina de Transferência de Peças (OFIOM430).

Localização:

Atualizações / Mov.Peças / Transf. de Peças

Eventos:

/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Fun‡ao    ³ CriaParam³ Autor ³ Thiago                    ³ Data ³10/01/2007³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri‡…o ³ Criacao da parambox.                                         ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
Static Function CriaParam(aItens,cTipo, aOrcTrans)
Local aParamBox := {}  
Local _i        := 0    
Local lDuplic   := .f.
Local oTrf      := DMS_Transferencia():New()
Local oArHlp    := DMS_ArrayHelper():New()
Local oPeso
Local aOrcs
Local cNatureza
Local cTpFrete := ""
Default aOrcTrans := {}

if Empty(aOrcTrans)

    oPeso := oTrf:CalcPeso(VS1->VS1_NUMORC)

else

    aOrcs := oArHlp:Select(aOrcTrans, {|aEl| aEl[1]}) //selecionados na tela

    aOrcs := oArHlp:Map(aOrcs, {|aEl| aEl[2]}) // somente numero do orcamento

    oPeso := oTrf:CalcPesos(aOrcs)

endif

cNatureza := Iif(Empty(VS1->VS1_NATURE), Space(GetSX3Cache("C5_NATUREZ", "X3_TAMANHO")), VS1->VS1_NATURE)

cTpFrete  := iif(Empty(VS1->VS1_PGTFRE), Space(GetSx3Cache("C5_TPFRETE", "X3_TAMANHO")), VS1->VS1_PGTFRE)

aAdd(aParamBox, {1, STR0059, Space(GetSX3Cache("E4_CODIGO", "X3_TAMANHO")),  "@!",                          "OM430CONDPG()",      "SE4", "", 0,   .F.}) // MV_PAR01

aAdd(aParamBox, {1, STR0097, Space(GetSX3Cache("A4_COD",    "X3_TAMANHO")),  "@!",                          "",                   "SA4", "", 0,   .F.}) // MV_PAR02

aAdd(aParamBox, {1, STR0099, oPeso:GetValue('liquido'),                      PesqPict("SC5", "C5_PESOL"),   "",                   "",    "", 50,  .F.}) // MV_PAR03

aAdd(aParamBox, {1, STR0101, oPeso:GetValue('bruto'),                        PesqPict("SC5", "C5_PBRUTO"),  "",                   "",    "", 50,  .F.}) // MV_PAR04

aAdd(aParamBox, {1, STR0103, Space(GetSX3Cache("C5_VEICULO", "X3_TAMANHO")), "@!",                          "",                   "DA3", "", 0,   .F.}) // MV_PAR05

aAdd(aParamBox, {1, STR0106, 0,                                              PesqPict("SC5", "C5_VOLUME1"), "",                   "",    "", 50,  .F.}) // MV_PAR06

aAdd(aParamBox, {1, STR0108, 0,                                              PesqPict("SC5", "C5_VOLUME2"), "",                   "",    "", 50,  .F.}) // MV_PAR07

aAdd(aParamBox, {1, STR0110, 0,                                              PesqPict("SC5", "C5_VOLUME3"), "",                   "",    "", 50,  .F.}) // MV_PAR08

aAdd(aParamBox, {1, STR0112, 0,                                              PesqPict("SC5", "C5_VOLUME4"), "",                   "",    "", 50,  .F.}) // MV_PAR09

aAdd(aParamBox, {1, STR0114, Space(GetSX3Cache("C5_ESPECI1", "X3_TAMANHO")), PesqPict("SC5", "C5_ESPECI1"), "",                   "",    "", 50,  .F.}) // MV_PAR10

aAdd(aParamBox, {1, STR0115, Space(GetSX3Cache("C5_ESPECI2", "X3_TAMANHO")), PesqPict("SC5", "C5_ESPECI2"), "",                   "",    "", 50,  .F.}) // MV_PAR11

aAdd(aParamBox, {1, STR0116, Space(GetSX3Cache("C5_ESPECI3", "X3_TAMANHO")), PesqPict("SC5", "C5_ESPECI3"), "",                   "",    "", 50,  .F.}) // MV_PAR12

aAdd(aParamBox, {1, STR0117, Space(GetSX3Cache("C5_ESPECI4", "X3_TAMANHO")), PesqPict("SC5", "C5_ESPECI4"), "",                   "",    "", 50,  .F.}) // MV_PAR13

aAdd(aParamBox, {1, STR0173, Space(GetSX3Cache("C5_MENPAD", "X3_TAMANHO")),  "@!",                          "",                   "SM4", "", 50,  .F.}) // MV_PAR14

aAdd(aParamBox, {1, STR0174, Space(GetSX3Cache("C5_MENNOTA", "X3_TAMANHO")), "@!",                          "",                   "",    "", 120, .F.}) // MV_PAR15

aAdd(aParamBox, {1, STR0205, cNatureza,                                      PesqPict("SC5", "C5_NATUREZ"), "ExistCpo('SED')",    "SED", "", 50,  .T.}) // MV_PAR16

aAdd(aParamBox, {2, RetTitle("C5_TPFRETE"), cTpFrete, StrTokArr(GetSX3Cache("C5_TPFRETE", "X3_CBOX"), ';'), 80, "", .F., ".T."}) // MV_PAR17

If ( ExistBlock("OM430PEG") )  // Manipular aParamBox

    aParamBox := ExecBlock("OM430PEG",.f.,.f.,{aParamBox})

EndIf

While .t.

    If !ParamBox(aParamBox,STR0010,@aRetorn,,,,,,,,.f.)

        Return(.f.)

    Endif

    cTpFrete := MV_PAR17

    DBSelectArea("SED")

    DBSetOrder(1)

    If DBSeek(xFilial("SED")+MV_PAR16) // Embora haja validação no parambox, se já estiver com um valor, ele não passa pela validação

        If Empty(cNatureza) .OR. (cNatureza <> MV_PAR16) // Se não tinha natureza na VS1, ou a natureza digitada no parambox é diferente da existente no orçamento

            cNatureza := MV_PAR16

            RecLock("VS1", .F.)

                VS1->VS1_NATURE := cNatureza

            VS1->(MsUnlock())

        Endif

    Else

        FMX_HELP("OFM430ERR01", STR0208 + CHR(13) + CHR(10) + CHR(13) + CHR(10) + RetTitle("VS1_NATURE") + ":" + cNatureza) // "A natureza não existe no cadastro de Natureza(SED):"

        Loop

    Endif

    if cTpFrete <> VS1->VS1_PGTFRE

        RecLock("VS1", .F.)

            VS1->VS1_PGTFRE := cTpFrete

        VS1->(MsUnLock())

    Endif

    if Empty(MV_PAR01)

        For _i := 1 to Len(aItens)

            SF4->(dbSetOrder(1))  

            SF4->(dbSeek(xFilial("SF4")+Iif(cTipo == "0",aItens[_i,12],aItens[_i,20])))

            if SF4->F4_DUPLIC == "S"

                MsgStop(STR0176)

                lDuplic := .t.  

                Exit                

            Endif

        Next    

        if !lDuplic

            Exit

        Endif

    Else

        Exit

    Endif

Enddo

   

Return(.t.)
Programa Fonte:
OFIOM430.PRW
Função:
CRIAPARAM(AITENS,CTIPO, AORCTRANS)
Parâmetros:
Não há.


Retorno:
Nome
Tipo
Descrição

aParam[1]

Array

Perguntas na tela de efetivação da Transferência de Peças.




Exemplo:

Include totvs.ch

User Function OM430PEG()

Local aParamBox := ParamIXB[1]

Local aParam := {}


Aadd( aParam, aClone(aParamBox) )


aParam[1][16][3] := 'CARTAO'


MsgAlert("Ponto de Entrada OM430PEG Executado com sucesso!!")


Return(aParam[1])