/// <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)); }
/// <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 }); }