private void button1_Click(object sender, EventArgs e) { try { int index = dgvProducto.SelectedRows[0].Index; int idProducto = int.Parse(dgvProducto.Rows[index].Cells[0].Value.ToString()); Producto prod = Producto.GetProductoById(idProducto); int numMeses = int.Parse(tbMeses.Text); if (bPersecución.Checked) { EstrategiaPersecucion persecucion = new EstrategiaPersecucion(prod, numMeses); List <Fila> resultado = persecucion.getPlanAgregado(); int numPeriodo = int.Parse(tbMeses.Text); rellenarPlaneacion(resultado, numPeriodo); lTotal.Text = "Total: " + Math.Round(persecucion.CostoTotal, 2); } else if (bFuerzasNiveladas.Checked) { FuerzaNivelada fn = new FuerzaNivelada(numMeses, prod, Empresa.GetEmpresa()); List <Fila> resultado = fn.getPlanAgregado(); rellenarPlaneacion(resultado, numMeses); lTotal.Text = "Total: " + Math.Round(fn.CostoTotal, 2); } else if (bOutsourcing.Checked) { Outsourcing os = new Outsourcing(prod, numMeses); List <Fila> resultado = os.getPlanAgregado(); rellenarPlaneacion(resultado, numMeses); lTotal.Text = "Total: " + Math.Round(os.CostoTotal, 2); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void btnCalcular_Click(object sender, EventArgs e) { List <double> demanda = new List <double>(); List <double> diasHabiles = new List <double>(); Producto producto = new Producto(); Empresa empresa = new Empresa(); int numPeriodos = dtg_semanas.Rows[0].Cells.Count; for (int j = 0; j < numPeriodos; j++) { if (j == 0) { //se evita que entre en los campos de Demada y Dias Laborados } else { try { string sdemanda = dtg_semanas.Rows[0].Cells[j].Value.ToString(); string sdiasHabiles = dtg_semanas.Rows[1].Cells[j].Value.ToString(); demanda.Add(double.Parse(sdemanda)); diasHabiles.Add(double.Parse(sdiasHabiles)); } catch (Exception ex) { MessageBox.Show(ex.Message); dtg_semanas.Rows.Clear(); dtg_semanas.Columns.Clear(); return; } } } producto.CostoUnitario = double.Parse(tbCostoDeProducción.Text); producto.CostoMantenimiento = double.Parse(tbMantenimiento.Text); empresa.CostoContratacion = double.Parse(tbCostoContratación.Text); producto.InventarioInicial = double.Parse(tbInventarioInicial.Text); empresa.CostoSubContratacion = double.Parse(tbCostoDeSubContratación.Text); empresa.CostoDespido = double.Parse(tbCostoDeDespido.Text); producto.HorasRequeridas = double.Parse(tbHorasRequeridas.Text); producto.StockSeguridad = double.Parse(tbStockSeguridad.Text); producto.CostoFaltante = double.Parse(tbCostoFaltante.Text); producto.CostoHrs = double.Parse(tbCostoHorasNormal.Text); producto.CostoHrsExtras = double.Parse(tbCostoHorasExtras.Text); empresa.FuerzaLaboral = double.Parse(tbFuerzaLaboral.Text); numPeriodos--; if (bPersecución.Checked) { EstrategiaPersecucion ep = new EstrategiaPersecucion(producto, numPeriodos); ep.E = empresa; List <Fila> resultado = ep.getPlanAgregadoSinBD(producto, diasHabiles, demanda, empresa); rellenarPlaneacion(resultado, numPeriodos); lTotal.Text = "Total: " + Math.Round(ep.CostoTotal, 2); } else if (bFuerzasNiveladas.Checked) { FuerzaNivelada fn = new FuerzaNivelada(numPeriodos, producto, demanda.ToArray(), diasHabiles.ToArray(), empresa); List <Fila> resultado = fn.getPlanAgregado(); rellenarPlaneacion(resultado, numPeriodos); lTotal.Text = "Total: " + Math.Round(fn.CostoTotal, 2); } else if (bOutsourcing.Checked) { Outsourcing os = new Outsourcing(demanda.ToArray(), diasHabiles.ToArray(), producto, numPeriodos, empresa); List <Fila> resultado = os.getPlanAgregado(); rellenarPlaneacion(resultado, numPeriodos); lTotal.Text = "Total: " + Math.Round(os.CostoTotal, 2); } }