Pagetitle |
---|
| OF350GRORC - Exportação de campos para o orçamento. |
---|
| OF350GRORC - Exportação de campos para o orçamento. |
---|
|
Ponto-de-Entrada: OF350GRORC - Exportação de campos para o orçamento. Abrangências: | Microsiga Protheus 10 , Microsiga Protheus 11 | Versões: | Microsiga Protheus 10 , Microsiga Protheus 11 | Compatível Países: | Todos | Sistemas Operacionais: | Todos | Compatível às Bases de Dados: | Todos | Idiomas: | Português (Brasil) |
Descrição: Este ponto de entrada está localizado na rotina Agendamento (OFIOM350). Ao incluir um agendamento, é possível informar a kilometragem do veículo através do campo Km Veiculo (VSO_KILOME), (UPDOFIFS), e no momento de exportá-lo para um novo orçamento, a kilometragem também será exportada. Eventos /* ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±± ±±³ Funcao ³ FS_EXPAGEND ³ Autor ³ Rubens ³ Data ³ 18/01/10 ³±± ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±± ±±³ Descricao³ Verifica se pode exportar o agendamento ³±± ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±± ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± */ Static Function FS_EXPAGEND()
Local nCntFor, nCntFor2, nAuxPos Local aTTFatPar := {} // Matriz contendo todos os TT e Faturar Para { TT Peca , TT Servico , Cliente, Loja } Local lAddFatPar Local cAuxSeqInc, nAuxSeqVS3, nAuxSeqVS4 Local nValPec, nMarLuc Local lKilometragem, nValHor Local aTempPro, cCenCus Local lVAJGRUMOD := (VAJ->(FieldPos("VAJ_GRUMOD")) > 0) Local lVAJAPLICA := (VAJ->(FieldPos("VAJ_APLICA")) > 0) Local lVS4SEQSER := (VS4->(FieldPos("VS4_SEQSER")) > 0 .and. VO7->(FieldPos("VO7_SEQSER")) > 0) Local cSeqSer Local lIncSer := .f. Local cGruMod := "" Local cAuxChaInt := Space(TamSX3("VV1_CHAINT")[1]) Private cFormulPeca := ""
// Levanta todos os TT e Fat. Para possiveis For nCntFor := 1 to Len(aIncAg) // Pecas If aIncAg[nCntFor,11] == "1" nAuxPos := aScan(aTTFatPar,{ |x| x[1] == aIncAg[nCntFor,6] .and. x[3] == aIncAg[nCntFor,7] .and. x[4] == aIncAg[nCntFor,8] } ) // Servicos ElseIf aIncAg[nCntFor,11] == "2" nAuxPos := aScan(aTTFatPar,{ |x| x[2] == aIncAg[nCntFor,6] .and. x[3] == aIncAg[nCntFor,7] .and. x[4] == aIncAg[nCntFor,8] } ) EndIf
lAddFatPar := .t. // Adiciona na matriz ... If nAuxPos == 0 For nAuxPos := 1 to Len(aTTFatPar) // Se for o mesmo faturar para ... If aTTFatPar[nAuxPos,3] == aIncAg[nCntFor,7] .and. aTTFatPar[nAuxPos,4] == aIncAg[nCntFor,8] // Pecas If aIncAg[nCntFor,11] == "1" .and. empty(aTTFatPar[nAuxPos,1]) aTTFatPar[nAuxPos,1] := aIncAg[nCntFor,6] lAddFatPar := .f. exit EndIf // Servicos If aIncAg[nCntFor,11] == "2" .and. empty(aTTFatPar[nAuxPos,2]) aTTFatPar[nAuxPos,2] := aIncAg[nCntFor,6] lAddFatPar := .f. exit EndIf EndIf Next nAuxPos
If lAddFatPar AADD( aTTFatPar, { "", "", aIncAg[nCntFor,7], aIncAg[nCntFor,8] } ) // Atualiza TT de Peca ou Servico ... aTTFatPar[Len(aTTFatPar), Val(aIncAg[nCntFor,11])] := aIncAg[nCntFor,6] EndIf
EndIf Next
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Gera Orcamentos³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Begin Transaction
For nAuxPos := 1 to Len(aTTFatPar)
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Verifica se nao ficou algum TT em branco, e atualiza ele..³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ // Se o TT de Peca estiver vazio, grava o TT de Servico If empty(aTTFatPar[nAuxPos,1]) aTTFatPar[nAuxPos,1] := aTTFatPar[nAuxPos,2] EndIf // Se o TT de Servico estiver vazio, grava o TT de Peca If empty(aTTFatPar[nAuxPos,2]) aTTFatPar[nAuxPos,2] := aTTFatPar[nAuxPos,1] EndIf // // Posiciona Cliente dbSelectArea("SA1") dbSetOrder(1) dbSeek(xFilial("SA1")+aTTFatPar[nAuxPos,3]+aTTFatPar[nAuxPos,4]) // Posiciona Veiculo dbSelectArea("VV1") dbSetOrder(2) dbSeek(xFilial("VV1")+VSO->VSO_GETKEY) // Procura Modelo do veiculo cGruMod := FM_SQL("SELECT VV2_GRUMOD FROM "+RetSQLName("VV2")+" WHERE VV2_FILIAL = '"+xFilial("VV2")+"' AND VV2_CODMAR = '"+VV1->VV1_CODMAR+"' AND VV2_MODVEI = '"+VV1->VV1_MODVEI+"' AND D_E_L_E_T_ = ' '") // Posiciona o TT de Peca dbSelectArea("VOI") dbSetOrder(1) dbSeek(xFilial("VOI")+aTTFatPar[nAuxPos,1])
// Formula para calculo do valor das pecas cFormulPeca := iif( !Empty(VOI->VOI_VALPEC) , VOI->VOI_VALPEC , &(GETMV("MV_FMLPECA")) ) //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Cabecalho do Orcamento³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ dbSelectArea("VS1") RecLock("VS1",.T.) VS1->VS1_FILIAL := xFilial("VS1") VS1->VS1_NUMORC := GetSXENum("VS1","VS1_NUMORC") VS1->VS1_TIPORC := "2" // Orcamento de Oficina VS1->VS1_NUMAGE := VSO->VSO_NUMIDE
VS1->VS1_CLIFAT := aTTFatPar[nAuxPos,3] VS1->VS1_LOJA := aTTFatPar[nAuxPos,4] VS1->VS1_NCLIFT := SA1->A1_NOME VS1->VS1_TIPCLI := SA1->A1_TIPO
VS1->VS1_OBSMEM := VSO->VSO_OBSMEM VS1->VS1_CODMAR := VSO->VSO_CODMAR
VS1->VS1_DATORC := CriaVar("VS1_DATORC") VS1->VS1_HORORC := CriaVar("VS1_HORORC") VS1->VS1_CODVEN := CriaVar("VS1_CODVEN") VS1->VS1_DATVAL := CriaVar("VS1_DATVAL") VS1->VS1_TIPTEM := aTTFatPar[nAuxPos,1] // TT de Peca VS1->VS1_TIPTSV := aTTFatPar[nAuxPos,2] // TT de Servico //VS1->VS1_FORPAG //VS1->VS1_CODBCO VS1->VS1_FORMUL := cFormulPeca VS1->VS1_CHAINT := VV1->VV1_CHAINT VS1->VS1_TIPVEN := "1" // Varejo //VS1->VS1_NATURE VS1->VS1_STATUS := "0" VS1->VS1_CFNF := "1" // Gera Nota Fiscal VS1->VS1_KILOME := VSO->VSO_KILOME //VS1_PGTFRE //Ponto de entrada para gravacao do agendamento no orcamento. if ExistBlock("OF350GRORC") ExecBlock("OF350GRORC",.f.,.f.) Endif MsUnLock()
Sintaxe OF350GRORC - Exportação de campos para o orçamento. ( [ ] ) Parâmetros: | Nome | | | Tipo | | | Descrição | | | Default | | | Obrigatório | | | Referência | | | | | | Array of Record | | | | | | | | | | | | | |
Exemplos #INCLUDE "PROTHEUS.CH"/*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜܱ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±±±ºPrograma ³OF350GRORCºAutor ³ Otavio Favarelli º Data ³ 24/03/11 º±±±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±±±ºDesc. ³ Ponto de entrada para gravacao de campos do agendamento no orcamento º±±±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±±±ºUso ³ SIGAOFI º±±±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/User Function OF350GRORC()//VS1->VS1_DEPTO := GETMV("MV_DEPTOAG")//VS1->VS1_NATURE := GETMV("MV_NATUREZ")MsgInfo("O ponto de entrada OF350GRORC foi executado!","Atencao!")Return Variáveis | Nome | | | Tipo | | | Escopo | | | Pode Alterar | | | descrição | | | | | | Array of Record | | | Global | | | Não | | | | |
|