예제 #1
0
                public void Mostrar(Lbl.Articulos.Articulo articulo)
                {
                        this.EtiquetaTitulo.Text = "Conformación de existencias de " + articulo.ToString();

                        ListaConformacion.BeginUpdate();
                        ListaConformacion.Items.Clear();
                        System.Data.DataTable Situaciones = this.Connection.Select("SELECT id_situacion, nombre FROM articulos_situaciones WHERE id_situacion IN (SELECT DISTINCT id_situacion FROM articulos_stock WHERE id_articulo=" + articulo.Id.ToString() + ")");
                        
                        foreach (System.Data.DataRow Situacion in Situaciones.Rows) {
                                ListViewGroup Grupo = ListaConformacion.Groups.Add(Situacion["id_situacion"].ToString(), Situacion["nombre"].ToString());
                                System.Data.DataTable Articulos = this.Connection.Select("SELECT serie, cantidad FROM articulos_series WHERE cantidad<>0 AND id_articulo=" + articulo.Id.ToString() + " AND id_situacion=" + Situacion["id_situacion"].ToString());
                                foreach(System.Data.DataRow Articulo in Articulos.Rows){
                                        string Serie = Articulo["serie"].ToString();
                                        ListViewItem Itm = ListaConformacion.Items.Add(Serie);
                                        Itm.SubItems[0].Text = Serie;
                                        Itm.SubItems.Add(Lfx.Types.Formatting.FormatStock(System.Convert.ToDecimal(Articulo["cantidad"]), Lbl.Sys.Config.Articulos.Decimales));
                                        Itm.Group = Grupo;
                                }
                        }

                        DataTable Stocks = this.Connection.Select("SELECT id_articulo, id_situacion, cantidad FROM articulos_stock WHERE id_articulo=" + articulo.Id.ToString() + " AND cantidad<>0 AND id_situacion<>998 AND id_situacion<>999 ORDER BY id_situacion");

                        if (Stocks != null) {
                                ListViewGroup Grupo = ListaConformacion.Groups.Add("000", "Totales por depósito");

                                foreach (System.Data.DataRow Stock in Stocks.Rows) {
                                        Lfx.Data.Row Situacion = this.Connection.Row("articulos_situaciones", "id_situacion", System.Convert.ToInt32(Stock["id_situacion"]));

                                        ListViewItem Itm = ListaConformacion.Items.Add(Situacion["nombre"].ToString());
                                        Itm.SubItems.Add(Lfx.Types.Formatting.FormatStock(System.Convert.ToDecimal(Stock["cantidad"]), Lbl.Sys.Config.Articulos.Decimales));

                                        Itm.Group = Grupo;
                                }
                        }

                        ListaConformacion.EndUpdate();
                }
예제 #2
0
 public Lfx.Types.OperationResult Entregar(Lbl.Comprobantes.Recibo reciboDePago)
 {
         this.Estado = 11;
         this.AgregarComentario("Entregado s/" + reciboDePago.ToString());
         this.ReciboPago = reciboDePago;
         return this.Guardar();
 }
예제 #3
0
 public void Mostrar(Lbl.ElementoDeDatos elemento)
 {
         this.Text = "Historial de " + elemento.ToString();
         this.Mostrar(elemento.TablaDatos, elemento.Id);
 }
