예제 #1
0
        public virtual Lfx.Types.OperationResult OnCreate()
        {
            if (Lbl.Sys.Config.Actual.UsuarioConectado.TienePermiso(this.Definicion.ElementoTipo, Lbl.Sys.Permisos.Operaciones.Crear))
            {
                Lbl.IElementoDeDatos NuevoElem = this.Crear();
                if (NuevoElem == null)
                {
                    return(new Lfx.Types.CancelOperationResult());
                }

                Lfc.FormularioEdicion FormNuevo = Lfc.Instanciador.InstanciarFormularioEdicion(NuevoElem);
                if (FormNuevo != null)
                {
                    FormNuevo.MdiParent = this.MdiParent;
                    FormNuevo.Show();

                    return(new Lfx.Types.SuccessOperationResult());
                }
                else
                {
                    return(new Lfx.Types.FailureOperationResult("No se puede crear el elemento"));
                }
            }
            else
            {
                return(new Lfx.Types.NoAccessOperationResult());
            }
        }
예제 #2
0
        private void CrearReciboParaEstaFactura()
        {
            Lbl.Comprobantes.ComprobanteConArticulos Factura = this.Elemento as Lbl.Comprobantes.ComprobanteConArticulos;
            Lbl.Comprobantes.ReciboDeCobro           Recibo  = new Lbl.Comprobantes.ReciboDeCobro(Lfx.Workspace.Master.GetNewConnection("Nuevo recibo para " + Factura.ToString()) as Lfx.Data.Connection);
            Recibo.Crear();
            Recibo.Facturas.AddWithValue(Factura, Factura.ImporteImpago);
            Recibo.Cliente = Factura.Cliente;

            Recibo.Concepto      = Lbl.Cajas.Concepto.IngresosPorFacturacion;
            Recibo.ConceptoTexto = "Cancelación de " + Factura.ToString();

            Lfc.FormularioEdicion NuevoRecibo = Lfc.Instanciador.InstanciarFormularioEdicion(Recibo);
            NuevoRecibo.MdiParent = this.ParentForm.MdiParent;
            NuevoRecibo.Show();
        }
예제 #3
0
 private void BotonNotaDeb_Click(object sender, System.EventArgs e)
 {
     if (this.Cliente != null)
     {
         Lbl.Comprobantes.NotaDeDebito Nota = new Lbl.Comprobantes.NotaDeDebito(this.Connection);
         Nota.Crear();
         Nota.Cliente = this.Cliente;
         Lfc.FormularioEdicion FormularioNota = Lfc.Instanciador.InstanciarFormularioEdicion(Nota);
         FormularioNota.Connection = this.Connection;
         FormularioNota.MdiParent  = this.MdiParent;
         FormularioNota.Show();
     }
     else
     {
         Lui.Forms.MessageBox.Show("Debe seleccionar una persona. Utilice la opción Filtros (tecla <F2>).", "Error");
     }
 }
예제 #4
0
        private Lfx.Types.OperationResult AsociarPresupuesto()
        {
            Lbl.Tareas.Tarea Tarea = this.Elemento as Lbl.Tareas.Tarea;

            if (Tarea.Presupuesto == null)
            {
                using (Comprobantes.Seleccionar SelPresup = new Comprobantes.Seleccionar()) {
                    SelPresup.AceptarAnuladas   = false;
                    SelPresup.AceptarNoImpresas = true;
                    SelPresup.AceptarCanceladas = true;
                    SelPresup.Cliente           = EntradaCliente.Elemento as Lbl.Personas.Persona;
                    SelPresup.TipoComprob       = Comprobantes.Seleccionar.TiposComprob.Presupuestos;
                    if (SelPresup.ShowDialog() == DialogResult.OK && SelPresup.IdComprob != 0)
                    {
                        Tarea.Presupuesto = new Lbl.Comprobantes.Presupuesto(Tarea.Connection, SelPresup.IdComprob);
                        if (EntradaCliente.Elemento == null)
                        {
                            EntradaCliente.Elemento = Tarea.Presupuesto.Cliente;
                        }
                        if (EntradaDescripcion.Text == string.Empty)
                        {
                            EntradaDescripcion.Text = Tarea.Presupuesto.Obs;
                        }
                        else if (EntradaObs.Text == string.Empty)
                        {
                            EntradaObs.Text = Tarea.Presupuesto.Obs;
                        }
                        EntradaComprobante.Text = Tarea.Presupuesto.ToString();
                        return(new Lfx.Types.SuccessOperationResult());
                    }
                    else
                    {
                        return(new Lfx.Types.CancelOperationResult());
                    }
                }
            }
            else
            {
                Lfc.FormularioEdicion EditarPresupuesto = Lfc.Instanciador.InstanciarFormularioEdicion(Tarea.Presupuesto);
                EditarPresupuesto.MdiParent = this.ParentForm.MdiParent;
                EditarPresupuesto.Show();
                return(new Lfx.Types.SuccessOperationResult());
            }
        }
