public static int espacoLivre(int IDdoArmazem) { try { ArmazemRepository armazemRepository = new ArmazemRepository(); TamanhoArmazemRepository tamanhoArmazemRepository = new TamanhoArmazemRepository(); int tamanhoTotalOcupado = 0; int tamanhoTotalDoArmazem = tamanhoArmazemRepository.Buscar(IDdoArmazem).tamanhoArmazem; foreach (var partesDoArmazem in armazemRepository.Listar().Where(x => x.tamanhoArmazemId == IDdoArmazem)) { tamanhoTotalOcupado += partesDoArmazem.usadoArmazem; } return tamanhoTotalDoArmazem - tamanhoTotalOcupado; } catch (Exception ex) { return -1; } }
public static bool armazemTemEspacoPraIsso(int qtd, int IDdoArmazem) { try { ArmazemRepository armazemRepository = new ArmazemRepository(); TamanhoArmazemRepository tamanhoArmazemRepository = new TamanhoArmazemRepository(); int tamanhoTotalOcupado = 0; foreach (var partesDoArmazem in armazemRepository.Listar().Where(x=>x.tamanhoArmazemId == IDdoArmazem)) { tamanhoTotalOcupado += partesDoArmazem.usadoArmazem; } if (tamanhoTotalOcupado + qtd <= tamanhoArmazemRepository.Buscar(IDdoArmazem).tamanhoArmazem) return true; else return false; } catch(Exception ex) { return false; } }
public ActionResult Simulacao(string produto, string classe, string subclasse, string armazenagem, int idarmazem, int qtdarmazem, DateTime dtInicio, DateTime dtFim) { try { if (string.IsNullOrWhiteSpace(classe) || string.IsNullOrWhiteSpace(subclasse) || string.IsNullOrWhiteSpace(subclasse) || string.IsNullOrWhiteSpace(armazenagem) || string.IsNullOrWhiteSpace(produto)) { TempData["erro"] = "Nao deixe espacos em branco!"; return View(); } if (DateTime.Now.Ticks > dtInicio.Ticks) { TempData["erro"] = "A data de inicio nao pode ser menor que a data de hoje!"; return View(); } if (dtFim.Ticks <= dtInicio.Ticks) { TempData["erro"] = "A data de Fim nao pode ser menor ou igual a data de Inicio!"; return View(); } if (qtdarmazem <= 0) { TempData["erro"] = "Quantidade de espaco nao pode ser zero ou vazia!"; return View(); } if (Negocio.armazemTemEspacoPraIsso(qtdarmazem, idarmazem)) { var dias = Negocio.retornaDiferencaEntreDuasDatas(dtFim, dtInicio); decimal valorTotal = Convert.ToInt32(((dias * 10) * qtdarmazem) + 1000); if (Session["User"] != null) { PedidoRepository pedidoRepository = new PedidoRepository(); ArmazemRepository armazemRepository = new ArmazemRepository(); Armazem armazem = new Armazem(); var nome = ((Cliente)(Session["User"])).nome; var email = ((Cliente)(Session["User"])).email; var clienteID = ((Cliente)(Session["User"])).clienteId; armazem.clienteId = clienteID; armazem.usadoArmazem = qtdarmazem; armazem.tamanhoArmazemId = idarmazem; //armazemRepository.Add(armazem); Pedido pedido = new Pedido() { clienteId = clienteID, classeId = Convert.ToInt32(classe), subclasseId = Convert.ToInt32(subclasse), armazenagemId = Convert.ToInt32(armazenagem), produto = produto, armazem = armazem, dtInicio = dtInicio, dtFim = dtFim, valorTotal = valorTotal, ckstatus = false }; pedidoRepository.Add(pedido); string msg = "Valor total a ser pago e: " + valorTotal + "\nOs dados do seu pedido, serao enviados para o seu e-mail.\nVerifique sua caixa de entrada."; EnviarMensagem em = new EnviarMensagem("*****@*****.**", email, "Vindo do Sistema de Armazem", String.Format("Olá {0},\n\nObrigado por realizar o pedido em nosso sistema!\n\nOs dados do seu pedido são,\nCliente: {0}\nProduto: {8}\nClasse Prod: {1}\nSubClasse Prod: {2}\nID do Armazem: {3}\nData de Início: {4}\nData de Fim: {5}\nValor total a ser pago: {6}\nStatus do pedido: {7}", nome, classe, subclasse, idarmazem, dtInicio, dtFim, valorTotal, "Não pago",produto), "Daniel"); em.SubmeterEmail(); TempData["certo"] = msg; return View("PaineldeControleUsuario"); } else { dias = Negocio.retornaDiferencaEntreDuasDatas(dtFim, dtInicio); valorTotal = Convert.ToInt32(((dias * 10) * qtdarmazem) + 1000); string msg = "Valor total a ser pago e: " + valorTotal; TempData["certo"] = msg; return View(); } } else { TempData["erro"] = "Falha na simulacao! Voce selecionou mais espaco que o disponivel."; return View(); } } catch (Exception ex) { TempData["erro"] = "Falha na simulação. Erro: " + ex.Message; return View(); } }