#include "PROTHEUS.CH" #include "RWMAKE.CH" #include "APWEBEX.CH" #include "TOPCONN.CH" #include "TBICONN.CH" #DEFINE SMSDEBUG /*__________________________________________________________________________ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¦¦+-----------------------------------------------------------------------+¦¦ ¦¦¦Funçäo ¦ AddOrc ¦ Autor ¦ Lucilene Mendes ¦ Data ¦28.08.17 ¦¦¦ ¦¦+----------+------------------------------------------------------------¦¦¦ ¦¦¦Descriçäo ¦ Inclusão de Orçamento de Venda. ¦¦¦ ¦¦+-----------------------------------------------------------------------+¦¦ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ */ User Function AddPed() Local cHtml Local cItem := "" Local cCondNot := "" Local nLin := 0 Local f := 0 Local lMoeda := .F. Local lNumber := .F. Local aTpFrete := {} Private cFilVen := "" Private cCodLogin := "" Private cVendLogin := "" Private cVendedor := "" Private cSite := "u_PortalLogin.apw" Private cPagina := "Pedido de Venda" Private cTitle := "Portal SMS" Private cMenus := "" Private cAnexos := "" Private cDirOrc := "\anexosPortal\orcamentos\" Private cDirPortal := "" Private cEndServ := "" // Endereço do servidor da pagina de Portal Private cOrcCabec := "" Private cOrcItens := "" Private cItensHid := "" Private cBotoes := "" Private cBtnItens := "" Private cOptProd := "" Private cOptCond := "" Private cOptCli := "" Private cOptUF := "" Private cOptMun := "" Private cTblDesc := "" Private cUsuEmiss := "" Private cNumOp := "" Private cNumOrc := "" Private cFilOrc := "" Private cRetorno := "" Private cSegmento := "" Private cProsp := "" Private cProspPor := "" Private cPFrete := "" Private cFilPed := "" Private cCodOrc := "" Private cCliente := "" Private cContato := "" Private cContDDD := "" Private cContTel := "" Private cTpCliente := "" Private cGrpTrib := "" Private cEndOpc := "" Private cCondPag := "" Private cLocalEnt := "" Private cObra := "" Private cStatusObra := "" Private cIntermed := "" Private cOport := "" Private cRevOpt := "" Private cRegional := "" Private cTpFrete := "" Private cFatPar := "" Private cEstagPv := "" Private cValFre := "" Private cPrazoEmb := "" Private cEstudo := "" Private cNumEst := "" Private cPrevFecha := "" Private cMargemCont := "" Private cTransp := "" Private cRedesp := "" Private cTotalReg := "" Private cEntrega := "" Private cEmissao := "" Private cValidade := "" Private cEnvpb := "" Private cJust := "" Private cMenNota := "" Private cDesFat := "" Private cOperLum := "" Private cObsCom := "" Private cComent := "" Private nTVlrUnit := 0 Private nTVlrSDesc := 0 Private nTQtdItem := 0 Private nTTotal := 0 Private nTComiss := 0 Private nTImpostos := 0 Private nTAcresc := 0 Private nTFrete := 0 Private nItens := 0 Private lNewOrc := .T. Private lEdit := .F. Private lCopy := .F. Private cShowDesc := "false" Private aItens := {} Private aAnexos := {} Private aOperLum := {} Web Extended Init cHtml Start U_inSite() cVendLogin := u_GetUsrPR() cCodLogin := U_SetParPR(cVendLogin) If Empty(HttpSession->CodVend) cHtml:= '' 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 := "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) //Atualiza as variáveis cEndServ := GetMv('MV_WFBRWSR') cCodVend:=cVendLogin cNomeVend:= HttpSession->Nome cItem := StrZero(1,TamSX3("C6_ITEM")[1]) cFilPed:= '' cCliente:='
cCliente+=' cOptCli+= u_ListaCli(cVendLogin,"",'S') /* cCliente:='' //Tipo de cliente aTpCli:= RetSx3Box(Posicione('SX3',2,'C5_TIPOCLI','X3CBox()'),,,1) cTpCliente:='' //Grupo de tributação do cliente cGrpTrib:= '' //Usuario Emissao cUsuEmiss:= '' //End. Opc. Ent. cEndOpc:= '' //Contato cEndCep := '' cEndRua := '' cEndNum := '' cEndBair:= '' cEndMun := '' cEndUF := '' cEndRef := '' //Cliente de EntregaCJ_XCONTEL cCliEntr:='(dbSeek(xFilial("SE4")+SA1->A1_COND)) cCondNot:= GetNewPar("PR_CONDPNO","") cCondPad:= GetNewPar("PR_CONDPAD","B13") //Seleciona as condições de pagamento disponíveis no combo cQry:= " Select E4_CODIGO, E4_DESCRI, E4_ACRSFIN" cQry+= " From "+RetSqlName("SE4")+" SE4 " cQry+= " Where E4_FILIAL = '"+xFilial("SE4")+"' " cQry+= " And E4_MSBLQL <> '1' " If !Empty(cCondNot) cQry+= " And E4_CODIGO not in "+FormatIn(cCondNot,"|")+" " Endif cQry+= " And SE4.D_E_L_E_T_ = ' ' " If Select("QRP") > 0 QRP->(dbCloseArea()) Endif TcQuery cqry New Alias "QRP" While QRP->(!Eof()) cCondPag+=' ' QRP->(dbSkip()) End QRP->(dbCloseArea()) cCondPag+='' //Regional cRegional:='' //Vendedor 4 cVend4:= '' //Prazo de embarque // cPrazoEmb:= '' //Tipo de frete aTpFrete:= {{"S","Sem Frete"},{"C","CIF"},{"F","FOB"}} cTpFrete:='' //Faturamento Parcial aFatPar:= {{"T",""},{"2","Sim"},{"1","Não"}} cFatPar:='' //Estagio PV aEstagPv:= {{"T",""},{"1","Um"},{"2","Dois"},{"3","Três"},{"4","Quatro"},{"5","Cinco"},{"6","Seis"},{"7","Sete"}} cEstagPv:='' //T. Oper. Lum aOperLum:= {{"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"}} cOperLum:='' cMailNf:= '' //Envia Pato Branco aEnvpb:= {{"T",""},{"2","Sim"},{"1","Não"}} cEnvpb:='' // cPFrete:= 'Tipo <> "R" //Representante cMargemCont:= '
' cMargemCont+= ' ' cMargemCont+= ' '//'+u_getMCOrc() + "%"+' cMargemCont+= '
' Endif //No. Oportun. // If HttpSession->Tipo <> "R" //Representante cNumOp:= '
' cNumOp+= ' ' cNumOp+= ' '//'+u_getMCOrc() + "%"+' cNumOp+= '
' // Endif //Num Orc // If HttpSession->Tipo <> "R" //Representante cNumOrc:= '
' cNumOrc+= ' ' cNumOrc+= ' '//'+u_getMCOrc() + "%"+' cNumOrc+= '
' // Endif //Transportadora cTransp:='' //Redespacho cRedesp:='' /* //Peso cPeso:= 'Tipo <> "R",.F.,.T.)*/ .T. ,"7"}) // aAdd(aItens, {"Diretor","C6_NOMDIRE","*"," text-left","C",.T.,.F.,.T.,"",.T.,"12"}) aAdd(aItens, {"Vlr Comissão","VAL_COM","*"," text-right","N",.T.,.F.,.T.,"0,00",.T.,""}) aAdd(aItens, {"","ACAO","*"," text-center","X",.T.,.F.,.F.,"",.F.,""}) // Cria o cabeçalho dos Itens For nLin := 1 to Len(aItens) cOrcCabec += ''+Iif(aItens[nLin,7],'*',"") cOrcCabec+= aItens[nLin][1]+'' Next //Preenchimento dos itens nItens++ cOrcItens += '' For nLin := 1 to Len(aItens) If aItens[nLin,2] == "ACAO" cOrcItens += '' cOrcItens += ' ' cOrcItens += ' cOrcItens += ' Else If aItens[nLin,2] == "C6_PRODUTO" cOrcItens += '' //class="form-group row pb-4" Else cOrcItens += '' Endif lMoeda:= aItens[nLin,8] //Indica se é Moeda lNumber:= aItens[nLin,5] = "N" //Indica que é numérico xValue:= "" Do Case Case aItens[nLin][5] == 'C' If aItens[nLin,2] == "C6_ITEM" xValue := "01" Else xValue :="" Endif Case aItens[nLin][5] == 'N' If aItens[nLin,2] == "C6_QTDVEN" xValue := Iif(lNewOrc,"",Alltrim(PadR(TransForm(QRY->&(aItens[nLin][2]),PesqPict("SC6",aItens[nLin,2])),space(GetSX3Cache(aItens[nLin][2],"X3_TAMANHO"))))) ElseIf aItens[nLin,2] == "PER_COM" xValue := Iif(lNewOrc,"0",Alltrim(PadR(TransForm(QRY->&(aItens[nLin][2]),PesqPict("SD2","D2_COMIS1")),space(GetSX3Cache("D2_COMIS1","X3_TAMANHO"))))) ElseIf aItens[nLin,2] == "VAL_COM" xValue := Iif(lNewOrc,"0",Alltrim(PadR(TransForm(QRY->&(aItens[nLin][2]),PesqPict("SC6","C6_PRCVEN")),space(GetSX3Cache("C6_PRCVEN","X3_TAMANHO"))))) Elseif aItens[nLin,2] == "iC6_PRCVEN" xValue := Iif(lNewOrc,"0",Alltrim(PadR(TransForm(QRY->&(aItens[nLin][2]),PesqPict("SC6","C6_PRCVEN")),space(GetSX3Cache("C6_PRCVEN","X3_TAMANHO"))))) Else xValue := Iif(lNewOrc,"0",Alltrim(PadR(TransForm(QRY->&(aItens[nLin][2]),PesqPict("SC6",aItens[nLin,2])),space(GetSX3Cache(aItens[nLin][2],"X3_TAMANHO"))))) Endif EndCase If aItens[nLin,6] //Campo Editável cOrcItens += '' Else If aItens[nLin,2] = "C6_PRODUTO" //Cria o select para o produto cOrcItens +='
' cOrcItens +='
cOrcItens +='
cOrcItens +=' ' cOrcItens +=' ' cOrcItens +=' cOrcItens +='
cOrcItens +='
cOrcItens +='
Else cOrcItens += '' Endif Endif Endif cOrcItens += '' Next //Inputs Hidden cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cOrcItens+=cItensHid cOrcItens += '' cOrcItens += ' cOrcItens += '' cOrcItens += '' cOrcItens += '' cOrcItens += '' cOrcItens += '' cOrcItens += '' //Adiciona os botões de ações na tabela de itens cBtnItens+='
' cBtnItens+='
' cBtnItens+=' ' cBtnItens+='
' cBtnItens+='
' //Adiciona os botões da página //cBotoes+='
Orçamento válido apenas dentro do mês de '+MesExtenso(date())+' de '+cvaltochar(Year(date()))+'.
' cBotoes+=''+chr(13)+chr(10) cBotoes+=''+chr(13)+chr(10) //Totalizador disponível apenas para regional // If HttpSession->Tipo <> "R" // cTotalReg:='
' // cTotalReg+=' ' // cTotalReg+=' ' // cTotalReg+='     ' // cTotalReg+=' ' // cTotalReg+=' ' // cTotalReg+='
' // cTotalReg+='
' // cTotalReg+='
' // cShowDesc := 'true' // Endif //Retorna o HTML para construção da página cHtml := H_AddPed() Web Extended End Return (cHTML) /*__________________________________________________________________________ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¦¦+-----------------------------------------------------------------------+¦¦ ¦¦¦Funçäo ¦ SlvOrc ¦ Autor ¦ Lucilene Mendes ¦ Data ¦17.08.17 ¦¦¦ ¦¦+----------+------------------------------------------------------------¦¦¦ ¦¦¦Descriçäo ¦ Gera a cotação. ¦¦¦ ¦¦+-----------------------------------------------------------------------+¦¦ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ */ User Function SlvPed() Local cHtml Local nOpc := 3 // 3- Incluir / 4- Alterar / 5- Excluir Local cCondPag := "" Local cTabela := "" Local cCliente := "" Local cLoja := "" Local cMsg := "" Local cTransp := "" Local cItens := "" Local cDestOrc := "" Local cMensagem := "" Local x := 0 Local i := 0 Local nTotSC6 := 0 Local nPosLin := 0 Local cDirErro := "\erro\" Local aItens := {} Local cNumSC5 := "" Local lRet := .T. local lEnvEmail := .f. local cFilPed local cCliEnt local cLjEnt local cTipoLum local cGrpTrib local cContato local cContTel local cUFEnt local cRegional local cVend2 local cVend3 local cVend4 local cDatEntr local cTipoFrete local nFrete local cRedesp local cEndOpc local cMailNF local cEstagPv local cNegociad local cFatPar local cMenNota local cDescFat local cEnvPb local cItem local cProdSC6 local nQuantSC6 local nPrcVenSC6 local cUMSC6 local nPUnitSC6 local nValorSC6 local cEntrSC6 local cOperSC6 local cTesSC6 local cCfSC6 local cPosIpiSC6 local cComis2SC6 local cComis3SC6 local cComis4SC6 local cPedCLiSC6 local cIPedCLiSC6 Private cReturn Private aCabSC5 :={} Private aItemSC5:={} Private aLinhaSc5:={} Private lMsErroAuto:= .F. Private cCodLogin := "" Private cVendLogin:= "" Private n:= 0 Web Extended Init cHtml Start U_inSite() cVendLogin := u_GetUsrPR() cCodLogin := U_SetParPR(cVendLogin) //Verifica se não perdeu a sessão If type("HttpSession->CodVend") = "U" .or. Empty(HttpSession->CodVend) conout(Procname()+"("+ltrim(str(procline()))+") *** Portal "+"Sessao encerrada") cHtml:= '' return cHtml Endif //Verifica se existe pedido lançado para o cliente nos últimos 3 minutos. /* If Empty(HttpPost->C5_NUM) cQry:= "Select * from "+RetSqlName("SCJ")+" SCJ " cQry+= "Where C5_FILIAL = '"+xFilial("SCJ")+"' " cQry+= "And C5_CLIENTE = '"+Left(HttpPost->C5_CLIENTE,9)+"' " cQry+= "And C5_LOJA = '"+Right(HttpPost->C5_CLIENTE,4)+"' " cQry+= "And C5_EMISSAO = '"+dtos(dDataBase)+"' " cQry+= "And C5_COTCLI >= '"+StrTran(StrZero(SubHoras(Time(),'00:03:00'),5,2),'.',':')+":00"+"' " cQry+= "And SCJ.D_E_L_E_T_ = ' ' " If Select("QRH") > 0 QRH->(dbCloseArea()) Endif conout("Hora: "+Time()+" Vend: "+HttpSession->CodVend+" --> "+cqry) APWExOpenQuery(ChangeQuery(cQry),'QRH',.T.) If Contar("QRH","!Eof()") > 0 cHtml:= "" Return cHtml Endif Endif */ If nOpc = 3 INCLUI := .T. Else ALTERA := .T. Endif //Variáveis do cabeçalho cNumSC5 := Iif(Type("HttpPost->C5_NUM")<>"U",HttpPost->C5_NUM,'') cFilPed := Iif(Type("HttpPost->C5_FILIAL")<>"U",HttpPost->C5_FILIAL,'') cCliente := Left(HttpPost->C5_CLIENTE,6) cLoja := Right(HttpPost->C5_CLIENTE,6) cCliEnt := Left(HttpPost->C5_CLIENT,6) cLjEnt := Right(HttpPost->C5_CLIENT,2) cCondPag := Iif(Type("HttpPost->C5_CONDPAG")<>"U",HttpPost->C5_CONDPAG,"B13") cTipoLum := Iif(Type("HttpPost->C5_TIPOLUM")<>"U",HttpPost->C5_TIPOLUM,"1") cTabela := Iif(Type("HttpPost->C5_TABELA")<>"U",HttpPost->C5_TABELA,"") cGrpTrib := Iif(Type("HttpPost->C5_GRPTRIB")<>"U",HttpPost->C5_GRPTRIB,'') cCepOpc := Iif(Type("HttpPost->C5_CEPOPC")<>"U",HttpPost->C5_CEPOPC,'') cRuaOpc := Iif(Type("HttpPost->C5_RUAOPC")<>"U",HttpPost->C5_RUAOPC,'') cNumOpc := Iif(Type("HttpPost->C5_NUMOPC")<>"U",HttpPost->C5_NUMOPC,'') cBairOpc := Iif(Type("HttpPost->C5_BAIROPC")<>"U",HttpPost->C5_BAIROPC,'') cMunOpc := Iif(Type("HttpPost->C5_MUNOPC")<>"U",HttpPost->C5_MUNOPC,'') cUfOpc := Iif(Type("HttpPost->C5_UFOPC")<>"U",HttpPost->C5_UFOPC,'') cRefOpc := Iif(Type("HttpPost->C5_REFOPC")<>"U",HttpPost->C5_REFOPC,'') cUFEnt := Iif(Type("HttpPost->C5_UFDEST")<>"U",HttpPost->C5_UFDEST,"") cRegional := Iif(Type("HttpPost->C5_VEND1")<>"U",HttpPost->C5_VEND1,"") cVend2 := Iif(Type("HttpPost->C5_VEND2")<>"U",HttpPost->C5_VEND2,"") cVend3 := Iif(Type("HttpPost->C5_VEND3")<>"U",HttpPost->C5_VEND3,"") cVend4 := Iif(Type("HttpPost->C5_VEND4")<>"U",HttpPost->C5_VEND4,"") cDatEntr := Iif(Type("HttpPost->C5_DATENTR")<>"U",HttpPost->C5_DATENTR,"") cTipoFrete := Iif(Type("HttpPost->C5_TPFRETE")<>"U",HttpPost->C5_TPFRETE,"") nFrete := Iif(Type("HttpPost->C5_FRETE")<>"U",Val(StrTran(StrTran(HttpPost->C5_FRETE,'.',''),',','.')),0) cTransp := Iif(Type("HttpPost->C5_TRANSP")<>"U",HttpPost->C5_TRANSP,"") cRedesp := Iif(Type("HttpPost->C5_REDESP")<>"U",HttpPost->C5_REDESP,"") cEndOpc := Iif(Type("HttpPost->C5_ENDOPC")<>"U",HttpPost->C5_ENDOPC,"") cMailNF := Iif(Type("HttpPost->C5_MAILNF")<>"U",HttpPost->C5_MAILNF,"") cEstagPv := Iif(Type("HttpPost->C5_ESTAGIO")<>"U",HttpPost->C5_ESTAGIO,"") cNegociad := Iif(Type("HttpPost->C5_NEGOCIA")<>"U",HttpPost->C5_NEGOCIA,"") cFatPar := Iif(Type("HttpPost->C5_FATPARC")<>"U",HttpPost->C5_FATPARC,"") cMenNota := Iif(Type("HttpPost->C5_MENNOTA")<>"U",HttpPost->C5_MENNOTA,"") cMenNota1 := Iif(Type("HttpPost->C5_MENNOT1")<>"U",HttpPost->C5_MENNOT1,"") cMenNota2 := Iif(Type("HttpPost->C5_MENNOT2")<>"U",HttpPost->C5_MENNOT2,"") cMenNota3 := Iif(Type("HttpPost->C5_MENNOT3")<>"U",HttpPost->C5_MENNOT3,"") cDescFat := Iif(Type("HttpPost->C5_DESCFAT")<>"U",HttpPost->C5_DESCFAT,"") cEnvPb := Iif(Type("HttpPost->C5_SIBAP")<>"U",HttpPost->C5_SIBAP,"") nTotSC6 := val(HttpPost->PROXIMO) cItens:= HttpPost->aItens nOpc:= Val(HttpPost->OPCAO) For x:= 1 to nTotSC6 nPosLin:= At("||",cItens)-1 If nPosLin > 0 aLinha:= Separa(Substr(cItens,1,nPosLin),";") cItens:= Substr(cItens,nPosLin+3) If Len(aLinha) > 0 aAdd(aItens,aLinha) Endif Endif aLinha:= {} Next //Posiciona nas tabelas If !Empty(cCondPag) Posicione("SE4",1,xFilial("SE4")+cCondPag,"E4_COND") Endif If !Empty(cTabela) Posicione("DA0",1,xFilial("DA0")+cTabela,"DA0_CODTAB") //lPneu := Iif(DA0->DA0_XPOLIM = '1', .F.,.T.) Endif If !Empty(cCliente) Posicione("SA1",1,xFilial("SA1")+Alltrim(HttpPost->C5_CLIENTE),"A1_COD") Endif //Monta o cabeçalho If !Empty(cNumSC5) .and. nOpc = 4 SC5->(dbSetOrder(1)) // C5_FILIAL+C5_NUM If SC5->(dbSeek(cFilPed+cNumSC5)) If cFilPed <> cFilAnt u_PtTrocaFil(cFilPed) Endif endif cFilAnt := xFilial("SC5") aadd(aCabSC5,{"C5_NUM",cNumSC5,Nil}) EndIf aadd(aCabSC5,{"C5_FILIAL",xFilial("SC5"),Nil}) aadd(aCabSC5,{"C5_CLIENTE",SA1->A1_COD,Nil}) aadd(aCabSC5,{"C5_LOJA", SA1->A1_LOJA ,Nil}) aadd(aCabSC5,{"C5_CLIENT",cCliEnt ,Nil}) aadd(aCabSC5,{"C5_LOJAENT",cLjEnt ,Nil}) aadd(aCabSC5,{"C5_CONDPAG",cCondPag ,Nil}) aadd(aCabSC5,{"C5_TABELA" ,cTabela,Nil}) aadd(aCabSC5,{"C5_TIPOLUM" ,cTipoLum,Nil}) aadd(aCabSC5,{"C5_VEND1",cRegional ,Nil}) aadd(aCabSC5,{"C5_TPFRETE" ,cTipoFrete,Nil}) aadd(aCabSC5,{"C5_TRANSP" ,cTransp,Nil}) aadd(aCabSC5,{"C5_REDESP" ,cRedesp,Nil}) aadd(aCabSC5,{"C5_FRETE" ,nFrete,Nil}) aadd(aCabSC5,{"C5_DATENTR" ,cDatEntr,Nil}) aadd(aCabSC5,{"C5_FATPARC" ,cFatPar,Nil}) aadd(aCabSC5,{"C5_NEGOCIA" ,cNegociad,Nil}) aadd(aCabSC5,{"C5_ESTAGIO" ,cEstagPv,Nil}) aadd(aCabSC5,{"C5_MAILNF" ,cMailNF,Nil}) aadd(aCabSC5,{"C5_VEND2",cVend2 ,Nil}) aadd(aCabSC5,{"C5_VEND3",cVend3 ,Nil}) aadd(aCabSC5,{"C5_VEND4",cVend4 ,Nil}) aadd(aCabSC5,{"C5_SIBAP",cEnvPb ,Nil}) aadd(aCabSC5,{"C5_UFDEST",cUFEnt ,Nil}) aadd(aCabSC5,{"C5_CEPOPC",cCepOpc ,Nil}) aadd(aCabSC5,{"C5_RUAOPC",cRuaOpc ,Nil}) aadd(aCabSC5,{"C5_NUMOPC",cNumOpc ,Nil}) aadd(aCabSC5,{"C5_BAIROPC",cBairOpc ,Nil}) aadd(aCabSC5,{"C5_MUNOPC",cMunOpc ,Nil}) aadd(aCabSC5,{"C5_UFOPC",cUfOpc ,Nil}) aadd(aCabSC5,{"C5_REFOPC",cRefOpc ,Nil}) aadd(aCabSC5,{"C5_ENDOPC",cRuaOpc + " " + cNumOpc+ " "+ cRefOpc + " " + cBairOpc + " " + cMunOpc + " " + cUfOpc ,Nil}) aadd(aCabSC5,{"C5_MENNOTA",cMenNota ,Nil}) aadd(aCabSC5,{"C5_MENNOT1",cMenNota1 ,Nil}) aadd(aCabSC5,{"C5_MENNOT2",cMenNota2 ,Nil}) aadd(aCabSC5,{"C5_MENNOT3",cMenNota3 ,Nil}) aadd(aCabSC5,{"C5_DESCFAT",cDescFat ,Nil}) //Cria as variáveis de memória //RegtoMemory("SCJ") //For i:=1 to Len(aCabSC5) // M->&(aCabSC5[i,1]) := aCabSC5[i,2] //Next //Monta os itens dbSelectArea("SB1") SB1->(dbSetorder(1)) If ValType(aItens) == "A" .and. Len(aItens) > 0 For i:=1 to Len(aItens) If ValType(aItens[i,1]) == 'C' aLinhaSc5:={} cItem := StrZero(i,TamSX3("C6_ITEM")[1]) cProdSC6 := PadR(aItens[i,1], TamSX3("C6_PRODUTO")[1]) nQuantSC6 := val(StrTran(StrTran(aItens[i,2],".",""),",",".")) nPrcVenSC6 := val(StrTran(StrTran(aItens[i,3],".",""),",",".")) cUMSC6 := aItens[i,4] nPUnitSC6 := val(StrTran(StrTran(aItens[i,5],".",""),",",".")) nValorSC6 := val(StrTran(StrTran(aItens[i,6],".",""),",",".")) cEntrSC6 := aItens[i,7] cOperSC6 := aItens[i,8] cTesSC6 := aItens[i,9] cCfSC6 := aItens[i,10] cPosIpiSC6 := aItens[i,11] cComis2SC6 := val(aItens[i,12]) cComis3SC6 := val(aItens[i,13]) cComis4SC6 := val(aItens[i,14]) cPedCLiSC6 := aItens[i,15] cIPedCLiSC6 := aItens[i,16] If SB1->(dbSeek(xFilial("SB1")+cProdSC6)) .and. nQuantSC6 > 0 .And. nPrcVenSC6 > 0 .and. SB1->B1_MSBLQL <> '1' aadd(aLinhaSc5,{"C6_ITEM" ,cItem,Nil}) aadd(aLinhaSc5,{"C6_PRODUTO",SB1->B1_COD,Nil}) aadd(aLinhaSc5,{"C6_UM" ,cUMSC6,Nil}) aadd(aLinhaSc5,{"C6_QTDVEN" ,nQuantSC6,Nil}) aadd(aLinhaSc5,{"C6_PRCVEN" ,A410Arred(nPrcVenSC6, "C6_PRCVEN"),Nil}) aadd(aLinhaSc5,{"C6_PRUNIT" ,A410Arred(nPrcVenSC6, "C6_PRUNIT"),Nil}) aadd(aLinhaSc5,{"C6_VALOR" ,A410Arred(nQuantSC6*A410Arred(nPrcVenSC6, "C6_PRCVEN"),"C6_VALOR"),Nil}) aadd(aLinhaSc5,{"C6_OPER" ,cOperSC6,Nil}) aadd(aLinhaSc5,{"C6_TES" ,cTesSC6,Nil}) // aadd(aLinhaSc5,{"C6_CF" ,cCfSC6,Nil}) aadd(aLinhaSc5,{"C6_POSIPI" ,cPosIpiSC6,Nil}) aadd(aLinhaSc5,{"C6_COMIS2" , cComis2SC6,Nil}) // aadd(aLinhaSc5,{"C6_ENTREG" ,cEntrSC6,Nil}) aadd(aLinhaSc5,{"C6_COMIS3" , cComis3SC6,Nil}) aadd(aLinhaSc5,{"C6_COMIS4" , cComis4SC6,Nil}) aadd(aLinhaSc5,{"C6_PEDCLI" ,cPedCLiSC6,Nil}) aadd(aLinhaSc5,{"C6_IPEDCLI",cIPedCLiSC6,Nil}) aadd(aItemSC5,aLinhaSc5) Else lRet:= .F. Endif Endif Next //Chama execauto para inclusão do orçamento If Len(aCabSC5) > 0 .and. Len(aItemSC5) > 0 .and. lRet lMsErroAuto:= .F. MATA410(aCabSC5,aItemSC5,nOpc) Else If !Empty(cNumSC5) conout(Procname()+"("+ltrim(str(procline()))+") *** Portal "+"FALHA AO INCLUIR O ORÇAMENTO. REFAÇA A OPERAÇÃO!") Else conout(Procname()+"("+ltrim(str(procline()))+") *** Portal "+"FALHA AO ALTERAR O ORÇAMENTO. REFAÇA A OPERAÇÃO!") EndIf lRet := .F. Endif If lMsErroAuto If !ExistDir(cDirErro) MakeDir(cDirErro) Endif cDirErro+=dtos(date()) If !ExistDir(cDirErro) MakeDir(cDirErro) Endif //Grava o erro cMsg:= MostraErro(cDirErro,"erro_orcto_"+strtran(time(),":","")+"_"+cFilAnt+".txt") cDestMail:= "matheus.lopes@smsti.com.br" u_MailCM("ERRO PEDIDO",{cDestMail},{},"ERRO PEDIDO NO PORTAL",cMsg,"","") // cHtml:= "erro" cHtml:= SC5->C5_NUM+"

