#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+= '
' cTopo+= '
' cTopo+= ' ' cTopo+= ' ' cTopo+= ' ' cTopo+= ' ' cTopo+= ' Filtrar' 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.) CONOUT(CqRY) //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+='' cItens+=' '+QRY->CJ_FILIAL+'' cItens+=' '+QRY->CJ_NUM+'' If (nSeek := Ascan(aStatus, { |x| x[ 2 ] == QRY->CJ_STATUS })) > 0 cCombo := AllTrim( aStatus[nSeek,3]) If QRY->CJ_STATUS $ 'Q|C' cCombo:= 'Cancelado' Elseif !Empty(QRY->CK_NUMPV) .and. QRY->CJ_STATUS = 'B' If Empty(QRY->C5_NOTA) cCombo:= 'Efetivado' Else cCombo:= 'NF Gerada' Endif Endif Endif cItens+=' '+Iif(Empty(QRY->C5_NOTA),cCombo,"NF Gerada")+'' cItens+=' '+dtoc(stod(QRY->CJ_EMISSAO))+'' cItens+=' '+QRY->CJ_HORA+'' cItens+=' '+QRY->CJ_CLIENTE+'/'+QRY->CJ_LOJA+'' cItens+=' '+Alltrim(QRY->A1_NOME)+'' cItens+=' '+Alltrim(QRY->CJ_OBRA)+'' cItens+=' '+QRY->CJ_ORCORIG+'' cItens+=' '+QRY->CK_NUMPV+'' cItens+=' '+If(!Empty(QRY->C5_NOTA),QRY->C5_NOTA+"/"+QRY->C5_SERIE,"")+'' If HttpSession->Tipo = 'S' cItens+=' '+QRY->CJ_VEND+' - '+Posicione("SA3",1,xFilial("SA3")+QRY->CJ_VEND,"A3_NREDUZ")+'' cItens+=' ' cItens+= ' ' If QRY->CJ_STATUS = "A" cItens+=' ' cItens+=' ' cItens+=' ' cItens+=' ' cItens+=' ' cItens+=' ' EndIf /* cItens+=' ' cItens+=' ' cItens+=' ' */ Endif cItens+='' QRY->(dbSkip()) End //Retorna o HTML para construção da página cHtml := H_SMSGrid() Web Extended End Return (cHTML) /*__________________________________________________________________________ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¦¦+-----------------------------------------------------------------------+¦¦ ¦¦¦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 := HttpPost->codperda Local cConcorr := Alltrim(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)) 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_DSCPERD:= fDesc("SZ4",Substr(cCodPerda,2),"Z4_DESCRI") SCJ->CJ_CDCONCO:= cConcorr SCJ->CJ_DTCANC:= dDataBase SCJ->CJ_STATUS:= 'C' msUnlock() cHtml := "OK" Web Extended End Return (cHTML)