Exemple #1
0
        private void ExecutarExploracao(int sondaNumero)
        {
            Sondas sondas = new Sondas(bancoDeDados);

            Planalto planalto = new Planalto();

            planalto.Criar(coordenada);

            movimentoSempreParaFrente = new MovimentoParaFrente();

            var nomeDaSonda = $"Mark {sondaNumero}";

            Sonda sonda = ObterSonda(sondas, nomeDaSonda);

            sonda.Explorar(planalto);

            sonda.IniciarEm(posicaoInicioalDaSonda, direcaoCardinalInicioalDaSonda);

            ExecutarInstrucaoDeMovimentoNaSonda(sonda, movimentoSempreParaFrente);

            sondas.Gravar(sonda);

            sondas = null;

            var direcao = sonda.DirecaoCardinalAtual.ToString().ToUpper().Substring(0, 1).Replace("O", "W").Replace("L", "E");

            if (sondaNumero > 1)
            {
                resultado += "-";
            }

            resultado += $"{sonda.PosicaoAtual.X} {sonda.PosicaoAtual.Y} {direcao}";
        }
Exemple #2
0
        public void Iniciar()
        {
            var coordenada = new Coordenada(5, 5);

            planalto = new Planalto();
            planalto.Criar(coordenada);

            movimentoSempreParaFrente = new MovimentoParaFrente();

            conexaoComOBanco = new ConexaoComOBanco();
        }
Exemple #3
0
        public void Iniciar()
        {
            especificacaoDeNegocio = new EspecificacaoDeNegocio();
            corretorDaProximaPosicaoDoMovimento = new CorretorDaProximaPosicaoDoMovimento();
            movimentoSempreParaFrente           = new MovimentoParaFrente(corretorDaProximaPosicaoDoMovimento);

            var coordenada = new Coordenada(5, 5);
            var planalto   = new Planalto();

            planalto.Criar(coordenada);
            sonda = new Sonda(especificacaoDeNegocio, "Mark I");
            sonda.Explorar(planalto);
        }
Exemple #4
0
        public void Iniciar()
        {
            var coordenada = new Coordenada(5, 5);

            planalto = new Planalto();
            planalto.Criar(coordenada);

            movimentoSempreParaFrente = new MovimentoParaFrente();

            sonda = new Sonda("Mark I");

            sonda.Explorar(planalto);
        }
        public void Iniciar()
        {
            especificacaoDeNegocio = new EspecificacaoDeNegocio();
            corretorDaProximaPosicaoDoMovimento = new CorretorDaProximaPosicaoDoMovimento();

            var coordenada = new Coordenada(5, 5);

            planalto = new Planalto();
            planalto.Criar(coordenada);

            movimentoSempreParaFrente = new MovimentoParaFrente(corretorDaProximaPosicaoDoMovimento);

            conexaoComOBanco = new ConexaoComOBanco();
            db = new ProvedorDeAcesso().Criar(conexaoComOBanco);
        }
        /// <summary>
        /// Instancia este objeto, inicia as variáveis e carrega o registro pelo movimento
        /// </summary>
        /// <param name="movimento">Movimento relacionado</param>
        public AnaliseCreditoBase(IMovimento movimento)
            : this()
        {
            Movimento = movimento;

            DbContext.Populate(this, new Where
            {
                { "cad_AnaliseCredito.GUIDLanMov = @p1 ",
                    new Parameter
                    {
                        ParameterName = "@p1",
                        Value = movimento.GUID
                    }
                }
            });
        }
        /// <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;
        }
        public CalculoItemEspecial(IMovimento movimento)
        {
            _itensEspeciais = new List<IEspecialBase>();

            foreach (IItem item in movimento.Itens)
            {
                if (item.ItensEspeciais == null) continue;

                foreach (IEspecial itemE in item.ItensEspeciais)
                {
                    _itensEspeciais.Add(itemE.Clone() as IEspecial);
                }
            }

            foreach (IEspecial item in movimento.ItensEspeciais)
            {
                _itensEspeciais.Add(item.Clone() as IEspecial);
            }
            Itens = movimento.Itens;
            Refresh();
        }
        /// <summary>
        /// Cria um novo item e retorna de acordo com o tipo identificado e carrega o mesmo pelo GUID
        /// </summary>
        /// <param name="guid">GUID de identificação do item</param>
        /// <param name="movimento">Movimento pai para validar o tipo de item</param>
        /// <returns></returns>
        public static ItemBase Create(IMovimento movimento, GUID guid)
        {
            ItemBase result = null;

            if (movimento is Model.Faturamento.Lancamento.Movimento.PreVenda.IPreVenda)
                result = new Data.Faturamento.Lancamento.Movimento.Item.PreVenda.Item(guid);
            else if (movimento is Model.Faturamento.Lancamento.Movimento.DAV.OS.IDAV)
                result = new Data.Faturamento.Lancamento.Movimento.Item.DAV.OS.Item(guid);
            else if (movimento is Model.Faturamento.Lancamento.Movimento.DAV.IDAV)
                result = new Data.Faturamento.Lancamento.Movimento.Item.DAV.Item(guid);
            else if (movimento is Model.Faturamento.Lancamento.Movimento.NFe.INFe)
                result = new Data.Faturamento.Lancamento.Movimento.Item.NFe.Item(guid);
            else if (movimento is Model.Faturamento.Lancamento.Movimento.NFManual.INFManual)
                result = new Data.Faturamento.Lancamento.Movimento.Item.NFManual.Item(guid);
            else if (movimento is Model.Faturamento.Lancamento.Movimento.Devolucao.IDevolucao)
                result = new Data.Faturamento.Lancamento.Movimento.Item.Devolucao.Item(guid);
            else if (movimento is Model.Faturamento.Lancamento.Movimento.Conferencia.IConferencia)
                result = new Data.Faturamento.Lancamento.Movimento.Item.Conferencia.Item();

            return result;
        }
