Você está na página 1de 5

#include "rwmake.

ch"
#include "TOPCONN.CH"
// Incluso de Produto
User Function MT010ALT()
Local aAreaAtual := GetArea()
Local lGravaSBZ01 := .T.
Local lGravaSBZ02 := .T.
Local lGravaSBZ03 := .T.
//Variaveis dedicadas, a captura de parametro do MRP;
Local SBZBZ_QE
:= SB1->B1_QE
Local SBZBZ_EMIN
:= SB1->B1_EMIN
Local SBZBZ_ESTFOR := SB1->B1_ESTFOR
Local SBZBZ_ESTSEG := SB1->B1_ESTSEG
Local SBZBZ_FORPRZ := SB1->B1_FORPRZ
Local SBZBZ_PE
:= SB1->B1_PE
Local SBZBZ_TIPE
:= SB1->B1_TIPE
Local SBZBZ_LE
:= SB1->B1_LE
Local SBZBZ_LM
:= SB1->B1_LM
Local SBZBZ_TOLER
:= SB1->B1_TOLER
Local SBZBZ_MRP
:= SB1->B1_MRP
Local SBZBZ_EMAX
:= SB1->B1_EMAX
Local SBZBZ_QB
:= SB1->B1_QB
Local SBZBZ_LOCAL
:= SB1->B1_LOCPAD
Local SBZBZ_KEGINT := SB1->B1_KEGINT
Local SBZBZ_TIPO
:= SB1->B1_TIPO
If ( SB1->B1_TIPO == "PA" ) .Or. ( SB1->B1_TIPO == "ME" ) .Or.;
( SB1->B1_TIPO == "PI" ) .Or. ( SB1->B1_TIPO == "MP" ) .Or.;
( SB1->B1_TIPO == "MC" )
//U_xAutProd(2) // Opo de Incluso do Produto
End If
//Neste momento entro na logica para atualizacao do indicadores de produtos.
If ( SB1->B1_TIPO == "PA" ) .Or. ( SB1->B1_TIPO == "ME" ) .Or.;
( SB1->B1_TIPO == "PI" ) .Or. ( SB1->B1_TIPO == "MP" )
lGravaSBZ01 := .T.
lGravaSBZ02 := .T.
lGravaSBZ03 := .T.
//Inicio da logica para atualizar o cadastro de Indicadores de Produtos;
cQuerySBZ := "SELECT BZ_FILIAL AS SBZFILIAL, BZ_COD AS SBZCOD FROM " + R
etSqlName("SBZ") + " SBZ "
cQuerySBZ += " WHERE"
cQuerySBZ += " SBZ.BZ_COD = '" + SB1->B1_COD + "' AND "
cQuerySBZ += " SBZ.D_E_L_E_T_ <> '*' "
TCQUERY cQuerySBZ Alias QUERYSBZ New
//DbUseArea(.T.,"TopConn",TcGenQry(,,cQuerySBZ),"QUERYSBZ",.T.,.T.)
DbSelectArea("QUERYSBZ")
QUERYSBZ->( DbGotop() )
If QUERYSBZ->( !Eof() )

Do While QUERYSBZ->( !Eof() )


//Neste momento verifico se o registro existe na Filial
01, no caso, Matriz;
If ( QUERYSBZ->SBZFILIAL == "01" )
lGravaSBZ01 := .F.
EndIf
//Neste momento verifico se o registro existe na Filial
02, no caso, CDA;
If ( QUERYSBZ->SBZFILIAL == "02" )
lGravaSBZ02 := .F.
EndIf
//Neste momento verifico se o registro existe na Filial
03, no caso, Filial;
If ( QUERYSBZ->SBZFILIAL == "03" )
lGravaSBZ03 := .F.
EndIf
QUERYSBZ->( DbSkip() )
EndDo
EndIf
QUERYSBZ->( DbCloseArea() )
//Neste momento verifico se a variavel que controla a existencia do regi
stro na filia e verdadeira ou falsa;
If ( !lGravaSBZ01 )
cGravaSBZ := "SELECT BZ_FILIAL AS SBZFILIAL, BZ_COD AS SBZCOD, R
_E_C_N_O_ AS SBZRECNO FROM " + RetSqlName("SBZ") + " SBZ "
cGravaSBZ += " WHERE"
cGravaSBZ += " SBZ.BZ_FILIAL = '01' AND "
cGravaSBZ += " SBZ.BZ_COD = '" + SB1->B1_COD + "' AND "
//cGravaSBZ += " SBZ.BZ_LOCPAD = '" + SB1->B1_LOCPAD + "' AND "
cGravaSBZ += " SBZ.D_E_L_E_T_ <> '*' "
TCQUERY cGravaSBZ Alias GRAVASBZ New
//DbUseArea(.T.,"TopConn",TcGenQry(,,cGravaSBZ),"GRAVASBZ",.T.,.
T.)
DbSelectArea("GRAVASBZ")
GRAVASBZ->( DbGotop() )
DbSelectArea("SBZ")
If GRAVASBZ->( !Eof() )
SBZ->( DbGoto(GRAVASBZ->SBZRECNO) )

