× Linguagem de Programação ADVPL

Perguntas Field Service - Abertura OS

Mais
11 anos 9 meses atrás #9931 por mariotchak
Respondido por mariotchak no tópico Re: Field Service - Abertura OS
Luiz Boa Noite,

Achei uma forma de fazer uma OS sem precisar utilizar diretamente a base instalada, vou utilizar o Projeto (ABH - TECA700) do Gestão de Serviços, acha uma boa?

Consegui utilizar o Reclock conforme abaixo, ele esta gerando um probjeto com os dados iniciais, com certeza minha maior dificuldade será utilizar o while para inserir os produtos, ainda mais pq precisarei abrir as quantidades. Segue fonte abaixo, estou utilizando um PE temporário, depois vou posicionar em um melhor.

User Function MT415EFT

Private _cNumPed := SCJ->CJ_NUM


dbSelectArea("SCJ")
DbSetOrder(1)
dbSeek(xFilial()+_cNumPed)

// Inclusão de Registro
RecLock("ABH",.T.)
Replace ABH_CODCLI With CJ_CLIENTE, ABH_LOJA With CJ_LOJA,;
ABH_FILIAL With CJ_FILIAL, ABH_PROJET With CJ_NUM,;
ABH_CODCLI With CJ_CLIENTE, ABH_DESCRI With 'ALARME',;
ABH_ENTREG With CJ_EMISSAO, ABH_REFER With CJ_EMISSAO,;
ABH_CODPRO With "BAT", ABH_SITUAC With "1"


dbUnLock()

return

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 9 meses atrás #9932 por mariotchak
Respondido por mariotchak no tópico Re: Field Service - Abertura OS
Completando a mensagem anterior, criei o while para inser os produtos mas da um erro dizendo que a variavel CK_item nao existe, segue parte do fonte abaixo. Será que o while esta correto?

DbSelectArea("SCK")
DbGoTop()
DbSetOrder(1)
DbSeek(xFilial("SCK")+_cNumPed)
While !Eof() .And. SCK->CK_FILIAL = xFilial("SCK") .And. SCK->CK_NUM == _cNumPed
dbSelectArea("SCK")

RecLock("ABI",.T.)
Replace ABI_PROJET With "CK_NUM",;
ABI_ITEM With CK_ITEM, ABI_CODPRO With "PRODUTO"

dbUnLock()

ENDDO

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 9 meses atrás #9935 por mariotchak
Respondido por mariotchak no tópico Re: Field Service - Abertura OS
Briga feia, agora ele até consegue gravar a primeira linha mas na segunda da erro de indice exclusivo na tabela ABI

DbSelectArea("SCK")

DbSetOrder(1)
DbSeek(xFilial("SCK")+_cNumPed)


While !Eof() .And. SCK->CK_FILIAL = xFilial("SCK") .And. SCK->CK_NUM == _cNumPed

RecLock("ABI",.T.)
Replace ABI_PROJET With SCK->CK_NUM,;
ABI_ITEM With SCK->CK_ITEM, ABI_CODPRO With "PRODUTO"

dbUnLock()

ENDDO

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 9 meses atrás #9967 por mariotchak
Respondido por mariotchak no tópico Re: Field Service - Abertura OS
Alguma ajuda?

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 9 meses atrás #9968 por lalberto
Respondido por lalberto no tópico Re: Field Service - Abertura OS
User Function Integra()
Local aArea := GetArea()

DbSelectArea("SCK")
DbSetOrder(1)
DbSeek(xFilial("SCK")+_cNumPed)

While !Eof() .And. SCK->CK_FILIAL = xFilial("SCK") .And. SCK->CK_NUM == _cNumPed

If RecLock("ABI",.T.)
ABI->ABI_PROJET := SCK->CK_NUM
ABI->ABI_ITEM := SCK->CK_ITEM
ABI->ABI_CODPRO := SCK->CK_PRODUTO
MsUnlock()
Endif

SCK->(dbSkip(1))
Enddo

RestArea(aArea)
Return .t.

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 9 meses atrás #9973 por mariotchak
Respondido por mariotchak no tópico Re: Field Service - Abertura OS
Luiz, deu certo no PE MT415EFT, porém preciso desse fonte em um botão na tela de orçamento de venda MATA415. para isso criei um fonte no PE MA415BUT, ate ai ok ele chama minha função de nomeie de INLCOS() porém nesta tela esta fonte que funcionava no PE M415EFT agora nao funciona mais, fala que nao pode gravar uma linha com indice exclusivo. Segue fontes abaixo, agradeço a ajuda.

Criar botão

#include "RWMAKE.CH"
User Function MA415BUT
Local aBotoes:={}
AAdd(aBotoes,{ "NOTE", {|| Processa({|| U_INCLOS()},"Dados do Pedido","Processando...") }, "Gera OS" } )
Return(aBotoes)

Gerar OS
#Include 'Protheus.ch'

User Function MT415EFT()
Local aArea := GetArea()
Private _cNumPed := SCJ->CJ_NUM // Numero do Orçamento

// Inclusão de Registro Inicial
dbSelectArea("SCJ")
DbSetOrder(1)
dbSeek(xFilial()+_cNumPed)
RecLock("ABH",.T.)
Replace ABH_CODCLI With CJ_CLIENTE, ABH_LOJA With CJ_LOJA,;
ABH_FILIAL With CJ_FILIAL, ABH_PROJET With CJ_NUM,;
ABH_CODCLI With CJ_CLIENTE, ABH_DESCRI With 'ALARME',;
ABH_ENTREG With CJ_EMISSAO, ABH_REFER With CJ_EMISSAO,;
ABH_CODPRO With "BAT", ABH_SITUAC With "1"

dbUnLock()

// Inclusão dos Itens do Orçamento
DbSelectArea("SCK")
DbSetOrder(1)
DbSeek(xFilial("SCK")+_cNumPed)
While !Eof() .And. SCK->CK_FILIAL = xFilial("SCK") .And. SCK->CK_NUM == _cNumPed

If RecLock("ABI",.T.)
Replace ABI_PROJET With SCK->CK_NUM,;
ABI_ITEM With SCK->CK_ITEM, ABI_CODPRO With SCK->CK_PRODUTO,;
ABI_FILIAL With SCK->CK_FILIAL, ABI_ETAPA With SCK->CK_ITEM,;
ABI_DESCRI With 'AAAA', ABI_CODPRB With 'INST',;
ABI_INIPRV With dDATABASE, ABI_FIMPRV With dDATABASE,;
ABI_SITATU With '1'

MsUnLock()
Endif
SCK->(dbSkip(1))

ENDDO

RestArea(aArea)
return

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.096 segundos
Joomla templates by a4joomla