예제 #5
0
        private void BotonConvertir_Click(object sender, EventArgs e)
        {
            using (Lfc.Comprobantes.Compra.Crear FormularioConvertir = new Lfc.Comprobantes.Compra.Crear()) {
                if (FormularioConvertir.ShowDialog() == DialogResult.OK)
                {
                    Lbl.Comprobantes.ComprobanteDeCompra Comprob = this.Elemento as Lbl.Comprobantes.ComprobanteDeCompra;
                    if ((Comprob.Tipo.Nomenclatura == "NP" || Comprob.Tipo.Nomenclatura == "PD") && EntradaEstado.TextKey != "100")
                    {
                        EntradaEstado.TextKey = "100";
                        EntradaEstado.Changed = true;
                    }
                    else if ((Comprob.Tipo.EsPedido || FormularioConvertir.TipoComprob == "F" ||
                              FormularioConvertir.TipoComprob == "FP" ||
                              FormularioConvertir.TipoComprob == "R") && EntradaEstado.TextKey != "100")
                    {
                        EntradaEstado.TextKey = "100";
                        EntradaEstado.Changed = true;
                    }

                    Lbl.Comprobantes.ComprobanteDeCompra NuevoComprob;
                    if (FormularioConvertir.TipoComprob == "FP")
                    {
                        Lbl.Comprobantes.Tipo NuevoTipo = Lbl.Comprobantes.Tipo.TodosPorLetra["FA"];
                        NuevoComprob             = Comprob.Convertir(NuevoTipo);
                        NuevoComprob.FormaDePago = new Lbl.Pagos.FormaDePago(this.Connection, 3);
                    }
                    else if (FormularioConvertir.TipoComprob == "RP")
                    {
                        Lbl.Comprobantes.Tipo NuevoTipo = Lbl.Comprobantes.Tipo.TodosPorLetra["R"];
                        NuevoComprob             = Comprob.Convertir(NuevoTipo);
                        NuevoComprob.FormaDePago = new Lbl.Pagos.FormaDePago(this.Connection, 3);
                    }
                    else
                    {
                        Lbl.Comprobantes.Tipo NuevoTipo = Lbl.Comprobantes.Tipo.TodosPorLetra[FormularioConvertir.TipoComprob];
                        NuevoComprob = Comprob.Convertir(NuevoTipo);
                    }

                    Lfc.FormularioEdicion FormularioEdicion = Lfc.Instanciador.InstanciarFormularioEdicion(NuevoComprob);
                    FormularioEdicion.MdiParent = this.ParentForm.MdiParent;
                    FormularioEdicion.Show();
                }
            }
        }
예제 #6
0
        protected override Lfx.Types.OperationResult OnEdit(int itemId)
        {
            Lfx.Data.Row Movim = Lfx.Workspace.Master.Tables["cajas_movim"].FastRows[itemId];
            if (Movim != null)
            {
                if (Movim.Fields["id_recibo"].Value != null)
                {
                    int  IdRecibo   = Movim.Fields["id_recibo"].ValueInt;
                    Type TipoRecibo = typeof(Lbl.Comprobantes.Recibo);
                    Lfx.Data.Connection   NuevaDb   = Lfx.Workspace.Master.GetNewConnection("Editar " + TipoRecibo.ToString() + " " + IdRecibo) as Lfx.Data.Connection;
                    Lbl.IElementoDeDatos  Elem      = Lbl.Instanciador.Instanciar(TipoRecibo, NuevaDb, IdRecibo);
                    Lfc.FormularioEdicion FormNuevo = Lfc.Instanciador.InstanciarFormularioEdicion(Elem);
                    FormNuevo.DisposeConnection = true;
                    FormNuevo.MdiParent         = this.MdiParent;
                    FormNuevo.Show();

                    return(new Lfx.Types.SuccessOperationResult());
                }
                else if (Movim.Fields["id_comprob"].Value != null)
                {
                    int  IdComprob                  = Movim.Fields["id_comprob"].ValueInt;
                    Type TipoRecibo                 = typeof(Lbl.Comprobantes.ComprobanteConArticulos);
                    var  NuevaDb                    = Lfx.Workspace.Master.GetNewConnection("Editar " + TipoRecibo.ToString() + " " + IdComprob) as Lfx.Data.Connection;
                    Lbl.IElementoDeDatos  Elem      = Lbl.Instanciador.Instanciar(TipoRecibo, NuevaDb, IdComprob);
                    Lfc.FormularioEdicion FormNuevo = Lfc.Instanciador.InstanciarFormularioEdicion(Elem);
                    FormNuevo.DisposeConnection = true;
                    FormNuevo.MdiParent         = this.MdiParent;
                    FormNuevo.Show();

                    return(new Lfx.Types.SuccessOperationResult());
                }
                else
                {
                    return(new Lfx.Types.CancelOperationResult());
                }
            }
            else
            {
                return(new Lfx.Types.CancelOperationResult());
            }
        }
