示例#1
0
        /// <summary>
        /// Executa uma estratégia antes de salvar
        /// </summary>
        /// <param name="executeBefore">Método que será executado antes desta ação acontecer</param>
        /// <param name="updating">Se verdadeiro, está sendo realizado uma atualização</param>
        public override void PerformBeforeSave(Func<bool> executeBefore, bool updating)
        {
            if(!updating)
            {
                if(GUID.IsNullOrEmpty())
                    GUID = GUID.Create();

                UsuarioAlteracao = UsuarioCadastro;
            }
            else
                UsuarioAlteracao = Settings.UsuarioAtual;

            if(EGUID.IsNullOrEmpty())
            {
                if(!(this is Data.Configuracao.NumeroEGUID))
                {
                    EGUID = EGUIDExtensions.Create(EGUID, this);
                }
            }

            if(Empresa.IsNullOrEmpty())
                Empresa = Settings.EmpresaAtual;

            if(UsuarioCadastro.IsNullOrEmpty())
                UsuarioCadastro = Settings.UsuarioAtual;

            base.PerformBeforeSave(executeBefore, updating);
        }
示例#2
0
        public static Model.Cadastro.TabelaPreco.IItem Create(Model.Cadastro.TabelaPreco.ITabelaPreco tabelaPreco, EGUID eguid)
        {
            Data.Cadastro.TabelaPreco.Item result = new Data.Cadastro.TabelaPreco.Item();
            result.Parent = tabelaPreco;
            result.Item = Data.Cadastro.Item.Produto.Acabado.Create(eguid);

            if (result.Item == null)
                return null;//Não encontrou o produto cadastrado

            Connection connection = null;

            try
            {
                connection = DbContext.CreateConnection();
                DataReader dr = connection.ExecuteReader(@"SELECT GUIDTabelaPreco,
                                                                  GUIDItem,
                                                                  Preco
                                                            FROM cad_TabelaPrecoItem
                                                            WHERE GUIDTabelaPreco = @p1 AND
                                                                  GUIDItem = @p2", new[] {
                         new Parameter {
                             ParameterName = "@p1",
                             Value = tabelaPreco.GUID
                         },
                         new Parameter {
                             ParameterName = "@p2",
                             Value = result.Item.GUID
                         }
                     });

                if (dr.Read())
                {
                    result.Preco = dr.GetDouble("Preco");
                }
            }
            finally
            {
                connection.Close();
            }

            return result;
        }
示例#3
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());
            }
        }
示例#4
0
        /// <summary>
        /// Preenche o produto pelo EGUID passado
        /// </summary>
        /// <param name="eguid">código do produto</param>
        private void PopulateProduto(EGUID eguid)
        {
            List<IAcabado> list = new Acabado().Find<IAcabado>(new Where()
            {
                {"cad_Item.EGUID", eguid}
            });

            PopulateProduto(list.Count > 0 ? list[0] : null);
        }
示例#5
0
        /// <summary>
        /// Retorna um novo produto pelo EGUID, identificando o seu tipo
        /// </summary>
        /// <param name="eguid">EGUID para pesquisar o produto</param>
        /// <param name="viewOnly">Se true, traz apenas os campos de base, como GUID, EGUID, Nome Fantasia e Razão Social</param>
        /// <returns></returns>
        public static ItemBase Create(EGUID eguid, bool viewOnly = true)
        {
            if(EGUID.IsNullOrEmpty(eguid)) return null;

            ItemBase result = null;
            Connection connection = null;

            try
            {
                connection = DbContext.CreateConnection();
                string sql = @"SELECT TipoItem, GUID, EGUID FROM cad_Item
                               LEFT JOIN cad_itemcodigobarra ON cad_itemcodigobarra.GUIDItem = cad_Item.GUID
                               WHERE ( EGUID = @p1 OR cad_itemcodigobarra.Codigo = @p1 ) AND GUIDempresa = @empresa";

                DataReader dr = connection.ExecuteReader(sql, new[]
                                                                         {
                                                                             new Parameter
                                                                             {
                                                                                 Value = Settings.EmpresaAtual.GUID,
                                                                                 ParameterName="@empresa"
                                                                             },
                                                                             new Parameter
                                                                             {
                                                                                 Value = eguid.ToString(),
                                                                                 ParameterName="@p1"
                                                                             }
                                                                         });
                if(dr.Read())
                {
                    TipoItem tipo = dr.GetValue<TipoItem>(0);
                    result = Create((GUID)dr.GetString(1), tipo, viewOnly);
                }
            }
            finally
            {
                connection.Close();
            }

            return result;
        }