If ( SBZ->( Recno() ) == GRAVASBZ->SBZRECNO )


RecLock("SBZ",.F.)
Replace SBZ->BZ_FILIAL With "01"
Replace SBZ->BZ_COD
With SB1->B1_COD
Replace SBZ->BZ_LOCPAD With IIF (ALLTRIM (SBZBZ_TI
PO) == "PI" .AND. ALLTRIM (SBZBZ_KEGINT) == "1", "99",SBZBZ_LOCAL)
Replace SBZ->BZ_QE
With SBZBZ_QE
Replace SBZ->BZ_EMIN
With SBZBZ_EMIN
Replace SBZ->BZ_ESTFOR With SBZBZ_ESTFOR
Replace SBZ->BZ_ESTSEG With SBZBZ_ESTSEG
Replace SBZ->BZ_FORPRZ With SBZBZ_FORPRZ
Replace SBZ->BZ_PE
With SBZBZ_PE
Replace SBZ->BZ_TIPE
With SBZBZ_TIPE
Replace SBZ->BZ_LE
With SBZBZ_LE
Replace SBZ->BZ_LM
With SBZBZ_LM
Replace SBZ->BZ_TOLER
With SBZBZ_TOLER
Replace SBZ->BZ_MRP
With SBZBZ_MRP
Replace SBZ->BZ_EMAX
With SBZBZ_EMAX
Replace SBZ->BZ_QB
With SBZBZ_QB

MsUnlock()
EndIf
EndIf
GRAVASBZ->( DbCloseArea () )
EndIf //Fim da logica Matriz;
//Neste momento verifico se a variavel que controla a existencia do regi
stro na filia e verdadeira ou falsa;
If ( !lGravaSBZ02 )
cGravaSBZ := "SELECT BZ_FILIAL AS SBZFILIAL, BZ_COD AS SBZCOD, R
_E_C_N_O_ AS SBZRECNO FROM " + RetSqlName("SBZ") + " SBZ "
cGravaSBZ += " WHERE"
cGravaSBZ += " SBZ.BZ_FILIAL = '02' AND "
cGravaSBZ += " SBZ.BZ_COD = '" + SB1->B1_COD + "' AND "
//cGravaSBZ += " SBZ.BZ_LOCPAD = '" + SB1->B1_LOCPAD + "' AND "
cGravaSBZ += " SBZ.D_E_L_E_T_ <> '*' "
TCQUERY cGravaSBZ Alias GRAVASBZ New
//DbUseArea(.T.,"TopConn",TcGenQry(,,cGravaSBZ),"GRAVASBZ",.T.,.
T.)
DbSelectArea("GRAVASBZ")
GRAVASBZ->( DbGotop() )
DbSelectArea("SBZ")
If GRAVASBZ->( !Eof() )
SBZ->( DbGoto(GRAVASBZ->SBZRECNO) )

If ( SBZ->( Recno() ) == GRAVASBZ->SBZRECNO )


