private void CargarDatos() { DatosFiltro filtros = new DatosFiltro(); Periodos periodo = (Periodos)Convert.ToInt32(comboPeriodo.SelectedValue); if (periodo == Periodos.Folios) { filtros.Filtro = TipoFiltro.Folios; filtros.Folios = textBoxFolios.Text; } else { filtros.Filtro = TipoFiltro.Fecha; filtros.FechaInicio = dateTimePickerFechaInicio.Value; filtros.FechaFinal = dateTimePickerFechaFinal.Value; } Registrador.IRegistroEjecucion registrador = new Registrador.RegistroEjecucionArchivo("GeneradorASNWinLogCarga" + DateTime.Now.ToString("yyyyMMddHHmmss")); Cursor.Current = Cursors.WaitCursor; Remisiones = RemisionesManager.ObtenerRemisiones(filtros, registrador); remisionesDataTableBindingSource.DataSource = Remisiones; foreach (DataGridViewRow row in dataGridViewRANs.Rows) { if (((DateTime)row.Cells["fechaDocumentoDataGridViewTextBoxColumn"].Value) >= DateTime.Today) { row.Cells["Selected"].Value = true; } } Cursor.Current = Cursors.Default; }
//Comentando temporalmente para que no truene durante los cambios al RANDataset static public RemisionesDataSet ObtenerRemisiones(DatosFiltro filtros, Registrador.IRegistroEjecucion registrador) { RemisionesDataSet ds = new RemisionesDataSet(); string CveDoc = ""; string RAN = ""; //string claves = ""; //string clavesAlternas = ""; try { bool PorFechas = filtros.Filtro == TipoFiltro.Fecha; //Determina si es por fechas el filtro Hashtable PesosArticulo = CargadorXMLPesosNissan.ObtenerPesos(); List <List <RANDBData> > ListaRemisiones = null; if (PorFechas) { ListaRemisiones = DBManager.ObtenerRemisiones(filtros.FechaInicio, filtros.FechaFinal, registrador); //ListaRemisiones = DBManager.ObtenerRemisiones(new DateTime(2017,08,01) , new DateTime(2018, 10, 30)); } else { ListaRemisiones = DBManager.ObtenerRemisiones(filtros.Folios, registrador); //ListaRemisiones = DBManager.ObtenerRemisiones("2888,123abc,2942,2b#^--12,3003,ab123"); } foreach (List <RANDBData> ListaDeRANs in ListaRemisiones) { RemisionesDataSet.RemisionesDataTableRow rowRemision = ds.RemisionesDataTable.NewRemisionesDataTableRow(); string strListaRANs = ""; float PesoTotal = 0; CveDoc = ListaDeRANs[0].Remision; rowRemision.FolioRemision = ListaDeRANs[0].Remision; rowRemision.CantidadTotal = ListaDeRANs[0].CantidadTotal; rowRemision.PartidasTotales = ListaDeRANs.Count; rowRemision.FechaDocumento = ListaDeRANs[0].FechaCreacion; rowRemision.FechaEntrega = ListaDeRANs[0].FechaEnvio; rowRemision.ClaveCliente = ListaDeRANs[0].ClaveCliente; rowRemision.NombreCliente = ListaDeRANs[0].NombreCliente; rowRemision.Status = ListaDeRANs[0].Status; ds.RemisionesDataTable.Rows.Add(rowRemision); foreach (RANDBData ran in ListaDeRANs) { float PesoPartida = 0; RemisionesDataSet.PartidasDataTableRow rowPartida = ds.PartidasDataTable.NewPartidasDataTableRow(); MedidasArticulo MedidaArticulo = new MedidasArticulo(); //if (ran.ClaveProducto.Substring(0, 5) != "NIMEX" && ran.ClaveProductoAlterna.Substring(0, 5) != "NIMEX") //{ // claves = claves + ran.ClaveProducto + ","; // clavesAlternas = clavesAlternas + ran.ClaveProductoAlterna + ","; //} if (ran.ClaveProducto.Substring(0, 5) == "NIMEX") { MedidaArticulo = (MedidasArticulo)PesosArticulo[ran.ClaveProducto]; } else { MedidaArticulo = (MedidasArticulo)PesosArticulo[ran.ClaveProductoAlterna]; } RAN = ran.RAN; if (MedidaArticulo == null) { registrador.RegistrarAdvertencia("No se encontro el articulo '" + ran.ClaveProducto + "' dentro del archivo de pesos."); } else { PesoPartida = (float)(ran.Cantidad / MedidaArticulo.PiezasXcaja * MedidaArticulo.Peso); } rowPartida.FolioRemision = ran.Remision; rowPartida.ClaveProducto = ran.ClaveProducto; rowPartida.CantidadPartida = ran.Cantidad; rowPartida.PesoPartida = PesoPartida; rowPartida.RAN = ran.RAN; rowPartida.ClaveProductoAlterna = ran.ClaveProductoAlterna; PesoTotal += PesoPartida; ds.PartidasDataTable.Rows.Add(rowPartida); strListaRANs += "," + ran.RAN; if (string.IsNullOrEmpty(ran.RAN.Trim())) { registrador.RegistrarAdvertencia("No se encontro RAN para la clave de remisión '" + ran.Remision + "' con clave de articulo '" + ran.ClaveProducto + "'."); } if (string.IsNullOrEmpty(ran.ClaveProductoAlterna.Trim())) { registrador.RegistrarAdvertencia("No se encontro 'Clave Alterna' para la clave de producto '" + ran.ClaveProducto + "'."); } } rowRemision.ListaRANs = strListaRANs.Trim().Length > 1 ? strListaRANs.Substring(1) : ""; rowRemision.PesoTotal = Convert.ToInt32(Math.Round(PesoTotal)); } } catch (Exception ex) { registrador.RegistrarError("Ocurrio un error desconocido al procesar la remisión '" + CveDoc + "' con RAN '" + RAN + "'. Detalles '" + ex.Message + "'"); } return(ds); }