public void reportsupervisor(List<Maqueta> lista) { int cargo = int.Parse((db.Cargo.Where(r => r.NOMBRE == "SUPERVISOR").Select(r => r.ID)).First().ToString()); List<Usuario> listint = new List<Usuario>(); List<string> email = new List<string>(); email = db.Usuario.Where(r => r.IDCARGO == cargo && r.ESTADO == true && r.EMAIL != null).Select(d => d.EMAIL).ToList(); if (lista.Count != 0) { var asd = lista.Where(r => r.ESTADO == "APROBACION VENDEDOR"); List<Maqueta> aprovend = asd.ToList(); var asd2 = lista.Where(r => r.ESTADO != "APROBACION VENDEDOR"); string Cabezera = " Reporte YGD"; string Texto = "Estimado SUPERVISOR, <br/><br/>La siguiente lista consta con todas las maquetas que se encuentran en produccion y todavia no estan FINIQUITADOs. <br/><br/> <bold>POR APROBAR</bold> <br/><br/>"; Texto = Texto + "<table><tr><th>CODIGO</th><th>ESTADO</th><th>LOGOTIPO</th><th>PRODUCTO</th><th>URL</th></tr>"; foreach (var correo in aprovend) { Texto = Texto + "<tr><td>" + correo.CODIGO + "</td><td>" + correo.ESTADO + "</td><td>" + correo.LOGOTIPO + "</td>"; if (correo.Producto != null) { Texto = Texto + "<td>" + correo.Producto.CODIGO + "</td>"; } else { Texto = Texto + "<td></td>"; } Texto = Texto + "<td> <a href='ygd.cl/Maqueta/Edit/" + correo.CODIGO + "'> Enlace </a></td>"; Texto = Texto + "</tr>"; } Texto = Texto + "</table>"; Texto = Texto + "<br/><br/> OTROS PENDIENTES <br/>"; List<Maqueta> aprovend2 = asd2.ToList(); Texto = Texto + "<table><tr><th>CODIGO</th><th>ESTADO</th><th>LOGOTIPO</th><th>PRODUCTO</th><th>DIAS</th><th>URL</th></tr>"; foreach (var correo in aprovend2) { TimeSpan diferencia = new TimeSpan(0, 0, 0, 00, 0); DateTime actual = DateTime.Now; Estado estado = new Estado(); switch(correo.ESTADO){ case "APROBACION SUPERVISOR": /*db.Estado.FirstOrDefault(r => r.IDMAQUETA == correo.CODIGO && r.NOMBRE == correo.ESTADO);*/ estado = db.Estado.Where(r => r.IDMAQUETA == correo.CODIGO && r.NOMBRE == "APROBACION VENDEDOR").FirstOrDefault(); if (actual != null && estado != null) diferencia = actual - estado.FECHA; break; case "TRABAJANDO EN BODEGA": //actual = db.Estado.FirstOrDefault(r=>r.IDMAQUETA == correo.CODIGO && r.NOMBRE== correo.ESTADO); estado = db.Estado.FirstOrDefault(r => r.IDMAQUETA == correo.CODIGO && (r.NOMBRE == "PEDIDOS A BODEGAL" || r.NOMBRE == "APROBACION SUPERVISOR")); if (actual != null && estado != null) diferencia = actual - estado.FECHA; break; case "PEDIDOS A BODEGAL": //actual = db.Estado.FirstOrDefault(r => r.IDMAQUETA == correo.CODIGO && r.NOMBRE == correo.ESTADO); estado = db.Estado.FirstOrDefault(r => r.IDMAQUETA == correo.CODIGO && r.NOMBRE == "APROBACION SUPERVISOR"); if (actual != null && estado != null) diferencia = actual - estado.FECHA; break; case "ENTREGADAS A TALLER": //actual = db.Estado.FirstOrDefault(r=>r.IDMAQUETA == correo.CODIGO && r.NOMBRE== correo.ESTADO); estado = db.Estado.FirstOrDefault(r => r.IDMAQUETA == correo.CODIGO && r.NOMBRE == "TRABAJANDO EN BODEGA"); if (actual != null && estado != null) diferencia = actual - estado.FECHA; break; case "DEVUELTA A BODEGA": //actual = db.Estado.FirstOrDefault(r=>r.IDMAQUETA == correo.CODIGO && r.NOMBRE== correo.ESTADO); estado = db.Estado.FirstOrDefault(r => r.IDMAQUETA == correo.CODIGO && r.NOMBRE == "ENTREGADAS A TALLER"); if (actual != null && estado != null) diferencia = actual - estado.FECHA; break; case "ENTREGADO A CLIENTE": //actual = db.Estado.FirstOrDefault(r=>r.IDMAQUETA == correo.CODIGO && r.NOMBRE== correo.ESTADO); estado = db.Estado.FirstOrDefault(r => r.IDMAQUETA == correo.CODIGO && r.NOMBRE == "DEVUELTA A BODEGA"); if(actual != null && estado != null) diferencia = actual - estado.FECHA; break; } Texto = Texto + "<tr><td>" + correo.CODIGO + "</td><td>" + correo.ESTADO + "</td><td>" + correo.LOGOTIPO + "</td>"; if (correo.Producto != null) { Texto = Texto + "<td>" + correo.Producto.CODIGO + "</td>"; } else { Texto = Texto + "<td></td>"; } Texto = Texto + "<td>"+ diferencia.Days.ToString() +"</td>"; Texto = Texto + "<td> <a href='ygd.cl/Maqueta/Details/" + correo.CODIGO + "'> Enlace </a></td>"; Texto = Texto + "</tr>"; } Texto = Texto + "</table>"; _MailService.SendEmailvarioscorreos(Cabezera, email, Texto); } }
public ActionResult Imprimir(FormCollection formulario, string GUIA) { string TEXTO = "<h2>PRODUCTOS RETIRO BODEGAL-PROBAG CON LOGOS</h2>"; TEXTO = "<table><tr><th>DESCRIPCION</th><th>LOGO</th><th>CAJAS</th><th>CODIGO</th><th>UNI.x CAJA</th><th>TOTAL</th><th>SOBRANTE</th><th>GUIA</th><th>MAQUETA</th><th>VENDEDOR</th><th>CLIENTE</th><th>STOCK</th></tr>"; List<Datos> datos = new List<Datos>(); IValueProvider valueProvider = formulario.ToValueProvider(); for (int i = 2; i < formulario.Count; i++) { Datos dato = new Datos(); //PEDIDOS A BODEGAL string valor = formulario.Keys[i].ToString(); Maqueta maqueta = db.Maqueta.Find(valor); maqueta.ESTADO = "PEDIDOS A BODEGAL"; db.Entry(maqueta).State = EntityState.Modified; Estado estado = new Estado(); estado.FECHA = DateTime.Now; estado.IDMAQUETA = maqueta.CODIGO; estado.NOMBRE = "PEDIDOS A BODEGAL"; db.Estado.Add(estado); db.SaveChanges(); Detalle detalle = new Detalle(); detalle.CANTIDAD = int.Parse(maqueta.CANTIDAD.ToString()); detalle.ACUMULADO = int.Parse(maqueta.CANTIDAD.ToString()); detalle.FECHA = DateTime.Now; detalle.TIPO = "PEDIDOS A BODEGAL"; detalle.IDMAQUETA = maqueta.CODIGO; detalle.MOVIMIENTO = formulario.Keys[0].ToString(); detalle.ORIGEN = "BODEGAL"; Producto producto = db.Producto.Find(maqueta.CODPRODUCTO); //PIDO PRODUCTO int auxiliarmio =0; int cantidad = int.Parse(maqueta.CANTIDAD.ToString()); //GUARDO TOTAL int unicajas = int.Parse(maqueta.Producto.UNIDADESXCAJA.ToString()); //GUARDO UNIDADES POR CAJA if (producto.STOCKLOCAL != 0 && producto.STOCKLOCAL != null)//VERIFICO SI HAY EN STOCKLOCAL { auxiliarmio = producto.STOCKLOCAL.Value; if (cantidad >= producto.STOCKLOCAL.Value) //VERIFICO SI EL STOCK LOCAL ES MENOR IGUAL A LA CANTIDAD PEDIDA { cantidad = cantidad - producto.STOCKLOCAL.Value; //RESTO STOCKLOCAL A LA CANTIDAD PEDIDA if (cantidad == 0) { producto.STOCKLOCAL = producto.STOCKLOCAL.Value - int.Parse(maqueta.CANTIDAD.ToString()); } else { producto.STOCKLOCAL = 0; } } else { cantidad = 0; producto.STOCKLOCAL = producto.STOCKLOCAL.Value - int.Parse(maqueta.CANTIDAD.ToString()); } } int entero = cantidad / unicajas; int sobra = cantidad % unicajas; int sobrantes = 0; if (sobra != 0) { entero++; sobrantes = unicajas * entero; sobrantes = sobrantes - cantidad; } dato.NombrEProductO = maqueta.Producto.NOMBRE; dato.CajaS = entero; dato.CodigOProductO = maqueta.Producto.CODIGO; dato.UnidadeSXCajA = int.Parse(maqueta.Producto.UNIDADESXCAJA.ToString()); dato.CantidaD = int.Parse(maqueta.CANTIDAD.ToString()); dato.GuiA = GUIA; dato.MaquetA = maqueta.CODIGO; dato.SobrantE = sobrantes - auxiliarmio; dato.VendedoR = maqueta.Usuario.NOMBRE.ToString(); dato.LogO = maqueta.LOGOTIPO; if(maqueta.IDCLIENTE!=null) dato.Cliente = maqueta.Cliente.EMPRESA.ToString(); //DESCONTAR DE STOCK producto.STOCK = producto.STOCK - dato.CajaS; if (sobra != 0) { producto.STOCKLOCAL = producto.STOCKLOCAL + (producto.UNIDADESXCAJA - sobra); } db.Entry(producto).State = EntityState.Modified; db.SaveChanges(); Bodegal bodegal = new Bodegal(); bodegal.Guia = int.Parse(dato.GuiA); bodegal.Fecha = DateTime.Now; bodegal.Movido = dato.CajaS; bodegal.Sobrantes = dato.SobrantE; bodegal.Stock = producto.STOCK.Value; bodegal.Donde = true; bodegal.FkProducto = producto.ID; db.Bodegal.Add(bodegal); dato.StocK = producto.STOCK.Value; datos.Add(dato); //AGREGAR EN STRING PARA CORREO; TEXTO =TEXTO + "<tr><td>"+dato.NombrEProductO + "</td><td>"+dato.LogO+"</td><td>"+dato.CajaS+"</td><td>"+dato.CodigOProductO+"</td><td>"+dato.UnidadeSXCajA+"</td><td>"+dato.CantidaD+"</td><td>"+dato.SobrantE+"</td><td>"+dato.GuiA+"</td><td>"+dato.MaquetA+"</td><td>"+dato.VendedoR+"</td><td>"+dato.Cliente+"</td><td>"+dato.StocK + "</td></tr>"; } TEXTO = TEXTO + "</table>"; List<string> correos = db.Usuario.Where(r => r.IDCARGO == 8 || r.IDCARGO == 1).Select(r => r.EMAIL).ToList(); _MailService.SendEmailvarioscorreos("Pedido a Bodegal CON LOGO", correos, TEXTO); Datos primer = datos.FirstOrDefault(); QRCodeEncoder encoder = new QRCodeEncoder(); string URL = "Numero de la Guia: " + primer.GuiA; string WorkingDirectory = this.Server.MapPath("~/uploadedFolder/"); Bitmap img = encoder.Encode(URL); img.Save(WorkingDirectory + "img3.jpg", ImageFormat.Jpeg); return View(datos.ToList()); }
public ActionResult PedirBodegal(FormCollection formulario) { List<Datos> datos = new List<Datos>(); IValueProvider valueProvider = formulario.ToValueProvider(); for (int i = 2; i < formulario.Count; i++) { Datos dato = new Datos(); //PEDIDOS A BODEGAL string valor = formulario.Keys[i].ToString(); Maqueta maqueta = db.Maqueta.Find(valor); maqueta.ESTADO = "PEDIDOS A BODEGAL"; db.Entry(maqueta).State = EntityState.Modified; Estado estado = new Estado(); estado.FECHA = DateTime.Now; estado.IDMAQUETA = maqueta.CODIGO; estado.NOMBRE = "PEDIDOS A BODEGAL"; db.Estado.Add(estado); db.SaveChanges(); Detalle detalle = new Detalle(); detalle.CANTIDAD = int.Parse(maqueta.CANTIDAD.ToString()); detalle.ACUMULADO = int.Parse(maqueta.CANTIDAD.ToString()); detalle.FECHA = DateTime.Now; detalle.TIPO = "PEDIDOS A BODEGAL"; detalle.IDMAQUETA = maqueta.CODIGO; detalle.MOVIMIENTO = formulario.Keys[0].ToString(); detalle.ORIGEN = "BODEGAL"; /*+++++++++++++++++++++++++*/ Producto producto = db.Producto.Find(maqueta.CODPRODUCTO); //PIDO PRODUCTO int cantidad = int.Parse(maqueta.CANTIDAD.ToString()); //GUARDO TOTAL int unicajas = int.Parse(maqueta.Producto.UNIDADESXCAJA.ToString()); //GUARDO UNIDADES POR CAJA if (producto.STOCKLOCAL != 0 && producto.STOCKLOCAL != null) //VERIFICO SI HAY EN STOCKLOCAL { if (cantidad >= producto.STOCKLOCAL.Value) //VERIFICO SI EL STOCK LOCAL ES MENOR IGUAL A LA CANTIDAD PEDIDA { cantidad = cantidad - producto.STOCKLOCAL.Value; // RESTO STOCKLOCAL A LA CANTIDAD PEDIDA if (cantidad == 0) { producto.STOCKLOCAL = producto.STOCKLOCAL.Value - cantidad; } else { producto.STOCKLOCAL = 0; } } else { cantidad = 0; producto.STOCKLOCAL = producto.STOCKLOCAL.Value - cantidad; } } int entero = cantidad / unicajas; int sobra = cantidad % unicajas; int sobrantes = 0; if (sobra != 0) { entero++; sobrantes = unicajas * entero; sobrantes = sobrantes - cantidad; } dato.NombrEProductO = maqueta.Producto.NOMBRE; dato.CajaS = entero; dato.CodigOProductO = maqueta.Producto.CODIGO; dato.UnidadeSXCajA = int.Parse(maqueta.Producto.UNIDADESXCAJA.ToString()); dato.CantidaD = int.Parse(maqueta.CANTIDAD.ToString()); dato.GuiA = formulario.Keys[i].ToString(); dato.MaquetA = maqueta.CODIGO; dato.SobrantE = sobrantes; dato.VendedoR = maqueta.Usuario.NOMBRE.ToString(); //DESCONTAR DE STOCK producto.STOCK = producto.STOCK - dato.CajaS; if (sobra != 0) { producto.STOCKLOCAL = producto.STOCKLOCAL + (producto.UNIDADESXCAJA - sobra); } db.Entry(producto).State = EntityState.Modified; db.SaveChanges(); datos.Add(dato); } return RedirectToAction("Imprimir", datos); }
public ActionResult Details(string id , string nombre) { if (nombre != "") { Maqueta maqueta = db.Maqueta.Find(id); maqueta.FACTURA = nombre; Estado esta = new Estado(); esta.IDMAQUETA = maqueta.CODIGO; esta.NOMBRE = "FACTURADA"; esta.FECHA = DateTime.Now; db.Estado.Add(esta); if (maqueta.ESTADO == "ENTREGADO A CLIENTE") { maqueta.ESTADO = "FINIQUITADO"; //ELIMINAR LA IMAGEN QUE SE USA PARA CONFIRMACION DESPUES DE FACTURAR QUE ES EL PROCESO FINAL. DeleteBlob(maqueta.URL); } db.Entry(maqueta).State = EntityState.Modified; db.SaveChanges(); FechFacMaqu1 fecha = new FechFacMaqu1(); fecha.FECHA = DateTime.Now; fecha.Fk_Maqueta = maqueta.CODIGO; db.FechFacMaqu1.Add(fecha); db.SaveChanges(); string titulo, correo, texto; titulo = "FACTURADO " + maqueta.CODIGO; var tyu = from m in db.Usuario where (m.ID == maqueta.IDVENDEDOR) select m.EMAIL; correo = tyu.First().ToString(); texto = "La venta" + maqueta.CODIGO + "Se Facturado con el Nombre de: " + maqueta.FACTURA; texto = texto + "<br/> MAQUETA: " + maqueta.CODIGO; texto = texto + "<br/> LOGO: " + maqueta.LOGOTIPO; texto = texto + "<br/> PRODUCTO: " + maqueta.Producto.NOMBRE; texto = texto + "<br/> ESTADO ACTUAL: " + maqueta.ESTADO; _MailService.SendEmail(titulo, correo, texto); } return RedirectToAction("Details"); }
public ActionResult Create(HttpPostedFileBase fichero, bool estado, Maqueta model) { model.CODIGO = model.CODIGO.Replace("-", ""); bool existe = db.Maqueta.Any(r => r.CODIGO == model.CODIGO); if (existe == false) { tipusu(); //FICHERO if (fichero != null) { string nombr = model.CODIGO + ".jpg"; SaveBlob(fichero, nombr); model.URL = model.CODIGO + ".jpg".ToString(); } else { model.URL = "sin-imagen.jpg".ToString(); } model.FECHA = DateTime.Now; //DISEÑADOR string nomusuario = this.User.Identity.Name; var dfg = from m in db.Usuario where (m.NOMBRE == nomusuario) select m.ID; nomusuario = dfg.First().ToString(); model.IDDISEÑADOR = nomusuario; //ESTADO model.ESTADO = "NO CONFIRMADO"; Estado estados = new Estado(); if (estado == true) { int Est = tipousuario(); string c = "NO CONFIRMADO"; switch (Est) { case 6: c = "APROVADO VENDEDOR"; break; case 2: c = "APROVADO SUPERVISOR"; break; } model.ESTADO = c.ToString(); //ESTADO estados.NOMBRE = c; estados.NOMBRE = c.ToString(); estados.FECHA = DateTime.Now; estados.IDMAQUETA = model.CODIGO; } string GuidString = Guid.NewGuid().ToString("D"); model.REVISIONCOD = new Guid(GuidString); //GUARDAR db.Maqueta.Add(model); if (estado == true) { db.Estado.Add(estados); } db.SaveChanges(); string gre = (from m in db.Usuario where (m.ID == model.IDVENDEDOR) select m.EMAIL).First(); string titulo = "Se ha Creado Maqueta " + model.CODIGO + " con Logo " + model.LOGOTIPO; string correo = gre; string texto = "Le informamos que su pedido de maqueta ya se encuentra subida al sistema con el codigo " + model.CODIGO + " y esta en espera de su aprobación. <br/><br/>Saludos."; //string perdirigido = model.Usuario.NOMBRE; //string observacion = model.OBSERVACION; //string diseñador = model.Usuario1.NOMBRE; _MailService.SendEmail( titulo, correo, texto); } return RedirectToAction("Index"); }
public ActionResult Edit(Maqueta maqueta, bool estadox, HttpPostedFileBase fichero, string vendedor , DateTime FECHAMIA) { if (maqueta.CODPRODUCTO == 499 && maqueta.IDNOTACOMPRA == null) { int a = tipousuario(); ViewBag.IDEMPRESA = new SelectList(db.Empresa, "ID", "NOMBRE", maqueta.IDEMPRESA); ViewBag.CODPRODUCTO = new SelectList(db.Producto, "ID", "CODIGO", maqueta.CODPRODUCTO); ViewBag.IDTALLER = new SelectList(db.Taller, "ID", "NOMBRE", maqueta.IDTALLER); ViewBag.IDNOTACOMPRA = new SelectList(db.NotaCompra.Where(r => r.IDVENDEDOR == maqueta.IDVENDEDOR), "ID", "ID", maqueta.IDNOTACOMPRA); ViewBag.TEXTO = "LA PRODUCCION AMERITA AGREGAR LA NOTA DE COMPRA"; string qwerty =this.User.Identity.Name; string idusuario = db.Usuario.FirstOrDefault(r => r.NOMBRE == qwerty).ID; if (a == 6 || a == 1 || a == 2 || a == 8) { ViewBag.IDCLIENTE = new SelectList(db.Cliente.Where(k => k.IDUSUARIO == maqueta.IDVENDEDOR), "ID", "EMPRESA", maqueta.IDCLIENTE); } else { ViewBag.IDCLIENTE = new SelectList(db.Cliente.Where(k => k.IDUSUARIO == idusuario), "ID", "EMPRESA", maqueta.IDCLIENTE); } return View(maqueta); } #region LOGICA string nomusuario = this.User.Identity.Name; Usuario kdk = db.Usuario.FirstOrDefault(r => r.NOMBRE == nomusuario); maqueta.FECHAENTREGA = FECHAMIA; #region DISEÑADOR Y VENDEDOR //SI ES DISEÑADOR LLENAR IDVENDEDOR Y IDDISEÑADOR if (kdk.IDCARGO.ToString() == "3") { //IDVENDEDOR if (vendedor != "") { string qry = db.Usuario.FirstOrDefault(r => r.NOMBRE == vendedor).ID; //var qry = from m in db.Usuario // where (m.NOMBRE == vendedor) // select m.ID; maqueta.IDVENDEDOR = qry.ToString(); } else { string qry = db.Maqueta.FirstOrDefault(r=>r.CODIGO==maqueta.CODIGO).IDVENDEDOR; //from m in db.Maqueta // where (m.CODIGO == maqueta.CODIGO) // select m.IDVENDEDOR; maqueta.IDVENDEDOR = qry.ToString(); } //IDDISEÑADOR maqueta.IDDISEÑADOR = kdk.ID.ToString(); } #endregion #region URL if (fichero != null) { SaveBlob(fichero, maqueta.CODIGO + ".jpg".ToString()); maqueta.URL = maqueta.CODIGO + ".jpg".ToString(); } else { var top = from t in db.Maqueta where (t.CODIGO == maqueta.CODIGO) select t.URL; string urle = top.First().ToString(); maqueta.URL = urle; } var tope = from t in db.Maqueta where (t.CODIGO == maqueta.CODIGO) select t.FECHA; if (tope.Count() != 0) { maqueta.FECHA = tope.First(); } #endregion #region CAMBIO DE ESTADO Estado estados = new Estado(); int Est = tipousuario(); if (estadox == true) { string c = ""; switch (Est) { case 1: c = "APROBACION SUPERVISOR"; break; case 8: c = "APROBACION SUPERVISOR"; break; case 6: c = "APROBACION SUPERVISOR"; break; case 2: c = "APROBACION VENDEDOR"; break; case 3: break; case 4: break; } maqueta.ESTADO = c.ToString(); estados.NOMBRE = c.ToString(); estados.FECHA = DateTime.Now; estados.IDMAQUETA = maqueta.CODIGO; } else { var pep = from e in db.Maqueta where (e.CODIGO == maqueta.CODIGO) select e.ESTADO; switch (pep.First().ToString()) { case "NO CONFIRMADO": maqueta.ESTADO = "NO CONFIRMADO"; break; case "APROBACION VENDEDOR": maqueta.ESTADO = "NO CONFIRMADO"; break; case "APROBACION SUPERVISOR": maqueta.ESTADO = "APROBACION VENDEDOR"; break; } } #endregion //ACTUALIZAR db.Entry(maqueta).State = EntityState.Modified; #region TABLA ESTADO if (estadox == true) { int idcargovar = tipousuario(); var kje = db.Maqueta.Where(m => m.CODIGO == maqueta.CODIGO); var jhg = from e in db.Maqueta where (e.ESTADO == "xxx") select e.CODIGO; switch (idcargovar) { case 1: kje = kje.Where(m => m.ESTADO != "APROBACION VENDEDOR"); if (kje.Count() != 0) { kje = kje.Where(m => m.ESTADO != "NO CONFIRMADO"); } break; case 8: kje = kje.Where(m => m.ESTADO != "APROBACION VENDEDOR"); if (kje.Count() != 0) { kje = kje.Where(m => m.ESTADO != "NO CONFIRMADO"); } break; case 6: jhg = from e in db.Maqueta where (e.ESTADO != "APROBACION VENDEDOR") && (e.CODIGO == maqueta.CODIGO) select e.CODIGO; kje = kje.Where(m => m.ESTADO == "xxx"); break; case 2: jhg = from e in db.Maqueta where (e.ESTADO != "NO CONFIRMADO") && (e.CODIGO == maqueta.CODIGO) select e.CODIGO; kje = kje.Where(m => m.ESTADO == "xxx"); break; case 3: break; case 4: break; } if (jhg.Count() == 0 && kje.Count() == 0) { db.Estado.Add(estados); } else { string d = "hola"; switch (Est) { case 1: d = "APROBACION SUPERVISOR"; break; case 6: d = "APROBACION SUPERVISOR"; break; case 2: d = "APROBACION VENDEDOR"; break; case 3: break; case 4: break; } var pol = from e in db.Estado where (e.IDMAQUETA == maqueta.CODIGO) && (e.NOMBRE == d) select e.ID; Estado est = db.Estado.Find(int.Parse(pol.First().ToString())); db.Estado.Remove(est); db.Estado.Add(estados); } } else { string d = "hola"; switch (Est) { case 1: d = "APROBACION SUPERVISOR"; break; case 6: d = "APROBACION SUPERVISOR"; break; case 2: d = "APROBACION VENDEDOR"; break; case 3: break; case 4: break; } var pol = from e in db.Estado where (e.IDMAQUETA == maqueta.CODIGO) && (e.NOMBRE == d) select e.ID; if (pol.Count() != 0) { Estado est = db.Estado.Find(int.Parse(pol.First().ToString())); db.Estado.Remove(est); } } #endregion db.SaveChanges(); if (maqueta.ESTADO == "APROBACION SUPERVISOR") { int? b = maqueta.CANTIDAD; int? a = maqueta.COSTO; int? c = null; if(b != null && a !=null){ c = a*b; } if (vendedor == null) { Usuario use = db.Usuario.Find(maqueta.IDVENDEDOR); vendedor = use.NOMBRE; } string gre = (from w in db.Taller where (w.ID == maqueta.IDTALLER) select w.NOMBRE).First(); valor(vendedor, nomusuario, 1, maqueta.URL, gre, a, c,maqueta.CANTIDAD.Value); pegarheader("inter-" + maqueta.URL); } #region ENVIO DE CORREO string titulo, correo, texto; switch (maqueta.ESTADO) { case "NO CONFIRMADO": titulo = "Se ha modificado Maqueta " + maqueta.CODIGO + " con Logo " + maqueta.LOGOTIPO; var gre = from m in db.Usuario where (m.ID == maqueta.IDVENDEDOR) select m.EMAIL; correo = gre.First().ToString(); texto = "Estimado: <br/><br/>El diseñador " + nomusuario + " ha modificado la maqueta " + maqueta.CODIGO + " y se encuentra en la espera de su aprovación."; texto = texto + "<br/><br/><a href='ygd.cl/Maqueta/Edit/" + maqueta.CODIGO + "'> Enlace </a>"; _MailService.SendEmail(titulo, correo, texto); break; case "APROBACION SUPERVISOR": titulo = "APROBACION SUPERVISOR Maqueta " + maqueta.CODIGO + " con Logo " + maqueta.LOGOTIPO; var hjk = from m in db.Usuario where (m.ID == maqueta.IDVENDEDOR) select m.EMAIL; correo = hjk.First().ToString(); texto = "Estimado: <br/><br/> El supervisor " + nomusuario + " ha aceptado la maqueta: " + maqueta.CODIGO; texto = texto + "<br/><br/><a href='ygd.cl/Maqueta/Details/" + maqueta.CODIGO + "'> Enlace </a>"; _MailService.SendEmail(titulo, correo, texto); break; case "APROBACION VENDEDOR": titulo = "APROBACION VENDEDOR Maqueta " + maqueta.CODIGO + " con Logo " + maqueta.LOGOTIPO; var tyu = from m in db.Usuario where (m.ID == maqueta.IDDISEÑADOR) select m.EMAIL; correo = tyu.First().ToString(); texto = "Estimado: <br/><br/> El vendedor " + nomusuario + " ha aceptado la maqueta: " + maqueta.CODIGO; texto = texto + "<br/><br/><a href='ygd.cl/Maqueta/Details/" + maqueta.CODIGO + "'> Enlace </a>"; _MailService.SendEmail(titulo, correo, texto); List<string> correo2 = new List<string>(); correo2 = db.Usuario.Where(r=>r.IDCARGO==6 && r.ESTADO == true /*SUPERVISOR*/).Select(r=>r.EMAIL).ToList(); titulo = "Maqueta por aprobar " + maqueta.CODIGO + " con Logo '" + maqueta.LOGOTIPO + "' de " + nomusuario; texto = "Estimado(a): <br/><br/>El vendedor " + nomusuario + " ha agregado una nueva maqueta y se encuentra en la espera de su confirmación."; texto = texto + "<br/><br/> CANTIDAD:" + maqueta.CANTIDAD.ToString(); texto = texto + "<br/> PRECIO VENTA:" + maqueta.PRECIOPRODUCTO.ToString(); int auxili = maqueta.IDCLIENTE.Value; string facebook = db.Cliente.Where(r => r.ID == auxili).Select(r => r.EMPRESA).FirstOrDefault(); texto = texto + "<br/> CLIENTE: " + facebook; texto = texto + "<br/><br/><a href='ygd.cl/Maqueta/Edit/" + maqueta.CODIGO.ToString() + "'> Enlace </a>"; _MailService.SendEmailvarioscorreos(titulo, correo2, texto); break; } #endregion return RedirectToAction("Index"); #endregion }
public ActionResult Details(string nombre, string id) { if (nombre != "") { var qwe = from a in db.Maqueta where (a.CODIGO == id) select a; Maqueta maqueta = qwe.First(); maqueta.FACTURA = nombre; Estado esta = new Estado(); esta.IDMAQUETA = maqueta.CODIGO; esta.NOMBRE = "FACTURADA"; esta.FECHA = DateTime.Now; db.Estado.Add(esta); //maqueta.ESTADO = "FACTURADA"; if (maqueta.ESTADO == "ENTREGADO A CLIENTE") { maqueta.ESTADO = "FINIQUITADO"; //ELIMINAR LA IMAGEN QUE SE USA PARA CONFIRMACION DESPUES DE FACTURAR QUE ES EL PROCESO FINAL. DeleteBlob(maqueta.URL); } db.Entry(maqueta).State = EntityState.Modified; db.SaveChanges(); string titulo, correo, texto; titulo = "FACTURADO " + maqueta.CODIGO; var tyu = from m in db.Usuario where (m.ID == maqueta.IDVENDEDOR) select m.EMAIL; correo = tyu.First().ToString(); texto = "La venta " + maqueta.CODIGO + " Se ha Facturado con el Nombre de: " + maqueta.FACTURA +". <br/> Saludos."; _MailService.SendEmail(titulo, correo, texto); } return RedirectToAction("Details"); }
public ActionResult Create(Detalle detalle, string id, string TipoFuncion) { int ec = 0; TallerBoleta tallerboleta = new TallerBoleta(); if (TipoFuncion == "Terminados a Bodega") { tallerboleta.FECHA = DateTime.Now; tallerboleta.CANTIDAD = detalle.CANTIDAD; tallerboleta.IDMAQUETA = id; var qwr = from g in db.TallerBoleta where (g.IDMAQUETA == id) select g.ACOMULADO; if (qwr.Count() == 0) { tallerboleta.ACOMULADO = detalle.CANTIDAD; } else if (qwr.Count() == 1) { tallerboleta.ACOMULADO = int.Parse(qwr.First().ToString()) + detalle.CANTIDAD; } else { List<int?> val = qwr.ToList(); tallerboleta.ACOMULADO = int.Parse(val.Last().ToString()) + detalle.CANTIDAD; } db.TallerBoleta.Add(tallerboleta); db.SaveChanges(); var pew = from v in db.TallerBoleta where (v.IDMAQUETA == id) select v.ID; List<int> vale = pew.ToList(); if (vale.Count == 1) { ec = vale.First(); } else { ec = vale.Last(); } detalle.MOVIMIENTO = ec.ToString(); } switch (TipoFuncion) { case "Enviar a Taller Desde Bodega": detalle.ORIGEN = "BODEGA-STOCK"; detalle.TIPO = "TALLER"; break; case "Taller Envia Malos a Bodega": detalle.ORIGEN = "TALLER"; detalle.TIPO = "BODEGA-MALOS"; break; case "Terminados a Bodega": detalle.ORIGEN = "TALLER"; detalle.TIPO = "BODEGA-LISTOS"; break; case "Taller Envia Sobrantes a Bodega": detalle.ORIGEN = "TALLER"; detalle.TIPO = "BODEGA-STOCK"; break; case "Entregados a Cliente": detalle.ORIGEN = "BODEGA-LISTOS"; detalle.TIPO = "CLIENTE"; break; case "Cliente devuelve Defectuosos": detalle.ORIGEN = "CLIENTE"; detalle.TIPO = "BODEGA-MALOS"; break; } var Qry = from a in db.Detalle where (a.IDMAQUETA == id) && (a.TIPO == detalle.TIPO) select a.ACUMULADO; if (Qry.Count() == 0) { detalle.ACUMULADO = detalle.CANTIDAD; var poi = from a in db.Maqueta where (a.CODIGO == id) select a; Maqueta maqueta = new Maqueta(); maqueta = poi.First(); if (detalle.TIPO == "TALLER") { maqueta.ESTADO = "TRABAJANDO EN BODEGA"; Estado estad = new Estado(); estad.FECHA = DateTime.Now; estad.IDMAQUETA = maqueta.CODIGO; estad.NOMBRE = maqueta.ESTADO; db.Estado.Add(estad); db.Entry(maqueta).State = EntityState.Modified; } } else { List<int> lis = new List<int>(); lis = Qry.ToList(); int c = lis.Last(); detalle.ACUMULADO = detalle.CANTIDAD + c; } var wer = from a in db.Maqueta where (a.CODIGO == id) select a.CANTIDAD; int e = int.Parse(wer.First().ToString()); if (e >= detalle.ACUMULADO) { detalle.FECHA = DateTime.Now; detalle.IDMAQUETA = id; if (e == detalle.ACUMULADO) { var poi = from a in db.Maqueta where (a.CODIGO == id) select a; Maqueta maqueta = new Maqueta(); maqueta = poi.First(); switch (maqueta.ESTADO) { case "TRABAJANDO EN BODEGA": maqueta.ESTADO = "ENTREGADAS A TALLER"; Estado estad = new Estado(); estad.FECHA = DateTime.Now; estad.IDMAQUETA = maqueta.CODIGO; estad.NOMBRE = maqueta.ESTADO; db.Estado.Add(estad); break; case "APROBACION SUPERVISOR": maqueta.ESTADO = "ENTREGADAS A TALLER"; Estado estadq = new Estado(); estadq.FECHA = DateTime.Now; estadq.IDMAQUETA = maqueta.CODIGO; estadq.NOMBRE = maqueta.ESTADO; db.Estado.Add(estadq); break; case "ENTREGADAS A TALLER": maqueta.ESTADO = "DEVUELTA A BODEGA"; Estado estadw = new Estado(); estadw.FECHA = DateTime.Now; estadw.IDMAQUETA = maqueta.CODIGO; estadw.NOMBRE = maqueta.ESTADO; db.Estado.Add(estadw); break; case "DEVUELTA A BODEGA": maqueta.ESTADO = "ENTREGADO A CLIENTE"; Estado estade = new Estado(); estade.FECHA = DateTime.Now; estade.IDMAQUETA = maqueta.CODIGO; estade.NOMBRE = maqueta.ESTADO; db.Estado.Add(estade); if (maqueta.FACTURA != null) { maqueta.ESTADO = "FINIQUITADO"; DeleteBlob(maqueta.URL); } break; } db.Entry(maqueta).State = EntityState.Modified; } db.Detalle.Add(detalle); db.SaveChanges(); /******************************************************/ /******************************************************/ /******************************************************/ /******************************************************/ string titulo, correo, texto; var vbn = from a in db.Maqueta where (a.CODIGO == id) select a; Maqueta maqueta2 = new Maqueta(); maqueta2 = vbn.First(); titulo = "Nuevo Movimiento de " + id; var tyu = from m in db.Usuario where (m.ID == maqueta2.IDVENDEDOR) select m.EMAIL; correo = tyu.First().ToString(); texto = "indefinido"; switch (TipoFuncion) { case "Envio de Taller Desde Bodega": texto = "Se ha enviado a taller " + detalle.CANTIDAD + "Unidades <br/>"; texto = texto + "<br/> TOTAL : " + maqueta2.CANTIDAD; texto = texto + "<br/> ENTREGADOS: " + detalle.ACUMULADO; int xz = int.Parse(maqueta2.CANTIDAD.ToString()) - int.Parse(detalle.ACUMULADO.ToString()); texto = texto + "<br/> FALTANTES : " + xz ; break; case "Taller Envia Malos a Bodega": texto = "Se han devuelto" + detalle.CANTIDAD + "Unidades malas a la bodega desde el taller"; break; case "Terminados a Bodega": texto = "Se han devuelto " + detalle.CANTIDAD + "Unidades terminadas a Bodega <br/>"; texto = texto + "<br/> TOTAL : " + maqueta2.CANTIDAD; texto = texto + "<br/> ENTREGADOS: " + detalle.ACUMULADO; int we = int.Parse(maqueta2.CANTIDAD.ToString()) - int.Parse(detalle.ACUMULADO.ToString()); texto = texto + "<br/> FALTANTES : " + we ; break; case "Taller Envia Sobrantes a Bodega": texto = "El taller a devuelto " + detalle.CANTIDAD + "Unidades sobrante a bodega"; break; case "Entregados a Cliente": texto = "Se han entregado" + detalle.CANTIDAD + "Unidades al cliente <br/>"; texto = texto + "<br/> TOTAL : " + maqueta2.CANTIDAD; texto = texto + "<br/> ENTREGADOS: " + detalle.ACUMULADO; int wi = int.Parse(maqueta2.CANTIDAD.ToString()) - int.Parse(detalle.ACUMULADO.ToString()); texto = texto + "<br/> FALTANTES : " + wi ; break; case "Cliente devuelve Defectuosos": texto = "El cliente ha devuelto " + detalle.CANTIDAD + "Unidades defectuosas"; break; } _MailService.SendEmail(titulo, correo, texto); if ( /*TipoFuncion == "Terminados a Bodega" ||*/ TipoFuncion == "Enviar a Taller Desde Bodega" /* || TipoFuncion == "Entregados a Cliente" */ ) { return RedirectToAction("Index"); } } else { ViewBag.TEXTO = "NO SE PUEDE ENVIAR; ESTA ENVIANDO MAS DE LOS NECESARIOS."; var Lst = new List<string>(); Lst.Add("Enviar a Taller Desde Bodega"); Lst.Add("Taller Envia Malos a Bodega"); Lst.Add("Terminados a Bodega"); Lst.Add("Taller Envia Sobrantes a Bodega"); Lst.Add("Entregados a Cliente"); Lst.Add("Cliente devuelve Defectuosos"); ViewBag.TipoFuncion = new SelectList(Lst); return View(); //MENSAJE DE NO SE PUEDE, POR QUE ENVIA MAS QUE LOS NECESARIOS. } return RedirectToAction("Index"); }