/// <summary> /// Cria uma Nota Fiscal Eletrônica de acordo com o movimento informado /// </summary> /// <param name="movimento">Movimento que será transformado em Nota Fiscal Eletrônica</param> /// <returns></returns> public static INF Create(IMovimento movimento) { if (movimento.IsNullOrEmpty()) return null; INF result = new Data.Faturamento.Lancamento.Movimento.NFe.NFe(); //Popula os dados do cabeçalho com o movimento informado result.DadoPessoa = movimento.DadoPessoa; result.DataHoraMovimento = movimento.DataHoraMovimento; result.DataEmissao = movimento.DataEmissao; result.ItensEspeciais = movimento.ItensEspeciais; result.TabelaPreco = movimento.TabelaPreco; result.CondicaoPagamento = movimento.CondicaoPagamento; result.Parcelas = movimento.Parcelas; //Popula os itens com os itens do movimento result.Itens = new List<Model.Faturamento.Lancamento.Movimento.Item.IItem>(); foreach (Model.Faturamento.Lancamento.Movimento.Item.IItem item in movimento.Itens) { result.Itens.Add(new Data.Faturamento.Lancamento.Movimento.Item.NFe.Item() { EGUID = item.EGUID, ItemMovimentado = item.ItemMovimentado, DescricaoNF = item.DescricaoNF, CFOP = item.CFOP, Conferido = item.Conferido, ItensEspeciais = item.ItensEspeciais, Ordem = item.Ordem, Quantidade = item.Quantidade, QuantidadeConferida = item.QuantidadeConferida, Unidade = item.Unidade, ValorDescontoAcrescimo = item.ValorDescontoAcrescimo, ValorUnitarioBruto = item.ValorUnitarioBruto, Vendedor = item.Vendedor, PercentualImpostoAproximadoFederal = item.PercentualImpostoAproximadoFederal, PercentualImpostoAproximadoImport = item.PercentualImpostoAproximadoImport, PercentualImpostoAproximadoEstadual = item.PercentualImpostoAproximadoEstadual, PercentualImpostoAproximadoMunicipal = item.PercentualImpostoAproximadoMunicipal, TabelaPreco = item.TabelaPreco }); } return result; }
private void CarregarMovimento(IMovimento movimento) { if (movimento.IsNullOrEmpty()) { MessageBox.Show("Não foi possível localizar o movimento informado"); grdProdutos.Clear(); return; } if (movimento.Status != Enuns.Faturamento.Lancamento.Status.Aberto) { MessageBox.Show("Não é possível fazer a impressão desse movimento, pois a sua situação é: " + movimento.Status.GetDescription()); return; } Movimento = movimento; // Completar o campo txt com Eguid txtCodigo.Text = Movimento.EGUID; txtCodBarra.Focus(); //Limpa as linhas da grid antes de adicionar grdProdutos.Clear(); //Popula os produtos do movimento selecionado foreach (Model.Faturamento.Lancamento.Movimento.Item.IItem itemMov in Movimento.Itens) { Model.Cadastro.Item.Produto.IProduto produto = itemMov.ItemMovimentado as Model.Cadastro.Item.Produto.IProduto; grdProdutos.Rows.Add(new object[] { itemMov.GUID.ToString(), itemMov.ItemMovimentado.EGUID.ToString(), itemMov.ItemMovimentado.Descricao, produto.IsNullOrEmpty() ? "" : produto.CodigosBarras.FirstOrDefault().Codigo, Unimake.Convert.ToDouble(itemMov.Quantidade), 0, false, itemMov.ItemMovimentado }); } }