123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600 |
- #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:= '<META HTTP-EQUIV="Refresh" CONTENT="0 ; URL='+cSite+'">'
- 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:= '<div class="row form-group">'
- If HttpSession->Tipo = 'S'
- cTopo+= ' <div class="col-sm-3">'
- cTopo+= ' <button class="btn btn-primary" id="btAddOrc" name="btAddOrc" onclick="javascript: getFilVend();">'
- cTopo+= ' <i class="fa fa-plus"></i> Novo Orçamento</button>'
- cTopo+= ' </div>'
- Endif
- //Filtros
- cTopo+= ' <div class="col-sm-9" align="'+Iif(HttpSession->Tipo = 'S',"right","left")+'">'
- cTopo+= ' <form name="formGrid" id="formGrid" method="POST" action="U_Orcamento.apw?PR='+cCodLogin+'">'
- cTopo+= ' <label class="col-md-2 control-label">Emissão De:</label>'
- cTopo+= ' <div class="col-md-3">'
- cTopo+= ' <div class="input-group">'
- cTopo+= ' <span class="input-group-addon">'
- cTopo+= ' <i class="fa fa-calendar"></i>'
- cTopo+= ' </span>'
- cTopo+= ' <input data-plugin-datepicker="" data-plugin-options='+"'"+'{"autoclose": "true", "language": "pt-BR",'
- cTopo+= ' "daysOfWeekDisabled": "","daysOfWeekHighlighted":"[0]"}'+"'"+' value="'+cFiltDe+'" '
- cTopo+= ' placeholder="__/__/____" id="datade" name="datade" class="form-control only-numbers" type="text">'
- cTopo+= ' </div>'
- cTopo+= ' </div>'
-
- cTopo+= ' <label class="col-md-2 control-label">Emissão Até:</label>'
- cTopo+= ' <div class="col-md-3">'
- cTopo+= ' <div class="input-group">'
- cTopo+= ' <span class="input-group-addon">'
- cTopo+= ' <i class="fa fa-calendar"></i>'
- cTopo+= ' </span>'
- cTopo+= ' <input data-plugin-datepicker="" data-plugin-options='+"'"+'{"autoclose": "true", "language": "pt-BR",'
- cTopo+= ' "daysOfWeekDisabled": "","daysOfWeekHighlighted":"[0]"}'+"'"+' value="'+cFilAte+'" '
- cTopo+= ' placeholder="__/__/____" id="dataate" name="dataate" class="form-control only-numbers" type="text">'
- cTopo+= ' </div>'
- cTopo+= ' </div>'
- cTopo+= ' <button class="btn btn-primary" id="btFiltro" value="" onclick="this.value= '+"'"+'Aguarde...'+"'"+';this.disabled= '+"'"+'disabled'+"'"+';Filtro()" name="btFiltro">'
- cTopo+= ' <i class="fa fa-filter"></i> Filtrar</button>'
- cTopo+= ' </form>'
- cTopo+= ' </div>'
- cTopo+= '</div>'
-
- 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+='<th>Filial</th>'
- cColunas+='<th>Orçamento</th>'
- cColunas+='<th>Status</th>'
- cColunas+='<th>Emissão</th>'
- cColunas+='<th>Hora</th>'
- cColunas+='<th>Cliente</th>'
- cColunas+='<th>Nome</th>'
- cColunas+='<th>Obra</th>'
- cColunas+='<th>Orcto Original</th>'
- cColunas+='<th>Pedido</th>'
- cColunas+='<th>Nota Fiscal</th>'
- If HttpSession->Tipo = 'S'
- cColunas+='<th>Vendedor</th>'
- Endif
- cColunas+='<th></th>'
-
- 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+='<tr>'
- cItens+=' <td role="button" onclick="window.document.location='+"'"+cLink+"&opc=view'"+';">'+QRY->CJ_FILIAL+'</td>'
- cItens+=' <td role="button" onclick="window.document.location='+"'"+cLink+"&opc=view'"+';">'+QRY->CJ_NUM+'</td>'
- 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+=' <td role="button" onclick="window.document.location='+"'"+cLink+"&opc=view'"+';">'+Iif(Empty(QRY->C5_NOTA),cCombo,"NF Gerada")+'</td>'
- cItens+=' <td role="button" onclick="window.document.location='+"'"+cLink+"&opc=view'"+';" data-order="'+(QRY->CJ_EMISSAO)+QRY->CJ_HORA+'">'+dtoc(stod(QRY->CJ_EMISSAO))+'</td>'
- cItens+=' <td role="button" onclick="window.document.location='+"'"+cLink+"&opc=view'"+';" data-order="'+(QRY->CJ_EMISSAO)+QRY->CJ_HORA+'">'+QRY->CJ_HORA+'</td>'
- cItens+=' <td role="button" onclick="window.document.location='+"'"+cLink+"&opc=view'"+';">'+QRY->CJ_CLIENTE+'/'+QRY->CJ_LOJA+'</td>'
- cItens+=' <td role="button" onclick="window.document.location='+"'"+cLink+"&opc=view'"+';">'+Alltrim(QRY->A1_NOME)+'</td>'
- cItens+=' <td role="button" onclick="window.document.location='+"'"+cLink+"&opc=view'"+';">'+Alltrim(QRY->CJ_OBRA)+'</td>'
- cItens+=' <td role="button" onclick="window.document.location='+"'"+cLink+"&opc=view'"+';">'+QRY->CJ_ORCORIG+'</td>'
- cItens+=' <td role="button" onclick="window.document.location='+"'"+cLink+"&opc=view'"+';">'+QRY->CK_NUMPV+'</td>'
- cItens+=' <td role="button" onclick="window.document.location='+"'"+cLink+"&opc=view'"+';">'+If(!Empty(QRY->C5_NOTA),QRY->C5_NOTA+"/"+QRY->C5_SERIE,"")+'</td>'
- If HttpSession->Tipo = 'S'
- cItens+=' <td role="button" onclick="window.document.location='+"'"+cLink+"&opc=view'"+';">'+QRY->CJ_VEND+' - '+Posicione("SA3",1,xFilial("SA3")+QRY->CJ_VEND,"A3_NREDUZ")+'</td>'
- Endif
-
- cItens+=' <td class="actions">'
-
- cItens+= ' <a href="'+cLink+'&opc=copy" class="on-default" data-toggle="tooltip" data-original-title="Copiar Orçamento"><i class="fa fa-files-o"></i></a>'
- If QRY->CJ_STATUS = "A"
- cItens+=' <a href="'+cLink+'&opc=edit" class="on-default" data-toggle="tooltip" data-original-title="Alterar Orçamento"><i class="fa fa-pencil"></i></a>'
- cItens+=' <a href="'+cLink+'&opc=dele" class="on-default" data-toggle="tooltip" data-original-title="Excluir Orçamento"><i class="fa fa-trash-o"></i></a>'
- cItens+=' <a class="modal-email" href="#" data-toggle="tooltip" data-original-title="Efetivar orçamento" title="" onClick="javascript:efetivaOrc('+QRY->CJ_NUM+','+cValtoChar(QRY->RECSCJ)+');">'
- cItens+=' <i class="fa fa-check-square-o"></i></a>'
- cItens+=' <a class="modal-canc" href="#" data-toggle="tooltip" data-original-title="Cancelar orçamento" title="" onClick="javascript:cancelaOrc('+QRY->CJ_NUM+','+cValtoChar(QRY->RECSCJ)+');">'
- cItens+=' <i class="fa fa-window-close-o"></i></a>'
- cItens+=' <a href="U_RevOrc.apw?PR='+cCodLogin+'&rec='+cValtoChar(QRY->RECSCJ)+'&opc=rev" class="on-default" data-toggle="tooltip" data-original-title="Revisão de Orçamento"><i class="fa fa-search" aria-hidden="true"></i></a>'
- EndIf
- /*
- cItens+=' <a class="modal-email" href="#" data-toggle="tooltip" data-original-title="Enviar orçamento por e-mail" title="" onClick="javascript:abreEmail('+cValtoChar(QRY->RECSCJ)+','+"'"+Alltrim(QRY->A1_EMAIL)+"'"+');">'
- cItens+=' <i class="fa fa-envelope-o"></i></a>'
- cItens+=' <a href="#" data-toggle="tooltip" data-original-title="Imprimir Orçamento" title="" onClick="javascript:PrtOrc('+cValtoChar(QRY->RECSCJ)+');"><i class="fa fa-print"></i></a>'
-
- cItens+=' </td>'
- */
- cItens+='</tr>'
-
- 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+= '<!-- Modal Form -->'+CRLF
- cRet+= ' <div id="modalCanc" class="modal-block modal-block-primary mfp-hide">'+CRLF
- cRet+= ' <section class="panel">'+CRLF
- cRet+= ' <header class="panel-heading">'+CRLF
- cRet+= ' <h2 class="panel-title">'+cTitulo+'</h2>'+CRLF
- cRet+= ' </header>'+CRLF
- cRet+= ' <div class="panel-body">'+CRLF
- cRet+= ' <div class="row form-group">'+CRLF
- //Código de perda
- cRet+= ' <div class="row form-group">'+CRLF
- cRet+= ' <div class="col-lg-1"></div>'+CRLF
- cRet+= ' <div class="col-lg-9">'+CRLF
- cRet+= ' <label class="control-label">Motivo do Cancelamento</label>'+CRLF
- cRet+= ' <div >'+CRLF
- cRet+= ' <select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'"+CRLF
- cRet+= ' { "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="CJ_CODPERD" id="CJ_CODPERD" '+CRLF
- cRet+= ' required="" aria-required="true">'+CRLF
- cRet+= cPerda
- cRet+= ' </select>'+CRLF
- cRet+= ' </div>'+CRLF
- cRet+= ' </div>'+CRLF
- cRet+= ' </div>'+CRLF
- // concorrente
- cRet+= ' <div class="row form-group">'+CRLF
- cRet+= ' <div class="col-lg-1"></div>'+CRLF
- cRet+= ' <div class="col-lg-9">'+CRLF
- cRet+= ' <label class="control-label">Concorrente</label>'+CRLF
- cRet+= ' <div ">'+CRLF
- cRet+= ' <select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'"+CRLF
- cRet+= ' { "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="CJ_CDCONCO" id="CJ_CDCONCO" '+CRLF
- cRet+= ' required="" aria-required="true">'+CRLF
- cRet+= cConcorrente
- cRet+= ' </select>'+CRLF
- cRet+= ' </div>'+CRLF
- cRet+= ' </div>'+CRLF
- cRet+= ' </div>'+CRLF
- cRet+= ' </div>'+CRLF
- cRet+= ' </div>'+CRLF
- cRet+= ' <footer class="panel-footer">'+CRLF
- cRet+= ' <div class="row">'+CRLF
- cRet+= ' <div class="col-md-12 text-right">'+CRLF
- cRet+= ' <button class="btn btn-primary modal-confirm" onclick="javascript:confirmCanc();">Confirmar</button>'+CRLF
- cRet+= ' <button class="btn btn-default modal-dismiss" onclick="javascript:fecharCanc();">Cancelar</button>'+CRLF
- cRet+= ' </div>'+CRLF
- cRet+= ' </div>'+CRLF
- cRet+= ' </footer>'+CRLF
- cRet+= ' </section>'+CRLF
- cRet+= ' </div>'+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:= '<META HTTP-EQUIV="Refresh" CONTENT="0 ; URL='+cSite+'">'
- 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+= ' <option value="'+Alltrim(aFilAtu[2])+'" '+Iif(Alltrim(aFilAtu[2])= cFilFiltro,' selected ','')+'>'+aFilAtu[2]+" - "+OemtoAnsi(Alltrim(aFilAtu[7]))+'</option>'
- 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:= '<META HTTP-EQUIV="Refresh" CONTENT="0 ; URL='+cSite+'">'
- 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+=' <option value=""></option>'
- While QRPE->(!Eof())
- cLista+=' <option value="'+QRPE->Z4_CONC+QRPE->Z4_CODIGO+'"'+Iif(Alltrim(QRPE->Z4_CODIGO) == AllTrim(cOpcSel),'selected','')+'>'+Alltrim(QRPE->Z4_CODIGO)+" - "+Alltrim(u_RemEspec(QRPE->Z4_DESCRI))+'</option>'
- 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+=' <option value=""></option>'
-
- While QRCO->(!Eof())
- cLista+=' <option value="'+QRCO->Z21_COD+'"'+Iif(Alltrim(QRCO->Z21_COD) == AllTrim(cOpcSel),'selected','')+'>'+Alltrim(QRCO->Z21_COD)+'</option>'
- 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:= '<META HTTP-EQUIV="Refresh" CONTENT="0 ; URL='+cSite+'">'
- 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:= '<META HTTP-EQUIV="Refresh" CONTENT="0 ; URL='+cSite+'">'
- 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)
|