Histórico da Página
Ponto de Entrada
Descrição: | Este ponto de entrada está localizado na rotina Ped. Transf. Peças (OFIXA020) e é executado no momento da rejeição de um pedido de peças oriundo de um orçamento balcão que já contenha peças reservadas. A finalidade deste ponto de entrada é permitir a manipulação / inserção de novos campos no momento de realizar a movimentação de transferência de armazéns na chamada da rotina MATA261 (tabela SD3). | ||||||
Localização: | Atualizações \ Mov Peças \ Ped. Transf. Peças | ||||||
Eventos: | Function OXA020R(cAlias,nReg,nOpc) Local aParamBox := {} Local aItensNew := {} Local nTamAEstq := 0 Local nPosAEstq Local nUltPos Local l261IntWMS := a261IntWMS() Local nQuant := 0 Local cBkpFil := cFilAnt if cFilAnt != VDD->VDD_FILPED MsgStop(STR0026) return .f. endif if VDD->VDD_STATUS != "S" return .f. endif if !MsgYesNo(STR0012, STR0013) return .f. endif // Local tmpPar03 := MV_PAR03 MV_PAR01 := "" aAdd(aParamBox,{1,STR0014,Space(254),"","","","",120,.F.}) while Empty(MV_PAR01) If !(ParamBox(aParamBox,STR0001,,,,,,,,,.f.)) return .f. endif enddo /////////////////////////////////////////////////// // Posicoes no Vetor de Integracao com o MATA261 // /////////////////////////////////////////////////// nTamAEstq := 21 If l261IntWMS nTamAEstq += 1 EndIf nTamAEstq += 1 If SD3->(FieldPos("D3_IDDCF"))>0 .And. l261IntWMS nTamAEstq += 1 EndIf If SD3->(FieldPos("D3_OBSERVA")) <> 0 nTamAEstq += 1 EndIf /////////////////////////////////////////////////// DBSelectArea("VDD") reclock("VDD",.f.) VDD->VDD_MOTIVO := MV_PAR01 VDD->VDD_STATUS := "R" msunlock() DBSelectArea("VS3") DBSetOrder(2) if DBSeek(VDD->VDD_FILORC + VDD->VDD_NUMORC + VDD->VDD_GRUPO + VDD->VDD_CODITE) nQuant := VS3->VS3_QTDITE - VS3->VS3_QTDTRA reclock("VS3",.f.) VS3->VS3_QTDTRA := VS3->VS3_QTDTRA - VDD->VDD_QUANT msunlock() endif DBSelectArea("SB1") DBSetOrder(7) DBSeek(xFilial("SB1")+VDD->VDD_GRUPO+VDD->VDD_CODITE) dbSetOrder(1) if nQuant > 0 cFilAnt := VDD->VDD_FILORC cDocumento := Criavar("D3_DOC") cDocumento := IIf(Empty(cDocumento),NextNumero("SD3",2,"D3_DOC",.T.),cDocumento) cDocumento := A261RetINV(cDocumento) aItensNew := {} aadd (aItensNew,{ cDocumento , ddatabase}) AADD( aItensNew , Array(nTamAEstq) ) nPosAEstq := Len(aItensNew) // Produto Origem aItensNew[nPosAEstq,01] := SB1->B1_COD aItensNew[nPosAEstq,02] := SB1->B1_DESC aItensNew[nPosAEstq,03] := SB1->B1_UM aItensNew[nPosAEstq,04] := GetMv( "MV_RESITE" )+Space(TamSx3("BF_LOCAL")[1]-Len(GetMv("MV_RESITE"))) aItensNew[nPosAEstq,05] := IIf(Localiza(SB1->B1_COD),Posicione("VOI",1,xFilial("VOI")+aPecasAlt[iP,4],"VOI_LOCALI"),Space(15)) // Produto Destino aItensNew[nPosAEstq,06] := SB1->B1_COD aItensNew[nPosAEstq,07] := SB1->B1_DESC aItensNew[nPosAEstq,08] := SB1->B1_UM aItensNew[nPosAEstq,09] := FM_PRODSBZ(SB1->B1_COD,"SB1->B1_LOCPAD") aItensNew[nPosAEstq,10] := IIf(Localiza(SB1->B1_COD),Posicione("VOI",1,xFilial("VOI")+VO3->VO3_TIPTEM,"VOI_LOCALI"),Space(15)) // aItensNew[nPosAEstq,11] := "" aItensNew[nPosAEstq,12] := "" aItensNew[nPosAEstq,13] := "" aItensNew[nPosAEstq,14] := criavar('D3_DTVALID') aItensNew[nPosAEstq,15] := criavar('D3_POTENCI') aItensNew[nPosAEstq,16] := nQuant aItensNew[nPosAEstq,17] := criavar("D3_QTSEGUM") aItensNew[nPosAEstq,18] := criavar("D3_ESTORNO") aItensNew[nPosAEstq,19] := criavar("D3_NUMSEQ") aItensNew[nPosAEstq,20] := criavar("D3_LOTECTL") aItensNew[nPosAEstq,21] := aItensNew[nPosAEstq,14] nUltPos := 21 If l261IntWMS aItensNew[nPosAEstq,++nUltPos] := criavar("D3_SERVIC") EndIf aItensNew[nPosAEstq,++nUltPos] := criavar("D3_ITEMGRD") If SD3->(FieldPos("D3_IDDCF"))>0 .And. l261IntWMS aItensNew[nPosAEstq,++nUltPos] := criavar("D3_IDDCF") EndIf If SD3->(FieldPos("D3_OBSERVA")) <> 0 aItensNew[nPosAEstq,++nUltPos] := criavar("D3_OBSERVA") EndIf If (ExistBlock("OX020AP")) aItensNew := ExecBlock("OX020AP", .f., .f., {aItensNew}) EndIf | ||||||
Programa Fonte: | OFIXA020.PRW | ||||||
Função: | OXA020R() | ||||||
Parâmetros: |
| ||||||
Retorno: |
|
Exemplo:
Include totvs.ch
User Function OX020AP()
Local aItensAlt := ParamIxb[1]
MsgInfo("Ponto de Entrada OX020AP executado com sucesso!")
Return aItensAlt