Beispiel #1
0
        /// <summary>
        /// Ejecuta un procedimiento DAL de Simulación Detalle, y el resultado lo recorre para acceder a sus datos y construir
        /// una lista de tipo SimulacionDetDTO.
        /// </summary>
        /// <param name="contrato">Número de Contrato</param>
        /// <param name="modelos">Lista genérica (string) de modelos de prenda</param>
        /// <returns>Lista genérica de tipo SimulacionDetDTO con el detalle de la simulación.</returns>
        public List <SimulacionDetDTO> ListarSimulacionMpDetalle(int contrato, List <string> modelos)
        {
            DataTable dtSimulacionDetalle = _simulacionDal.SelectSimulacionDetalleAlternativo(contrato, modelos);
            var       _listSimulacion     = new List <SimulacionDetDTO>();

            foreach (DataRow fila in dtSimulacionDetalle.Rows)
            {
                var SimulacionDTO = new SimulacionDetDTO()
                {
                    NumContrato   = int.Parse(fila["nroContrato"].ToString()),
                    Correlativo   = int.Parse(fila["Correlativo"].ToString()),
                    NroSimulacion = fila["codSimulacion"].ToString(),
                    NombreMaquina = fila["Maquina"].ToString(),
                    Color         = fila["colorBase"].ToString(),
                    CodProducto   = fila["codProducto"].ToString(),
                    DescProducto  = fila["Material"].ToString(),
                    Modelo        = fila["Modelo"].ToString(),
                    KilosSimulado = decimal.Parse(fila["kilosSimulado"].ToString()),
                    PorSeguridad  = decimal.Parse(fila["porAdicional"].ToString()),
                    FechaIngreso  = DateTime.Parse(fila["fechaIngreso"].ToString()),
                    HoraIngreso   = fila["horaIngreso"].ToString(),
                    Usuario       = fila["Usuario"].ToString()
                };
                _listSimulacion.Add(SimulacionDTO);
            }
            return(_listSimulacion);
        }
Beispiel #2
0
        /// <summary>
        /// Ejecuta una consulta de inserción en la tabla PSIAA.Simulacion_Detalle.
        /// </summary>
        /// <param name="simulacionDetDto">Objeto de tipo SimulacionDetDTO</param>
        /// <returns>Variable de tipo int con la cantidad de registros ingresados.</returns>
        public int InsertSimulacionDetalleAlternativo(SimulacionDetDTO simulacionDetDto)
        {
            List <SqlParameter> _sqlParam = new List <SqlParameter>();
            string query = @"
                insert into PSIAA.Simulacion_Detalle values(
                    @correlativo,
	                @numcontrato, @numsimulacion, 
                    @maquina, @colorbase, @codproducto, 
	                @material, @modelo, @kilossimulado, @poradicional,
                    @kilostotales, @fechaingreso, @horaingreso, @usuario 
                )";

            _sqlParam.Add(new SqlParameter("@correlativo", SqlDbType.Int)
            {
                Value = simulacionDetDto.Correlativo
            });
            _sqlParam.Add(new SqlParameter("@numcontrato", SqlDbType.Int)
            {
                Value = simulacionDetDto.NumContrato
            });
            _sqlParam.Add(new SqlParameter("@numsimulacion", SqlDbType.VarChar)
            {
                Value = simulacionDetDto.NroSimulacion
            });
            _sqlParam.Add(new SqlParameter("@maquina", SqlDbType.VarChar)
            {
                Value = simulacionDetDto.NombreMaquina
            });
            _sqlParam.Add(new SqlParameter("@colorbase", SqlDbType.VarChar)
            {
                Value = simulacionDetDto.Color
            });
            _sqlParam.Add(new SqlParameter("@codproducto", SqlDbType.VarChar)
            {
                Value = simulacionDetDto.CodProducto
            });
            _sqlParam.Add(new SqlParameter("@material", SqlDbType.VarChar)
            {
                Value = simulacionDetDto.DescProducto
            });
            _sqlParam.Add(new SqlParameter("@modelo", SqlDbType.VarChar)
            {
                Value = simulacionDetDto.Modelo
            });
            _sqlParam.Add(new SqlParameter("@kilossimulado", SqlDbType.Decimal)
            {
                Value = simulacionDetDto.KilosSimulado
            });
            _sqlParam.Add(new SqlParameter("@poradicional", SqlDbType.Decimal)
            {
                Value = simulacionDetDto.PorSeguridad
            });
            _sqlParam.Add(new SqlParameter("@kilostotales", SqlDbType.Decimal)
            {
                Value = simulacionDetDto.TotalKilos
            });
            _sqlParam.Add(new SqlParameter("@fechaingreso", SqlDbType.Date)
            {
                Value = simulacionDetDto.FechaIngreso
            });
            _sqlParam.Add(new SqlParameter("@horaingreso", SqlDbType.VarChar)
            {
                Value = simulacionDetDto.HoraIngreso
            });
            _sqlParam.Add(new SqlParameter("@usuario", SqlDbType.VarChar)
            {
                Value = simulacionDetDto.Usuario
            });
            return(_trans.ExecuteQuery(query, _sqlParam));
        }