Exemple #10
0
        private void ExecutarInstrucaoDeMovimentoNaSonda(Sonda sonda, IMovimento movimentoSempreParaFrente)
        {
            for (int contador = 0; contador < serieDeInstrucoesIndicandoParaASondaComoElaDeveraExplorarOPlanalto.Length; contador++)
            {
                var instrucao = serieDeInstrucoesIndicandoParaASondaComoElaDeveraExplorarOPlanalto[contador];

                switch (instrucao)
                {
                case "L":
                    sonda.Vire(Direcao.Esqueda);
                    break;

                case "R":
                    sonda.Vire(Direcao.Direita);
                    break;

                case "M":
                    sonda.Move(movimentoSempreParaFrente);
                    break;
                }
            }
        }
Exemple #11
0
        /// <summary>
        /// Método utilizado para preencher esta instância com os dados do dataReader
        /// </summary>
        /// <param name="dataReader">DataReader com os dados que deverão ser passados para esta instância</param>
        public override void Populate(DataReader dataReader)
        {
            #region base
            base.Populate(dataReader);
            #endregion

            #region desta classe
            Voucher = MovimentoBase.Create(dataReader.GetValue<string>("p_GUIDLanMovVoucher"), false) as IMovimento;
            MotivoDevolucao = dataReader.GetValue<string>("p_Motivo");
            #endregion
        }
