Árvore de páginas

Versões comparadas

Chave

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

...

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()

 						// Modelo de dados para atualizar os dados dos 
						oModelSWV:goLine(nItens)
                        if !oModelSWV:IsDeleted()

							// Modelo de dados para atualizar os dados dos 
                           oModelEIJ  oModelEIJ  := oModelo:getModel("EIJMASTER")

 							//Modelo de dados para atualizar os dados dos 
	                        oModelEINA := oModelo:getModel("EINADETAIL")

							// Modelo de dados para atualizar os dados dos 
                            oModelEIND := oModelo:getModel("EINDDETAIL")

							// Modelo de dados para atualizar os dados dos 
                            oModelEKQ  := oModelo:getModel("EKQDETAIL")

							// Modelo de dados para atualizar os dados dos 
                            oModelEIK  := oModelo:getModel("EIKDETAIL")

							// Modelo de dados para atualizar os dados dos 
                            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

...