Luis Pais Posted November 16, 2023 at 04:12 PM Report Share #632132 Posted November 16, 2023 at 04:12 PM Olá, Necessito de ajuda para o seguinte. Ao introduzir uma linha num dossier interno, referente a um artigo composto, preciso que ao colocar a referência do artigo composto, ele introduza nas linhas os artigos componentes com as st.desc1, st.desc2, etc, das respectivas referências. Como exemplo, imaginemos um Quarto, que é composto pelo componente Cama, componente Cómoda e componente Mesa de Cabeceira. Preciso que ao colocar a referência quarto, ele coloque as referências da cama, cómoda e mesas de cabeceira com as desc1, desc2, etc do ST. Tenho um evento ao introduzir uma linha no BO, com o código abaixo: If Inlist(bo.ndos,3) If Vartype(SBO) = "O" Select bi If Not Empty(bi.ref) And existcheck(bi.ref,"st.ref"," ",.T.) Store bi.ref To m.cref If instring(m.mc1,ASTR(Rtrim(m.cref))) If (ASTR(Substr(m.cref,4,1)) = "." And ASTR(Substr(m.cref,5,2)) = "CJ" And ASTR(Substr(m.cref,7,1)) = ".") Select bi Store bi.lrecno To m.clbirecno Store bi.desconto To m.cdesconto **Store bi.ettdeb To m.cpvpconjunto m.cprocstreftabelast = "select st.epcusto from st (nolock) where st.ref like '" + ASTR(Rtrim(m.cref)) + "' " If u_sqlexec(m.cprocstreftabelast,"c_tmpst") And Reccount("c_tmpst") > 0 Select c_tmpst Goto Top Scan Store c_tmpst.epcusto To m.necusto Endscan fecha("c_tmpst") Endif Store m.necusto to m.cpvpconjunto select bi Goto Top Scan m.cprocstreftabelasc = "select sum(sc.qtt*st.epcusto) as totalpeca from sc (nolock) " m.cprocstreftabelasc = m.cprocstreftabelasc + " inner join st (nolock) on st.ref=sc.ref " m.cprocstreftabelasc = m.cprocstreftabelasc + " where " m.cprocstreftabelasc = m.cprocstreftabelasc + " sc.refb like '" + ASTR(Rtrim(m.cref)) + "' " If u_sqlexec(m.cprocstreftabelasc,"c_tmpsc") And Reccount("c_tmpsc") > 0 Select c_tmpsc Goto Top Scan Store c_tmpsc.totalpeca To m.necustoun Endscan fecha("c_tmpsc") Endif select bi If ASTR(Rtrim(bi.lrecno))=ASTR(Rtrim(m.clbirecno)) And bi.stns=.F. m.cprocstreftabelast = "select st.epcusto, st.desc1, st.desc2, st.desc3, st.desc4, st.desc5, st.desc6 " m.cprocstreftabelast = m.cprocstreftabelast + "from st (nolock) where st.ref like '" + ASTR(Rtrim(bi.ref)) + "' " If u_sqlexec(m.cprocstreftabelast,"c_tmpst") And Reccount("c_tmpst") > 0 Select c_tmpst Goto Top Scan Store c_tmpst.epcusto To m.necustoST Store c_tmpst.desc1 To m.cdesc1 Store c_tmpst.desc2 To m.cdesc2 Store c_tmpst.desc3 To m.cdesc3 Store c_tmpst.desc4 To m.cdesc4 Store c_tmpst.desc5 To m.cdesc5 Store c_tmpst.desc6 To m.cdesc6 Endscan fecha("c_tmpst") Endif Select bi replace bi.edebito with round((m.necustoST-(m.necustoST*(m.necusto/m.necustoun))-m.necustoST),2)*-1 replace bi.desconto with m.cdesconto replace bi.design with astr(m.cdesc1) ** If not empty(m.cdesc2) ** select bi ** Do Boine2in ** replace bi.design with astr(m.cdesc2) ** Endif ** If not empty(m.cdesc3) ** select bi ** Do Boine2in ** replace bi.design with astr(m.cdesc3) ** Endif ** If not empty(m.cdesc4) ** select bi ** Do Boine2in ** replace bi.design with astr(m.cdesc4) ** Endif ** If not empty(m.cdesc5) ** select bi ** Do Boine2in ** replace bi.design with astr(m.cdesc5) ** Endif ** If not empty(m.cdesc6) ** select bi ** Do Boine2in ** replace bi.design with astr(m.cdesc6) ** Endif **MSG(ASTR(BI.LRECNO)) **MSG(ASTR(BI.LORDEM)) Endif If ASTR(Rtrim(bi.lrecno))=ASTR(Rtrim(m.clbirecno)) And bi.stns=.T. Replace bi.ref With "" Replace bi.qtt With 0 Replace bi.desconto With 0 Replace bi.epu With 0 Replace bi.edebito With 0 Replace bi.eprorc With 0 Replace bi.EPCUSTO With 0 Replace bi.ettdeb With 0 Replace bi.stns With .F. Replace bi.ecustoind With 0 Replace bi.edebitoori With 0 Replace bi.Design With "QUARTO COMPOSTO POR:"+" (Preço: "+astr(m.necusto) + "€ Suj. "+astr(m.cdesconto)+"%)" **Replace bi.lrecno With "" ** msg("Apaguei a Ref do Composto. Os valores foram distribuidos pelas linhas") **Do Boine2in Endif Endscan Endif Endif Endif Endif Endif Agradeço a vossa ajuda para o pretendido. Obrigado Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now