private void btn_Tejer_Click(object sender, EventArgs e) { Hilado hilado = dgv_Hilados.SelectedRows[0].DataBoundItem as Hilado; int cantUtilizada = int.Parse(Interaction.InputBox("¿Cuánta cantidad del hilado seleccionado desea tejer?")); int areaTela = int.Parse(Interaction.InputBox("¿Cuál es el área (en centímetros cuadrados) resultante?")); // Se podría agregar un intérpreter para entender cuando se escribe m2, o mm2 y pasarlo a cm2 por ejemplo ? Tejido tejido = new Tejido(); string codigoTela = Interaction.InputBox("¿Cuál será el código de la tela resultante?"); controller.Tejer(cantUtilizada, areaTela, hilado, codigoTela); dgv_Hilados.DataSource = null; dgv_Hilados.DataSource = controller.GetListHilado(); dgv_Telas.DataSource = null; dgv_Telas.DataSource = controller.GetListTela(); }
public void TestTejido() { Controller controller = new Controller(); TejidoGestor tejidoGestor = new TejidoGestor(); bool condicion1 = false; bool condicion2 = false; bool condicion3 = false; int cantUtilizada = 1200; int areaTela = 40; controller.AltaHilado("PRUEBA", "HILADO DE PRUEBA", "3000", "4"); Hilado hilado = controller.GetListHilado().Find(h => h.Codigo == "PRUEBA"); string codigoTela = "TELA PRUEBA"; controller.Tejer(cantUtilizada, areaTela, hilado, codigoTela); if (hilado.Cantidad == 3000 - cantUtilizada) { condicion1 = true; } List <Tejido> tejidos = tejidoGestor.GetList(); Tejido tejidoResultante = tejidos.Find(t => t.CantidadUtilizada == cantUtilizada && t.AreaTela == areaTela && t.Hilado.Codigo == hilado.Codigo); if (tejidoResultante != null) { condicion2 = true; } Tela telaResultante = controller.GetListTela().Find(t => t.Codigo == codigoTela); if (telaResultante != null) { condicion3 = true; } Cleaner cleaner = new Cleaner(); cleaner.Clean("Tejido", "Id = " + tejidoResultante.Id); cleaner.Clean("Hilado", "Id = " + hilado.Id); cleaner.Clean("Tela", "Id = " + telaResultante.Id); Assert.IsTrue(condicion1 && condicion2 && condicion3); }
public void Tejer(Tejido tejido, string codigoTela) { tejido.Codigo = tejido.Hilado.Codigo + "_TJD"; tejido.Hilado.Cantidad -= tejido.CantidadUtilizada; tejido.Tiempo = tejido.CantidadUtilizada * decimal.ToInt32(decimal.Floor(tejido.Hilado.Peso)) / 160; // Uso 160 porque es la velocidad promedio de los telares que encontré. La fórmula sería Tiempo = (tamaño + peso) / velocidad de tejido. int telasObtenidas = tejido.CantidadUtilizada / tejido.AreaTela; HiladoGestor hiladoGestor = new HiladoGestor(); hiladoGestor.Modificar(tejido.Hilado); TelaGestor telaGestor = new TelaGestor(); List <Tela> telasExistentes = telaGestor.GetListTela(); if (telasExistentes.Exists(t => t.Codigo == codigoTela)) { Tela existente = telaGestor.GetTela(telasExistentes.Find(t => t.Codigo == codigoTela)); existente.Cantidad += telasObtenidas; telaGestor.Modificar(existente); } else { telaGestor.Alta(new Tela(codigoTela, "Proviene de " + tejido.Hilado.Descripcion + ".", telasObtenidas, "", false)); // cada 20 metros de tela utilizadas se crea 1 tela. } bd.Alta(tejido); }
public Tejido GetTejido(Tejido tejido) { return(bd.Get(tejido)); }
public void Baja(Tejido tejido) { bd.Baja(tejido); }