Exemple #12
0
        public static AnaliseCreditoResult Analisar(IMovimento movimento)
        {
            AnaliseCreditoResult result = new AnaliseCreditoResult();

            //-------------------------------------------------------------------------
            // Buscar todos os movimentos em abertos que existem para este cliente
            //-------------------------------------------------------------------------

            Connection connection = null;
            ICliente cliente = movimento.DadoPessoa.Cliente as ICliente;

            if (movimento.New)
            {
                if (cliente != null)
                {
                    IOcorrencia ocorrencia = null;
                    IList<IOcorrencia> ocorrencias = cliente.Ocorrencias.Where(k => k.TipoOcorrencia == Enuns.Cadastro.Pessoa.TipoOcorrencia.AnaliseCredito).ToList();

                    try
                    {
                        if (cliente.Situacao == Enuns.Cadastro.Pessoa.Situacao.Bloqueado)
                        {
                            ocorrencia = new Ocorrencia();
                            ocorrencia.TipoOcorrencia = Enuns.Cadastro.Pessoa.TipoOcorrencia.AnaliseCredito;
                            ocorrencia.AcaoOcorrencia = Enuns.Cadastro.Pessoa.AcaoOcorrencia.Bloqueio;
                            ocorrencia.Descricao = "Análise de Crédito - Cliente com restrição - Faturamento: " + movimento.EGUID.ToString();
                            ocorrencia.Data = DateTime.Now;
                            cliente.Ocorrencias.Add(ocorrencia);
                            cliente.Save();
                            return new AnaliseCreditoResult
                            {
                                Status = Enuns.Financeiro.StatusAnaliseResult.Bloqueado,
                            };
                        }

                        double total = movimento.ValorTotalLiquido;
                        if (movimento is IVendaCF)
                        {
                            IVendaCF cf = movimento as IVendaCF;
                            IList<IBaixaForma> bxs = cf.Baixa.Formas.Where(i => (i.FormaPagamento.TipoForma == Enuns.Cadastro.TipoForma.Parcelado ||
                                           i.FormaPagamento.TipoForma == Enuns.Cadastro.TipoForma.CreditoConsumidor ||
                                           i.FormaPagamento.TipoForma == Enuns.Cadastro.TipoForma.Cheque)).ToList();
                            if (bxs.Count > 0)
                                total = bxs.Sum(i => i.ValorLiquido);
                            else
                            {
                                result.Status = Enuns.Financeiro.StatusAnaliseResult.Aprovado;
                                return result;
                            }
                        }
                        double limite = cliente.ValorLimiteCredto - cliente.ValorDocumentoAberto;
                        double risco = cliente.PercentualRisco > 0 ? (cliente.ValorLimiteCredto * ((cliente.PercentualRisco / 100))) : 0;

                        if (limite > total)
                        {
                            if (cliente.Situacao == Enuns.Cadastro.Pessoa.Situacao.AAutorizar)
                            {
                                ocorrencia = new Ocorrencia();
                                ocorrencia.TipoOcorrencia = Enuns.Cadastro.Pessoa.TipoOcorrencia.AnaliseCredito;
                                ocorrencia.AcaoOcorrencia = Enuns.Cadastro.Pessoa.AcaoOcorrencia.Nenhuma;
                                ocorrencia.Descricao = "Análise de Crédito - Cliente a autorizar - Faturamento: " + movimento.EGUID.ToString();
                                ocorrencia.Data = DateTime.Now;

                                result.Status = Enuns.Financeiro.StatusAnaliseResult.AguardarAnalise;
                            }
                            else if (cliente.Situacao == Enuns.Cadastro.Pessoa.Situacao.ComRestricao ||
                                cliente.Situacao == Enuns.Cadastro.Pessoa.Situacao.SemCredito)
                            {
                                ocorrencia = new Ocorrencia();
                                ocorrencia.TipoOcorrencia = Enuns.Cadastro.Pessoa.TipoOcorrencia.AnaliseCredito;
                                ocorrencia.AcaoOcorrencia = Enuns.Cadastro.Pessoa.AcaoOcorrencia.Bloqueio;
                                ocorrencia.Descricao = "Análise de Crédito - Cliente permitido faturamento somente a vista";
                                ocorrencia.Data = DateTime.Now;

                                result.Status = Enuns.Financeiro.StatusAnaliseResult.AprovadoSomenteAVista;
                            }
                            else
                            {
                                result.Status = Enuns.Financeiro.StatusAnaliseResult.Aprovado;
                            }
                        }
                        else
                        {
                            if ((limite + risco) > total)
                            {
                                result.Status = Enuns.Financeiro.StatusAnaliseResult.AprovadoComRisco;
                            }
                            else
                            {
                                result.Status = Enuns.Financeiro.StatusAnaliseResult.AguardarAnalise;
                                ocorrencia = new Ocorrencia();
                                ocorrencia.TipoOcorrencia = Enuns.Cadastro.Pessoa.TipoOcorrencia.AnaliseCredito;
                                ocorrencia.AcaoOcorrencia = Enuns.Cadastro.Pessoa.AcaoOcorrencia.Nenhuma;
                                ocorrencia.Descricao = "Análise de Crédito - Cliente a autorizar - Faturamento: " + movimento.EGUID.ToString();
                                ocorrencia.Data = DateTime.Now;
                            }
                        }
                        if (ocorrencia != null)
                            cliente.Ocorrencias.Add(ocorrencia);

                        cliente.Save();
                    }
                    finally
                    {
                        if (connection != null)
                            connection.Close();
                    }
                }
                else
                {
                    result.Status = Enuns.Financeiro.StatusAnaliseResult.ClienteNaoIdentificado;
                }
            }

            return result;
        }
 public ContaCorrenteController(IMovimento movimento, ILogger <ContaCorrenteController> logger)
 {
     _logger    = logger;
     _movimento = movimento;
 }
