/// <summary> /// Construye un objeto de tipo RecepcionControlDTO y lo envia al procedimiento DAL de inserción de datos en la tabla /// RecepcionPtoControl. Las tallas y cantidad de piezas son extraidas del metodo DAL de lanzamiento por orden y lote. /// </summary> /// <param name="_orden">Orden de Producción</param> /// <param name="_lote">Número de Lote</param> /// <param name="_pieza">Cantidad de piezas a ingresar</param> /// <param name="_user">Nombre usuario que realiza el ingreso</param> /// <returns>Valor verdadero/falso segun el ingreso se haya realizado con éxito</returns> /// public bool IngresarRecepcionControl(string _orden, int _lote, int _pieza, string _user) { object[] TallasPiezas = _lanzamientoDal.SelectLanzamientoPorOrden(_orden, _lote).Rows[0].ItemArray; object[] _tallas = TallasPiezas.Skip(4).Take(9).ToArray(); object[] _piezas = TallasPiezas.Skip(13).Take(9).ToArray(); int _cantidad = _piezas.Cast <int>().ToArray().Sum(); RecepcionControlDTO _recepcionControlDto = new RecepcionControlDTO() { Almacen = 550, Orden = _orden.Trim(), Lote = int.Parse(_lote.ToString()), Tallas = _tallas.Cast <string>().ToArray(), Piezas = _piezas.Cast <int>().ToArray(), Completo = _cantidad == _pieza ? 'S' : 'N', Peso = 0, PiezaDeCambio = _cantidad == _pieza ? 0 : _pieza, Usuario = _user }; if (_recepcionControlDal.InsertRecepcionControl(_recepcionControlDto) == 1) { return(true); } else { return(false); } }
/// <summary> /// Crea un archivo XML con el Listado de Recepción por Punto de Control, en la siquiente ruta del /// servidor: C:\inetpub\wwwroot\PSIAA\ /// </summary> /// <param name="rec">Objeto de tipo RecepcionControlDTO</param> /// <param name="_user">Nombre de Usuario</param> public void AgregarRecepcionControlToXML(RecepcionControlDTO rec, string _user) { XDocument miXML = new XDocument(); XElement nuevoElemento = new XElement("RecepcionControlDTO", new XElement("Almacen", rec.Almacen), new XElement("Orden", rec.Orden), new XElement("Lote", rec.Lote), new XElement("Tallas", new XElement("Talla1", rec.Tallas[0]), new XElement("Talla2", rec.Tallas[1]), new XElement("Talla3", rec.Tallas[2]), new XElement("Talla4", rec.Tallas[3]), new XElement("Talla5", rec.Tallas[4]), new XElement("Talla6", rec.Tallas[5]), new XElement("Talla7", rec.Tallas[6]), new XElement("Talla8", rec.Tallas[7]), new XElement("Talla9", rec.Tallas[8])), new XElement("Piezas", new XElement("Piezas1", rec.Piezas[0]), new XElement("Piezas2", rec.Piezas[1]), new XElement("Piezas3", rec.Piezas[2]), new XElement("Piezas4", rec.Piezas[3]), new XElement("Piezas5", rec.Piezas[4]), new XElement("Piezas6", rec.Piezas[5]), new XElement("Piezas7", rec.Piezas[6]), new XElement("Piezas8", rec.Piezas[7]), new XElement("Piezas9", rec.Piezas[8])), new XElement("Completo", rec.Completo), new XElement("Peso", rec.Peso), new XElement("Usuario", rec.Usuario)); string _ruta = @"C:\inetpub\wwwroot\PSIAA\ListadoRecepcionControlDTO_" + _user + ".xml"; if (File.Exists(_ruta)) { miXML = new XDocument(); miXML = XDocument.Load(_ruta); miXML.Root.Add(nuevoElemento); } else { miXML = new XDocument( new XDeclaration("1.0", "utf-8", null), new XElement("ListadoRecepcionControlDTO", nuevoElemento)); } miXML.Save(_ruta); }
/// <summary> /// Devuelve una lista en base al contenedor de datos que retorna el procedimiento DAL de Ingresos en Recepción Control del día. /// </summary> /// <param name="almacen">Código de Almacen</param> /// <returns>Lista Genérica de tipo RecepcionControlDTO</returns> /// public List <RecepcionControlDTO> ListarRecepcionControl(int almacen) { List <RecepcionControlDTO> _listRecepcionControl = new List <RecepcionControlDTO>(); foreach (DataRow row in _recepcionControlDal.SelectRecepcionControl(almacen).Rows) { object[] _tallas = row.ItemArray.Skip(2).Take(9).ToArray(); object[] _piezas = row.ItemArray.Skip(11).Take(9).ToArray(); RecepcionControlDTO _recepcionControlDto = new RecepcionControlDTO { Almacen = almacen, Orden = row["Orden"].ToString().Trim(), Lote = int.Parse(row["Lote"].ToString()), Tallas = _tallas.Cast <string>().ToArray(), Piezas = _piezas.Cast <int>().ToArray(), Completo = char.Parse(row["Completo"].ToString()), Usuario = row["Usuario"].ToString(), HoraIngreso = row["Hora"].ToString() }; _listRecepcionControl.Add(_recepcionControlDto); } return(_listRecepcionControl); }
/// <summary> /// Ejecuta una consulta de inserción en la tabla Recepcion_Pto_Control a la BD. /// </summary> /// <param name="_controlFinal">Objeto de tipo RecepcionControlDTO</param> /// <returns>Variable de tipo int con la cantidad de registros ingresados.</returns> public int InsertRecepcionControl(RecepcionControlDTO _controlFinal) { List <SqlParameter> _sqlParam = new List <SqlParameter>(); string query = @" insert into Recepcion_Pto_Control( almacen, Orden, Lote, talla1, talla2, talla3, talla4, talla5, talla6, talla7, talla8, talla9, piezas1, piezas2, piezas3, piezas4, piezas5, piezas6, piezas7, piezas8, piezas9, usuario, fecha_ingreso, hora_ingreso, catoper, Peso, observaciones, Completo ) values( @almacen, @orden, @lote, @talla1, @talla2, @talla3, @talla4, @talla5, @talla6, @talla7, @talla8, @talla9, @piezas1, @piezas2, @piezas3, @piezas4, @piezas5, @piezas6, @piezas7, @piezas8, @piezas9, @usuario, convert(date, @fechaingreso), @hora, @catoper, @peso, @obs, @completo)"; _sqlParam.Add(new SqlParameter("@almacen", SqlDbType.Int) { Value = _controlFinal.Almacen }); _sqlParam.Add(new SqlParameter("@orden", SqlDbType.VarChar) { Value = _controlFinal.Orden.ToUpper() }); _sqlParam.Add(new SqlParameter("@lote", SqlDbType.SmallInt) { Value = _controlFinal.Lote }); _sqlParam.Add(new SqlParameter("@talla1", SqlDbType.VarChar) { Value = _controlFinal.Tallas[0] }); _sqlParam.Add(new SqlParameter("@talla2", SqlDbType.VarChar) { Value = _controlFinal.Tallas[1] }); _sqlParam.Add(new SqlParameter("@talla3", SqlDbType.VarChar) { Value = _controlFinal.Tallas[2] }); _sqlParam.Add(new SqlParameter("@talla4", SqlDbType.VarChar) { Value = _controlFinal.Tallas[3] }); _sqlParam.Add(new SqlParameter("@talla5", SqlDbType.VarChar) { Value = _controlFinal.Tallas[4] }); _sqlParam.Add(new SqlParameter("@talla6", SqlDbType.VarChar) { Value = _controlFinal.Tallas[5] }); _sqlParam.Add(new SqlParameter("@talla7", SqlDbType.VarChar) { Value = _controlFinal.Tallas[6] }); _sqlParam.Add(new SqlParameter("@talla8", SqlDbType.VarChar) { Value = _controlFinal.Tallas[7] }); _sqlParam.Add(new SqlParameter("@talla9", SqlDbType.VarChar) { Value = _controlFinal.Tallas[8] }); _sqlParam.Add(new SqlParameter("@piezas1", SqlDbType.Int) { Value = _controlFinal.Piezas[0] }); _sqlParam.Add(new SqlParameter("@piezas2", SqlDbType.Int) { Value = _controlFinal.Piezas[1] }); _sqlParam.Add(new SqlParameter("@piezas3", SqlDbType.Int) { Value = _controlFinal.Piezas[2] }); _sqlParam.Add(new SqlParameter("@piezas4", SqlDbType.Int) { Value = _controlFinal.Piezas[3] }); _sqlParam.Add(new SqlParameter("@piezas5", SqlDbType.Int) { Value = _controlFinal.Piezas[4] }); _sqlParam.Add(new SqlParameter("@piezas6", SqlDbType.Int) { Value = _controlFinal.Piezas[5] }); _sqlParam.Add(new SqlParameter("@piezas7", SqlDbType.Int) { Value = _controlFinal.Piezas[6] }); _sqlParam.Add(new SqlParameter("@piezas8", SqlDbType.Int) { Value = _controlFinal.Piezas[7] }); _sqlParam.Add(new SqlParameter("@piezas9", SqlDbType.Int) { Value = _controlFinal.Piezas[8] }); _sqlParam.Add(new SqlParameter("@usuario", SqlDbType.VarChar) { Value = _controlFinal.Usuario }); _sqlParam.Add(new SqlParameter("@fechaingreso", SqlDbType.DateTime) { Value = _controlFinal.FechaIngreso }); _sqlParam.Add(new SqlParameter("@hora", SqlDbType.VarChar) { Value = _controlFinal.HoraIngreso }); _sqlParam.Add(new SqlParameter("@catoper", SqlDbType.Int) { Value = _controlFinal.Almacen }); _sqlParam.Add(new SqlParameter("@peso", SqlDbType.Float) { Value = _controlFinal.Peso }); _sqlParam.Add(new SqlParameter("@obs", SqlDbType.VarChar) { Value = _controlFinal.Observaciones }); _sqlParam.Add(new SqlParameter("@completo", SqlDbType.VarChar) { Value = _controlFinal.Completo }); return(_trans.ExecuteQuery(query, _sqlParam)); }
/// <summary> /// Agrega un nuevo elemento al contenido del archivo XML donde es almacenado cada ingreso, y devuelve el contenido completo. /// En el primer ingreso siempre se crea dos archivos XML por cada modelo de objeto: RecepcionControlDTO y AlmacenDTO. /// En el caso de que el ingreso ya existiera en el contenido del archivo Xml, solo devuelve el contenido completo. /// </summary> /// <param name="_orden">Orden de Producción de Ingreso</param> /// <param name="_lote">Número de Lote</param> /// <param name="_codAlmacen">Codigo de Almacén al cual va dirigido el ingreso</param> /// <param name="_pieza">Cantidad de piezas a ingresar</param> /// <param name="_talla">Talla de la pieza a ingresar</param> /// <param name="_user">Nombre de usuario que realiza el ingreso</param> /// <param name="duplicado">Parametro de Salida con valor verdadero o falso, en el caso de que el ingreso existiera en /// el contenido del archivo XML</param> /// <returns>Lista genérica de tipo RecepcionControlDTO poblada con todos los ingresos</returns> /// public List <RecepcionControlDTO> PoblarListasDeIngresoAlmacen(string _orden, int _lote, int _codAlmacen, int _pieza, string _talla, string _user, out bool duplicado) { DataRow drResultLanzamiento = _lanzamientoDal.SelectLanzamientoPorOrden(_orden, _lote).Rows[0]; object[] TallasPiezas = drResultLanzamiento.ItemArray; object[] _tallas = TallasPiezas.Skip(4).Take(9).ToArray(); object[] _piezas = TallasPiezas.Skip(13).Take(9).ToArray(); int _cantidad = _piezas.Cast <int>().ToArray().Sum(); //COMPARAR REGISTROS DUPLICADOS _listRecepcionControl = _listXml.ConvertXmlToListRecepcionControl(_user); if (_listRecepcionControl.Find(x => (x.Orden == _orden) && (x.Lote == _lote)) != null) { duplicado = true; return(_listRecepcionControl); } else { RecepcionControlDTO _recepcionControlDto = new RecepcionControlDTO() { Almacen = 800, Orden = _orden.Trim(), Lote = _lote, Tallas = _tallas.Cast <string>().ToArray(), Piezas = _piezas.Cast <int>().ToArray(), Completo = _cantidad == _pieza ? 'S' : 'N', //Peso = decimal.Parse(_result[2].ToString() == "" ? "0" : _result[2].ToString()), Peso = 0, PiezaDeCambio = _cantidad == _pieza ? 0 : _pieza, Usuario = _user }; //TALLAS PARA ALMACEN object[] _piezasAlmacen = _piezas.Take(7).ToArray(); //LLENAR LISTA OBJETO ALMACEN AlmacenDTO _almacenDto = new AlmacenDTO() { CodAlmacen = _codAlmacen, TipoMovimiento = "IPRD", //NumeroDocumento = "", //Item = _item, IngresoSalida = 1, AlmacenOrigenDestino = 0, CodProducto = "PT-" + drResultLanzamiento["Modelo"].ToString().Trim() + "-" + drResultLanzamiento["Color"].ToString().Trim() + "-" + _talla.Trim() + "/" + drResultLanzamiento["Contrato"].ToString(), Orden = _orden.Trim(), NroLote = _lote.ToString(), Contrato = drResultLanzamiento["Contrato"].ToString(), Tallas = _piezasAlmacen.Cast <int>().ToArray(), Cantidad = _cantidad == _pieza ? _cantidad : _pieza, PesoBruto = _cantidad == _pieza ? _cantidad : _pieza, PesoNeto = _cantidad == _pieza ? _cantidad : _pieza, TallaDeCambio = _cantidad == _pieza ? 0 : _pieza }; //CONVERTIR XML - LISTA _listXml.AgregarAlmacenToXML(_almacenDto, _user); _listXml.AgregarRecepcionControlToXML(_recepcionControlDto, _user); duplicado = false; return(_listXml.ConvertXmlToListRecepcionControl(_user)); } }