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.) |