// // GET: /Planejamento/Create public ActionResult Create() { Planejamento planejamento = new Planejamento(); ViewBag.CodigoItem = new SelectList(db.Material, "Id", "Codigo"); ViewBag.Status = new SelectList(db.StatusPlanejamento, "Id", "Nome", db.StatusPlanejamento.Single(s => s.Sigla == "P").Id); planejamento.DataInicio = 0; return View(planejamento); }
public ActionResult Create(Planejamento planejamento) { if (ModelState.IsValid) { db.Planejamento.AddObject(planejamento); db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.CodigoItem = new SelectList(db.Material, "Id", "Codigo", planejamento.CodigoItem); ViewBag.Status = new SelectList(db.StatusPlanejamento, "Id", "Nome", planejamento.Status); return View(planejamento); }
public ActionResult Index(int? Material, int Quantidade, int Data) { if (!Material.HasValue) { return null; } Material material = db.Material.Single(m => m.Id == Material); for (int Ordem = 0; Ordem <= db.DependenciaMaterial.Max(m => m.Ordem); Ordem++) { // se for o Material "raiz", o sistema só deve gerar o planejamento de liberação if (Ordem == 0) { Estoque estoque = db.Estoque.Single(e => e.IdMaterial == material.Id); int QtdeSobra = estoque.Quantidade - Quantidade; if (QtdeSobra < material.EstoqueMinimo) { int TotalFalta = material.EstoqueMinimo - QtdeSobra; int Multiplicador = int.Parse(Math.Ceiling((double)TotalFalta / (double)material.LoteReposicao).ToString()); Planejamento planejamento = new Planejamento() { CodigoOrdem = material.Codigo + "_" + (Data - material.LeadTime).ToString(), CodigoItem = material.Id, DataPrevistaTermino = Data, DataInicio = Data - material.LeadTime, QuantidadeOrdem = material.LoteReposicao * Multiplicador, Status = db.StatusPlanejamento.Single(s => s.Sigla == "P").Id }; Movimentacao movimentacao = new Movimentacao() { IdItem = material.Id, IdTipoTransacao = db.TipoTransacao.Single(t => t.Sigla == "SA").Id, QuantidadeMovimentada = Quantidade, Data = Data }; db.Planejamento.AddObject(planejamento); db.Movimentacao.AddObject(movimentacao); db.SaveChanges(); } } else { List<DependenciaMaterial> listDependencia = db.DependenciaMaterial.Where(d => d.Ordem == Ordem).ToList(); foreach (DependenciaMaterial dependencia in listDependencia) { material = db.Material.Single(m => m.Id == dependencia.IdMaterialFilho); Estoque estoque = db.Estoque.Single(e => e.IdMaterial == material.Id); // para cada material filho, pegar os planejamentos do material pai List<Planejamento> listPlanejamento = db.Planejamento.Where(p => p.Material.Id == dependencia.IdMaterialPai).ToList(); foreach (Planejamento planejamentoPai in listPlanejamento) { int NecessidadeBruta = planejamentoPai.QuantidadeOrdem * Convert.ToInt32(dependencia.Quantidade); int QtdeSobra = estoque.Quantidade - NecessidadeBruta; if (QtdeSobra < material.EstoqueMinimo) { int TotalFalta = material.EstoqueMinimo - QtdeSobra; int Multiplicador = int.Parse(Math.Ceiling((double)TotalFalta / (double)material.LoteReposicao).ToString()); Planejamento planejamentoFilho = new Planejamento() { CodigoOrdem = material.Codigo + "_" + (planejamentoPai.DataInicio - material.LeadTime).ToString(), CodigoItem = material.Id, DataPrevistaTermino = planejamentoPai.DataInicio, DataInicio = planejamentoPai.DataInicio - material.LeadTime, QuantidadeOrdem = material.LoteReposicao * Multiplicador, Status = db.StatusPlanejamento.Single(s => s.Sigla == "P").Id }; Movimentacao movimentacao = new Movimentacao() { IdItem = material.Id, IdTipoTransacao = db.TipoTransacao.Single(t => t.Sigla == "SA").Id, QuantidadeMovimentada = NecessidadeBruta, Data = planejamentoFilho.DataPrevistaTermino.Value }; db.Planejamento.AddObject(planejamentoFilho); db.SaveChanges(); db.Movimentacao.AddObject(movimentacao); db.SaveChanges(); } } } } } /* Planejamento planejamentoAnterior = new Planejamento() { QuantidadeOrdem = Quantidade, DataInicio = Data }; int Multiplicador = 1; if (Ordem > 0) { List<DependenciaMaterial> dependencia = db.DependenciaMaterial.Where(d => d.IdMaterialFilho == material.Id).ToList<DependenciaMaterial>(); } Estoque estoque = db.Estoque.Single(e => e.IdMaterial == material.Id); Planejamento planejamentoNovo = new Planejamento() { QuantidadeOrdem = planejamentoAnterior.QuantidadeOrdem, DataPrevistaTermino = planejamentoAnterior.DataInicio, DataInicio = planejamentoAnterior.DataInicio - material.LeadTime, CodigoItem = material.Id }; */ var materiais = from M in db.Material join D in db.DependenciaMaterial on M.Id equals D.IdMaterialFilho where D.Ordem == 0 orderby M.Codigo select M; ViewBag.Material = new SelectList(materiais, "Id", "Codigo"); ViewBag.Mensagem = "Processamento efetuado com sucesso!"; return View(); }
public ActionResult Edit(Planejamento planejamento) { if (ModelState.IsValid) { db.Planejamento.Attach(planejamento); db.ObjectStateManager.ChangeObjectState(planejamento, EntityState.Modified); db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.CodigoItem = new SelectList(db.Material, "Id", "Codigo", planejamento.CodigoItem); ViewBag.Status = new SelectList(db.StatusPlanejamento, "Id", "Nome", planejamento.Status); return View(planejamento); }
/// <summary> /// Deprecated Method for adding a new object to the Planejamento EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. /// </summary> public void AddToPlanejamento(Planejamento planejamento) { base.AddObject("Planejamento", planejamento); }
/// <summary> /// Create a new Planejamento object. /// </summary> /// <param name="id">Initial value of the Id property.</param> /// <param name="codigoOrdem">Initial value of the CodigoOrdem property.</param> /// <param name="quantidadeOrdem">Initial value of the QuantidadeOrdem property.</param> /// <param name="dataInicio">Initial value of the DataInicio property.</param> /// <param name="codigoItem">Initial value of the CodigoItem property.</param> /// <param name="status">Initial value of the Status property.</param> public static Planejamento CreatePlanejamento(global::System.Int32 id, global::System.String codigoOrdem, global::System.Int32 quantidadeOrdem, global::System.Int32 dataInicio, global::System.Int32 codigoItem, global::System.Int32 status) { Planejamento planejamento = new Planejamento(); planejamento.Id = id; planejamento.CodigoOrdem = codigoOrdem; planejamento.QuantidadeOrdem = quantidadeOrdem; planejamento.DataInicio = dataInicio; planejamento.CodigoItem = codigoItem; planejamento.Status = status; return planejamento; }