Beispiel #3
0
        /// <summary>
        /// Ejecuta un procedimiento BLL de Detalle de Contrato agrupado para poder calcular los kilos llamando a otro
        /// procedimiento BLL (Lanzamiento) de Cálculo de kilos por Contrato.
        /// Recorre el Detalle del contrato para evaluar si el color tiene combinación o es color entero, para ambos,
        /// se ejecuta segun sea el caso los procedimientos DAL de Productos por Combinacion y Productos por Color Unitario.
        /// Con ambos resultados de producto se crea un objeto de tipo SimulacionDetDTO, adjuntando datos de máquina de producción
        /// y kilos calculados, y se procede a listarlos.
        /// </summary>
        /// <param name="contrato">Número de Contrato</param>
        /// <param name="usuario">Nombre de usuario</param>
        /// <param name="modelos">Lista genércia (string) de modelos de prenda</param>
        /// <param name="porAdicional">Porcentaje Adicional al cálculo</param>
        /// <returns>Lista genérica de tipo SimulacionDetDTO con el Cálculo de Materia Prima.</returns>
        public List <SimulacionDetDTO> ListarCalculoMateriaPrima(int contrato, string usuario, List <string> modelos, decimal porAdicional)
        {
            List <SimulacionDetDTO>   listSimulacionCalculo = new List <SimulacionDetDTO>();
            List <ContratoDetalleDTO> _listContratoDet      = _contratoBll.ListarDetalleContrato(contrato, true);

            //Filtrar contrato por modelos seleccionados
            _listContratoDet = _listContratoDet.Where(x => modelos.Contains(x.ModeloAA.Trim())).ToList();

            List <MaquinaDTO> _listMaquinas = _maquinaBll.ListarMaquinas();
            int    item           = 0;
            string modeloAnterior = string.Empty;

            //Ordenar por Modelo
            _listContratoDet = _listContratoDet.OrderBy(x => x.ModeloAA).ToList();

            //Correlativo de Simulacion
            int _correlativo = int.Parse(_simulacionDal.CorrelativoSimulacion(contrato)) + 1;

            foreach (var contratoDet in _listContratoDet)
            {
                if (_listContratoDet.IndexOf(contratoDet) == 0)
                {
                    modeloAnterior = contratoDet.ModeloAA;
                    item           = 1;
                }
                if (modeloAnterior != contratoDet.ModeloAA)
                {
                    item           = item + 1;
                    modeloAnterior = contratoDet.ModeloAA;
                }
                decimal kilos         = _lanzamientoBll.CalcularKilosPorContrato(contratoDet);
                string  maquina       = _listMaquinas.Find(x => x.Codigo == contratoDet.Linea.Trim()).Abreviacion;
                string  nombreMaquina = _listMaquinas.Find(x => x.Codigo == contratoDet.Linea.Trim()).Nombre;

                if (contratoDet.CodColor.Trim().Substring(0, 2) == "C0")
                {
                    List <string[]> productos = ListarProductosCombo(contratoDet.ModeloAA.Trim(), contratoDet.CodColor.Trim());
                    foreach (string[] prod in productos)
                    {
                        var simulacionDetDesplegado = new SimulacionDetDTO()
                        {
                            NumContrato   = contratoDet.Numero,
                            Correlativo   = _correlativo,
                            NroSimulacion = contratoDet.Numero.ToString() + maquina + ((char)(item + 64)).ToString(),
                            NombreMaquina = nombreMaquina,
                            Color         = contratoDet.CodColor,
                            CodProducto   = prod[0],
                            DescProducto  = prod[1],
                            Modelo        = contratoDet.ModeloAA.Trim(),
                            KilosSimulado = Math.Round(kilos * (decimal.Parse(prod[2]) / 100), 3),
                            PorSeguridad  = porAdicional,
                            Usuario       = usuario,
                            FechaIngreso  = DateTime.Now,
                            HoraIngreso   = string.Concat(DateTime.Now.ToString("HH:mm:ss"))
                        };
                        listSimulacionCalculo.Add(simulacionDetDesplegado);
                    }
                }
                else
                {
                    string[] prodMaterialUni = ProductoColorUnitario(contratoDet.ModeloAA.Trim());
                    if (prodMaterialUni.Length > 1)
                    {
                        var simulacionDet = new SimulacionDetDTO()
                        {
                            NumContrato   = contratoDet.Numero,
                            Correlativo   = _correlativo,
                            NroSimulacion = contratoDet.Numero.ToString() + maquina + ((char)(item + 64)).ToString(),
                            NombreMaquina = nombreMaquina,
                            Color         = contratoDet.CodColor.Trim(),
                            CodProducto   = prodMaterialUni[0] + contratoDet.CodColor.Trim(),
                            DescProducto  = prodMaterialUni[1],
                            Modelo        = contratoDet.ModeloAA.Trim(),
                            KilosSimulado = kilos,
                            PorSeguridad  = porAdicional,
                            Usuario       = usuario,
                            FechaIngreso  = DateTime.Now,
                            HoraIngreso   = string.Concat(DateTime.Now.ToString("HH:mm:ss"))
                        };
                        listSimulacionCalculo.Add(simulacionDet);
                    }
                }
            }
            //DataTable dt = Helper.ToDataTable(listSimulacionCalculo);
            return(listSimulacionCalculo.OrderBy(x => x.CodProducto).ToList());
        }