예제 #4
0
                public void FromRow(Lbl.IElementoDeDatos row)
                {
                        // Si todavía no conozco el tipo de elemento de este formulario, lo tomo de row
                        if (this.ElementoTipo == null || this.ElementoTipo == typeof(Lbl.ElementoDeDatos))
                                this.ElementoTipo = row.GetType();

                        this.ReadOnly = true;
                        this.Connection = row.Connection;
                        this.Elemento = row;

                        if (this.Encabezado.Visible && this.Encabezado.DisplayStyle.Icon == null) {
                                if (this.Elemento.Existe)
                                        this.StockImage = "editar";
                                else
                                        this.StockImage = "crear";
                        }

                        bool PuedeVerHistorial = Lbl.Sys.Config.Actual.UsuarioConectado.TienePermiso(this.Elemento, Lbl.Sys.Permisos.Operaciones.Administrar) || Lbl.Sys.Config.Actual.UsuarioConectado.TienePermiso(typeof(Lbl.Sys.Log.Entrada), Lbl.Sys.Permisos.Operaciones.Ver);
                        this.PanelAccionesTerciarias.FormActions["historial"].Visibility = (this.Elemento.Existe && PuedeVerHistorial) ? Lazaro.Pres.Forms.FormActionVisibility.Tertiary : Lazaro.Pres.Forms.FormActionVisibility.Hidden;
                        this.PanelAccionesTerciarias.FormActions["comentarios"].Visibility = this.Elemento.Existe ? Lazaro.Pres.Forms.FormActionVisibility.Tertiary : Lazaro.Pres.Forms.FormActionVisibility.Hidden;

                        Lbl.Atributos.Presentacion AttrMuestraPanel = this.ElementoTipo.GetAttribute<Lbl.Atributos.Presentacion>();
                        if (AttrMuestraPanel != null) {
                                EntradaComentarios.Visible = this.Elemento.Existe;
                                MuestraPanel = AttrMuestraPanel.PanelExtendido;
                                this.PanelAccionesTerciarias.FormActions["panelextendido"].Visibility = (MuestraPanel != Lbl.Atributos.PanelExtendido.Nunca) ? Lazaro.Pres.Forms.FormActionVisibility.Tertiary : Lazaro.Pres.Forms.FormActionVisibility.Hidden;
                        }

                        if (this.ControlUnico != null) {
                                this.ControlUnico.FromRow(row);
                                if (this.MuestraPanel != Lbl.Atributos.PanelExtendido.Nunca) {
                                        if (row is Lbl.IElementoConImagen) {
                                                EntradaImagen.Elemento = row;
                                                EntradaImagen.ActualizarControl();
                                                EntradaImagen.Visible = true;
                                        } else {
                                                EntradaImagen.Visible = false;
                                        }

                                        EntradaComentarios.Elemento = row;
                                        EntradaTags.Elemento = row;

                                        EntradaComentarios.ActualizarControl();
                                        EntradaTags.ActualizarControl();

                                        if (MuestraPanel == Lbl.Atributos.PanelExtendido.Siempre)
                                                PanelExtendido.Show();
                                }
                        }

                        Lbl.Atributos.Nomenclatura Attr = this.ElementoTipo.GetAttribute<Lbl.Atributos.Nomenclatura>();
                        if (row != null && row.Existe) {
                                if (Attr != null && Attr.PrefijarNombreConTipo)
                                        this.Text = Attr.NombreSingular + " " + row.ToString();
                                else
                                        this.Text = row.ToString();
                        } else {
                                if (Attr != null)
                                        this.Text = "Creando " + Attr.NombreSingular.ToLowerInvariant();
                                else
                                        this.Text = "Creando " + row.GetType().ToString();
                        }

                        this.ReadOnly = !this.PuedeEditar();

                        this.PanelAccionesPrimariasYSecundarias.FormActions["imprimir"].Visibility = this.PuedeImprimir() ? Lazaro.Pres.Forms.FormActionVisibility.Main : Lazaro.Pres.Forms.FormActionVisibility.Hidden;
                        this.ActualizarFormActions();
                        this.SetControlsChanged(this.Controls, false);
                }
예제 #5
0
                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();
                        }
                }
예제 #6
0
                public ChatControl IniciarChat(Lbl.Personas.Persona personaRemota, string estacionRemota)
                {
                        if (this.InvokeRequired) {
                                object Res = this.Invoke((Func<object>)(delegate { return this.IniciarChat(personaRemota, estacionRemota); }));
                                return Res as ChatControl;
                        } else {

                                ChatControl NuevoCtrl = new ChatControl();

                                NuevoCtrl.Margin = new Padding(8);
                                NuevoCtrl.Dock = DockStyle.Fill;
                                NuevoCtrl.Visible = true;
                                this.SuspendLayout();
                                this.Controls.Add(NuevoCtrl);
                                this.ResumeLayout(true);

                                NuevoCtrl.IniciarChat(personaRemota, estacionRemota);

                                ToolStripButton Pestania = new ToolStripButton(personaRemota.ToString());
                                Pestania.Margin = new System.Windows.Forms.Padding(2);
                                Pestania.Tag = NuevoCtrl;
                                Pestania.Checked = true;
                                this.Pestanias.Items.Add(Pestania);

                                NuevoCtrl.Select();
                                Listado.Visible = false;

                                return NuevoCtrl;
                        }
                }