private void LeerArticulos(CedForecastEntidades.FamiliaArticulo FamiliaArticulo) { DataTable dt = new DataTable(); System.Text.StringBuilder a = new StringBuilder(); a.Append("select IdArticulo from ArticuloInfoAdicional where IdFamiliaArticulo='" + FamiliaArticulo.Id + "' order by IdArticulo"); dt = (DataTable)Ejecutar(a.ToString(), TipoRetorno.TB, Transaccion.NoAcepta, sesion.CnnStr); FamiliaArticulo.Articulos.Clear(); if (dt.Rows.Count != 0) { List<CedForecastEntidades.Bejerman.Articulos> articulos = new CedForecastDB.Bejerman.Articulos(sesion).LeerLista(); for (int i = 0; i < dt.Rows.Count; i++) { CedForecastEntidades.Articulo elemento = new CedForecastEntidades.Articulo(); elemento.Id = Convert.ToString(dt.Rows[i]["IdArticulo"]); CedForecastEntidades.Bejerman.Articulos articulo = articulos.Find(delegate(CedForecastEntidades.Bejerman.Articulos c) { return c.Art_CodGen == Convert.ToString(dt.Rows[i]["IdArticulo"]); }); if (articulo == null) { elemento.Descr = "<<<Desconocido>>>"; } else { elemento.Descr = articulo.Art_DescGen; } elemento.Familia = FamiliaArticulo; FamiliaArticulo.Articulos.Add(elemento); } } }
public List<CedForecastEntidades.ArticuloInfoAdicional> LeerLista() { DataTable dt = new DataTable(); System.Text.StringBuilder a = new StringBuilder(); a.Append("select ArticuloInfoAdicional.IdArticulo, ArticuloInfoAdicional.IdFamiliaArticulo, FamiliaArticulo.DescrFamiliaArticulo, ArticuloInfoAdicional.IdArticuloOrigen, ArticuloInfoAdicional.IdRENAR, ArticuloInfoAdicional.DescrRENAR, ArticuloInfoAdicional.IdSENASA, ArticuloInfoAdicional.IdPresentacion, ArticuloInfoAdicional.CantidadXPresentacion, ArticuloInfoAdicional.CantidadXContenedor, ArticuloInfoAdicional.UnidadMedida, ArticuloInfoAdicional.Precio, ArticuloInfoAdicional.IdMoneda, ArticuloInfoAdicional.FechaVigenciaPrecio, ArticuloInfoAdicional.CoeficienteGastosNacionalizacion, ArticuloInfoAdicional.CantidadStockSeguridad, ArticuloInfoAdicional.PlazoAvisoStockSeguridad, ArticuloInfoAdicional.Comentario "); a.Append("from ArticuloInfoAdicional, FamiliaArticulo "); a.Append("where ArticuloInfoAdicional.IdFamiliaArticulo=FamiliaArticulo.IdFamiliaArticulo collate database_default "); a.Append("order by IdArticulo "); dt = (DataTable)Ejecutar(a.ToString(), TipoRetorno.TB, Transaccion.NoAcepta, sesion.CnnStr); List<CedForecastEntidades.ArticuloInfoAdicional> lista = new List<CedForecastEntidades.ArticuloInfoAdicional>(); if (dt.Rows.Count != 0) { List<CedForecastEntidades.Bejerman.Articulos> articulosBejerman = new CedForecastDB.Bejerman.Articulos(sesion).LeerLista(); for (int i = 0; i < dt.Rows.Count; i++) { CedForecastEntidades.ArticuloInfoAdicional elemento = new CedForecastEntidades.ArticuloInfoAdicional(); Copiar(dt.Rows[i], elemento); CedForecastEntidades.Bejerman.Articulos articuloBejerman = articulosBejerman.Find(delegate(CedForecastEntidades.Bejerman.Articulos c) { return c.Art_CodGen == Convert.ToString(dt.Rows[i]["IdArticulo"]); }); if (articuloBejerman == null) { elemento.DescrArticulo = "<<<Desconocido>>>"; } else { elemento.DescrArticulo = articuloBejerman.Art_DescGen; } lista.Add(elemento); } } return lista; }
public void EnviarNovedades() { try { WS.Sincronizacion ws = new WS.Sincronizacion(); ws.Url = cedForecastWSRUL; DateTime fechaUltimaSincronizacion = ws.FechaUltimaSincronizacionArticulos(); CedForecastDB.Bejerman.Articulos datos = new CedForecastDB.Bejerman.Articulos(sesion); List<CedForecastEntidades.Bejerman.Articulos> lista = datos.LeerNovedades(fechaUltimaSincronizacion); contador = 0; contadorTope = lista.Count; for (contador = 0; contador < contadorTope; contador++) { WS.Articulo elemento = new WS.Articulo(); elemento.Id = lista[contador].Art_CodGen; elemento.Descr = lista[contador].Art_DescGen; elemento.PesoBruto = lista[contador].Art_PesoBruto; elemento.UnidadMedida = lista[contador].Artcla_Cod; elemento.GrupoArticulo = new CedForecastRN.WS.GrupoArticulo(); elemento.GrupoArticulo.IdGrupoArticulo = lista[contador].Artda2_cod; elemento.Habilitado = true; elemento.FechaUltModif = lista[contador].Art_FecMod; ws.EnviarArticulo(elemento); } } catch (Exception Ex) { errores.Add(Ex); } }
private void ConfigurarFiltros() { ArticulosTreeView.Nodes.Clear(); CedForecastDB.Bejerman.Articulos articulos = new CedForecastDB.Bejerman.Articulos(Aplicacion.Sesion); List<CedForecastEntidades.Bejerman.Articulos> listaArticulos = articulos.LeerLista(); for (int i = 0; i < listaArticulos.Count; i++) { TreeNode nd = new TreeNode(listaArticulos[i].Art_CodGen+"-"+listaArticulos[i].Art_DescGen); nd.Tag = listaArticulos[i].Art_CodGen; ArticulosTreeView.Nodes.Add(nd); } ClientesTreeView.Nodes.Clear(); CedForecastDB.Bejerman.Clientes clientes = new CedForecastDB.Bejerman.Clientes(Aplicacion.Sesion); List<CedForecastEntidades.Bejerman.Clientes> listaClientes = clientes.LeerLista(); for (int i = 0; i < listaClientes.Count; i++) { TreeNode nd = new TreeNode(listaClientes[i].Cli_Cod + "-" + listaClientes[i].Cli_RazSoc); nd.Tag = listaClientes[i].Cli_Cod; ClientesTreeView.Nodes.Add(nd); } VendedoresTreeView.Nodes.Clear(); CedForecastDB.Bejerman.Vendedor vendedores = new CedForecastDB.Bejerman.Vendedor(Aplicacion.Sesion); List<CedForecastEntidades.Bejerman.Vendedor> listaVendedores = vendedores.LeerLista(); for (int i = 0; i < listaVendedores.Count; i++) { TreeNode nd = new TreeNode(listaVendedores[i].Ven_Cod + "-" + listaVendedores[i].Ven_Desc); nd.Tag = listaVendedores[i].Ven_Cod; VendedoresTreeView.Nodes.Add(nd); } }
public static List<CedForecastEntidades.RFoPA> Lista(CedForecastEntidades.RFoPA Forecast, string TipoReporte, string ListaArticulos, string ListaClientes, string ListaVendedores, CedEntidades.Sesion Sesion, out List<CedForecastEntidades.Advertencia> Advertencias) { Advertencias = new List<CedForecastEntidades.Advertencia>(); CedForecastDB.RFoPA forecast = new CedForecastDB.RFoPA(Sesion); List<CedForecastEntidades.RFoPA> lista = forecast.Lista(Forecast, TipoReporte, ListaArticulos, ListaClientes, ListaVendedores); List<CedForecastEntidades.Bejerman.Articulos> articulos = new CedForecastDB.Bejerman.Articulos(Sesion).LeerLista(); List<CedForecastEntidades.Bejerman.Vendedor> vendedores = new CedForecastDB.Bejerman.Vendedor(Sesion).LeerLista(); List<CedForecastEntidades.Bejerman.Clientes> clientes = new CedForecastDB.Bejerman.Clientes(Sesion).LeerLista(); for (int r = 0; r < lista.Count; r++) { CedForecastEntidades.Bejerman.Articulos articulo = articulos.Find(delegate(CedForecastEntidades.Bejerman.Articulos c) { return c.Art_CodGen == lista[r].Articulo.Art_CodGen; }); if (articulo != null) { lista[r].Articulo.Art_DescGen = articulo.Art_DescGen; lista[r].Articulo.Artda2_cod = articulo.Artda2_cod; } else { lista[r].Articulo.Art_DescGen = "<<<Desconocida>>>"; lista[r].Articulo.Artda2_cod = ""; Advertencias.Add(new CedForecastEntidades.Advertencia("CTabAC-01", "Descripción no encontrada para el artículo " + Convert.ToString(lista[r].Articulo.Art_CodGen), CedForecastEntidades.Advertencia.TipoSeveridad.Advertencia)); } } for (int r = 0; r < lista.Count; r++) { CedForecastEntidades.Bejerman.Vendedor vendedor = vendedores.Find(delegate(CedForecastEntidades.Bejerman.Vendedor c) { return c.Ven_Cod == lista[r].Vendedor.Ven_Cod; }); if (vendedor != null) { lista[r].Vendedor.Ven_Desc = vendedor.Ven_Desc; } else { lista[r].Vendedor.Ven_Desc = "<<<Desconocida>>>"; Advertencias.Add(new CedForecastEntidades.Advertencia("CTabAC-02", "Descripción no encontrada para el vendedor " + Convert.ToString(lista[r].Vendedor.Ven_Cod), CedForecastEntidades.Advertencia.TipoSeveridad.Advertencia)); } } for (int r = 0; r < lista.Count; r++) { CedForecastEntidades.Bejerman.Clientes cliente = clientes.Find(delegate(CedForecastEntidades.Bejerman.Clientes c) { return c.Cli_Cod == lista[r].IdCliente; }); if (cliente != null) { lista[r].Cliente.Cli_RazSoc = cliente.Cli_RazSoc; } else { lista[r].Cliente.Cli_RazSoc = "<<<Desconocida>>>"; Advertencias.Add(new CedForecastEntidades.Advertencia("CTabAC-03", "Descripción no encontrada para el vendedor " + Convert.ToString(lista[r].IdCliente), CedForecastEntidades.Advertencia.TipoSeveridad.Advertencia)); } } return lista; }
private void LlenarCombos(string Evento) { List<CedForecastEntidades.Bejerman.Articulos> articulos; if (Evento == "Alta") { articulos = new CedForecastDB.Bejerman.Articulos(Aplicacion.Sesion).LeerLista(new CedForecastDB.ArticuloInfoAdicional(Aplicacion.Sesion).ListaIdArticulos()); } else { articulos = new CedForecastDB.Bejerman.Articulos(Aplicacion.Sesion).Leer(articuloInfoAdicional.IdArticulo); } IdArticuloUiComboBox.DataSource = articulos; IdArticuloUiComboBox.ValueMember = "Art_CodGen"; IdArticuloUiComboBox.DisplayMember = "Art_CodDescGen"; LlenarComboFamilias(); LlenarComboMonedas(); LlenarComboUnidadesMedida(); }
public void Leer(CedForecastEntidades.ArticuloInfoAdicional ArticuloInfoAdicional) { DataTable dt = new DataTable(); System.Text.StringBuilder a = new StringBuilder(); a.Append("select ArticuloInfoAdicional.IdArticulo, ArticuloInfoAdicional.IdFamiliaArticulo, FamiliaArticulo.DescrFamiliaArticulo, ArticuloInfoAdicional.IdArticuloOrigen, ArticuloInfoAdicional.IdRENAR, ArticuloInfoAdicional.DescrRENAR, ArticuloInfoAdicional.IdSENASA, ArticuloInfoAdicional.IdPresentacion, ArticuloInfoAdicional.CantidadXPresentacion, ArticuloInfoAdicional.CantidadXContenedor, ArticuloInfoAdicional.UnidadMedida, ArticuloInfoAdicional.Precio, ArticuloInfoAdicional.IdMoneda, ArticuloInfoAdicional.FechaVigenciaPrecio, ArticuloInfoAdicional.CoeficienteGastosNacionalizacion, ArticuloInfoAdicional.CantidadStockSeguridad, ArticuloInfoAdicional.PlazoAvisoStockSeguridad, ArticuloInfoAdicional.Comentario "); a.Append("from ArticuloInfoAdicional, FamiliaArticulo "); a.Append("where ArticuloInfoAdicional.IdFamiliaArticulo=FamiliaArticulo.IdFamiliaArticulo "); a.Append("and ArticuloInfoAdicional.IdArticulo='" + ArticuloInfoAdicional.IdArticulo + "' "); dt = (DataTable)Ejecutar(a.ToString(), TipoRetorno.TB, Transaccion.NoAcepta, sesion.CnnStr); if (dt.Rows.Count == 1) { List<CedForecastEntidades.Bejerman.Articulos> articulosBejerman = new CedForecastDB.Bejerman.Articulos(sesion).LeerLista(); Copiar(dt.Rows[0], ArticuloInfoAdicional); CedForecastEntidades.Bejerman.Articulos articuloBejerman = articulosBejerman.Find(delegate(CedForecastEntidades.Bejerman.Articulos c) { return c.Art_CodGen == Convert.ToString(dt.Rows[0]["IdArticulo"]); }); if (articuloBejerman == null) { ArticuloInfoAdicional.DescrArticulo = "<<<Desconocido>>>"; } else { ArticuloInfoAdicional.DescrArticulo = articuloBejerman.Art_DescGen; } } }
public static DataTable ResumenArgentinaXZonas(string PeriodoDesde, string PeriodoHasta, string TipoReporte, string ListaArticulos, string ListaClientes, string ListaVendedores, bool Valorizado, CedEntidades.Sesion Sesion, out List<CedForecastEntidades.Advertencia> Advertencias) { Advertencias = new List<CedForecastEntidades.Advertencia>(); //Validacion de parámetros if (ListaArticulos == String.Empty) { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Validaciones.ValorNoInfo("Articulo(s)"); } if (ListaClientes == String.Empty) { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Validaciones.ValorNoInfo("Cliente(s)"); } //Leer datos Forecast CedForecastDB.Forecast db = new CedForecastDB.Forecast(Sesion); DataSet ds = db.LeerDatosParaResumenArgentinaXZonas(PeriodoDesde, PeriodoHasta, TipoReporte, ListaArticulos, ListaClientes, ListaVendedores); DataTable dtZona; DataTable dtVendedor; switch (TipoReporte) { case "Zona-Familia-Articulo": dtZona = ds.Tables[0]; break; case "Vendedor-Familia-Articulo": dtVendedor = ds.Tables[0]; break; } DataTable dtFamilia = ds.Tables[1]; DataTable dtArticulos = ds.Tables[2]; DataTable dtDatos = ds.Tables[3]; //Leer datos Bejerman List<CedForecastEntidades.Bejerman.Zona> zonas = new CedForecastDB.Bejerman.Zona(Sesion).LeerLista(); List<CedForecastEntidades.Bejerman.Vendedor> vendedores = new CedForecastDB.Bejerman.Vendedor(Sesion).LeerLista(); List<CedForecastEntidades.Bejerman.Articulos> articulos = new CedForecastDB.Bejerman.Articulos(Sesion).LeerListaConPrecios(); List<CedForecastEntidades.ArticuloInfoAdicional> familiaXArticulos = new CedForecastDB.ArticuloInfoAdicional(Sesion).LeerLista(); //Crear crosstab DataTable dt = new DataTable(); dt.Columns.Add(ClonarColumna(dtDatos.Columns[0])); //Empresa dt.Columns.Add(ClonarColumna(dtDatos.Columns[1])); //Zona o Vendedor dt.Columns.Add(ClonarColumna(dtDatos.Columns["Familia"])); dt.Columns.Add(ClonarColumna(dtDatos.Columns["Articulo"])); string idPeriodo = ""; DateTime periodoDesde = Convert.ToDateTime("01/" + PeriodoDesde.Substring(4, 2) + "/" + PeriodoDesde.Substring(0, 4)); DateTime periodoHasta = Convert.ToDateTime("01/" + PeriodoHasta.Substring(4, 2) + "/" + PeriodoHasta.Substring(0, 4)); int meses = periodoHasta.Month - periodoDesde.Month + 1; int años = periodoHasta.Year - periodoDesde.Year; meses += años * 12; idPeriodo = periodoDesde.ToString("yyyyMM"); for (int i = 1; i <= meses; i++) { dt.Columns.Add(ClonarColumna(dtDatos.Columns["Cantidad"], "Plan-" + idPeriodo, "Plan-" + idPeriodo)); dt.Columns.Add(ClonarColumna(dtDatos.Columns["Cantidad"], "Real-" + idPeriodo, "Real-" + idPeriodo)); idPeriodo = periodoDesde.AddMonths(i).ToString("yyyyMM"); } dt.Columns.Add(ClonarColumna(dtDatos.Columns["Cantidad"], "Total Plan", "Total Plan")); dt.Columns.Add(ClonarColumna(dtDatos.Columns["Cantidad"], "Total Real", "Total Real")); dt.Columns.Add(ClonarColumna(dtDatos.Columns["Cantidad"], "Desvio Plan", "Desvio Plan")); //Llenar crosstab string claveAnterior = String.Empty; //Buscar Ventas CedForecastDB.Bejerman.Ventas dbVentas = new CedForecastDB.Bejerman.Ventas(Sesion); List<CedForecastEntidades.Bejerman.Ventas> ventas = dbVentas.LeerParaResumenArgentinaXZonas(TipoReporte, PeriodoDesde, PeriodoHasta, ListaArticulos, ListaClientes, ListaVendedores); decimal precio = 0; for (int i = 0; i < ventas.Count; i++) { string familia = ""; CedForecastEntidades.ArticuloInfoAdicional articuloInfoAdicional = familiaXArticulos.Find(delegate(CedForecastEntidades.ArticuloInfoAdicional c) { return c.IdArticulo == Convert.ToString(ventas[i].Sdvart_CodGen); }); if (articuloInfoAdicional != null) { familia = articuloInfoAdicional.IdFamiliaArticulo; } DataRow[] drv; switch (TipoReporte) { case "Zona-Familia-Articulo": drv = dtDatos.Select("Zona = '" + ventas[i].Zona + "' and Articulo = '" + ventas[i].Sdvart_CodGen + "' and Periodo = '" + ventas[i].Periodo + "'"); if (drv.Length == 0) { dtDatos.Rows.Add("Empresa", ventas[i].Zona, familia, ventas[i].Sdvart_CodGen, ventas[i].Sdvart_CodGen, ventas[i].Periodo, 0); } break; case "Vendedor-Familia-Articulo": drv = dtDatos.Select("Vendedor = '" + ventas[i].Vendedor + "' and Articulo = '" + ventas[i].Sdvart_CodGen + "' and Periodo = '" + ventas[i].Periodo + "'"); if (drv.Length == 0) { dtDatos.Rows.Add("Empresa", ventas[i].Vendedor, familia, ventas[i].Sdvart_CodGen, ventas[i].Sdvart_CodGen, ventas[i].Periodo, 0); } break; } } //Ordenar datos switch (TipoReporte) { case "Zona-Familia-Articulo": dtDatos.DefaultView.Sort = "Zona ASC, Familia ASC, Articulo ASC"; break; case "Vendedor-Familia-Articulo": dtDatos.DefaultView.Sort = "Vendedor ASC, Familia ASC, Articulo ASC"; break; } for (int i = 0; i < dtDatos.DefaultView.Count; i++) { string claveActual = Convert.ToString(dtDatos.DefaultView[i][1]) + Convert.ToString(dtDatos.DefaultView[i]["Familia"]) + Convert.ToString(dtDatos.DefaultView[i]["Articulo"]); if (claveAnterior != claveActual) { DataRow dr = dt.NewRow(); dr["Empresa"] = "Empresa"; CedForecastEntidades.ArticuloInfoAdicional familiaXArticulo = familiaXArticulos.Find(delegate(CedForecastEntidades.ArticuloInfoAdicional c) { return c.IdArticulo == Convert.ToString(dtDatos.DefaultView[i]["Articulo"]); }); if (familiaXArticulo == null) { dr["Familia"] = "<<<Desconocida>>>"; Advertencias.Add(new CedForecastEntidades.Advertencia("CTabAC-01", "Artículo " + Convert.ToString(dtDatos.DefaultView[i]["Articulo"]) + " sin familia definida", CedForecastEntidades.Advertencia.TipoSeveridad.Advertencia)); } else { dr["Familia"] = familiaXArticulo.DescrFamiliaArticulo; } CedForecastEntidades.Bejerman.Articulos articulo = articulos.Find(delegate(CedForecastEntidades.Bejerman.Articulos c) { return c.Art_CodGen == Convert.ToString(dtDatos.DefaultView[i]["Articulo"]); }); if (articulo == null) { dr["Articulo"] = Convert.ToString(dtDatos.DefaultView[i]["Articulo"]) + "-<<<Desconocido>>>"; Advertencias.Add(new CedForecastEntidades.Advertencia("CTabAC-02", "Descripción no encontrada para el artículo " + Convert.ToString(dtDatos.DefaultView[i]["Articulo"]), CedForecastEntidades.Advertencia.TipoSeveridad.Advertencia)); precio = 0; } else { dr["Articulo"] = Convert.ToString(dtDatos.DefaultView[i]["Articulo"]) + "-" + articulo.Art_DescGen; precio = articulo.Lpr_Precio; } if (precio == 0) { Advertencias.Add(new CedForecastEntidades.Advertencia("CTabAC-03", "Precio no encontrado para el artículo " + Convert.ToString(dtDatos.DefaultView[i]["Articulo"]), CedForecastEntidades.Advertencia.TipoSeveridad.Error)); } switch (TipoReporte) { case "Zona-Familia-Articulo": CedForecastEntidades.Bejerman.Zona zona = zonas.Find(delegate(CedForecastEntidades.Bejerman.Zona c) { return c.Zon_Cod == Convert.ToString(dtDatos.DefaultView[i]["Zona"]); }); if (zona == null) { dr["Zona"] = Convert.ToString(dtDatos.DefaultView[i]["Zona"]) + "-<<<Desconocido>>>"; Advertencias.Add(new CedForecastEntidades.Advertencia("CTabAC-04", "Descripción no encontrada para la zona " + Convert.ToString(dtDatos.DefaultView[i]["Zona"]), CedForecastEntidades.Advertencia.TipoSeveridad.Advertencia)); } else { dr["Zona"] = Convert.ToString(dtDatos.DefaultView[i]["Zona"]) + "-" + zona.Zon_Desc; } break; case "Vendedor-Familia-Articulo": CedForecastEntidades.Bejerman.Vendedor vendedor = vendedores.Find(delegate(CedForecastEntidades.Bejerman.Vendedor c) { return c.Ven_Cod == Convert.ToString(dtDatos.DefaultView[i]["Vendedor"]); }); if (vendedor == null) { dr["Vendedor"] = Convert.ToString(dtDatos.DefaultView[i]["Vendedor"]) + "-<<<Desconocido>>>"; Advertencias.Add(new CedForecastEntidades.Advertencia("CTabAC-04", "Descripción no encontrada para el vendedor " + Convert.ToString(dtDatos.DefaultView[i]["Vendedor"]), CedForecastEntidades.Advertencia.TipoSeveridad.Advertencia)); } else { dr["Vendedor"] = Convert.ToString(dtDatos.DefaultView[i]["Vendedor"]) + "-" + vendedor.Ven_Desc; } break; } if (!Valorizado) { precio = 1; } else { if (articulo == null) { precio = 0; } else { precio = articulo.Lpr_Precio; } } dr["Total Plan"] = 0; dr["Total Real"] = 0; dt.Rows.Add(dr); claveAnterior = claveActual; } decimal valor = Convert.ToDecimal(dtDatos.DefaultView[i]["Cantidad"]) * precio; dt.Rows[dt.Rows.Count - 1]["Plan-" + dtDatos.DefaultView[i]["Periodo"].ToString()] = valor; //Completo ventas CedForecastEntidades.Bejerman.Ventas venta = new CedForecastEntidades.Bejerman.Ventas(); switch (TipoReporte) { case "Zona-Familia-Articulo": venta = ventas.Find((delegate(CedForecastEntidades.Bejerman.Ventas e) { return e.Zona == dtDatos.DefaultView[i]["Zona"].ToString() && e.Sdvart_CodGen == dtDatos.DefaultView[i]["Articulo"].ToString() && e.Periodo == dtDatos.DefaultView[i]["Periodo"].ToString(); })); break; case "Vendedor-Familia-Articulo": venta = ventas.Find((delegate(CedForecastEntidades.Bejerman.Ventas e) { return e.Vendedor == dtDatos.DefaultView[i]["Vendedor"].ToString() && e.Sdvart_CodGen == dtDatos.DefaultView[i]["Articulo"].ToString() && e.Periodo == dtDatos.DefaultView[i]["Periodo"].ToString(); })); break; } decimal valorReal = 0; if (venta != null) { if (Valorizado) { valorReal = venta.Sdv_ImpTot; } else { valorReal = venta.Sdv_CantUM1; } dt.Rows[dt.Rows.Count - 1]["Real-" + dtDatos.DefaultView[i]["Periodo"].ToString()] = valorReal; } //Sumar a Total dt.Rows[dt.Rows.Count - 1]["Total Plan"] = Convert.ToDecimal(dt.Rows[dt.Rows.Count - 1]["Total Plan"]) + valor; dt.Rows[dt.Rows.Count - 1]["Total Real"] = Convert.ToDecimal(dt.Rows[dt.Rows.Count - 1]["Total Real"]) + valorReal; dt.Rows[dt.Rows.Count - 1]["Desvio Plan"] = 0; if (Convert.ToDecimal(dt.Rows[dt.Rows.Count - 1]["Total Plan"]) > 0) { dt.Rows[dt.Rows.Count - 1]["Desvio Plan"] = (Convert.ToDecimal(dt.Rows[dt.Rows.Count - 1]["Total Real"]) / Convert.ToDecimal(dt.Rows[dt.Rows.Count - 1]["Total Plan"]) - 1) * 100; } dt.AcceptChanges(); } return dt; }
private static DataTable LeerDatosForecastParaFinancieroDS(string PeriodoDesde, string PeriodoHasta, string ListaClientes, List<CedForecastEntidades.Advertencia> Advertencias, CedEntidades.Sesion Sesion) { if (ListaClientes == String.Empty) { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Validaciones.ValorNoInfo("Cliente(s)"); } //Leer datos Forecast CedForecastDB.Forecast db = new CedForecastDB.Forecast(Sesion); DataSet ds = db.LeerDatosForecastParaFinancieroDS(PeriodoDesde, PeriodoHasta, ListaClientes); DataTable dtDatos = ds.Tables[0]; //Leer datos Bejerman List<CedForecastEntidades.Bejerman.Zona> zonas = new CedForecastDB.Bejerman.Zona(Sesion).LeerLista(); List<CedForecastEntidades.Bejerman.Clientes> clientes = new CedForecastDB.Bejerman.Clientes(Sesion).LeerLista(); List<CedForecastEntidades.Bejerman.Articulos> articulos = new CedForecastDB.Bejerman.Articulos(Sesion).LeerListaConPrecios(); //Crear datos de forecast para FinancieroDS DataTable dt = new DataTable(); dt.Columns.Add(ClonarColumna(dtDatos.Columns["Zona"])); dt.Columns.Add(ClonarColumna(dtDatos.Columns["Cliente"])); dt.Columns.Add(ClonarColumna(dtDatos.Columns["Nombre"])); dt.Columns.Add(ClonarColumna(dtDatos.Columns["CondVta"])); dt.Columns.Add(ClonarColumna(dtDatos.Columns["Articulo"])); dt.Columns.Add(ClonarColumna(dtDatos.Columns["Periodo"])); dt.Columns.Add(ClonarColumna(dtDatos.Columns["Cantidad"], "Valor", "Valor")); for (int i = 0; i < dtDatos.Rows.Count; i++) { decimal precio = 0; //Ajustar Periodo en funcion a la condicion de pago. //POR AHORA CONDICION DE PAGO FIJA (90 dias = 3 meses). DateTime fechaAux = Convert.ToDateTime("01/" + dtDatos.Rows[i]["Periodo"].ToString().Substring(4, 2) + "/" + dtDatos.Rows[i]["Periodo"].ToString().Substring(0, 4)); string nuevoPeriodo = fechaAux.AddMonths(3).ToString("yyyyMM"); // if (Convert.ToInt32(nuevoPeriodo) <= Convert.ToInt32(PeriodoHasta)) { DataRow dr = dt.NewRow(); dr["Periodo"] = nuevoPeriodo; CedForecastEntidades.Bejerman.Articulos articulo = articulos.Find(delegate(CedForecastEntidades.Bejerman.Articulos c) { return c.Art_CodGen == Convert.ToString(dtDatos.Rows[i]["Articulo"]); }); if (articulo == null) { dr["Articulo"] = Convert.ToString(dtDatos.Rows[i]["Articulo"]) + "-<<<Desconocido>>>"; Advertencias.Add(new CedForecastEntidades.Advertencia("CTabAC-Forecast-01", "Descripción no encontrada para el artículo " + Convert.ToString(dtDatos.Rows[i]["Articulo"]), CedForecastEntidades.Advertencia.TipoSeveridad.Advertencia)); precio = 0; } else { dr["Articulo"] = Convert.ToString(dtDatos.Rows[i]["Articulo"]) + "-" + articulo.Art_DescGen; precio = articulo.Lpr_Precio; } if (precio == 0) { Advertencias.Add(new CedForecastEntidades.Advertencia("CTabAC-Forecast-02", "Precio no encontrado para el artículo " + Convert.ToString(dtDatos.Rows[i]["Articulo"]), CedForecastEntidades.Advertencia.TipoSeveridad.Error)); } //Zona CedForecastEntidades.Bejerman.Zona zona = zonas.Find(delegate(CedForecastEntidades.Bejerman.Zona c) { return c.Zon_Cod == Convert.ToString(dtDatos.Rows[i]["Zona"]); }); if (zona == null) { dr["Zona"] = Convert.ToString(dtDatos.Rows[i]["Zona"]) + "-<<<Desconocido>>>"; Advertencias.Add(new CedForecastEntidades.Advertencia("CTabAC-Forecast-03", "Descripción no encontrada para la zona " + Convert.ToString(dtDatos.Rows[i]["Zona"]), CedForecastEntidades.Advertencia.TipoSeveridad.Advertencia)); } else { dr["Zona"] = Convert.ToString(dtDatos.Rows[i]["Zona"]); // +"-" + zona.Zon_Desc; } //Cliente CedForecastEntidades.Bejerman.Clientes cliente = clientes.Find(delegate(CedForecastEntidades.Bejerman.Clientes c) { return c.Cli_Cod == Convert.ToString(dtDatos.Rows[i]["Cliente"]); }); if (cliente == null) { dr["Cliente"] = Convert.ToString(dtDatos.Rows[i]["Cliente"]); dr["Nombre"] = "<<<Desconocido>>>"; Advertencias.Add(new CedForecastEntidades.Advertencia("CTabAC-Forecast-04", "Descripción no encontrada para el cliente " + Convert.ToString(dtDatos.Rows[i]["Cliente"]) + "-" + dr["Nombre"].ToString(), CedForecastEntidades.Advertencia.TipoSeveridad.Advertencia)); } else { dr["Cliente"] = Convert.ToString(dtDatos.Rows[i]["Cliente"]); // + "-" + cliente.Cli_RazSoc; dr["Nombre"] = Convert.ToString(dtDatos.Rows[i]["Nombre"]); } if (articulo == null) { precio = 0; } else { precio = articulo.Lpr_Precio; } decimal valor = Convert.ToDecimal(dtDatos.Rows[i]["Cantidad"]) * precio; dr["Valor"] = valor; dt.Rows.Add(dr); } } return dt; }
public static DataTable CrossTabArticulosClientes(string IdPeriodoDesde, string IdPeriodoHasta, string TipoReporte, string ListaArticulos, string ListaClientes, string ListaVendedores, bool Valorizado, CedEntidades.Sesion Sesion, out List<CedForecastEntidades.Advertencia> Advertencias) { Advertencias = new List<CedForecastEntidades.Advertencia>(); //Validacion de parámetros if (ListaArticulos == String.Empty) { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Validaciones.ValorNoInfo("Articulo(s)"); } if (ListaClientes == String.Empty) { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Validaciones.ValorNoInfo("Cliente(s)"); } switch (TipoReporte) { case "Artículos-Vendedores": case "Vendedores-Artículos": if (ListaVendedores == String.Empty) { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Validaciones.ValorNoInfo("Vendedor(es)"); } break; } //Leer datos Forecast CedForecastDB.Forecast db = new CedForecastDB.Forecast(Sesion); DataSet ds = db.LeerDatosParaCrossTabArticulosClientes(IdPeriodoDesde, IdPeriodoHasta, TipoReporte, ListaArticulos, ListaClientes, ListaVendedores); DataTable dtArticulos = ds.Tables[0]; DataTable dtVendedores = ds.Tables[1]; DataTable dtClientes = ds.Tables[2]; DataTable dtDatos = ds.Tables[3]; //Leer datos Bejerman List<CedForecastEntidades.Bejerman.Articulos> articulos = new CedForecastDB.Bejerman.Articulos(Sesion).LeerListaConPrecios(dtArticulos); List<CedForecastEntidades.Bejerman.Vendedor> vendedores = new CedForecastDB.Bejerman.Vendedor(Sesion).LeerLista(dtVendedores); List<CedForecastEntidades.Bejerman.Clientes> clientes = new CedForecastDB.Bejerman.Clientes(Sesion).LeerLista(dtClientes); List<CedForecastEntidades.ArticuloInfoAdicional> familiaXArticulos = new CedForecastDB.ArticuloInfoAdicional(Sesion).LeerLista(); //Crear crosstab DataTable dt = new DataTable(); bool incluyeVendedor = false; switch (TipoReporte) { case "Artículos-Vendedores": dt.Columns.Add(ClonarColumna(dtDatos.Columns["Articulo"], "Familia", "Familia")); dt.Columns.Add(ClonarColumna(dtDatos.Columns["Articulo"])); dt.Columns.Add(ClonarColumna(dtDatos.Columns["Vendedor"])); incluyeVendedor = true; break; case "Vendedores-Artículos": dt.Columns.Add(ClonarColumna(dtDatos.Columns["Vendedor"])); dt.Columns.Add(ClonarColumna(dtDatos.Columns["Articulo"], "Familia", "Familia")); dt.Columns.Add(ClonarColumna(dtDatos.Columns["Articulo"])); incluyeVendedor = true; break; case "Sólo Artículos": dt.Columns.Add(ClonarColumna(dtDatos.Columns["Articulo"], "Familia", "Familia")); dt.Columns.Add(ClonarColumna(dtDatos.Columns["Articulo"])); break; } dt.Columns.Add(ClonarColumna(dtDatos.Columns["Cantidad"], "Total", "Total")); for (int i = 0; i < dtClientes.Rows.Count; i++) { string nombreColumna = Convert.ToString(dtClientes.Rows[i]["Cliente"]); string tituloColumna = nombreColumna; CedForecastEntidades.Bejerman.Clientes cliente = clientes.Find(delegate(CedForecastEntidades.Bejerman.Clientes c) { return c.Cli_Cod == nombreColumna; }); if (cliente != null) { tituloColumna += "-" + cliente.Cli_RazSoc; } dt.Columns.Add(ClonarColumna(dtDatos.Columns["Cantidad"], nombreColumna, " " + tituloColumna)); } //Llenar crosstab string claveAnterior = String.Empty; decimal precio = -1; for (int i = 0; i < dtDatos.Rows.Count; i++) { string claveActual=Convert.ToString(dtDatos.Rows[i]["Articulo"]); if (incluyeVendedor) { claveActual += Convert.ToString(dtDatos.Rows[i]["Vendedor"]); } if (claveAnterior != claveActual) { if (precio == 0) { Advertencias.Add(new CedForecastEntidades.Advertencia("CTabAC-03", "Precio no encontrado para el artículo " + Convert.ToString(dt.Rows[dt.Rows.Count - 1]["Articulo"]), CedForecastEntidades.Advertencia.TipoSeveridad.Error)); } DataRow dr = dt.NewRow(); CedForecastEntidades.ArticuloInfoAdicional articuloConFamilia = familiaXArticulos.Find(delegate(CedForecastEntidades.ArticuloInfoAdicional c) { return c.IdArticulo == Convert.ToString(dtDatos.Rows[i]["Articulo"]); }); if (articuloConFamilia == null) { dr["Familia"] = "<<<Desconocida>>>"; Advertencias.Add(new CedForecastEntidades.Advertencia("CTabAC-01", "Artículo " + Convert.ToString(dtDatos.Rows[i]["Articulo"]) + " sin familia definida", CedForecastEntidades.Advertencia.TipoSeveridad.Advertencia)); } else { dr["Familia"] = articuloConFamilia.DescrFamiliaArticulo; } CedForecastEntidades.Bejerman.Articulos articulo = articulos.Find(delegate(CedForecastEntidades.Bejerman.Articulos c) { return c.Art_CodGen==Convert.ToString(dtDatos.Rows[i]["Articulo"]); }); if (articulo == null) { dr["Articulo"] = Convert.ToString(dtDatos.Rows[i]["Articulo"]) + "-<<<Desconocido>>>"; Advertencias.Add(new CedForecastEntidades.Advertencia("CTabAC-02", "Descripción no encontrada para el artículo " + Convert.ToString(dtDatos.Rows[i]["Articulo"]), CedForecastEntidades.Advertencia.TipoSeveridad.Advertencia)); precio = 0; } else { dr["Articulo"] = Convert.ToString(dtDatos.Rows[i]["Articulo"]) + "-" + articulo.Art_DescGen + " ("+articulo.Artcla_Cod+")"; precio = articulo.Lpr_Precio; } if (!Valorizado) { precio = 1; } else { if (articulo == null) { precio = 0; } else { precio = articulo.Lpr_Precio; } } if (incluyeVendedor) { CedForecastEntidades.Bejerman.Vendedor vendedor = vendedores.Find(delegate(CedForecastEntidades.Bejerman.Vendedor c) { return c.Ven_Cod == Convert.ToString(dtDatos.Rows[i]["Vendedor"]); }); if (vendedor == null) { dr["Vendedor"] = Convert.ToString(dtDatos.Rows[i]["Vendedor"]) + "-<<<Desconocido>>>"; } else { dr["Vendedor"] = Convert.ToString(dtDatos.Rows[i]["Vendedor"]) + "-" + vendedor.Ven_Desc; } } dr["Total"] = 0; dt.Rows.Add(dr); claveAnterior = claveActual; } decimal valor = Convert.ToDecimal(dtDatos.Rows[i]["Cantidad"]) * precio; dt.Rows[dt.Rows.Count - 1][Convert.ToString(dtDatos.Rows[i]["Cliente"])] = valor; dt.Rows[dt.Rows.Count - 1]["Total"] = Convert.ToDecimal(dt.Rows[dt.Rows.Count - 1]["Total"]) + valor; dt.AcceptChanges(); } return dt; }
public List<CedForecastEntidades.Articulo> LeerListaXFamilia(string ListaFamilias) { List<CedForecastEntidades.Articulo> lista = new List<CedForecastEntidades.Articulo>(); if (ListaFamilias != String.Empty) { DataTable dt = new DataTable(); System.Text.StringBuilder a = new StringBuilder(); a.Append("select ArticuloInfoAdicional.IdArticulo, ArticuloInfoAdicional.IdFamiliaArticulo, FamiliaArticulo.DescrFamiliaArticulo "); a.Append("from ArticuloInfoAdicional, FamiliaArticulo "); a.Append("where ArticuloInfoAdicional.IdFamiliaArticulo=FamiliaArticulo.IdFamiliaArticulo collate database_default "); a.Append("and ArticuloInfoAdicional.IdFamiliaArticulo in (" + ListaFamilias.ToString() + ") "); a.Append("order by FamiliaArticulo.DescrFamiliaArticulo, ArticuloInfoAdicional.IdArticulo "); dt = (DataTable)Ejecutar(a.ToString(), TipoRetorno.TB, Transaccion.NoAcepta, sesion.CnnStr); if (dt.Rows.Count != 0) { List<CedForecastEntidades.Bejerman.Articulos> articulos = new CedForecastDB.Bejerman.Articulos(sesion).LeerLista(); for (int i = 0; i < dt.Rows.Count; i++) { CedForecastEntidades.Articulo elemento = new CedForecastEntidades.Articulo(); elemento.Id = Convert.ToString(dt.Rows[i]["IdArticulo"]); CedForecastEntidades.Bejerman.Articulos articulo = articulos.Find(delegate(CedForecastEntidades.Bejerman.Articulos c) { return c.Art_CodGen == Convert.ToString(dt.Rows[i]["IdArticulo"]); }); if (articulo == null) { elemento.Descr = "<<<Desconocido>>>"; } else { elemento.Descr = articulo.Art_DescGen; } elemento.Familia = new CedForecastEntidades.FamiliaArticulo(); elemento.Familia.Id = Convert.ToString(dt.Rows[i]["IdFamiliaArticulo"]); elemento.Familia.Descr = Convert.ToString(dt.Rows[i]["DescrFamiliaArticulo"]); lista.Add(elemento); } } } return lista; }
public List<CedForecastEntidades.Articulo> LeerArticulosSinFamilia() { List<CedForecastEntidades.Articulo> lista = new List<CedForecastEntidades.Articulo>(); System.Text.StringBuilder a = new StringBuilder(); a.Append("select distinct(IdArticulo) as Articulo from Forecast where IdArticulo collate database_default not in (select IdArticulo from ArticuloInfoAdicional) "); DataTable dt = (DataTable)Ejecutar(a.ToString(), TipoRetorno.TB, Transaccion.NoAcepta, sesion.CnnStr); List<CedForecastEntidades.Bejerman.Articulos> articulos = new CedForecastDB.Bejerman.Articulos(sesion).LeerListaConPrecios(dt); for (int i = 0; i < dt.Rows.Count; i++) { CedForecastEntidades.Articulo elemento = new CedForecastEntidades.Articulo(); elemento.Id = Convert.ToString(dt.Rows[i]["Articulo"]); CedForecastEntidades.Bejerman.Articulos articulo = articulos.Find(delegate(CedForecastEntidades.Bejerman.Articulos c) { return c.Art_CodGen == Convert.ToString(dt.Rows[i]["Articulo"]); }); if (articulo == null) { elemento.Descr = Convert.ToString("<<<Desconocido>>>"); } else { elemento.Descr = Convert.ToString(articulo.Art_DescGen); } lista.Add(elemento); } return lista; }