예제 #7
0
        public void EnviarNP(object sender, System.EventArgs e)
        {
            Lbl.Comprobantes.ComprobanteDeCompra Comprob = new Lbl.Comprobantes.ComprobanteDeCompra(this.Connection);

            Comprob.Tipo        = Lbl.Comprobantes.Tipo.TodosPorLetra["NP"];
            Comprob.FormaDePago = new Lbl.Pagos.FormaDePago(this.Connection, 3);

            Lbl.Comprobantes.ColeccionDetalleArticulos newCole = new Lbl.Comprobantes.ColeccionDetalleArticulos(this.Connection);
            foreach (ListViewItem Itm in this.Listado.Items)
            {
                Lbl.Articulos.Articulo           art    = new Lbl.Articulos.Articulo(this.Connection, int.Parse(Itm.SubItems[0].Text));
                Lbl.Comprobantes.DetalleArticulo detArt = new Lbl.Comprobantes.DetalleArticulo(this.Connection);
                detArt.Crear();
                detArt.Articulo = art;
                decimal costoFinal = decimal.Parse(Itm.SubItems["articulos.costo"].Text);
                detArt.ImporteUnitario = costoFinal;
                decimal stockAct = decimal.Parse(Itm.SubItems["articulos.stock_actual"].Text);
                decimal stockMin = decimal.Parse(Itm.SubItems["articulos.stock_minimo"].Text);
                if (stockMin == 0)
                {
                    detArt.Cantidad = 1;
                }
                else
                {
                    detArt.Cantidad = stockMin > stockAct ? stockMin - stockAct : stockMin;
                }
                newCole.Add(detArt);
            }
            Comprob.Articulos.AddRange(newCole);
            Comprob.Estado = 50;

            Lfc.FormularioEdicion FormularioEdicion = Lfc.Instanciador.InstanciarFormularioEdicion(Comprob);
            FormularioEdicion.MdiParent = this.MdiParent; //this.ParentForm.MdiParent;
            FormularioEdicion.Show();

            //Lbl.IElementoDeDatos El = Lbl.Instanciador.Instanciar(this.Definicion.ElementoTipo, Lfx.Workspace.Master.GetNewConnection("Crear " + this.Definicion.ElementoTipo.ToString()) as Lfx.Data.Connection);
            //El.Crear();
        }
예제 #8
0
        private Lfx.Types.OperationResult Facturar()
        {
            Lui.Forms.YesNoDialog Pregunta = new Lui.Forms.YesNoDialog("¿Desea guardar los cambios realizados y generar una factura a partir de esta tarea?", "Facturar");
            if (Pregunta.ShowDialog() != DialogResult.OK)
            {
                return(new Lfx.Types.CancelOperationResult());
            }

            if (EntradaEstado.ValueInt < 50)
            {
                EntradaEstado.ValueInt = 50;
            }

            Lfx.Types.OperationResult Res = this.Save();
            if (Res.Success == false)
            {
                return(Res);
            }

            Lbl.Tareas.Tarea Tarea = this.Elemento as Lbl.Tareas.Tarea;
            Lbl.Comprobantes.ComprobanteFacturable Factura;

            Lfx.Data.Connection ConnFacturaNueva = Lfx.Workspace.Master.GetNewConnection("Convertir tarea en factura");

            if (Tarea.Factura != null && Tarea.Factura.Anulado == false)
            {
                // Ya fue facturada... lo muestro
                Factura = Tarea.Factura;
            }
            else
            {
                // No tiene comprobante, lo creo
                Factura = new Lbl.Comprobantes.Factura(ConnFacturaNueva);

                Factura.Crear();
                Factura.Cliente            = EntradaCliente.Elemento as Lbl.Personas.Persona;
                Factura.Cliente.Connection = ConnFacturaNueva;
                Factura.Tipo                = Factura.Cliente.ObtenerTipoComprobante();
                Factura.Tipo.Connection     = ConnFacturaNueva;
                Factura.Vendedor            = EntradaEncargado.Elemento as Lbl.Personas.Persona;
                Factura.Vendedor.Connection = ConnFacturaNueva;
                Factura.Obs = EntradaTarea.TextDetail + " s/" + this.Elemento.ToString();
                if (Tarea.Articulos.Count > 0)
                {
                    Factura.Articulos.AddRange(Tarea.Articulos);
                }
                else if (Tarea.Presupuesto != null && Tarea.Presupuesto.Articulos.Count > 0)
                {
                    Factura.Articulos.AddRange(Tarea.Presupuesto.Articulos);
                    Factura.Descuento = Tarea.Presupuesto.Descuento;
                }

                if (EntradaImportePresupuesto.ValueDecimal > 0)
                {
                    Lbl.Comprobantes.DetalleArticulo Art = new Lbl.Comprobantes.DetalleArticulo(Factura);

                    Art.Nombre   = this.Elemento.ToString();
                    Art.Unitario = EntradaImportePresupuesto.ValueDecimal;
                    Art.Cantidad = 1;

                    Factura.Articulos.Add(Art);
                }
            }

            Lfc.FormularioEdicion FormularioFactura = Lfc.Instanciador.InstanciarFormularioEdicion(Factura);
            FormularioFactura.MdiParent      = this.ParentForm.MdiParent;
            FormularioFactura.ControlDestino = EntradaComprobanteId;

            FormularioFactura.Show();
            return(new Lfx.Types.SuccessOperationResult());
        }
