Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/327912/newLayout.css |
Portuguese | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ponto-de-Entrada: OX001MF1 - Manipula informações de impostos
Descrição: O ponto de entrada OX001MF1 está localizado na rotina de Orçamento por Fases. Através deste ponto de entrada é possível manipular as informações referentes ao impostos, através do vetor a Orc. Eventos /* =============================================================================== ############################################################################### ##+----------+------------+-------+-----------------------+------+----------+## ##|Função | OFIXX001 | Autor | Luis Delorme | Data | 20/05/09 |## ##+----------+------------+-------+-----------------------+------+----------+## ##|Descrição | Orcamento de Pecas e Servicos |## ##+----------+--------------------------------------------------------------+## ##|Uso | Veiculos |## ##+----------+--------------------------------------------------------------+## ############################################################################### =============================================================================== */ Function OX001EXEC(cAlias,nReg,nOpc) // Local nCntFor // Variáveis de Posicionamento de Tela Local aObjects := {} Local aObjects1:= {} Local aObjects2:= {} Local aSizeAut:= MsAdvSize(.t.) // Variaveis da Enchoice Local aCpos := {} Local nModelo := 3 Local cTudoOk := ".t." Local lF3 := .f. Local lMemoria := .t. Local lColumn := .f. Local cATela := "" Local lNoFolder := .t. Local lProperty := .f. Private aCpoEncS := {} //################################################################ //# Especifica o espacamento entre os objetos principais da tela # //################################################################ // Tela Superior - Enchoice do VS1 - Tamanho vertical fixo AAdd( aObjects, { 0,90, .T., .F. } ) // Tela Dois - Folder (Pecas e Servicos) - Tamanho vertical VARIAVEL AAdd( aObjects, { 0,40, .T., .T. } ) // Tela Tres - Listbox (Itens Relacionados) - Tamanho vertical fixo AAdd( aObjects, { 0,60, .T., .F. } ) //################################################################ //# Chama a função que calcula os posicionamentos dos objetos # //################################################################ aInfo := { aSizeAut[ 1 ], aSizeAut[ 2 ],aSizeAut[ 3 ] ,aSizeAut[ 4 ], 3, 3 }// Tamanho total da tela aPosObj := MsObjSize( aInfo, aObjects ) // Monta objetos conforme especificacoes //#################################### //# Campos de Informacoes adicionais # //#################################### aOrc := {} aAdd(aOrc,{'MaFisRet(,"NF_TOTAL") - MaFisRet(,"NF_DESCZF")',"Total",0,"VS1->VS1_VTOTNF"}) aAdd(aOrc,{'MaFisRet(,"NF_VALICM")',"ICMS Calculado",0,"VS1->VS1_ICMCAL"}) aAdd(aOrc,{'MaFisRet(,"NF_DESCONTO")',"Desconto",0,"VS1->VS1_VALDES"}) aAdd(aOrc,{'MaFisRet(,"NF_SEGURO")',"Seguro",0,"VS1->VS1_VALSEG"}) aAdd(aOrc,{'MaFisRet(,"NF_DESPESA")',"Despesa",0,"VS1->VS1_DESACE"}) aAdd(aOrc,{'MaFisRet(,"NF_FRETE")',"Frete",0,"VS1->VS1_VALFRE"}) // PONTO DE ENTRADA PARA ALTERACAO DO VETOR aOrc If ExistBlock("OX001MF1") ExecBlock("OX001MF1",.f.,.f.) EndIf //################################################################################### //# Cria aHeader e aCols do Fiscal para efeito de compatibilidade com os MaFis # //################################################################################### aHeader := {} aAdd(aHeader,{STR0011,"TRB_COD","@!",TamSx3("B1_COD")[1],TamSx3("B1_COD")[2],"","","C","TRB",""}) aAdd(aHeader,{STR0012,"TRB_QUANT","@!",TamSx3("D2_QUANT")[1],TamSx3("D2_QUANT")[2],"","","N","TRB",""}) aAdd(aHeader,{STR0013,"TRB_PRCVEN","@!",TamSx3("D2_PRCVEN")[1],TamSx3("D2_PRCVEN")[2],"","","N","TRB",""}) aAdd(aHeader,{STR0014,"TRB_VALMERC","@!",TamSx3("D2_PRCVEN")[1],TamSx3("D2_PRCVEN")[2],"","","N","TRB",""}) aAdd(aHeader,{STR0015,"TRB_DESCON","@!",TamSx3("D2_DESCON")[1],TamSx3("D2_DESCON")[2],"","","N","TRB",""}) aAdd(aHeader,{STR0016,"TRB_CODTES","@!",TamSx3("D2_TES")[1],TamSx3("D2_TES")[2],"","","C","TRB",""}) aCols := {} //########################################################################### //# Cria variaveis de memória e arrays de configuração da Enchoice do VS1 # //########################################################################### dbSelectArea("SX3") dbSetOrder(1) dbSeek("VS1") // aCpoEncS := {} // ARRAY DE CAMPOS DA ENCHOICE aCpos := {} // ARRAY DE CAMPOS DA ENCHOICE NAO EDITAVEIS // lista de campos não editáveis cVS1nEdit := "VS1_NUMORC," // lista de campos que não serão mostrados cVS1nMostra := "VS1_FILIAL,VS1_NOMFOR,VS1_CHAINT,VS1_PROVEI,VS1_LOJAPR,VS1_ENDPRO,VS1_CIDPRO,VS1_ESTPRO,VS1_NOMPRO,VS1_MVFASE," cVS1nMostra += "VS1_VTOTNF,VS1_VPERDI,VS1_NROAPR,VS1_RETPEC,VS1_AUTENV,VS1_ARMFAB,VS1_TITNCC,VS1_STATUS,VS1_CARTEI," cVS1nMostra += "VS1_ENDCLI,VS1_CIDCLI,VS1_ESTCLI,VS1_DATORC,VS1_HORORC,VS1_FONCLI,VS1_NOMBCO,VS1_CENCUS,VS1_DESCCC,VS1_CODFRO," cVS1nMostra += "VS1_DESMAR,VS1_DESMOD,VS1_FABMOD,VS1_DESCOR,VS1_APOLIC,VS1_SINIST,VS1_CODMAR,VS1_VALDES,VS1_ICMCAL,VS1_DESCON," // While !Eof().and.(x3_arquivo=="VS1") // Monta o array com os campos que aparecerão na Enchoice If X3USO(x3_usado).and.cNivel>=x3_nivel .and. !(Alltrim(x3_campo)+"," $ cVS1nMostra) AADD(acpoEncS,x3_campo) EndIf // Monta as variáveis de memória de TODOS os campos If Inclui .and. Alltrim(x3_campo)!= "VS1_NUMORC" &("M->"+x3_campo):= CriaVar(x3_campo) Else If x3_context == "V" &("M->"+x3_campo):= CriaVar(x3_campo) Else &("M->"+x3_campo):= &("VS1->"+x3_campo) EndIf EndIf // Monta o array com os campos não editáveis If ( (x3_context != "V" .OR. (x3_context == "V" .AND. X3_VISUAL == "A")) .or. x3_campo $ "VS1_GETKEY,VS1_OBSERV") if !(Alltrim(x3_campo) $ cVS1nEdit) .and. !(Alltrim(x3_campo)+"," $ cVS1nMostra) if FECHA .and. cVS1Status == "F" if VS1->(FieldPos("VS1_MENNOT")) > 0 .and. Alltrim(x3_campo)+"," $ "VS1_MENNOT,VS1_MENPAD,VS1_KILOME," aAdd(aCpos,X3_CAMPO) endif else aAdd(aCpos,X3_CAMPO) endif endif endif DbSkip() Enddo // No momento da inclusão deve-se apagar qualquer referência // de memória que não tenha sido avaliada na montagem acima. if INCLUI M->VS1_NUMORC := "" endif //######################################################################### //# Cria variaveis de memoria, aHeader e aCols da GetDados de Pecas (VS3) # //######################################################################### dbSelectArea("SX3") dbSetOrder(1) dbSeek("VS3") // // lista de campos não editáveis cVS3nEdit := "VS3_CODINC,VS3_GRUINC,VS3_DESINC,VS3_SEQINC," // lista de campos que não serão mostrados cVS3nMostra := "VS3_FILIAL,VS3_NUMORC,VS3_SEQUEN,VS3_ARMORI,VS3_MODVEI,VS3_VBAICM,VS3_ALIICM,VS3_ICMCAL,VS3_QTDRES,VS3_LOTECT, cVS3nMostra += "VS3_NUMLOT,VS3_NUMSER,VS3_GRUKIT,VS3_LOCALI,VS3_CODKIT,VS3_NOTFAB,VS3_CONBAR,VS3_DTNFFB,VS3_PIPIFB,VS3_VIPIFB, cVS3nMostra += "VS3_PICMFB,VS3_VICMFB,VS3_PICMSB,VS3_VICMSB,VS3_NUMIDE,VS3_ITESUB,VS3_BASPIS,VS3_BASCOF,VS3_VALPIS,VS3_VALCOF," cVS3nMostra += "VS3_ALQPIS,VS3_ALQCOF," // -------------------------------------------------------------------- // O trecho abaixo controla a aparição de campos dependentes de fatores // -------------------------------------------------------------------- // Fator 1: Depois da fase de liberação de divergência os campos com as quantidades deverão aparecer nPosA := At(cVS1Status,cFaseOrc) nPos5 := At("5",cFaseOrc) if nPosA < nPos5 .or. nPos5 <= 0 cVS3nMostra += "VS3_QTDCON,VS3_QTDINI," endif // Fator 2: Na fase de liberação de margem de lucro, deve-se mostrar a quantidade liberada (liberação parcial) if VS1->VS1_STATUS != "2" cVS3nMostra += "VS3_QTDLIB," endif // Fator 3: A existência de inconveniente deve mostrar os campos necessários if !lInconveniente cVS3nMostra += "VS3_CODINC,VS3_GRUINC,VS3_DESINC,VS3_SEQINC," endif // nUsadoP:=0 // // Cria Variaveis de Memoria e aHeader aHeaderP:= {} aAlterP := {} // While !Eof().And.(x3_arquivo=="VS3") If X3USO(x3_usado) .And. cNivel>=x3_nivel .and. !(Alltrim(x3_campo)+"," $ cVS3nMostra) nUsadoP:=nUsadoP+1 Aadd(aHeaderP,{AllTrim(X3Titulo()),SX3->X3_CAMPO,SX3->X3_PICTURE,SX3->X3_TAMANHO,SX3->X3_DECIMAL,SX3->X3_VALID,; SX3->X3_USADO,SX3->X3_TIPO,SX3->X3_F3,SX3->X3_CONTEXT,X3CBOX(),SX3->X3_RELACAO,".T."}) if x3_usado != "V" .and. (INCLUI .or. ALTERA) if !(cVS1Status == "5" .and. FECHA) if !(Alltrim(x3_campo)+"," $ cVS3nEdit) aAdd(aAlterP,x3_campo) endif endif endif EndIf DbSkip() EndDo Programa Fonte OFIXX001 Sintaxe OX001MF1 - Manipula informações de impostos ( [ ] ) Parâmetros:
Retorno
Exemplos /*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜܱ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±±±ºPrograma ³OX001MF1 ºAutor ³Otavio Favarelli º Data ³ 15/06/10 º±±±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±±±ºDesc. ³ P.E para manipulacao das informacoes referentes a impostos º±±±±º ³ atraves do vetor aOrc. º±±±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±±±ºUso ³ º±±±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/User Function OX001MF1()aAdd(aOrc,{'MaFisRet(,"NF_VALSOL")',"ICMS Ret.",0,"VS1->VS1_ICMRET"})/*Depois crie o campo VS1_ICMRET conforme a necessidade e coloque no valid dele o seguinte:MaFisRef("NF_VALSOL","VS100",M->VS1_ICMRET)apenas cuide para que na criação do campo ele não seja editável.*/Return .t. Variáveis
|
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas