Card |
---|
id | 110 |
---|
label | Cabeçalho (TFJ) | Incluir |
---|
| Utilizando um Orçamento Simplificado: Sistema deve estar na versão 12.1.23 ou superior e o parâmetro MV_ORCSIMP deve estar ligado (1=Sim): - Acesse a
| Campo | Descrição | Utilização |
---|
TFJ_CODENT | Código da Entidade | Este campo é aberto para edição caso a manipulação do orçamento ocorra através da - rotina Orçamento Simplificado (TECA745)
, com - Selecione a opção "Incluir"
- Caso o parâmetro MV_
ORCSIMP ativado. Caso a inclusão ocorra através da rotina Oportunidade de Venda, o campo é travado para edição e é preenchido automaticamente com o mesmo Cliente (AD1_CODCLI) ou Prospect (AD1_PROSPE) da Oportunidade de Venda. Na inclusão do Orçamento Simplificado, este campo sempre representará o código do Cliente (SA1). Na Vistoria Técnica (TECA270), este campo espelha-se ao campo Código da Entidade da vistoria (AAT_CODENT).Principais Integrações: Geração do Contrato (TECA850): Ao gerar o contrato, na opção de Seleção da Base de Atendimento, o sistema apresentará apenas as bases de atendimento cujo código do cliente (AA3_CODCLI) seja igual ao código da entidade (AA3_CODCLI = TFJ_CODENT). Ao utilizar a opção "Sugestão", para incluir automaticamente uma base de atendimento, o código do cliente da base será o mesmo da entidade do orçamento. No contrato, este campo cria uma linha na tabela Fornec./Clientes X Contratos (CNC), preenchendo o campo Código do Cliente (CNC_CLIENT) com o mesmo valor preenchido na entidade do orçamento (CNC_CLIENT = TFJ_CODENT). Central do Cliente (TECC070): Se o Gestão de Serviços estiver na versão 12.1.23 ou superior, o sistema considera os Orçamentos Simplificados na central do cliente através do campo TFJ_CODENT, conforme preenchido no primeiro parâmetro (SX1) ao acessar a Central do Cliente (TFJ_CODENT = MV_PAR01). - ORCPRC estiver ligado, é necessário informar uma Tabela de Precificação (TECA740E)
Utilizando uma Oportunidade de Venda: - Acesse a rotina "Oportunidade de Venda" (FATA300) e selecione um registro no grid
- Acesse a opção "Alterar"
- Acesse a opção "Outras Ações" e "Proposta Comercial"
- Caso não exista, inclua uma Proposta Comercial. Caso exista, selecione uma Proposta Comercial e pressione "Alterar"
- Com a rotina "Proposta Comercial" aberta, selecione "Outras Ações" e "Atualiza Orçamento de Serviços"
- Caso o parâmetro MV_ORCPRC estiver ligado, é necessário informar uma Tabela de Precificação (TECA740E)
Utilizando uma Vistoria Técnica: - Na rotina Vistorias Técnicas (TECA270), incluir ou alterar.
- Selecione "Outras Ações" e "Atualiza Orçamento de Serviços" e conclua a inclusão do Orçamento de Vistoria
- Caso o parâmetro MV_ORCPRC estiver ligado, é necessário informar uma Tabela de Precificação (TECA740E).
- O Orçamento incluído através da Vistoria precisa ser importado para um Orçamento Simplificado ou Proposta Comercial para se tornar um Orçamento de Serviços.
- No Cadastro de Vistorias Técnicas use a opção "Gerar Orçamento de Serviços" para gerar Orçamento de Vistoria ou também, no cadastro de Orçamentos, incluir ou alterar e selecione "Incluir Vistoria".
Informações |
---|
| O passo 4 somente será permitido após a finalização da vistoria (Status=Concluído) e após a conclusão do passo 2 |
Card |
---|
| Utilizando um Orçamento Simplificado: Sistema deve estar Geração dos Memorandos: Se o Gestão de Serviços estiver na versão 12.1.23 ou superior , o sistema considera a informação preenchida no campo TFJ_CODENT para gerar os memorandos para os Orçamentos Simplificados.Alocação Automática (TECA580B): Ao acessar a rotina Alocação Automática, dentro do Gestão de Escalas, o sistema apresentará uma tela para preencher os filtros de busca (SX1). Os filtros Cliente de/Cliente até referem-se ao campo TFJ_CODENT. | TFJ_LOJA | Loja da Entidade | Faz parte da chave da entidade, logo, possui as mesmas utilizações do campo TFJ_CODENT. | TFJ_CODPG | Condição de Pagamento | Campo aberto para edição, relaciona-se com a tabela SE4 - Condição de Pagamento (MATA360) Principais Integrações: Separação (TECA820): O campo Condição de Pagamento do Orçamento de Serviços é utilizado para gerar o Pedido de Venda no ato da Separação (C5_CONDPAG = TFJ_CODPG) Geração do Contrato (TECA850): Utilizado para preencher o campo CN9_CONDPG (CN9_CONDPG = TFJ_CODPG) Apurar fora do Contrato (TECA930): Utilizado para preencher a condição de pagamento do Pedido de Venda gerado. | TFJ_AGRUP | Agrupa Faturamento | De acordo com o Help do campo: "Informar se o contrato será agrupado. Sim – O cliente de faturamento será o mesmo do campo ‘Código’ do Local de Atendimento Não – O cliente de faturamento será o mesmo do campo ‘Cli.Fat’ do Local de Atendimento" No cadastro de Locais de Atendimento (tabela ABS, programa TECA160) existe o campo ABS_CODIGO e o campo ABS_CLIFAT. O campo ABS_CODIGO indica o código do cliente ao qual o Local de Atendimento pertence. Ao gerar o contrato, o sistema criará uma Planilha (CNA) para cada Local de Atendimento do orçamento de serviços, os campos Cliente e Loja Cliente (CNA_CLIENT e CNA_LOJACL) são preenchidos pelo Código e Loja do Local de Atendimento (ABS_CODIGO = CNA_CLIENT e CNA_LOJACL = ABS_LOJA), porém, se o campo Agrupa Faturamento (TFJ_AGRUP) estiver preenchido como "2 - Não", o sistema considerá o valor dos campos ABS_CLIFAT e ABS_LJFAT para preencher os dados da Planilha (CNA) do contrato (ABS_CLIFAT = CNA_CLIENT e CNA_LOJACL = ABS_LJFAT) | TFJ_GRPRH | Item Agrupador para Recursos Humanos | Os itens agrupadores (TFJ_GRPRH, TFJ_GRPMI, TFJ_GRPMC, TFJ_GRPLE) são exibidos apenas no Orçamento de serviços agrupado (MV_GSDSGCN = 2). Todos estes campos são relacionados com o cadastro de Produtos (SB1 - MATA010). Todos são aberto para edição até o a geração do contrato (TECA850), após a geração do contrato, estes campos ficam travados para edição na revisão do contrato. O campo Item Agrupador para Recursos Humanos (TFJ_GRPRH) relaciona-se com o campo Produto (CNB_PRODUT) do Item da Planilha do Contrato (CNB) (CNB_PRODUT = TFJ_GRPRH). No momento da geração do contrato (TECA850), com orçamento de serviços agrupado (MV_GSDSGCN = 2), o sistema agrupa todos os itens de Recursos Humanos (TFF) em um registro no Item da Planilha do Contrato (CNB). Este único registro na CNB possuirá o mesmo valor total que a soma de todos os itens de RH daquele orçamento e quantidade um (1), por Local de Atendimento (TFL). O exemplo abaixo demonstra a utilização deste campo: Exemplo 1: Em um orçamento com dois Locais de Atendimento (duas linhas na TFL), cada um dos locais de atendimento possui dois itens de recursos humanos (TFF). Em cada um dos quatro itens de recursos humanos, o campo Quantidade (TFF_QTDVEN) está preenchido com o valor dez (10) e o campo Preço Unitário (TFF_PRCVEN) está preenchido com o valor dois (2). Isso significa que o total do Orçamento de Serviços é R$ 80,00. Ao gerar o contrato, se o campo TFJ_GRPRH estiver preenchido, o sistema criará duas Planilhas (duas linhas na CNA) - uma para cada Local de Atendimento (TFL) - e, em cada uma das Planilhas, apenas 1 (um) item (CNB). Este item possuirá o mesmo código informado no agrupador, o valor total dele será de R$ 40,00 - com o campo Quantidade (CNB_QUANT) preenchido com valor um (1) e o campo Valor Unitário (CNB_VLUNIT) preenchido com o valor 40. Caso dois ou mais agrupadores possuírem o mesmo código no orçamento de serviços, estes também são agrupados em apenas uma linha de item da planilha do contrato. Isso significa se o campo TFJ_GRPRH e o campo TFJ_GRPMI possuírem o mesmo valor, e o orçamento possuir Materiais de Implantação e Recursos Humanos em um mesmo Local de Atendimento, todos estes itens são agrupados em apenas um na CNB. Assim, em um Orçamento de serviços agrupado (MV_GSDSGCN = 2), o máximo de itens que uma planilha possuirá é quatro (se todos os itens agrupadores forem diferentes e o orçamento possuir todos os tipos de item em um mesmo local de atendimento). | TFJ_GRPMI | Item Agrupador para Material de Implantação | Mesmas funcionalidades do campo TFJ_GRPRH, porém para Materiais de Implantação (TFG). | TFJ_GRPMC | Item Agrupador para Material de Consumo | Mesmas funcionalidades do campo TFJ_GRPRH, porém para Materiais de Implantação (TFH). | TFJ_GRPLE | Item Agrupador para Locação de Equipamentos | Mesmas funcionalidades do campo TFJ_GRPRH, porém para Locação de Equipamentos (TFI). | TFJ_TES | TES do Item Agrupador para Recursos Humanos | Assim como os itens agrupadores, as TES dos itens agrupadores são exibidos apenas no Orçamento de serviços agrupado (MV_GSDSGCN = 2). Todos estes campos são relacionados com o cadastro de TES (SF4 - MATA080). Todos são aberto para edição até o a geração do contrato (TECA850), após a geração do contrato, estes campos ficam travados para edição na revisão do contrato. O sistema permite cadastrar apenas TES de Saída (código maior que 500). O campo TFJ_TES está relacionado com o campo CNB_TS. Ao gerar o contrato com item agrupador, a TES no Item da Planilha (CNB) será preenchida com o mesmo valor informado na TES agrupadora do Orçamento de Serviços, para o tipo de item correspondente. Assim, os itens agrupados pelo campo TFJ_GRPMI possuem a mesma TES informada no campo TFJ_TESMI, os itens agrupados pelo campo TFJ_GRPMC possuem a mesma TES informada no campo TFJ_TESMC e assim por diante. | TFJ_TESMI | TES do Item Agrupador para Material de Implantação | Mesmas funcionalidades do campo TFJ_TES, porém para Materiais de Implantação (TFG). | TFJ_TESMC | TES do Item Agrupador para Material de Consumo | Mesmas funcionalidades do campo TFJ_TES, porém para Materiais de Implantação (TFH). | TFJ_TESLE | TES do Item Agrupador para Locação de Equipamentos | Mesmas funcionalidades do campo TFJ_TES, porém para Locação de Equipamentos (TFI). | Card |
---|
id | 2 |
---|
label | Locais de Atendimento (TFL) |
---|
| Card |
---|
id | 3 |
---|
label | Recursos Humanos (TFF) |
---|
| Card |
---|
id | 4 |
---|
label | Materiais de Implantação (TFG) |
---|
| Card |
---|
id | 5 |
---|
label | Materiais de Consumo (TFH) |
---|
| Card |
---|
id | 6 |
---|
label | Verbas Adicionais (ABP) |
---|
| Card |
---|
| Card |
---|
id | 8 |
---|
label | Locação de Equipamentos (TFI) |
---|
| Card |
---|
id | 9 |
---|
label | Cobrança da Locação (TEV)e o parâmetro MV_ORCSIMP deve estar ligado (1=Sim): - Acesse a rotina Orçamento Simplificado (TECA745)
- Selecione a opção "Excluir"
Utilizando uma Oportunidade de Venda: - Acesse a rotina "Oportunidade de Venda" (FATA300) e selecione um registro no grid
- Acesse a opção "Alterar"
- Acesse a opção "Outras Ações" e "Proposta Comercial"
- Selecione uma Proposta Comercial e pressione "Alterar"
- Com a rotina "Proposta Comercial" aberta, selecione "Outras Ações" e "Remover Orçamento de Serviços"
Utilizando uma Vistoria Técnica: - Na rotina Vistoria Técnica (TECA270), incluir ou alterar um registro qualquer
- Selecione "Outras Ações" e "Remover Orçamento de Serviços"
|
Card |
---|
| Utilizando um Orçamento Simplificado: Sistema deve estar na versão 12.1.23 ou superior e o parâmetro MV_ORCSIMP deve estar ligado (1=Sim): - Acesse a rotina Orçamento Simplificado (TECA745)
- Selecione a opção "Alterar"
Utilizando uma Oportunidade de Venda: - Acesse a rotina "Oportunidade de Venda" (FATA300) e selecione um registro no grid
- Acesse a opção "Alterar"
- Acesse a opção "Outras Ações" e "Proposta Comercial"
- Selecione uma Proposta Comercial e pressione "Alterar"
- Com a rotina "Proposta Comercial" aberta, selecione "Outras Ações" e "Atualiza Orçamento de Serviços"
Utilizando uma Vistoria Técnica: - Na rotina Vistoria Técnica (TECA270), selecione "Alterar".
- Selecione "Outras Ações" e "Atualiza Orçamento de Serviços"
- OBS: O orçamento incluído via Vistoria precisa ser importado para um Orçamento Simplificado ou Proposta Comercial para se tornar um orçamento.
|
Card |
---|
| Utilizando um Orçamento Simplificado: Sistema deve estar na versão 12.1.23 ou superior. - Acesse a rotina Orçamento Simplificado (TECA745)
- Selecione a opção "Visualizar"
Utilizando uma Oportunidade de Venda: - Acesse a rotina "Oportunidade de Venda" (FATA300) e selecione um registro no grid
- Acesse a opção "Visualizar"
- Acesse a opção "Outras Ações" e "Proposta Comercial"
- Selecione uma Proposta Comercial e pressione "Visualizar"
- Com a rotina "Proposta Comercial" aberta, selecione "Outras Ações" e "Visualizar Orçamento de Serviços"
Utilizando uma Vistoria Técnica: - Na rotina Vistoria Técnica (TECA270), visualize um registro qualquer
- Selecione "Outras Ações" e "Visualizar Orçamento de Serviços"
|
Card |
---|
id | 14 |
---|
label | Ativar / Inativar |
---|
| Utilizando um Orçamento Simplificado: Sistema deve estar na versão 12.1.23 ou superior. - Acesse a rotina Orçamento Simplificado (TECA745)
- Selecione a opção "Ativar / Inativar"
|
Card |
---|
id | 15 |
---|
label | Posicionar registro |
---|
| Utilizando o Posicionar Registros:
Sistema deve estar na versão 12.1.23 ou superior. Acesse a rotina Orçamento (TECA740) - Selecione "Outras Ações" e "Posicionar"
- Selecione qual aba gostaria de posicionar e confirme. Após a confirmação, aparecerão os campos padrão e os campos criados pelo usuário.
- Preencha os campos e confirme.
- Se existirem as informações, será posicionado na linha.
- Se não existirem as informações, será exibida uma mensagem alertando o usuário que não foi possível posicionar na linha.
|
Card |
---|
id | 15 |
---|
label | Armamento e Uniforme |
---|
| Abas Uniforme e Armamento: As abas de uniforme e armamento possuem valores próprios e estão vinculadas ao orçamento somente quando o campo MV_ORCPRC está configurado como .F. Esses totais são incorporados ao valor da TFF, refletindo-se posteriormente no contrato. Vale observar que os itens de armamento e uniforme não geram linhas específicas nos contratos; ao invés disso, seus totais são incorporados diretamente ao posto. Observação: A incorporação desses valores ao contrato ocorre quando o campo MV_ORCPRC está desabilitado.
Informações |
---|
| Para o cálculo correto do Total Geral dos uniformes é necessário que os campos "Aloc. Previs" (TFF_QTPREV) e "Vida Útil" (TXP_VIDMES) e "Qtd.Total Un" (TXP_QTDUNI) existam na base. O Total Geral do Uniforme será calculado da seguinte forma: "Qtd. Uniforme" (TXP_QTDVEN) * "Aloc. Previs" (TFF_QTPREV) * "Vlr. Uniforme (TXP_PRCVEN) e será dividido pelo campo "Vida Útil" (TXP_VIDMES) caso seja preenchido. |
|
Card |
---|
id | 16 |
---|
label | Exemplo de código |
---|
| O código abaixo exemplifica a inclusão de um Orçamento de Serviços:
Bloco de código |
---|
| #INCLUDE 'PROTHEUS.CH'
#INCLUDE 'FWMVCDEF.CH'
// Exemplo de ExecAuto Customizado, de Orçamento de Contrato de Serviço
// Nos ARRAYs, informar o nome do campo e valor
// Usar os Modelos abaixo, no FOR acima
// 'TFJ_REFER'. // 'Ref. Proposta'
// GRID
// 'TFL_LOC' // 'Locais de Atendimento'
// 'TFF_RH' // 'Recursos Humanos'
// SubGRID
// 'TFG_MI' // 'Materiais de Implantação'
// 'TFH_MC' // 'Material de Consumo'
// 'ABP_BENEF' // 'Benefícios'
// 'TFU_HE' // 'Hora Extra'
// 'TFI_LE' // 'Locação de Equipamentos'
// SubGRID
// 'TEV_ADICIO' // 'Cobrança da Locação'
User FunctIon Orc740()
Local aLinha := {}
Local aTFJ := {} // Campos do Cabeçalho
Local aTFL := {} // Locais de Atendimento
Local aTFF := {} // Recursos Humanos
Local aTFG := {} // Material de Implantação
Local aTFH := {} // Material de Consumo
Local aABP := {} // Verbas Adicionais
Local aTFU := {} // Hora Extra
Local aTFI := {} // Locação de Equipamentos
Local aTEV := {} // Cobrança de Locação
Local nDtIni := dDataBase
Local nDtFim := dDataBase + 30
// Cabeçalho
aAdd(aTFJ, {"TFJ_FILIAL", xFilial("TFJ")})
aAdd(aTFJ, {"TFJ_CODIGO", GETSXENUM("TFJ", "TFJ_CODIGO")})
aAdd(aTFJ, {"TFJ_CODENT", "000001"})
aAdd(aTFJ, {"TFJ_LOJA" , "01"})
aAdd(aTFJ, {"TFJ_CONDPG", "001"})
// Locais de Atendimento
aAdd(aTFL , "TFL_LOC")
aAdd(aLinha, {"TFL_FILIAL", xFilial("TFL")})
aAdd(aLinha, {"TFL_LOCAL" , "00000014"})
aAdd(aLinha, {"TFL_DTINI" , nDtIni})
aAdd(aLinha, {"TFL_DTFIM" , nDtFim})
aAdd(aTFL , aLinha)
aLinha := {}
// Recursos Humanos
aAdd(aTFF , "TFF_RH")
aAdd(aLinha, {"TFF_FILIAL", xFilial("TFF")})
aAdd(aLinha, {"TFF_ITEM" , "01"})
aAdd(aLinha, {"TFF_PRODUT", "000000000000001"})
aAdd(aLinha, {"TFF_QTDVEN", 10})
aAdd(aLinha, {"TFF_PRCVEN", 1000})
aAdd(aLinha, {"TFF_PERINI", nDtIni})
aAdd(aLinha, {"TFF_PERFIM", nDtFim})
aAdd(aLinha, {"TFF_TESPED", "502"})
aAdd(aLinha, {"TFF_FUNCAO", "00001"})
aAdd(aLinha, {"TFF_TURNO" , "001"})
aAdd(aLinha, {"TFF_SEQTRN", "01"})
aAdd(aLinha, {"TFF_ESCALA", "000002"})
aAdd(aTFF , aLinha)
aLinha := {}
// Materiais de Implantação
aAdd(aTFG , "TFG_MI")
aAdd(aLinha, {"TFG_FILIAL", xFilial("TFG")})
aAdd(aLinha, {"TFG_ITEM" , "01"})
aAdd(aLinha, {"TFG_PRODUT", "000000000000003"})
aAdd(aLinha, {"TFG_QTDVEN", 1})
aAdd(aLinha, {"TFG_PRCVEN", 100})
aAdd(aLinha, {"TFG_PERINI", nDtIni})
aAdd(aLinha, {"TFG_PERFIM", nDtFim})
aAdd(aLinha, {"TFG_TESPED", "501"})
aAdd(aTFG , aLinha)
aLinha := {}
// Materiais de Consumo
aAdd(aTFH , "TFH_MC")
aAdd(aLinha, {"TFH_FILIAL", xFilial("TFH")})
aAdd(aLinha, {"TFH_ITEM" , "01"})
aAdd(aLinha, {"TFH_PRODUT", "000000000000004"})
aAdd(aLinha, {"TFH_QTDVEN", 1})
aAdd(aLinha, {"TFH_PRCVEN", 100})
aAdd(aLinha, {"TFH_PERINI", nDtIni})
aAdd(aLinha, {"TFH_PERFIM", nDtFim})
aAdd(aLinha, {"TFH_TESPED", "501"})
aAdd(aTFH , aLinha)
aLinha := {}
MsgRun("Orçamento", "Processando", {|| U_Exec740(aTFJ, {aTFL, aTFF, aTFG, aTFH, aABP, aTFU, aTFI, aTEV})})
Return
//*************************************************************
// ExecAuto Customizado
User Function Exec740(aOrca, aModelos)
Local aLinha := {}
Local aGrid := {}
Local cCampo := ""
Local cMsg := ""
Local lRet := .T.
Local nGrd := 0
Local nLin := 0
Local nMod := 0
Local oModel
Local oModAux
Local xValor
If SuperGetMV('MV_ORCPRC')
oModel := FwLoadModel("TECA740F") // Orçamento com precificação
Else
oModel := FwLoadModel("TECA740") // Orçamento sem precificação
Endif
oModel:SetOperation(MODEL_OPERATION_INSERT)
oModel:Activate()
// Cabeçalho
oModAux := oModel:GetModel("TFJ_REFER")
For nMod := 1 To Len(aOrca)
cCampo := aOrca[nMod, 1]
xValor := aOrca[nMod, 2]
lRet := oModAux:SetValue(cCampo, xValor)
If !lRet
Exit
Endif
Next
// Grids
If lRet .And. !Empty(aModelos)
For nMod := 1 To Len(aModelos)
aGrid := aClone(aModelos[nMod])
If !Empty(aGrid)
oModAux := oModel:GetModel(aGrid[1]) // Nome do Modelo
For nGrd := 2 To Len(aGrid) // Registros do Modelo
If nGrd > 2
oModAux:AddLine()
Endif
aLinha := aClone(aGrid[nGrd]) // Campos do Modelo
For nLin := 1 To Len(aLinha)
cCampo := aLinha[nLin, 1]
If FwFldGet(cCampo) == Nil
MsgAlert("O Campo " + cCampo + ' não existe no Modelo ' + aGrid[1], "Erro")
lRet := .F.
Else
xValor := aLinha[nLin, 2]
lRet := oModAux:SetValue(cCampo, xValor)
Endif
If lRet .And. nLin == Len(aLinha)
aLinha := oModel:GetRelation(aGrid[1])[1] // Campos de Relacionamento
For nLin := 2 To Len(aLinha)
cCampo := aLinha[nLin, 2] // Campo Pai
xValor := FwFldGet(cCampo)
cCampo := aLinha[nLin, 1] // Campo Filho
If Empty(FwFldGet(cCampo))
lRet := oModAux:LoadValue(cCampo, xValor)
Endif
If !lRet
nGrd := Len(aGrid)
nMod := Len(aModelos)
Exit
Endif
Next
Exit
Endif
Next
Next
Endif
Next
Endif
At740SCmt(.T.)
lRet := lRet .And. oModel:VldData()
lRet := lRet .And. oModel:CommitData()
If !lRet
aLinha := oModel:GetErrorMessage()
For nLin := 1 To Len(aLinha)
If !Empty(aLinha[nLin])
cMsg += aLinha[nLin] + CRLF
Endif
Next
MsgAlert(cMsg, "Erro")
Else
MsgAlert("Orçamento Gravado com Sucesso", " ")
Endif
Return lRet
|
|
|