Exemple #14
0
        /// <summary>
        /// Método para impressão dos pagamentos no cupom fiscal e atualização na bobina 
        /// </summary>
        /// <param name="venda">Instancia da venda </param>
        /// <param name="totalDinheiro">Total do pagamento </param>
        /// <param name="forma">Forma de pagamento com os dados da impressora como índice, etc.
        /// Observação: se não for informado nenhuma forma é utilizado a forma de pagamento DINHEIRO
        /// </param>
        public void ImprimePagamento(IMovimento venda, double totalDinheiro, IFormaPagamento forma = null)
        {
            string line = string.Empty;
            double troco = Math.Round(venda.Baixa.Formas.Where(k => k.FormaPagamento.TipoForma == Enuns.Cadastro.TipoForma.Dinheiro ||
               k.FormaPagamento.TipoForma == Enuns.Cadastro.TipoForma.Voucher)
               .Sum(k => k.ValorLiquido) - venda.ValorTotalLiquido, 2);
            double totalVenda = Math.Round(venda.ValorTotalLiquido, 2);

            if (StatusImpressao != BobinaStatusImpressao.Subtotaliza)
                return;

            if (forma == null)
                line = "DINHEIRO R${0}{1:N2}";
            else
            {
                switch (forma.TipoForma)
                {
                    case Enuns.Cadastro.TipoForma.CartaoCredito:
                    case Enuns.Cadastro.TipoForma.CartaoDebito:
                    case Enuns.Cadastro.TipoForma.CartaoPrivateLabel:
                        line = "CARTÃO   R${0}{1:N2}";
                        break;
                    case Enuns.Cadastro.TipoForma.Cheque:
                        line = "CHEQUE   R${0}{1:N2}";
                        break;
                    case Enuns.Cadastro.TipoForma.ConfirmacaoPreAutorizacao:
                    case Enuns.Cadastro.TipoForma.CreditoConsumidor:
                        line = "CDC R${0}{1:N2}";
                        break;
                    case Enuns.Cadastro.TipoForma.Dinheiro:
                        line = "DINHEIRO R${0}{1:N2}";
                        break;
                    case Enuns.Cadastro.TipoForma.Voucher:
                        line = "VOUCHER R${0}{1:N2}";
                        break;
                    case Enuns.Cadastro.TipoForma.Parcelado:
                        line = "PARCELADO R${0}{1:N2}";
                        break;
                }
            }

            if (troco > 0 &&
                !ImpressoTroco)
            {
                WriteLine(line, "".PadLeft(MaxLengthLine - 14 - totalDinheiro.ToString().Length), totalDinheiro);
                line = "TROCO R${0}{1:N2}";
                WriteLine(line, "".PadLeft(MaxLengthLine - 11 - troco.ToString().Length), troco);
                ImpressoTroco = true;
            }
            else
            {
                WriteLine(line, "".PadLeft(MaxLengthLine - 14 - totalDinheiro.ToString().Length), totalDinheiro);
            }

            StatusImpressao = BobinaStatusImpressao.FormaPagamento;
        }
Exemple #15
0
 public void Move(IMovimento movimento)
 {
     PosicaoAtual = movimento.Executar(DirecaoAtual, PosicaoAtual);
 }
Exemple #16
0
        /// <summary>
        /// Carrega o movimento selecionado pelo usuário
        /// </summary>
        /// <param name="eguid">Código do movimento</param>
        private void CarregarMovimento(EGUID eguid)
        {
            IList<IMovimento> movimentos = new List<IMovimento>();

            if (!string.IsNullOrEmpty(eguid))
            {

                if (rbtDAV.Checked)
                {
                    movimentos = new DAV().Find<IDAV>(new Where
                        {
                            { "fat_LanMovDav.EGUID",  eguid}
                        }).ToList<IMovimento>();
                }
                else if (rbtPreVenda.Checked)
                {
                    movimentos = new PreVenda().Find<IPreVenda>(new Where
                        {
                            { "fat_LanMovPv.EGUID", eguid }
                        }).ToList<IMovimento>();
                }
                else
                {
                    movimentos = new Data.Faturamento.Lancamento.Movimento.DAV.OS.DAV().Find<Model.Faturamento.Lancamento.Movimento.DAV.OS.IDAV>(new Where
                        {
                            { "fat_LanMovDavOs.EGUID", eguid }
                        }).ToList<IMovimento>();
                }
                /*
                * Se não encontrou movimento na base do OpenPOS, vamos procurar na base da retaguarda
                */
                if (movimentos.Count == 0)
                {
                    Movimento = GetFromBackend().FirstOrDefault();

                    movimentos.Add(Movimento);
                }

                CarregarMovimento(movimentos.FirstOrDefault());
            }
        }
        /// <summary>
        /// Cria um novo item e retorna de acordo com o tipo identificado
        /// </summary>
        /// <param name="movimento">Movimento pai para validar o tipo de item</param>
        /// <returns></returns>
        public static ItemBase Create(IMovimento movimento)
        {
            ItemBase result = null;

            if (movimento is Model.Faturamento.Lancamento.Movimento.PreVenda.IPreVenda)
                result = new Data.Faturamento.Lancamento.Movimento.Item.PreVenda.Item();
            else if (movimento is Model.Faturamento.Lancamento.Movimento.DAV.OS.IDAV)
                result = new Data.Faturamento.Lancamento.Movimento.Item.DAV.OS.Item();
            else if (movimento is Model.Faturamento.Lancamento.Movimento.DAV.IDAV)
                result = new Data.Faturamento.Lancamento.Movimento.Item.DAV.Item();
            else if (movimento is Model.Faturamento.Lancamento.Movimento.VendaCF.IVendaCF)
                result = new Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item();
            else if (movimento is Model.Faturamento.Lancamento.Movimento.Devolucao.IDevolucao)
                result = new Data.Faturamento.Lancamento.Movimento.Item.Devolucao.Item();
            else if (movimento is Model.Faturamento.Lancamento.Movimento.NFe.INFe)
                result = new Data.Faturamento.Lancamento.Movimento.Item.NFe.Item();
            else if (movimento is Model.Faturamento.Lancamento.Movimento.NFCe.INFCe)
                result = new Data.Faturamento.Lancamento.Movimento.Item.NFCe.Item();
            else if (movimento is Model.Faturamento.Lancamento.Movimento.NFManual.INFManual)
                result = new Data.Faturamento.Lancamento.Movimento.Item.NFManual.Item();
            else if (movimento is Model.Faturamento.Lancamento.Movimento.Conferencia.IConferencia)
                result = new Data.Faturamento.Lancamento.Movimento.Item.Conferencia.Item();

            if (result != null)
                result.Parent = movimento;

            return result;
        }
