public ArmazenamentoCenario ArmazenamentoCenarioFind(int elementoId, int cenarioId) { string codigo = _unitOfw.NoRepository.Get(y => y.Id == elementoId).FirstOrDefault()?.Codigo; if (!string.IsNullOrEmpty(codigo)) { ArmazenamentoCenario armazenamentoCenario = _unitOfw.ArmazenamentoCenarioRepository.Get(y => y.NoId == elementoId && y.CenarioId == cenarioId).FirstOrDefault(); if (armazenamentoCenario == null) { TipoArmazenamento tipoArmazenamento = _unitOfw.TipoArmazenamentoRepository.Get(y => y.Nome == Util.TipoArmazenamentoEnum.Agrupado.ToString()).FirstOrDefault(); _unitOfw.ArmazenamentoCenarioRepository.Insert(new ArmazenamentoCenario { NoId = elementoId, CenarioId = cenarioId, TipoArmazenamentoId = tipoArmazenamento.Id, IncluirCalculoImpostos = false, Capex = 0, ComFaixa = false }); } return(armazenamentoCenario); } return(null); }
public bool SaveArmazenamentoCenario(int elementoId, int cenarioId, bool incluircalculoImposto, int tipoArmazenamentoId, decimal capex, bool comFaixa) { using (var context = new VCMContext()) { using (var transaction = context.Database.BeginTransaction()) { try { //pr_VCM_ArmazenamentoCenarioUpdate var codigo = _unitOfw.NoRepository.Get(y => y.Id == elementoId).FirstOrDefault()?.Codigo; List <int> simbolos = new List <int>(); if (!incluircalculoImposto) { simbolos = _unitOfw.SimboloRepository.Get(y => y.Codigo == SimboloCodigo.PrecoCompraNF.ToString() || y.Codigo == SimboloCodigo.PrecoVendaNF.ToString() || y.Codigo == SimboloCodigo.ICMSPorctSubstEnt.ToString() || y.Codigo == SimboloCodigo.ICMSPorctSubstSai.ToString() || y.Codigo == SimboloCodigo.ValorBenefICMS.ToString()).Select(y => y.Id).ToList(); } EntradaDelete(cenarioId, codigo, simbolos, context); ArmazenamentoCenario armazenamentoCenario = _unitOfw.ArmazenamentoCenarioRepository.Get(y => y.NoId == elementoId && y.CenarioId == cenarioId).FirstOrDefault(); bool incluirCalculoImpostoOld = armazenamentoCenario.IncluirCalculoImpostos; armazenamentoCenario.TipoArmazenamentoId = tipoArmazenamentoId; armazenamentoCenario.IncluirCalculoImpostos = incluircalculoImposto; armazenamentoCenario.Capex = capex; armazenamentoCenario.ComFaixa = comFaixa; _unitOfw.ArmazenamentoCenarioRepository.Update(armazenamentoCenario); if (!incluirCalculoImpostoOld && incluircalculoImposto) { LerValoresSaidaEntradaBaseCalculoImposto(cenarioId, codigo, context); } if (comFaixa) { var faixacustoFixo = (from fcf in _unitOfw.FaixaCustoFixoRepository.Get(y => y.Id == cenarioId && y.Codigo != "F001") join c in _unitOfw.CenarioRepository.Get() on fcf.TopologiaId equals c.TopologiaId select new List <int> { fcf.Id }).FirstOrDefault(); var toBeDelete = _unitOfw.NoCenarioFaixaCustoFixoRepository.Get(y => y.NoId == elementoId && y.CenarioId == cenarioId && faixacustoFixo.Contains(y.FaixaId)).ToList(); context.NoCenarioFaixaCustoFixo.RemoveRange(toBeDelete); var simbolosId = _unitOfw.SimboloRepository.Get(v => (v.Codigo == "valorFaixaInfU" || v.Codigo == "valorFaixaSupU") || (v.Codigo == "CfxoUA")).Select(s => s.Id).ToList(); List <Entrada> entradasTobeDelete = _unitOfw.EntradaRepository.Get(y => y.EntidadeCodigo1 == codigo && y.EntidadeCodigo3 != "F001" && simbolosId.Contains(y.SimboloId)).ToList(); context.Entrada.RemoveRange(entradasTobeDelete); } return(true); } catch (Exception ex) { transaction.Rollback(); } } } return(true); }