예제 #9
0
        private void BotonConvertir_Click(object sender, EventArgs e)
        {
            //EntradaTipo.TextKey == "NP" || EntradaTipo.TextKey == "PD"
            using (Lfc.Comprobantes.Compra.Crear FormularioConvertir = new Lfc.Comprobantes.Compra.Crear())
            {
                if (FormularioConvertir.ShowDialog() == DialogResult.OK)
                {
                    Lbl.Comprobantes.ComprobanteDeCompra Comprob = this.Elemento as Lbl.Comprobantes.ComprobanteDeCompra;
                    if ((Comprob.Tipo.Nomenclatura == "NP" || Comprob.Tipo.Nomenclatura == "PD") && EntradaEstado.TextKey != "100")
                    {
                        //EntradaEstado.TextKey = "100";
                        //EntradaEstado.Changed = true;
                        try
                        {
                            System.Data.IDbTransaction tran = this.Elemento.Connection.BeginTransaction();
                            this.Elemento.Connection.ExecuteNonQuery(@"UPDATE comprob SET estado = 100 WHERE id_comprob=" + this.Elemento.Id);
                            tran.Commit();
                        }
                        catch (Exception ex2)
                        {
                            MessageBox.Show(ex2.Message);
                            return;
                        }
                    }
                    else if ((Comprob.Tipo.EsPedido || FormularioConvertir.TipoComprob == "F" ||
                              FormularioConvertir.TipoComprob == "FP" ||
                              FormularioConvertir.TipoComprob == "R") && EntradaEstado.TextKey != "100")
                    {
                        try
                        {
                            System.Data.IDbTransaction tran = this.Elemento.Connection.BeginTransaction();
                            this.Elemento.Connection.ExecuteNonQuery(@"UPDATE comprob SET estado = 100
						                                WHERE id_comprob="                         + this.Elemento.Id);
                            tran.Commit();
                        }
                        catch (Exception ex2)
                        {
                            MessageBox.Show(ex2.Message);
                            return;
                        }
                    }

                    Lbl.Comprobantes.ComprobanteDeCompra NuevoComprob;
                    if (FormularioConvertir.TipoComprob == "FP")
                    {
                        Lbl.Comprobantes.Tipo NuevoTipo = Lbl.Comprobantes.Tipo.TodosPorLetra["FA"];
                        NuevoComprob             = Comprob.Convertir(NuevoTipo);
                        NuevoComprob.FormaDePago = new Lbl.Pagos.FormaDePago(this.Connection, 3);
                    }
                    else if (FormularioConvertir.TipoComprob == "RP")
                    {
                        Lbl.Comprobantes.Tipo NuevoTipo = Lbl.Comprobantes.Tipo.TodosPorLetra["R"];
                        NuevoComprob             = Comprob.Convertir(NuevoTipo);
                        NuevoComprob.FormaDePago = new Lbl.Pagos.FormaDePago(this.Connection, 3);
                    }
                    else
                    {
                        Lbl.Comprobantes.Tipo NuevoTipo = Lbl.Comprobantes.Tipo.TodosPorLetra[FormularioConvertir.TipoComprob];
                        NuevoComprob        = Comprob.Convertir(NuevoTipo);
                        NuevoComprob.Numero = 10;
                    }
                    if (Comprob.TipoFac == "R")
                    {
                        NuevoComprob.IdRemito = Comprob.Id;
                    }
                    Lfc.FormularioEdicion FormularioEdicion = Lfc.Instanciador.InstanciarFormularioEdicion(NuevoComprob);
                    FormularioEdicion.MdiParent = this.ParentForm.MdiParent;
                    FormularioEdicion.Show();
                    this.Close();
                }
            }
        }