public ActionResult Create([Bind(Include = "IdPieza,Nombre,SexoPieza,CantidadTela")] Pieza p, PrecioPieza[] precioPieza, Medida[] medida, Talla[] talla, PiezaAccesorio[] piezaAccesorio) { try { //Agregando la Pieza p.cod_RA = Cod_RA.cod_RA(); db.Pieza.Add(p); //Agregando el precio de la pieza for (int i = 0; i < precioPieza.Length; i++) { PrecioPieza pp = precioPieza[i]; pp.IdPieza = p.IdPieza; pp.cod_RA = Cod_RA.cod_RA(); db.PrecioPieza.Add(pp); } //Agregando todas las tallas a la Pieza for (int i = 0; i < talla.Length; i++) { PiezaTalla pt = new PiezaTalla(); pt.IdTalla = talla[i].IdTalla; pt.IdPieza = p.IdPieza; pt.FechaCreacion = System.DateTime.Now; db.PiezaTalla.Add(pt); } //Agregando todas las medidas a la pieza for (int i = 0; i < medida.Length; i++) { PiezaMedida pm = new PiezaMedida(); pm.IdMedida = medida[i].IdMedida; pm.IdPieza = p.IdPieza; pm.FechaCreacion = System.DateTime.Now; db.PiezaMedida.Add(pm); } //Agregando todos los insumos de produccion de la pieza for (int i = 0; i < piezaAccesorio.Length; i++) { piezaAccesorio[i].IdPieza = p.IdPieza; piezaAccesorio[i].FechaCreacion = System.DateTime.Now; db.PiezaAccesorio.Add(piezaAccesorio[i]); } db.SaveChanges(); return(Json(new { Message = clsReferencias.Exito })); } catch (Exception ex) { return(Json(new { Message = new clsException(ex).Message() })); } }
public ActionResult Edit([Bind(Include = "IdPieza,Nombre,SexoPieza,CantidadTela")] Pieza p, PrecioPieza[] precioPieza, Medida[] medida, Talla[] talla, PiezaAccesorio[] piezaAccesorio) { try { //Modificando la Pieza Pieza pieza = db.Pieza.Find(p.IdPieza); pieza.Nombre = p.Nombre; pieza.SexoPieza = p.SexoPieza; pieza.CantidadTela = p.CantidadTela; db.Entry(pieza).State = EntityState.Modified; List <PrecioPieza> pplist = db.PrecioPieza.Where(w => w.IdPieza == p.IdPieza && w.regAnulado == false).ToList(); //Agregando el precio de la pieza PrecioPieza pp = null; for (int i = 0; i < precioPieza.Length; i++) { if (precioPieza[i].IdPrecioPieza == 0) //Agregar nuevo detalle { pp = precioPieza[i]; pp.IdPieza = p.IdPieza; pp.NombreFuncion = precioPieza[i].NombreFuncion; pp.cod_RA = Cod_RA.cod_RA(); db.PrecioPieza.Add(pp); } else { pp = db.PrecioPieza.Find(precioPieza[i].IdPrecioPieza); pp.PrecioMO = precioPieza[i].PrecioMO; pp.Duracion = precioPieza[i].Duracion; db.Entry(pp).State = EntityState.Modified; pplist = pplist.Where(w => w.IdPrecioPieza != pp.IdPrecioPieza).ToList(); } db.SaveChanges(); } //Elimando las funciones que no retornaron pp = null; foreach (PrecioPieza pre in pplist) { pp = db.PrecioPieza.Find(pre.IdPrecioPieza); pp.regAnulado = true; db.Entry(pp).State = EntityState.Modified; } db.SaveChanges(); //Agregando todas las tallas a la Pieza List <PiezaTalla> piezastallas = db.PiezaTalla.Where(w => w.IdPieza == p.IdPieza).ToList(); PiezaTalla pt = null; for (int i = 0; i < talla.Length; i++) { if (piezastallas.Where(w => w.IdTalla == talla[i].IdTalla).ToList().Count == 0) { pt = new PiezaTalla(); pt.IdTalla = talla[i].IdTalla; pt.IdPieza = pieza.IdPieza; pt.FechaCreacion = System.DateTime.Now; db.PiezaTalla.Add(pt); db.SaveChanges(); } else { piezastallas = piezastallas.Where(w => w.IdTalla != talla[i].IdTalla).ToList(); } } foreach (PiezaTalla piezaT in piezastallas) { pt = db.PiezaTalla.Find(new Object[] { piezaT.IdPieza, piezaT.IdTalla }); db.PiezaTalla.Remove(pt); } db.SaveChanges(); //Agregando todas las medidas a la pieza List <PiezaMedida> piezasmedidas = db.PiezaMedida.Where(w => w.IdPieza == p.IdPieza).ToList(); PiezaMedida pm = null; for (int i = 0; i < medida.Length; i++) { if (piezasmedidas.Where(w => w.IdMedida == medida[i].IdMedida).ToList().Count == 0) { pm = new PiezaMedida(); pm.IdMedida = medida[i].IdMedida; pm.IdPieza = pieza.IdPieza; pm.FechaCreacion = System.DateTime.Now; db.PiezaMedida.Add(pm); db.SaveChanges(); } else { piezasmedidas = piezasmedidas.Where(w => w.IdMedida != medida[i].IdMedida).ToList(); } } foreach (PiezaMedida piezaM in piezasmedidas) { pm = db.PiezaMedida.Find(new Object[] { piezaM.IdPieza, piezaM.IdMedida }); db.PiezaMedida.Remove(pm); } //Agregando todos los insumos de produccion de la pieza List <PiezaAccesorio> piezasAccesorios = db.PiezaAccesorio.Where(w => w.IdPieza == p.IdPieza).ToList(); PiezaAccesorio pa = null; if (piezaAccesorio != null) { for (int i = 0; i < piezaAccesorio.Length; i++) { if (piezasAccesorios.Where(w => w.IdAccesorio == piezaAccesorio[i].IdAccesorio).ToList().Count == 0) { piezaAccesorio[i].IdPieza = p.IdPieza; piezaAccesorio[i].FechaCreacion = System.DateTime.Now; db.PiezaAccesorio.Add(piezaAccesorio[i]); } else { pa = db.PiezaAccesorio.Find(new object[] { piezaAccesorio[i].IdPieza, piezaAccesorio[i].IdAccesorio }); pa.Cantidad = piezaAccesorio[i].Cantidad; db.Entry(pa).State = EntityState.Modified; piezasAccesorios = piezasAccesorios.Where(w => w.IdAccesorio != piezaAccesorio[i].IdAccesorio).ToList(); } db.SaveChanges(); } //foreach (PiezaAccesorio piezaA in piezasAccesorios) //{ // pa = db.PiezaAccesorio.Find(new Object[] { piezaA.IdPieza, piezaA.IdAccesorio }); // db.PiezaAccesorio.Remove(pa); //} db.PiezaAccesorio.RemoveRange(piezasAccesorios.ToArray()); db.SaveChanges(); } return(Json(new { Message = clsReferencias.Exito })); } catch (Exception ex) { return(Json(new { Message = new clsException(ex).Message() })); } }