RecLock("SBZ",.F.)
Replace SBZ->BZ_FILIAL With "02"
Replace SBZ->BZ_COD
With SB1->B1_COD
Replace SBZ->BZ_LOCPAD With IIF (ALLTRIM (SBZBZ_TI
PO) == "PI" .AND. ALLTRIM (SBZBZ_KEGINT) == "1", "99",SBZBZ_LOCAL)
Replace SBZ->BZ_QE
With SBZBZ_QE
Replace SBZ->BZ_EMIN
With SBZBZ_EMIN
Replace SBZ->BZ_ESTFOR With SBZBZ_ESTFOR
Replace SBZ->BZ_ESTSEG With SBZBZ_ESTSEG
Replace SBZ->BZ_FORPRZ With SBZBZ_FORPRZ
Replace SBZ->BZ_PE
With SBZBZ_PE
Replace SBZ->BZ_TIPE
With SBZBZ_TIPE
Replace SBZ->BZ_LE
With SBZBZ_LE
Replace SBZ->BZ_LM
With SBZBZ_LM
Replace SBZ->BZ_TOLER
With SBZBZ_TOLER
Replace SBZ->BZ_MRP
With SBZBZ_MRP
Replace SBZ->BZ_EMAX
With SBZBZ_EMAX
Replace SBZ->BZ_QB
With SBZBZ_QB

MsUnlock()
EndIf
EndIf
GRAVASBZ->( DbCloseArea () )
EndIf //Fim da logica CDA;
//Neste momento verifico se a variavel que controla a existencia do regi
stro na filia e verdadeira ou falsa;
If ( !lGravaSBZ03 )
cGravaSBZ := "SELECT BZ_FILIAL AS SBZFILIAL, BZ_COD AS SBZCOD, R
_E_C_N_O_ AS SBZRECNO FROM " + RetSqlName("SBZ") + " SBZ "
cGravaSBZ += " WHERE"
cGravaSBZ += " SBZ.BZ_FILIAL = '03' AND "
cGravaSBZ += " SBZ.BZ_COD = '" + SB1->B1_COD + "' AND "
//cGravaSBZ += " SBZ.BZ_LOCPAD = '" + SB1->B1_LOCPAD + "' AND "
cGravaSBZ += " SBZ.D_E_L_E_T_ <> '*' "
TCQUERY cGravaSBZ Alias GRAVASBZ New
//DbUseArea(.T.,"TopConn",TcGenQry(,,cGravaSBZ),"GRAVASBZ",.T.,.
T.)
DbSelectArea("GRAVASBZ")
GRAVASBZ->( DbGotop() )
DbSelectArea("SBZ")
If GRAVASBZ->( !Eof() )
SBZ->( DbGoto(GRAVASBZ->SBZRECNO) )

If ( SBZ->( Recno() ) == GRAVASBZ->SBZRECNO )


RecLock("SBZ",.F.)
Replace SBZ->BZ_FILIAL With "03"
Replace SBZ->BZ_COD
With SB1->B1_COD
Replace SBZ->BZ_LOCPAD With IIF (ALLTRIM (SBZB
Z_TIPO) == "PI" .AND. ALLTRIM (SBZBZ_KEGINT) == "1", "99",SBZBZ_LOCAL)
Replace SBZ->BZ_QE
With SBZBZ_QE
Replace SBZ->BZ_EMIN
With SBZBZ_EMIN
Replace SBZ->BZ_ESTFOR With SBZBZ_ESTFOR
Replace SBZ->BZ_ESTSEG With SBZBZ_ESTSEG
Replace SBZ->BZ_FORPRZ With SBZBZ_FORPRZ
Replace SBZ->BZ_PE
With SBZBZ_PE
Replace SBZ->BZ_TIPE
With SBZBZ_TIPE
Replace SBZ->BZ_LE
With SBZBZ_LE
Replace SBZ->BZ_LM
With SBZBZ_LM
Replace SBZ->BZ_TOLER
With SBZBZ_TOLER
Replace SBZ->BZ_MRP
With SBZBZ_MRP
Replace SBZ->BZ_EMAX
With SBZBZ_EMAX
Replace SBZ->BZ_QB
With SBZBZ_QB

MsUnlock()
EndIf
EndIf
GRAVASBZ->( DbCloseArea () )
EndIf //Fim da logica Filial;
End If
RestArea(aAreaAtual)
Return(.T.)

Você também pode gostar