예제 #1
0
        /// <summary>
        /// Ejecuta una consulta de inserción a la tabla Asignacion_de_ordenes_det.
        /// </summary>
        /// <param name="asigOrdenDet">Objeto de tipo AsignacionOrdenDetDTO</param>
        /// <returns>Variable de tipo int con la cantidad de registros ingresados.</returns>
        public int InsertAsignacionOrdenDetalle(AsignacionOrdenDetDTO asigOrdenDet)
        {
            List <SqlParameter> _sqlParam = new List <SqlParameter>();

            string query = @"
                insert into Asignacion_de_ordenes_det values(
	                @catoperacion, 
	                @nroasignacion, 
	                @orden, @lote, 
	                @categoria, 
	                @proceso, 
	                @codproveedor, 0, 0, 
	                convert(date, @fechaasignacion), convert(date, @fechatermino),
	                @activo, @terminado, 
	                @color, @talla1, @talla2, @talla3, @talla4, @talla5, @talla6, @talla7, @talla8, @talla9,
	                @cantidad1, @cantidad2, @cantidad3, @cantidad4, @cantidad5, @cantidad6, @cantidad7, @cantidad8, @cantidad9,
	                convert(date, @fechafinalizacion), 
	                @horaingreso, @usuario, @usuario,
	                null, 0, 0, null, null, null, 0, null, null, null, null
                )";

            _sqlParam.Add(new SqlParameter("@catoperacion", SqlDbType.Int)
            {
                Value = asigOrdenDet.CodCatOperacion
            });
            _sqlParam.Add(new SqlParameter("@nroasignacion", SqlDbType.VarChar)
            {
                Value = asigOrdenDet.NroAsignacion
            });
            _sqlParam.Add(new SqlParameter("@orden", SqlDbType.VarChar)
            {
                Value = asigOrdenDet.Orden
            });
            _sqlParam.Add(new SqlParameter("@lote", SqlDbType.Int)
            {
                Value = asigOrdenDet.Lote
            });
            _sqlParam.Add(new SqlParameter("@categoria", SqlDbType.Int)
            {
                Value = asigOrdenDet.Categoria
            });
            _sqlParam.Add(new SqlParameter("@proceso", SqlDbType.Int)
            {
                Value = asigOrdenDet.Proceso
            });
            _sqlParam.Add(new SqlParameter("@codproveedor", SqlDbType.VarChar)
            {
                Value = asigOrdenDet.CodProveedor
            });
            _sqlParam.Add(new SqlParameter("@fechaasignacion", SqlDbType.DateTime)
            {
                Value = asigOrdenDet.FechaAsignacion
            });
            _sqlParam.Add(new SqlParameter("@fechatermino", SqlDbType.DateTime)
            {
                Value = asigOrdenDet.FechaTermino
            });
            _sqlParam.Add(new SqlParameter("@activo", SqlDbType.Int)
            {
                Value = asigOrdenDet.Activo
            });
            _sqlParam.Add(new SqlParameter("@terminado", SqlDbType.Int)
            {
                Value = asigOrdenDet.Terminado
            });
            _sqlParam.Add(new SqlParameter("@color", SqlDbType.VarChar)
            {
                Value = asigOrdenDet.Color
            });
            _sqlParam.Add(new SqlParameter("@talla1", SqlDbType.VarChar)
            {
                Value = asigOrdenDet.Tallas[0]
            });
            _sqlParam.Add(new SqlParameter("@talla2", SqlDbType.VarChar)
            {
                Value = asigOrdenDet.Tallas[1]
            });
            _sqlParam.Add(new SqlParameter("@talla3", SqlDbType.VarChar)
            {
                Value = asigOrdenDet.Tallas[2]
            });
            _sqlParam.Add(new SqlParameter("@talla4", SqlDbType.VarChar)
            {
                Value = asigOrdenDet.Tallas[3]
            });
            _sqlParam.Add(new SqlParameter("@talla5", SqlDbType.VarChar)
            {
                Value = asigOrdenDet.Tallas[4]
            });
            _sqlParam.Add(new SqlParameter("@talla6", SqlDbType.VarChar)
            {
                Value = asigOrdenDet.Tallas[5]
            });
            _sqlParam.Add(new SqlParameter("@talla7", SqlDbType.VarChar)
            {
                Value = asigOrdenDet.Tallas[6]
            });
            _sqlParam.Add(new SqlParameter("@talla8", SqlDbType.VarChar)
            {
                Value = asigOrdenDet.Tallas[7]
            });
            _sqlParam.Add(new SqlParameter("@talla9", SqlDbType.VarChar)
            {
                Value = asigOrdenDet.Tallas[8]
            });
            _sqlParam.Add(new SqlParameter("@cantidad1", SqlDbType.Int)
            {
                Value = asigOrdenDet.Cantidades[0]
            });
            _sqlParam.Add(new SqlParameter("@cantidad2", SqlDbType.Int)
            {
                Value = asigOrdenDet.Cantidades[1]
            });
            _sqlParam.Add(new SqlParameter("@cantidad3", SqlDbType.Int)
            {
                Value = asigOrdenDet.Cantidades[2]
            });
            _sqlParam.Add(new SqlParameter("@cantidad4", SqlDbType.Int)
            {
                Value = asigOrdenDet.Cantidades[3]
            });
            _sqlParam.Add(new SqlParameter("@cantidad5", SqlDbType.Int)
            {
                Value = asigOrdenDet.Cantidades[4]
            });
            _sqlParam.Add(new SqlParameter("@cantidad6", SqlDbType.Int)
            {
                Value = asigOrdenDet.Cantidades[5]
            });
            _sqlParam.Add(new SqlParameter("@cantidad7", SqlDbType.Int)
            {
                Value = asigOrdenDet.Cantidades[6]
            });
            _sqlParam.Add(new SqlParameter("@cantidad8", SqlDbType.Int)
            {
                Value = asigOrdenDet.Cantidades[7]
            });
            _sqlParam.Add(new SqlParameter("@cantidad9", SqlDbType.Int)
            {
                Value = asigOrdenDet.Cantidades[8]
            });
            _sqlParam.Add(new SqlParameter("@fechafinalizacion", SqlDbType.DateTime)
            {
                Value = asigOrdenDet.FechaFinalizacion
            });
            _sqlParam.Add(new SqlParameter("@horaingreso", SqlDbType.VarChar)
            {
                Value = asigOrdenDet.HoraIngreso
            });
            _sqlParam.Add(new SqlParameter("@usuario", SqlDbType.VarChar)
            {
                Value = asigOrdenDet.Usuario
            });
            return(_trans.ExecuteQuery(query, _sqlParam));
        }
