Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Para visualizar o exemplo completo, basta clicar no Link a seguir: TSTA500.PRW

Opções disponíveis - nOpcAut

04-Devolução
05-Reentrega
06-Complemento
07-Cancelamento
08-Aliança
09-Manut. Transp
10-Compl.Impost
11-Armazenagem
12-Anulação
13-Substituição
14-Can.Anul  

Aviso
titleImportante:

Parâmetros e processo abaixo desativados à partir de  atendendo Ajuste SINIEF 9/07 CONFAZ, onde para o prestador de serviços, foi revogado a obrigação de emissão do CT-e de Anulação.

Devendo ser seguido à partir desta data emissão de CTe Substituição.

...

* Valor do documento:
Para a chamada da devolução, pode-se gerá-la de 3 formas para o cálculo do Valor do documento:
- Calculado: O Sistema calculará, baseado nas condições comerciais cadastradas, o valor do documento de devolução.
Para efetivar uma devolução nesta condição, o array aItens deverá conter uma linha vazia.
- Valor Informado: Um valor líquido será informado para a rotina, que acatará este valor para o documento.
Para esta opção, enviar 1 item com a constante "NVLRDOC" preenchida com o valor desejado.
- Percentual informado: Um percentual sobre o Documento original será informado à rotina, que fará o cálculo e o gravará no documento.
Para esta opção, enviar 1 item com a constante "NPERCDOC" preenchida com o percentual desejado.

Exemplo:

Bloco de código
languagejava
themeMidnight
//-- Montagem do Cabeçalho
aCab := {}
AAdd( aCab, { "DT6_FILDOC" , DT6->DT6_FILDOC , Nil } ) //-- Obrigatorio
AAdd( aCab, { "DT6_DOC"    , DT6->DT6_DOC    , Nil } ) //-- Obrigatorio
AAdd( aCab, { "DT6_SERIE"  , DT6->DT6_SERIE  , Nil } ) //-- Obrigatorio
 
//-- Montagem dos Itens
aItens := {}
aAdd( aItens, {})
//-- Para que o valor da devolução seja calculada, enviar uma linha com array vazio
If !MsgYesNo("No teste, deseja calcular valor da devolução? ")
    If MsgYesNo("Deseja testar por valor ($150)? Se a oção for 'Não', o percentual será de 30%")
        //-- Exemplo de opção de Valor informado em $150,00
        AAdd( aItens[1], { "NVLRDOC"   , 150    , Nil } )
    Else
        //-- Exemplo de opção de percentual informado em 30%
        AAdd( aItens[1], { "NPERCDOC"  , 30 , Nil } )
    EndIf
EndIf
 
//-- Montagem das Nfs - Este array será apenas avaliado se a opção de devolução seja por NF (3ª pergunta do <F12> da rotina)
aNfs := {}
aAdd( aNfs, {})
DTC->(DbSetOrder(3)) //-- DTC_FILIAL+DTC_FILDOC+DTC_DOC+DTC_SERIE+DTC_SERVIC+DTC_CODPRO
If DTC->(MsSeek(xFilial("DTC") + DT6->(DT6_FILDOC+DT6_DOC+DT6_SERIE)))
    AAdd( aNfs[Len(aNfs)], { "DTC_NUMNFC" , DTC->DTC_NUMNFC  , Nil } ) //-- Obrigatorio, quando selecionado por NF (3º pergunte do F12 do TMSA500)
    AAdd( aNfs[Len(aNfs)], { "DTC_SERNFC" , DTC->DTC_SERNFC  , Nil } ) //-- Obrigatorio, quando selecionado por NF (3º pergunte do F12 do TMSA500)
    AAdd( aNfs[Len(aNfs)], { "DTC_CLIREM" , DTC->DTC_CLIREM  , Nil } ) //-- Obrigatorio, quando selecionado por NF (3º pergunte do F12 do TMSA500)
    AAdd( aNfs[Len(aNfs)], { "DTC_LOJREM" , DTC->DTC_LOJREM  , Nil } ) //-- Obrigatorio, quando selecionado por NF (3º pergunte do F12 do TMSA500)
    AAdd( aNfs[Len(aNfs)], { "DTC_CODPRO" , DTC->DTC_CODPRO  , Nil } ) //-- Obrigatorio, quando selecionado por NF (3º pergunte do F12 do TMSA500)
    AAdd( aNfs[Len(aNfs)], { "DTC_FILORI" , DTC->DTC_FILORI  , Nil } ) //-- Obrigatorio, quando selecionado por NF (3º pergunte do F12 do TMSA500)
    AAdd( aNfs[Len(aNfs)], { "DTC_LOTNFC" , DTC->DTC_LOTNFC  , Nil } ) //-- Obrigatorio, quando selecionado por NF (3º pergunte do F12 do TMSA500)
