Árvore de páginas

Versões comparadas

Chave

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

...

    • SW9DETAIL: esse modelo de dados representa as Invoices que foram vinculados ao processo de embarque/desembaraço, não é possível realizar nenhuma atualização, somente utilizado para navegar entre os seus itens. Na tela da rotina, é o grid que está localizado na Aba Itens → Invoices.
    • SWVDETAIL: esse modelo de dados é relacionado ao modelo de dados SW9DETAIL que representa os Itens das Invoices. Na tela da rotina, é o grid que está localizado na Aba Itens → Itens, e também, na aba Tributação → Itens.
    • EIJMASTER: esse modelo de dados é relacionado ao modelo de dados SWVDETAIL, que representa os dados da Mercadoria para um item da Invoice. Na tela da rotina, são os campos que estão localizado na aba Itens → aba Mercadoria da aba Itens, e também, na aba Tributação , as abas dos impostos: AImposto de Importação, B, C, D e EIPI, PIS/COFINS e ICMS.
    • EINADETAIL: esse modelo de dados é relacionado ao modelo de dados SWVDETAIL, que representa os dados dos Acréscimos para um item da Invoice. Na tela da rotina, é grid Acréscimos que está localizado na aba Itens → aba Acréscimos/Deduções.
    • EINDDETAIL: esse modelo de dados é relacionado ao modelo de dados SWVDETAIL, que representa os dados dos Decréscimos para um item da Invoice. Na tela da rotina, é grid Deduções que está localizado na aba Itens → aba Acréscimos/Deduções.
    • EKQDETAIL: esse modelo de dados é relacionado ao modelo de dados SWVDETAIL, que representa os dados dos LPCO para um item da Invoice. Na tela da rotina, é grid LPCO que está localizado na aba Itens → aba LPCO.
    • EIKDETAIL: esse modelo de dados é relacionado ao modelo de dados SWVDETAIL, que representa os dados dos Documentos Vinculados para um item da Invoice. Na tela da rotina, é grid que está localizado na aba Itens → aba Documentos Vinculados
    • EJ9DETAIL: esse modelo de dados é relacionado ao modelo de dados SWVDETAIL, que representa os dados dos Certificado Mercosul para um item da Invoice. Na tela da rotina, é grid que está localizado na aba Itens → aba Certificado Digital

Ao ativar o modelo de dado da rotina Itens DUIMP (EICLP500), serão carregados automaticamente seus modelos de dados, ou seja, serão carregadas as invoices que estão vinculadas ao processo de embarque/desembaraço com seus respectivos itens, e assim para cada item, os dados da mercadoria e LPCO's.

...

Bloco de código
languagecpp
titleExemplo
linenumberstrue
#include 'protheus.ch'
#include 'fwmvcdef.ch'

user function ExecItDuimp()
    local cProcesso  := ""
    local oModelo    := nil
    local oModelSW9  := nil
    local oModelSWV  := nil
    local oModelEIJ  := nil
    local oModelEINA := nil
    local oModelEIND := nil
    local oModelEKQ  := nil
    local oModelEIK  := nil
    local oModelEJ9  := nil
    local nInvoice   := 0
    local nItens     := 0

    RpcSetType(3)
    if RpcSetEnv("99","01",,,"EIC")

        dbSelectArea("SW6")
        cProcesso := PadR( "DES-AUTOMATICO",len(SW6->W6_HAWB))
        SW6->(dbSetOrder(1))
        if SW6->(dbSeek( xFilial("SW6") + cProcesso))

            oModelo := FwLoadModel("EICLP500")
            oModelo:SetOperation(MODEL_OPERATION_UPDATE)
            oModelo:Activate()
            /*
            Modelo de dados:
            SW9DETAIL -> Invoices
                SWVDETAIL -> Itens da Invoices 
                    EIJMASTER -> Mercadoria
                    EINADETAIL -> Acréscimos
                    EINDDETAIL -> Decréscimos
                    EKQDETAIL -> LPCO
                    EIKDETAIL -> Documentos Vinculados
                    EJ9DETAIL -> Certificado Mercosul
            */

			// Percorre as invoices do processo embarque/desembaraço
			oModelSW9  := oModelo:getModel("SW9DETAIL")
            for nInvoice := 1 to oModelSW9:length()
                oModelSW9:goLine(nInvoice)
                if !oModelSW9:IsDeleted()

					// Percorre os itens das invoices
					oModelSWV  := oModelo:getModel("SWVDETAIL")
                    for nItens := 1 to oModelSWV:length()

				                             oModelSWV:goLine(nItens)
                        if !oModelSWV:IsDeleted()

                                	      oModelEIJ  := oModelo:getModel("EIJMASTER")

	                           	        oModelEINA  oModelEINA := oModelo:getModel("EINADETAIL")

                      	                oModelEIND := oModelo:getModel("EINDDETAIL")

              	                        oModelEKQ  := oModelo:getModel("EKQDETAIL")

      	                                oModelEIK  := oModelo:getModel("EIKDETAIL")

	                                      oModelEJ9  := oModelo:getModel("EJ9DETAIL")

                        endif
                    next nItens

                endif
            next nInvoice

            if oModelo:VldData()
                oModelo:CommitData()
            else
                VarInfo("Erro no execauto do modelo EICLP500-> ",oModelo:GetErrorMessage())   
            endif

            oModelo:DeActivate()
            oModelo:Destroy()
            FwFreeObj(oModelo)

        endif

        RpcClearEnv()
    endif

return

...