'
// 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