Ejemplo n.º 1
0
        private TMOV ObterMovimento(Movimento notaFiscal, TMOV movimento, Parametros parametros, bool faturamento)
        {
            GFILIAL filial        = FilialApp.BuscarPorCNPJ(notaFiscal.CnpjFilial) ?? throw new Exception($"Filial com CNPJ {notaFiscal.CnpjFilial} não encontrado no RM.");
            bool    issRetido     = notaFiscal.TipoISS == ETipoISS.Retido;
            TTMV    tipoMovimento = TipoMovimentoApp.BuscarPorCodigo(ObterCodigoMovimento(issRetido, parametros, faturamento));
            FCFO    fornecedorRM  = faturamento ? FornecedorApp.ObterCliente(notaFiscal.Cliente, parametros, issRetido) : FornecedorApp.ObterFornecedor(notaFiscal.Fornecedor, parametros, issRetido);

            movimento.SERIE         = tipoMovimento.TTMVSERIE.FirstOrDefault().SERIE;
            movimento.CODTMV        = tipoMovimento.CODTMV;
            movimento.DATAEMISSAO   = notaFiscal.DataEmissao;
            movimento.DATAEXTRA1    = notaFiscal.DataEmissao;
            movimento.DATAMOVIMENTO = notaFiscal.DataAuxiliar;
            movimento.CODCOLCFOAUX  = movimento.CODCOLCFO = fornecedorRM.CODCOLIGADA;
            movimento.CODCFOAUX     = movimento.CODCFO = fornecedorRM.CODCFO;
            movimento.CODMUNSERVICO = filial.CODMUNICIPIO;
            movimento.CODETDMUNSERV = filial.ESTADO;
            movimento.CODFILIAL     = filial.CODFILIAL;
            movimento.VALOROUTROS   = movimento.VALORBRUTO = notaFiscal.ValorBruto;
            movimento.VALORLIQUIDO  = notaFiscal.ValorLiquido;

            if (faturamento)
            {
                movimento.IDNAT = ObterIdNat(parametros, faturamento, notaFiscal.Cliente.Estado);
            }
            else
            {
                movimento.IDNAT = ObterIdNat(parametros, faturamento, notaFiscal.Fornecedor.Estado);
            }

            movimento.TMOVHISTORICO = new TMOVHISTORICO()
            {
                CODCOLIGADA    = movimento.CODCOLIGADA,
                IDMOV          = movimento.IDMOV,
                HISTORICOCURTO = notaFiscal.Historico
            };

            var tipo = faturamento ? ETipoImportacao.Prestado : ETipoImportacao.Tomado;

            foreach (var item in notaFiscal.Itens)
            {
                movimento.TITMMOV.Add(ItemMovimentoApp.ObterItemMovimento(ref movimento, item, 1, parametros, tipo));
            }
            return(movimento);
        }