public ActionResult Imprimir2(FormCollection formulario, string GUIA) { string TEXTO = "<h2>PRODUCTOS RETIRO BODEGAL-PROBAG SIN LOGO</h2>"; TEXTO = "<table><tr><th>DESCRIPCION</th><th>CAJAS</th><th>CODIGO</th><th>UNI. x CAJA</th><th>CANT. TOTAL</th><th>SOBRANTES</th><th>GUIA</th><th>NOTA VENTA</th><th>VENDEDOR</th><th>STOCK</th></tr>"; List<Datos2> datos = new List<Datos2>(); IValueProvider valueProvider = formulario.ToValueProvider(); for (int i = 2; i < formulario.Count; i++) { Datos2 dato = new Datos2(); //PEDIDOS A BODEGAL int valor = int.Parse(formulario.Keys[i].ToString()); Maqueta2 maqueta = db.Maqueta2.Find(valor); maqueta.ESTADO = "PEDIDOS A BODEGAL"; db.Entry(maqueta).State = EntityState.Modified; 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.IDNOTAVENTA; detalle.MOVIMIENTO = formulario.Keys[0].ToString(); detalle.ORIGEN = "BODEGAL"; Producto producto = db.Producto.Find(maqueta.IDPRODUCTO); int cantidad = maqueta.CANTIDAD.Value; if (cantidad < producto.STOCKLOCAL.Value) { cantidad = 0; producto.STOCKLOCAL = producto.STOCKLOCAL.Value - cantidad; } else { cantidad = cantidad - producto.STOCKLOCAL.Value; producto.STOCKLOCAL = 0; } int unicajas = producto.UNIDADESXCAJA.Value; int entero = cantidad / unicajas; int sobra = cantidad % unicajas; if (sobra != 0) { entero++; } dato.NombrEProductO = maqueta.Producto.NOMBRE; dato.CajaS = entero; dato.CodigOProductO = maqueta.Producto.CODIGO; dato.UnidadeSXCajA = unicajas; dato.CantidaD = maqueta.CANTIDAD.Value; dato.GuiA = GUIA; dato.Cliente = maqueta.NotaVenta.Cliente.EMPRESA; dato.NotaVentA = maqueta.IDNOTAVENTA; dato.SobrantE = producto.UNIDADESXCAJA.Value - sobra; dato.VendedoR = maqueta.Usuario.NOMBRE; //sobra = maqueta.Producto.CODIGO.Length; //char[] caracteres = new char[sobra]; //for (int g = 0; g < sobra; g++) //{ // caracteres[i] = maqueta.Producto.CODIGO[i]; //} //DESCONTAR DE STOCK producto.STOCK = producto.STOCK - entero; if (sobra != 0) { producto.STOCKLOCAL = producto.STOCKLOCAL + sobra; } db.Entry(producto).State = EntityState.Modified; db.SaveChanges(); dato.StocK = producto.STOCK.Value; datos.Add(dato); 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); db.SaveChanges(); TEXTO = TEXTO + "<tr><td>" + dato.NombrEProductO + "</td><td>" + dato.CajaS + "</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.NotaVentA + "</td><td>" + dato.VendedoR + "</td><td>" + dato.StocK + "</td></tr>"; } List<string> correos = db.Usuario.Where(r => r.IDCARGO == 8 || r.IDCARGO == 1).Select(r => r.EMAIL).ToList(); _MailService.SendEmailvarioscorreos("Pedido a Bodegal SIN LOGO", correos, TEXTO); Datos2 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 + "img4.jpg", ImageFormat.Jpeg); return View(datos.ToList()); }
public ActionResult Imprimir3(FormCollection formulario, string GUIA) { List<Maqueta4> lista = new List<Maqueta4>(); IValueProvider valueProvider = formulario.ToValueProvider(); for (int i = 2; i < formulario.Count; i++) { int valor = int.Parse(formulario.Keys[i].ToString()); Maqueta4 maqueta = db.Maqueta4.Find(valor); maqueta.MOVIMIENTO = GUIA; db.Entry(maqueta).State = EntityState.Modified; db.SaveChanges(); Producto producto = db.Producto.Find(maqueta.IDPRODUCTO); producto.STOCK= producto.STOCK+maqueta.CANTIDAD; db.Entry(producto).State = EntityState.Modified; db.SaveChanges(); Bodegal bodegal = new Bodegal(); bodegal.Guia = int.Parse(GUIA); bodegal.Fecha = DateTime.Now; bodegal.Movido = maqueta.CANTIDAD.Value; bodegal.Sobrantes = 0; bodegal.Stock = producto.STOCK.Value; bodegal.Donde = false; bodegal.FkProducto = producto.ID; db.Bodegal.Add(bodegal); db.SaveChanges(); lista.Add(maqueta); } return View(lista); }
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()); }