Exemple #18
0
        /// <summary>
        /// Subtotaliza o cupom fiscal
        /// </summary>
        /// <param name="venda">Instancia corrente da venda </param>
        public void SubTotaliza(IMovimento venda)
        {
            double totalVenda = Math.Round(venda.ValorTotalLiquido, 2);
            string line = string.Empty;
            double totalDescontoItem = 0.0;
            double totalAcrescimoItem = 0.0;
            double totalDescontoAcresc = 0.0;

            if (Unimake.Convert.ToBoolean(Settings.Setting.EmissaoConsumidorFinalNFCe) &&
                (StatusImpressao == BobinaStatusImpressao.Subtotaliza ||
                StatusImpressao == BobinaStatusImpressao.FormaPagamento))
                return;

            //Se possuir desconto ou acréscimo temos que subtotalizá-lo
            if (venda.ValorTotalAcrescimo > 0 || venda.ValorTotalDesconto > 0)
            {
                //Separar o valor dos descontos dos acréscimos
                foreach (Model.Faturamento.Lancamento.Movimento.Item.IItem item in venda.Itens)
                {
                    if (venda.ValorTotalDesconto > 0)
                        totalDescontoItem += item.ValorTotalDesconto * item.Quantidade;
                    else if (venda.ValorTotalAcrescimo > 0)
                        totalAcrescimoItem += item.ValorTotalAcrescimo * item.Quantidade;
                }

                //Cálculo para determinar se irá ser aplicado o desconto ou acréscimo no subtotal
                totalDescontoAcresc = (venda.ValorTotalAcrescimo - totalAcrescimoItem) - (venda.ValorTotalDesconto - totalDescontoItem);
                line = "SUBTOTAL R${0}{1:N2}";
                WriteLine(line, "".PadLeft((MaxLengthLine - 18 - totalVenda.ToString().Length)), totalDescontoAcresc);

                if (totalDescontoAcresc > 0)
                {
                    line = "(+) ACRESCIMO R${0}{1:N2}";
                    WriteLine(line, "".PadLeft((MaxLengthLine - 18 - totalVenda.ToString().Length)), totalDescontoAcresc);
                }
                else if (totalDescontoAcresc < 0)
                {
                    line = "(-) DESCONTO R${0}{1:N2}";
                    WriteLine(line, "".PadLeft((MaxLengthLine - 18 - totalVenda.ToString().Length)), totalDescontoAcresc);
                }
            }

            line = "TOTAL R${0}{1:N2}";
            WriteLine(line, "".PadLeft(MaxLengthLine - 11 - totalVenda.ToString().Length), totalVenda - totalDescontoAcresc);

            StatusImpressao = BobinaStatusImpressao.Subtotaliza;
        }
Exemple #19
0
        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
                });
            }
        }
Exemple #20
0
 public void Move(IMovimento movimento)
 {
     PosicaoAtual = movimento.Executar(this);
 }