예제 #2
0
        /// <summary>
        /// Genera un nuevo número de asignación y según las operaciones seleccionadas categoriza y sub-categoriza cada uno de sus procesos
        /// por modelo. Construye un nuevo objeto tipo AsignacionOrdenDetDTO por cada proceso y se dispone a ejecutar el procedimiento DAL
        /// de Insert Asignación Detalle, y otro objeto de tipo AsignacionOrdenDetDTO para el procedimiento de Insert Asignación Cabecera.
        /// </summary>
        /// <param name="listAasignar">Lista genérica de tipo AasignarDTO con los valores a Asignar</param>
        /// <param name="listLanzamientoDet">Lista genérica de tipo LanzamientoDetDTO con los lanzamientos</param>
        /// <param name="user">Nombre de Usuario</param>
        /// <returns>Arreglo de tipo int con dos valores: cantidad de cabeceras ingresadas, y cantidad de detalles ingresados.</returns>
        public int[] IngresarAsignacionOrden(List <AasignarDTO> listAasignar, List <LanzamientoDetDTO> listLanzamientoDet, string user)
        {
            string nroAsignacion  = NroDeOrdenAsignacion();
            int    filasInsertCab = 0;
            int    filasInsertDet = 0;

            foreach (var aAsignar in listAasignar)
            {
                if (aAsignar.Asignacion == "Si")
                {
                    int[] subcategoria;
                    int   categoriaOperacion = 0;
                    if (aAsignar.CodCatOperacion == 500)
                    {
                        subcategoria       = new int[] { 510, 530, 550 };
                        categoriaOperacion = 500;
                    }
                    else if (aAsignar.CodCatOperacion == 400)
                    {
                        subcategoria       = new int[] { 430, 440, 450, 460, 470 };
                        categoriaOperacion = 400;
                    }
                    else
                    {
                        subcategoria       = new int[] { aAsignar.CodCatOperacion };
                        categoriaOperacion = int.Parse(aAsignar.CodCatOperacion.ToString().Substring(0, 1) + "00");
                    }

                    foreach (int subcat in subcategoria)
                    {
                        foreach (var lanzDet in listLanzamientoDet)
                        {
                            if ((lanzDet.Modelo == aAsignar.Modelo) && (lanzDet.Color == aAsignar.Color))
                            {
                                foreach (int proceso in ProcesosPorModeloCategoria(lanzDet.Modelo, subcat))
                                {
                                    var asigOrdenDet = new AsignacionOrdenDetDTO()
                                    {
                                        CodCatOperacion = categoriaOperacion,
                                        NroAsignacion   = nroAsignacion,
                                        Orden           = lanzDet.Orden,
                                        Lote            = lanzDet.Lote,
                                        Categoria       = subcat,
                                        Proceso         = proceso,
                                        CodProveedor    = aAsignar.CodProveedor,
                                        FechaTermino    = aAsignar.FechaRetorno,
                                        //0X46 = 70
                                        Terminado  = 70,
                                        Color      = lanzDet.Color,
                                        Tallas     = lanzDet.Tallas,
                                        Cantidades = lanzDet.Piezas,
                                        Usuario    = user
                                    };
                                    int insDet = _asignacionOrdenesDal.InsertAsignacionOrdenDetalle(asigOrdenDet);
                                    filasInsertDet = filasInsertDet + insDet;
                                }
                            }
                        }
                    }
                    //Generar Cabecera de Asignacion de Ordenes
                    var _asigOrdenCab = new AsignacionOrdenCabDTO()
                    {
                        CodCatOperacion = categoriaOperacion,
                        NroAsignacion   = nroAsignacion,
                        CodProveedor    = aAsignar.CodProveedor,
                        FechaEntrega    = aAsignar.FechaRetorno,
                        Completo        = aAsignar.TodasOperaciones == true ? (short)1 : (short)0,
                        Usuario         = user
                    };
                    int insCab = _asignacionOrdenesDal.InsertAsignacionOrdenCabecera(_asigOrdenCab);
                    filasInsertCab = filasInsertCab + insCab;

                    //Generar siguiente numero de asignacion
                    nroAsignacion = (long.Parse(nroAsignacion) + 1).ToString();
                }
            }
            return(new int[] { filasInsertCab, filasInsertDet });
        }