" Else cHtml:= SC5->C5_NUM+"

" // cDestOrc := GetNewPar("PR_DESTORC","") //Envia e-mail informando a inclusão do orçamento // If !Empty(cDestOrc) .and. (nOpc = 3 .or. lEnvEmail) //não envia para orçamento previsto // cMsg:= "Um novo orçamento foi gerado pelo Portal do Representante.

" // cMsg+= "Filial: "+SC5->C5_FILIAL+"
" // cMsg+= "Número: "+SC5->C5_NUM+"
" // cMsg+= "Vendedor: "+SC5->C5_VEND+" - "+Alltrim(Posicione("SA3",1,xFilial("SA3")+SC5->C5_VEND,"A3_NOME"))+"
" // cMsg+= "Cliente: "+SC5->C5_CLIENTE+"/"+SC5->C5_LOJA+" - "+Posicione("SA1",1,+xFilial("SA1")+SC5->C5_CLIENTE+SC5->C5_LOJA,"A1_NOME")+"
" // u_MailCM("ORÇAMENTO",{cDestOrc},{},"NOVO ORCAMENTO PORTAL: "+SC5->C5_FILIAL+"/"+SC5->C5_NUM+" - "+; // trim(Posicione("SA1",1,+xFilial("SA1")+SC5->C5_CLIENTE+SC5->C5_LOJA,"A1_NOME")),cMsg,"","") // Endif ////////////// // Envia e-Mail para supervisoras dos clientes que ficaram ativos. // If Empty(SA1->A1_ULTORCA) .OR. (dDataBase - SA1->A1_ULTORCA) > 365 // cMensagem := "Cliente Ativado pelo Orçamento: " + AllTrim(SC5->C5_NUM) + CRLF+CRLF // cMensagem += "Cliente: " + AllTrim(SA1->A1_COD)+"-"+AllTrim(SA1->A1_NOME) + CRLF // cMensagem += "Representante: " + AllTrim(SC5->C5_VEND)+'-'+AllTrim(Posicione("SA3",1,xFilial('SA3')+SC5->C5_VEND,"A3_NOME")) + CRLF // cMensagem += "Regional: " + AllTrim(SC5->C5_REGIAO)+'-'+AllTrim(Posicione("SA3",1,xFilial('SA3')+SC5->C5_REGIAO,"A3_NOME")) + CRLF // cMensagem += "Pré-Resgate: " + IIF(!Vazio(Trim(SA1->A1_USUPRER)),Trim(SA1->A1_USUPRER)+ " em: "+DToC(SA1->A1_DTPRERE),'-*-*-*-*-') + CRLF // // (Destino , Com Copia , Com Copia Oculta , assunto , Mensagem Corpo, Anexos) // U_EnvMail("regiane.almeida@lumicenter.com" , ,"" ,"e-Mail Automático. Cliente Ativado - Engenharia." ,cMensagem,"") // EndIf // Grava data do último orçamento. RecLock("SA1",.F.) SA1->A1_ULTORCA := dDataBase MsUnlock("SA1") EndIf Else cHtml:= "erro" Endif Web Extended End Return (cHTML) /*__________________________________________________________________________ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¦¦+-----------------------------------------------------------------------+¦¦ ¦¦¦Funçäo ¦ GetSitCliP ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 19.11.17 ¦¦¦ ¦¦+----------+------------------------------------------------------------¦¦¦ ¦¦¦Descriçäo ¦ Função para buscar os dados de crédito do cliente. ¦¦¦ ¦¦+-----------------------------------------------------------------------+¦¦ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ */ User Function PGetSitCli() Local cHtml Local cCliente := Alltrim(HttpPost->Cliente) Local cMsg := "" Local cSepField := "|#|" Local lRetCli:= .T. Private cMsgCust:= "" Web Extended Init cHtml Start U_inSite() If Empty(HttpSession->CodVend) cHtml:= '' Return cHtml endif //Posiciona no cliente dbSelectArea("SA1") SA1->(dbSeek(xFilial("SA1")+cCliente)) //Atualiza a variável de sessão HttpSession->cliente := cCliente //Chama a validação customizada do cliente If ExistBlock("VldPortalSMS") lRetCli:=u_VldPortalSMS("CK_CLIENTE",SA1->(Recno())) Endif If !Empty(cMsgCust) cMsg+= '
'+CHR(13)+CHR(10) cMsg+= '
'+CHR(13)+CHR(10) cMsg+= '
'+cMsgCust+'
'+CHR(13)+CHR(10) cMsg+= '
'+CHR(13)+CHR(10) cMsg+= '
'+CHR(13)+CHR(10) Else cMsg:="::" Endif cHtml:= Iif(!lRetCli,'0','1')+cSepField+cMsg+cSepField cHtml+= SA1->A1_TIPO+cSepField+SA1->A1_GRPTRIB+cSepField+Alltrim(SA1->A1_COND)+cSepField cHtml+= Alltrim(SA1->A1_EST)+Alltrim(SA1->A1_COD_MUN)+" - "+Alltrim(SA1->A1_MUN)+cSepField cHtml+= SA1->A1_VEND Web Extended end Return cHtml /*__________________________________________________________________________ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¦¦+-----------------------------------------------------------------------+¦¦ ¦¦¦Funçäo ¦ GatProd ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 05.09.17 ¦¦¦ ¦¦+----------+------------------------------------------------------------¦¦¦ ¦¦¦Descriçäo ¦ Gatilho para atualização dos preços ao selecionar o produto¦¦¦ ¦¦+-----------------------------------------------------------------------+¦¦ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ */ User Function pGatProd() Local cProduto := Alltrim(UnEscape(HttpPost->PRODUTO)) Local cTabela := Alltrim(HttpSession->Tabela) Local cCliente := Alltrim(HttpSession->Cliente) Local cSepField := "|#|" Local cTes := "" Local cCodOper := "" Local cMsg := "" Local nPercFrt := val(HttpPost->frete) Local nComisRT := val(HttpPost->comisRT) Local cLumOper := val(HttpPost->lumoper) Local cVend2 := HttpPost->vend2 Local cVend3 := HttpPost->vend3 Local cVend4 := HttpPost->vend4 Local nDiv := 0 Local nPrcTab := 0 Local cComis := 0 Local nQtdFis := 1 Local nDesc := 0 Local nValIcms := 0 Local nBaseIcms := 0 Local nValST := 0 Local nBaseST := 0 Local nValIPI := 0 Local nBaseIPI := 0 Local cAliqIPI := 0 Local cAliqICMS := 0 Local cAliqST := 0 Local nQtdMin := 0 Local aRet := {} Local lRetPro := .T. Local lVencido := .F. Local cHtml Private cPrzEmb := "" Private nCargIcm := 0 Private nFatCorr := 0 nSec:= Seconds() Web Extended Init cHtml Start U_inSite() Conout("[ADDORC / GATPROD] - tempo Abertura InSite: "+cValtoChar(Seconds()-nSec)+"s") //Busca o cadastro do cliente Posicione("SA1",1,xFilial("SA1")+cCliente,"A1_COD") //Posiciona no cadastro do produto Posicione("SB1",1,xFilial("SB1")+cProduto,"B1_COD") //Chama a validação customizada do produto If ExistBlock("VldPortalSMS") cMsgCust:= "" lRetPro:=u_VldPortalSMS("CK_PRODUTO",SB1->(Recno())) If !Empty(cMsgCust) cMsg:= '
'+CHR(13)+CHR(10) cMsg+= '
'+CHR(13)+CHR(10) cMsg+= '
'+cMsgCust+'
'+CHR(13)+CHR(10) cMsg+= '
'+CHR(13)+CHR(10) cMsg+= '
'+CHR(13)+CHR(10) Else cMsg:="::" Endif Endif if empty(cTabela) cTabela := Alltrim(HttpPost->cTabela) endif HttpSession->cTabela:= cTabela HttpSession->Tabela:= cTabela //Posiciona na tabela de preço Posicione("DA0",1,xFilial("DA0")+cTabela,"DA0_CODTAB") DA1->(dbSetOrder(1)) If DA1->(dbSeek(xFilial("DA1")+cTabela+cProduto)) nPrcTab:= u_getValProd(nComisRT,nPercFrt) Endif conout("Chave "+xFilial("DA1")+cTabela+cProduto) conout("Tabela de preco "+xFilial("DA1")+" tab: "+cValToChar(cTabela)+" produto "+cProduto+" Preco "+cValToChar(nPrcTab)) If nPrcTab > 0 nSec:= Seconds() //&&&&&& verificar se excessão fiscal calcula na tes inteligente //nPrcTab := (nPrcTab - (nPrcTab * ((18 - nCargIcm - nFatCorr)/100))) // Alterado em 20-09-2018 - Fabiana - para calcular 1.5/4.5 de desconto CIF Norte/Nordeste. //Obtem os valores de impostos u_pGetValImp(SA1->A1_COD+SA1->A1_LOJA,nPrcTab,nDesc,nQtdFis,@nValIcms,@nBaseICMS,@nValST,@nBaseST,@nValIPI,@nBaseIPI,@cAliqIPI,@cAliqICMS,@cAliqST,@cTes, @cCodOper, cLumOper) Conout("[ADDORC / GATPROD] - tempo u_GetValImp: "+cValtoChar(Seconds()-nSec)+"s") If Empty(cTes) cHtml:= "ERRO: TES não localizada." Else cPrcTab := TransForm((nPrcTab),PesqPict("SCK","CK_PRCVEN")) cTotalST:= Transform(((nPrcTab)+nValST),PesqPict("SCK","CK_PRCVEN")) cComis := SB1->B1_COMIS If SB5->(MsSeek(xFilial("SB5")+SB1->B1_COD)) If SB5->B5_DTVLESP + 30 < dDataBase lVencido:= .T. Endif Endif if cVend2 <> "" nDiv := nDiv + 1 endif if cVend3 <> "" nDiv := nDiv + 1 endif if cVend4 <> "" nDiv := nDiv + 1 endif CONOUT("IPI "+CVALTOCHAR(nValIPI)) aAdd(aRet,Alltrim(SB1->B1_UM)) //01 aAdd(aRet,Alltrim(cPrcTab)) //02 aAdd(aRet,Alltrim(Transform(nValIcms,PesqPict("SCK","CK_XVALICM")))) //03 aAdd(aRet,Alltrim(Transform(nValIPI,PesqPict("SCK","CK_XVALIPI")))) //04 aAdd(aRet,Alltrim(Transform(nValST,PesqPict("SCK","CK_PRCVEN")))) //05 aAdd(aRet,cAliqIPI) //06 aAdd(aRet,cAliqICMS) //07 aAdd(aRet,cValtochar(SB1->B1_QE)) //08 aAdd(aRet,cTES) //09 aAdd(aRet,cValtoChar(nBaseICMS)) //10 aAdd(aRet,cValtoChar(nBaseST)) //11 aAdd(aRet,cValtoChar(nBaseIPI)) //12 aAdd(aRet,cAliqST) //13 aAdd(aRet,SB1->B1_GRUPO) //14 aAdd(aRet,cvaltochar(nQtdMin)) //15 aAdd(aRet,Iif(lVencido,'1','0')) //16 aAdd(aRet,u_GetEstDisp()) //17 aAdd(aRet,Iif(lRetPro,'1','0')) //18 aAdd(aRet,cMsg) //19 aAdd(aRet,cPrzEmb) //20 aAdd(aRet,SB1->B1_TIPO) //21 aAdd(aRet,cCodOper) //22 aAdd(aRet,SB1->B1_POSIPI) //23 aAdd(aRet,Iif(cVend2 <> "",cvaltochar((cComis / nDiv)), "0") ) //24 aAdd(aRet,Iif(cVend3 <> "",cvaltochar((cComis / nDiv)), "0") ) //25 aAdd(aRet,Iif(cVend4 <> "",cvaltochar((cComis / nDiv)), "0") ) //26 aAdd(aRet, cvaltochar(cComis)) //27 cHtml := "OK:" cHtml += aRet[1]+cSepField+aRet[2]+cSepField+aRet[3]+cSepField+aRet[4]+cSepField+aRet[5]+cSepField+aRet[6]+cSepField+aRet[7]+cSepField+aRet[8] cHtml +=cSepField+aRet[9]+cSepField+aRet[10]+cSepField+aRet[11]+cSepField+aRet[12]+cSepField+aRet[13]+cSepField+aRet[14]+cSepField+aRet[15] cHtml +=cSepField+aRet[16]+cSepField+aRet[17]+cSepField+aRet[18]+cSepField+aRet[19]+cSepField+aRet[20]+cSepField+aRet[21]+cSepField+aRet[22]+cSepField+aRet[23] cHtml +=cSepField+aRet[24]+cSepField+aRet[25]+cSepField+aRet[26]+cSepField+aRet[27] Endif Else cHtml := "ERRO: Nao foi possivel localizar o produto" Endif Web Extended end CONOUT("FIM GATPROD") Return cHtml /*__________________________________________________________________________ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¦¦+-----------------------------------------------------------------------+¦¦ ¦¦¦Funçäo ¦ GetValImp ¦ Autor ¦ Anderson Zelenski ¦ Data ¦ 09.09.17 ¦¦¦ ¦¦+----------+------------------------------------------------------------¦¦¦ ¦¦¦Descriçäo ¦ Função para cálculo dos impostos ¦¦¦ ¦¦+-----------------------------------------------------------------------+¦¦ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ */ User Function pGetValImp(cCliente,nPreco,nDesc,nQtdFis,nValIcms,nBaseIcms,nValST,nBaseST,nValIPI,nBaseIPI,cAliqIPI,cAliqICMS,cAliqST,cTes,cCodOper,cLumOper) Local _nItem:= 0 MaFisEnd() SA1->(dbSetorder(1)) SA1->(dbSeek(xFilial("SA1")+cCliente)) cCodOper:= pGetCodOper(cLumOper) MaFisIni(SA1->A1_COD,;// 1-Codigo Cliente/Fornecedor SA1->A1_LOJA,;// 2-Loja do Cliente/Fornecedor "C",; // 3-C:Cliente , F:Fornecedor "N",; // 4-Tipo da NF SA1->A1_TIPO,;// 5-Tipo do Cliente/Fornecedor MaFisRelImp("MT100", {"SF2", "SD2"}),; // 6-Relacao de Impostos que suportados no arquivo ,;// 7-Tipo de complemento ,;// 8-Permite Incluir Impostos no Rodape .T./.F. "SB1",; // 9-Alias do Cadastro de Produtos - ("SBI" P/ Front Loja) "MATA461") dbSelectArea("SE4") SE4->(DbSetOrder(1)) cTes:= MaTesInt(2,cCodOper,SA1->A1_COD,SA1->A1_LOJA,"C",SB1->B1_COD,"",SA1->A1_TIPO) // conout("tes -->"+cTes) // conout("prod -->"+SB1->B1_COD) _nItem := MaFisAdd(SB1->B1_COD,; // 1-Codigo do Produto ( Obrigatorio ) cTes,;// 2-Codigo do TES ( Opcional ) nQtdFis,; // 3-Quantidade ( Obrigatorio ) nPreco,; // 4-Preco Unitario ( Obrigatorio ) nDesc,; // 5-Valor do Desconto ( Opcional ) ,;// 6-Numero da NF Original ( Devolucao/Benef ) ,;// 7-Serie da NF Original ( Devolucao/Benef ) ,;// 8-RecNo da NF Original no arq SD1/SD2 0,; // 9-Valor do Frete do Item ( Opcional ) 0,; // 10-Valor da Despesa do item ( Opcional ) 0,; // 11-Valor do Seguro do item ( Opcional ) 0,; // 12-Valor do Frete Autonomo ( Opcional ) nPreco,; // 13-Valor da Mercadoria ( Obrigatorio ) 0,; // 14-Valor da Embalagem ( Opiconal ) 0,; // 15-RecNo do SB1 0)// 16-RecNo do SF4 //ICMS nValIcms:= MaFisRet(_nItem,"IT_VALICM") nBaseIcms:= MaFisRet(_nItem,"IT_BASEICM") cAliqICMS:= Alltrim(Str(MaFisRet(_nItem,"IT_ALIQICM"))) //IPI nValIPI := MaFisRet(_nItem,"IT_VALIPI") nBaseIPI := MaFisRet(_nItem,"IT_BASEIPI") cAliqIPI := Alltrim(Str(MaFisRet(_nItem,"IT_ALIQIPI"))) //ICMS ST nValST := MaFisRet(_nItem,"IT_VALSOL") nBaseST := MaFisRet(_nItem,"IT_BASESOL") cAliqST := Alltrim(Str(MaFisRet(_nItem,"IT_ALIQSOL"))) Return User Function pGetImpostos() Local cProduto := Alltrim(UnEscape(HttpPost->PRODUTO)) Local nPrcTab := Val(HttpPost->prcvenda) // Local cTabela := Alltrim(HttpSession->Tabela) Local cCliente := Alltrim(HttpSession->Cliente) Local nQtdFis := Val(HttpPost->quantidade) Local cLumOper := Val(HttpPost->lumoper) // Local cSepReg := "#*#*" Local cSepField := "|#|" Local cTes := "" Local nDesc := 0 Local nValIcms := 0 Local nBaseIcms := 0 Local nValST := 0 Local nBaseST := 0 Local nValIPI := 0 Local nBaseIPI := 0 Local cAliqIPI := 0 Local cAliqICMS := 0 Local cAliqST := 0 Local aRet := {} Local cHtml Web Extended Init cHtml Start U_inSite() //Busca o cadastro do cliente Posicione("SA1",1,xFilial("SA1")+cCliente,"A1_COD") //Posiciona no cadastro do produto Posicione("SB1",1,xFilial("SB1")+cProduto,"B1_COD") If nPrcTab > 0 //Obtem os valores de impostos u_pGetValImp(SA1->A1_COD+SA1->A1_LOJA,nPrcTab,nDesc,nQtdFis,@nValIcms,@nBaseICMS,@nValST,@nBaseST,@nValIPI,@nBaseIPI,@cAliqIPI,@cAliqICMS,@cAliqST,@cTes, @cCodOper,cLumOper) cComis := SB1->B1_COMIS nValDesc:= nPrcTab * nDesc cPrcTab := TransForm((nPrcTab-nValDesc),PesqPict("SCK","CK_PRCVEN")) cTotalST:= Transform(((nPrcTab-nValDesc)+nValST),PesqPict("SCK","CK_PRCVEN")) aAdd(aRet,Alltrim(SB1->B1_UM)) aAdd(aRet,Alltrim(cPrcTab)) aAdd(aRet,Alltrim(Transform(nValIcms,PesqPict("SCK","CK_XVALICM")))) aAdd(aRet,Alltrim(Transform(nValIPI,PesqPict("SCK","CK_XVALIPI")))) aAdd(aRet,Alltrim(cValtoChar(nValST))) aAdd(aRet,cAliqIPI) aAdd(aRet,cAliqICMS) aAdd(aRet,cValtochar(SB1->B1_QE)) aAdd(aRet,cTES) aAdd(aRet,cValtoChar(nBaseICMS)) aAdd(aRet,cValtoChar(nBaseST)) aAdd(aRet,cValtoChar(nBaseIPI)) aAdd(aRet,cAliqST) cHtml := "OK:" cHtml += aRet[1]+cSepField+aRet[2]+cSepField+aRet[3]+cSepField+aRet[4]+cSepField+aRet[5]+cSepField+aRet[6]+cSepField+aRet[7]+cSepField+aRet[8] cHtml +=cSepField+aRet[9]+cSepField+aRet[10]+cSepField+aRet[11]+cSepField+aRet[12]+cSepField+aRet[13] Else cHtml := "Falha ao calcular impostos" Endif Web Extended end Return cHtml /*__________________________________________________________________________ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¦¦+-----------------------------------------------------------------------+¦¦ ¦¦¦Funçäo ¦ GetCodOper ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 07.10.24 ¦¦¦ ¦¦+----------+------------------------------------------------------------¦¦¦ ¦¦¦Descriçäo ¦ Busca o código de operação para cálculo da TES Inteligente ¦¦¦ ¦¦+-----------------------------------------------------------------------+¦¦ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ */ Static Function pGetCodOper(cLumOper) Local cCod:= "" // M->C5_TIPOPER:= '1' // M->C5_TIPOCLI:= SA1->A1_TIPO M->CJ_TIPOPER:= cvaltochar(cLumOper) M->CJ_TIPOCLI:= SA1->A1_TIPO cCod:= u_OperaO() conout("------>>>>> operação: "+cCod) Return cCod /*__________________________________________________________________________ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¦¦+-----------------------------------------------------------------------+¦¦ ¦¦¦Funçäo ¦ GetCliEnd ¦ Autor ¦ Matheus Bientinezi¦ Data ¦ 19.11.17 ¦¦¦ ¦¦+----------+------------------------------------------------------------¦¦¦ ¦¦¦Descriçäo ¦ Função para buscar o endereço do cliente. ¦¦¦ ¦¦+-----------------------------------------------------------------------+¦¦ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ */ User Function GetCliEnd() Local cHtml Local cCliente := Alltrim(HttpPost->Cliente) local aRet := {} Local cSepField := "|#|" Web Extended Init cHtml Start U_inSite() If Empty(HttpSession->CodVend) cHtml:= '' Return cHtml endif //Posiciona no cliente dbSelectArea("SA1") SA1->(dbSeek(xFilial("SA1")+cCliente)) aAdd(aRet,Alltrim(SA1->A1_EST)) //0 aAdd(aRet,Alltrim(SA1->A1_COD_MUN)) //1 aAdd(aRet,Alltrim(SA1->A1_END)) //2 aAdd(aRet,Alltrim(SA1->A1_MUN)) //3 aAdd(aRet,Alltrim(SA1->A1_BAIRRO)) //4 aAdd(aRet,Alltrim(SA1->A1_CEP)) //5 aAdd(aRet,Alltrim(SA1->A1_COMPLEM)) //6 cHtml := "OK:" cHtml += aRet[1]+cSepField+aRet[2]+cSepField+aRet[3]+cSepField+aRet[4]+cSepField+aRet[5]+cSepField+aRet[6]+cSepField+aRet[7] Web Extended end Return cHtml