public void MostrarListaBackups() { BackupManager.BackupPath = System.IO.Path.Combine(Lbl.Sys.Config.CarpetaEmpresa, "Copias de seguridad" + System.IO.Path.DirectorySeparatorChar); List <Lfx.Backups.BackupInfo> Backups = this.BackupManager.GetBackups(); string BackupMasNuevo = this.BackupManager.GetNewestBackupName(); Listado.BeginUpdate(); Listado.Items.Clear(); int i = 1; foreach (Lfx.Backups.BackupInfo Backup in Backups) { ListViewItem Itm = new ListViewItem(i.ToString("0000")); Itm = Listado.Items.Add(Backup.Name); if (BackupMasNuevo == Backup.Name) { Itm.Font = new Font(Itm.Font, FontStyle.Bold); } Itm.SubItems.Add(i.ToString("00")); Itm.SubItems.Add(Lfx.Types.Formatting.FormatSmartDateAndTime(Backup.BackupDate)); Itm.SubItems.Add(Backup.UserName); i++; } Listado.EndUpdate(); }
internal void Refrescar() { Listado.Items.Clear(); if (this.Connection != null) { if (m_Table.Length > 0 && m_KeyField.Length > 0 && m_DetailField != null && m_DetailField.Length > 0) { string TextoSql = null; string TextoBuscar = EntradaBuscar.Text; TextoBuscar = this.Connection.EscapeString(TextoBuscar.Replace(" ", " ").Trim()); if (m_Table.Length >= 7 && m_Table.Substring(0, 7) == "SELECT ") { TextoSql = m_Table; } else { TextoSql = "SELECT " + m_KeyField + ", " + m_DetailField; if (m_ExtraDetailFields != null && m_ExtraDetailFields.Length > 0) { if (m_Table == "articulos" && m_ExtraDetailFields.IndexOf("pvp") != -1) { Lbl.Impuestos.Alicuota Ali = Lbl.Sys.Config.Empresa.AlicuotaPredeterminada; string newCampo = "if (id_categoria is null,pvp * (1+" + Ali.Porcentaje.ToString() + "/100),pvpIva(id_articulo)) as pvp"; TextoSql += ", " + m_ExtraDetailFields.Replace("pvp", newCampo); } else { TextoSql += ", " + m_ExtraDetailFields; } } // Si es la tabla de artículos, muestro algunas cosas más if (m_Table == "articulos") { TextoSql += ", control_stock, stock_actual, pedido, destacado"; } TextoSql += " FROM " + m_Table; bool AgregueWhere = false; if (TextoBuscar != null && TextoBuscar.Length > 1) { TextoSql += " WHERE (" + m_DetailField + " LIKE '%" + TextoBuscar.Replace(" ", "%' AND " + m_DetailField + " LIKE '%") + "%'"; AgregueWhere = true; } else if (TextoBuscar != null && TextoBuscar.Length > 0) { TextoSql += " WHERE (" + m_DetailField + " LIKE '" + this.Connection.EscapeString(TextoBuscar) + "%'"; AgregueWhere = true; } if (m_ExtraDetailFields != null && m_ExtraDetailFields.Length > 0 && TextoBuscar != null && TextoBuscar.Length > 1) { string TempExtraDetailFields = m_ExtraDetailFields; string TempWhere = ""; string ExtraField = Lfx.Types.Strings.GetNextToken(ref TempExtraDetailFields, ","); while (ExtraField.Length > 0) { if (TempWhere.Length == 0) { TempWhere += ExtraField + " LIKE '%" + TextoBuscar + "%'"; } else { TempWhere += " OR " + ExtraField + " LIKE '%" + TextoBuscar + "%'"; } ExtraField = Lfx.Types.Strings.GetNextToken(ref TempExtraDetailFields, ","); } TextoSql += " OR (" + TempWhere + ")"; if (m_Table == "articulos") { TextoSql += " OR (id_articulo='" + TextoBuscar + "')"; } } if (AgregueWhere) { TextoSql += ") "; } if (m_Filter != null && m_Filter.Length > 0) { if (AgregueWhere) { TextoSql += " AND (" + m_Filter + ")"; } else { TextoSql += " WHERE " + m_Filter; } } if (m_Table == "articulos") { TextoSql += " ORDER BY IF(stock_actual+pedido>0,0,1), " + m_DetailField; } else { TextoSql += " ORDER BY " + m_DetailField; } // TODO: Código dependiente de MySql/PostgreSql. Pasar a qGen.SqlCommandBuilder if (Lfx.Workspace.Master.SlowLink) { TextoSql += " LIMIT 40"; } else { TextoSql += " LIMIT 100"; } } System.Data.DataTable TableRes = this.Connection.Select(TextoSql); Listado.SuspendLayout(); Listado.BeginUpdate(); foreach (System.Data.DataRow OrgRow in TableRes.Rows) { Lfx.Data.Row RowRes = (Lfx.Data.Row)OrgRow; ListViewItem itm = Listado.Items.Add(RowRes.Fields[m_KeyField].ValueInt.ToString("00000")); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, RowRes.Fields[m_DetailField].ValueString)); if (m_ExtraDetailFields != null && m_ExtraDetailFields.Length > 0) { string TempExtraDetailFields = m_ExtraDetailFields; string Campo = Lfx.Types.Strings.GetNextToken(ref TempExtraDetailFields, ",").Trim(); while (Campo.Length > 0) { if (RowRes.Fields[Campo].Value == null) { itm.SubItems.Add(""); } else { switch (RowRes[Campo].GetType().ToString()) { case "System.Single": case "System.Double": case "System.Decimal": itm.SubItems.Add(Lfx.Types.Formatting.FormatNumber(RowRes.Fields[Campo].ValueDecimal, 4)); break; default: itm.SubItems.Add(System.Convert.ToString(RowRes.Fields[Campo].Value)); break; } } Campo = Lfx.Types.Strings.GetNextToken(ref TempExtraDetailFields, ",").Trim(); } } // TODO: que tome m_ExtraDetailFields esto en cuenta if (m_Table == "articulos") { if (System.Convert.ToInt32(RowRes["control_stock"]) != 0 && System.Convert.ToDouble(RowRes["stock_actual"]) <= 0) { // No hay stock. if (System.Convert.ToDouble(RowRes["pedido"]) + System.Convert.ToDouble(RowRes["stock_actual"]) > 0) { // Pero hay pedido suficiente para cubrir un stock negativo y sobra itm.ForeColor = System.Drawing.Color.OrangeRed; itm.Font = new Font(itm.Font, FontStyle.Regular); } else { itm.ForeColor = System.Drawing.Color.Red; itm.Font = new Font(itm.Font, FontStyle.Strikeout); } } else if (System.Convert.ToInt32(RowRes["destacado"]) != 0) { itm.ForeColor = System.Drawing.Color.DarkGreen; itm.Font = new Font(itm.Font, FontStyle.Regular); } } } Listado.EndUpdate(); Listado.ResumeLayout(); if (Listado.Items.Count > 0 && Listado.SelectedItems.Count == 0) { Listado.Items[0].Selected = true; } MostrarEtiquetas(); } } }
public void Mostrar(Lbl.Articulos.Articulo articulo) { Listado.BeginUpdate(); Listado.Items.Clear(); this.EtiquetaTitulo.Text = "Historial de entrada y salida de " + articulo.ToString(); System.Data.DataTable Detalles = this.Connection.Select("SELECT id_movim, id_articulo, desdesituacion, haciasituacion, cantidad, series, fecha, saldo, obs FROM articulos_movim WHERE id_articulo=" + articulo.Id.ToString() + " ORDER BY fecha"); ListViewItem itm = null; foreach (System.Data.DataRow Detalle in Detalles.Rows) { string DesdeSituacion = "Público"; string HaciaSituacion = "Público"; Detalle["desdesituacion"] = Lfx.Data.Connection.ConvertDBNullToZero(Detalle["desdesituacion"]); Detalle["haciasituacion"] = Lfx.Data.Connection.ConvertDBNullToZero(Detalle["haciasituacion"]); if (System.Convert.ToInt32(Detalle["desdesituacion"]) != 0) { if (SituacionCache.ContainsKey(System.Convert.ToInt32(Detalle["desdesituacion"])) == false) { SituacionCache[System.Convert.ToInt32(Detalle["desdesituacion"])] = this.Connection.FieldString("SELECT nombre FROM articulos_situaciones WHERE id_situacion=" + Detalle["desdesituacion"].ToString()); } DesdeSituacion = SituacionCache[(int)Detalle["desdesituacion"]]; } if (System.Convert.ToInt32(Detalle["haciasituacion"]) != 0) { if (SituacionCache.ContainsKey((int)Detalle["haciasituacion"]) == false) { SituacionCache[(int)Detalle["haciasituacion"]] = this.Connection.FieldString("SELECT nombre FROM articulos_situaciones WHERE id_situacion=" + Detalle["haciasituacion"].ToString()); } HaciaSituacion = SituacionCache[(int)Detalle["haciasituacion"]]; } itm = Listado.Items.Add(System.Convert.ToString(Detalle["id_movim"])); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Lfx.Types.Formatting.FormatDateAndTime(System.Convert.ToDateTime(Detalle["fecha"])))); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Lfx.Types.Formatting.FormatNumber(System.Convert.ToDecimal(Detalle["cantidad"]), Lbl.Sys.Config.Articulos.Decimales))); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Detalle["series"].ToString())); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, DesdeSituacion)); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, HaciaSituacion)); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Lfx.Types.Formatting.FormatNumber(System.Convert.ToDecimal(Detalle["saldo"]), Lbl.Sys.Config.Articulos.Decimales))); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, System.Convert.ToString(Detalle["obs"]))); } Listado.EndUpdate(); if (itm != null) { itm.Selected = true; itm.Focused = true; itm.EnsureVisible(); } ListadoPedidos.BeginUpdate(); ListadoPedidos.Items.Clear(); System.Data.DataTable Pedidos = this.Connection.Select(@"SELECT comprob.id_comprob, comprob.fecha, comprob.id_cliente, comprob.tipo_fac, comprob.numero, comprob_detalle.cantidad, comprob_detalle.precio, comprob.estado FROM comprob, comprob_detalle WHERE comprob.id_comprob=comprob_detalle.id_comprob AND comprob.compra=1 AND comprob.tipo_fac='PD' AND comprob.estado=50 AND comprob_detalle.id_articulo=" + articulo.Id.ToString() + @" ORDER BY comprob.fecha" ); itm = null; foreach (System.Data.DataRow Pedido in Pedidos.Rows) { itm = ListadoPedidos.Items.Add(System.Convert.ToString(Pedido["id_comprob"])); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, this.Connection.FieldString("SELECT nombre_visible FROM personas WHERE id_persona=" + Lfx.Data.Connection.ConvertDBNullToZero(Pedido["id_cliente"]).ToString()))); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, System.Convert.ToString(Pedido["numero"]))); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Lfx.Types.Formatting.FormatDateAndTime(System.Convert.ToDateTime(Pedido["fecha"])))); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Lfx.Types.Formatting.FormatNumber(System.Convert.ToDecimal(Pedido["cantidad"]), Lbl.Sys.Config.Articulos.Decimales))); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Lfx.Types.Formatting.FormatNumber(System.Convert.ToDecimal(Pedido["precio"]), Lfx.Workspace.Master.CurrentConfig.Moneda.DecimalesCosto))); switch (System.Convert.ToInt32(Pedido["estado"])) { case 50: itm.ForeColor = System.Drawing.Color.DarkOrange; break; case 100: itm.ForeColor = System.Drawing.Color.DarkGreen; break; case 200: itm.ForeColor = System.Drawing.Color.DarkRed; itm.Font = new Font(itm.Font, System.Drawing.FontStyle.Strikeout); break; } } ListadoPedidos.EndUpdate(); if (itm != null) { itm.Selected = true; itm.Focused = true; itm.EnsureVisible(); } }