#include "PROTHEUS.CH"
#include "RWMAKE.CH"
#include "APWEBEX.CH"
#include "TOPCONN.CH"
#include "TBICONN.CH"
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ Orcamento ¦ Autor ¦ Lucilene Mendes ¦ Data ¦28.08.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Grid com os orçamentos em aberto do vendedor. ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function Orcamento()
Local cHtml
Local cLink := ""
Local cCombo := ""
Local cDataDe := ""
Local cDataAte := ""
Local cFiltDe := ""
Local cFilAte := ""
Local cLinkDet := ""
Local aStatus:= {}
Private cColunas:= ""
Private cItens := ""
Private cTopo := ""
Private cSite := "u_PortalLogin.apw"
Private cPagina := "Orçamentos"
Private cTitle := ""
Private lTableTools:= .T.
Private lSidebar:= .F.
Private cCodLogin := ""
Private cVendLogin:= ""
Private cPerda:=""
Private cConcorrente:=""
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->CodVend)
cHtml:= ''
Return cHtml
Else
If !Empty(HttpSession->Superv) .and. HttpSession->Superv <> HttpSession->CodVend
HttpSession->CodVend:= HttpSession->Superv
Endif
Endif
cVendLogin := u_GetUsrPR()
cCodLogin := U_SetParPR(cVendLogin)
// Pega do parâmetro com o Titulo do Portal
cTitle := SuperGetMV("PS_TITLE", .T., "Portal SMS")
// Define a funcao a ser chama no link
cSite := "u_SMSPortal.apw?PR="+cCodLogin
// Monta o cabeçalho para a pagina
cHeader := U_PSHeader(cTitle, cSite)
//Função que atualiza os menus
cMenus := U_GetMenus(AllTrim(Upper(Procname())), cVendLogin)
//Tratamento dos filtros
If type("HttpPost->DataDe") <> "U"
//Se vazio, usa as datas padrão para evitar erro na query
If Empty(HttpPost->DataDe) .or. Empty(HttpPost->DataAte)
cDataDe:= dtos(date()-30)
cDataAte:= dtos(date())
Else
cDataDe:= dtos(ctod(HttpPost->DataDe))
cDataAte:= dtos(ctod(HttpPost->DataAte))
Endif
//Atualiza as variáveis no valor do filtro
cFiltDe:= dtoc(stod(cDataDe))
cFilAte:= dtoc(stod(cDataAte))
Else
//Variáveis dos input dos filtros
cFiltDe:= dtoc(date()-30)
cFilAte:= dtoc(date())
//Variáveis de filtro da query
cDataDe:= dtos(date()-30)
cDataAte:= dtos(date())
Endif
//Topo da janela
//Botão incluir novo orçamento
cTopo:= '
'
If HttpSession->Tipo = 'S'
cTopo+= '
'
cTopo+= ' '
cTopo+= '
'
Endif
//Filtros
cTopo+= '
'
cTopo+= ' '
cTopo+= '
'
cTopo+= '
'
cQry:= " Select DISTINCT SCJ.CJ_FILIAL, SCJ.CJ_NUM, SCJ.CJ_CLIENTE, SCJ.CJ_LOJA, A1_NOME, A1_EMAIL, SCJ.CJ_EMISSAO, SCJ.CJ_STATUS, CK_NUMPV, SCJ.CJ_VEND, SCJ.R_E_C_N_O_ RECSCJ, "
cQry+= " C5_NOTA,C5_SERIE, SCJ.CJ_HORA, SCJ.CJ_ORCORIG, SCJ.CJ_OBRA "
cQry+= " From "+RetSqlName("SCJ")+" SCJ "
cQry+= " Inner Join "+RetSqlName("SA1")+" SA1 On A1_FILIAL = '"+xFilial("SA1")+"' AND A1_COD = SCJ.CJ_CLIENTE AND A1_LOJA = SCJ.CJ_LOJA AND SA1.D_E_L_E_T_ = ' ' "
cQry+= " Inner Join "+RetSqlName("SCK")+" SCK On CK_FILIAL = SCJ.CJ_FILIAL AND CK_NUM = SCJ.CJ_NUM AND SCK.D_E_L_E_T_ = ' ' "
cQry+= " Left Join "+RetSqlName("SC5")+" SC5 ON C5_NUM = CK_NUMPV AND C5_NOTA <> 'XXXXXXXXX' AND SC5.D_E_L_E_T_ = ' ' " //C5_FILIAL = CK_FILIAL AND
cQry+= " Where SCJ.D_E_L_E_T_ = ' ' "
If HttpSession->Tipo = 'S' //Supervisor acessa todos os orçamentos da sua equipe
cQry+= " AND SCJ.CJ_VEND in "+FormatIn(HttpSession->Equipe,"|")+" "
Else
cQry+= " AND SCJ.CJ_VEND = '"+cVendLogin+"' "
Endif
If !Empty(cDataAte)
cQry+= " And SCJ.CJ_EMISSAO between '"+cDataDe+"' and '"+cDataAte+"' "
Endif
cQry+= " Order by SCJ.CJ_EMISSAO, SCJ.CJ_NUM, SCJ.CJ_CLIENTE, SCJ.CJ_LOJA "
If Select("QRY") > 0
QRY->(dbCloseArea())
Endif
APWExOpenQuery(ChangeQuery(cQry),'QRY',.T.)
//Cabeçalho do grid
cColunas+='
Filial
'
cColunas+='
Orçamento
'
cColunas+='
Status
'
cColunas+='
Emissão
'
cColunas+='
Hora
'
cColunas+='
Cliente
'
cColunas+='
Nome
'
cColunas+='
Obra
'
cColunas+='
Orcto Original
'
cColunas+='
Pedido
'
cColunas+='
Nota Fiscal
'
If HttpSession->Tipo = 'S'
cColunas+='
Vendedor
'
Endif
cColunas+='
'
aStatus:= RetSx3Box(Posicione('SX3',2,'CJ_STATUS','X3CBox()'),,,1)
//Busca os códigos de perda para o cancelamento
cPerda:= u_getPerda()
cConcorrente:= u_getConcor()
While QRY->(!Eof())
//Atualiza os controles do grid
cLink:= "U_MntOrc.apw?PR="+cCodLogin+"&rec="+cValtoChar(QRY->RECSCJ)
cLinkDet := '"onclick="window.document.location='+"'"+cLink+"&opc=view'"+';"'
cItens+='
'
QRY->(dbSkip())
End
cItens+= montarForm("Cancelar Orçamento")
//Retorna o HTML para construção da página
cHtml := H_SMSGrid()
Web Extended End
Return (cHTML)
// Montar o formulário para cancelar orçamento
static function montarForm(cTitulo)
Local cRet:=""
cRet+= ''+CRLF
cRet+= '
'+CRLF
cRet+= ' '+CRLF
cRet+= ' '+CRLF
cRet+= '
'+cTitulo+'
'+CRLF
cRet+= ' '+CRLF
cRet+= '
'+CRLF
cRet+= '
'+CRLF
//Código de perda
cRet+= '
'+CRLF
cRet+= ' '+CRLF
cRet+= '
'+CRLF
cRet+= ' '+CRLF
cRet+= '
'+CRLF
cRet+= ' '+CRLF
cRet+= '
'+CRLF
cRet+= '
'+CRLF
cRet+= '
'+CRLF
// concorrente
cRet+= '
'+CRLF
cRet+= ' '+CRLF
cRet+= '
'+CRLF
cRet+= ' '+CRLF
cRet+= '
'+CRLF
cRet+= ' '+CRLF
cRet+= '
'+CRLF
cRet+= '
'+CRLF
cRet+= '
'+CRLF
cRet+= '
'+CRLF
cRet+= '
'+CRLF
cRet+= ' '+CRLF
cRet+= ' '+CRLF
cRet+= '
'+CRLF
return cRet
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ FilVend ¦ Autor ¦ Lucilene Mendes ¦ Data ¦30.07.19 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Lista as filiais que o vendedor tem acesso ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function FilVend()
Local cHtml
Private cSite := "u_PortalLogin.apw"
Private cCodLogin := ""
Private cVendLogin:= ""
Private cFilFiltro:= ""
Web Extended Init cHtml Start U_inSite()
// TODO - Pedro 20210208 - Remover???
If Empty(HttpSession->CodVend)
cHtml:= ''
Return cHtml
Else
If !Empty(HttpSession->Superv) .and. HttpSession->Superv <> HttpSession->CodVend
HttpSession->CodVend:= HttpSession->Superv
Endif
Endif
cVendLogin := u_GetUsrPR()
cCodLogin := U_SetParPR(cVendLogin)
//Retorna o HTML para construção da página
cHtml := u_fFilVend(cVendLogin,cFilFiltro)
Web Extended End
Return (cHTML)
User Function fFilVend(cCodVend,cFilFiltro)
Local cRet:= ""
Local aFiliais:= {}
Local i:= 0
aFiliais := FWAllFilial()
For i:= 1 to Len(aFiliais)
aFilAtu:= FWArrFilAtu(cEmpAnt,aFiliais[i])
cRet+= ' '
Next
Return cRet
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ TrocaFil ¦ Autor ¦ Lucilene Mendes ¦ Data ¦30.07.19 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Altera a filial logada ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function TrocaFil()
Local cHtml
Local cRet := ""
Private cSite := "u_PortalLogin.apw"
Private cCodLogin := ""
Private cVendLogin:= ""
Web Extended Init cHtml Start U_inSite()
// TODO - Pedro 20210208 - Remover???
If Empty(HttpSession->CodVend)
cHtml:= ''
Return cHtml
Else
If !Empty(HttpSession->Superv) .and. HttpSession->Superv <> HttpSession->CodVend
HttpSession->CodVend:= HttpSession->Superv
Endif
Endif
cVendLogin := u_GetUsrPR()
cCodLogin := U_SetParPR(cVendLogin)
//Altera a empresa para a filial de faturamento
nRecSA3:= SA3->(Recno())
If cFilAnt <> HttpPost->Filial
HttpSession->Filial:= HttpPost->Filial //CEMPANT+CFILANT+CEMPFIL
u_InSite(.f.)
Endif
//Posiciona na SA3 novamente, pois ao trocar a filial fecha a tabela
dbSelectArea("SA3")
SA3->(dbGoTo(nRecSA3))
If cFilAnt == HttpPost->Filial
cRet := cFilAnt
Endif
//Retorna o HTML para construção da página
cHtml := cRet
Web Extended End
Return (cHTML)
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ getPerda ¦ Autor ¦ Lucilene Mendes ¦ Data ¦24.08.24 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Retorna lista de select com os motivos de perda ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function getPerda(cOpcSel)
Local cLista:= ""
cQry:= " Select Z4_CODIGO, Z4_DESCRI, Z4_CONC "
cQry+= " From "+RetSqlName("SZ4")+" SZ4 "
cQry+= " Where Z4_FILIAL = '"+xFilial("SZ4")+"' "
cQry+= " And SZ4.D_E_L_E_T_ = ' ' "
APWExOpenQuery(ChangeQuery(cQry),'QRPE',.T.)
cLista+=' '
While QRPE->(!Eof())
cLista+=' '
QRPE->(dbSkip())
End
QRPE->(dbCloseArea())
Return cLista
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ getConcor ¦ Autor ¦ Lucilene Mendes ¦ Data ¦24.08.24 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Retorna lista de select com os concorrentes ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function getConcor(cOpcSel)
Local cLista:= ""
cQry:= " Select Z21_COD "
cQry+= " From "+RetSqlName("Z21")+" Z21 "
cQry+= " Where Z21_FILIAL = '"+xFilial("Z21")+"' "
cQry+= " And Z21.D_E_L_E_T_ = ' ' "
APWExOpenQuery(ChangeQuery(cQry),'QRCO',.T.)
cLista+=' '
While QRCO->(!Eof())
cLista+=' '
QRCO->(dbSkip())
End
QRCO->(dbCloseArea())
Return cLista
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ GeraEfetiva ¦ Autor ¦ Lucilene Mendes ¦ Data ¦11.01.25 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Gera efetivação para o orçamento ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function GeraEfetiva()
Local cHtml
Local cRet := ""
Local cDirErro := "\erro\"
Local nRecSCJ := Val(HttpPost->recorc)
Local aCabec := {}
Local aLinha := {}
Local aItens := {}
Private cSite := "u_PortalLogin.apw"
Private cCodLogin := ""
Private cVendLogin:= ""
Private lMsErroAuto := .F.
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->CodVend)
cHtml:= ''
Return cHtml
Endif
cVendLogin := u_GetUsrPR()
cCodLogin := U_SetParPR(cVendLogin)
//Posiciona no orçamento
dbSelectArea("SCJ")
SCJ->(dbGoTo(nRecSCJ))
If cFilAnt <> SCJ->CJ_FILIAL
u_PtTrocaFil(SCJ->CJ_FILIAL)
Endif
aAdd(aCabec,{"CJ_NUM" , SCJ->CJ_NUM ,Nil})
aAdd(aCabec,{"CJ_CLIENTE", SCJ->CJ_CLIENTE ,Nil})
aAdd(aCabec,{"CJ_LOJACLI", SCJ->CJ_LOJA ,Nil})
aAdd(aCabec,{"CJ_CONDPAG", SCJ->CJ_CONDPAG ,Nil})
SCK->(dbSeek(xFilial("SCK")+SCJ->CJ_NUM))
While SCK->(!Eof()) .and. SCK->CK_FILIAL = SCJ->CJ_FILIAL .and. SCK->CK_NUM = SCJ->CJ_NUM
aLinha := {}
aAdd(aLinha,{"CK_ITEM" , SCK->CK_ITEM ,Nil})
aAdd(aLinha,{"CK_PRODUTO", SCK->CK_PRODUTO ,Nil})
aAdd(aLinha,{"CK_QTDVEN" , SCK->CK_QTDVEN ,Nil})
aAdd(aLinha,{"CK_PRCVEN" , SCK->CK_PRCVEN ,Nil})
//aAdd(aLinha,{"CK_PRUNIT" , SCK->CK_PRUNIT ,Nil})
aAdd(aLinha,{"CK_VALOR" , SCK->CK_VALOR ,Nil})
aAdd(aLinha,{"CK_TES" , SCK->CK_TES ,Nil})
aAdd(aItens,aLinha)
SCK->(dbSkip())
End
MATA416(aCabec,aItens)
If lMsErroAuto
If !ExistDir(cDirErro)
MakeDir(cDirErro)
Endif
cDirErro+=dtos(date())
If !ExistDir(cDirErro)
MakeDir(cDirErro)
Endif
cErro:= Mostraerro(cDirErro,"aprovacao_orcamento_erro_"+SCJ->CJ_FILIAL+SCJ->CJ_NUM+"_"+strtran(time(),":","")+".txt")
cRet:= "Erro ao efetivar o orçamento!"
Conout(cRet)
cDestMail:= GetNewPar("PR_DESTORE ","lucilene@smsti.com.br")
u_MailCM("ERRO ORCAMENTO",{cDestMail},{},"ERRO EFETIVAÇÃO ORCAMENTO",cErro,"","")
Else
SCJ->(dbGoTo(nRecSCJ))
SCK->(dbSeek(xFilial("SCK")+SCJ->CJ_NUM))
cRet:= "Orçamento efetivado com sucesso! Gerado o pedido "+SCK->CK_NUMPV+"."
Endif
cHtml := u_FormEntities(cRet)
Web Extended End
Return (cHTML)
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ GeraCancela ¦ Autor ¦ Lucilene Mendes ¦ Data ¦11.01.25 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Gera cancelamento do orçamento ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function GeraCancela()
Local cHtml
Local nRecSCJ := Val(HttpPost->recorc)
Local cCodPerda := Val(HttpPost->codperda)
Local cConcorr := Val(HttpPost->concorrente)
Private cSite := "u_PortalLogin.apw"
Private cCodLogin := ""
Private cVendLogin:= ""
Web Extended Init cHtml Start U_inSite()
If Empty(HttpSession->CodVend)
cHtml:= ''
Return cHtml
Endif
cVendLogin := u_GetUsrPR()
cCodLogin := U_SetParPR(cVendLogin)
//Posiciona no orçamento
dbSelectArea("SCJ")
SCJ->(dbGoTo(nRecSCJ))
conout("###**")
CONOUT(NRECSCJ)
If cFilAnt <> SCJ->CJ_FILIAL
u_PtTrocaFil(SCJ->CJ_FILIAL)
Endif
SCJ->(dbGoTo(nRecSCJ))
Reclock("SCJ",.F.)
SCJ->CJ_CODPERD:= Substr(cCodPerda,2)
SCJ->CJ_CDCONCO:= cConcorr
SCJ->CJ_DTCANC:= dDataBase
SCJ->CJ_STATUS:= 'C'
msUnlock()
cHtml := "OK"
Web Extended End
Return (cHTML)