#include "PROTHEUS.CH" #include "RWMAKE.CH" #include "APWEBEX.CH" #include "TOPCONN.CH" #include "TBICONN.CH" #DEFINE SMSDEBUG /*__________________________________________________________________________ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¦¦+-----------------------------------------------------------------------+¦¦ ¦¦¦Funçäo ¦ MntOrc ¦ Autor ¦ Lucilene Mendes ¦ Data ¦28.08.17 ¦¦¦ ¦¦+----------+------------------------------------------------------------¦¦¦ ¦¦¦Descriçäo ¦ Manutenção de Pedido de Venda. ¦¦¦ ¦¦+-----------------------------------------------------------------------+¦¦ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/ User Function MntPed() Local cHtml Local cItem := "" Local nPosFrete := 0 Local nPerCom := 0 Local nValCom := 0 Local nOpc := 0 Local nLin := 0 Local f := 0 Local lMoeda := .F. Local lNumber := .F. Local lVencido := .F. Local aTpFrete := {} Local nRecSC5 := 0 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\pedidos\" Private cDirPortal := "" Private cEndServ := "" // Endereço do servidor da pagina de Portal Private cOrcCabec := "" Private cOrcItens := "" Private cItensHid := "" Private cBotoes := "" Private cBtnItens := "" Private cOptUF := "" Private cOptMun := "" Private cOptProd := "" Private cOptCond := "" Private cOptModal := "" Private cTblDesc := "" Private cCodOrc := "" Private cTabela := "" Private cCliente := "" Private cContato := "" Private cContDDD := "" Private cContTel := "" Private cTpCliente := "" Private cGrpTrib := "" Private cCondPag := "" Private cLocalEnt := "" Private cObra := "" Private cStatusObra := "" Private cIntermed := "" Private cOport := "" Private cRevOpt := "" Private cRegional := "" Private cTpFrete := "" Private cValFre := "" Private cPrazoEmb := "" Private cEstudo := "" Private cNumEst := "" Private cPrevFecha := "" Private cMargemCont := "" Private cTransp := "" Private cRedesp := "" Private cOptCli := "" Private cTotalReg := "" Private cEntrega := "" Private cValidade := "" Private cFatPar := "" Private cEstagPv := "" Private cMailNf := "" Private cEnvpb := "" Private cComRT := "" Private cJust := "" Private cMenNota := "" Private cMenNota1 := "" Private cMenNota2 := "" Private cMenNota3 := "" Private cDesFat := "" Private cObsCom := "" Private cComent := "" Private cFilPed := "" private cFILORC := "" private cRETORNO := "" private cSEGMENTO := "" private cPROSP := "" private cPROSPPOR := "" private cPFRETE := "" 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 := .F. Private lEdit := .F. Private lCopy := .F. Private cShowDesc := "false" Private aItens := {} Private aAnexos := {} 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]) cOpcao := HttpGet->opc if !empty(HttpGet->rec) nRecSC5 := val(HttpGet->rec) EndIf lEdit := .F. lDele := .F. Do Case Case cOpcao == "view" nOpc:= 2 cPagina += " - Visualizar" Case cOpcao == "edit" nOpc:= 4 cPagina += " - Alterar" lEdit := .T. Case cOpcao == "dele" nOpc:= 5 cPagina += " - Excluir" lDele := .T. Case cOpcao == "copy" nOpc = 3 cPagina += " - Copiar" lEdit := .T. lCopy := .T. EndCase //Posiciona no Pedido If !Empty(nRecSC5) dbSelectArea("SC5") SC5->(dbGoTo(nRecSC5)) //Troca de filial u_PTChgFil(SC5->C5_FILIAL) dbSelectArea("SC5") SC5->(dbGoTo(nRecSC5)) dbSelectArea("SC6") SC6->(DbSetOrder(1)) SC6->(dbgotop()) SC6->(dbSeek(xFilial("SC6")+SC5->C5_NUM)) dbSelectArea("SA1") SA1->(DbSetOrder(1)) SA1->(dbgotop()) SA1->(dbSeek(xFilial("SA1")+SC5->C5_CLIENTE+SC5->C5_LOJACLI)) Endif cCodOrc:= '
' cFilPed+= '
' cFilPed+= ' ' cFilPed+= ' ' //cFilPed+= ' ' cFilPed+= '
' cCodOrc+= '
' cCodOrc+= ' ' cCodOrc+= ' ' cCodOrc+= '
' cCodOrc+= '
' //Cliente If lEdit .or. lCopy cCliente:='
cCliente+=' C5_CLIENTE+'/'+SC5->C5_LOJACLI+' - '+Alltrim(Posicione("SA1",1,xFilial("SA1")+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_NOME"))+'" />' cCliente+=' cCliente+='
cOptCli+= u_ListaCli(cVendLogin,"", 'S') HttpSession->Cliente:= SC5->C5_CLIENTE+SC5->C5_LOJACLI Else cCliente:='' Endif //Oportunidade cOport:= '' // cRevOpt:= '' //Combo da tabela de preço cTabPadrao:= GetNewPar("PR_TABPADR","001") cTabela:='' //Tipo de cliente Posicione("SA1",1,xFilial("SA1")+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_TIPO") cTpCliente:='' //Grupo de tributação do cliente cGrpTrib:= '' //End. Opc. Ent. cEndOpc:= '' //Contato cEndCep := '' cEndRua := '' cEndNum := '' cEndBair:= '' cEndMun := '' cEndUF := '' cEndRef := '' cUsuEmiss:= '' //Cliente de Entrega cCliEntr:='' //Local de entrega cLocalEnt:= '
' cLocalEnt+= ' ' //onchange="javascript:atuVlrFrete();" cLocalEnt+=' ' cLocalEnt+='
' //Alimenta os estados cOptUF:= u_ListaUF() //Nome da obra // cObra:= ' ' //cStatusObra:= ' C5_VEND6))+'" '+Iif(lCopy .or. lEdit,'','disabled')+' >' // aStObra:= RetSx3Box(Posicione('SX3',2,'C5_VEND6','X3CBox()'),,,1) // cStatusObra:='' //Seleciona as condições de pagamento disponíveis no combo cCondPag:='' //Previsão Fechamento // aPrevisao:= {{"B","Balizador"},{"A","30/120 dias"},{"V","Em 30 dias"},{"M","Após 4 meses"},{"C","Concorrência"}} // //cPrevFecha:= ' ' // cPrevFecha:='' //Intermediador // If !(lEdit .or. lCopy) // cIntermed:='' //Retorno // nDiasVal:= 0 // cRetorno:='C5_RETORNO)+'" '+Iif(lCopy .or. lEdit,'','disabled')+'>' //Estudo Luminotécnico //cEstudo:= ' CJ_LUMINOT))+'" '+Iif(lCopy .or. lEdit,'','disabled')+' >' // aEstd:= RetSx3Box(Posicione('SX3',2,'CJ_LUMINOT','X3CBox()'),,,1) // aSort(aEstd) // cEstudo:='' // cNumEst:= ' ' //Segmento // aSegmen:= RetSx3Box(Posicione('SX3',2,'CJ_SEGMENT','X3CBox()'),,,1) // cSegmento:='' //Prospecção // aProsp:= RetSx3Box(Posicione('SX3',2,'C5_PROPECC','X3CBox()'),,,1) // aSort(aProsp) // cProsp:='' //Prospectado por // aProsp:= RetSx3Box(Posicione('SX3',2,'C5_PROSCOD','X3CBox()'),,,1) // cProspPor:='' //Regional cRegional:='' //Vendedor do cliente cVend2:= '' //Vendedor da oportunidade cVend3:='' //Vendedor 4 cVend4:= '' //Especificado por // cEspecif:= '' //Negociadora cNegociad:= '' //Validade do Pedido // nDiasVal:= GetNewPar("PR_DTVALID",10) // cValidade:='C5_VALIDA)+'" '+Iif(lCopy .or. lEdit,'','disabled')+'>' //Data de entrega cEntrega:='C5_DATENTR)+'" '+Iif(lCopy .or. lEdit,'','disabled')+'>' //Prazo de embarque // cPrazoEmb:= '' //Tipo de frete aTpFrete:= {{"S","Sem Frete"},{"C","CIF"},{"F","FOB"},{"T","Por conta de Terceiros"}, {"R","Por conta do remetente"}, {"D","Por conta do destinatário"}} cTpFrete:='' For f:= 1 to Len(aFatPar) cFatPar+=' ' Next cFatPar+='' //Estagio PV aEstagPv:= {{"1","Um"},{"2","Dois"},{"3","Três"},{"4","Quatro"},{"5","Cinco"},{"6","Seis"},{"7","Sete"}} cEstagPv:='' //T. Oper. Lum aOperLum:= {{"T",""},{"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:= 'C5_MAILNF+'" '+Iif(lCopy .or. lEdit,'','disabled')+'>' //Data Emissao cEmissao:='C5_EMISSAO)+'" '+Iif(lCopy .or. lEdit,'','disabled')+'>' //Envia Pato Branco aEnvpb:= {{"T",""},{"SIM","Sim"},{"NAO","Não"}} cEnvpb:='' // cPFrete:= 'C5_PERCFRT,"@E 999.99")+'" '+Iif(lCopy .or. lEdit,'','disabled')+'>' cValFre:= 'C5_FRETE,"@E 999,999,999,999.99")+'" ' cValFre+= Iif((!lCopy .and. !lEdit) ,'disabled','')+'>' //% RT cComRT:= 'C5_COMISTR,PesqPict("SC5","C5_COMISTR"))+'" '+Iif(lCopy .or. lEdit,'','disabled')+'>' //Observação Comercial // cObsCom:= SC5->C5_OBS //Comentario cComent:= SC5->C5_COMENT //Justificativa atraso cJust:= SC5->C5_JUS //Mensagem Nota cMenNota:= SC5->C5_MENNOTA cMenNota1:= SC5->C5_MENNOT1 cMenNota2:= SC5->C5_MENNOT2 cMenNota3:= SC5->C5_MENNOT3 //Mensagem Nota cDesFat:= SC5->C5_DESCFAT //Margem de Contribuição If HttpSession->Tipo <> "R" //Representante cMargemCont:= '
' cMargemCont+= ' ' cMargemCont+= ' ' cMargemCont+= '
' Endif cNumOp:= '
' cNumOp+= ' ' cNumOp+= ' '//'+u_getMCOrc() + "%"+' cNumOp+= '
' //Num Orc // If HttpSession->Tipo <> "R" //Representante cNumOrc:= '
' cNumOrc+= ' ' cNumOrc+= ' '//'+u_getMCOrc() + "%"+' cNumOrc+= '
' // Endif //Transportadora cTransp:='' //Redespacho cRedesp:='' /* //Validade do Pedido nDiasVal:= GetNewPar("PR_DTVALID",3) cValidade:='C5_VALIDA))+'" disabled>' //Peso cPeso:= 'C5_XPESO)+'" '+Iif(lCopy .or. lEdit,'',' disabled')+'>' //Volume cVolume:= 'C5_XVOLUME)+'"'+Iif(lCopy .or. lEdit,'',' disabled')+'>' //Espécie cEspecie:= 'C5_XESPECI)+'"'+Iif(lCopy .or. lEdit,'',' disabled')+' maxlength="10">' //Combo da tabela de preço cTabela:='' HttpSession->Tabela:= SC5->C5_TABELA */ //Preenchimento dos itens /* aItens - array que define o cabeçalho da tabela de produtos [1] - Nome da coluna [2] - Nome do campo [3] - Tamanho [4] - Alinhamento [5] - Tipo [6] - Editável [7] - Obrigatório [8] - Moeda [9] - Placeholder [10]- Hidden [11] - MaxLength */ aAdd(aItens, {"Item","C6_ITEM","*","text-left","C",.F.,.F.,.F.,"",.F.,""}) aAdd(aItens, {"Produto","C6_PRODUTO","300px"," text-left","C",lEdit,.T.,.F.,"Selecione...",.F.,""}) aAdd(aItens, {"Unidade","C6_UM","40px"," text-left","C",.F.,.T.,.F.,"",.F.,""}) aAdd(aItens, {"Quant.","C6_QTDVEN","*"," text-right only-numbers","N",lEdit,.T.,.F.,"0",.F.,""}) aAdd(aItens, {"Vlr Unitário","C6_PRCVEN","*"," text-right","N",.T.,.F.,.T.,"0,00",.F.,""}) // aAdd(aItens, {"Vlr Lista","C6_PRUNIT","*"," text-right","N",.T.,.F.,.T.,"0,00",.F.,""}) aAdd(aItens, {"Total","C6_VALOR","*"," text-right","N",.F.,.T.,.T.,"0,00",.F.,""}) aAdd(aItens, {"Data Ent.","C6_ENTREG","*"," text-right","C",.T.,.F.,.F.,"",.F.,"10"}) aAdd(aItens, {"Tip. Oper.","C6_OPER","100px"," text-left","C",.T.,.T.,.F.,"Selecione...",.F.,""}) aAdd(aItens, {"Tip. Saida","C6_TES","100px"," text-left","C",.T.,.T.,.F.,"Selecione...",.F.,""}) aAdd(aItens, {"Cod. Fisc.","C6_CF","100px"," text-left","C",.T.,.T.,.F.,"Selecione...",.F.,""}) // aAdd(aItens, {"NCM","C6_POSIPI","100px"," text-left","C",.F.,.T.,.F.,"Selecione...",.F.,""}) aAdd(aItens, {"% Comis 2","C6_COMIS2","*"," text-right ","N",.T.,.F.,.T.,"0,00",.F.,""}) aAdd(aItens, {"% Comis 3","C6_COMIS3","*"," text-right ","N",.T.,.F.,.T.,"0,00",.F.,""}) // aAdd(aItens, {"% Comis 4","C6_COMIS4","*"," text-right ","N",.F.,.F.,.T.,"0,00",.F.,""}) aAdd(aItens, {"Ped. Cli.","C6_PEDCLI","*"," text-left","C",.T.,.F.,.F.,"",.F.,"80"}) aAdd(aItens, {"I.Ped.Cli.","C6_IPEDCLI","*"," text-left","C",.T.,.F.,.F.,"",.F.,"80"}) aAdd(aItens, {"Vlr c/ Impostos","C6_XPRCIMP","*","text-right","N",.F.,.F.,.T.,"0,00",.T.,""}) aAdd(aItens, {"Vlr de Venda","iC6_PRCVEN","*"," text-right myformato","N",.F.,.T.,.T.,"0,00",.T.,""}) aAdd(aItens, {"Custo","C6_CUSTO","*"," text-right myformato","N",.F.,.F.,.T.,"0,00",.T.,""}) aAdd(aItens, {"IPI","C6_XVALIPI","*"," text-right","N",.T.,.F.,.T.,"0,00",.T.,""}) aAdd(aItens, {"ICMS","C6_XVALICM","*"," text-right","N",.T.,.F.,.T.,"0,00",.T.,""}) aAdd(aItens, {"ICMS ST","C6_XICMST","*"," text-right","N",.T.,.F.,.T.,"0,00",.T.,""}) aAdd(aItens, {"% Desconto","C6_DESCONT","*"," text-right percentual","N",.T.,.F.,.T.,"0,00",/*Iif(HttpSession->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 += ''+aItens[nLin][1]+'' Next dbSelectArea("SC6") SC6->(dbSeek(SC5->C5_FILIAL+SC5->C5_NUM)) While SC6->(!Eof()) .and. SC6->C6_FILIAL == SC5->C5_FILIAL .and. SC6->C6_NUM == SC5->C5_NUM nItens++ cItem := StrZero(nItens,TamSX3("C6_ITEM")[1]) Posicione("SB1",1,xFilial("SB1")+SC6->C6_PRODUTO,"B1_DESC") If SB5->(MsSeek(xFilial("SB5")+SC6->C6_PRODUTO)) If SB5->B5_DTVLESP + 30 < dDataBase lVencido:= .T. Endif Endif cOrcItens += '' // nTImpostos += SC6->(C6_ST+C6_IPI) nTQtdItem += SC6->C6_QTDVEN nTVlrUnit += Round(SC6->C6_QTDVEN * SC6->C6_PRCVEN,2) // nTVlrSDesc+= nTVlrUnit - SC6->C6_VLDSCAC nTTotal += SC6->C6_VALOR // + SC6->(C6_IPI+C6_ST) // nPerCom:= SC6->C6_COMIS1 // nValCom:= SC6->C6_COMISSA //(SC6->C6_QTDVEN * SC6->C6_PRCVEN) * (nPerCom/100) // nTComiss+= nValCom // gera os produtos de acordo com o Cliente e Tabela cOptProd := u_GetProdOrc(SC5->C5_CLIENTE, SC5->C5_TABELA, "") For nLin := 1 to Len(aItens) If aItens[nLin,2] == "ACAO" cOrcItens += '' If lEdit .or. lCopy //!lDele //cOrcItens += ' ' //cOrcItens += ' ' If lEdit .or. lCopy cOrcItens += ' Endif Endif If !lDele cOrcItens += ' ' Endif 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_PRODUTO" xValue := AllTrim(SC6->&(aItens[nLin][2]))+' - '+Alltrim(SB1->B1_DESC) Else xValue := AllTrim(SC6->&(aItens[nLin][2])) Endif Case aItens[nLin][5] == 'N' If aItens[nLin,2] == "C6_QTDVEN" xValue := Iif(lNewOrc,"",Alltrim(cvaltochar(SC6->&(aItens[nLin][2])))) ElseIf aItens[nLin,2] == "PER_COM" xValue := Iif(lNewOrc,"",Alltrim(PadR(TransForm(nPerCom,PesqPict("SD2","D2_COMIS1")),TamSX3("D2_COMIS1")[1]))) ElseIf aItens[nLin,2] == "VAL_COM" xValue := Iif(lNewOrc,"",Alltrim(PadR(TransForm(nValCom,PesqPict("SC6","C6_PRCVEN")),TamSX3("C6_PRCVEN")[1]))) ElseIf aItens[nLin,2] == "iC6_PRCVEN" //xValue := Iif(lNewOrc,"",Alltrim(cvaltochar(SC6->C6_PRCVEN))) xValue := Iif(lNewOrc,"",Alltrim(TransForm(SC6->C6_PRCVEN,PesqPict("SC6","C6_PRCVEN")))) Elseif aItens[nLin,2] == "C6_PRCVEN" xValue := Alltrim(TransForm(SC6->C6_PRUNIT,PesqPict("SC6","C6_PRUNIT"))) Elseif aItens[nLin,2] == "C6_VALOR" xValue := Alltrim(TransForm(SC6->(C6_VALOR/*+C6_XVALIPI+C6_XICMST*/),PesqPict("SC6",aItens[nLin,2]))) Else If SC6->(FieldPos(aItens[nLin][2])) > 0 xValue := Alltrim(TransForm(SC6->&(aItens[nLin][2]),PesqPict("SC6",aItens[nLin,2]))) Else xValue := "" Endif Endif EndCase If aItens[nLin,6] //Campo Editável If aItens[nLin,2] == "C6_PRODUTO" //Cria o select para o produto If lEdit .or. lCopy cOrcItens +='
' cOrcItens +='
cOrcItens +='
cOrcItens +=' C6_PRODUTO)+' -- '+Alltrim(SB1->B1_DESC)+'" >' cOrcItens +=' cOrcItens +='
cOrcItens +='
cOrcItens +='
Else cOrcItens +='' Endif Else cOrcItens += ' "C6_QTDVEN" .And. !(aItens[nLin,2] $ "C6_DESCONT") //.And. aItens[nLin,2] <> "C6_XPEDCLI" .And. aItens[nLin,2] <> "C6_XITEMCL" cOrcItens += 'disabled ' EndIf Else cOrcItens += 'disabled ' EndIf cOrcItens += 'value="'+Alltrim(xValue)+'">' Endif Else cOrcItens += '' Endif Endif cOrcItens += '' Next //Inputs Hidden //cItensHid += '' //cItensHid += '' //cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cItensHid += '' cOrcItens+=cItensHid SC6->(dbSkip()) End //nTAcresc:= Round(nTTotal*(nAcresc/100),2) nTTotal+= nTFrete //nTTotal+= nTFrete+nTAcresc cOrcItens += '' cOrcItens += ' cOrcItens += 'C5_NUM)+'" />' cOrcItens += '' cOrcItens += '' // cOrcItens += 'C5_DSDIRET))+'" />' cOrcItens += '' cOrcItens += '' //Adiciona os botões de ações na tabela de itens If lEdit cBtnItens+='
' cBtnItens+='
' cBtnItens+=' ' cBtnItens+='
' cBtnItens+='
' Endif //Adiciona os botões da página If lEdit //cBotoes+='
Pedido válido apenas dentro do mês de '+MesExtenso(SC5->C5_EMISSAO)+' de '+cvaltochar(Year(SC5->C5_EMISSAO))+'.
' cBotoes+=''+chr(13)+chr(10) Elseif lDele cBotoes+=''+chr(13)+chr(10) Endif 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 ¦ ExcOrc ¦ Autor ¦ Anderson Zelenski ¦ Data ¦10.12.17 ¦¦¦ ¦¦+----------+------------------------------------------------------------¦¦¦ ¦¦¦Descriçäo ¦ Exclui o Pedido de Venda ¦¦¦ ¦¦+-----------------------------------------------------------------------+¦¦ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/ User Function ExcPed() Local cHtml Local nOpc := 5 // 3- Incluir / 4- Alterar / 5- Excluir Local cCliente := "" Local cLoja := "" Local cNumOrc := "" Local cDirErro := "erro\" Private cReturn Private aCabSC5 :={} Private aItemSC5:={} Private aLinhaSC5:={} Private lMsErroAuto:= .F. Private cCodLogin := "" Private cVendLogin:= "" Private INCLUI := .F. Private ALTERA := .F. Web Extended Init cHtml Start U_inSite() //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 cVendLogin := u_GetUsrPR() cCodLogin := U_SetParPR(cVendLogin) //Variáveis do cabeçalho cCliente:= Left(HttpPost->C5_CLIENTE,6) cLoja:= Right(HttpPost->C5_CLIENTE,6) cNumOrc:= HttpPost->C5_NUM nModulo:= 5 //Posiciona nas tabelas If !Empty(cCliente) Posicione("SA1",1,xFilial("SA1")+Alltrim(HttpPost->C5_CLIENTE),"A1_COD") Endif //Posiciona no Pedido Posicione("SC5",1,xFilial("SC5")+cNumOrc,"C5_NUM") cFilOrc:= SC5->C5_FILIAL //Monta o cabeçalho aadd(aCabSC5,{"C5_NUM",cNumOrc,Nil}) aadd(aCabSC5,{"C5_CLIENTE",SA1->A1_COD,Nil}) aadd(aCabSC5,{"C5_LOJA", SA1->A1_LOJA ,Nil}) aLinhaSC5:={} //Monta os itens lMsErroAuto:= .F. //Chama execauto para inclusão do Pedido If Len(aCabSC5) > 0 MATA410(aCabSC5,aItemSC5,nOpc) Else conout(Procname()+"("+ltrim(str(procline()))+") *** Portal "+"FALHA AO EXCLUIR O Pedido!") lMsErroAuto:= .T. Endif If lMsErroAuto If !ExistDir(cDirErro) MakeDir(cDirErro) Endif cDirErro+=dtos(date()) If !ExistDir(cDirErro) MakeDir(cDirErro) Endif //Grava o erro MostraErro(cDirErro,"erro_orcto_"+strtran(time(),":","")+".txt") cHtml:= "erro" Else SC5->(dbGoBottom()) cHtml:= SC5->C5_NUM EndIf Web Extended End Return (cHTML) /*__________________________________________________________________________ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¦¦+-----------------------------------------------------------------------+¦¦ ¦¦¦Funçäo ¦ GetMCOrc ¦ Autor ¦ Anderson Zelenski ¦ Data ¦ 02.12.23 ¦¦¦ ¦¦+----------+------------------------------------------------------------¦¦¦ ¦¦¦Descriçäo ¦ Função para calcular a margem de contribuição do Pedido. ¦¦¦ ¦¦+-----------------------------------------------------------------------+¦¦ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/ User Function GetMCPed() Local cMargem := "" Local cQry := "" Local nMkt := 0 Local nMktP := 0 Local nMC := 0 Local nMC_T := 0 Local nMCTotIt := 0 Local nCusto := 0 Local nICMS := 0 Local nComis2 := 0 Local nComis3 := 0 Local nPIS := 0 Local nCofins := 0 Local nComissao := 0 Local nRT := 0 Local nIPI := 0 Local nFrete := 0 Local nSubsTrb := 0 Local nSubsCus := 0 Local nST := 0 Local nINSSP := 0 Local nRecLiq := 0 Local nMargemT := 0 cQry:= "Select * From "+RetSqlName("SC6")+" SC6 " cQry+= "Inner Join "+RetSqlName("SB1")+" SB1 ON B1_FILIAL = '"+xFilial("SB1")+"' AND B1_COD = C6_PRODUTO AND SB1.D_E_L_E_T_ = ' ' " cQry+= "Where C6_FILIAL = '"+SC5->C5_FILIAL+"' " cQry+= "AND C6_NUM = '"+SC5->C5_NUM+"' " cQry+= "AND SC6.D_E_L_E_T_ = ' ' " If Select("TMP1") > 0 TMP1->(dbCloseArea()) Endif TcQuery cQry New Alias "TMP1" // passa por todos os itens do pedido While !TMP1->(EOF()) nMkt := 0 nCusto := TMP1->C6_CUSTO nICMS := TMP1->C6_ICMS nComis2 := TMP1->C6_COMIS1 nComis3 := TMP1->C6_COMIS3 nPIS := TMP1->C6_PIS nCofins := TMP1->C6_COFINS nComissao := TMP1->C6_COMISSA nRT := TMP1->C6_RT nIPI := TMP1->C6_IPI nFrete := TMP1->C6_FRETE nSubsTrb := TMP1->C6_SUBSTRB nSubsCus := TMP1->C6_SUBSCUS nST := TMP1->C6_ST nINSSP := TMP1->C6_INSSP // calcula receita liquida nRecLiq := TMP1->C6_VALOR - nICMS - nPIS - nCofins - nINSSP // se existe o campo de % do mkt If TMP1->(FieldPos("C6_MKTP")) > 0 nMktP:= TMP1->C6_MKTP Endif // se existe o campo de vlr de mkt If TMP1->(FieldPos("C6_MKT")) > 0 nMkt:= TMP1->C6_MKT Endif // calcula o valor da margem nMC:= ((TMP1->C6_VALOR - nCusto - nICMS - nPIS - nCofins - nFrete - nComissao - nINSSP - nRT - nMkt) + nSubsTrb + nSubsCus) // Carrega as Variaveis Totalizador Pedido, Luminarias e Equipamentos. If Alltrim(TMP1->B1_TIPO) == "CO" .AND. Alltrim(TMP1->B1_GRUPO) == "ELEV" // soma a margem total nMC_T := nMC_T + (TMP1->C6_VALOR * -1) // soma o valor total nMCTotIt := nMCTotIt + TMP1->C6_VALOR Else // se nao é do grupo pan e nao são acessorios de painel de led If Alltrim(TMP1->B1_GRUPO) <> 'PAN' .and. !(AllTrim(TMP1->C6_PRODUTO) $ "ACS-LHT44BC/ACS-LHT44PT") // soma a margem total nMC_T := nMC_T + nMC // soma o valor total nMCTotIt := nMCTotIt + TMP1->C6_VALOR EndIf EndIf TMP1->(dbSkip()) End cMargem:= Transform(((nMC_T / nMCTotIt)*100),"@E 9999.99") Return cMargem