/// <summary> /// Metodo responsável por aplicar filtros na base de referencia /// </summary> /// <param name="obj"></param> /// <returns></returns> private bool FiltrarInsumosDescrição(object obj) { IInsumoGeral insumo = obj as IInsumoGeral; bool resultado = true; string busca = PesquisarBaseReferencia; List <string> buscaArray = new List <string>(busca.Split('%')); if (busca.Length == 0) { return(true); } if (busca[0] != '%') { if (!insumo.Descrição.ToUpper().StartsWith(buscaArray[0].ToUpper())) { return(false); } buscaArray.RemoveAt(0); } foreach (string trecho in buscaArray) { if (insumo.Descrição.ToUpper().Contains(trecho.ToUpper()) == false) { return(false); } } return(resultado); }
/// <summary> /// Insere um insumo ao banco de dados /// </summary> /// <param name="insumo">Insumo a ser inserido</param> public static void InsumoSave(IInsumoGeral insumo) { using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString())) { cnn.Execute("INSERT INTO BaseInsumo (Descrição, Unidade, ValorUnitario, Tipo, CodigoRef) VALUES (@Descrição, @Unidade, @ValorUnitario, @Tipo, @CodigoRef)", insumo); insumo.Id = Convert.ToInt32(cnn.ExecuteScalar("SELECT last_insert_rowid()")); } }
/// <summary> /// Acrescenta um item a uma composição /// </summary> /// <param name="item"></param> /// <param name="idComposicao"></param> public static void ComposiçãoItemSave(IInsumoGeral item, int idComposicao) { using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString())) { cnn.Execute("INSERT INTO ComposicaoItem (ComposicaoId, InsumoId, Quantidade) VALUES (@ComposicaoId, @InsumoId, @Quantidade)", new { ComposicaoId = idComposicao, InsumoId = item.Id, item.Quantidade }); item.Id = (int)cnn.ExecuteScalar("SELECT last_insert_rowid()"); } }
/// <summary> /// Insere um insumo ao banco de dados /// </summary> /// <param name="insumo">Insumo a ser inserido</param> public void InsumoSave(IInsumoGeral insumo) { using (IDbConnection cnn = new MySqlConnection(LoadConnectionString())) { cnn.Execute("INSERT INTO refinsumos (Descrição, Unidade, Tipo, CodigoRef) VALUES (@Descrição, @Unidade, @Tipo, @CodigoRef)", insumo); insumo.Id = Convert.ToInt32(cnn.ExecuteScalar("SELECT last_insert_rowid()")); } }
/// <summary> /// Acrescenta as leis sociais a todos os itens do tipo Mão de Obra /// </summary> /// <param name="item">Item a ser verificado e calculado</param> /// <returns></returns> public static double Calcular(IInsumoGeral item) { if (item.Tipo == tipoInsumo.MaoDeObra) { if (item.Unidade == "MÊS") { return(Math.Round(item.ValorUnitario * (1 + (Factory.LeisSociais[0].Valor / 100)), 2)); } else { return(Math.Round(item.ValorUnitario * (1 + (Factory.LeisSociais[1].Valor / 100)), 2)); } } return(item.ValorUnitario); }
/// <summary> /// Metodo responsável por vincular os itens da base de referencia aos itens do orçamento /// </summary> /// <param name="obj"></param> private void ExecuteVincularOrcamento(object obj) { IInsumoGeral source; int id = 0; // Verifica se o item está vindo de alguma base externa if (BaseReferenciaSelecionada.BaseDescricao != "ORÇAMENTO") { IInsumoGeral Insumo = BaseReferenciaSelecionado; List <IInsumoGeral> Lista; ObservableCollection <IInsumoGeral> baseOrcamento = Factory.BaseOrcamento; Lista = baseOrcamento.Where(x => x.CodigoRef == Insumo.Id.ToString()).ToList(); // Verifica se o item faz parte da base, caso negativo adiciona na base if (Lista.Count() == 0) { // Adiciona o item a base do orçamento id = Factory.DBAcesso.InsumosOrcamentoAdicionarDaBase(Insumo.Id, 1); // Atualiza a base do orçamento com os itens importados Factory.DBAcesso.InsumosOrcamentoListaAtualizar(Factory.BaseOrcamento, 1); } else { id = Lista[0].Id; } // Localiza na lista da base do orçamento o item a ser linkado no orçamento source = Factory.BaseOrcamento.Where(x => x.Id == id).First(); } else { source = BaseReferenciaSelecionado; id = source.Id; } Factory.DBAcesso.OrcamentoVincularItem(id, BaseOrcamentoSelecionado.idOrcOrcamento); BaseOrcamentoSelecionado.Item = source; }
private void ExecuteEditarCpuAdicionarItem(object obj) { OrcamentoItem selecionado = ItemOrcamentoSelecionado as OrcamentoItem; if (selecionado.Item.GetType() == typeof(CpuGeral)) { Localizar LocalizarInsumo = new Localizar(); LocalizarInsumo.ShowDialog(); IInsumoGeral ItemSelecionado = ((LocalizarViewModel)LocalizarInsumo.DataContext).InsumoSelecionado; if (ItemSelecionado != null) { CpuCoefGeral NovoItem = new CpuCoefGeral(ItemSelecionado); ((CpuGeral)selecionado.Item).AdicionarItem(NovoItem); } } }
/// <summary> /// Cria um novo item da composição a partir de um <see cref="IInsumoGeral"/> /// </summary> /// <param name="item"></param> public CpuCoefGeral(IInsumoGeral item) { Insumo = item; Coeficiente = 1; }