123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857 |
- #include "PROTHEUS.CH"
- #include "RWMAKE.CH"
- #include "APWEBEX.CH"
- #include "TOPCONN.CH"
- #include "TBICONN.CH"
- #DEFINE SMSDEBUG
- /*__________________________________________________________________________
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦Funçäo ¦ SMSPortal ¦ Autor ¦ Lucilene Mendes ¦ Data ¦22.08.16 ¦¦¦
- ¦¦+----------+------------------------------------------------------------¦¦¦
- ¦¦¦Descriçäo ¦ Tela inicial do portal. ¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
- User Function SMSPortal(cVendLogin)
- Local cHtml
- Local cMeta := ""
- //Local cAtingido := ""
- Local cFalta := ""
- Local aWidGet := {}
- Local nW := 0
- Local nTotValor := 0
- Local nTotQtd := 0
- Local nMeta := 0
- Local nItem := 1
- Private cColunas := ""
- Private cItens := ""
- Private cSite := "u_PortalLogin.apw"
- Private cPagina := ""
- Private cMenus := ""
- Private cTitle := "Portal SMS"
- Private cWidgets := ""
- Private cWidgets2 := ""
- Private cWidMeta := ""
- Private cTopo := ""
- Private cCodVend := ""
- Private cDataDe := ""
- Private cDataAte := ""
- Private cVndFlt := ""
- Private cMetaLj := ""
- Private cAtingidoLj := ""
- Private CVLRLJATINGIDO := ""
- Private cAtingido := ""
- Private cMVendas := ""
- Private cVSegmto := ""
- Private cCodLogin := ""
- Default cVendLogin:= ""
- Web Extended Init cHtml Start U_inSite(empty(cVendLogin))
- if empty(cVendLogin)
- cVendLogin := u_GetUsrPR()
- endif
-
- cCodVend := cVendLogin
- cCodLogin := U_SetParPR(cCodVend)
- 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
-
- // 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 := Procname()+".apw?PR="+cCodLogin
-
- //Função que atualiza os menus
- HttpSession->aMenu:= {}
- cMenus := u_GetMenus(AllTrim(Upper(Procname())), cCodVend)
- //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(FirstDay(date()))
- cDataAte:= dtos(LastDay(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))
- cVndFlt:= Iif(!Empty(HttpPost->VenFiltro),HttpPost->VenFiltro,"")
- Else
- //Variáveis dos input dos filtros
- cFiltDe:= dtoc(FirstDay(date()))
- cFilAte:= dtoc(LastDay(date()))
- //Variáveis de filtro da query
- cDataDe:= dtos(FirstDay(date()))
- cDataAte:= dtos(LastDay(date()))
- Endif
-
- //Filtro período
- cTopo:= '<div class="row form-group">'
- cTopo+= ' <div class="col-sm-12">'
- cTopo+= ' <form name="formGrid" id="formGrid" method="POST" action="'+procname()+'.apw?PR='+cCodLogin+'">'
-
- cTopo+= ' <label class="col-md-1 control-label">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"></input>'
- cTopo+= ' </div>'
- cTopo+= ' </div>'
-
- cTopo+= ' <label class="col-md-1 control-label">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"></input>'
- cTopo+= ' </div>'
- cTopo+= ' </div>'
-
- If HttpSession->Tipo = 'S' //Supervisor acessa informações da sua equipe
- cTopo+= ' <label class="col-md-1 control-label">Repr.:</label>'
- cTopo+= ' <div class="col-md-3">'
- cTopo+= ' <select data-plugin-selectTwo class="form-control populate mb-md" name="VENFILTRO" id="VENFILTRO" '
- cTopo+= ' required="" aria-required="true">'
- cTopo+= ' <option value=" ">Todos</option>'
- cTopo+= u_fEqpSup(cVndFlt)
- cTopo+= ' </select>'
- cTopo+= ' </div>'
- Endif
-
- //cTopo+= '<div><br><br></div>'
- cTopo+= ' <div class="col-sm-2">'
- cTopo+= ' <button class="btn btn-primary" id="btFiltroD" value="" onclick="this.value= '+"'"+'Aguarde...'+"'"+';this.disabled= '+"'"+'disabled'+"'"+';Filtro()" name="btFiltro">'
- cTopo+= ' <i class="fa fa-refresh"></i> Atualizar</button>'
- cTopo+= ' </div>'
- cTopo+= ' </form>'
- cTopo+= ' </div>'
- cTopo+= '</div>'
-
- // Recupera as rotinas que possuem WidGet
- aWidGet := HttpSession->aWidGet
-
- // Rotina para montar os Widgets
- For nW := 1 To Len(aWidGet)
- // Verificar se a função do WidGet está compilado no PRO
- If ExistBlock(aWidGet[nW,3])
- // Executa a função do WidGet
- aParam := aWidGet[nW]
- lGravou := ExecBlock(aWidGet[nW,3],.F.,.F.,aParam)
- EndIf
- Next
-
- //cWidgets+= wgOrcamentos()
- //Total de Orçamentos
- cQry:= "With QRY AS ( "
- cQry+= "SELECT COUNT(*) QTD, 0 VALOR, 0 MC "
- cQry+= "From A0_BI_DESEMPENHO_OPERACIONAL "
- cQry+= "Where REVISAO = 'OR' "
- If HttpSession->Tipo = 'S' //Supervisor acessa informações da sua equipe
- If !Empty(cVndFlt)
- cQry+= " AND COD_VEND = '"+cVndFlt+"' "
- Else
- cQry+= " AND REGIAO = '"+HttpSession->Regional+"' "
- Endif
- Else
- cQry+= " AND COD_VEND = '"+cCodVend+"' "
- Endif
- cQry+= "AND EMISSAO between TO_DATE('"+cDataDe+"') and TO_DATE('"+cDataAte+"') "
-
- cQry+= "UNION ALL "
-
- cQry+= "Select 0 QTD, SUM(VALOR+IPI+ST) VALOR, SUM(VLR_MC) MC "
- cQry+= " From A0_BI_DESEMPENHO_OPERACIONAL "
- cQry+= "Where REVISAO = 'OR' "
- If HttpSession->Tipo = 'S' //Supervisor acessa informações da sua equipe
- If !Empty(cVndFlt)
- cQry+= " AND COD_VEND = '"+cVndFlt+"' "
- Else
- cQry+= " AND REGIAO = '"+HttpSession->Regional+"' "
- Endif
- Else
- cQry+= " AND COD_VEND = '"+cCodVend+"' "
- Endif
- cQry+= "AND EMISSAO between TO_DATE('"+cDataDe+"') and TO_DATE('"+cDataAte+"') "
- cQry+= ") "
- cQry+= "SELECT SUM(QTD) QTD, SUM(VALOR) VALOR, SUM(MC) MC FROM QRY "
-
- // cQry:= "With QRY AS ( "
- // cQry+= "SELECT COUNT(*) QTD, 0 VALOR, 0 MC "
- // cQry+= "From "+RetSqlName("SCJ")+" SCJ "
- // cQry+= "Where CJ_REVISAO = ' ' "
- // If HttpSession->Tipo = 'S' //Supervisor acessa informações da sua equipe
- // If !Empty(cVndFlt)
- // cQry+= " AND CJ_VEND = '"+cVndFlt+"' "
- // Else
- // cQry+= " AND CJ_REGIAO = "+HttpSession->Regional+" "
- // Endif
- // Else
- // cQry+= " AND CJ_VEND = '"+cCodVend+"' "
- // Endif
- // cQry+= "AND CJ_EMISSAO between '"+cDataDe+"' and '"+cDataAte+"' "
- // cQry+= "AND SCJ.D_E_L_E_T_ = ' ' "
-
- // cQry+= "UNION ALL "
-
- // cQry+= "Select 0 QTD, SUM(CK_VALOR)+SUM(CK_IPI)+SUM(CK_FRETE) VALOR, SUM(CK_MC) MC "
- // cQry+= " From "+RetSqlName("SCK")+" SCK "
- // cQry+= " INNER JOIN "+RetSqlName("SCJ")+" SCJ ON CJ_FILIAL = CK_FILIAL AND CJ_NUM = CK_NUM AND CJ_CLIENTE = CK_CLIENTE AND CJ_LOJA = CK_LOJA "
- // If HttpSession->Tipo = 'S' //Supervisor acessa informações da sua equipe
- // If !Empty(cVndFlt)
- // cQry+= " AND CJ_VEND = '"+cVndFlt+"' "
- // Else
- // cQry+= " AND CJ_REGIAO = '"+HttpSession->Regional+"' "
- // Endif
- // Else
- // cQry+= " AND CJ_VEND = '"+cCodVend+"' "
- // Endif
- // cQry+= " AND CJ_EMISSAO between '"+cDataDe+"' and '"+cDataAte+"' "
- // cQry+= " AND CJ_REVISAO = ' ' "
- // cQry+= " AND SCJ.D_E_L_E_T_ = ' ' "
- // cQry+= " Where SCK.D_E_L_E_T_ = ' ' "
- // cQry+= ") "
- // cQry+= "SELECT SUM(QTD) QTD, SUM(VALOR) VALOR, SUM(MC) MC FROM QRY "
-
- If Select("QTO") > 0
- QTO->(dbCloseArea())
- Endif
- APWExOpenQuery(cQry,'QTO',.T.)
- conout("query orçamentos: "+cqry)
- cWidgets += U_GetWdGet(1, {"fa fa-calculator", "R$ "+Transform(QTO->VALOR,"@E 999,999,999,999.99"), "Orçamentos", cvaltochar(QTO->QTD)+" orçamento"+Iif(QTO->QTD>1,"s","")})
- //Total de Orçamentos cancelados
- cQry:= "With QRY AS ( "
- cQry+= "SELECT COUNT(*) QTD, 0 VALOR "
- cQry+= "From "+RetSqlName("SCJ")+" SCJ "
- cQry+= "Where CJ_STATUS = 'C' "
- If HttpSession->Tipo = 'S' //Supervisor acessa informações da sua equipe
- If !Empty(cVndFlt)
- cQry+= " AND CJ_VEND = '"+cVndFlt+"' "
- Else
- cQry+= " AND CJ_REGIAO = "+HttpSession->Regional+" "
- Endif
- Else
- cQry+= " AND CJ_VEND = '"+cCodVend+"' "
- Endif
- cQry+= "AND CJ_DTCANC between '"+cDataDe+"' and '"+cDataAte+"' "
- cQry+= "AND CJ_CODPERD IN "+FormatIn(GetNewPar("PS_CODPER","500006,500007,500008,500010,500011,500012,500013,500014"),",")+" "
- cQry+= "AND SCJ.D_E_L_E_T_ = ' ' "
-
- cQry+= "UNION ALL "
-
- cQry+= "Select 0 QTD, SUM(CK_VALOR) VALOR "
- cQry+= " From "+RetSqlName("SCK")+" SCK "
- cQry+= " INNER JOIN "+RetSqlName("SCJ")+" SCJ ON CJ_FILIAL = CK_FILIAL AND CJ_NUM = CK_NUM AND CJ_CLIENTE = CK_CLIENTE AND CJ_LOJA = CK_LOJA "
- If HttpSession->Tipo = 'S' //Supervisor acessa informações da sua equipe
- If !Empty(cVndFlt)
- cQry+= " AND CJ_VEND = '"+cVndFlt+"' "
- Else
- cQry+= " AND CJ_REGIAO = '"+HttpSession->Regional+"' "
- Endif
- Else
- cQry+= " AND CJ_VEND = '"+cCodVend+"' "
- Endif
- cQry+= " AND CJ_STATUS = 'C' "
- cQry+= " AND CJ_DTCANC between '"+cDataDe+"' and '"+cDataAte+"' "
- cQry+= " AND CJ_CODPERD IN "+FormatIn(GetNewPar("PS_CODPER","500006,500007,500008,500010,500011,500012,500013,500014"),",")+" "
- cQry+= " AND SCJ.D_E_L_E_T_ = ' ' "
- cQry+= " Where SCK.D_E_L_E_T_ = ' ' "
- cQry+= ") "
- cQry+= "SELECT SUM(QTD) QTD, SUM(VALOR) VALOR FROM QRY "
-
- If Select("QTX") > 0
- QTX->(dbCloseArea())
- Endif
- APWExOpenQuery(cQry,'QTX',.T.)
- conout("query orçamentos cancelados: "+cqry)
- //Total de Orçamentos Efetivados
- cQry:= "With QRY AS ( "
- cQry+= "SELECT COUNT(*) QTD, 0 VALOR, 0 IPI, 0 MC "
- cQry+= "From "+RetSqlName("SC5")+" SC5 "
- cQry+= "INNER JOIN "+RetSqlName("SA1")+" SA1 ON A1_FILIAL = '"+xFilial("SA1")+"' AND A1_COD = C5_CLIENTE AND A1_LOJA = C5_LOJACLI AND A1_NOME NOT LIKE 'LUMICENTER%' AND SA1.D_E_L_E_T_ = ' ' "
- cQry+= "Where C5_FILIAL = '01' "
- cQry+= "AND C5_TIPOLUM IN ('1','2','3') " //1.VENDA, 2.VENDA ORDEM, 3.FATURAMENTO ANTECIPADO. -->1=VND;2=V.ORD;3=S.FAT;4=RM.VOR;5=REM.FAT;6=IND;7=SUC;8=CONSER;9=GARAN;A=TRANSF;O=OTR;B=AMOS;C=BON;D=V.CONS;E=R.CONS;M=ZFM
- cQry+= "AND C5_XREEMIS <> 'S' "
- If HttpSession->Tipo = 'S' //Supervisor acessa informações da sua equipe
- If !Empty(cVndFlt)
- cQry+= " AND C5_VEND2 = '"+cVndFlt+"' "
- Else
- cQry+= " AND C5_VEND1 = '"+HttpSession->Regional+"' "
- Endif
- Else
- cQry+= " AND C5_VEND2 = '"+cCodVend+"' "
- Endif
- cQry+= "AND C5_EMISSAO between '"+cDataDe+"' and '"+cDataAte+"' "
- cQry+= "AND EXISTS (SELECT C6_NUMORC FROM "+RetSqlName("SC6")+" SC6 WHERE C6_FILIAL = C5_FILIAL AND C6_NUM = C5_NUM "
- cQry+= " AND C6_CLI = C5_CLIENTE AND C6_LOJA = C5_LOJACLI AND C6_NUMORC <> ' ' AND SC6.D_E_L_E_T_ = ' ') "
- cQry+= "AND SC5.D_E_L_E_T_ = ' ' "
-
- cQry+= "UNION ALL "
-
- cQry+= "Select 0 QTD, SUM(C6_VALOR) VALOR, SUM(C6_IPI) IPI, SUM(C6_MC) "
- cQry+= "From "+RetSqlName("SC5")+" SC5 "
- cQry+= "INNER JOIN "+RetSqlName("SC6")+" SC6 ON C6_FILIAL = C5_FILIAL AND C6_NUM = C5_NUM AND C6_CLI = C5_CLIENTE AND C6_LOJA = C5_LOJACLI AND C6_NUMORC <> ' 'AND SC6.D_E_L_E_T_ = ' ' "
- cQry+= "INNER JOIN "+RetSqlName("SA1")+" SA1 ON A1_FILIAL = '"+xFilial("SA1")+"' AND A1_COD = C5_CLIENTE AND A1_LOJA = C5_LOJACLI AND A1_NOME NOT LIKE 'LUMICENTER%' AND SA1.D_E_L_E_T_ = ' ' "
- cQry+= "Where C5_FILIAL = '01' "
- cQry+= "AND C5_TIPOLUM IN ('1','2','3') " //1.VENDA, 2.VENDA ORDEM, 3.FATURAMENTO ANTECIPADO. -->1=VND;2=V.ORD;3=S.FAT;4=RM.VOR;5=REM.FAT;6=IND;7=SUC;8=CONSER;9=GARAN;A=TRANSF;O=OTR;B=AMOS;C=BON;D=V.CONS;E=R.CONS;M=ZFM
- cQry+= "AND C5_XREEMIS <> 'S' "
- If HttpSession->Tipo = 'S' //Supervisor acessa informações da sua equipe
- If !Empty(cVndFlt)
- cQry+= " AND C5_VEND2 = '"+cVndFlt+"' "
- Else
- cQry+= " AND C5_VEND1 = '"+HttpSession->Regional+"' "
- Endif
- Else
- cQry+= " AND C5_VEND2 = '"+cCodVend+"' "
- Endif
- cQry+= "AND C5_EMISSAO between '"+cDataDe+"' and '"+cDataAte+"' "
- cQry+= "AND SC5.D_E_L_E_T_ = ' ' "
- cQry+= ") "
- cQry+= "SELECT SUM(QTD) QTD, SUM(VALOR) VALOR, SUM(IPI) IPI, SUM(MC) MC FROM QRY "
-
- If Select("QTE") > 0
- QTE->(dbCloseArea())
- Endif
- APWExOpenQuery(cQry,'QTE',.T.)
- conout("query orçamentos efetivados: "+cqry)
-
- //Total de Pedidos
- cQry:= "With QRY AS ( "
- cQry+= "SELECT COUNT(*) QTD, 0 VALOR, 0 IPI, 0 ST, 0 FRETE, 0 MC "
- cQry+= "From "+RetSqlName("SC5")+" SC5 "
- //cQry+= "INNER JOIN "+RetSqlName("SC6")+" SC6 ON C6_FILIAL = C5_FILIAL AND C6_NUM = C5_NUM AND C6_CLI = C5_CLIENTE AND C6_LOJA = C5_LOJACLI AND SC6.D_E_L_E_T_ = ' ' "
- cQry+= "INNER JOIN "+RetSqlName("SA1")+" SA1 ON A1_FILIAL = '"+xFilial("SA1")+"' AND A1_COD = C5_CLIENTE AND A1_LOJA = C5_LOJACLI AND A1_NOME NOT LIKE 'LUMICENTER%' AND SA1.D_E_L_E_T_ = ' ' "
- cQry+= "Where C5_FILIAL = '01' "
- cQry+= "AND C5_TIPOLUM IN ('1','2','3') " //1.VENDA, 2.VENDA ORDEM, 3.FATURAMENTO ANTECIPADO. -->1=VND;2=V.ORD;3=S.FAT;4=RM.VOR;5=REM.FAT;6=IND;7=SUC;8=CONSER;9=GARAN;A=TRANSF;O=OTR;B=AMOS;C=BON;D=V.CONS;E=R.CONS;M=ZFM
- cQry+= "AND C5_XREEMIS <> 'S' "
- If HttpSession->Tipo = 'S' //Supervisor acessa informações da sua equipe
- If !Empty(cVndFlt)
- cQry+= " AND C5_VEND2 = '"+cVndFlt+"' "
- Else
- cQry+= " AND C5_VEND1 = '"+HttpSession->Regional+"' "
- Endif
- Else
- cQry+= " AND C5_VEND2 = '"+cCodVend+"' "
- Endif
- cQry+= "AND C5_EMISSAO between '"+cDataDe+"' and '"+cDataAte+"' "
- cQry+= "AND SC5.D_E_L_E_T_ = ' ' "
- /*
- cQry+= "AND NOT EXISTS ( SELECT C6_PRODUTO FROM "+RetSqlName("SC6")+" SC6 "
- cQry+= " INNER JOIN "+RetSqlName("SB1")+" SB1 ON B1_FILIAL = '"+xFilial("SB1")+"' AND B1_COD = C6_PRODUTO AND B1_GRUPO NOT IN "+FormatIn(GetNewPar("PS_GRPNMC","PAN"),",")+" AND SB1.D_E_L_E_T_ = ' ' "
- cQry+= " WHERE C6_FILIAL = C5_FILIAL AND C6_NUM = C5_NUM AND C6_CLI = C5_CLIENTE AND C6_LOJA = C5_LOJACLI AND SC6.D_E_L_E_T_ = ' ' ) "
- */
- cQry+= "AND SC5.D_E_L_E_T_ = ' ' "
-
- cQry+= "UNION ALL "
-
- cQry+= "Select 0 QTD, SUM(C6_VALOR) VALOR, SUM(C6_IPI) IPI, SUM(C6_ST) ST, SUM(C5_FRETE) FRETE, SUM(C6_MC) "
- cQry+= "From "+RetSqlName("SC5")+" SC5 "
- cQry+= "INNER JOIN "+RetSqlName("SC6")+" SC6 ON C6_FILIAL = C5_FILIAL AND C6_NUM = C5_NUM AND C6_CLI = C5_CLIENTE AND C6_LOJA = C5_LOJACLI AND SC6.D_E_L_E_T_ = ' ' "
- cQry+= "INNER JOIN "+RetSqlName("SB1")+" SB1 ON B1_FILIAL = '"+xFilial("SB1")+"' AND B1_COD = C6_PRODUTO AND B1_GRUPO NOT IN "+FormatIn(GetNewPar("PS_GRPNMC","PAN"),",")+" AND SB1.D_E_L_E_T_ = ' ' "
- cQry+= "INNER JOIN "+RetSqlName("SA1")+" SA1 ON A1_FILIAL = '"+xFilial("SA1")+"' AND A1_COD = C5_CLIENTE AND A1_LOJA = C5_LOJACLI AND A1_NOME NOT LIKE 'LUMICENTER%' AND SA1.D_E_L_E_T_ = ' ' "
- cQry+= "Where C5_FILIAL = '01' "
- cQry+= "AND C5_TIPOLUM IN ('1','2','3') " //1.VENDA, 2.VENDA ORDEM, 3.FATURAMENTO ANTECIPADO. -->1=VND;2=V.ORD;3=S.FAT;4=RM.VOR;5=REM.FAT;6=IND;7=SUC;8=CONSER;9=GARAN;A=TRANSF;O=OTR;B=AMOS;C=BON;D=V.CONS;E=R.CONS;M=ZFM
- cQry+= "AND C5_XREEMIS <> 'S' "
- If HttpSession->Tipo = 'S' //Supervisor acessa informações da sua equipe
- If !Empty(cVndFlt)
- cQry+= " AND C5_VEND2 = '"+cVndFlt+"' "
- Else
- cQry+= " AND C5_VEND1 = '"+HttpSession->Regional+"' "
- Endif
- Else
- cQry+= " AND C5_VEND2 = '"+cCodVend+"' "
- Endif
- cQry+= "AND C5_EMISSAO between '"+cDataDe+"' and '"+cDataAte+"' "
- cQry+= "AND SC5.D_E_L_E_T_ = ' ' "
- cQry+= ") "
- cQry+= "SELECT SUM(QTD) QTD, SUM(VALOR) VALOR, SUM(IPI) IPI, SUM(ST) ST, SUM(FRETE) FRETE, SUM(MC) MC FROM QRY "
-
- If Select("QTP") > 0
- QTP->(dbCloseArea())
- Endif
- APWExOpenQuery(cQry,'QTP',.T.)
- conout("query pedidos: "+cqry)
- //Venda por segmento
- //Orçamentos efetivados no período
- cQry:= "With QRY AS ( "
- cQry+= "SELECT COUNT(*) QTD, 0 VALOR, CJ_SEGMENT "
- cQry+= "From "+RetSqlName("SC5")+" SC5 "
- cQry+= "INNER JOIN "+RetSqlName("SC6")+" SC6 ON C6_FILIAL = C5_FILIAL AND C6_NUM = C5_NUM AND C6_CLI = C5_CLIENTE AND C6_LOJA = C5_LOJACLI AND C6_NUMORC <> ' ' AND C6_ITEM = '01' AND SC6.D_E_L_E_T_ = ' ' "
- cQry+= "INNER JOIN "+RetSqlName("SCJ")+" SCJ ON CJ_NUM = SUBSTR(C6_NUMORC,1,6) AND SCJ.D_E_L_E_T_ = ' ' "
- cQry+= "INNER JOIN "+RetSqlName("SA1")+" SA1 ON A1_FILIAL = '"+xFilial("SA1")+"' AND A1_COD = C5_CLIENTE AND A1_LOJA = C5_LOJACLI AND A1_NOME NOT LIKE 'LUMICENTER%' AND SA1.D_E_L_E_T_ = ' ' "
- cQry+= "Where C5_FILIAL = '01'"
- cQry+= " AND C5_TIPOLUM IN ('1','2','3')" //1.VENDA, 2.VENDA ORDEM, 3.FATURAMENTO ANTECIPADO. -->1=VND;2=V.ORD;3=S.FAT;4=RM.VOR;5=REM.FAT;6=IND;7=SUC;8=CONSER;9=GARAN;A=TRANSF;O=OTR;B=AMOS;C=BON;D=V.CONS;E=R.CONS;M=ZFM
- cQry+= " AND C5_XREEMIS <> 'S' "
- cQry+= " AND C5_EMISSAO between '"+cDataDe+"' and '"+cDataAte+"' AND SC5.D_E_L_E_T_ = ' ' "
- If HttpSession->Tipo = 'S' //Supervisor acessa informações da sua equipe
- If !Empty(cVndFlt)
- cQry+= " AND C5_VEND2 = '"+cVndFlt+"' "
- Else
- cQry+= " AND C5_VEND1 = '"+HttpSession->Regional+"' "
- Endif
- Else
- cQry+= " AND C5_VEND2 = '"+cCodVend+"' "
- Endif
- cQry+= "GROUP BY CJ_SEGMENT "
- cQry+= "UNION ALL "
- cQry+= "Select 0 QTD, SUM(C6_VALOR)+SUM(C6_IPI)+SUM(C6_ST)+C5_FRETE VALOR, CJ_SEGMENT "
- cQry+= "From "+RetSqlName("SC5")+" SC5 "
- cQry+= "INNER JOIN "+RetSqlName("SC6")+" SC6 ON C6_FILIAL = C5_FILIAL AND C6_NUM = C5_NUM AND C6_CLI = C5_CLIENTE AND C6_LOJA = C5_LOJACLI AND C6_NUMORC <> ' ' AND SC6.D_E_L_E_T_ = ' ' "
- cQry+= "INNER JOIN "+RetSqlName("SCJ")+" SCJ ON CJ_NUM = SUBSTR(C6_NUMORC,1,6) AND SCJ.D_E_L_E_T_ = ' ' "
- cQry+= "INNER JOIN "+RetSqlName("SA1")+" SA1 ON A1_FILIAL = '"+xFilial("SA1")+"' AND A1_COD = C5_CLIENTE AND A1_LOJA = C5_LOJACLI AND A1_NOME NOT LIKE 'LUMICENTER%' AND SA1.D_E_L_E_T_ = ' ' "
- cQry+= "Where C5_FILIAL = '01' "
- cQry+= " AND C5_EMISSAO between '"+cDataDe+"' and '"+cDataAte+"' AND SC5.D_E_L_E_T_ = ' ' "
- If HttpSession->Tipo = 'S' //Supervisor acessa informações da sua equipe
- If !Empty(cVndFlt)
- cQry+= " AND C5_VEND2 = '"+cVndFlt+"' "
- Else
- cQry+= " AND C5_VEND1 = '"+HttpSession->Regional+"' "
- Endif
- Else
- cQry+= " AND C5_VEND2 = '"+cCodVend+"' "
- Endif
- cQry+= "GROUP BY CJ_SEGMENT, C5_FRETE "
- cQry+= ") SELECT CJ_SEGMENT, SUM(QTD) QTD, SUM(VALOR) VALOR FROM QRY "
- cQry+= "GROUP BY CJ_SEGMENT "
- If Select("QVS") > 0
- QVS->(dbCloseArea())
- Endif
- CONOUT("VENDA POR SEGMENTO "+cQry)
- APWExOpenQuery(cQry,'QVS',.T.)
-
- //Total de pedidos
- While QVS->(!EOF())
- nTotValor+= QVS->VALOR
- nTotQtd+= QVS->QTD
- QVS->(dbSkip())
- End
- cWidgets += U_GetWdGet(1, {"fa fa-dashboard", "R$ "+Transform(nTotValor,"@E 999,999,999,999.99"), "Pedidos", cvaltochar(nTotQtd)+" pedido"+Iif(nTotQtd>1,"s","")})
- //cWidgets += U_GetWdGet(1, {"fa fa-dashboard", "R$ "+Transform(QTP->VALOR+QTP->IPI+QTP->ST,"@E 999,999,999,999.99"), "Pedidos", cvaltochar(QTP->QTD)+" pedido"+Iif(QTP->QTD>1,"s","")})
- //Total Homologações
- cQry:= "SELECT COUNT(*) QTD "
- cQry+= "FROM "+RetSqlName("AD1")+" AD1 "
- cQry+= "WHERE AD1_FILIAL ='"+xFilial("AD1")+"' "//AD1_DATA between '"+cDataDe+"' and '"+cDataAte+"' "
- cQry+= "AND AD1_HOMOLO = '3' " //Status homologação = homologado
- If HttpSession->Tipo = 'S' //Supervisor acessa informações da sua equipe
- If !Empty(cVndFlt)
- cQry+= " AND AD1_VEND = '"+cVndFlt+"' "
- Else
- cQry+= " AND AD1_REGION = '"+HttpSession->Regional+"' "
- Endif
- Else
- cQry+= " AND AD1_VEND = '"+cCodVend+"' "
- Endif
- cQry+= "AND AD1.D_E_L_E_T_ = ' ' "
- If Select("QTH") > 0
- QTH->(dbCloseArea())
- Endif
- APWExOpenQuery(cQry,'QTH',.T.)
- conout("query homologações: "+cqry)
- cWidgets += U_GetWdGet(1, {"fa fa-handshake-o", CVALTOCHAR(QTH->QTD), "Total Homologações", ""})
- //Total clientes
- If HttpSession->Tipo <> 'S'
- cQry:= "SELECT COUNT(*) QTD "
- cQry+= "FROM "+RetSqlName("SA1")+" SA1 "
- cQry+= "WHERE A1_MSBLQL <> '1' "
- cQry+= "AND A1_VEND = '"+cCodVend+"' "
- cQry+= "AND SA1.D_E_L_E_T_ = ' ' "
- If Select("QTC") > 0
- QTC->(dbCloseArea())
- Endif
- APWExOpenQuery(cQry,'QTC',.T.)
- conout("query clientes: "+cqry)
- cWidgets += U_GetWdGet(1, {"fa fa-users", CVALTOCHAR(QTC->QTD), "Total de Clientes",""})
- Endif
- //Margem de Contribuição
- //soma da Margem de Contribuição / soma do valor total dos pedidos sem IPI
- nMargem:= Round((QTP->MC /QTP->VALOR) * 100,2)
- //nMargem:= Round((QTP->MC /(QTP->VALOR-QTP->IPI)) * 100,2)
- cWidgets += U_GetWdGet(1, {"fa fa-percent", cvaltochar(nMargem)+"%", "Margem Contribuição", ""})
- //Taxa de conversão
- //orçamentos efetivados / (orçamentos cancelados + orçamento efetivados)
- nValConv:= Round(((QTE->VALOR+QTE->IPI) / (QTX->VALOR+QTE->VALOR+QTE->IPI)) * 100,2)
- CONOUT("QTE->VALOR "+CVALTOCHAR(QTE->VALOR+QTE->IPI))
- CONOUT("QTX->VALOR "+CVALTOCHAR(QTX->VALOR))
- CONOUT("SOMA "+CVALTOCHAR((QTX->VALOR+QTE->VALOR+QTE->IPI)))
- nNumConv:= Round((QTE->QTD / (QTX->QTD+QTE->QTD))*100,2)
- cWidgets += U_GetWdGet(1, {"fa fa-refresh", "Qtd: "+cvaltochar(nNumConv)+"%", "Taxa de Conversão", "Valor: "+cvaltochar(nValConv)+"%"})
- If HttpSession->Tipo <> "R" //Representante
- //Variáveis para o quadro de meta do vendedor
- cQry:= "Select SUM(CT_VALOR) VALOR "
- cQry+= " From "+RetSqlName("SCT")+" SCT "
- cQry+= " Where CT_DATA between '"+Left(cDataDe,6)+'01'+"' and '"+Left(cDataAte,6)+'01'+"' "
-
- If HttpSession->Tipo = 'S' //Supervisor acessa informações da sua equipe
- If !Empty(cVndFlt)
- cQry+= " AND CT_VEND = '"+cVndFlt+"' "
- Else
- cQry+= " AND CT_VEND = "+HttpSession->Regional+" "
- Endif
- Else
- cQry+= " and CT_VEND = '"+cCodVend+"' "
- Endif
- cQry+= " And SCT.D_E_L_E_T_ = ' ' "
- If Select("QRM") > 0
- QRM->(dbCloseArea())
- Endif
- APWExOpenQuery(cQry,'QRM',.T.)
- nMeta:= QRM->VALOR
- cVlrAtingido:= Transform(QTO->VALOR,PesqPict("SCT","CT_VALOR"))
- cAtingido:= cValtoChar(Int((QTO->VALOR/nMeta) * 100)) //+ "%"
- cFalta:= cValtoChar(Iif(100 - val(cAtingido) < 0,0,100 - val(cAtingido))) //+"%"
- cMeta:= Transform(nMeta,PesqPict("SCT","CT_VALOR"))
-
- cWidMeta:='<div class="col-lg-4 text-center panel-body ">'
- cWidMeta+=' <h2 class="panel-title">Meta de Venda</h2>'
- cWidMeta+=' <h2 class="panel-title mt-sm">R$ '+cMeta+'</h2>'
- cWidMeta+=' <div class="liquid-meter-wrapper liquid-meter-sm mt-sm">'
- cWidMeta+=' <div class="liquid-meter">'
- cWidMeta+=' <meter min="0" max="100" value="'+cAtingido+'" id="meterSales"></meter>'
- cWidMeta+=' </div>'
- cWidMeta+=' <div class="liquid-meter-selector" id="meterSalesSel">'
- cWidMeta+=' <a href="#" data-val="'+cAtingido+'" class="active">Atingido</a>'
- cWidMeta+=' <a href="#" data-val="'+cFalta+'">Falta</a>'
- cWidMeta+=' </div>'
- cWidMeta+=' </div>'
- cWidMeta+='</div>'
- Endif
- // Produtos mais vendidos
- cQry:= "WITH QRY AS ( "
- cQry+= "Select C6_PRODUTO, C6_DESCRI, SUM(C6_QTDVEN) AS QTD, SUM(C6_VALOR)+SUM(C6_IPI)+SUM(C6_ST) VALOR " //+C5_FRETE
- cQry+= "From "+RetSqlName("SC6")+" SC6 "
- cQry+= "Inner Join "+RetSqlName("SC5")+" SC5 ON C5_FILIAL = C6_FILIAL AND C5_NUM = C6_NUM "
- cQry+= " AND C5_FILIAL = '01' "
- cQry+= " AND C5_TIPOLUM IN ('1','2','3') " //1.VENDA, 2.VENDA ORDEM, 3.FATURAMENTO ANTECIPADO. -->1=VND;2=V.ORD;3=S.FAT;4=RM.VOR;5=REM.FAT;6=IND;7=SUC;8=CONSER;9=GARAN;A=TRANSF;O=OTR;B=AMOS;C=BON;D=V.CONS;E=R.CONS;M=ZFM
- cQry+= " AND C5_EMISSAO between '"+cDataDe+"' and '"+cDataAte+"' AND C5_XREEMIS <> 'S' And SC5.D_E_L_E_T_ = ' ' "
- If HttpSession->Tipo = 'S' //Supervisor acessa informações da sua equipe
- If !Empty(cVndFlt)
- cQry+= " AND C5_VEND2 = '"+cVndFlt+"' "
- Else
- cQry+= " AND C5_VEND1 = '"+HttpSession->Regional+"' "
- Endif
- Else
- cQry+= " AND C5_VEND2 = '"+cCodVend+"' "
- Endif
- cQry+= "INNER JOIN "+RetSqlName("SB1")+" SB1 ON B1_FILIAL = '"+xFilial("SB1")+"' AND B1_COD = C6_PRODUTO AND B1_TIPO IN "+FormatIn(GetNewPar("PS_TPMAISV","PA"),",")+" AND SB1.D_E_L_E_T_ = ' ' "
- cQry+= "INNER JOIN "+RetSqlName("SA1")+" SA1 ON A1_FILIAL = '"+xFilial("SA1")+"' AND A1_COD = C5_CLIENTE AND A1_LOJA = C5_LOJACLI AND A1_NOME NOT LIKE 'LUMICENTER%' AND SA1.D_E_L_E_T_ = ' ' "
- cQry+= " Where SC6.D_E_L_E_T_ = ' ' "
- cQry+= "Group by C6_PRODUTO, C6_DESCRI, C5_FRETE "
- cQry+= "Order by SUM(C6_QTDVEN) DESC "
- cQry+= "Fetch first 10 rows only "
- cQry+= "), "
- cQry+= "QRY2 AS ( "
-
- cQry+= "Select C6_NUM, C6_PRODUTO, 1 AS QTDPED "
- cQry+= "From "+RetSqlName("SC6")+" SC6 "
- cQry+= "Inner Join "+RetSqlName("SC5")+" SC5 ON C5_FILIAL = C6_FILIAL AND C5_NUM = C6_NUM "
- cQry+= " AND C5_FILIAL = '01' "
- cQry+= " AND C5_TIPOLUM IN ('1','2','3') " //1.VENDA, 2.VENDA ORDEM, 3.FATURAMENTO ANTECIPADO. -->1=VND;2=V.ORD;3=S.FAT;4=RM.VOR;5=REM.FAT;6=IND;7=SUC;8=CONSER;9=GARAN;A=TRANSF;O=OTR;B=AMOS;C=BON;D=V.CONS;E=R.CONS;M=ZFM
- cQry+= " AND C5_EMISSAO between '"+cDataDe+"' and '"+cDataAte+"' AND C5_XREEMIS <> 'S' And SC5.D_E_L_E_T_ = ' ' "
- If HttpSession->Tipo = 'S' //Supervisor acessa informações da sua equipe
- If !Empty(cVndFlt)
- cQry+= " AND C5_VEND2 = '"+cVndFlt+"' "
- Else
- cQry+= " AND C5_VEND1 = '"+HttpSession->Regional+"' "
- Endif
- Else
- cQry+= " AND C5_VEND2 = '"+cCodVend+"' "
- Endif
- cQry+= "INNER JOIN "+RetSqlName("SB1")+" SB1 ON B1_FILIAL = '"+xFilial("SB1")+"' AND B1_COD = C6_PRODUTO AND B1_TIPO IN "+FormatIn(GetNewPar("PS_TPMAISV","PA"),",")+" AND SB1.D_E_L_E_T_ = ' ' "
- cQry+= "INNER JOIN "+RetSqlName("SA1")+" SA1 ON A1_FILIAL = '"+xFilial("SA1")+"' AND A1_COD = C5_CLIENTE AND A1_LOJA = C5_LOJACLI AND A1_NOME NOT LIKE 'LUMICENTER%' AND SA1.D_E_L_E_T_ = ' ' "
- cQry+= " Where SC6.D_E_L_E_T_ = ' ' "
- cQry+= "Group by C6_NUM, C6_PRODUTO "
- cQry+= ") "
- cQry+= "SELECT QRY.*, SUM(QRY2.QTDPED) QTDPED FROM QRY, QRY2 "
- cQry+= "WHERE QRY.C6_PRODUTO = QRY2.C6_PRODUTO "
- cQry+= "GROUP BY QRY.C6_PRODUTO, QRY.C6_DESCRI, QTD, VALOR "
- cQry+= "ORDER BY QTD DESC "
-
- If Select("QTV") > 0
- QTV->(dbCloseArea())
- Endif
- APWExOpenQuery(cQry,'QTV',.T.)
- conout("query produtos mais vendidos: "+cqry)
-
- While QTV->(!Eof())
- cMVendas+= '<li>'
- cMVendas+= ' <figure class="image rounded">'
- cMVendas+= ' <span class="badge">'+cvaltochar(nItem++)+'</span>'
- //cMVendas+= ' <img src="/images/prod.jpg" alt="" class="img-circle">'
- cMVendas+= ' </figure>'
- cMVendas+= ' <div class="profile-info">'
- cMVendas+= ' <span class="title">'+QTV->C6_DESCRI+'</span>'
- cMVendas+= ' <span class="message truncate">'+cvaltochar(QTV->QTD)+Iif(QTV->QTD > 1,' unidades vendidas',' unidade vendida')+", "+cvaltochar(QTV->QTDPED)+Iif(QTV->QTDPED > 1,' pedidos',' pedido')+', valor R$'+Alltrim(Transform(QTV->VALOR,"@E 999,999,999,999.99"))+'</span>'
- cMVendas+= ' </div>'
- cMVendas+= '</li>'
- QTV->(dbSkip())
- End
-
-
- //Venda por segmento
- QVS->(dbGotop())
- nTotValor:= 0
- nTotQtd:= 0
- If QVS->(!Eof())
- While QVS->(!Eof())
- Do Case
- Case QVS->CJ_SEGMENT = "SUPERMERCADO"
- cIconeSeg:= "shopping-cart"
- Case QVS->CJ_SEGMENT = "INDUSTRIA"
- cIconeSeg:= "industry"
- Case QVS->CJ_SEGMENT = "REVENDA"
- cIconeSeg:= "shopping-basket"
- Case QVS->CJ_SEGMENT = "VAREJO/FRANQUIA"
- cIconeSeg:= "hospital-o"
- Case QVS->CJ_SEGMENT = "REDE/FRANQUIA"
- cIconeSeg:= "hospital-o"
- Case QVS->CJ_SEGMENT = "GERENCIADORA"
- cIconeSeg:= "bank"
- Case QVS->CJ_SEGMENT = "OUTROS"
- cIconeSeg:= "suitcase"
- Otherwise
- cIconeSeg:= "building-o"
- EndCase
- cVSegmto+= '<li>'
- cVSegmto+= ' <div>'
- cVSegmto+= ' <span class="title"><i class="fa fa-'+cIconeSeg+'"></i> '+QVS->CJ_SEGMENT+'</span>'
- cVSegmto+= ' <div class="text-primary text-right">'
- cVSegmto+= ' <span>R$ '+TRANSFORM(QVS->VALOR,"@E 999,999,999,999.99")+'</span>'
- cVSegmto+= ' </div>'
- cVSegmto+= ' <div class="message truncate text-right">'
- cVSegmto+= ' <span class="message truncate">'+cvaltochar(QVS->QTD)+Iif(QVS->QTD > 1,' pedidos',' pedido')+'</span>'
- cVSegmto+= ' </div>'
- cVSegmto+= ' </div>'
- cVSegmto+= '</li>'
- nTotValor+= QVS->VALOR
- nTotQtd+= QVS->QTD
- QVS->(dbSkip())
- End
- cVSegmto+= '<li>'
- cVSegmto+= ' <div>'
- cVSegmto+= ' <hr class="solid short mt-3">'
- cVSegmto+= ' <span class="title text-primary-bold text-weight-bold"><i class="fa fa-"></i>TOTAL</span>'
- cVSegmto+= ' <div class="text-primary text-right">'
- cVSegmto+= ' <span>R$ '+Alltrim(Transform(nTotValor,"@E 999,999,999,999,999.99"))+'</span>'
- cVSegmto+= ' </div>'
- cVSegmto+= ' <div class="message truncate text-right">'
- cVSegmto+= ' <span class="message truncate">'+cvaltochar(nTotQtd)+Iif(nTotQtd > 1,' pedidos','pedido')+'</span>'
- cVSegmto+= ' </div>'
- cVSegmto+= ' </div>'
- cVSegmto+= '</li>'
- Endif
- //Retorna o HTML para construção da página
- cHtml := H_SMSPortal()
-
- Web Extended End
- Return (cHTML)
- /*__________________________________________________________________________
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦Funçäo ¦ VerSessao ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 27.04.18 ¦¦¦
- ¦¦+----------+------------------------------------------------------------¦¦¦
- ¦¦¦Descriçäo ¦ Verifica se a sessão está ativa ¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
- */
- User Function VerSessao()
- Local cHtml:= "ok"
- Web Extended Init cHtml
- If Valtype(HttpSession->CodVend) <> "C"
- cHtml:= "nok"
- Endif
- Web Extended end
- Return cHtml
- /*__________________________________________________________________________
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦Funçäo ¦ WidGetPC ¦ Autor ¦ Anderson Zelenski ¦ Data ¦14.08.17 ¦¦¦
- ¦¦+----------+------------------------------------------------------------¦¦¦
- ¦¦¦Descriçäo ¦ PE para gerar o WidGet de Pedido de Compra para o Portal ¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
- User Function GetWdGet(nTipo, aParWid)
- Local cWidget := ""
- If nTipo == 1
- cWidget += '<div class="col-md-12 col-lg-6 col-xl-6">'
- cWidget += '<section class="panel panel-featured-left panel-featured-primary">'
- cWidget += '<div class="panel-body">'
- cWidget += '<div class="widget-summary">'
- cWidget += '<div class="widget-summary-col widget-summary-col-icon">'
- cWidget += '<div class="summary-icon bg-primary">'
- cWidget += '<i class="'+aParWid[1]+'"></i>'
- cWidget += '</div>'
- cWidget += '</div>'
- cWidget += '<div class="widget-summary-col">'
- cWidget += '<div class="summary">'
- cWidget += '<h4 class="title">'+aParWid[3]+'</h4>'
- cWidget += '<div class="info">'
- cWidget += '<strong class="amount" style="font-size: larger">'+aParWid[2]+'</strong>'
- cWidget += '<br>'
- cWidget += '<span class="text-primary">'+aParWid[4]+'</span>'
- cWidget += '</div>'
- cWidget += '</div>'
- /*
- cWidget += '<div class="summary-footer">'
- cWidget += '<a href="'+aParWid[5]+'" class="text-muted text-uppercase">(Visualizar)</a>'
- cWidget += '</div>'
- */
- cWidget += '</div>'
- cWidget += '</div>'
- cWidget += '</div>'
- cWidget += '</section>'
- cWidget += '</div>'
- EndIf
- Return cWidGet
- /*__________________________________________________________________________
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦Funçäo ¦ NoAcMI ¦ Autor ¦ Anderson Zelenski ¦ Data ¦23.08.17 ¦¦¦
- ¦¦+----------+------------------------------------------------------------¦¦¦
- ¦¦¦Descriçäo ¦ Função para tratar caracteres acentuados ¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
- User Function NoAcMI(cString)
- Local cChar := ""
- Local nX := 0
- Local nY := 0
- Local cVogal := "aeiouAEIOU"
- Local cAgudo := "áéíóú"+"ÁÉÍÓÚ"
- Local cCircu := "âêîôû"+"ÂÊÎÔÛ"
- Local cTrema := "äëïöü"+"ÄËÏÖÜ"
- Local cCrase := "àèìòù"+"ÀÈÌÒÙ"
- Local cTio := "ãõ"
- Local cCecid := "çÇ"
- Local cMaior := "<"
- Local cMenor := ">"
- For nX:= 1 To Len(cString)
- cChar:=SubStr(cString, nX, 1)
- IF cChar$cAgudo+cCircu+cTrema+cCecid+cTio+cCrase
- nY:= At(cChar,cAgudo)
- If nY > 0
- cString := StrTran(cString,cChar,SubStr(cVogal,nY,1))
- EndIf
- nY:= At(cChar,cCircu)
- If nY > 0
- cString := StrTran(cString,cChar,SubStr(cVogal,nY,1))
- EndIf
- nY:= At(cChar,cTrema)
- If nY > 0
- cString := StrTran(cString,cChar,SubStr(cVogal,nY,1))
- EndIf
- nY:= At(cChar,cCrase)
- If nY > 0
- cString := StrTran(cString,cChar,SubStr(cVogal,nY,1))
- EndIf
- nY:= At(cChar,cTio)
- If nY > 0
- cString := StrTran(cString,cChar,SubStr("ao",nY,1))
- EndIf
- nY:= At(cChar,cCecid)
- If nY > 0
- cString := StrTran(cString,cChar,SubStr("cC",nY,1))
- EndIf
- Endif
- Next
- If cMaior$ cString
- cString := strTran( cString, cMaior, "" )
- EndIf
- If cMenor$ cString
- cString := strTran( cString, cMenor, "" )
- EndIf
- For nX:=1 To Len(cString)
- cChar:=SubStr(cString, nX, 1)
- If Asc(cChar) < 32 .Or. Asc(cChar) > 123
- cString:=StrTran(cString,cChar,".")
- Endif
- Next nX
- Return cString
-
- /*__________________________________________________________________________
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¦¦+---------------------------- ------------------------------------------+¦¦
- ¦¦¦Funçäo ¦ fEqpSup ¦ Autor ¦ Lucilene Mendes ¦ Data ¦03.11.22 ¦¦¦
- ¦¦+----------+------------------------------------------------------------¦¦¦
- ¦¦¦Descriçäo ¦ Retorna as opções do select com a equipe do supervisor ¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
- User Function fEqpSup(cVendFiltro)
- Local i:= 0
- Local cRet:= ""
- Local cVend:= ""
- Local aEquipe:= Separa(HttpSession->Equipe,"|")
-
- For i:= 1 to Len(aEquipe)
- cVend:= Upper(Posicione("SA3",1,xFilial("SA3")+aEquipe[i],"A3_NOME"))
- cRet+= ' <option value="'+Alltrim(aEquipe[i])+'" '+Iif(Alltrim(aEquipe[i])= cVendFiltro,' selected ','')+'>'+Alltrim(aEquipe[i])+" - "+cVend+'</option>'
- Next
- Return cRet
|