public List<TallaSeccion> definir(List<TallaCantidad> lista, int maximoRepeticionesDeCuerpoPermitido) { List<TallaSeccion> listaSeccion = new List<TallaSeccion>(); var entidadDesdeListaRedifinida = Util.getListaAgrupaPorCantidad(lista)[0]; var listaOrdenada = Util.ordenarDescendente(lista); int contadorSeccion = 1; int cantidadMaximaDelaTallaCantidadDos = (int)entidadDesdeListaRedifinida.cantidad; int contadorCuerpos = 0; TallaCantidad paraBanderaTallaCantidad = listaOrdenada.First(); string banderaTallaCantidad = "" + paraBanderaTallaCantidad.tallaCuello + paraBanderaTallaCantidad.tallaManga; foreach (var tallaCantidad in listaOrdenada) { if (cantidadMaximaDelaTallaCantidadDos != tallaCantidad.cantidad) { contadorCuerpos = 0; contadorSeccion = contadorSeccion + 1; cantidadMaximaDelaTallaCantidadDos = tallaCantidad.cantidad; } string valorACompararConBandera = "" + tallaCantidad.tallaCuello + tallaCantidad.tallaManga; if (banderaTallaCantidad != valorACompararConBandera) { banderaTallaCantidad = valorACompararConBandera; contadorCuerpos = 0; } if (contadorCuerpos < maximoRepeticionesDeCuerpoPermitido) { TallaSeccion seccion = new TallaSeccion(); seccion.tallCuello = tallaCantidad.tallaCuello; seccion.tallaManga = tallaCantidad.tallaManga; seccion.tallaLetra = tallaCantidad.tallaLetra; seccion.cantidad = tallaCantidad.cantidad; seccion.seccion = contadorSeccion; listaSeccion.Add(seccion); contadorCuerpos = contadorCuerpos + 1; } else { contadorSeccion = contadorSeccion + 1; TallaSeccion seccion = new TallaSeccion(); seccion.tallCuello = tallaCantidad.tallaCuello; seccion.tallaManga = tallaCantidad.tallaManga; seccion.tallaLetra = tallaCantidad.tallaLetra; seccion.cantidad = tallaCantidad.cantidad; seccion.seccion = contadorSeccion; listaSeccion.Add(seccion); contadorCuerpos = 1; } } return listaSeccion; }
private void sacarCapas(List<NumeroBultos> listaNumerosDeBultos, string listaCapas, int numeroBulto, string codigoCorte, TallaSeccion cantidad, int capa, int cantidadActualCapa) { var ArrayCapas = listaCapas.Split(','); string letraDeCapa = ""; letraDeCapa = ArrayCapas[capa]; if (cantidadActualCapa <= MaximoSplitPorCapa) { var hojaBulto = new NumeroBultos(); hojaBulto.numeroBulto = numeroBulto; hojaBulto.codigoCorte = codigoCorte; hojaBulto.numeroSeccion = cantidad.seccion; hojaBulto.capa = letraDeCapa; hojaBulto.tallCuello = cantidad.tallCuello; hojaBulto.tallaManga = cantidad.tallaManga; hojaBulto.tallaCompleta = "(" + cantidad.tallCuello + "-" + cantidad.tallaManga + ")" + cantidad.tallaLetra; hojaBulto.cantidadPorCapa = cantidadActualCapa; listaNumerosDeBultos.Add(hojaBulto); } else { int cantidaSeguienteCapa = cantidadActualCapa - MaximoSplitPorCapa; var hojaBulto = new NumeroBultos(); hojaBulto.numeroBulto = numeroBulto; hojaBulto.codigoCorte = codigoCorte; hojaBulto.numeroSeccion = cantidad.seccion; hojaBulto.capa = letraDeCapa; hojaBulto.tallCuello = cantidad.tallCuello; hojaBulto.tallaManga = cantidad.tallaManga; hojaBulto.tallaCompleta = "(" + cantidad.tallCuello + "-" + cantidad.tallaManga + ")" + cantidad.tallaLetra; hojaBulto.cantidadPorCapa = MaximoSplitPorCapa; listaNumerosDeBultos.Add(hojaBulto); int siguienteCapa = capa + 1; sacarCapas(listaNumerosDeBultos, listaCapas, numeroBulto, codigoCorte, cantidad, siguienteCapa, cantidaSeguienteCapa); } }