/// <summary> /// Método responsável, em retornar imagens referente a Cor selececionada. /// </summary> /// <param name="corId"></param> /// <returns></returns> public JsonResult ObterImagem(int corId) { var estoque = new Estoque(); var query = (from i in _db.ProdutoImagens.Where(c => c.ProdutoCorId == corId).ToList() select new { porcent = AvaliacaoPorcentual(i.ProdutoCor.ProdutosMontado.First()).ToHtmlString(), notaEstrelas = NotaEstrelas(i.ProdutoCor.ProdutosMontado.First()).ToHtmlString(), codReferencia = Convert.ToInt32(i.ProdutoCor.ProdutosMontado.First().Id), i.ProdutoCorId, i.ProdutoCor.ProdutoTamanho.ProdutoId, i.ProdutoCor.ProdutoTamanhoId, i.Imagem, i.Id, disponibilidade = estoque.AvaliaDisponibilidade(i.ProdutoCor.ProdutosMontado.First().Id) > 0, quantidadeEstoque = ((i.ProdutoCor.ProdutosMontado.First().TetoEstoque >= estoque.AvaliaDisponibilidade(i.ProdutoCor.ProdutosMontado.First().Id)) ? estoque.AvaliaDisponibilidade(i.ProdutoCor.ProdutosMontado.First().Id) : i.ProdutoCor.ProdutosMontado.First().TetoEstoque), i.Imagem2, i.TipoArquivo, ProdutoMontadoId = i.ProdutoCor.ProdutosMontado.First().Id }).ToList(); return(Json(query, JsonRequestBehavior.AllowGet)); // }
//Adicionar public void AdicionarItem(ProdutoMontado produtoMontado) { ItemCarrinho item; if (_userId == null) { item = _db.ItemCarrinhos .FirstOrDefault(p => p.ProdutoMontado.Id == produtoMontado.Id && p.AnonymousId == _userAnonymonusId); } else { item = _db.ItemCarrinhos .FirstOrDefault(p => p.ProdutoMontado.Id == produtoMontado.Id && p.ApplicationUserId == _userId); } if (_estoque.AvaliaDisponibilidade(produtoMontado.Id) <= 0) { throw new Exception("Item sem disponibilidade no estoque"); } var promocao = _db.PromocaoItems.FirstOrDefault(c => c.ProdutoMontadoId == produtoMontado.Id && c.Promocao.Ativo); if (promocao != null && !PromotionsController.VerificaPromocao(promocao.Promocao)) { promocao = null; } if (item == null) { item = new ItemCarrinho { PromocaoId = promocao?.PromocaoId, Data = DateTime.Now, ProdutoMontadoId = produtoMontado.Id, QuantidadeTotalItem = 1, ApplicationUserId = _userId, AnonymousId = _userAnonymonusId, TabelaPrecoId = produtoMontado.TabelaPrecos.First().Id, Status = Status.Alocado }; _db.ItemCarrinhos.Add(item); } else { item.QuantidadeTotalItem += 1; _db.Entry(item).State = System.Data.Entity.EntityState.Modified; } var localLoja = _db.Parametros.First().local_loja; var movEstoque = _db.Estoques.First(c => c.ProdutoMontadoId == produtoMontado.Id && c.LocalId == localLoja); movEstoque.SaldoAlocado += 1; _db.Entry(movEstoque).State = System.Data.Entity.EntityState.Modified; _db.SaveChanges(); }
public void AvisoDisponibilidade() { var produtos = _db.AvisoDisponibilidade.ToList(); var estoque = new Estoque(); foreach (var item in produtos) { var result = estoque.AvaliaDisponibilidade(item.ProdutoMontadoId) > 0; if (result) { // Plug in your email service here to send an email. const string @from = "*****@*****.**"; // E-mail de remetente cadastrado no painel var to = item.Email; // E-mail do destinatário const string user = "******"; // Usuário de autenticação do servidor SMTP const string pass = "******"; // Senha de autenticação do servidor SMTP WebClient wc = new WebClient(); wc.Encoding = System.Text.Encoding.UTF8; //Obtendo o conteúdo do template string sTemplate = wc.DownloadString( "http://www.famaraonline.com.br/ProdutoVitrine/AvisoDisponibilidadeTemplate"); var subject = "Famara Online | Produto disponível " + item.ProdutoMontado.Descricao; var body = subject; body = sTemplate.Replace("##Produdo##", item.ProdutoMontado.Descricao); body = body.Replace("##CodProduto##", item.ProdutoMontado.Id); body = body.Replace("##Imagem##", @"http://www.famaraonline.com.br" + item.ProdutoMontado.ProdutoCor.ProdutoImagens.First().Imagem); var msg = new MailMessage(from, to, subject, body) { From = new MailAddress(@from, "Farama Online - Loja Virtual"), IsBodyHtml = true }; using (var smtp = new SmtpClient("email-ssl.com.br", 587)) { smtp.EnableSsl = true; smtp.UseDefaultCredentials = false; smtp.Credentials = new NetworkCredential(user, pass); try { smtp.Send(msg); _db.AvisoDisponibilidade.Remove(item); _db.SaveChanges(); } catch (Exception) { } } } } }
/// <summary> /// Monta o panel completo do produto /// </summary> /// <param name="produto"></param> /// <returns></returns> public MvcHtmlString PanelProdutoFor(Produto produto) { // Panel _tagDivPanel = new TagBuilder("div"); _tagDivPanel.AddCssClass("panel"); _tagDivPanel.AddCssClass(Convert.ToString(produto.Id)); _tagDivPanel.MergeAttribute("Id", Convert.ToString(produto.Id)); _tagDivPanel.MergeAttribute("control-value", Convert.ToString(produto.Id)); // Panel Heading _tagDivHeading = new TagBuilder("div"); _tagDivHeading.AddCssClass("panel-heading"); _tagDivHeading.InnerHtml = produto.Descricao; // Panel Body _tagDivPanelBody = new TagBuilder("div"); _tagDivPanelBody.AddCssClass("panel-body"); // Panel Footer _tagDivPanelFooter = new TagBuilder("div"); _tagDivPanelFooter.AddCssClass("panel-footer"); // Descrição do Produto _tagDivDescricao = new TagBuilder("div"); _tagDivDescricao.MergeAttribute("Id", "div-descricao-produto"); _tagDescricao = new TagBuilder("label"); _tagDescricao.MergeAttribute("Id", "label-descricao-produto"); _tagDescricao.InnerHtml = produto.ProdutosMontado.FirstOrDefault(C => C.Publica == 1).Descricao1 == "" ? produto.Descricao : produto.ProdutosMontado.FirstOrDefault().Descricao1; var tagBr = new TagBuilder("br"); _tagDivDescricao.InnerHtml = _tagDescricao.ToString(); _tagDivDescricao.InnerHtml += tagBr.ToString(); //_tagDivPanelFooter.InnerHtml = _tagDivDescricao.ToString(); // Valor do Produto _tagDivValor = new TagBuilder("div"); _tagDivValor.MergeAttribute("Id", "div-valor-produto"); var _tagValorOrigem = new TagBuilder("label"); _tagValorOrigem.MergeAttribute("Id", "origemlabel-valor-produto" + produto.Id); _tagValor = new TagBuilder("label"); _tagValor.MergeAttribute("Id", "label-valor-produto" + produto.Id); _tagValor.AddCssClass("valor-produto"); _tagValorOrigem.AddCssClass("text-muted valor-origem"); produto.ProdutosMontado = produto.ProdutosMontado .Where(c => c.ProdutoTamanhoId.HasValue && c.ProdutoCorId.HasValue && c.ProdutoId.HasValue && c.ProdutoTamanho.ProdutoCores.Any() && c.ProdutoCor.ProdutoImagens.Any()).ToList(); var promocaoItem = produto .ProdutosMontado.FirstOrDefault(c => c.Publica == 1) .PromocaoItems .FirstOrDefault(c => c.Promocao.Ativo && c.Promocao.TipoExibicao != TipoDeExibicao.CupomDesconto); var valorAtual = produto .ProdutosMontado .First(c => c.Publica == 1) .TabelaPrecos .LastOrDefault(c => c.OptLoja == 1).Valor.Value; if (promocaoItem != null && PromotionsController.VerificaPromocao(promocaoItem.Promocao)) { var valorPromocional = promocaoItem.TabelaDePreco.Valor.Value; valorPromocional = promocaoItem.Promocao.TipoValor == TipoValor.Porcentual ? valorPromocional - ((valorPromocional / 100) * promocaoItem.Promocao.Valor) : (valorPromocional - promocaoItem.Promocao.Valor); var desconto = promocaoItem.Promocao.TipoValor == TipoValor.Porcentual ? promocaoItem.Promocao.Valor : Convert.ToInt32((valorPromocional / promocaoItem.Promocao.Valor) * 100); _tagValorOrigem.SetInnerText("De: " + promocaoItem.TabelaDePreco.Valor.Value.ToString("C")); _tagValor.SetInnerText("Por: " + valorPromocional.ToString("C")); _tagDivPanelBody.InnerHtml = "<span class= 'valor-desconto text-center' title='Promoção válida apenas para tamanho e cor selecionado!'>" + desconto + "% <br/>Off</span>"; } else { _tagValor.InnerHtml = valorAtual.ToString("C"); } _tagDivValor.InnerHtml += _tagValorOrigem + "<br/>"; _tagDivValor.InnerHtml += _tagValor.ToString(); _tagDivPanelFooter.InnerHtml += _tagDivValor; var disponibilidade = _estoque.AvaliaDisponibilidade(produto.ProdutoTamanhos.First().ProdutoCores.First().ProdutosMontado.First().Id) > 0; if (disponibilidade) { //Formulário para envio ao carrinho Formulario(produto, "ProdutoVitrine", "Details", "Comprar", "btn-success"); } else { //Formulário para envio de e-mail Formulario(produto, "ProdutoVitrine", "Details", "Produto indisponível avise-me !", "btn-warning open-modal", disponibilidade: true); } // Tamanhos do produto _tagDivPanelFooter.InnerHtml += Tipos(produto, "", "", 0, 0, false); // Cores do Produto _tagDivPanelFooter.InnerHtml += _tagDivCores == null ? "" : _tagDivCores.ToString() ?? ""; _tagDivPanelFooter.InnerHtml += _tagDivFormulario.ToString(); _tagDivPanel.InnerHtml += _tagDivHeading.ToString(); _tagDivPanel.InnerHtml += _tagDivPanelBody.ToString(); _tagDivPanel.InnerHtml += _tagDivPanelFooter.ToString(); _resultado.Append(_tagDivPanel); return(MvcHtmlString.Create(Convert.ToString(_resultado))); }