EndIf
//-- Chamada à MsExecAuto, os dois primeiros argumentos são de uso interno e serão ignorados, se passado algum conteúdo
Private lMsErroAuto := .F. //-- Utilizada na funcao MsExecAuto()
MsExecAuto({|a,b,c,d,e,f| TMSA500(a,b,c,d,e,f)},Nil,Nil,nOpcAut,aCab,aItens,aNfs)
If lMsErroAuto
    MostraErro()
Else
    MsgAlert("TESTE OK")
EndIf 
  • Opção 5 - Reentrega
    * Cabeçalho - Documento a receber a manutenção
    Em todas as opções de chamadas, o TMSA500 espera os campos DT6_FILDOC, DT6_DOC e DT6_SERIE como cabeçalho.

    * Opção de Reentrega por Documento ou Nf:
    A opção reentrega por NFou por documento (3ª pergunta da tecla de função <F12>), será respeitada na execução automática.
    Caso a opção seja de reentrega por Docto, o array de NF não será necessário.
    Caso a opção de reentrega por NF esteja ativa, um array com as NF's a serem devolvidas será obrigatório para o sucesso.
    Os campos obrigatórios para cada NF serão os seguintes:
    - DTC_NUMNFC
    - DTC_SERNFC
    - DTC_CLIREM
    - DTC_LOJREM
    - DTC_CODPRO
    - DTC_FILORI
    - DTC_LOTNFC

    * Valor do documento:
    Para a chamada da reentrega, pode-se gerá-la de 3 formas para o cálculo do Valor do documento:
    - Calculado: O Sistema calculará, baseado nas condições comerciais cadastradas, o valor do documento de reentrega.
    Para efetivar uma reentrega nesta condição, o array aItens deverá conter uma linha vazia.
    - Valor Informado: Um valor líquido será informado para a rotina, que acatará este valor para o documento.
    Para esta opção, enviar 1 item com a constante "NVLRDOC" preenchida com o valor desejado.
    - Percentual informado: Um percentual sobre o Documento original será informado à rotina, que fará o cálculo e o gravará no documento.
    Para esta opção, enviar 1 item com a constante "NPERCDOC" preenchida com o percentual desejado.

Exemplo:

Bloco de código
languagejava
themeMidnight
//-- Montagem do Cabeçalho
aCab := {}
AAdd( aCab, { "DT6_FILDOC" , DT6->DT6_FILDOC , Nil } ) //-- Obrigatorio
AAdd( aCab, { "DT6_DOC"    , DT6->DT6_DOC    , Nil } ) //-- Obrigatorio
AAdd( aCab, { "DT6_SERIE"  , DT6->DT6_SERIE  , Nil } ) //-- Obrigatorio
 
//-- Montagem dos Itens
aItens := {}
aAdd( aItens, {})
 
//-- Para que o valor da reentrega seja calculada, enviar uma linha com array vazio
If !MsgYesNo("No teste, deseja calcular valor da Reentrega? ")
    If MsgYesNo("Deseja testar por valor ($250)? Se a oção for 'Não', o percentual será de 70%")
        //-- Exemplo de opção de Valor informado em $250,00
        AAdd( aItens[1], { "NVLRDOC"   , 250    , Nil } )
    Else
        //-- Exemplo de opção de percentual informado em 70%
        AAdd( aItens[1], { "NPERCDOC"  , 70 , Nil } )
    EndIf
EndIf
//-- Montagem das Nfs
//-- Diferente do exemplo da devolução (acima), este demonstra a chamada por documento, sem envio ou citação do array de NFs
//-- Chamada à MsExecAuto, os dois primeiros argumentos são de uso interno e serão ignorados, se passado algum conteúdo
Private lMsErroAuto := .F. //-- Utilizada na funcao MsExecAuto()
MsExecAuto({|a,b,c,d,e| TMSA500(a,b,c,d,e)},Nil,Nil,nOpcAut,aCab,aItens)
If lMsErroAuto
    MostraErro()
Else
    MsgAlert("TESTE OK")
EndIf

04. ASSUNTOS RELACIONADOS

...