'
cTotalReg+=' '
cTotalReg+=' '
cShowDesc := 'true'
Endif
//Retorna o HTML para construção da página
cHtml := H_AddOrc()
Web Extended End
Return (cHTML)
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ ListaUF ¦ Autor ¦ Lucilene Mendes ¦ Data ¦24.08.24 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Retorna lista de select com os estados ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function ListaUF()
Local cLista:= ""
cQry:= " Select X5_CHAVE, X5_DESCRI "
cQry+= " From "+RetSqlName("SX5")+" SX5 "
cQry+= " Where X5_FILIAL = '"+xFilial("SX5")+"' "
cQry+= " And X5_TABELA = '12' "
cQry+= " And X5_CHAVE <> 'EX' "
cQry+= " And SX5.D_E_L_E_T_ = ' ' "
cQry+= " Order by X5_DESCRI"
APWExOpenQuery(ChangeQuery(cQry),'QRE',.T.)
cLista+=' '
While QRE->(!Eof())
cLista+=' '
QRE->(dbSkip())
End
QRE->(dbCloseArea())
Return cLista
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ ListaVend ¦ Autor ¦ Lucilene Mendes ¦ Data ¦24.08.24 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Retorna lista de select com os vendedores conforme o tipo ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function ListaVend(lRegional,cOpcSel)
Local cLista:= ""
Default lRegional:= .F.
cQry:= " Select A3_COD, A3_NOME "
cQry+= " From "+RetSqlName("SA3")+" SA3 "
cQry+= " Where A3_FILIAL = '"+xFilial("SA3")+"' "
If lRegional
cQry+= " And A3_CLASSIF = 'R' "
cQry+= " And SUBSTRING(A3_NOME,1,4) = 'REGI' "
Else
cQry+= " And A3_CLASSIF IN ('V','T') " //VENDEDOR OU TELEVENDAS - (GATILHO VENDEDOR FATA1010)
cQry+= " And SUBSTRING(A3_NOME,1,4) <> 'REGI' "
Endif
cQry+= " And A3_MSBLQL <> '1' "
cQry+= " And SA3.D_E_L_E_T_ = ' ' "
If Select("QRR") > 0
QRR->(dbCloseArea())
Endif
conout("query vendedores:"+cqry)
APWExOpenQuery(ChangeQuery(cQry),'QRR',.T.)
While QRR->(!Eof())
cLista+=' '
QRR->(dbSkip())
End
QRR->(dbCloseArea())
Return cLista
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ Vend04 ¦ Autor ¦ Lucilene Mendes ¦ Data ¦24.08.24 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Retorna lista de select com os vendedores 04 ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function Vend04(cOpcSel)
Local cLista:= ""
Local cCodVend:= GetNewPar("PR_VEND04","000845/000846")
cQry:= " Select A3_COD, A3_NOME "
cQry+= " From "+RetSqlName("SA3")+" SA3 "
cQry+= " Where A3_FILIAL = '"+xFilial("SA3")+"' "
cQry+= " And A3_COD IN "+FormatIn(cCodVend,"/")+" "
cQry+= " And A3_CLASSIF = 'E' "
cQry+= " And A3_MSBLQL <> '1' "
cQry+= " And SA3.D_E_L_E_T_ = ' ' "
APWExOpenQuery(ChangeQuery(cQry),'QRV',.T.)
While QRV->(!Eof())
cLista+=' '
QRV->(dbSkip())
End
QRV->(dbCloseArea())
Return cLista
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ ListaEsp ¦ Autor ¦ Lucilene Mendes ¦ Data ¦24.08.24 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Retorna lista de select com os especificadores ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function ListaEsp(cOpcSel)
Local cLista:= ""
cQry:= " Select X5_CHAVE, X5_DESCRI "
cQry+= " From "+RetSqlName("SX5")+" SX5 "
cQry+= " Where X5_FILIAL = '"+xFilial("SX5")+"' "
cQry+= " And X5_TABELA = 'Z1' "
cQry+= " And SX5.D_E_L_E_T_ = ' ' "
APWExOpenQuery(ChangeQuery(cQry),'QRX',.T.)
While QRX->(!Eof())
cLista+=' '
QRX->(dbSkip())
End
QRX->(dbCloseArea())
Return cLista
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ ListaCli ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 17.10.23 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Busca a lista de clientes ativos ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function ListaCli(cCodVend,cSelecionado)
Local cQuery:= ""
Local cLista:= ""
cQuery := " Select A1_COD, A1_LOJA, A1_CGC, A1_NOME, A1_TIPO, A1_CODMUN, A1_MUN, A1_COND "
cQuery += " From "+RetSqlName("SA1")+" SA1 "
cQuery += " Where A1_FILIAL = '"+xFilial("SA1")+"' "
cQuery += " AND ( "
If HttpSession->Tipo = 'S' //Supervisor acessa todos os clientes da sua equipe
cQuery+= " A1_REGIAO = '"+HttpSession->Regional+"' "
//cQuery+= " A1_VEND in "+FormatIn(HttpSession->Equipe,"|")+" "
Else
If !Empty(cCodVend)
cQuery+= " A1_VEND = '"+cCodVend+"'" // OR A1_VEND2 = '"+cCodVend+"' OR A1_VEND3= '"+cCodVend+"' OR A1_VEND4= '"+cCodVend+"' OR A1_VEND5 = '"+cCodVend+"' ) "
Else
cQuery+= " A1_VEND <> '' "
Endif
Endif
cQuery += " OR A1_VEND = ' ' )"
cQuery += " And A1_MSBLQL <> '1' "
cQuery += " And SA1.D_E_L_E_T_ = ' ' "
cQuery += " Order by A1_NOME "
conout("query clientes:"+cquery)
If Select("QRY") > 0
QRY->(dbCloseArea())
Endif
APWExOpenQuery(ChangeQuery(cQuery),'QRY',.T.)
While QRY->(!EOF())
cLista+=' '
QRY->(dbSkip())
End
APWExCloseQuery('QRY')
Return cLista
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ ListaOpt ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 17.10.23 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Busca a lista de oportunidades ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function ListaOpt(cCodVend,cSelecionado)
Local cQuery:= ""
Local cLista:= ""
cQuery := " Select AD1_NROPOR,AD1_REVISA, AD1_DESCRI, AD1_DESCCI, AD1_NOMPAR"
cQuery += " From "+RetSqlName("AD1")+" AD1 "
cQuery += " Where AD1_FILIAL = '"+xFilial("AD1")+"' "
//cQuery += " And AD1_HOMOLO = '3' " //Status homologação = homologado
cQuery += " And AD1.D_E_L_E_T_ = ' ' "
cQuery += " Order by AD1_NROPOR "
conout("query oportunidade:"+cquery)
If Select("QRYAD1") > 0
QRYAD1->(dbCloseArea())
Endif
APWExOpenQuery(ChangeQuery(cQuery),"QRYAD1",.T.)
While QRYAD1->(!EOF())
cLista+=''
QRYAD1->(dbSkip())
End
APWExCloseQuery('QRYAD1')
Return cLista
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ ListaNeg ¦ Autor ¦ Lucilene Mendes ¦ Data ¦24.08.24 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Retorna lista de select com os negociadores ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function ListaNeg(cOpcSel)
Local cLista:= ""
cQry:= " Select Z68_COD, Z68_NOME "
cQry+= " From "+RetSqlName("Z68")+" Z68 "
cQry+= " Where Z68_FILIAL = '"+xFilial("Z68")+"' "
cQry+= " And Z68_MSBLQL <> '1' "
cQry+= " And Z68.D_E_L_E_T_ = ' ' "
APWExOpenQuery(ChangeQuery(cQry),'QRN',.T.)
While QRN->(!Eof())
cLista+=' '
QRN->(dbSkip())
End
QRN->(dbCloseArea())
Return cLista
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ RemEspec ¦ Autor ¦ Lucilene Mendes ¦ Data ¦17.08.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Remove caracteres especiais ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function RemEspec(cTexto)
Local aNoChar:= {'<','>','+',"'"} //,"'",'"','&','+'}
Local i:= 0
For i:= 1 to Len(aNoChar)
If aNoChar[i] $ cTexto
cTexto:= StrTran(cTexto,aNoChar[i],"")
Endif
Next
Return cTexto
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ SlvOrc ¦ Autor ¦ Lucilene Mendes ¦ Data ¦17.08.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Gera a cotação. ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function SlvOrc()
Local cHtml
Local nOpc := 3 // 3- Incluir / 4- Alterar / 5- Excluir
Local cCondPag := ""
Local cTabela := ""
Local cCliente := ""
Local cLoja := ""
Local cMsg := ""
Local cTransp := ""
Local cSerieNF := ""
Local dValidade := ""
Local cItens := ""
Local cDestOrc := ""
Local cMsgIn := ""
Local cMensagem := ""
Local x := 0
Local i := 0
Local nTotSck := 0
Local nPosLin := 0
Local nDesc1 := 0
Local cDirOrc := "\anexosPortal\orcamento\"
Local cDirErro := "\erro\"
Local aItens := {}
Local cNumSCJ := ""
Local lRet := .T.
Local cSaveVend
local lEnvEmail := .f.
local lComisTR
Private cReturn
Private aCabSCJ :={}
Private aItemSCJ:={}
Private aLinhaSCJ:={}
Private lMsErroAuto:= .F.
Private cCodLogin := ""
Private cVendLogin:= ""
Private n:= 0
Web Extended Init cHtml Start U_inSite()
cVendLogin := u_GetUsrPR()
cCodLogin := U_SetParPR(cVendLogin)
//Verifica se não perdeu a sessão
If type("HttpSession->CodVend") = "U" .or. Empty(HttpSession->CodVend)
conout(Procname()+"("+ltrim(str(procline()))+") *** Portal "+"Sessao encerrada")
cHtml:= ''
return cHtml
Endif
//Verifica se existe pedido lançado para o cliente nos últimos 3 minutos.
/*
If Empty(HttpPost->CJ_NUM)
cQry:= "Select * from "+RetSqlName("SCJ")+" SCJ "
cQry+= "Where CJ_FILIAL = '"+xFilial("SCJ")+"' "
cQry+= "And CJ_CLIENTE = '"+Left(HttpPost->CJ_CLIENTE,9)+"' "
cQry+= "And CJ_LOJA = '"+Right(HttpPost->CJ_CLIENTE,4)+"' "
cQry+= "And CJ_EMISSAO = '"+dtos(dDataBase)+"' "
cQry+= "And CJ_COTCLI >= '"+StrTran(StrZero(SubHoras(Time(),'00:03:00'),5,2),'.',':')+":00"+"' "
cQry+= "And SCJ.D_E_L_E_T_ = ' ' "
If Select("QRH") > 0
QRH->(dbCloseArea())
Endif
conout("Hora: "+Time()+" Vend: "+HttpSession->CodVend+" --> "+cqry)
APWExOpenQuery(ChangeQuery(cQry),'QRH',.T.)
If Contar("QRH","!Eof()") > 0
cHtml:= ""
Return cHtml
Endif
Endif
*/
If nOpc = 3
INCLUI := .T.
Else
ALTERA := .T.
Endif
//Variáveis do cabeçalho
lComisTR := GetMv("LC_415TVRT",,.F.)
cFilOrc := Iif(Type("HttpPost->CJ_FILIAL") <> "U",HttpPost->CJ_FILIAL,'')
cNumSCJ := Iif(Type("HttpPost->CJ_NUM") <> "U",HttpPost->CJ_NUM,'')
cTabela:= HttpPost->CJ_TABELA
cCliente:= Left(HttpPost->CJ_CLIENTE,6)
cLoja:= Right(HttpPost->CJ_CLIENTE,6)
cOport:= HttpPost->CJ_NROPOR
cRevOpt:= Iif(Type("HttpPost->CJ_REVISA") <> "U",HttpPost->CJ_REVISA,'')
cGrpTrib:= Iif(Type("HttpPost->CJ_GRPTRIB") <> "U",HttpPost->CJ_GRPTRIB,'')
cContato:= Upper(HttpPost->CJ_XCONTAT)
cContDDD:= HttpPost->CJ_XCONDDD
cContTel:= HttpPost->CJ_XCONTEL
cCliEnt:= Left(HttpPost->CJ_CLIENT,6)
cLjEnt:= Right(HttpPost->CJ_CLIENT,2)
cUFEnt:= Iif(Type("HttpPost->CJ_UFENT")<>"U",HttpPost->CJ_UFENT,"")
cObra:= Iif(Type("HttpPost->CJ_OBRA")<>"U",Upper(HttpPost->CJ_OBRA),"")
cTpObra:= Iif(Type("HttpPost->CJ_YOBRATP")<>"U",Alltrim(HttpPost->CJ_YOBRATP),"")
cVend6:= Iif(Type("HttpPost->CJ_VEND6")<>"U",HttpPost->CJ_VEND6,"")
cTermom:= Iif(Type("HttpPost->CJ_TERMOME")<>"U",HttpPost->CJ_TERMOME,"")
cCondPag:= Iif(Type("HttpPost->CJ_CONDPAG")<>"U",HttpPost->CJ_CONDPAG,"B13")
cCliInt:= Iif(Type("HttpPost->CJ_CLIINTE") <> "U",HttpPost->CJ_CLIINTE,'')
dRetorno:= ctod(Iif(Type("HttpPost->CJ_RETORNO")<>"U",HttpPost->CJ_RETORNO,""))
cEstudo:= Iif(Type("HttpPost->CJ_LUMINOT") <> "U",HttpPost->CJ_LUMINOT,'')
cEstNum:= Iif(Type("HttpPost->CJ_REGLUMI") <> "U",HttpPost->CJ_REGLUMI,'')
cSegmento:= Iif(Type("HttpPost->CJ_SEGMENT") <> "U",HttpPost->CJ_SEGMENT,'')
cProspec:= Iif(Type("HttpPost->CJ_PROPECC") <> "U",HttpPost->CJ_PROPECC,'')
cProspCod:= Iif(Type("HttpPost->CJ_PROSCOD") <> "U",HttpPost->CJ_PROSCOD,'')
cRegional:= Iif(Type("HttpPost->CJ_REGIAO")<>"U",HttpPost->CJ_REGIAO,"")
cVendedor:= Iif(Type("HttpPost->CJ_VEND") <> "U",HttpPost->CJ_VEND,'')
cVend3:= Iif(Type("HttpPost->CJ_VEND3")<>"U",HttpPost->CJ_VEND3,"")
cVend4:= Iif(Type("HttpPost->CJ_VEND4")<>"U",HttpPost->CJ_VEND4,"")
cCodEsp:= Iif(Type("HttpPost->CJ_CODESP")<>"U",HttpPost->CJ_CODESP,"")
cVend7:= Iif(Type("HttpPost->CJ_VEND7")<>"U",HttpPost->CJ_VEND7,"")
dValidade:= ctod(Iif(Type("HttpPost->CJ_VALIDA")<>"U",HttpPost->CJ_VALIDA,""))
cPrzEmb:= Iif(Type("HttpPost->CJ_PRZEMB")<>"U",HttpPost->CJ_PRZEMB,"")
cTipoFrete := Iif(Type("HttpPost->CJ_TPFRETE") <> "U",HttpPost->CJ_TPFRETE,"")
nPercFrete := Iif(Type("HttpPost->CJ_PERCFRT") <> "U",val(HttpPost->CJ_PERCFRT),0)
nFrete:= Iif(Type("HttpPost->CJ_FRETE")<>"U",Val(StrTran(StrTran(HttpPost->CJ_FRETE,'.',''),',','.')),0)
nRT:= Iif(Type("HttpPost->CJ_COMISTR")<>"U",Val(StrTran(StrTran(HttpPost->CJ_COMISTR,'.',''),',','.')),0)
cObs:= Iif(Type("HttpPost->CJ_OBS") <> "U",HttpPost->CJ_OBS,"")
nDescDir:= Iif(Type("HttpPost->CJ_DSDIRET")<>"U",Val(StrTran(StrTran(HttpPost->CJ_DSDIRET,'.',''),',','.')),0)
nTotSck := val(HttpPost->PROXIMO)
cItens:= HttpPost->aItens
nOpc:= Val(HttpPost->OPCAO)
For x:= 1 to nTotSck
nPosLin:= At("||",cItens)-1
If nPosLin > 0
aLinha:= Separa(Substr(cItens,1,nPosLin),";")
cItens:= Substr(cItens,nPosLin+3)
If Len(aLinha) > 0
aAdd(aItens,aLinha)
Endif
Endif
aLinha:= {}
Next
//Posiciona nas tabelas
If !Empty(cCondPag)
Posicione("SE4",1,xFilial("SE4")+cCondPag,"E4_COND")
Endif
If !Empty(cTabela)
Posicione("DA0",1,xFilial("DA0")+cTabela,"DA0_CODTAB")
//lPneu := Iif(DA0->DA0_XPOLIM = '1', .F.,.T.)
Endif
If !Empty(cCliente)
Posicione("SA1",1,xFilial("SA1")+Alltrim(HttpPost->CJ_CLIENTE),"A1_COD")
Endif
If !Empty(cOport)
Posicione("AD1",1,xFilial("AD1")+Alltrim(cOport),"AD1_NROPOR")
Endif
//Monta o cabeçalho
If !Empty(cNumSCJ) .and. nOpc = 4
SCJ->(dbSetOrder(1)) // CJ_FILIAL+CJ_NUM
If SCJ->(dbSeek(cFilOrc+cNumSCJ))
If cFilOrc <> cFilAnt
u_PtTrocaFil(cFilOrc)
Endif
endif
cFilAnt := xFilial("SCJ")
// aadd(aCabSCJ,{"CJ_FILIAL",xFilial("SCJ"),Nil})
aadd(aCabSCJ,{"CJ_NUM",cNumSCJ,Nil})
Else
aadd(aCabSCJ,{"CJ_COTCLI",Time(),Nil})
EndIf
aadd(aCabSCJ,{"CJ_CLIENTE",SA1->A1_COD,Nil})
aadd(aCabSCJ,{"CJ_LOJA", SA1->A1_LOJA ,Nil})
aadd(aCabSCJ,{"CJ_CONDPAG",cCondPag ,Nil})
If !Empty(nDescDir)
aadd(aCabSCJ,{"CJ_DSDIRET" ,nDescDir,Nil})
Endif
aadd(aCabSCJ,{"CJ_UFENT",cUFEnt ,Nil})
aadd(aCabSCJ,{"CJ_OBRA",cObra ,Nil})
aadd(aCabSCJ,{"CJ_YOBRATP",cTpObra ,Nil})
aadd(aCabSCJ,{"CJ_NROPOR",cOport,Nil})
aadd(aCabSCJ,{"CJ_REVISA",cRevOpt ,Nil})
aadd(aCabSCJ,{"CJ_REGIAO",cRegional ,Nil})
aadd(aCabSCJ,{"CJ_VEND",cVendedor ,Nil})
aadd(aCabSCJ,{"CJ_VEND3",cVend3 ,Nil})
aadd(aCabSCJ,{"CJ_VEND4",cVend4 ,Nil})
aadd(aCabSCJ,{"CJ_CODESP",cCodEsp ,Nil})
aadd(aCabSCJ,{"CJ_ESPECIF",fDesc("SX5","Z1"+cCodEsp,"X5_DESCRI"),Nil})
aadd(aCabSCJ,{"CJ_CLIENT",cCliEnt ,Nil})
aadd(aCabSCJ,{"CJ_LOJAENT",cLjEnt ,Nil})
aadd(aCabSCJ,{"CJ_VEND6",cVend6 ,Nil})
aadd(aCabSCJ,{"CJ_VEND7",cVend7 ,Nil})
aadd(aCabSCJ,{"CJ_PRZEMB",cPrzEmb ,Nil})
aadd(aCabSCJ,{"CJ_TPFRETE" ,cTipoFrete,Nil})
//aadd(aCabSCJ,{"CJ_GRPTRIB" ,cGrpTrib,Nil})
aadd(aCabSCJ,{"CJ_OBS",AllTrim(decodeutf8(HttpPost->CJ_OBS)),Nil})
aadd(aCabSCJ,{"CJ_VALIDA",dValidade ,Nil})
aadd(aCabSCJ,{"CJ_COMISTR" ,nRT,Nil})
aadd(aCabSCJ,{"CJ_PERCFRT" ,nPercFrete,Nil})
aadd(aCabSCJ,{"CJ_FRETE" ,nFrete,Nil})
aadd(aCabSCJ,{"CJ_LUMINOT",cEstudo ,Nil})
aadd(aCabSCJ,{"CJ_REGLUMI",cEstNum ,Nil})
aadd(aCabSCJ,{"CJ_SEGMENT",cSegmento ,Nil})
aadd(aCabSCJ,{"CJ_RETORNO",dRetorno ,Nil})
aadd(aCabSCJ,{"CJ_TERMOME",cTermom ,Nil})
aadd(aCabSCJ,{"CJ_CLIINTE",cCliInt ,Nil})
aadd(aCabSCJ,{"CJ_PROPECC",cProspec ,Nil})
aadd(aCabSCJ,{"CJ_PROSCOD",cProspCod ,Nil})
aadd(aCabSCJ,{"CJ_XCONTAT",cContato ,Nil})
aadd(aCabSCJ,{"CJ_XCONDDD",cContDDD ,Nil})
aadd(aCabSCJ,{"CJ_XCONTEL",cContTel ,Nil})
aadd(aCabSCJ,{"CJ_USUARIO",HttpSession->Nome ,Nil})
//aadd(aCabSCJ,{"CJ_TABELA" ,cTabela,Nil})
//Cria as variáveis de memória
//RegtoMemory("SCJ")
//For i:=1 to Len(aCabSCJ)
// M->&(aCabSCJ[i,1]) := aCabSCJ[i,2]
//Next
//Monta os itens
dbSelectArea("SB1")
SB1->(dbSetorder(1))
If ValType(aItens) == "A" .and. Len(aItens) > 0
For i:=1 to Len(aItens)
If ValType(aItens[i,1]) == 'C'
aLinhaSCJ:={}
cItem:= StrZero(i,TamSX3("CK_ITEM")[1])
cProdSck:= PadR(aItens[i,1], TamSX3("CK_PRODUTO")[1])
nQuantSck := val(StrTran(StrTran(aItens[i,2],".",""),",","."))//val(aItens[i,2])
cObsSck:= PadR(aItens[i,3], TamSX3("CK_OBS")[1])
cPrzSck:= aItens[i,4]
nPrcVen := aItens[i,5]
nPrcVen := val(StrTran(StrTran(nPrcVen,".",""),",","."))
nPrcImp := val(StrTran(StrTran(aItens[i,6],".",""),",","."))
nValIPI := val(StrTran(StrTran(aItens[i,7],".",""),",","."))
nValICMS := val(StrTran(StrTran(aItens[i,8],".",""),",","."))
nValST := val(StrTran(StrTran(aItens[i,9],".",""),",","."))
nAliICMS:= val(StrTran(StrTran(aItens[i,10],".",""),",","."))
nAliIPI:= val(StrTran(StrTran(aItens[i,11],".",""),",","."))
nAliST:= val(StrTran(StrTran(aItens[i,12],".",""),",","."))
cTes:= aItens[i,13]
nCusto:= val(StrTran(StrTran(aItens[i,14],".",""),",","."))
cNomDire:= PadR(aItens[i,15], TamSX3("CK_NOMDIRE")[1])
nPerCom:= val(StrTran(StrTran(aItens[i,16],".",""),",","."))
nValCom:= val(StrTran(StrTran(aItens[i,17],".",""),",","."))
nDescont:= Iif(Empty(aItens[i,18]),0,Val(StrTran(aItens[i,18],",",".")))
If SB1->(dbSeek(xFilial("SB1")+cProdSck)) .and. nQuantSck > 0 .And. nPrcVen > 0 .and. SB1->B1_MSBLQL <> '1'
aadd(aLinhaScj,{"CK_ITEM" ,cItem,Nil})
aadd(aLinhaScj,{"CK_PRODUTO",SB1->B1_COD,Nil})
aadd(aLinhaScj,{"CK_QTDVEN" ,nQuantSck,Nil})
nPrcVen1:= nPrcVen-(nPrcVen*(nDescont/100))
aadd(aLinhaScj,{"CK_PRUNIT" ,A410Arred(nPrcVen, "CK_PRUNIT"),Nil})
aadd(aLinhaScj,{"CK_PRCVEN" ,A410Arred(nPrcVen, "CK_PRCVEN"),Nil})
//aadd(aLinhaScj,{"CK_PRCVEN" ,A410Arred(nPrcVen1, "CK_PRCVEN"),Nil})
aadd(aLinhaScj,{"CK_PRTAB" ,A410Arred(nPrcVen, "CK_PRCVEN"),Nil})
aadd(aLinhaScj,{"CK_VALOR" ,A410Arred(nQuantSck*A410Arred(nPrcVen1, "CK_PRCVEN"),"CK_VALOR"),Nil})
aadd(aLinhaScj,{"CK_OBS" ,cObsSck,Nil})
aadd(aLinhaScj,{"CK_DESCONT",nDescont,Nil})
aadd(aLinhaScj,{"CK_PRZEMB" ,cPrzSck,Nil})
aadd(aLinhaScj,{"CK_TES" ,cTes,Nil})
//aadd(aLinhaScj,{"CK_ENTREG" ,dDtEntreg,Nil})
aadd(aLinhaScj,{"CK_XVALIPI",nValIPI,Nil})
aadd(aLinhaScj,{"CK_XVALICM",nValICMS,Nil})
aadd(aLinhaScj,{"CK_XICMST" ,nValST,Nil})
//aadd(aLinhaScj,{"CK_XALIICM",nAliICMS,Nil})
//aadd(aLinhaScj,{"CK_XALIIPI",nAliIPI,Nil})
//aadd(aLinhaScj,{"CK_XALIST ",nAliST,Nil})
If !Empty(cNomDire)
aadd(aLinhaScj,{"CK_NOMDIRE",cNomDire,Nil})
Endif
If !Empty(nCusto)
aadd(aLinhaScj,{"CK_CUSTO" ,nCusto,Nil})
Endif
aadd(aItemScj,aLinhaScj)
Else
lRet:= .F.
Endif
Endif
Next
//Chama execauto para inclusão do orçamento
If Len(aCabSCJ) > 0 .and. Len(aItemSCJ) > 0 .and. lRet
lMsErroAuto:= .F.
MATA415(aCabSCJ,aItemSCJ,nOpc)
Else
If !Empty(cNumSCJ)
conout(Procname()+"("+ltrim(str(procline()))+") *** Portal "+"FALHA AO INCLUIR O ORÇAMENTO. REFAÇA A OPERAÇÃO!")
Else
conout(Procname()+"("+ltrim(str(procline()))+") *** Portal "+"FALHA AO ALTERAR O ORÇAMENTO. REFAÇA A OPERAÇÃO!")
EndIf
lRet := .F.
Endif
If lMsErroAuto
If !ExistDir(cDirErro)
MakeDir(cDirErro)
Endif
cDirErro+=dtos(date())
If !ExistDir(cDirErro)
MakeDir(cDirErro)
Endif
//Grava o erro
cMsg:= MostraErro(cDirErro,"erro_orcto_"+strtran(time(),":","")+"_"+cFilAnt+".txt")
cDestMail:= GetNewPar("PR_DESTORE ","lucilene@smsti.com.br")
u_MailCM("ERRO ORCAMENTO",{cDestMail},{},"ERRO ORCAMENTO NO PORTAL",cMsg,"","")
cHtml:= "erro"
Else
// trata revisoes conforme ORCA1000
if HttpPost->RECCJANT <> ""
//Posiciona no orçamento
dbSelectArea("SCJ")
conout("ant###**")
CONOUT(httpPost->RECCJANT)
SCJ->(dbGoTo(val(httpPost->RECCJANT)))
Reclock("SCJ",.F.)
SCJ->CJ_DSCPERD := "REVISAO"
SCJ->CJ_DTCANC:= dDataBase
SCJ->CJ_STATUS:= 'C'
msUnlock()
// Verifica se existe Etapas da Negociação.
If Select("QRY") > 0
QRY->(DbCloseArea())
Endif
cQuery := "SELECT * FROM "+RetSQLName('SZW')+" WHERE D_E_L_E_T_ = ' ' AND ZW_ORCAMEN = '" + cNumSCJ + "' AND ZW_FILIAL = "+xFilial('SZW')+" "
TcQuery cQuery New Alias "QRY"
While QRY->(!EOF())
RecLock("SZW",.T.)
SZW->ZW_FILIAL := '01'
SZW->ZW_ORCAMEN := cNumSCJ
SZW->ZW_DATA := SToD(QRY->ZW_DATA)
SZW->ZW_HORA := QRY->ZW_HORA
SZW->ZW_USUARIO := QRY->ZW_USUARIO
SZW->ZW_HISTOR := QRY->ZW_HISTOR
MsUnlock("SZW")
QRY->(dbSkip())
EndDo
// se comissao rt com parceiro na tabela z81
If lComisTR
// copia parceiros da comissao rt
CopiarZ81(cNumSCJ,SCJ->CJ_NUM)
Endif
// Gravar tabelas de Auditoria. Fonseca --> Solicitante Rodrigo.
cSQLExec := "INSERT INTO AUDIT_SCJ SELECT SYSDATE, '" + Upper(Trim(HttpSession->NomeFull)) + "', '4-REVISAO', SCJ010.* FROM SCJ010 WHERE D_E_L_E_T_ = ' ' AND CJ_NUM = '" + Trim(SCJ->CJ_NUM) + "' AND CJ_FILIAL = '" + xFilial("SCJ") + "'"
If TCSqlExec(cSQLExec) < 0
Msgstop('Erro Revisão AUDIT_SCJ. ORCA1000' + Chr(13) + TCSQLError(),'Erro !!!')
Endif
cSQLExec := "INSERT INTO AUDIT_SCK SELECT SYSDATE, '" + Upper(Trim(HttpSession->NomeFull)) + "', '4-REVISAO', SCK010.* FROM SCK010 WHERE D_E_L_E_T_ = ' ' AND CK_NUM = '" + Trim(SCJ->CJ_NUM) + "' AND CK_FILIAL = '" + xFilial("SCK") + "'"
If TCSqlExec(cSQLExec) < 0
Msgstop('Erro Revisão AUDIT_SCK. ORCA1000' + Chr(13) + TCSQLError(),'Erro !!!')
Endif
ENDIF
cHtml:= cNumSCJ+"
"
cDestOrc := GetNewPar("PR_DESTORC","")
//Envia e-mail informando a inclusão do orçamento
If !Empty(cDestOrc) .and. (nOpc = 3 .or. lEnvEmail) //não envia para orçamento previsto
cMsg:= "Um novo orçamento foi gerado pelo Portal do Representante.
"
cMsg+= "Filial: "+SCJ->CJ_FILIAL+" "
cMsg+= "Número: "+cNumSCJ+" "
cMsg+= "Vendedor: "+SCJ->CJ_VEND+" - "+Alltrim(Posicione("SA3",1,xFilial("SA3")+SCJ->CJ_VEND,"A3_NOME"))+" "
cMsg+= "Cliente: "+SCJ->CJ_CLIENTE+"/"+SCJ->CJ_LOJA+" - "+Posicione("SA1",1,+xFilial("SA1")+SCJ->CJ_CLIENTE+SCJ->CJ_LOJA,"A1_NOME")+" "
u_MailCM("ORÇAMENTO",{cDestOrc},{},"NOVO ORCAMENTO PORTAL: "+SCJ->CJ_FILIAL+"/"+cNumSCJ+" - "+;
trim(Posicione("SA1",1,+xFilial("SA1")+SCJ->CJ_CLIENTE+SCJ->CJ_LOJA,"A1_NOME")),cMsg,"","")
Endif
//////////////
// Envia e-Mail para supervisoras dos clientes que ficaram ativos.
If Empty(SA1->A1_ULTORCA) .OR. (dDataBase - SA1->A1_ULTORCA) > 365
cMensagem := "Cliente Ativado pelo Orçamento: " + AllTrim(cNumSCJ) + CRLF+CRLF
cMensagem += "Cliente: " + AllTrim(SA1->A1_COD)+"-"+AllTrim(SA1->A1_NOME) + CRLF
cMensagem += "Representante: " + AllTrim(SCJ->CJ_VEND)+'-'+AllTrim(Posicione("SA3",1,xFilial('SA3')+SCJ->CJ_VEND,"A3_NOME")) + CRLF
cMensagem += "Regional: " + AllTrim(SCJ->CJ_REGIAO)+'-'+AllTrim(Posicione("SA3",1,xFilial('SA3')+SCJ->CJ_REGIAO,"A3_NOME")) + CRLF
cMensagem += "Pré-Resgate: " + IIF(!Vazio(Trim(SA1->A1_USUPRER)),Trim(SA1->A1_USUPRER)+ " em: "+DToC(SA1->A1_DTPRERE),'-*-*-*-*-') + CRLF
// (Destino , Com Copia , Com Copia Oculta , assunto , Mensagem Corpo, Anexos)
U_EnvMail("regiane.almeida@lumicenter.com" , ,"" ,"e-Mail Automático. Cliente Ativado - Engenharia." ,cMensagem,"")
EndIf
// Grava data do último orçamento.
RecLock("SA1",.F.)
SA1->A1_ULTORCA := dDataBase
MsUnlock("SA1")
EndIf
Else
cHtml:= "erro"
Endif
Web Extended End
Return (cHTML)
//Troca a filial logada
User Function PtTrocaFil(cNovaFil)
If cNovaFil <> cFilAnt
HttpSession->Filial:= cNovaFil
u_InSite(.f.)
Endif
Return
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ GetLikePro ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 02.09.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Busca os produtos de acordo com chave de busca ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function GetLikePro()
Local cHtml
Local cTabela:= HttpPost->TABELA
Local cProds := ""
Local cGrupo := ""
Local cDescDig := HttpPost->DIGIT
Local lValidaMP := GetMV("LC_FA1059A",, .F.)
Local cGrpTribNP:= GetMV("LC_FA1059B",, "990/996") //grupos tributarios não permitidos
Web Extended Init cHtml Start U_inSite()
// TODO - Pedro 20210208 - Remover???
If Empty(HttpSession->CodVend)
cHtml:= ''
Return cHtml
endif
conout("******************* prod busca antes -->> "+cDescDig)
//Atualiza a variável de sessão
HttpSession->TABELA := cTabela
cDescDig:= FwNoAccent(Upper(DecodeUTF8(cDescDig)))
conout("******************* tabela -->> "+cTabela)
conout("******************* prod busca -->> "+cDescDig)
cQry:="Select DA1_CODTAB, B1_GRUPO, BM_DESC, DA1_CODPRO, B1_DESC "
cQry+=" From "+RetSqlName("DA1")+" DA1"
cQry+=" INNER JOIN "+RetSqlName("DA0")+" DA0 ON DA0_FILIAL = DA1_FILIAL AND DA0_CODTAB = DA1_CODTAB AND DA0_ATIVO = '1' AND DA0.D_E_L_E_T_ = ' ' "
cQry+=" INNER JOIN "+RetSqlName("SB1")+" SB1 ON B1_FILIAL = '"+xFilial("SB1")+"' AND B1_COD = DA1_CODPRO AND B1_MSBLQL <> '1' AND SB1.D_E_L_E_T_ = ' ' "
cQry+=" INNER JOIN "+RetSqlName("SBM")+" SBM ON BM_FILIAL = '"+xFilial("SBM")+"' AND B1_GRUPO = BM_GRUPO AND SBM.D_E_L_E_T_ = ' ' "
cQry+=" Where DA1_FILIAL = '"+xFilial("DA1")+"' "
cQry+=" And DA1_CODTAB = '"+cTabela+"' "
cQry+=" AND DA1_ATIVO = '1' "
cQry+=" AND DA1_PRCVEN > 0 "
CQry+=" AND (B1_DESC LIKE '%"+cDescDig+"%' OR B1_COD LIKE '%"+cDescDig+"%') "
cQry+=" AND B1_GRTRIB NOT IN "+FormatIn(cGrpTribNP,"/")+" "
cQry+=" AND DA1.D_E_L_E_T_ = ' ' "
cQry+=" Order by DA1_CODTAB, B1_GRUPO, B1_COD "
conout("Query Produtos -->"+cQry)
If Select("QRP") > 0
QRP->(dbCloseArea())
Endif
APWExOpenQuery(ChangeQuery(cQry),'QRP',.T.)
//Preenche o select de produtos
While QRP->(!Eof())
If Empty(cGrupo)
cProds+= ''
cProds+= ''
Endif
cHtml:= cProds
Web Extended end
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ GetLikeCli ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 02.09.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Busca os clientes de acordo com chave de busca ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function GetLikeCli()
Local cHtml
Local cCliente:= Upper(HttpPost->DIGIT)
Local cCli := ""
Web Extended Init cHtml Start U_inSite()
cVendLogin := u_GetUsrPR()
cCodLogin := U_SetParPR(cVendLogin)
cCodVend:=cVendLogin
// TODO - Pedro 20210208 - Remover???
If Empty(HttpSession->CodVend)
cHtml:= ''
Return cHtml
endif
cQuery := " Select A1_COD, A1_LOJA, A1_CGC, A1_NOME, A1_BAIRRO, A1_END, A1_MUN, A1_EST, A1_DDD, A1_TEL, A1_COND "
cQuery += " From "+RetSqlName("SA1")+" SA1 "
cQuery += " Where A1_FILIAL = '"+xFilial("SA1")+"' "
If HttpSession->Tipo = 'S' //Supervisor acessa todos os clientes da sua equipe
cQuery += " AND A1_REGIAO = '"+HttpSession->Regional+"' "
Else
If SA3->A3_TIPO <> "I" //vendedor interno deve exibir todos os clientes
cQuery+= " AND A1_VEND = '"+cCodVend+"'" // OR A1_VEND2 = '"+cCodVend+"' OR A1_VEND3= '"+cCodVend+"' OR A1_VEND4= '"+cCodVend+"' OR A1_VEND5 = '"+cCodVend+"' ) "
Endif
Endif
cQuery += " And A1_MSBLQL <> '1' "
cQuery += " AND (A1_COD LIKE '%"+cCliente+"%' OR A1_CGC LIKE '%"+cCliente+"%' OR A1_NOME LIKE '%"+cCliente+"%') "
cQuery += " And SA1.D_E_L_E_T_ = ' ' "
cQuery += " Order by A1_NOME "
conout("Query Clientes -->"+cQuery)
If Select("QRCLI") > 0
QRCLI->(dbCloseArea())
Endif
APWExOpenQuery(ChangeQuery(cQuery),'QRCLI',.T.)
dbSelectArea("QRCLI")
//Preenche o select de produtos
While QRCLI->(!Eof())
cCli+=' '
QRCLI->(dbSkip())
End
APWExCloseQuery('QRCLI')
cHtml:= cCli
Web Extended end
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ GetMunUF ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 02.09.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Busca os municípios para o estado selecionado ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function GetMunUF()
Local cHtml:= ""
Local cUF:= Alltrim(HttpPost->UF)
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->CodVend)
cHtml:= ''
Return cHtml
Endif
cQry:="Select CC2_EST, CC2_CODMUN, CC2_MUN "
cQry+=" From "+RetSqlName("CC2")+" CC2"
cQry+=" Where CC2_FILIAL = '"+xFilial("CC2")+"' "
cQry+=" And CC2_EST = '"+cUF+"' "
cQry+=" AND CC2.D_E_L_E_T_ = ' ' "
cQry+=" Order by CC2_MUN"
If Select("QRP") > 0
QRP->(dbCloseArea())
Endif
APWExOpenQuery(ChangeQuery(cQry),'QRP',.T.)
//Verifica se existe registro
While QRP->(!Eof())
cHtml+=' '
QRP->(dbSkip())
End
Web Extended end
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ GetPerFrt ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 02.09.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Busca o percentual de frete da cidade/estado da SZ3 ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function GetPerFrt()
Local cHtml
Local cQry:= ""
Local cUF:= HttpPost->UF
Local cCodMun:= HttpPost->MUN
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->CodVend)
cHtml:= ''
Return cHtml
endif
//Busca os itens da tabela de preço
cQry:="Select Z3_PERFRAD "
cQry+=" From "+RetSqlName("SZ3")+" SZ3"
cQry+=" Where Z3_FILIAL = '"+xFilial("SZ3")+"' "
cQry+=" And Z3_UF = '"+cUF+"' "
cQry+=" AND (Z3_MUNICIP = '"+cCodMun+"' OR Z3_MUNICIP= ' ' ) "
cQry+=" AND SZ3.D_E_L_E_T_ = ' ' "
cQry+=" Order by Z3_MUNICIP DESC "
If Select("QRP") > 0
QRP->(dbCloseArea())
Endif
APWExOpenQuery(ChangeQuery(cQry),'QRP',.T.)
//Verifica se existe registro
If QRP->(!Eof())
cHtml:= cvaltochar(QRP->Z3_PERFRAD)
Else
cHtml:= "0"
Endif
Web Extended end
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ GetDadosOpt ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 02.09.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Busca o vendedor da oportunidade ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function GetDadosOpt()
Local cHtml
Local cOport:= HttpPost->Oportunidade
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->CodVend)
cHtml:= ''
Return cHtml
endif
If AD1->(dbSeek(xFilial("AD1")+cOport))
cHtml:= "OK|#|"+Alltrim(Transform(AD1->AD1_COMIRT,PesqPict("AD1","AD1_COMIRT")))+"|#|"
cHtml+= u_ListaVend(.F.,Alltrim(AD1->AD1_VEND))+"|#|"
cHtml+= Alltrim(DecodeUTF8(AD1->AD1_VEND))
Else
cHtml:= ""
End
Web Extended end
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ GetProdutos ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 02.09.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Função utilizada no Ajax pra retornar os produtos da tabela¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function GetProdutos()
Local cHtml
Local cCliente:= HttpPost->CLIENTE
Local cTabela:= HttpPost->TABELA
Local cProds := ""
Local cGrupo := ""
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->CodVend)
cHtml:= ''
Return cHtml
endif
//Atualiza a variável de sessão
HttpSession->TABELA := cTabela
//Busca os itens da tabela de preço
cQry:="Select DA1_CODTAB, B1_GRUPO, BM_DESC, DA1_CODPRO, B1_XDESGIR B1_DESC, B1_PROC "
cQry+=" From "+RetSqlName("DA1")+" DA1"
cQry+=" INNER JOIN "+RetSqlName("DA0")+" DA0 ON DA0_FILIAL = DA1_FILIAL AND DA0_CODTAB = DA1_CODTAB AND DA0_ATIVO = '1' AND DA0.D_E_L_E_T_ = ' ' "
cQry+=" INNER JOIN "+RetSqlName("SB1")+" SB1 ON B1_FILIAL = '"+xFilial("SB1")+"' AND B1_COD = DA1_CODPRO AND B1_MSBLQL <> '1' AND B1_TIPO IN ('PA','RE') AND SB1.D_E_L_E_T_ = ' ' "
cQry+=" LEFT JOIN "+RetSqlName("SBM")+" SBM ON BM_FILIAL = '"+xFilial("SBM")+"' AND B1_GRUPO = BM_GRUPO AND SBM.D_E_L_E_T_ = ' ' "
cQry+=" Where DA1_FILIAL = '"+xFilial("DA1")+"' "
cQry+=" And DA1_CODTAB = '"+cTabela+"' "
cQry+=" AND DA1_ATIVO = '1' "
cQry+=" AND DA1_PRCVEN > 0 "
cQry+=" AND DA1.D_E_L_E_T_ = ' ' "
cQry+=" Order by DA1_CODTAB, B1_GRUPO, B1_COD "
If Select("QRP") > 0
QRP->(dbCloseArea())
Endif
APWExOpenQuery(ChangeQuery(cQry),'QRP',.T.)
//Preenche o select de produtos
While QRP->(!Eof())
If Empty(cGrupo)
cProds+= ''
cProds+= ''
Endif
cHtml:= cProds
Web Extended end
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ GatProd ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 05.09.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Gatilho para atualização dos preços ao selecionar o produto¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function GatProd()
Local cProduto := Alltrim(UnEscape(HttpPost->PRODUTO))
Local cTabela := Alltrim(HttpSession->Tabela)
Local cCliente := Alltrim(HttpSession->Cliente)
Local cSepField := "|#|"
Local cTes := ""
Local cMsg := ""
Local nPercFrt := val(HttpPost->frete)
Local nComisRT := val(HttpPost->comisRT)
Local nPrcTab := 0
Local nQtdFis := 1
Local nDesc := 0
Local nValIcms := 0
Local nBaseIcms := 0
Local nValST := 0
Local nBaseST := 0
Local nValIPI := 0
Local nBaseIPI := 0
Local cAliqIPI := 0
Local cAliqICMS := 0
Local cAliqST := 0
Local nQtdMin := 0
Local aRet := {}
Local lRetPro := .T.
Local lVencido := .F.
Local cHtml
Private cPrzEmb := ""
Private nCargIcm := 0
Private nFatCorr := 0
nSec:= Seconds()
Web Extended Init cHtml Start U_inSite()
Conout("[ADDORC / GATPROD] - tempo Abertura InSite: "+cValtoChar(Seconds()-nSec)+"s")
//Busca o cadastro do cliente
Posicione("SA1",1,xFilial("SA1")+cCliente,"A1_COD")
//Posiciona no cadastro do produto
Posicione("SB1",1,xFilial("SB1")+cProduto,"B1_COD")
//Chama a validação customizada do produto
If ExistBlock("VldPortalSMS")
cMsgCust:= ""
lRetPro:=u_VldPortalSMS("CK_PRODUTO",SB1->(Recno()))
If !Empty(cMsgCust)
cMsg:= '
'+CHR(13)+CHR(10)
cMsg+= '
'+CHR(13)+CHR(10)
cMsg+= '
'+cMsgCust+'
'+CHR(13)+CHR(10)
cMsg+= '
'+CHR(13)+CHR(10)
cMsg+= '
'+CHR(13)+CHR(10)
Else
cMsg:="::"
Endif
Endif
if empty(cTabela)
cTabela := Alltrim(HttpPost->cTabela)
endif
HttpSession->cTabela:= cTabela
HttpSession->Tabela:= cTabela
//Posiciona na tabela de preço
Posicione("DA0",1,xFilial("DA0")+cTabela,"DA0_CODTAB")
DA1->(dbSetOrder(1))
If DA1->(dbSeek(xFilial("DA1")+cTabela+cProduto))
nPrcTab:= u_getValProd(nComisRT,nPercFrt)
Endif
conout("Chave "+xFilial("DA1")+cTabela+cProduto)
conout("Tabela de preco "+xFilial("DA1")+" tab: "+cValToChar(cTabela)+" produto "+cProduto+" Preco "+cValToChar(nPrcTab))
If nPrcTab > 0
nSec:= Seconds()
//&&&&&& verificar se excessão fiscal calcula na tes inteligente
//nPrcTab := (nPrcTab - (nPrcTab * ((18 - nCargIcm - nFatCorr)/100))) // Alterado em 20-09-2018 - Fabiana - para calcular 1.5/4.5 de desconto CIF Norte/Nordeste.
//Obtem os valores de impostos
u_GetValImp(SA1->A1_COD+SA1->A1_LOJA,nPrcTab,nDesc,nQtdFis,@nValIcms,@nBaseICMS,@nValST,@nBaseST,@nValIPI,@nBaseIPI,@cAliqIPI,@cAliqICMS,@cAliqST,@cTes)
Conout("[ADDORC / GATPROD] - tempo u_GetValImp: "+cValtoChar(Seconds()-nSec)+"s")
If Empty(cTes)
cHtml:= "ERRO: TES não localizada."
Else
cPrcTab := TransForm((nPrcTab),PesqPict("SCK","CK_PRCVEN"))
cTotalST:= Transform(((nPrcTab)+nValST),PesqPict("SCK","CK_PRCVEN"))
If SB5->(MsSeek(xFilial("SB5")+SB1->B1_COD))
If SB5->B5_DTVLESP + 30 < dDataBase
lVencido:= .T.
Endif
Endif
CONOUT("IPI "+CVALTOCHAR(nValIPI))
aAdd(aRet,Alltrim(SB1->B1_UM)) //01
aAdd(aRet,Alltrim(cPrcTab)) //02
aAdd(aRet,Alltrim(Transform(nValIcms,PesqPict("SCK","CK_XVALICM")))) //03
aAdd(aRet,Alltrim(Transform(nValIPI,PesqPict("SCK","CK_XVALIPI")))) //04
aAdd(aRet,Alltrim(Transform(nValST,PesqPict("SCK","CK_PRCVEN")))) //05
aAdd(aRet,cAliqIPI) //06
aAdd(aRet,cAliqICMS) //07
aAdd(aRet,cValtochar(SB1->B1_QE)) //08
aAdd(aRet,cTES) //09
aAdd(aRet,cValtoChar(nBaseICMS)) //10
aAdd(aRet,cValtoChar(nBaseST)) //11
aAdd(aRet,cValtoChar(nBaseIPI)) //12
aAdd(aRet,cAliqST) //13
aAdd(aRet,SB1->B1_GRUPO) //14
aAdd(aRet,cvaltochar(nQtdMin)) //15
aAdd(aRet,Iif(lVencido,'1','0')) //16
aAdd(aRet,u_GetEstDisp()) //17
aAdd(aRet,Iif(lRetPro,'1','0')) //18
aAdd(aRet,cMsg) //19
aAdd(aRet,cPrzEmb) //20
aAdd(aRet,SB1->B1_TIPO) //21
cHtml := "OK:"
cHtml += aRet[1]+cSepField+aRet[2]+cSepField+aRet[3]+cSepField+aRet[4]+cSepField+aRet[5]+cSepField+aRet[6]+cSepField+aRet[7]+cSepField+aRet[8]
cHtml +=cSepField+aRet[9]+cSepField+aRet[10]+cSepField+aRet[11]+cSepField+aRet[12]+cSepField+aRet[13]+cSepField+aRet[14]+cSepField+aRet[15]
cHtml +=cSepField+aRet[16]+cSepField+aRet[17]+cSepField+aRet[18]+cSepField+aRet[19]+cSepField+aRet[20]+cSepField+aRet[21]
Endif
Else
cHtml := "ERRO: Nao foi possivel localizar o produto"
Endif
Web Extended end
CONOUT("FIM GATPROD")
Return cHtml
User Function getValProd(nComisRT,nPercFrt)
Local nValor:= 0
If SB1->B1_TIPO = 'CO' .AND. SB1->B1_GRUPO = 'ELEV'
nValor:= SB1->B1_CUSTD
Else
nValor := DA1->DA1_PRCVEN
//Verifica excessão fiscal
cQuery := "SELECT * FROM "
cQuery += RetSQLName("SF7")+" SF7 "
cQuery += " WHERE F7_FILIAL = '" + xFilial("SF7") + "' "
cQuery += " AND F7_GRTRIB = '" + Trim(SB1->B1_GRTRIB) + "' "
cQuery += " AND F7_EST = '" + SA1->A1_EST + "' "
cQuery += " AND F7_TIPOCLI = '" + SA1->A1_TIPO + "' "
cQuery += " AND F7_GRPCLI = '" + SA1->A1_GRPTRIB + "' "
cQuery += " AND SF7.D_E_L_E_T_ = ' '" + " "
TcQuery cQuery New Alias "QREX"
If QREX->(!Eof())
nValor := (nValor - (nValor * ((18 - QREX->F7_CARGICM - QREX->F7_FATCORR)/100))) // Alterado em 20-09-2018 - Fabiana - para calcular 1.5/4.5 de desconto CIF Norte/Nordeste.
Endif
QREX->(dbCloseArea())
If nComisRT > 0
nValor := (nValor * ((nComisRT/100)+1))
EndIf
If nPercFrt > 0
nValor := (nValor * ((nPercFrt/100)+1))
EndIf
Endif
Return nValor
User Function GetImpostos()
Local cProduto := Alltrim(UnEscape(HttpPost->PRODUTO))
Local nPrcTab := Val(HttpPost->prcvenda)
// Local cTabela := Alltrim(HttpSession->Tabela)
Local cCliente := Alltrim(HttpSession->Cliente)
Local nQtdFis := Val(HttpPost->quantidade)
// Local cSepReg := "#*#*"
Local cSepField := "|#|"
Local cTes := ""
Local nDesc := 0
Local nValIcms := 0
Local nBaseIcms := 0
Local nValST := 0
Local nBaseST := 0
Local nValIPI := 0
Local nBaseIPI := 0
Local cAliqIPI := 0
Local cAliqICMS := 0
Local cAliqST := 0
Local aRet := {}
Local cHtml
Web Extended Init cHtml Start U_inSite()
//Busca o cadastro do cliente
Posicione("SA1",1,xFilial("SA1")+cCliente,"A1_COD")
//Posiciona no cadastro do produto
Posicione("SB1",1,xFilial("SB1")+cProduto,"B1_COD")
If nPrcTab > 0
//Obtem os valores de impostos
u_GetValImp(SA1->A1_COD+SA1->A1_LOJA,nPrcTab,nDesc,nQtdFis,@nValIcms,@nBaseICMS,@nValST,@nBaseST,@nValIPI,@nBaseIPI,@cAliqIPI,@cAliqICMS,@cAliqST,@cTes)
nValDesc:= nPrcTab * nDesc
cPrcTab := TransForm((nPrcTab-nValDesc),PesqPict("SCK","CK_PRCVEN"))
// cPrcTab := TransForm((nPrcTab-nValDesc),PesqPict("SCK","CK_PRCVEN"))
cTotalST:= Transform(((nPrcTab-nValDesc)+nValST),PesqPict("SCK","CK_PRCVEN"))
aAdd(aRet,Alltrim(SB1->B1_UM))
aAdd(aRet,Alltrim(cPrcTab))
aAdd(aRet,Alltrim(Transform(nValIcms,PesqPict("SCK","CK_XVALICM"))))
aAdd(aRet,Alltrim(Transform(nValIPI,PesqPict("SCK","CK_XVALIPI"))))
aAdd(aRet,Alltrim(cValtoChar(nValST)))
//aAdd(aRet,Alltrim(Transform(nValST,PesqPict("SCK","CK_PRCVEN"))))
aAdd(aRet,cAliqIPI)
aAdd(aRet,cAliqICMS)
aAdd(aRet,cValtochar(SB1->B1_QE))
aAdd(aRet,cTES)
aAdd(aRet,cValtoChar(nBaseICMS))
aAdd(aRet,cValtoChar(nBaseST))
aAdd(aRet,cValtoChar(nBaseIPI))
aAdd(aRet,cAliqST)
cHtml := "OK:"
cHtml += aRet[1]+cSepField+aRet[2]+cSepField+aRet[3]+cSepField+aRet[4]+cSepField+aRet[5]+cSepField+aRet[6]+cSepField+aRet[7]+cSepField+aRet[8]
cHtml +=cSepField+aRet[9]+cSepField+aRet[10]+cSepField+aRet[11]+cSepField+aRet[12]+cSepField+aRet[13]
Else
cHtml := "Falha ao calcular impostos"
Endif
Web Extended end
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ GetValImp ¦ Autor ¦ Anderson Zelenski ¦ Data ¦ 09.09.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Função para cálculo dos impostos ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function GetValImp(cCliente,nPreco,nDesc,nQtdFis,nValIcms,nBaseIcms,nValST,nBaseST,nValIPI,nBaseIPI,cAliqIPI,cAliqICMS,cAliqST,cTes)
Local _nItem:= 0
Local cCodOper:= ""
MaFisEnd()
SA1->(dbSetorder(1))
SA1->(dbSeek(xFilial("SA1")+cCliente))
cCodOper:= GetCodOper()
MaFisIni(SA1->A1_COD,;// 1-Codigo Cliente/Fornecedor
SA1->A1_LOJA,;// 2-Loja do Cliente/Fornecedor
"C",; // 3-C:Cliente , F:Fornecedor
"N",; // 4-Tipo da NF
SA1->A1_TIPO,;// 5-Tipo do Cliente/Fornecedor
MaFisRelImp("MT100", {"SF2", "SD2"}),; // 6-Relacao de Impostos que suportados no arquivo
,;// 7-Tipo de complemento
,;// 8-Permite Incluir Impostos no Rodape .T./.F.
"SB1",; // 9-Alias do Cadastro de Produtos - ("SBI" P/ Front Loja)
"MATA461")
dbSelectArea("SE4")
SE4->(DbSetOrder(1))
cTes:= MaTesInt(2,cCodOper,SA1->A1_COD,SA1->A1_LOJA,"C",SB1->B1_COD,"",SA1->A1_TIPO)
// conout("tes -->"+cTes)
// conout("prod -->"+SB1->B1_COD)
_nItem := MaFisAdd(SB1->B1_COD,; // 1-Codigo do Produto ( Obrigatorio )
cTes,;// 2-Codigo do TES ( Opcional )
nQtdFis,; // 3-Quantidade ( Obrigatorio )
nPreco,; // 4-Preco Unitario ( Obrigatorio )
nDesc,; // 5-Valor do Desconto ( Opcional )
,;// 6-Numero da NF Original ( Devolucao/Benef )
,;// 7-Serie da NF Original ( Devolucao/Benef )
,;// 8-RecNo da NF Original no arq SD1/SD2
0,; // 9-Valor do Frete do Item ( Opcional )
0,; // 10-Valor da Despesa do item ( Opcional )
0,; // 11-Valor do Seguro do item ( Opcional )
0,; // 12-Valor do Frete Autonomo ( Opcional )
nPreco,; // 13-Valor da Mercadoria ( Obrigatorio )
0,; // 14-Valor da Embalagem ( Opiconal )
0,; // 15-RecNo do SB1
0)// 16-RecNo do SF4
//ICMS
nValIcms:= MaFisRet(_nItem,"IT_VALICM")
nBaseIcms:= MaFisRet(_nItem,"IT_BASEICM")
cAliqICMS:= Alltrim(Str(MaFisRet(_nItem,"IT_ALIQICM")))
//IPI
nValIPI := MaFisRet(_nItem,"IT_VALIPI")
nBaseIPI := MaFisRet(_nItem,"IT_BASEIPI")
cAliqIPI := Alltrim(Str(MaFisRet(_nItem,"IT_ALIQIPI")))
//ICMS ST
nValST := MaFisRet(_nItem,"IT_VALSOL")
nBaseST := MaFisRet(_nItem,"IT_BASESOL")
cAliqST := Alltrim(Str(MaFisRet(_nItem,"IT_ALIQSOL")))
Return
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ GetCodOper ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 07.10.24 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Busca o código de operação para cálculo da TES Inteligente ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
Static Function GetCodOper()
Local cCod:= ""
M->CJ_TIPOPER:= '1'
M->CJ_TIPOCLI:= SA1->A1_TIPO
cCod:= u_OperaO()
conout("------>>>>> operação: "+cCod)
Return cCod
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ VldDescto ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 05.09.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Validação do desconto digitado ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function VldDescto()
Local cCliente := Alltrim(HttpSession->Cliente)
Local cProduto := Alltrim(HttpPost->Produto)
Local nVlrUnit := Val(HttpPost->prcvenda)
Local nQuant := Val(HttpPost->quantidade)
Local cProdPan := ""
Local cUsrLivre := ""
Local cTpDesc := "1"// 1=Permite o desconto 2=Permite mediante senha 3=Não permite
Local cHtml
Web Extended Init cHtml Start U_inSite()
//Posiciona nos registros
Posicione("SA1",1,xFilial("SA1")+cCliente,"A1_COD")
Posicione("SB1",1,xFilial("SB1")+cProduto,"B1_COD")
cProdPan := GetMV("MV_PRODPAN", Nil, "ACS-LHT44BC,ACS-LHT44PT")
cUsrLivre := GetMV("MV_ULDSCRE", Nil, "000111,000342,000358")
Do Case
//Case cCodLogin $ cUsrLivre //&& verificar
// nTpDesc := "1"
Case SB1->B1_GRUPO == "PAN " .or. AllTrim(cProduto) $ cProdPan
cTpDesc := "3"
Case SB1->B1_TIPO == "RE" //SB1->B1_TIPO # "PA" .and. (SB1->B1_TIPO # "PI" .or. !SB1->B1_GRUPO $ "E048|E049|E04A|E063|")
cTpDesc := "2"
Otherwise
cTpDesc := "1"
EndCase
cHtml:= cTpDesc
Web Extended End
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ VldDscMax ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 05.09.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Validação do desconto máximo do orçamento ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function VldDscMax()
Local cCondPag := Alltrim(HttpPost->condpag)
Local nPrcTab := Val(HttpPost->vlrTabela)
Local nPrcVenda := Val(HttpPost->vlrVenda)
Local nDescDir := Val(HttpPost->descDir)
Local nDscConc := 0 //desconto concedido
Local nDscVista := 0 //desconto a vista da condição de pagamento
Local cSepField := "|#|"
Local cHtml := "OK"
Web Extended Init cHtml Start U_inSite()
nDscConc := Round(((((Round(nPrcVenda,2)/NoRound(nPrcTab,2))*100)-100)*-1),2)
If ABS(Round(nDscConc,2)) <= 0.02
nDscConc := 0
EndIf
cQuery := "SELECT ZA_PERCDES, ZA_PEDESAV FROM " + RetSQLName("SZA") + " WHERE "
cQuery += "ZA_FILIAL = '" + xFilial("SZA") + "' AND ZA_DE <= " + Str(nPrcTab) + " AND ZA_ATE >= " + Str(nPrcTab) + " AND D_E_L_E_T_ = ' ' "
If Select("QRY") > 0
QRY->(dbCloseArea())
Endif
TcQuery cQuery New Alias "QRY"
If cCondPag == '001' .OR. cCondPag == '500'
nDscVista := QRY->ZA_PEDESAV
EndIf
If Round(nDscConc,2) > (QRY->ZA_PERCDES + nDescDir + nDscVista)
cHtml:= "NOK:"
cHtml += Transform(nDscConc,"@R 999.99")+" %"+cSepField
cHtml += Transform((QRY->ZA_PERCDES + nDescDir + nDscVista),"@R 999.99")+" %"
Else
cHtml:= "OK:"
EndIf
Web Extended End
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ VldSenha ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 05.09.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Validação da senha digitada ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function VldSenha()
Local cUser := Alltrim(HttpPost->user)
Local cPsw := Alltrim(HttpPost->senha)
Local cUsers := "USUARIOS_ORCA1018.json" // arquivo na pasta SYSTEM
Local jUsers
Local nI
Local lOk := .F.
Local cHtml
Web Extended Init cHtml Start U_inSite()
If File(cUsers)
jUsers := JsonObject():New()
jUsers:FromJson(MemoRead(cUsers))
For nI := 1 To Len(jUsers["usuarios"])
If Trim(cUser) == jUsers["usuarios"][nI]["usuario"] .and. Trim(cPsw) == jUsers["usuarios"][nI]["senha"]
lOk := .T.
nI += Len(jUsers["usuarios"])
EndIf
Next
FreeObj(jUsers)
If lOk
cHtml:= "OK"
Else
cHtml:= "NOK"
EndIf
Else
cHtml:= "NOK"
EndIf
Web Extended End
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ FreteMinimo ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 09.09.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Validação para valor mínimo do frete. ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function FreteMinimo()
Local cHtml
Local cUFEntrega:= Alltrim(HttpPost->UFEnt)
Local cMunEntrega:= Alltrim(HttpPost->munEntrega)
Local nValMin := 0
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->CodVend)
cHtml:= ''
Return cHtml
endif
//Busca o valor mínimo de frete
cQuery := "SELECT Z3_VLFRMIN, Z3_MUNICIP "
cQuery += "FROM "+RetSQLName("SZ3")+" SZ3 "
cQuery += "WHERE SZ3.D_E_L_E_T_ = ' ' "
cQuery += " AND Z3_UF = '"+cUFEntrega+"' "
cQuery += " ORDER BY Z3_MUNICIP "
If Select("QRY") > 0
QRY->(dbCloseArea())
Endif
TcQuery cQuery New Alias "QRY"
If !QRY->(EOF())
nValMin := QRY->Z3_VLFRMIN
While QRY->(!EOF())
If AllTrim(QRY->Z3_MUNICIP) == cMunEntrega
nValMin := QRY->Z3_VLFRMIN
EndIf
QRY->(DbSkip())
End
Endif
cHtml:= cvaltochar(nValMin)
QRY->(dbCloseArea())
Web Extended end
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ AtuPreco ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 02.09.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Envia email para atualização de preço ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function AtuPreco()
Local cHtml
Local cCliente:= HttpSession->cliente
Local cFilOrc:= HttpPost->filial
Local cNumOrc:= HttpPost->orcto
Local cObra:= HttpPost->obra
Local cItens:= HttpPost->itens
Local cMsLumEspL:= ""
Local cMsLumEspT:= ""
Local aLinhas:= {}
Local aItem:= {}
Local i:= 0
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->CodVend)
cHtml:= ''
Return cHtml
endif
aLinhas:= Separa(cItens,"|")
For i:= 1 to Len(aLinhas)
aItem:= Separa(aLinha[i],";")
Posicione("SB1",1,xFilial("SB1")+aItem[2],"B1_DESC")
If SB5->(MsSeek(xFilial("SB5")+aItem[2])) .and. (SB5->B5_DTVLESP + 30) < dDataBase
cMsLumEspL += "
"
U_EnvMail( "leonardo.souza@lumicenter.com;victor.pires@lumicenter.com;gustavo.santos@lumicenter.com;victor.ferreira@lumicenter.com" ,;
HttpSession->Email ,;
"" ,;
"e-Mail Automático. Atualização de preço - Luminárias especiais. Orçamento: "+Iif(!Empty(cNumOrc),cNumOrc,"")+"" ,;
cMsLumEspT+cMsLumEspL ,;
"" )
Endif
cHtml:= ""
Web Extended end
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ VldCondPg ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 09.09.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Verifica valor mínimo de parcela. ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function VldCondPg()
Local cHtml
Local cCondPag := Alltrim(HttpPost->condPgto)
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->CodVend)
cHtml:= ''
Return cHtml
endif
//Posiciona na condição
SE4->(dbSeek(xFilial("SE4")+cCondPag))
cHtml:= cvaltochar(SE4->E4_DESCRI)
Web Extended end
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ GetSitCli ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 19.11.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Função para buscar os dados de crédito do cliente. ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function GetSitCli()
Local cHtml
Local cCliente := Alltrim(HttpPost->Cliente)
Local cMsg := ""
Local cSepField := "|#|"
Local lRetCli:= .T.
Private cMsgCust:= ""
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->CodVend)
cHtml:= ''
Return cHtml
endif
//Posiciona no cliente
dbSelectArea("SA1")
SA1->(dbSeek(xFilial("SA1")+cCliente))
//Atualiza a variável de sessão
HttpSession->cliente := cCliente
//Chama a validação customizada do cliente
If ExistBlock("VldPortalSMS")
lRetCli:=u_VldPortalSMS("CJ_CLIENTE",SA1->(Recno()))
Endif
If !Empty(cMsgCust)
cMsg+= '
'+CHR(13)+CHR(10)
cMsg+= '
'+CHR(13)+CHR(10)
cMsg+= '
'+cMsgCust+'
'+CHR(13)+CHR(10)
cMsg+= '
'+CHR(13)+CHR(10)
cMsg+= '
'+CHR(13)+CHR(10)
Else
cMsg:="::"
Endif
cHtml:= Iif(!lRetCli,'0','1')+cSepField+cMsg+cSepField
cHtml+= SA1->A1_TIPO+cSepField+SA1->A1_GRPTRIB+cSepField+Alltrim(SA1->A1_COND)+cSepField
cHtml+= Alltrim(SA1->A1_EST)+Alltrim(SA1->A1_COD_MUN)+" - "+Alltrim(SA1->A1_MUN)+cSepField
cHtml+= SA1->A1_VEND
Web Extended end
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ GetEndCli ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 19.11.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Função para buscar o endereço do cliente. ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function GetEndCli()
Local cHtml
Local cCliente := Alltrim(HttpPost->Cliente)
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->CodVend)
cHtml:= ''
Return cHtml
endif
//Posiciona no cliente
dbSelectArea("SA1")
SA1->(dbSeek(xFilial("SA1")+cCliente))
cHtml:= Alltrim(SA1->A1_EST)+Alltrim(SA1->A1_COD_MUN)+" - "+Alltrim(SA1->A1_MUN)
Web Extended end
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ GetCellTb ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 22.11.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Função para geração da linha da tabela de itens ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function GetCellTb()
Local cHtml
Local nCol := HttpPost->coluna
Local nLin := val(HttpPost->linha)
Local cItem := ""
Local cCampo:= ""
Web Extended Init cHtml Start U_inSite()
cItem:= StrZero(nLin,TamSX3("CK_ITEM")[1])
cCampo:= "var campo = document.createElement('input'); " // create input element
cCampo+= " campo.setAttribute('class', 'form-control input-block'); " // set class attribute
cCampo+= " campo.name = '"+aItens[nCol,2]+cItem+"'; "
cCampo+= " campo.id = '"+aItens[nCol,2]+cItem+"'; "
cCampo+= " campo.align = '"+aItens[nCol][4]+"';"
cHtml:= cCampo
Web Extended end
Return cHTML
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ GetCondPgto ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 01.07.19 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Função utilizada no Ajax pra retornar a cond de pagamento ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function GetCondPgto()
Local cHtml
Local cCliente := Alltrim(HttpSession->Cliente)
Local cModali := Alltrim(HttpPost->modali)
Local cCondCli := ""
Local cCondPg := ""
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->CodVend)
cHtml:= ''
Return cHtml
endif
cCondPg+=' '
//Verifica se a condição cadastrada no cliente é dessa modalidade
cCondCli:= Posicione("SA1",1,xFilial("SA1")+cCliente,"A1_COND")
SE4->(dbSeek(xFilial("SE4")+cCondCli))
If SE4->E4_XMODALI == cModali
cCondPg+=' '
Else
cCondCli:=""
Endif
//Seleciona as condições de pagamento disponíveis no combo
cQry:= " Select E4_CODIGO, E4_DESCRI"
cQry+= " From "+RetSqlName("SE4")+" SE4 "
cQry+= " Where E4_FILIAL = '"+xFilial("SE4")+"' "
cQry+= " And E4_XMODALI = '"+cModali+"' "
cQry+= " And E4_MSBLQL <> '1' "
cQry+= " And E4_CODIGO <> '"+cCondCli+"' "
cQry+= " And SE4.D_E_L_E_T_ = ' ' "
If Select("QRT") > 0
QRT->(dbCloseArea())
Endif
APWExOpenQuery(ChangeQuery(cQry),'QRT',.T.)
//Preenche o select da tabela
While QRT->(!Eof())
cCondPg+=' '
QRT->(dbSkip())
End
cHtml:= cCondPg
Web Extended end
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ GetEstDisp ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 04.07.19 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Função utilizada no Ajax pra retornar o estoque disponível ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
//Estoque disponível: saldo do produto – empenhos – quantidade pedido de venda – quantidade orçamentos Firmes e não efetivados.
User Function GetEstDisp()
Local cHtml
Local cProduto := Alltrim(UnEscape(HttpPost->produto))
Local cArmazem := ""
Local lVldEstoq := .T.
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->CodVend)
cHtml:= ''
Return cHtml
endif
lVldEstoq:= GetNewPar("PR_VLDESTQ",.T.)
If !lVldEstoq
Return '9999999'
Endif
//Armazéns considerados para busca do estoque
cArmazem:= GetNewPar("PR_ARMZPR","'01','02','03'") //deve estar no formato '01','02'
//Busca o saldo do produto
cQry:= "With QRY AS( "
cQry+= "Select SUM(B2_QATU) EST , SUM(CASE WHEN B2_QEMP >= 0 THEN B2_QEMP ELSE 0 END) + SUM(CASE WHEN B2_RESERVA >= 0 THEN B2_RESERVA ELSE 0 END) EMPENHO " //adicionado reserva 07.02.20 - Lucilene // + SUM(CASE WHEN B2_QPEDVEN >= 0 THEN B2_QPEDVEN ELSE 0 END)
cQry+= "From "+RetSqlName("SB2")+" SB2 "
cQry+= "Where B2_FILIAL = '"+xFilial("SB2")+"' And B2_COD = '"+cProduto+"' And SB2.D_E_L_E_T_ = ' ' "
If !Empty(cArmazem)
cQry+= "AND B2_LOCAL in ("+cArmazem+") "
Endif
cQry+= "UNION ALL "
cQry+= "Select 0 EST , SUM(CK_QTDVEN) EMPENHO "
cQry+= "From "+RetSqlName("SCJ")+" SCJ, "+RetSqlName("SCK")+" SCK "
cQry+= "Where CJ_FILIAL = '"+xFilial("SB2")+"' AND CJ_STATUS = 'A' AND SCJ.D_E_L_E_T_ = ' ' "
cQry+= "and CK_FILIAL = CJ_FILIAL AND CK_NUM = CJ_NUM AND CK_PRODUTO = '"+cProduto+"' and SCK.D_E_L_E_T_ = ' ' "
If !Empty(cArmazem)
cQry+= "AND CK_LOCAL in ("+cArmazem+") "
Endif
cQry+= ")"
cQry+= "SELECT SUM(EST) -SUM(EMPENHO) SALDO FROM QRY "
If Select("QRS") > 0
QRS->(dbCloseArea())
Endif
APWExOpenQuery(cQry,'QRS',.T.)
conout(cQry)
cHtml:= cValtoChar(QRS->SALDO)
Web Extended end
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ GetEstGeral ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 14.10.23 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Retorna estoque disponível para todos os armazéns da filial¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
//Estoque disponível: saldo do produto – empenhos – quantidade pedido de venda – quantidade orçamentos Firmes e não efetivados.
User Function GetEstGeral()
Local cHtml
Local cProduto := Alltrim(UnEscape(HttpPost->produto))
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->CodVend)
cHtml:= ''
Return cHtml
Endif
//Busca o saldo do produto
cQry:= "With QRY AS( "
cQry+= "Select B2_LOCAL ARMAZEM, SUM(B2_QATU) EST , SUM(CASE WHEN B2_QEMP >= 0 THEN B2_QEMP ELSE 0 END) + SUM(CASE WHEN B2_RESERVA >= 0 THEN B2_RESERVA ELSE 0 END) EMPENHO " //adicionado reserva 07.02.20 - Lucilene // + SUM(CASE WHEN B2_QPEDVEN >= 0 THEN B2_QPEDVEN ELSE 0 END)
cQry+= "From "+RetSqlName("SB2")+" SB2 "
cQry+= "Where B2_FILIAL = '"+xFilial("SB2")+"' And B2_COD = '"+cProduto+"' And SB2.D_E_L_E_T_ = ' ' "
cQry+= "GROUP BY B2_LOCAL "
cQry+= "UNION ALL "
cQry+= "Select CK_LOCAL ARMAZEM, 0 EST , SUM(CK_QTDVEN) EMPENHO "
cQry+= "From "+RetSqlName("SCJ")+" SCJ, "+RetSqlName("SCK")+" SCK "
cQry+= "Where CJ_FILIAL = '"+xFilial("SB2")+"' AND CJ_STATUS = 'A' AND SCJ.D_E_L_E_T_ = ' ' "
cQry+= "and CK_FILIAL = CJ_FILIAL AND CK_NUM = CJ_NUM AND CK_PRODUTO = '"+cProduto+"' and SCK.D_E_L_E_T_ = ' ' "
cQry+= "GROUP BY CK_LOCAL "
cQry+= ")"
cQry+= "SELECT ARMAZEM, SUM(EST) -SUM(EMPENHO) SALDO FROM QRY "
cQry+= "GROUP BY ARMAZEM "
cQry+= "HAVING (SUM(EST) -SUM(EMPENHO)) > 0"
If Select("QRS") > 0
QRS->(dbCloseArea())
Endif
APWExOpenQuery(cQry,'QRS',.T.)
cTabela:= '
"
Endif
cHtml:= cTabela
Web Extended end
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ GetLimCred ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 04.07.19 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Função utilizada no Ajax pra retornar o limite disponível ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function GetLimCred()
Local cHtml
Local cCliente := Alltrim(HttpPost->cliente)
Local nTotal := Val(HttpPost->valor)
Local nSaldo := 0
Local nToler := 0
Local lVldLimite:= .F.
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->CodVend)
cHtml:= ''
Return cHtml
endif
lVldLimite:= GetNewPar("PR_VLDLIMT",.F.)
If !lVldLimite
cHtml:= cValtochar(99999999)+"|"+cValtochar(0)
Else
//Posiciona no cliente
dbSelectArea("SA1")
SA1->(dbSeek(xFilial("SA1")+cCliente))
//Busca valor em pedidos liberados
cQry:= "SELECT SUM(C6_VALOR) TOTAL FROM "+RetSqlName("SC6")+" SC6 "
cQry+= "INNER JOIN "+RetSqlName("SC5")+" SC5 ON C5_FILIAL = C6_FILIAL AND C5_NUM = C6_NUM AND C5_CLIENT = C6_CLI "
cQry+= "AND C5_LOJACLI = C6_LOJA AND C5_LIBEROK = 'S' AND C5_NOTA = ' ' AND SC5.D_E_L_E_T_ = ' ' "
cQry+= "WHERE C6_CLI = '"+SA1->A1_COD+"' AND C6_LOJA = '"+SA1->A1_LOJA+"' "
cQry+= "AND NOT EXISTS (SELECT * FROM "+RetSqlName("SC9")+" SC9 WHERE C9_FILIAL = C5_FILIAL AND C9_PEDIDO = C5_NUM AND C9_BLCRED NOT IN (' ','10') "
cQry+= "AND SC9.D_E_L_E_T_ = ' ') "
cQry+= "AND SC6.D_E_L_E_T_ = ' ' "
If Select("QRL") > 0
QRL->(dbCloseArea())
Endif
APWExOpenQuery(cQry,'QRL',.T.)
nSaldo:= SA1->A1_LC - (SA1->A1_SALDUP + QRL->TOTAL)
nToler:= nSaldo * GetNewPar("PR_TOLERLC",0)/100 //Tolerancia de 1%
//nSaldo:= nSaldo + nToler
cHtml:= cValtochar(nSaldo)+"|"+cValtochar(nToler) //Alltrim(Transform(nSaldo,"@E 999,999,999,999.99"))
Endif
Web Extended end
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ DescVista ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 21.08.19 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Verifica se a condição de pagamento tem desconto à vista ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function DescVista()
Local cHtml
Local cCondicao := Alltrim(HttpPost->condicao)
Web Extended Init cHtml Start U_inSite()
cHtml:= cValtoChar(Posicione("SE4",1,xFilial("SE4")+cCondicao,"E4_DESCPED"))
Web Extended end
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ InfGetAn ¦ Autor ¦ Anderson Zelenski ¦ Data ¦ 24.08.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Função para utilizar no Ajax pra retornar os anexos ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
/*
User Function InfGetAn()
Local cHtml
Local cCotacao := ""
Local cFornece := ""
Local cLoja := ""
Local cDirCot := "anexosPortal\cotacoes\"
Web Extended Init cHtml Start U_inSite()
#IFDEF SMSDEBUG
conOut(Procname()+"("+ltrim(str(procline()))+") *** Portal ")
aInfo := HttpGet->aGets
For nI := 1 to len(aInfo)
conout('GET '+str(nI,3)+' = '+aInfo[nI]+' -> '+&("HTTPGET->"+aInfo[nI]))
Next
aInfo := HttpPost->aPost
For nI := 1 to len(aInfo)
conout('POST '+str(nI,3)+' = '+aInfo[nI]+' -> '+&("HTTPPOST->"+aInfo[nI]))
Next
#ENDIF
cCotacao := HttpPost->cotacao
cFornece := HttpPost->fornece
cLoja := HttpPost->loja
//Verifica se existem anexos
cDirCot += cCotacao+'\'+cFornece+cLoja+'\'
cDirPortal := "../anexos/cotacoes/"+cCotacao+"/"+cFornece+cLoja+"/"
aAnexos := DIRECTORY(cDirCot+"*.*","",,.T.)
If Len(aAnexos) > 0
cHTML := U_GetAnexos(aAnexos,cDirPortal)
Else
cHTML := "Sem Anexos para essa cotação."
EndIf
Web Extended End
Return (cHTML)
Static Function NewDlg1()
/*
A tag abaixo define a criação e ativação do novo diálogo. Você pode colocar esta tag
onde quer que deseje em seu código fonte. A linha exata onde esta tag se encontra, definirá
quando o diálogo será exibido ao usuário.
Nota: Todos os objetos definidos no diálogo serão declarados como Local no escopo da
função onde a tag se encontra no código fonte.
*/
Return
//-------------------------------------------------------------------
/*/{Protheus.doc} U_GETPARC
Retorna lista de parceiros ativos do AC4
@param
@return cHtml - HTML com options dos parceiros
@author Matheus Bientinezi
@version P12
@since 09/01/2025
/*/
//-------------------------------------------------------------------
User Function GETPARC()
Local cHtml := ""
Local cQry := ""
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->Regional)
cHtml := ''
Return cHtml
endif
cQry := "SELECT AC4_PARTNE, AC4_NOME "
cQry += "FROM " + RetSqlName("AC4") + " AC4 "
cQry += "WHERE AC4.D_E_L_E_T_ = ' ' "
cQry += "AND AC4_FILIAL = '" + xFilial("AC4") + "' "
cQry += "AND AC4_MSBLQL <> '1' " // Status do registro não bloqueado
cQry += "ORDER BY AC4_NOME"
If Select("QRT") > 0
QRT->(dbCloseArea())
Endif
APWExOpenQuery(cQry,'QRT',.T.)
cHtml := ''
While !QRT->(Eof())
cHtml += ''
QRT->(dbSkip())
EndDo
QRT->(dbCloseArea())
Web Extended End
Return cHtml
//-------------------------------------------------------------------
/*/{Protheus.doc} U_ADDPARC
Adiciona parceiro na tabela Z81
@param
@return cHtml - JSON com status da operação
@author Matheus Bientinezi
@version P12
@since 09/01/2025
/*/
//-------------------------------------------------------------------
User Function ADDPARC()
Local cHtml := ""
Local cParceiro := HttpPost->parceiro
Local nRTPagar := Val(HttpPost->rtpagar)
Local nRTAumentar:= Val(HttpPost->rtaumentar)
Local cNumOrc := HttpPost->numOrc
Local lSuccess := .T.
local LFA074G := GetMv('LC_FA074G1')
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->Regional)
cHtml := ''
Return cHtml
endif
If Empty(cNumOrc)
lSuccess := .F.
cHtml := "NOK - Número do orçamento não informado"
return cHtml
EndIf
// Verifica se usuário tem permissão para RT Aumentar
If HttpSession->Regional $ lFA074G .And. !Empty(nRTAumentar)
cHtml := "NOK - Usuário sem permissão para informar RT Aumentar"
return cHtml
EndIf
DbSelectArea("Z81")
RecLock("Z81", .T.)
Z81->Z81_FILIAL := xFilial("Z81")
Z81->Z81_ORCAME := cNumOrc
Z81->Z81_PARTNE := cParceiro
Z81->Z81_PERRT := nRTPagar
Z81->Z81_PERAUM := nRTAumentar
MsUnlock()
cHtml := "OK - Parceiro adicionado com sucesso!"
Web Extended End
Return cHtml
//-------------------------------------------------------------------
/*/{Protheus.doc} U_EDITPARC
Adiciona parceiro na tabela Z81
@param
@return cHtml - JSON com status da operação
@author Matheus Bientinezi
@version P12
@since 09/01/2025
/*/
//-------------------------------------------------------------------
User Function EDITPARC()
Local cHtml := ""
Local cParceiro := HttpPost->parceiro
Local nRTPagar := Val(HttpPost->rtpagar)
Local nRTAumentar:= Val(HttpPost->rtaumentar)
Local cNumOrc := HttpPost->numOrc
local LFA074G := GetMv('LC_FA074G1')
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->Regional)
cHtml := ''
Return cHtml
endif
If Empty(cNumOrc)
cHtml := "NOK - Número do orçamento não informado"
return cHtml
EndIf
// Verifica se usuário tem permissão para RT Aumentar
If HttpSession->Regional $ lFA074G .And. !Empty(nRTAumentar)
cHtml := "NOK - Usuário sem permissão para informar RT Aumentar"
return cHtml
EndIf
DbSelectArea("Z81")
DbSetOrder(1)
If DbSeek(xFilial("Z81")+ cNumOrc + cParceiro)
RecLock("Z81", .F.)
Z81->Z81_PERRT := nRTPagar
Z81->Z81_PERAUM := nRTAumentar
MsUnlock()
cHtml := "OK"
Else
cHtml := "NOK - Parceiro não encontrado!"
return cHtml
EndIf
Web Extended End
Return cHtml
//-------------------------------------------------------------------
/*/{Protheus.doc} U_DELPARC
Exclui parceiro da tabela Z81
@param
@return cHtml - JSON com status da operação
@author Matheus Bientinezi
@version P12
@since 09/01/2025
/*/
//-------------------------------------------------------------------
User Function DELPARC()
Local cHtml := ""
Local cParceiro := HttpPost->parceiro
Local nOrc := HttpPost->numOrc
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->Regional)
cHtml := ''
Return cHtml
endif
DbSelectArea("Z81")
DbSetOrder(1)
If DbSeek(xFilial("Z81") + nOrc + cParceiro )
RecLock("Z81", .F.)
DbDelete()
MsUnlock()
cHtml := "OK - Parceiro excluído com sucesso!"
Else
cHtml := "NOK - Parceiro não encontrado!"
EndIf
Web Extended End
Return cHtml
//-------------------------------------------------------------------
/*/{Protheus.doc} U_LISTPARC
Lista os parceiros cadastrados na Z81
@param
@return cHtml - HTML com as linhas da tabela de parceiros
@author Matheus Bientinezi
@version P12
@since 09/01/2025
/*/
//-------------------------------------------------------------------
User Function LISTPARC()
Local cHtml := ""
Local cQry := ""
Local cNumOrc := HttpPost->numOrc
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->Regional)
cHtml := ''
Return cHtml
endif
If Empty(cNumOrc)
cHtml := "NOK - Numero do orcameto nao informado"
Return(cHtml)
EndIf
cQry := "SELECT Z81.Z81_PARTNE, AC4.AC4_NOME, Z81.Z81_PERRT, Z81.Z81_PERAUM, Z81.Z81_ORCAME "
cQry += "FROM " + RetSqlName("Z81") + " Z81 "
cQry += "INNER JOIN " + RetSqlName("AC4") + " AC4 ON "
cQry += "AC4.AC4_FILIAL = '" + xFilial("AC4") + "' AND "
cQry += "AC4.AC4_PARTNE = Z81.Z81_PARTNE AND "
cQry += "AC4.AC4_MSBLQL <> '1' AND " // Status do registro não bloqueado
cQry += "AC4.D_E_L_E_T_ = ' ' "
cQry += "WHERE Z81.D_E_L_E_T_ = ' ' "
cQry += "AND Z81.Z81_FILIAL = '" + xFilial("Z81") + "' "
cQry += "AND Z81.Z81_ORCAME = '" + cNumOrc + "' "
cQry += "ORDER BY AC4.AC4_NOME"
If Select("QRC") > 0
QRC->(dbCloseArea())
Endif
APWExOpenQuery(cQry,'QRC',.T.)
cHtml := ""
While !QRC->(Eof())
cHtml += '
'
QRC->(dbSkip())
EndDo
QRC->(dbCloseArea())
Web Extended End
Return cHtml
/*/{Protheus.doc} CopiarZ81
copiar parceiros de comissao rt
@type function
@author Luiz Jacinto
@since 24/04/2024
@param cOrcamento, character, orcamento original
@param cNovo, character, novo orcamento
/*/
Static Function CopiarZ81(cOrcamento,cNovo)
// salva area aberta
Local aArea := FwGetArea()
// item temporario
Local aItem := {}
// parceiros
Local aDados:= {}
// lista de campos reais da tabela
Local aCab := FwSX3Util():GetAllFields("Z81",.F.)
// contador
Local nX := 0
// contador
Local nY := 0
// abre a tabela
Z81->(DbSetOrder(1))
// se nao achou parceiros no orcamento original
If !Z81->(MsSeek(xFilial("Z81")+cOrcamento))
// sai da funcao
Return
Endif
// passa por todos os parceiros
While !Z81->(EOF()) .and. Z81->Z81_FILIAL == xFilial("Z81") .and. Z81->Z81_ORCAME == cOrcamento
// limpa array temporario
aItem := {}
// passa por todos os campos da tabela
For nX := 1 to Len(aCab)
// adiciona valor da coluna
aadd(aItem,&("Z81->"+aCab[nX]))
Next
// adiciona parceiro ao array de parceiros
aadd(aDados,aItem)
// proximo registro
Z81->(DbSkip())
Enddo
// se achou parceiro
If !Vazio(aDados)
// passa por todos os parceiros
For nX := 1 to Len(aDados)
// trava o registro
RecLock("Z81",.T.)
// passa por todos os campos da tabela
For nY := 1 to Len(aCab)
// atualiza o valor do novo registro
&("Z81->"+aCab[nY]) := aDados[nX][nY]
Next
// altera o numero do orcamento para o novo numero
Z81->Z81_ORCAME := cNovo
// destrava o registro
MsUnLock("Z81")
Next
Endif
// restaura area aberta
FwRestArea(aArea)
Return