123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320 |
- #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 Orçamento de Venda. ¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
- User Function MntOrc()
- Local cHtml
- Local cItem := ""
- Local nPosFrete := 0
- Local nPerCom := 0
- Local nValCom := 0
- Local nValDesc := 0
- Local nVlrProd := 0
- Local nTotValor := 0
- Local nOpc := 0
- Local nLin := 0
- Local f := 0
- Local lMoeda := .F.
- Local lNumber := .F.
- Local lVencido := .F.
- Local aTpFrete := {}
- Local nRecSCJ := 0
- private cLisPar := ""
- private cParUs := ""
- Private cFilVen := ""
- Private cCodLogin := ""
- Private cVendLogin := ""
- Private cVendedor := ""
- Private cSite := "u_PortalLogin.apw"
- Private cPagina := "Orçamento 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 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 cOptCli := ""
- Private cOptInter := ""
- Private cTotalReg := ""
- Private cLisPar := ""
- Private cParUs := ""
- Private cMgItens := ""
- //Private cEntrega := ""
- //Private cValidade := ""
- 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 nMargem := 0
- Private nMLuminaria := 0
- Private nMEquipa := 0
- Private nMPainel := 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:= '<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 := "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("CK_ITEM")[1])
- cOpcao := HttpGet->opc
- cParUs := GetMv('LC_FA074G1')
-
- if !empty(HttpGet->rec)
- nRecSCJ := 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 Orçamento
- If !Empty(nRecSCJ)
- dbSelectArea("SCJ")
- SCJ->(dbGoTo(nRecSCJ))
-
- //Troca de filial
- u_PTChgFil(SCJ->CJ_FILIAL)
-
- dbSelectArea("SCJ")
- SCJ->(dbGoTo(nRecSCJ))
-
- dbSelectArea("SCK")
- SCK->(DbSetOrder(1))
- SCK->(dbgotop())
- SCK->(dbSeek(xFilial("SCK")+SCJ->CJ_NUM))
- dbSelectArea("SA1")
- SA1->(DbSetOrder(1))
- SA1->(dbgotop())
- SA1->(dbSeek(xFilial("SA1")+SCJ->CJ_CLIENTE+SCJ->CJ_LOJA))
- Endif
- cLisPar:='<select class="form-control" name="parceiro" id="cmbParceiro"> '
- cLisPar+= '<option value="">Selecione...</option>'
- cLisPar+= U_GETPARC()
- cLisPar+='</select>'
- cFilOrc:= '<div class="row form-group">'
- cFilOrc+= ' <div class="col-lg-2">'
- cFilOrc+= ' <label class="control-label">Filial</label>'
- cFilOrc+= ' <input id="CJ_FILIAL" name="CJ_FILIAL" class="form-control" value="'+SCJ->CJ_FILIAL+'" disabled >'
- //cFilOrc+= ' <input id="CJ_VEND" name="CJ_VEND" type="hidden" value="'+SCJ->CJ_VEND+'">'
- cFilOrc+= ' </div>'
- cCodOrc:= ' <div class="col-lg-2">'
- cCodOrc+= ' <label class="control-label">Número</label>'
- cCodOrc+= ' <input id="CJ_NUM" name="CJ_NUM" class="form-control" value="'+SCJ->CJ_NUM+'" disabled >'
- cCodOrc+= ' <input type="hidden" id="RECCJANT" name="RECCJANT" value="" >'
- cCodOrc+= ' </div>'
- cCodOrc+= '</div>'
-
- //Cliente
- If lEdit .or. lCopy
- cCliente:=' <div class="flexContainer">
- cCliente+=' <input type="text" class="form-control smsediticon" placeholder="Digite o código, CPF/CNPJ ou Razão Social..." '
- cCliente+=' name="CJ_CLIENTE" id="CJ_CLIENTE"'
- cCliente+=' aria-required="true" data-live-search="true" '
- cCliente+=' autocomplete="off" value="'+SCJ->CJ_CLIENTE+'/'+SCJ->CJ_LOJA+' - '+Alltrim(Posicione("SA1",1,xFilial("SA1")+SCJ->CJ_CLIENTE+SCJ->CJ_LOJA,"A1_NOME"))+'" />'
-
- cCliente+=' <button class="btSearchCli" id="btSearchCli">'
- cCliente+=' <i class="fa fa-search" alt="Pesquisar"></i>'
- cCliente+=' </button>
- cCliente+=' </div>
-
- cOptCli+= u_ListaCli(cVendLogin,"",'S')
- HttpSession->Cliente:= SCJ->CJ_CLIENTE+SCJ->CJ_LOJA
- Else
- cCliente:='<select data-plugin-selectTwo class="form-control populate placeholder" data-plugin-options='+"'"
- cCliente+='{ "placeholder": "Selecione um Cliente", "allowClear": false }'+"'"+' name="CJ_CLIENTE" id="CJ_CLIENTE" '
- cCliente+=' disabled >' //value='+SCJ->CJ_CLIENTE+SCJ->CJ_LOJA+'
- cCliente+=' <option value='+SCJ->CJ_CLIENTE+SCJ->CJ_LOJA+'>'+SCJ->CJ_CLIENTE+'/'+SCJ->CJ_LOJA+' - '+Alltrim(Posicione("SA1",1,xFilial("SA1")+SCJ->CJ_CLIENTE+SCJ->CJ_LOJA,"A1_NOME"))+'</option>'
- cCliente+='</select>'
- Endif
- //Oportunidade
- cOport:= '<input id="CJ_NROPOR" name="CJ_NROPOR" class="form-control" value="'+SCJ->CJ_NROPOR+'" disabled >'
-
- cRevOpt:= '<input id="CJ_REVISA" name="CJ_REVISA" class="form-control" value="'+SCJ->CJ_REVISA+'" disabled>'
- //Combo da tabela de preço
- cTabPadrao:= GetNewPar("PR_TABPADR","001")
- cTabela:='<select data-plugin-selectTwo class="form-control populate placeholder" data-plugin-options='+"'"
- cTabela+='{ "placeholder": "Selecione", "allowClear": false }'+"'"+' name="CJ_TABELA" id="CJ_TABELA" '
- cTabela+='</select>'
- //Tabela de preço por filial
- cQry:= "SELECT DA0_CODTAB, DA0_DESCRI "
- cQry+= "FROM "+RetSqlName("DA0")+" DA0 "
- cQry+= "WHERE DA0_FILIAL = '"+xFilial("DA0")+"'
- cQry+= "AND DA0_ATIVO = '1' "
- cQry+= "AND (DA0_DATATE = '' OR DA0_DATATE >= '"+dtos(dDataBase)+"') "
- cQry+= "AND DA0.D_E_L_E_T_ = ' ' "
- If Select("QFIL") > 0
- QFIL->(dbCloseArea())
- Endif
- TcQuery cQry New Alias "QFIL"
- While QFIL->(!Eof())
- cTabela+=' <option value="'+Alltrim(QFIL->DA0_CODTAB)+'" '+Iif(QFIL->DA0_CODTAB == SCJ->CJ_TABELA,'selected','')+'>'+Alltrim(QFIL->DA0_CODTAB)+' - '+Alltrim(QFIL->DA0_DESCRI)+'</option>'
- QFIL->(dbSkip())
- End
- cTabela+='</select>'
- //Tipo de cliente
- Posicione("SA1",1,xFilial("SA1")+SCJ->CJ_CLIENTE+SCJ->CJ_LOJA,"A1_TIPO")
- cTpCliente:='<select data-plugin-selectTwo class="form-control populate placeholder" data-plugin-options='+"'"
- cTpCliente+='{ "placeholder": "Selecione um Cliente", "allowClear": false }'+"'"+' name="CJ_TIPOCLI" id="A1_TIPOCLI" '
- cTpCliente+=' disabled >'
- cTpCliente+=' <option value="'+SA1->A1_TIPO+'">'+X3COMBO("A1_TIPO",SA1->A1_TIPO)+'</option>'
- cTpCliente+='</select>'
- //Grupo de tributação do cliente
- cGrpTrib:= '<input id="CJ_GRPTRIB" name="CJ_GRPTRIB" class="form-control" value="'+SCJ->CJ_GRPTRIB+'" disabled>'
- //Contato
- cContato:= ' <input id="CJ_XCONTAT" name="CJ_XCONTAT" maxlength="'+cvaltochar(GetSX3Cache("CJ_XCONTAT","X3_TAMANHO"))+'" class="form-control" value="'+Alltrim(SCJ->CJ_XCONTAT)+'" '+Iif(lCopy .or. lEdit,'','disabled')+' >'
- cContDDD:= ' <input id="CJ_XCONDDD" name="CJ_XCONDDD" maxlength="'+cvaltochar(GetSX3Cache("CJ_XCONDDD","X3_TAMANHO"))+'" class="form-control only-numbers" value="'+Alltrim(SCJ->CJ_XCONDDD)+'" '+Iif(lCopy .or. lEdit,'','disabled')+' >'
- cContTel:= ' <input id="CJ_XCONTEL" name="CJ_XCONTEL" maxlength="'+cvaltochar(GetSX3Cache("CJ_XCONTEL","X3_TAMANHO"))+'" class="form-control only-numbers" value="'+Alltrim(SCJ->CJ_XCONTEL)+'" '+Iif(lCopy .or. lEdit,'','disabled')+' >'
-
-
- //Cliente de Entrega
- cCliEntr:='<select data-plugin-selectTwo class="form-control populate placeholder" data-plugin-options='+"'"
- cCliEntr+='{ "placeholder": "Selecione um Cliente", "allowClear": false }'+"'"
- cCliEntr+='name="CJ_CLIENT" id="CJ_CLIENT" '
- If lEdit .or. lCopy
- cCliEntr+='onchange="javascript:atuLocEnt();" '
- Else
- cCliEntr+='disabled'
- Endif
- cCliEntr+='>'
- If lEdit .or. lCopy
- cCliEntr+=' <option data-hidden="true"></option>'
- Endif
- // Localiza os clientes
- cCliEntr+= u_ListaCli(cVendLogin,"QRY->A1_COD+QRY->A1_LOJA==SCJ->CJ_CLIENT+SCJ->CJ_LOJAENT",'N')
- cCliEntr+='</select>'
- //Local de entrega
- cLocalEnt:= '<div class="flexContainer">'
- cLocalEnt+= ' <input id="CJ_UFENT" name="CJ_UFENT" class="form-control" value="'+Alltrim(SCJ->CJ_UFENT)+'" disabled>' //onchange="javascript:atuVlrFrete();"
- cLocalEnt+=' <button class="btEndEntrega" id="btEndEntrega">'
- cLocalEnt+=' <i class="fa fa-exchange" title="Alterar endereço"></i>'
- cLocalEnt+=' </button>'
- cLocalEnt+='</div>'
-
- //Alimenta os estados
- cOptUF:= u_ListaUF()
- //Nome da obra
- cObra:= ' <input id="CJ_OBRA" name="CJ_OBRA" maxlength="'+cvaltochar(GetSX3Cache("CJ_OBRA","X3_TAMANHO"))+'" class="form-control text-uppercase" value="'+Alltrim(Upper(SCJ->CJ_OBRA))+'" '+Iif(lCopy .or. lEdit,'','disabled')+' >'
-
- //cStatusObra:= ' <input id="CJ_VEND6" name="CJ_VEND6" class="form-control" value="'+Upper(X3COMBO("CJ_VEND6",SCJ->CJ_VEND6))+'" '+Iif(lCopy .or. lEdit,'','disabled')+' >'
- aStObra:= RetSx3Box(Posicione('SX3',2,'CJ_VEND6','X3CBox()'),,,1)
- cStatusObra:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"placeholder": "Selecione...", "minimumResultsForSearch": "-1"}'+"'"'
- cStatusObra+=' name="CJ_VEND6" id="CJ_VEND6" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
- cStatusObra+='<option value=""></option>'
- For f:= 1 to Len(aStObra)
- cStatusObra+=' <option value="'+Left(aStObra[f,1],2)+'" '+Iif(Left(aStObra[f,1],2)==Alltrim(SCJ->CJ_VEND6),'selected','')+'>'+aStObra[f,1]+'</option>'
- Next
- cStatusObra+='</select>'
- //Tipo da Obra
- cTpObra:='<select data-plugin-selectTwo class="form-control poulate mb-md" data-plugin-options='+"'"+'{"placeholder": "Selecione...", "minimumResultsForSearch": "-1"}'+"'"'
- cTpObra+=' name="CJ_YOBRATP" id="CJ_YOBRATP" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
- cTpObra+='<option value=""></option>'
-
- //Alimenta os tipos de obra
- cTpObra+= u_ListaObra(SCJ->CJ_YOBRATP)
- cTpObra+='</select>'
-
- //Seleciona as condições de pagamento disponíveis no combo
- cCondPag:='<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
- cCondPag+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="CJ_CONDPAG" id="CJ_CONDPAG" '
- cCondPag+='required="" aria-required="true" '+Iif(lCopy .or. lEdit,'','disabled')+' onchange="javascript:vldCond()">'
- cCondPag+=' <option value="'+SCJ->CJ_CONDPAG+'">'+SCJ->CJ_CONDPAG+" - "+Posicione("SE4",1,xFilial("SE4")+SCJ->CJ_CONDPAG,"E4_DESCRI")+'</option>'
- If lEdit
- //Verifica a tabela cadastrada no cliente
- SE4->(dbSeek(xFilial("SE4")+SA1->A1_COND))
-
- //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' "
- cQry+= " And E4_CODIGO NOT IN ('"+SCJ->CJ_CONDPAG+"') "
- cQry+= " And SE4.D_E_L_E_T_ = ' ' "
- If Select("QRP") > 0
- QRP->(dbCloseArea())
- Endif
- TcQuery cqry New Alias "QRP"
- While QRP->(!Eof())
- cCondPag+=' <option value="'+QRP->E4_CODIGO+'" '+Iif(Alltrim(QRP->E4_CODIGO) == AllTrim(SCJ->CJ_CONDPAG),'selected','')+'>'+Alltrim(QRP->E4_CODIGO)+" - "+Alltrim(QRP->E4_DESCRI)+'</option>'
- QRP->(dbSkip())
- End
- QRP->(dbCloseArea())
-
- Endif
- cCondPag+='</select>'
-
- //Previsão Fechamento
- aPrevisao:= {{"B","Balizador"},{"A","30/120 dias"},{"V","Em 30 dias"},{"M","Após 4 meses"},{"C","Concorrência"}}
- //cPrevFecha:= ' <input id="CJ_TERMOME" name="CJ_TERMOME" class="form-control" value="'+cPrevisao+'" '+Iif(lCopy .or. lEdit,'','disabled')+' >'
- cPrevFecha:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"placeholder": "Selecione...", "minimumResultsForSearch": "-1"}'+"'"'
- cPrevFecha+=' name="CJ_TERMOME" id="CJ_TERMOME" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
- cPrevFecha+='<option value=""></option>'
- For f:= 1 to Len(aPrevisao)
- cPrevFecha+=' <option value="'+aPrevisao[f,1]+'" '+Iif(aPrevisao[f,1]==SCJ->CJ_TERMOME,'selected','')+'>'+aPrevisao[f,2]+'</option>'
- Next
- cPrevFecha+='</select>'
- //Intermediador
- If !(lEdit .or. lCopy)
- cIntermed:='<select data-plugin-selectTwo class="form-control populate placeholder" data-plugin-options='+"'"
- cIntermed+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' disabled '
- Else
- cIntermed:='<select class="form-control populate selectpicker" data-live-search="true" '
- cIntermed+='title="Selecione..." '
- Endif
- cIntermed+=' name="CJ_CLIINTE" id="CJ_CLIINTE" >'
-
- cIntermed+='<option data-hidden="true"></option>'
-
- //Busca a lista de clientes
- cIntermed+= u_ListaCli(cVendLogin,"QRY->A1_COD==SCJ->CJ_CLIINTE",'S')
- cIntermed+='</select>'
- //Retorno
- nDiasVal:= 0
- cRetorno:='<input type="text" id="CJ_RETORNO" name="CJ_RETORNO" data-plugin-datepicker data-plugin-options='+"'"+'{ "startDate": "+'+cvaltochar(nDiasVal)+'d", "language": "pt-BR",'
- cRetorno+='"daysOfWeekDisabled": "[0]","daysOfWeekHighlighted":"[0]","autoclose": "true","disabled":"true"}'+"'"+' class="form-control only-numbers" placeholder="__/__/____" '
- cRetorno+='value="'+dtoc(SCJ->CJ_RETORNO)+'" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
- //Estudo Luminotécnico
- //cEstudo:= ' <input id="CJ_LUMINOT" name="CJ_LUMINOT" class="form-control" value="'+Upper(X3COMBO("CJ_LUMINOT",SCJ->CJ_LUMINOT))+'" '+Iif(lCopy .or. lEdit,'','disabled')+' >'
- aEstd:= RetSx3Box(Posicione('SX3',2,'CJ_LUMINOT','X3CBox()'),,,1)
- aSort(aEstd)
- cEstudo:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"placeholder": "Selecione...", "minimumResultsForSearch": "-1"}'+"'"'
- cEstudo+=' name="CJ_LUMINOT" id="CJ_LUMINOT" '+Iif(lCopy .or. lEdit,'','disabled')+' onchange="javascript:vldEstudo()">'
- cEstudo+='<option value=""></option>'
- For f:= 1 to Len(aEstd)
- cEstudo+=' <option value="'+aEstd[f,2]+'" '+Iif(AllTrim(aEstd[f,2]) == AllTrim(SCJ->CJ_LUMINOT),'selected','')+'>'+Upper(aEstd[f,3])+'</option>'
- Next
- cEstudo+='</select>'
- cNumEst:= ' <input id="CJ_REGLUMI" name="CJ_REGLUMI" maxlength="'+cvaltochar(GetSX3Cache("CJ_REGLUMI","X3_TAMANHO"))+'" class="form-control" value="'+SCJ->CJ_REGLUMI+'" '+Iif(lCopy .or. lEdit,'','disabled')+' >'
-
- //Segmento
- aSegmen:= RetSx3Box(Posicione('SX3',2,'CJ_SEGMENT','X3CBox()'),,,1)
- cSegmento:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"placeholder": "Selecione...","minimumResultsForSearch": "-1"}'+"'"'
- cSegmento+=' name="CJ_SEGMENT" id="CJ_SEGMENT" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
- cSegmento+=' <option value=""></option>'
- For f:= 1 to Len(aSegmen)
- cSegmento+=' <option value="'+aSegmen[f,1]+'" '+Iif(aSegmen[f,1]==Alltrim(SCJ->CJ_SEGMENT),'selected','')+'>'+aSegmen[f,1]+'</option>'
- Next
- cSegmento+='</select>'
- //Prospecção
- aProsp:= RetSx3Box(Posicione('SX3',2,'CJ_PROPECC','X3CBox()'),,,1)
- aSort(aProsp)
- cProsp:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"placeholder": "Selecione...", "minimumResultsForSearch": "-1"}'+"'"'
- cProsp+=' name="CJ_PROPECC" id="CJ_PROPECC" onchange="javascript:vldProspec()" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
- cProsp+='<option value=""></option>'
- For f:= 1 to Len(aProsp)
- cProsp+=' <option value="'+aProsp[f,2]+'" '+Iif(aProsp[f,2]==SCJ->CJ_PROPECC,'selected','')+'>'+Upper(aProsp[f,3])+'</option>'
- Next
- cProsp+='</select>'
- //Prospectado por
- aProsp:= RetSx3Box(Posicione('SX3',2,'CJ_PROSCOD','X3CBox()'),,,1)
- cProspPor:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"placeholder": "Selecione...","minimumResultsForSearch": "-1"}'+"'"'
- cProspPor+=' name="CJ_PROSCOD" id="CJ_PROSCOD" '+Iif(lCopy .or. lEdit /*.or. !Empty(SCJ->CJ_PROSCOD)*/,'','disabled')+'>'
- cProspPor+=' <option value=""></option>'
- For f:= 1 to Len(aProsp)
- cProspPor+=' <option value="'+aProsp[f,1]+'" '+Iif(aProsp[f,1]==Alltrim(SCJ->CJ_PROSCOD),'selected','')+'>'+aProsp[f,1]+'</option>'
- Next
- cProspPor+='</select>'
-
- //Regional
- cRegional:='<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
- cRegional+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="CJ_REGIAO" id="CJ_REGIAO" '
- cRegional+='required="" aria-required="true" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
- If lCopy .or. lEdit
- cRegional+= u_ListaVend(.T.,SCJ->CJ_REGIAO)
- Else
- cRegional+='<option value="'+SCJ->CJ_REGIAO+'">'+SCJ->CJ_REGIAO+" - "+Posicione("SA3",1,xFilial("SA3")+SCJ->CJ_REGIAO,"A3_NOME")+'</option>'
- Endif
- cRegional+='</select>'
- //Vendedor do cliente
- cVend2:= '<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
- cVend2+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="CJ_VEND" id="CJ_VEND" '
- cVend2+='required="" aria-required="true" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
- If lCopy .or. lEdit
- cVend2+= u_ListaVend(.F.,SCJ->CJ_VEND)
- Else
- cVend2+='<option value="'+SCJ->CJ_VEND+'">'+SCJ->CJ_VEND+" - "+Posicione("SA3",1,xFilial("SA3")+SCJ->CJ_VEND,"A3_NOME")+'</option>'
- Endif
- cVend2+='</select>'
- //Vendedor da oportunidade
- cVend3:='<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-live-search="true" data-plugin-options='+"'"
- cVend3+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"
- cVend3+=' name="CJ_VEND3" id="CJ_VEND3" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
- If lCopy .or. lEdit
- cVend3+= u_ListaVend(.F.,SCJ->CJ_VEND3)
- Else
- cVend3+='<option value="'+SCJ->CJ_VEND3+'">'+SCJ->CJ_VEND3+" - "+Posicione("SA3",1,xFilial("SA3")+SCJ->CJ_VEND3,"A3_NOME")+'</option>'
- Endif
- cVend3+='</select>'
- //Vendedor 4
- cVend4:= '<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
- cVend4+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="CJ_VEND4" id="CJ_VEND4" '
- cVend4+='required="" aria-required="true" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
- cVend4+= u_Vend04(SCJ->CJ_VEND4)
- cVend4+='</select>'
- //Especificado por
- cEspecif:= '<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
- cEspecif+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="CJ_CODESP" id="CJ_CODESP" '
- cEspecif+='required="" aria-required="true" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
- cEspecif+= u_ListaEsp(SCJ->CJ_CODESP)
- cEspecif+='</select>'
- //Negociadora
- cNegociad:= '<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
- cNegociad+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="CJ_VEND7" id="CJ_VEND7" '
- cNegociad+='required="" aria-required="true" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
- cNegociad+= u_ListaNeg(SCJ->CJ_VEND7)
- cNegociad+='</select>'
-
-
- //Validade do Orçamento
- nDiasVal:= GetNewPar("PR_DTVALID",10)
- cValidade:='<input type="text" id="CJ_VALIDA" name="CJ_VALIDA" data-plugin-datepicker data-plugin-options='+"'"+'{ "startDate": "+'+cvaltochar(nDiasVal)+'d", "language": "pt-BR",'
- cValidade+='"daysOfWeekDisabled": "[0]","daysOfWeekHighlighted":"[0]","autoclose": "true","disabled":"true"}'+"'"+' class="form-control only-numbers" placeholder="__/__/____" '
- cValidade+='value="'+dtoc(SCJ->CJ_VALIDA)+'" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
- //Prazo de embarque
- cPrazoEmb:= '<input id="CJ_PRZEMB" name="CJ_PRZEMB" maxlength="'+cvaltochar(GetSX3Cache("CJ_PRZEMB","X3_TAMANHO"))+'" class="form-control" value="'+SCJ->CJ_PRZEMB+'" '+Iif(lCopy .or. lEdit,'','disabled')+' >'
-
-
- //Tipo de frete
- aTpFrete:= {{"S","Sem Frete"},{"C","CIF"},{"F","FOB"}}
- cTpFrete:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"minimumResultsForSearch": "-1"}'+"'"'
- cTpFrete+=' name="CJ_TPFRETE" id="CJ_TPFRETE" onchange="javascript:VldFrete()" '
-
- //cTpFrete:='<select class="form-control mb-md" name="CJ_TPFRETE" id="CJ_TPFRETE" onchange="javascript:VldFrete()" value="'+SCJ->CJ_TPFRETE+'"'
- cTpFrete+= Iif(!lEdit,'disabled','')+'>'
- If lEdit
- For f:= 1 to Len(aTpFrete)
- cTpFrete+=' <option value="'+aTpFrete[f,1]+'" '+Iif(AllTrim(aTpFrete[f,1]) == AllTrim(SCJ->CJ_TPFRETE),'selected','')+'>'+aTpFrete[f,2]+'</option>'
- Next
- Else
- nPosFrete:= aScan(aTpFrete,{|x|x[1]==SCJ->CJ_TPFRETE})
- If nPosFrete = 0
- nPosFrete:= 1
- Endif
- cTpFrete+=' <option value="'+SCJ->CJ_TPFRETE+'">'+aTpFrete[nPosFrete,2]+'</option>'
- Endif
- cTpFrete+='</select>'
-
- cPFrete:= '<input id="CJ_PERCFRT" name="CJ_PERCFRT" class="form-control percentual text-right" placeholder="0,00" maxlength="'+cvaltochar(GetSX3Cache("CJ_PERCFRT","X3_TAMANHO")+1)+'" '
- cPFrete+= 'value="'+TransForm(SCJ->CJ_PERCFRT,"@E 999.99")+'" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
- cValFre:= '<input id="CJ_FRETE" name="CJ_FRETE" class="form-control money text-right" placeholder="0,00" '
- cValFre+= 'value="'+Transform(SCJ->CJ_FRETE,"@E 999,999,999,999.99")+'" '
- cValFre+= Iif((!lCopy .and. !lEdit) .or. SCJ->CJ_TPFRETE = "S" ,'disabled','')+'>'
- nTFrete+= SCJ->CJ_FRETE
- //% RT
- cComRT:= '<input id="CJ_COMISTR" name="CJ_COMISTR" class="form-control percentual text-right" placeholder="0,00" maxlength="'+cvaltochar(GetSX3Cache("CJ_COMISTR","X3_TAMANHO")+1)+'" '
- cComRT+= 'value="'+Transform(SCJ->CJ_COMISTR,PesqPict("SCJ","CJ_COMISTR"))+'" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
- //Observação Comercial
- cObsCom:= SCJ->CJ_OBS
-
- //Margem de Contribuição
- If HttpSession->Tipo <> "R" //Representante
- cMargemCont:= ' <div class="col-lg-2"> '
- cMargemCont+= ' <label class="control-label">MC</label> '
- cMargemCont+= ' <input id="MARGEM" name="MARGEM" class="form-control" value="'+u_getMCOrc() + "%"+'" disabled >'
- cMargemCont+= ' </div>'
- Endif
- /*
- //Transportadora
- cTransp:='<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
- cTransp+='{ "placeholder": "Selecione uma Transportadora", "allowClear": false }'+"'"+' name="CJ_XTRANSP" id="CJ_XTRANSP" '
- cTransp+='required="" aria-required="true" '
- cTransp+= Iif(!lEdit .or. SCJ->CJ_TPFRETE = 'S','disabled','')+'>'
- cTransp+=' <option value="'+SCJ->CJ_XTRANSP+'">'+Alltrim(Posicione("SA4",1,xFilial("SA4")+SCJ->CJ_XTRANSP,"A4_NOME"))+'</option>'
-
- If lEdit
- //Transportadora do cadastro do cliente
- If !Empty(SA1->A1_TRANSP)
- cNome:= Alltrim(Posicione("SA4",1,xFilial("SA4")+SA1->A1_TRANSP,"A4_NOME"))
- cTransp+=' <option value="'+Alltrim(cTransp)+'">'+cNome+'</option>'
- Endif
- //Seleciona as transportadoras disponíveis no combo
- cQry:= " Select A4_COD COD, A4_NOME NOME"
- cQry+= " From "+RetSqlName("SA4")+" SA4 "
- cQry+= " Where A4_FILIAL = '"+xFilial("SA4")+"' "
- cQry+= " And A4_COD NOT IN ('"+SA1->A1_TRANSP+"','"+SCJ->CJ_XTRANSP+"') "
- cQry+= " And SA4.D_E_L_E_T_ = ' ' "
- If Select("QRT")> 0
- QRT->(dbCloseArea())
- Endif
- APWExOpenQuery(ChangeQuery(cQry),'QRT',.T.)
-
- While QRT->(!Eof())
- cTransp+=' <option value="'+Alltrim(QRT->COD)+'">'+Alltrim(QRT->NOME)+'</option>'
- QRT->(dbSkip())
- End
- Endif
-
- cTransp+='</select>'
- */
-
- /*
- //Validade do Orçamento
- nDiasVal:= GetNewPar("PR_DTVALID",3)
- cValidade:='<input type="text" id="CJ_VALIDA" name="CJ_VALIDA" data-plugin-datepicker data-plugin-options='+"'"+'{ "startDate": "+'+cvaltochar(nDiasVal)+'d", "language": "pt-BR",'
- cValidade+='"daysOfWeekDisabled": "[0]","daysOfWeekHighlighted":"[0]","autoclose": "true","disabled":"true"}'+"'"+' class="form-control only-numbers" placeholder="__/__/____" '
- cValidade+='value="'+Iif(lCopy,dtoc(date()+nDiasVal),dtoc(SCJ->CJ_VALIDA))+'" disabled>'
-
- //Peso
- cPeso:= '<input type="text" id="CJ_XPESO" name="CJ_XPESO" class="form-control text-right only-numbers" placeholder="0" '
- cPeso+= 'value="'+cvaltochar(SCJ->CJ_XPESO)+'" '+Iif(lCopy .or. lEdit,'',' disabled')+'>'
- //Volume
- cVolume:= '<input type="text" id="CJ_XVOLUME" name="CJ_XVOLUME" class="form-control text-right only-numbers" placeholder="0" '
- cVolume+= 'value="'+cvaltochar(SCJ->CJ_XVOLUME)+'"'+Iif(lCopy .or. lEdit,'',' disabled')+'>'
- //Espécie
- cEspecie:= '<input type="text" id="CJ_XESPECI" name="CJ_XESPECI" class="form-control" placeholder="" '
- cEspecie+= 'value="'+cvaltochar(SCJ->CJ_XESPECI)+'"'+Iif(lCopy .or. lEdit,'',' disabled')+' maxlength="10">'
- //Combo da tabela de preço
- cTabela:='<select data-plugin-selectTwo class="form-control populate placeholder" data-plugin-options='+"'"
- cTabela+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="CJ_TABELA" id="CJ_TABELA" '
- cTabela+='onchange="javascript:selProd()" disabled >'
- cTabela+=' <option value='+SCJ->CJ_TABELA+'>'+Alltrim(Posicione("DA0",1,xFilial("DA0")+SCJ->CJ_TABELA,"DA0_DESCRI"))+'</option>'
- cTabela+='</select>'
- HttpSession->Tabela:= SCJ->CJ_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","CK_ITEM","*","text-left","C",.F.,.F.,.F.,"",.F.,""})
- aAdd(aItens, {"Produto","CK_PRODUTO","300px"," text-left","C",lEdit,.T.,.F.,"Selecione...",.F.,""})
- aAdd(aItens, {"Quant.","CK_QTDVEN","*"," text-right","N",lEdit,.T.,.F.,"0",.F.,""})
- aAdd(aItens, {"Observação","CK_OBS","*"," text-left","C",lEdit,.F.,.F.,"",.F.,"80"})
- aAdd(aItens, {"Prazo de Embarque","CK_PRZEMB","70px","text-right","N",lEdit,.F.,.F.,"",.F.,"3"})
- aAdd(aItens, {"Vlr Unitário","CK_PRCVEN","*"," text-right","N",lEdit,.F.,.T.,"0,00",.F.,""})
- aAdd(aItens, {"Vlr c/ Impostos","CK_XPRCIMP","*","text-right","N",.F.,.F.,.T.,"0,00",.T.,""})
- aAdd(aItens, {"Vlr de Venda","iCK_PRCVEN","*"," text-right myformato","N",.F.,.T.,.T.,"0,00",.T.,""})
- aAdd(aItens, {"Custo","CK_CUSTO","*"," text-right myformato","N",.F.,.F.,.T.,"0,00",.T.,""})
- aAdd(aItens, {"IPI","CK_XVALIPI","*"," text-right","N",lEdit,.F.,.T.,"0,00",.T.,""})
- aAdd(aItens, {"ICMS","CK_XVALICM","*"," text-right","N",lEdit,.F.,.T.,"0,00",.T.,""})
- aAdd(aItens, {"ICMS ST","CK_XICMST","*"," text-right","N",lEdit,.F.,.T.,"0,00",.T.,""})
- aAdd(aItens, {"% Desconto","CK_DESCONT","*"," text-right percentual","N",lEdit,.F.,.T.,"0,00",Iif(HttpSession->Tipo <> "R",.F.,.T.) ,"7"})
- aAdd(aItens, {"Diretor","CK_NOMDIRE","*"," text-left","C",.T.,.F.,.T.,"",.T.,"12"})
- aAdd(aItens, {"% Comissão","PER_COM","*"," text-right ","N",.F.,.F.,.T.,"0,00",.T.,""})
- aAdd(aItens, {"Vlr Comissão","VAL_COM","*"," text-right","N",lEdit,.F.,.T.,"0,00",.T.,""})
- aAdd(aItens, {"Total","CK_VALOR","150px"," text-right","N",.F.,.F.,.T.,"0,00",.F.,""})
- aAdd(aItens, {"","ACAO","*"," text-center","X",lEdit,.F.,.F.,"",.F.,""})
-
- // Cria o cabeçalho dos Itens
- For nLin := 1 to Len(aItens)
- cOrcCabec += '<th'+Iif(aItens[nLin,2] == "CK_VALOR",' width="'+aItens[nLin,3]+'"',Iif(aItens[nLin,2] == "CK_PRODUTO",' width="'+aItens[nLin,3]+'"',''))
- cOrcCabec+= Iif(aItens[nLin,10],' hidden','')+'>'+aItens[nLin][1]+'</th>'
- Next
-
- dbSelectArea("SCK")
- SCK->(dbSeek(SCJ->CJ_FILIAL+SCJ->CJ_NUM))
- While SCK->(!Eof()) .and. SCK->CK_FILIAL == SCJ->CJ_FILIAL .and. SCK->CK_NUM == SCJ->CJ_NUM
- nItens++
-
- cItem := StrZero(nItens,TamSX3("CK_ITEM")[1])
- Posicione("SB1",1,xFilial("SB1")+SCK->CK_PRODUTO,"B1_DESC")
- If SB5->(MsSeek(xFilial("SB5")+SCK->CK_PRODUTO))
- If SB5->B5_DTVLESP + 30 < dDataBase
- lVencido:= .T.
- Endif
- Endif
- cOrcItens += '<tr class="odd" id="linha'+StrZero(nItens,2)+'">'
-
- lProdBloq:= .F.
- SB1->(dbSetOrder(1))
- SB1->(dbSeek(xFilial("SB1")+SCK->CK_PRODUTO))
- If SB1->B1_MSBLQL = '1'
- lProdBloq:= .T.
- Endif
- DA1->(dbSetOrder(1))
- DA1->(dbSeek(xFilial("DA1")+SCJ->CJ_TABELA+SCK->CK_PRODUTO))
- // gera os produtos de acordo com o Cliente e Tabela
- //cOptProd := u_GetProdOrc(SCJ->CJ_CLIENTE, SCJ->CJ_TABELA, "")
-
- For nLin := 1 to Len(aItens)
- If aItens[nLin,2] == "ACAO"
- cOrcItens += '<td class="actions">'
- If lEdit .or. lCopy //!lDele
- //cOrcItens += ' <a href="#" id="btnRemItm" name="btnRemItm" class="on-default remove-row"><i class="fa fa-times-circle"></i></a>'
- //cOrcItens += ' <i class="fa fa-info fa-lg" data-toggle="tooltip" data-original-title="Detalhes da linha" onclick="detalheOrc('+"'"+cItem+"'"+');"></i>'
- If lEdit .or. lCopy
- cOrcItens += ' <i class="fa fa-times-circle fa-lg" data-toggle="tooltip" data-original-title="Remover a linha" onclick="removeItem('+"'"+cItem+"'"+');"></i>
- Endif
- Endif
- If !lDele
- cOrcItens += ' <i class="fa fa-info fa-lg" data-toggle="tooltip" data-original-title="Detalhes da linha" onclick="detalheOrc('+"'"+cItem+"'"+');"></i>'
- Endif
- cOrcItens += '</td>
- Else
- If aItens[nLin,2] == "CK_PRODUTO"
- cOrcItens += '<td>' //class="form-group row pb-4"
- Else
- cOrcItens += '<td'+Iif(!Empty(aItens[nLin][4]),' align="'+aItens[nLin][4]+'"',"")+Iif(aItens[nLin,10],'hidden','')+'>'
- 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] == "CK_PRODUTO"
- xValue := AllTrim(SCK->&(aItens[nLin][2]))+' - '+Alltrim(SB1->B1_DESC)
- Else
- //Verifica se o produto está bloqueado
- If aItens[nLin,2] == "CK_ITEM" .and. lEdit .and. lProdBloq //lCopy .and. SB1->B1_MSBLQL = '1'
- xValue := 'xx'
- //lProdBloq:= .T.
- Else
- xValue := AllTrim(SCK->&(aItens[nLin][2]))
- Endif
- Endif
- Case aItens[nLin][5] == 'N'
- If aItens[nLin,2] == "CK_QTDVEN"
-
- xValue := Iif(lNewOrc,"",Alltrim(cvaltochar(SCK->&(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("SCK","CK_PRCVEN")),TamSX3("CK_PRCVEN")[1])))
- ElseIf aItens[nLin,2] == "iCK_PRCVEN"
- //xValue := Iif(lNewOrc,"",Alltrim(cvaltochar(SCK->CK_PRCVEN)))
- If lEdit
- nVlrProd:= u_getValProd(SCJ->CJ_COMISTR,SCJ->CJ_PERCFRT)
- xValue := Alltrim(TransForm(nVlrProd,PesqPict("DA1","DA1_PRCVEN")))
- Else
- xValue := Iif(lNewOrc,"",Alltrim(TransForm(SCK->CK_PRCVEN,PesqPict("SCK","CK_PRCVEN"))))
- Endif
- Elseif aItens[nLin,2] == "CK_PRCVEN"
- If lEdit
- nVlrProd:= u_getValProd(SCJ->CJ_COMISTR,SCJ->CJ_PERCFRT)
- xValue := Alltrim(TransForm(nVlrProd,PesqPict("DA1","DA1_PRCVEN")))
- nVlrCDesc:= nVlrProd
- Else
- xValue := Alltrim(TransForm(SCK->CK_PRUNIT,PesqPict("SCK","CK_PRUNIT")))
- nVlrCDesc:= SCK->CK_PRUNIT
- Endif
- Elseif aItens[nLin,2] == "CK_DESCONT"
- xValue:= Alltrim(TransForm(SCK->CK_DESCACM,PesqPict("SCK","CK_DESCONT")))
- Elseif aItens[nLin,2] == "CK_VALOR"
- If lEdit
- nVlrProd:= u_getValProd(SCJ->CJ_COMISTR,SCJ->CJ_PERCFRT)
- xValue := Alltrim(TransForm(nVlrProd*SCK->CK_QTDVEN,PesqPict("SCK",aItens[nLin,2])))
- nTotValor:= nVlrProd*SCK->CK_QTDVEN
- Else
- xValue := Alltrim(TransForm(SCK->(CK_VALOR/*+CK_XVALIPI+CK_XICMST*/),PesqPict("SCK",aItens[nLin,2])))
- nTotValor:=SCK->CK_VALOR
- Endif
-
- Else
- If SCK->(FieldPos(aItens[nLin][2])) > 0
- xValue := Alltrim(TransForm(SCK->&(aItens[nLin][2]),PesqPict("SCK",aItens[nLin,2])))
- Else
- xValue := ""
- Endif
- Endif
- EndCase
-
- If aItens[nLin,6] //Campo Editável
- If aItens[nLin,2] == "CK_PRODUTO"
- //Cria o select para o produto
- If (lEdit .or. lCopy) .and. SB1->B1_MSBLQL <> '1'
- cOrcItens +='<div class="form-group">'
- cOrcItens +=' <div class="col-md-12">
- cOrcItens +=' <div class="flexContainer">
- cOrcItens +=' <input type="text" class="form-control smsediticon" placeholder="Digite o código ou descrição..." '
- cOrcItens +=' name="CK_PRODUTO'+cItem+'" id="CK_PRODUTO'+cItem+'"'
- cOrcItens += Iif(aItens[nLin][7],'required="" aria-required="true" ','')+' data-live-search="true" autocomplete="off" '
- cOrcItens +=' value="'+Alltrim(SCK->CK_PRODUTO)+' -- '+Alltrim(SB1->B1_DESC)+'" >'
- cOrcItens +=' <button class="btSearch" id="btSearch"'+cItem+' >'
- cOrcItens +=' <i class="fa fa-search" alt="Pesquisar"></i>'
- cOrcItens +=' </button>
- cOrcItens +=' </div>
- cOrcItens +=' </div>
- cOrcItens +='</div>
- Else
- cOrcItens +='<select class="selectpicker" name="CK_PRODUTO'+cItem+'" id="CK_PRODUTO'+cItem+'" '
- cOrcItens += Iif(aItens[nLin][7],'required="" aria-required="true" ','')+' data-live-search="true" '
- cOrcItens +=' data-width="569px" title="Produto bloqueado" disabled >' //style="size:4" data-width="90%" style="height:90%"
- cOrcItens += U_GetProdOrc(SCJ->CJ_CLIENTE, SCJ->CJ_TABELA, SCK->CK_PRODUTO)
- cOrcItens +='</select>'
- Endif
- Else
- cOrcItens += '<input id="'+aItens[nLin][2]+cItem+'" data-prop="'+aItens[nLin][2]+'" name="'+aItens[nLin][2]+cItem+'" class="form-control '
- cOrcItens += Iif(lNumber, aItens[nLin][4], "")
- cOrcItens +=If(lMoeda," ",If(lNumber," only-numbers",""))+'" type="text" '
- cOrcItens += 'placeholder="'+aItens[nLin,9]+'" '
-
- //Atribui as funções javascript
- If aItens[nLin,2] == "CK_QTDVEN"
- cOrcItens+='onblur="javascript:VldQtd('+"'"+cItem+"'"+') "'
- Endif
-
- If aItens[nLin,2] == "iCK_PRCVEN"
- cOrcItens+='onblur="javascript:VldValor('+"'"+cItem+"'"+') " '
- Endif
-
- If aItens[nLin,2] == "CK_DESCONT"
- cVldDesc:= Iif(GetMv("LC_OR1012A",,.F.),'S','N')
- cOrcItens+='onblur="javascript:VldValor('+"'"+cItem+"'"+','+"'"+cVldDesc+"'"+')" maxlength="7" '
- Endif
-
- If aItens[nLin,2] $ ("CK_QTDVEN|iCK_PRCVEN|CK_DESCONT")
- cOrcItens+='onkeyup="javascript:TotalItem('+"'"+cItem+"'"+') "'
- Endif
- //Campo obrigatório
- cOrcItens += Iif(aItens[nLin][7],'required="" aria-required="true" ','')
-
- If (lEdit .or. lCopy) .and. !lProdBloq//Inicia todos os campos desabilitados caso não for para editar ou copiar
- If !(aItens[nLin,2] $ "CK_QTDVEN|CK_DESCONT|CK_OBS|CK_PRZEMB") //.And. aItens[nLin,2] <> "CK_XPEDCLI" .And. aItens[nLin,2] <> "CK_XITEMCL"
- cOrcItens += 'disabled '
- EndIf
- Else
- cOrcItens += 'disabled '
- EndIf
- cOrcItens += 'value="'+Alltrim(xValue)+'">'
- Endif
- Else
- cOrcItens += '<input id="'+aItens[nLin][2]+cItem+'" data-prop="'+aItens[nLin][2]+'" name="'+aItens[nLin][2]+cItem+'" '
- cOrcItens += 'class="form-control input-block '+Iif(lNumber, aItens[nLin][4], "")+'" '
- cOrcItens += 'type="text" disabled width="" '
- If aItens[nLin,2] $ "CK_PRODUTO|CK_OBS"
- cOrcItens += 'title="'+Alltrim(xValue)+'" '
- Endif
- cOrcItens += 'value="'+Alltrim(xValue)+'">'
- Endif
- Endif
-
- cOrcItens += '</td>'
- Next
-
- //Inputs Hidden
- cItensHid += '<input type="hidden" class="" id="ALIQ_ICMS'+cItem+'" name="ALIQ_ICMS'+cItem+'" value="'+cValtochar(SCK->CK_XALIICM)+'">'
- cItensHid += '<input type="hidden" class="" id="ALIQ_IPI'+cItem+'" name="ALIQ_IPI'+cItem+'" value="'+cValtochar(SCK->CK_XALIIPI)+'">'
- cItensHid += '<input type="hidden" class="" id="ALIQ_ST'+cItem+'" name="ALIQ_ST'+cItem+'" value="'+cValtochar(SCK->CK_XALIST)+'">'
- cItensHid += '<input type="hidden" class="" id="VAL_ICMS'+cItem+'" name="VAL_ICMS'+cItem+'" value="'+Alltrim(Transform(SCK->CK_ICMS,PesqPict("SCK","CK_ICMS")))+'">'
- cItensHid += '<input type="hidden" class="" id="VAL_IPI'+cItem+'" name="VAL_IPI'+cItem+'" value="'+Alltrim(Transform(SCK->CK_IPI,PesqPict("SCK","CK_IPI")))+'">'
- cItensHid += '<input type="hidden" class="" id="VAL_ST'+cItem+'" name="VAL_ST'+cItem+'" value="'+Alltrim(Transform(SCK->CK_ST,PesqPict("SCK","CK_ST")))+'">'
- cItensHid += '<input type="hidden" class="" id="BASE_ICMS'+cItem+'" name="BASE_ICMS'+cItem+'" value="0">'
- cItensHid += '<input type="hidden" class="" id="BASE_ST'+cItem+'" name="BASE_ST'+cItem+'" value="0">'
- cItensHid += '<input type="hidden" class="" id="BASE_IPI'+cItem+'" name="BASE_IPI'+cItem+'" value="0">'
- cItensHid += '<input type="hidden" class="" id="IMP_PRCTAB'+cItem+'" name="IMP_PRCTAB'+cItem+'" value="0">'
- cItensHid += '<input type="hidden" class="" id="QTD_EMB'+cItem+'" name="QTD_EMB'+cItem+'" value="'+cValtochar(SB1->B1_QE)+'">'
- cItensHid += '<input type="hidden" class="" id="CK_TES'+cItem+'" name="CK_TES'+cItem+'" value="'+SCK->CK_TES+'">'
- cItensHid += '<input type="hidden" class="" id="QTDMIN'+cItem+'" name="QTDMIN'+cItem+'" value="">'
- cItensHid += '<input type="hidden" class="" id="GRUPO'+cItem+'" name="GRUPO'+cItem+'" value="'+SB1->B1_GRUPO+'">'
- cItensHid += '<input type="hidden" class="" id="VENCIMENTO'+cItem+'" name="VENCIMENTO'+cItem+'" value="'+Iif(lVencido,'1','0')+'">'
- cItensHid += '<input type="hidden" class="" id="B1_COMIS'+cItem+'" name="B1_COMIS'+cItem+'" value="'+cvaltochar(SB1->B1_COMIS)+'">'
- cItensHid += '<input type="hidden" class="" id="CK_COMIS1'+cItem+'" name="CK_COMIS1'+cItem+'" value="'+cvaltochar(SCK->CK_COMIS1)+'">'
- cItensHid += '<input type="hidden" class="" id="CK_COMIS3'+cItem+'" name="CK_COMIS3'+cItem+'" value="'+cvaltochar(SCK->CK_COMIS3)+'">'
- cOrcItens+=cItensHid
- //Totais
- nTImpostos += SCK->(CK_ST+CK_IPI)
- nTVlrUnit += nTotValor //total do item c/desconto
- nTTotal += nTotValor + SCK->(CK_IPI+CK_ST) //total com desconto + impostos
- nTQtdItem += SCK->CK_QTDVEN
- nValDesc += nTotValor * (SCK->CK_DESCACM/100)
- //nValDesc += nTotValor * (SCK->CK_DESCONT/100)
-
- nTVlrSDesc += nTotValor + (nTotValor * (SCK->CK_DESCACM/100)) //Total sem desconto
- //nTVlrSDesc += nTotValor + (nTotValor * (SCK->CK_DESCONT/100)) //Total sem desconto
-
- nPerCom:= SCK->CK_COMIS1
- nValCom:= SCK->CK_COMISSA //(SCK->CK_QTDVEN * SCK->CK_PRCVEN) * (nPerCom/100)
- nTComiss+= nValCom
- SCK->(dbSkip())
- End
-
-
- //nTAcresc:= Round(nTTotal*(nAcresc/100),2)
- nTTotal+= nTFrete
- //nTTotal+= nTFrete+nTAcresc
-
- cOrcItens += '<input type="hidden" name="QtdItens" id="QtdItens" value="'+cValtoChar(nItens)+'"/>'
- cOrcItens += '<input type="hidden" id="PROXIMO" name="PROXIMO" value="'+StrZero(nItens,2)+'"/>
- cOrcItens += '<input type="hidden" class="" name="CJ_NUM" id="CJ_NUM" value="'+IIf(lCopy, "", SCJ->CJ_NUM)+'" />'
- cOrcItens += '<input type="hidden" name="OPCAO" id="OPCAO" value="'+cValtoChar(nOpc)+'" />'
- cOrcItens += '<input type="hidden" name="DESCCOND" id="DESCCOND" value="" />'
- cOrcItens += '<input type="hidden" name="CJ_DSDIRET" id="CJ_DSDIRET" value="'+IIf(lCopy, "", cvaltochar(SCJ->CJ_DSDIRET))+'" />'
- cOrcItens += '<input type="hidden" name="FRETEMIN" id="FRETEMIN" value="'+cvaltochar(GetMv("MV_FRETMIN"))+'" />'
-
- cOrcItens += '</tr>'
- //Adiciona os botões de ações na tabela de itens
- If lEdit
- cBtnItens+='<div class="row form-group">'
- cBtnItens+=' <div class="col-sm-2">'
- cBtnItens+=' <button class="btn btn-primary" id="btAddItm" name="btAddItm">' //onclick="javascript:newItem()" >'
- cBtnItens+=' <i class="fa fa-plus-square"></i> Novo Item</button>'
- cBtnItens+=' </div>'
- cBtnItens+='</div>'
- Endif
-
- //Adiciona os botões da página
- If lEdit
- //cBotoes+='<h5 class="text-primary">Orçamento válido apenas dentro do mês de '+MesExtenso(SCJ->CJ_EMISSAO)+' de '+cvaltochar(Year(SCJ->CJ_EMISSAO))+'.</h5>'
- cBotoes+='<input class="btn btn-primary" type="button" id="btSalvar" name="btSalvar" value="Salvar"/>'+chr(13)+chr(10)
- Elseif lDele
- cBotoes+='<input class="btn btn-primary " type="button" id="btExcluir" name="btExcluir" value="Excluir"/>'+chr(13)+chr(10)
- Endif
- cBotoes+='<input class="btn btn-primary" type="button" id="btVoltar" name="btVoltar" value="Voltar" onclick="javascript: location.href='+"'"+'U_orcamento.apw?PR='+cCodLogin+"';"+'"/>'+chr(13)+chr(10)
-
- //Totalizador disponível apenas para regional
- If HttpSession->Tipo <> "R"
- cTotalReg:='<div class="col-sm-12">'
- cTotalReg+=' <label class="">Itens sem Desconto </label>'
- cTotalReg+=' <input class="form-control text-right" id="TOTAL_ITENS_NODESC" name="TOTAL_ITENS_NODESC" placeholder="0,00" disabled="" type="text" value="'+Transform(nTVlrSDesc,"@E 999,999,999,999.99")+'"></input>'
- cTotalReg+=' '
- cTotalReg+=' <label class="">Itens sem Desconto+Impostos </label>'
- cTotalReg+=' <input class="form-control text-right" id="TOTAL_NODESC_IMP" name="TOTAL_NODESC_IMP" placeholder="0,00" disabled="" type="text" value="'+Transform(nTVlrSDesc+nTImpostos,"@E 999,999,999,999.99")+'"></input>'
- cTotalReg+='</div>'
- cTotalReg+='<br>'
- cTotalReg+='<br>'
- cShowDesc := 'true'
- Endif
- //Retorna o HTML para construção da página
- cHtml := H_AddOrc()
-
- Web Extended End
- Return (cHTML)
- /*__________________________________________________________________________
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦Funçäo ¦ ExcOrc ¦ Autor ¦ Anderson Zelenski ¦ Data ¦10.12.17 ¦¦¦
- ¦¦+----------+------------------------------------------------------------¦¦¦
- ¦¦¦Descriçäo ¦ Exclui o Orçamento de Venda ¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
- User Function ExcOrc()
- Local cHtml
- Local nOpc := 5 // 3- Incluir / 4- Alterar / 5- Excluir
- Local cCliente := ""
- Local cLoja := ""
- Local cNumOrc := ""
- Local cDirErro := "erro\"
- Private cReturn
- Private aCabSCJ :={}
- Private aItemSCJ:={}
- Private aLinhaSCJ:={}
- 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:= '<META HTTP-EQUIV="Refresh" CONTENT="0 ; URL=U_SMSPortal.apw">'
- return cHtml
- Endif
- cVendLogin := u_GetUsrPR()
- cCodLogin := U_SetParPR(cVendLogin)
- //Variáveis do cabeçalho
- cCliente:= Left(HttpPost->CJ_CLIENTE,6)
- cLoja:= Right(HttpPost->CJ_CLIENTE,6)
- cNumOrc:= HttpPost->CJ_NUM
-
- nModulo:= 5
-
- //Posiciona nas tabelas
- If !Empty(cCliente)
- Posicione("SA1",1,xFilial("SA1")+Alltrim(HttpPost->CJ_CLIENTE),"A1_COD")
- Endif
-
- //Posiciona no orçamento
- Posicione("SCJ",1,xFilial("SCJ")+cNumOrc,"CJ_NUM")
- cFilOrc:= SCJ->CJ_FILIAL
-
- //Monta o cabeçalho
- aadd(aCabSCJ,{"CJ_NUM",cNumOrc,Nil})
- aadd(aCabSCJ,{"CJ_CLIENTE",SA1->A1_COD,Nil})
- aadd(aCabSCJ,{"CJ_LOJA", SA1->A1_LOJA ,Nil})
-
- aLinhaSCJ:={}
-
- //Monta os itens
- lMsErroAuto:= .F.
-
- //Chama execauto para inclusão do orçamento
- If Len(aCabSCJ) > 0
- MATA415(aCabSCJ,aItemSCJ,nOpc)
- Else
- conout(Procname()+"("+ltrim(str(procline()))+") *** Portal "+"FALHA AO EXCLUIR O ORÇAMENTO!")
- 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
-
- SCJ->(dbGoBottom())
- cHtml:= SCJ->CJ_NUM
- EndIf
-
- Web Extended End
- Return (cHTML)
- /*__________________________________________________________________________
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦Funçäo ¦ GetProdOrc ¦ Autor ¦ Anderson Zelenski ¦ Data ¦ 10.12.17 ¦¦¦
- ¦¦+----------+------------------------------------------------------------¦¦¦
- ¦¦¦Descriçäo ¦ Função para retornar os produtos da tabela e esta no Orç. ¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
- User Function GetProdOrc(cOrcCli, cOrcTab, cOrcProd)
- Local cHtml
- Local cProds := ""
- Local cGrupo := ""
- //Atualiza a variável de sessão
- HttpSession->TABELA := cOrcTab
-
- //Busca os itens da tabela de preço
- cQry:="Select DA1_CODTAB, B1_GRUPO, BM_DESC, DA1_CODPRO, B1_DESC "
- cQry+=" From "+RetSqlName("DA1")+" DA1"
- cQry+=" INNER JOIN "+RetSqlName("DA0")+" DA0 ON DA0_FILIAL = DA1_FILIAL AND DA0_CODTAB = DA1_CODTAB AND DA0_ATIVO = '1' AND DA0.D_E_L_E_T_ = ' ' "
- cQry+=" INNER JOIN "+RetSqlName("SB1")+" SB1 ON B1_FILIAL = '"+xFilial("SB1")+"' AND B1_COD = DA1_CODPRO AND SB1.D_E_L_E_T_ = ' ' " //AND B1_MSBLQL <> '1'
- cQry+=" LEFT JOIN "+RetSqlName("SBM")+" SBM ON BM_FILIAL = '"+xFilial("SBM")+"' AND B1_GRUPO = BM_GRUPO AND SBM.D_E_L_E_T_ = ' ' "
- cQry+=" Where DA1_FILIAL = '"+xFilial("DA1")+"' "
- cQry+=" And DA1_CODTAB = '"+cOrcTab+"' "
- //cQry+=" AND DA1_ATIVO = '1' "
- If !Empty(cOrcProd)
- cQry+=" AND DA1_CODPRO = '"+cOrcProd+"' "
- Endif
- cQry+=" AND DA1_PRCVEN > 0 "
- cQry+=" AND DA1.D_E_L_E_T_ = ' ' "
- cQry+=" Order by DA1_CODTAB, B1_GRUPO, B1_COD "
-
- CONOUT(CQRY)
- If Select("QRP") > 0
- QRP->(dbCloseArea())
- Endif
- APWExOpenQuery(ChangeQuery(cQry),'QRP',.T.)
-
- //Preenche o select de produtos
- While QRP->(!Eof())
- If Empty(cGrupo)
- cProds+= '<optgroup label="'+Alltrim(StrTran(QRP->BM_DESC,"'",""))+'">
- Elseif !Empty(cGrupo) .and. cGrupo <> QRP->B1_GRUPO
- cProds+= '</optgroup>'
- cProds+= '<optgroup label="'+Alltrim(StrTran(QRP->BM_DESC,"'",""))+'">
- Endif
- cProds+=' <option value="'+Alltrim(QRP->DA1_CODPRO)+'" '+Iif(Alltrim(QRP->DA1_CODPRO) == AllTrim(cOrcProd), 'selected','')+'>'+Alltrim(QRP->DA1_CODPRO)+' - '+Alltrim(StrTran(QRP->B1_DESC,"'",""))+'</option>'
-
- cGrupo:= QRP->B1_GRUPO
- QRP->(dbSkip())
- End
- If !Empty(cProds)
- cProds+= '</optgroup>'
- Endif
- cHtml:= cProds
-
- Return cHtml
- /*__________________________________________________________________________
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦Funçäo ¦ GetMCOrc ¦ Autor ¦ Anderson Zelenski ¦ Data ¦ 02.12.23 ¦¦¦
- ¦¦+----------+------------------------------------------------------------¦¦¦
- ¦¦¦Descriçäo ¦ Função para calcular a margem de contribuição do orçamento.¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
- User Function GetMCOrc()
- Local cMargem := ""
- Local cQry := ""
- Local cLinha := "00"
- 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 nMC_L := 0
- Local nMCTotIt_L:= 0
- Local nMC_E := 0
- Local nMCTotIt_E:= 0
- Local nMC_P := 0
- Local nMCTotIt_P:= 0
- Local cAcessorio:= GetNewPar("PR_ACESSOR","ACS-LHT44BC/ACS-LHT44PT/ACS-LHT45BC/ACS-LHT45PT")
- cQry:= "Select * From "+RetSqlName("SCK")+" SCK "
- cQry+= "Inner Join "+RetSqlName("SB1")+" SB1 ON B1_FILIAL = '"+xFilial("SB1")+"' AND B1_COD = CK_PRODUTO AND SB1.D_E_L_E_T_ = ' ' "
- cQry+= "Where CK_FILIAL = '"+SCJ->CJ_FILIAL+"' "
- cQry+= "AND CK_NUM = '"+SCJ->CJ_NUM+"' "
- cQry+= "AND SCK.D_E_L_E_T_ = ' ' "
- If Select("TMP1") > 0
- TMP1->(dbCloseArea())
- Endif
- TcQuery cQry New Alias "TMP1"
- // passa por todos os itens do orcamento
- While !TMP1->(EOF())
- cLinha := soma1(cLinha)
- cTipo := Alltrim(TMP1->B1_TIPO)
- cGrupo := Alltrim(TMP1->B1_GRUPO)
- nMkt := 0
- nCusto := TMP1->CK_CUSTO
- nICMS := TMP1->CK_ICMS
- nComis2 := TMP1->CK_COMIS1
- nComis3 := TMP1->CK_COMIS3
- nPIS := TMP1->CK_PIS
- nCofins := TMP1->CK_COFINS
- nComissao := TMP1->CK_COMISSA
- nRT := TMP1->CK_RT
- nIPI := TMP1->CK_IPI
- nFrete := TMP1->CK_FRETE
- nSubsTrb := TMP1->CK_SUBSTRB
- nSubsCus := TMP1->CK_SUBSCUS
- nST := TMP1->CK_ST
- nINSSP := TMP1->CK_INSSP
- // calcula receita liquida
- nRecLiq := TMP1->CK_VALOR - nICMS - nPIS - nCofins - nINSSP
- // se existe o campo de % do mkt
- If TMP1->(FieldPos("CK_MKTP")) > 0
- nMktP:= TMP1->CK_MKTP
- Endif
- // se existe o campo de vlr de mkt
- If TMP1->(FieldPos("CK_MKT")) > 0
- nMkt:= TMP1->CK_MKT
- Endif
- // calcula o valor da margem
- nMC:= ((TMP1->CK_VALOR - nCusto - nICMS - nPIS - nCofins - nFrete - nComissao - nINSSP - nRT - nMkt) + nSubsTrb + nSubsCus)
-
- //Cria o grid da tabela de margem
- cMgItens+= '<tr class="odd" id="linha'+cLinha+'">'
- cMgItens+= ' <td align="text-left">'
- cMgItens+= ' <input id="ITEM'+cLinha+'" name="CK_ITEM'+cLinha+'" class="form-control input-block " type="text" disabled value="'+TMP1->CK_ITEM+'">'
- cMgItens+= ' </td>'
- cMgItens+= ' <td align="text-left">'
- cMgItens+= ' <input id="CODIGO'+cLinha+'" name="CODIGO'+cLinha+'" class="form-control input-block " type="text" width="*" disabled value="'+Alltrim(TMP1->CK_PRODUTO)+' - '+Alltrim(TMP1->CK_DESCRI)+'">'
- cMgItens+= ' </td>'
- cMgItens+= ' <td align="text-left">'
- cMgItens+= ' <input id="GRUPO'+cLinha+'" name="GRUPO'+cLinha+'" class="form-control input-block " type="text" width="*" disabled value="'+cTipo+' - '+cGrupo+'">'
- cMgItens+= ' </td>'
- cMgItens+= ' <td align="text-left">'
- cMgItens+= ' <input id="MARKUP'+cLinha+'" name="MARKUP'+cLinha+'" class="form-control input-block " type="text" width="*" disabled value="'+Transform(TMP1->B1_MARKUP,"@E 999.99")+'">'
- cMgItens+= ' </td>'
- cMgItens+= ' <td align="text-left">'
- cMgItens+= ' <input id="MC'+cLinha+'" name="MC'+cLinha+'" class="form-control input-block " type="text" width="*" disabled value="'+Transform((nMC / TMP1->CK_VALOR)*100,"@E 999,999,999.9999")+'">'
- cMgItens+= ' </td>'
- cMgItens+= '</tr>'
- // Carrega as Variaveis Totalizador Orçamento, Luminarias e Equipamentos.
- If cTipo == "CO" .AND. cGrupo== "ELEV"
- // soma a margem total
- nMC_T := nMC_T + (TMP1->CK_VALOR * -1)
- // soma o valor total
- nMCTotIt := nMCTotIt + TMP1->CK_VALOR
- Else
- // se nao é do grupo pan e nao são acessorios de painel de led
- If cGRUPO <> 'PAN' .and. !(AllTrim(TMP1->CK_PRODUTO) $ cAcessorio)
- // soma a margem total
- nMC_T := nMC_T + nMC
- // soma o valor total
- nMCTotIt := nMCTotIt + TMP1->CK_VALOR
- EndIf
- EndIf
-
- //Margem total do orçamento
- nMargem:= ((nMC_T / nMCTotIt)*100)
- //Luminarias
- If cTipo == "PA"
- If cGRUPO == "C" .OR. cGRUPO == "C-EX" .OR. cGRUPO == "F" .OR. cGRUPO == "F-EX" .OR. cGRUPO == "PE" .OR. cGRUPO == "DEC" .OR. cGRUPO == "DECV" .OR. cGRUPO == "PED" .OR. cGRUPO == "TEC" .OR.;
- cGRUPO == "LED" .OR. cGRUPO == "LEDC" .OR. cGRUPO == "LEDD" .OR. cGRUPO == "LEDT" .OR. cGRUPO == "PEL" .OR. cGRUPO == "REIL" .OR. cGRUPO == "REIO" .OR. cGRUPO == "REAB"
- nMC_L := nMC_L + nMc
- nMCTotIt_L := nMCTotIt_L + TMP1->CK_VALOR
- ElseIf cGrupo == "IMP" .AND. Substr(TMP1->CK_PRODUTO,1,2) <> "AC"
- nMC_L := nMC_L + nMc
- nMCTotIt_L := nMCTotIt_L + TMP1->CK_VALOR
- EndIf
- nMLuminaria:= (nMC_L / nMCTotIt_L)*100
- ElseIf cTipo == "RE" .AND. cGrupo == "RELU"
- nMC_L := nMC_L + nMc
- nMCTotIt_L := nMCTotIt_L + TMP1->CK_VALOR
- nMLuminaria:= (nMC_L / nMCTotIt_L)*100
- EndIf
-
- // Acessorios e Equipamentos.
- If cTipo == "PA"
- If cGRUPO == "ACES" .OR. cGRUPO == "PI" .OR. cGRUPO == "E040" .OR. cGRUPO == "E041" .OR. cGRUPO == "E042" .OR. cGRUPO == "E043" .OR. cGRUPO == "E044" .OR. cGRUPO == "E045" .OR.;
- cGRUPO == "E046" .OR. cGRUPO == "E047" .OR. cGRUPO == "E048" .OR. cGRUPO == "E049"
- // Acessorios PAN 23.01.2023 sao contabilizados junto do grupo pan
- If !(AllTrim(TMP1->CK_PRODUTO) $ cAcessorio)
- nMC_E := nMC_E + nMc
- nMCTotIt_E := nMCTotIt_E + TMP1->CK_VALOR
- Endif
- ElseIf cGrupo == "IMP" .AND. Substr(TMP1->CK_PRODUTO,1,2) = "AC"
- nMC_E := nMC_E + nMc
- nMCTotIt_E := nMCTotIt_E + TMP1->CK_VALOR
- EndIf
- nMEquipa:= (nMC_E / nMCTotIt_E)*100
- ElseIf (cTipo == "MP" .OR. cTipo == "RE")
- If cGRUPO <> "RELU"
- nMC_E := nMC_E + nMc
- nMCTotIt_E := nMCTotIt_E + TMP1->CK_VALOR
- nMEquipa:= (nMC_E / nMCTotIt_E)*100
- EndIf
- EndIf
- // Grupo PAN
- IF cGrupo == "PAN" .or. (AllTrim(TMP1->CK_PRODUTO) $ cAcessorio)
- nMC_P := nMC_P + nMc
- nMCTotIt_P := nMCTotIt_P + TMP1->CK_VALOR
- nMPainel:= (nMC_P / nMCTotIt_P)*100
- EndIf
- TMP1->(dbSkip())
- End
- cMargem:= Transform(((nMC_T / nMCTotIt)*100),"@E 9999.99")
- Return cMargem
- /*__________________________________________________________________________
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦Funçäo ¦ GetSaldoProd ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 17.10.23 ¦¦¦
- ¦¦+----------+------------------------------------------------------------¦¦¦
- ¦¦¦Descriçäo ¦ Busca saldo do item (mesma query GetEstDisp-addorc.apl) ¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
- Static Function GetSaldoProd()
- //Armazéns considerados para busca do estoque
- Local cArmazem:= GetNewPar("PR_ARMZPR","'01','02','03'") //deve estar no formato '01','02'
- Local cQry:=""
- //Busca o saldo do produto
- cQry:= "With QRY AS( "
- cQry+= "Select SUM(B2_QATU) EST , SUM(CASE WHEN B2_QEMP >= 0 THEN B2_QEMP ELSE 0 END) + SUM(CASE WHEN B2_RESERVA >= 0 THEN B2_RESERVA ELSE 0 END) + SUM(CASE WHEN B2_QPEDVEN >= 0 THEN B2_QPEDVEN ELSE 0 END) EMPENHO " //adicionado reserva 07.02.20 - Lucilene
- cQry+= "From "+RetSqlName("SB2")+" SB2 "
- cQry+= "Where B2_FILIAL = '"+xFilial("SB2")+"' And B2_COD = '"+SCK->CK_PRODUTO+"' And SB2.D_E_L_E_T_ = ' ' "
- If !Empty(cArmazem)
- cQry+= "AND B2_LOCAL in ("+cArmazem+") "
- Endif
- cQry+= "UNION ALL "
- cQry+= "Select 0 EST , SUM(CK_QTDVEN) EMPENHO "
- cQry+= "From "+RetSqlName("SCJ")+" SCJ, "+RetSqlName("SCK")+" SCK "
- cQry+= "Where CJ_FILIAL = '"+xFilial("SB2")+"' AND CJ_XTPORC = '1' AND CJ_STATUS = 'A' AND SCJ.D_E_L_E_T_ = ' ' "
- cQry+= "and CK_FILIAL = CJ_FILIAL AND CK_NUM = CJ_NUM AND CK_PRODUTO = '"+SCK->CK_PRODUTO+"' and SCK.D_E_L_E_T_ = ' ' "
- If !Empty(cArmazem)
- cQry+= "AND CK_LOCAL in ("+cArmazem+") "
- Endif
- cQry+= ")"
- cQry+= "SELECT SUM(EST) -SUM(EMPENHO) SALDO FROM QRY "
- If Select("QRS") > 0
- QRS->(dbCloseArea())
- Endif
- APWExOpenQuery(cQry,'QRS',.T.)
-
- Return cvaltochar(QRS->SALDO)
|