Example #1
0
                public override Lbl.IElementoDeDatos Crear()
                {
                        Lbl.Personas.Persona Item = new Lbl.Personas.Persona(this.Connection);
                        Item.Crear();
                        Item.Tipo = 4;

                        return Item;
                }
Example #2
0
 private void EntradaElementoOriginal_TextChanged(object sender, EventArgs e)
 {
         if (EntradaElementoOriginal.ValueInt == 0) {
                 PersonaOriginal = null;
                 EntradaCtaCte1.Text = "0";
         } else {
                 PersonaOriginal = EntradaElementoOriginal.Elemento as Lbl.Personas.Persona;
                 EntradaCtaCte1.Text = Lfx.Types.Formatting.FormatCurrency(PersonaOriginal.CuentaCorriente.ObtenerSaldo(false), Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales);
         }
 }
Example #3
0
		public override Lfx.Types.OperationResult Ok()
		{
                        if (Lfx.Types.Parsing.ParseCurrency(EntradaImporte.Text) <= 0)
                                return new Lfx.Types.FailureOperationResult("Por favor escriba el importe.");

			if(EntradaCaja.ValueInt <= 0)
				return new Lfx.Types.FailureOperationResult("Por favor seleccione la caja de destino.");

                        IDbTransaction Trans = this.Connection.BeginTransaction(IsolationLevel.Serializable);

			Lbl.Personas.Persona Cliente = new Lbl.Personas.Persona(Connection, EntradaCliente.ValueInt);
			Lbl.Comprobantes.ReciboDeCobro Rec = new Lbl.Comprobantes.ReciboDeCobro(this.Connection);
			Rec.Crear();
                        Rec.Cliente = Cliente;
			Rec.Cobros.Add(new Lbl.Comprobantes.Cobro(Connection, Lbl.Pagos.TiposFormasDePago.Caja, Lfx.Types.Parsing.ParseCurrency(EntradaImporte.Text)));
			Rec.Cobros[0].CajaDestino = new Lbl.Cajas.Caja(Connection, EntradaCaja.ValueInt);
                        Rec.Vendedor = Lbl.Sys.Config.Actual.UsuarioConectado.Persona;
			Lfx.Types.OperationResult Res = Rec.Guardar();

                        if (Res.Success) {
                                Trans.Commit();

                                if (Rec.Tipo.ImprimirAlGuardar) {
                                        using (IDbTransaction TransImpr = Rec.Connection.BeginTransaction()) {
                                                Lazaro.Impresion.Comprobantes.ImpresorRecibo Impresor = new Lazaro.Impresion.Comprobantes.ImpresorRecibo(Rec, TransImpr);
                                                Lfx.Types.OperationResult ResImprimir = Impresor.Imprimir();
                                                if (ResImprimir.Success) {
                                                        TransImpr.Commit();
                                                } else {
                                                        TransImpr.Rollback();
                                                        if (ResImprimir.Message != null)
                                                                Lui.Forms.MessageBox.Show(ResImprimir.Message, "Error");
                                                        else
                                                                Lui.Forms.MessageBox.Show("Se creó el recibo, pero no se imprimió correctamente.", "Error");
                                                }
                                        }
                                }

                                string NombreCliente = EntradaCliente.TextDetail;
                                Lfx.Workspace.Master.RunTime.Toast("Se creo un recibo para el cliente " + NombreCliente, "Recibo rápido");

                                EntradaCliente.ValueInt = 0;
                                EntradaCliente.Focus();
                                return new Lfx.Types.CancelOperationResult();
                        } else {
                                Trans.Rollback();
                                return Res;
                        }
        	}
Example #4
0
        public override Lfx.Types.OperationResult Ok()
        {
            if (Lfx.Types.Parsing.ParseCurrency(EntradaImporte.Text) <= 0)
            {
                return(new Lfx.Types.FailureOperationResult("Por favor escriba el importe."));
            }

            if (EntradaCaja.ValueInt <= 0)
            {
                return(new Lfx.Types.FailureOperationResult("Por favor seleccione la caja de destino."));
            }

            IDbTransaction Trans = this.Connection.BeginTransaction(IsolationLevel.Serializable);

            Lbl.Personas.Persona           Cliente = new Lbl.Personas.Persona(Connection, EntradaCliente.ValueInt);
            Lbl.Comprobantes.ReciboDeCobro Rec     = new Lbl.Comprobantes.ReciboDeCobro(this.Connection);
            Rec.Crear();
            Rec.Cliente = Cliente;
            Rec.Cobros.Add(new Lbl.Comprobantes.Cobro(Connection, Lbl.Pagos.TiposFormasDePago.Caja, Lfx.Types.Parsing.ParseCurrency(EntradaImporte.Text)));
            Rec.Cobros[0].CajaDestino = new Lbl.Cajas.Caja(Connection, EntradaCaja.ValueInt);
            Rec.Vendedor = Lbl.Sys.Config.Actual.UsuarioConectado.Persona;
            Lfx.Types.OperationResult Res = Rec.Guardar();

            if (Res.Success)
            {
                Trans.Commit();

                if (Rec.Tipo.ImprimirAlGuardar)
                {
                    using (IDbTransaction TransImpr = Rec.Connection.BeginTransaction()) {
                        Lazaro.Base.Util.Impresion.Comprobantes.ImpresorRecibo Impresor = new Lazaro.Base.Util.Impresion.Comprobantes.ImpresorRecibo(Rec, TransImpr);
                        Lfx.Types.OperationResult ResImprimir = Impresor.Imprimir();
                        if (ResImprimir.Success)
                        {
                            TransImpr.Commit();
                        }
                        else
                        {
                            TransImpr.Rollback();
                            if (ResImprimir.Message != null)
                            {
                                Lui.Forms.MessageBox.Show(ResImprimir.Message, "Error");
                            }
                            else
                            {
                                Lui.Forms.MessageBox.Show("Se creó el recibo, pero no se imprimió correctamente.", "Error");
                            }
                        }
                    }
                }

                string NombreCliente = EntradaCliente.TextDetail;
                Lfx.Workspace.Master.RunTime.Toast("Se creo un recibo para el cliente " + NombreCliente, "Recibo rápido");

                EntradaCliente.ValueInt = 0;
                EntradaCliente.Focus();
                return(new Lfx.Types.CancelOperationResult());
            }
            else
            {
                Trans.Rollback();
                return(Res);
            }
        }
Example #5
0
        public int Movimiento(bool auto, Lbl.Cajas.Concepto concepto, string textoConcepto,
                              Lbl.Personas.Persona cliente, decimal importe, string obs,
                              Lbl.Comprobantes.ComprobanteConArticulos factura, Lbl.Comprobantes.Recibo recibo, string comprobantes, bool cierre = false)
        {
            if (Lbl.Sys.Config.Actual.UsuarioConectado.TienePermiso(this, Lbl.Sys.Permisos.Operaciones.Mover) == false)
            {
                throw new Lfx.Types.Exceptions.AccessDeniedException("No tiene permiso para hacer movimientos en la caja solicitada");
            }

            decimal SaldoActual = this.ObtenerSaldo(true);

            qGen.IStatement InsertarMovimiento = new qGen.Insert("cajas_movim");
            InsertarMovimiento.ColumnValues.AddWithValue("id_caja", this.Id);
            InsertarMovimiento.ColumnValues.AddWithValue("auto", auto ? 1 : 0);
            if (concepto == null)
            {
                InsertarMovimiento.ColumnValues.AddWithValue("id_concepto", null);
            }
            else
            {
                InsertarMovimiento.ColumnValues.AddWithValue("id_concepto", concepto.Id);
            }
            if (factura != null && factura.ClienteFree != null && factura.ClienteFree.Nombre != "")
            {
                textoConcepto.Replace("de Consumidor Final F", factura.ClienteFree.Nombre);
            }
            InsertarMovimiento.ColumnValues.AddWithValue("concepto", textoConcepto);
            InsertarMovimiento.ColumnValues.AddWithValue("id_persona", Lbl.Sys.Config.Actual.UsuarioConectado.Id);
            if (cliente == null)
            {
                InsertarMovimiento.ColumnValues.AddWithValue("id_cliente", null);
            }
            else
            {
                InsertarMovimiento.ColumnValues.AddWithValue("id_cliente", cliente.Id);
            }
            InsertarMovimiento.ColumnValues.AddWithValue("fecha", new qGen.SqlExpression("NOW()"));
            InsertarMovimiento.ColumnValues.AddWithValue("importe", importe);
            if (factura == null)
            {
                InsertarMovimiento.ColumnValues.AddWithValue("id_comprob", null);
            }
            else
            {
                InsertarMovimiento.ColumnValues.AddWithValue("id_comprob", factura.Id);
            }
            if (recibo == null)
            {
                InsertarMovimiento.ColumnValues.AddWithValue("id_recibo", null);
            }
            else
            {
                InsertarMovimiento.ColumnValues.AddWithValue("id_recibo", recibo.Id);
            }
            InsertarMovimiento.ColumnValues.AddWithValue("comprob", comprobantes);
            InsertarMovimiento.ColumnValues.AddWithValue("saldo", SaldoActual + importe);
            InsertarMovimiento.ColumnValues.AddWithValue("obs", obs);
            this.Connection.ExecuteNonQuery(InsertarMovimiento);
            int MovID = this.Connection.FieldInt("SELECT Max(id_movim) From cajas_movim");

            //int MovID = this.Connection.FieldInt("SELECT LAST_INSERT_ID();");
            if (cierre)
            {
                string          idVendedor    = Lbl.Sys.Config.Actual.UsuarioConectado.Id.ToString();
                qGen.IStatement UpdateCupones = new qGen.Update("tarjetas_cupones");
                UpdateCupones.WhereClause = new qGen.Where("id_vendedor=" + idVendedor + " AND id_movimiento is NULL");
                UpdateCupones.ColumnValues.AddWithValue("id_movimiento", MovID);
                this.Connection.ExecuteNonQuery(UpdateCupones);

                qGen.IStatement UpdateCtaCte = new qGen.Update("ctacte");
                UpdateCtaCte.WhereClause = new qGen.Where("id_vendedor=" + idVendedor + " AND id_movimiento is NULL");
                UpdateCtaCte.ColumnValues.AddWithValue("id_movimiento", MovID);
                this.Connection.ExecuteNonQuery(UpdateCtaCte);

                qGen.IStatement UpdateCheques = new qGen.Update("bancos_cheques");
                UpdateCheques.WhereClause = new qGen.Where("id_vendedor=" + idVendedor + " AND id_movimiento is NULL");
                UpdateCheques.ColumnValues.AddWithValue("id_movimiento", MovID);
                this.Connection.ExecuteNonQuery(UpdateCheques);
            }

            return(MovID);
        }
Example #6
0
        private void ActualizarBarra()
        {
            this.SuspendLayout();

            switch (TablaSolicitada)
            {
            case "articulo":
            case "articulos":
                PanelProgreso.Visible = false;
                PanelAyuda.Visible    = false;
                PanelPersona.Visible  = false;
                PanelArticulo.Visible = true;
                Lbl.Articulos.Articulo Art;
                try {
                    Art = new Lbl.Articulos.Articulo(this.Connection, ItemSolicitado);
                } catch {
                    Art = null;
                }
                if (Art != null && Art.Existe)
                {
                    ElementoActual = Art;
                    ItemActual     = ItemSolicitado;
                    TablaActual    = TablaSolicitada;

                    string Codigos = Art.Id.ToString();
                    if (Art.Codigo1 != null && Art.Codigo1.Length > 0)
                    {
                        Codigos += System.Environment.NewLine + Art.Codigo1;
                    }
                    if (Art.Codigo2 != null && Art.Codigo2.Length > 0)
                    {
                        Codigos += System.Environment.NewLine + Art.Codigo2;
                    }
                    if (Art.Codigo3 != null && Art.Codigo3.Length > 0)
                    {
                        Codigos += System.Environment.NewLine + Art.Codigo3;
                    }
                    if (Art.Codigo4 != null && Art.Codigo4.Length > 0)
                    {
                        Codigos += System.Environment.NewLine + Art.Codigo4;
                    }
                    ArticuloCodigos.Text     = Codigos;
                    ArticuloNombre.Text      = Art.ToString();
                    ArticuloDescripcion.Text = Art.Descripcion;
                    ArticuloPvp.Text         = Lfx.Types.Formatting.FormatCurrency(Art.Pvp, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales);
                    ArticuloStock.Text       = Lfx.Types.Formatting.FormatCurrency(Art.Existencias, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales);
                    PanelArticulo.Visible    = true;
                }
                break;

            case "persona":
            case "personas":
                PanelProgreso.Visible = false;
                PanelAyuda.Visible    = false;
                PanelPersona.Visible  = true;
                PanelArticulo.Visible = false;
                Lbl.Personas.Persona Per;
                try {
                    Per = new Lbl.Personas.Persona(this.Connection, ItemSolicitado);
                } catch {
                    Per = null;
                }
                if (Per != null && Per.Existe)
                {
                    ElementoActual = Per;
                    ItemActual     = ItemSolicitado;
                    TablaActual    = TablaSolicitada;

                    PersonaNombre.Text    = Per.ToString();
                    PersonaDomicilio.Text = Per.Domicilio;
                    PersonaTelefono.Text  = Per.Telefono;
                    PersonaEmail.Text     = Per.Email;
                    if (Per.Grupo != null)
                    {
                        PersonaGrupo.Text = Per.Grupo.ToString();
                    }
                    else
                    {
                        PersonaGrupo.Text = "-";
                    }
                    decimal Saldo;
                    try {
                        Saldo = Per.CuentaCorriente.ObtenerSaldo(false);
                    } catch {
                        Saldo = 0;
                    }
                    if (Saldo > 0)
                    {
                        PersonaComentario.Text      = "Registra saldo impago en cuenta corriente por " + Lfx.Types.Formatting.FormatCurrency(Saldo, Lfx.Workspace.Master.CurrentConfig.Moneda.DecimalesFinal);
                        PersonaComentario.TextStyle = Lazaro.Pres.DisplayStyles.TextStyles.SmallWarning;
                        PersonaComentario.Visible   = true;
                    }
                    else if (Saldo < 0)
                    {
                        PersonaComentario.Text      = "Registra saldo a favor en cuenta corriente por " + Lfx.Types.Formatting.FormatCurrency(-Saldo, Lfx.Workspace.Master.CurrentConfig.Moneda.DecimalesFinal);
                        PersonaComentario.TextStyle = Lazaro.Pres.DisplayStyles.TextStyles.Small;
                        PersonaComentario.Visible   = true;
                    }
                    else
                    {
                        PersonaComentario.Visible = false;
                    }
                    PersonaImagen.Image  = Per.Imagen;
                    PanelPersona.Visible = true;
                }
                break;
            }
            this.ResumeLayout();
        }
Example #7
0
 public CuentaCorriente(Lbl.Personas.Persona persona)
 {
     this.Persona = persona;
 }
Example #8
0
 public CuentaCorriente(Lbl.Personas.Persona persona)
 {
         this.Persona = persona;
 }
Example #9
0
 public CuentaCorrienteController(Lfx.Data.IConnection conn, Lbl.Personas.Persona Persona)
 {
     this.Connection = conn;
     this.Em         = conn.Factory.GetEntityManager(conn.Name);
     this.Persona    = Persona;
 }
Example #10
0
                public void Desduplicar()
                {
                        IDbTransaction Trans = null;

                        if(this.DataBase.InTransaction == false)
                                Trans = this.DataBase.BeginTransaction(IsolationLevel.Serializable);

                        // Le doy tratamiento especial a algunas situaciones
                        switch (TablaOriginal) {
                                case "personas":
                                        // Quito la imagen del elemento duplicado... para que no choque con la original
                                        qGen.Delete QuitarImagen = new qGen.Delete("personas_imagenes");
                                        QuitarImagen.WhereClause = new qGen.Where("id_persona", this.IdDuplicado);
                                        this.DataBase.Execute(QuitarImagen);
                                        break;
                        }

                        // Busco una lista de relaciones entre tablas
                        System.Collections.Generic.List<Lfx.Data.Relation> Rels = this.ListaRelaciones();
                        foreach (Lfx.Data.Relation Rel in Rels) {
                                // Cambio todas las referencias que apuntan al registro duplicado hacia el registro original
                                qGen.Update Upd = new qGen.Update(Rel.ReferenceTable);
                                Upd.Fields.AddWithValue(Rel.ReferenceColumn, IdOriginal);
                                Upd.WhereClause = new qGen.Where(Rel.ReferenceColumn, IdDuplicado);
                                this.DataBase.Execute(Upd);
                        }

                        // Ahora que no queda nada apuntando al registro duplicado, lo elimino
                        qGen.Delete Del = new qGen.Delete(this.TablaOriginal);
                        Del.WhereClause = new qGen.Where(this.CampoIdOriginal, this.IdDuplicado);
                        this.DataBase.Execute(Del);

                        // Le doy tratamiento especial a algunas situaciones
                        switch (TablaOriginal) {
                                case "personas":
                                        // En personas, recalculo la cuenta corriente, ya que la nueva cuenta corriente es la fusión de las dos anteriores
                                        Lbl.Personas.Persona PersonaOriginal = new Lbl.Personas.Persona(this.DataBase, IdOriginal);
                                        PersonaOriginal.CuentaCorriente.Recalcular();
                                        PersonaOriginal.AgregarComentario("Desduplicador: Se fusionaron los datos del elemento " + IdDuplicado);
                                        break;
                                        // En artículos, debería recalcular el historial de movimientos y el stock actual, pedidos, etc.
                        }

                        if (Trans != null)
                                Trans.Commit();
                }
Example #11
0
        public static decimal DescancelarImpagos(Lbl.Personas.Persona cliente, Lbl.Comprobantes.ColeccionComprobanteImporte listaComprob, Lbl.Comprobantes.Comprobante comprob, decimal importe)
        {
            // Doy los comprob por cancelados
            decimal TotalACancelar = Math.Abs(importe);

            //"Descancelo" comprob
            if (listaComprob != null && listaComprob.Count > 0)
            {
                // Si hay una lista de comprob, los descancelo
                foreach (ComprobanteImporte CompImp in listaComprob)
                {
                    // Intento descancelar todo
                    decimal Cancelando = CompImp.Importe;

                    // Si mes demasiado, hago un pago parcial
                    if (Cancelando > CompImp.Comprobante.ImporteCancelado)
                    {
                        Cancelando = CompImp.Comprobante.ImporteCancelado;
                    }

                    // Si se acabó la plata, hago un pago parcial
                    if (Cancelando > TotalACancelar)
                    {
                        Cancelando = TotalACancelar;
                    }

                    // Si alcanzo a cancelar algo, lo asiento
                    if (Cancelando > 0)
                    {
                        CompImp.Comprobante.DescancelarImporte(Cancelando, comprob);
                    }

                    TotalACancelar = TotalACancelar - Cancelando;
                    if (TotalACancelar == 0)
                    {
                        break;
                    }
                }
            }

            if (TotalACancelar > 0)
            {
                // Si queda más saldo, sigo buscando facturas a descancelar
                qGen.Select SelFacConSaldo = new qGen.Select("comprob");
                SelFacConSaldo.WhereClause = new qGen.Where();
                SelFacConSaldo.WhereClause.AddWithValue("impresa", qGen.ComparisonOperators.NotEqual, 0);
                SelFacConSaldo.WhereClause.AddWithValue("anulada", 0);
                SelFacConSaldo.WhereClause.AddWithValue("numero", qGen.ComparisonOperators.GreaterThan, 0);
                SelFacConSaldo.WhereClause.AddWithValue("id_formapago", qGen.ComparisonOperators.In, new int[] { 1, 3, 99 });
                SelFacConSaldo.WhereClause.AddWithValue("cancelado", qGen.ComparisonOperators.GreaterThan, 0);
                SelFacConSaldo.WhereClause.AddWithValue("id_cliente", cliente.Id);
                SelFacConSaldo.WhereClause.AddWithValue("tipo_fac", qGen.ComparisonOperators.In, new string[] { "FA", "FB", "FC", "FE", "FM", "NDA", "NDB", "NDC", "NDE", "NDM" });
                if (importe > 0)
                {
                    // Cancelo facturas y ND regulares
                    SelFacConSaldo.WhereClause.AddWithValue("compra", 0);
                }
                else
                {
                    // Cancelo facturas y de compra
                    SelFacConSaldo.WhereClause.AddWithValue("compra", qGen.ComparisonOperators.NotEqual, 0);
                }
                SelFacConSaldo.Order = "id_comprob DESC";
                using (System.Data.DataTable FacturasConSaldo = cliente.Connection.Select(SelFacConSaldo)) {
                    foreach (System.Data.DataRow Factura in FacturasConSaldo.Rows)
                    {
                        Lbl.Comprobantes.ComprobanteConArticulos Fact = new ComprobanteConArticulos(cliente.Connection, (Lfx.Data.Row)Factura);

                        decimal SaldoFactura   = Fact.ImporteCancelado;
                        decimal ImporteASaldar = SaldoFactura;

                        if (ImporteASaldar > TotalACancelar)
                        {
                            ImporteASaldar = TotalACancelar;
                        }

                        Fact.DescancelarImporte(ImporteASaldar, comprob);

                        TotalACancelar -= ImporteASaldar;

                        if (TotalACancelar <= 0)
                        {
                            break;
                        }
                    }
                }
            }

            /* if (TotalACancelar > 0) {
             *      Lbl.Cajas.Concepto Conc;
             *      if (comprob is Recibo)
             *              Conc = ((Recibo)comprob).Concepto;
             *      else
             *              Conc = Lbl.Cajas.Concepto.AjustesYMovimientos;
             *      cliente.CuentaCorriente.Movimiento(true, Conc, "Anulación de " + comprob.ToString(), TotalACancelar * DireccionCtaCte, comprob.Obs, comprob as Lbl.Comprobantes.ComprobanteConArticulos, comprob as Lbl.Comprobantes.Recibo, null);
             *      TotalACancelar = 0;
             * } */

            // Devuelvo el sobrante
            return(TotalACancelar);
        }
Example #12
0
 public NotificacionMemoria(Lbl.Personas.Persona destinatario, string estacionDestino)
     : this()
 {
     this.Destinatario    = destinatario;
     this.EstacionDestino = estacionDestino;
 }
Example #13
0
        private bool GuardarConfig()
        {
            if (EntradaEmpresaEmail.Text.Length <= 5 || EntradaEmpresaEmail.Text.IndexOf('@') <= 0 || EntradaEmpresaEmail.Text.IndexOf('.') <= 0)
            {
                Lui.Forms.MessageBox.Show("Por favor escriba una dirección de correo electrónico (e-mail) válida.", "Validación");
                return(true);
            }


            if (EntradaEmpresaNombre.Text.Length <= 5 || EntradaEmpresaNombre.Text == "Nombre de la empresa")
            {
                Lui.Forms.MessageBox.Show("Por favor escriba el nombre de la empresa.", "Validación");
                return(true);
            }


            Lbl.Entidades.Pais NuevoPais = EntradaPais.Elemento as Lbl.Entidades.Pais;
            if (NuevoPais == null || NuevoPais.Existe == false)
            {
                Lui.Forms.MessageBox.Show("Por favor seleccione el país.", "Validación");
                return(true);
            }

            if (NuevoPais.Id != IdPaisOriginal)
            {
                Lbl.Sys.Config.CambiarPais(NuevoPais);
            }

            int Sucursal = EntradaSucursal.ValueInt;

            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Stock.CodigoPredet", EntradaArticulosCodigoPredet.TextKey, 0);
            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Stock.Multideposito", EntradaStockMultideposito.TextKey, 0);
            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Stock.Decimales", EntradaStockDecimales.TextKey, 0);
            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Stock.DepositoPredet", EntradaStockDepositoPredet.Text, 0);;
            if (EntradaStockDepositoPredetSuc.ValueInt > 0)
            {
                Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Stock.DepositoPredet", EntradaStockDepositoPredetSuc.Text, Sucursal);
            }
            else
            {
                Lfx.Workspace.Master.CurrentConfig.DeleteGlobalSetting("Sistema.Stock.DepositoPredet", Sucursal);
            }

            Lbl.Sys.Config.Empresa.Nombre      = EntradaEmpresaNombre.Text;
            Lbl.Sys.Config.Empresa.RazonSocial = EntradaEmpresaRazonSocial.Text;
            if (EntradaEmpresaClaveTributaria.Text.Length > 0)
            {
                Lbl.Sys.Config.Empresa.ClaveTributaria = new Lbl.Personas.Claves.Cuit(EntradaEmpresaClaveTributaria.Text);
            }
            else
            {
                Lbl.Sys.Config.Empresa.ClaveTributaria = null;
            }
            Lbl.Sys.Config.Empresa.SituacionTributaria = EntradaEmpresaSituacion.ValueInt;
            Lbl.Sys.Config.Empresa.Email = EntradaEmpresaEmail.Text;
            Lbl.Sys.Config.Empresa.Id    = EntradaEmpresaId.ValueInt;

            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Backup.Tipo", EntradaBackup.TextKey, Lfx.Environment.SystemInformation.MachineName);
            if (EntradaModoPantalla.TextKey == "*")
            {
                Lfx.Workspace.Master.CurrentConfig.DeleteGlobalSetting("Sistema.Apariencia.ModoPantalla", Lfx.Environment.SystemInformation.MachineName);
            }
            else
            {
                Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Apariencia.ModoPantalla", EntradaModoPantalla.TextKey, Lfx.Environment.SystemInformation.MachineName);
            }
            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Datos.Aislacion", EntradaAislacion.TextKey);
            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Actualizaciones.Nivel", EntradaActualizaciones.TextKey);

            //Guardo información sobre los PV
            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Documentos.PV", EntradaPV.Text, Sucursal);
            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Documentos.ABC.PV", EntradaPVABC.Text, Sucursal);
            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Documentos.NC.PV", EntradaPVNC.Text, Sucursal);
            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Documentos.ND.PV", EntradaPVND.Text, Sucursal);
            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Documentos.R.PV", EntradaPVR.Text, Sucursal);
            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Documentos.RC.PV", EntradaPVRC.Text, System.Environment.MachineName);

            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Documentos.ClientePredet", EntradaClientePredet.Text);
            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Documentos.FormaPagoPredet", EntradaFormaPagoPredet.Text);

            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Documentos.CambiaPrecioItemFactura", EntradaCambiaPrecioComprob.Value ? 1 : 0);

            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Cuentas.LimiteCreditoPredet", EntradaLimiteCredito.ValueDecimal);

            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Provincia", EntradaProvincia.ValueInt);
            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Localidad", EntradaLocalidad.ValueInt);

            EntradaMonedaUnidadMonetariaMinima.ValueDecimal = Lbl.Sys.Config.Moneda.UnidadMonetariaMinima;

            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Moneda.Decimales", EntradaMonedaDecimalesUnitarios.ValueInt);
            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Moneda.DecimalesCosto", EntradaMonedaDecimalesCosto.ValueInt);
            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Moneda.DecimalesFinal", EntradaMonedaDecimalesFinal.ValueInt);
            Lbl.Sys.Config.Moneda.Decimales      = EntradaMonedaDecimalesUnitarios.ValueInt;
            Lbl.Sys.Config.Moneda.DecimalesCosto = EntradaMonedaDecimalesCosto.ValueInt;
            Lbl.Sys.Config.Moneda.DecimalesFinal = EntradaMonedaDecimalesFinal.ValueInt;

            Lfx.Workspace.Master.CurrentConfig.Empresa.SucursalActual = EntradaSucursal.ValueInt;


            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Configurado", "1", 0);

            if (this.PrimeraVez)
            {
                // Hago cambios referentes al país donde está configurado el sistema

                Lbl.Entidades.Pais Pais = EntradaPais.Elemento as Lbl.Entidades.Pais;
                if (Pais != null)
                {
                    Lbl.Sys.Config.CambiarPais(Pais);
                }

                using (System.Data.IDbTransaction Trans = this.Connection.BeginTransaction()) {
                    // Cambio la sucursal 1 y el cliente consumidor final a la localidad proporcionada
                    Lbl.Entidades.Localidad Loc = EntradaLocalidad.Elemento as Lbl.Entidades.Localidad;
                    if (Loc != null)
                    {
                        Lbl.Entidades.Sucursal Suc1 = new Lbl.Entidades.Sucursal(this.Connection, 1);
                        Suc1.Localidad = Loc;
                        Suc1.Guardar();

                        Lbl.Personas.Persona ConsFinal = new Lbl.Personas.Persona(this.Connection, 999);
                        ConsFinal.Localidad = Loc;
                        ConsFinal.Guardar();
                    }
                    Trans.Commit();
                }

                Lbl.Sys.Config.Cargar();

                this.PrimeraVez = false;
            }

            return(false);
        }
Example #14
0
        public override Lfx.Types.OperationResult ValidarControl()
        {
            Lfx.Types.OperationResult Res = base.ValidarControl();

            if (Res.Success == true)
            {
                if (EntradaRemito.Text.Length > 0)
                {
                    int RemitoNumero, RemitoPv;
                    if (EntradaRemito.Text.IndexOfAny(new char[] { '-' }) >= 0)
                    {
                        // El número de remito tiene guión
                        string[] Partes = EntradaRemito.Text.Split(new char[] { '-' });
                        RemitoNumero = Lfx.Types.Parsing.ParseInt(Partes[0]);
                        RemitoPv     = Lfx.Types.Parsing.ParseInt(Partes[1]);
                    }
                    else
                    {
                        // El número de remito no tiene guión, asumo el mismo PV que la factura
                        RemitoNumero = EntradaRemito.ValueInt;
                        RemitoPv     = EntradaPV.ValueInt;
                    }

                    int RemitoId = this.Connection.FieldInt("SELECT id_comprob FROM comprob WHERE compra=0 AND tipo_fac!='R' AND pv=" + RemitoPv.ToString() + " AND numero=" + RemitoNumero.ToString() + " AND impresa>0 AND anulada=0");
                    if (RemitoId == 0)
                    {
                        Res.Success  = false;
                        Res.Message += "El número de remito no es válido." + Environment.NewLine;
                    }
                }

                Lbl.Pagos.FormaDePago FormaPago = EntradaFormaPago.Elemento as Lbl.Pagos.FormaDePago;
                Lbl.Comprobantes.Tipo Tipo      = new Lbl.Comprobantes.Tipo(this.Connection, EntradaTipo.TextKey);
                if (FormaPago == null && Tipo.EsFacturaOTicket)
                {
                    Res.Success  = false;
                    Res.Message += "Por favor seleccione la forma de pago." + Environment.NewLine;
                }
                if (EntradaCliente.ValueInt == 999 && FormaPago != null && FormaPago.Tipo == Lbl.Pagos.TiposFormasDePago.CuentaCorriente)
                {
                    Res.Success  = false;
                    Res.Message += @"El cliente ""Consumidor final"" no puede tener una cuenta corriente. Deber facturar a nombre de un cliente identificado para poder usar la cuenta corriente." + Environment.NewLine;
                }

                // En Argentina, obligo a ingresar la CUIT
                Lbl.Personas.Persona Cliente = EntradaCliente.Elemento as Lbl.Personas.Persona;
                if (Cliente == null)
                {
                    Res.Success  = false;
                    Res.Message += "Por favor seleccione un cliente." + Environment.NewLine;
                }
                else if (Lbl.Sys.Config.Pais.Id == 1 && Cliente.SituacionTributaria != null && (Cliente.SituacionTributaria.Id == 2 || Cliente.SituacionTributaria.Id == 3))
                {
                    if (Cliente.ClaveTributaria == null || Cliente.ClaveTributaria.EsValido() == false)
                    {
                        Res.Success  = false;
                        Res.Message += "El cliente debe tener una clave tributaria válida." + Environment.NewLine;
                    }
                }
            }
            return(Res);
        }
Example #15
0
		public override Lfx.Types.OperationResult Guardar()
		{
			qGen.TableCommand Comando;
                        if (this.Existe) {
				Comando = new qGen.Update(this.Connection, this.TablaDatos);
				Comando.WhereClause = new qGen.Where(this.CampoId, this.Id);
			} else {
				Comando = new qGen.Insert(this.Connection, this.TablaDatos);
			}

			Comando.Fields.AddWithValue("fecha", qGen.SqlFunctions.Now);
                        if (this.Concepto == null)
                                Comando.Fields.AddWithValue("id_concepto", null);
                        else
                                Comando.Fields.AddWithValue("id_concepto", this.Concepto.Id);

                        if (this.ConceptoTexto == null || this.ConceptoTexto.Length == 0) {
				if (this.Concepto == null)
					Comando.Fields.AddWithValue("concepto", "");
				else
                                	Comando.Fields.AddWithValue("concepto", this.Concepto.Nombre);
			} else {
                                Comando.Fields.AddWithValue("concepto", this.ConceptoTexto);
			}

                        if (this.Banco == null)
                                Comando.Fields.AddWithValue("id_banco", null);
                        else
                                Comando.Fields.AddWithValue("id_banco", this.Banco.Id);

                        if (this.Chequera == null)
                                Comando.Fields.AddWithValue("id_chequera", null);
                        else
                                Comando.Fields.AddWithValue("id_chequera", this.Chequera.Id);

			Comando.Fields.AddWithValue("numero", this.Numero);
			Comando.Fields.AddWithValue("id_sucursal", Lfx.Workspace.Master.CurrentConfig.Empresa.SucursalActual);

                        if (this.ReciboCobro == null)
                                Comando.Fields.AddWithValue("id_recibo", null);
                        else
                                Comando.Fields.AddWithValue("id_recibo", this.ReciboCobro.Id);

                        if (this.ReciboPago == null)
                                Comando.Fields.AddWithValue("id_recibo_pago", null);
                        else
                                Comando.Fields.AddWithValue("id_recibo_pago", this.ReciboPago.Id);

                        if (this.Cliente == null && this.ReciboCobro != null)
                                this.Cliente = this.ReciboCobro.Cliente;
                        if (this.Cliente == null && this.ReciboPago != null)
                                this.Cliente = this.ReciboPago.Cliente;

                        if (this.Cliente == null)
                                Comando.Fields.AddWithValue("id_cliente", null);
                        else
                                Comando.Fields.AddWithValue("id_cliente", this.Cliente.Id);
                        
                        if (this.Factura == null)
                                Comando.Fields.AddWithValue("id_comprob", null);
                        else
                                Comando.Fields.AddWithValue("id_comprob", this.Factura.Id);

                        if (this.Emitido)
                                Comando.Fields.AddWithValue("nombre", "Nº " + this.Numero + " por " + Lbl.Sys.Config.Moneda.Simbolo + " " + Lfx.Types.Formatting.FormatCurrency(this.Importe, 2));
                        else
                                Comando.Fields.AddWithValue("nombre", "Nº " + this.Numero + " por " + Lbl.Sys.Config.Moneda.Simbolo + " " + Lfx.Types.Formatting.FormatCurrency(this.Importe, 2) + " emitido por " + this.Emisor);
			Comando.Fields.AddWithValue("importe", this.Importe);
			Comando.Fields.AddWithValue("fechaemision", this.FechaEmision);
			Comando.Fields.AddWithValue("emitidopor", this.Emisor);
                        Comando.Fields.AddWithValue("emitido", this.Emitido ? 1 : 0);
                        Comando.Fields.AddWithValue("estado", this.Estado);
			Comando.Fields.AddWithValue("fechacobro", this.FechaCobro);
			Comando.Fields.AddWithValue("obs", this.Obs);

			this.AgregarTags(Comando);

			this.Connection.Execute(Comando);

                        if (this.Chequera != null) {
                                qGen.Update ActualizarChequeras = new qGen.Update("chequeras");
                                ActualizarChequeras.Fields.AddWithValue("cheques_emitidos", new qGen.SqlExpression("cheques_emitidos+1"));
                                ActualizarChequeras.WhereClause = new qGen.Where("id_chequera", this.Chequera.Id);
                                this.Connection.Execute(ActualizarChequeras);
                        }

                        if (this.Existe == false && this.Emitido == false) {
                                //Asiento en la cuenta cheques, sólo para cheques de cobro
                                Cajas.Caja CajaCheques = new Lbl.Cajas.Caja(this.Connection, Lfx.Workspace.Master.CurrentConfig.Empresa.CajaCheques);
                                Lbl.Personas.Persona UsarCliente = this.Cliente;
                                if (UsarCliente == null && this.Factura != null)
                                        UsarCliente = this.Factura.Cliente;
                                if (UsarCliente == null && this.ReciboCobro != null)
                                        UsarCliente = this.ReciboCobro.Cliente;
                                if (UsarCliente == null && this.ReciboPago != null)
                                        UsarCliente = this.ReciboPago.Cliente;
                                CajaCheques.Movimiento(true, 
                                        this.Concepto, this.ConceptoTexto, 
                                        UsarCliente, 
                                        this.ReciboPago != null ? -this.Importe : this.Importe,
                                        this.ToString(), 
                                        this.Factura, 
                                        this.ReciboCobro != null ? this.ReciboCobro : this.ReciboPago, 
                                        null);
                        }

                        return base.Guardar();
		}
Example #16
0
 public CuentaCorriente(Lbl.Personas.Persona persona)
 {
     this.Persona     = persona;
     CtaCteController = new Lazaro.Base.Controller.CuentaCorrienteController(this.Connection, Persona);
 }
Example #17
0
                public override void OnLoad()
                {
                        if (this.Registro != null) {
                                if (this.GetFieldValue<int>("id_banco") > 0)
                                        this.Banco = new Bancos.Banco(this.Connection, this.GetFieldValue<int>("id_banco"));
                                else
                                        this.Banco = null;

                                if (this.GetFieldValue<int>("id_concepto") > 0)
                                        this.Concepto = new Cajas.Concepto(this.Connection, this.GetFieldValue<int>("id_concepto"));
                                else
                                        this.Concepto = null;

                                if (this.GetFieldValue<int>("id_chequera") > 0)
                                        this.Chequera = new Bancos.Chequera(this.Connection, this.GetFieldValue<int>("id_chequera"));
                                else
                                        this.Chequera = null;

                                if (this.GetFieldValue<int>("id_cliente") > 0)
                                        this.Cliente = new Personas.Persona(this.Connection, this.GetFieldValue<int>("id_cliente"));
                                else
                                        this.Cliente = null;

                                if (this.GetFieldValue<int>("id_comprob") > 0)
                                        this.Factura = new Comprobantes.ComprobanteConArticulos(this.Connection, this.GetFieldValue<int>("id_comprob"));
                                else
                                        this.Factura = null;
                        }
                        base.OnLoad();
                }
Example #18
0
        public override void ActualizarControl()
        {
            Lbl.Personas.Persona Cliente = this.Elemento as Lbl.Personas.Persona;

            bool PermitirEdicionAvanzada = Lbl.Sys.Config.Actual.UsuarioConectado.TienePermiso(Cliente, Lbl.Sys.Permisos.Operaciones.EditarAvanzado);
            bool PermitirEdicionCredito  = Lbl.Sys.Config.Actual.UsuarioConectado.TienePermiso(Cliente, Lbl.Sys.Permisos.Operaciones.Extra1);

            EntradaNombre.Text      = Cliente.Nombres;
            EntradaNombre.Enabled   = PermitirEdicionAvanzada;
            EntradaApellido.Text    = Cliente.Apellido;
            EntradaApellido.Enabled = PermitirEdicionAvanzada;
            this.Text = Cliente.Nombre;
            EntradaTipoDoc.Elemento = Cliente.TipoDocumento;
            EntradaTipoDoc.Enabled  = PermitirEdicionAvanzada;
            EntradaNumDoc.Text      = Cliente.NumeroDocumento;
            EntradaNumDoc.Enabled   = PermitirEdicionAvanzada;
            EntradaGenero.ValueInt  = Cliente.Genero;

            EntradaNombreFantasia.Text    = Cliente.NombreFantasia;
            EntradaNombreFantasia.Enabled = PermitirEdicionAvanzada;
            EntradaRazonSocial.Text       = Cliente.RazonSocial;
            EntradaRazonSocial.Enabled    = PermitirEdicionAvanzada;

            if (Cliente.TipoClaveTributaria != null)
            {
                EtiquetaClaveTributaria.Text = Cliente.TipoClaveTributaria.Nombre;
            }

            if (Cliente.ClaveTributaria != null)
            {
                EntradaClaveTributaria.Text = Cliente.ClaveTributaria.ToString();
            }
            else
            {
                EntradaClaveTributaria.Text = "";
            }
            EntradaClaveTributaria.Enabled = PermitirEdicionAvanzada;
            EntradaSituacion.Elemento      = Cliente.SituacionTributaria;
            EntradaSituacion.Enabled       = PermitirEdicionAvanzada;
            if (Cliente.FacturaPreferida == null || Cliente.FacturaPreferida.Length == 0)
            {
                EntradaTipoFac.TextKey = "*";
            }
            else
            {
                EntradaTipoFac.TextKey = Cliente.FacturaPreferida;
            }
            EntradaTipoFac.Enabled = PermitirEdicionAvanzada;

            EntradaTipo.ValueInt         = Cliente.Tipo;
            EntradaTipo.Enabled          = PermitirEdicionAvanzada;
            EntradaGrupo.Elemento        = Cliente.Grupo;
            EntradaSubGrupo.Elemento     = Cliente.SubGrupo;
            EntradaGrupo.Enabled         = PermitirEdicionAvanzada;
            EntradaDomicilio.Text        = Cliente.Domicilio;
            EntradaDomicilioTrabajo.Text = Cliente.DomicilioLaboral;
            EntradaLocalidad.Elemento    = Cliente.Localidad;
            EntradaTelefono.Text         = Cliente.Telefono;
            EntradaEmail.Text            = Cliente.Email;
            EntradaVendedor.Elemento     = Cliente.Vendedor;
            EntradaLimiteCredito.Text    = Lfx.Types.Formatting.FormatCurrency(Cliente.LimiteCredito, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales);
            EntradaLimiteCredito.Enabled = PermitirEdicionCredito;
            if (Cliente.FechaNacimiento == null)
            {
                EntradaFechaNac.Text = "";
            }
            else
            {
                EntradaFechaNac.Text = Lfx.Types.Formatting.FormatDate(Cliente.FechaNacimiento);
            }
            EntradaFechaNac.Enabled = PermitirEdicionAvanzada;

            EntradaEstadoCredito.TextKey = ((int)(Cliente.EstadoCredito)).ToString();
            EntradaEstadoCredito.Enabled = PermitirEdicionCredito;
            EntradaNumeroCuenta.Text     = Cliente.NumeroCuenta;
            EntradaTipoCuenta.TextKey    = ((int)(Cliente.TipoCuenta)).ToString();
            EntradaTipoCuenta.Enabled    = PermitirEdicionAvanzada;
            EntradaNumeroCuenta.Enabled  = PermitirEdicionAvanzada;

            string CBU = Cliente.GetFieldValue <string>("cbu");

            if (CBU == null)
            {
                EntradaClaveBancaria.Text = "";
            }
            else if (CBU.Length == 22)
            {
                EntradaClaveBancaria.Text = CBU.Substring(0, 8) + "-" + CBU.Substring(8, 14);
            }
            else
            {
                EntradaClaveBancaria.Text = CBU;
            }
            EntradaClaveBancaria.Enabled = PermitirEdicionAvanzada;
            EntradaObs.Text    = Cliente.Obs;
            EntradaObs.Enabled = PermitirEdicionAvanzada;

            EntradaEstado.TextKey = Cliente.Estado.ToString();

            if (Cliente.FechaAlta == null)
            {
                EntradaFechaAlta.Text = "";
            }
            else
            {
                EntradaFechaAlta.Text = Cliente.FechaAlta.Value.ToString(Lfx.Types.Formatting.DateTime.ShortDatePattern);
            }

            EntradaFechaAlta.TemporaryReadOnly = true;
            EntradaFechaBaja.TemporaryReadOnly = true;

            if (Cliente.FechaBaja == null)
            {
                EntradaFechaBaja.Text = "";
            }
            else
            {
                EntradaFechaBaja.Text = Cliente.FechaBaja.Value.ToString(Lfx.Types.Formatting.DateTime.ShortDatePattern);
            }

            // TODO: pasar esto al formulario parent
            //EntradaImagen.Enabled = PermitirEdicionAvanzada;
            //EntradaTags.Enabled = PermitirEdicionAvanzada;

            EntradaEstado.Enabled  = Lbl.Sys.Config.Actual.UsuarioConectado.TienePermiso(Cliente, Lbl.Sys.Permisos.Operaciones.Eliminar);
            EntradaEstado.ReadOnly = !Lbl.Sys.Config.Actual.UsuarioConectado.TienePermiso(Cliente, Lbl.Sys.Permisos.Operaciones.Eliminar);

            base.ActualizarControl();
        }
Example #19
0
                private bool GuardarConfig()
                {
                        if (EntradaEmpresaEmail.Text.Length <= 5 || EntradaEmpresaEmail.Text.IndexOf('@') <= 0 || EntradaEmpresaEmail.Text.IndexOf('.') <= 0) {
                                Lui.Forms.MessageBox.Show("Por favor escriba una dirección de correo electrónico (e-mail) válida.", "Validación");
                                return true;
                        }


                        if (EntradaEmpresaNombre.Text.Length <= 5 || EntradaEmpresaNombre.Text == "Nombre de la empresa") {
                                Lui.Forms.MessageBox.Show("Por favor escriba el nombre de la empresa.", "Validación");
                                return true;
                        }


                        Lbl.Entidades.Pais NuevoPais = EntradaPais.Elemento as Lbl.Entidades.Pais;
                        if (NuevoPais == null || NuevoPais.Existe == false) {
                                Lui.Forms.MessageBox.Show("Por favor seleccione el país.", "Validación");
                                return true;
                        }

                        if (NuevoPais.Id != IdPaisOriginal)
                                Lbl.Sys.Config.CambiarPais(NuevoPais);

                        int Sucursal = EntradaSucursal.ValueInt;

                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Stock.CodigoPredet", EntradaArticulosCodigoPredet.TextKey, 0);
                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Stock.Multideposito", EntradaStockMultideposito.TextKey, 0);
                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Stock.Decimales", EntradaStockDecimales.TextKey, 0);
                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Stock.DepositoPredet", EntradaStockDepositoPredet.Text, 0); ;
                        if (EntradaStockDepositoPredetSuc.ValueInt > 0)
                                Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Stock.DepositoPredet", EntradaStockDepositoPredetSuc.Text, Sucursal);
                        else
                                Lfx.Workspace.Master.CurrentConfig.DeleteGlobalSetting("Sistema.Stock.DepositoPredet", Sucursal);

                        Lbl.Sys.Config.Empresa.Nombre = EntradaEmpresaNombre.Text;
                        Lbl.Sys.Config.Empresa.RazonSocial = EntradaEmpresaRazonSocial.Text;
                        if (EntradaEmpresaClaveTributaria.Text.Length > 0)
                                Lbl.Sys.Config.Empresa.ClaveTributaria = new Lbl.Personas.Claves.Cuit(EntradaEmpresaClaveTributaria.Text);
                        else
                                Lbl.Sys.Config.Empresa.ClaveTributaria = null;
                        Lbl.Sys.Config.Empresa.SituacionTributaria = EntradaEmpresaSituacion.ValueInt;
                        Lbl.Sys.Config.Empresa.Email = EntradaEmpresaEmail.Text;
                        Lbl.Sys.Config.Empresa.Id = EntradaEmpresaId.ValueInt;

                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Backup.Tipo", EntradaBackup.TextKey, Lfx.Environment.SystemInformation.MachineName);
                        if (EntradaModoPantalla.TextKey == "*")
                                Lfx.Workspace.Master.CurrentConfig.DeleteGlobalSetting("Sistema.Apariencia.ModoPantalla", Lfx.Environment.SystemInformation.MachineName);
                        else
                                Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Apariencia.ModoPantalla", EntradaModoPantalla.TextKey, Lfx.Environment.SystemInformation.MachineName);
                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Datos.Aislacion", EntradaAislacion.TextKey);
                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Actualizaciones.Nivel", EntradaActualizaciones.TextKey);

                        //Guardo información sobre los PV
                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Documentos.PV", EntradaPV.Text, Sucursal);
                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Documentos.ABC.PV", EntradaPVABC.Text, Sucursal);
                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Documentos.NC.PV", EntradaPVNC.Text, Sucursal);
                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Documentos.ND.PV", EntradaPVND.Text, Sucursal);
                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Documentos.R.PV", EntradaPVR.Text, Sucursal);
                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Documentos.RC.PV", EntradaPVRC.Text, System.Environment.MachineName);

                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Documentos.ClientePredet", EntradaClientePredet.Text);
                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Documentos.FormaPagoPredet", EntradaFormaPagoPredet.Text);

                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Documentos.CambiaPrecioItemFactura", EntradaCambiaPrecioComprob.Value ? 1 : 0);

                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Cuentas.LimiteCreditoPredet", EntradaLimiteCredito.ValueDecimal);

                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Provincia", EntradaProvincia.ValueInt);
                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Localidad", EntradaLocalidad.ValueInt);

                        EntradaMonedaUnidadMonetariaMinima.ValueDecimal = Lbl.Sys.Config.Moneda.UnidadMonetariaMinima;

                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Moneda.Decimales", EntradaMonedaDecimalesUnitarios.ValueInt);
                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Moneda.DecimalesCosto", EntradaMonedaDecimalesCosto.ValueInt);
                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Moneda.DecimalesFinal", EntradaMonedaDecimalesFinal.ValueInt);
                        Lbl.Sys.Config.Moneda.Decimales = EntradaMonedaDecimalesUnitarios.ValueInt;
                        Lbl.Sys.Config.Moneda.DecimalesCosto = EntradaMonedaDecimalesCosto.ValueInt;
                        Lbl.Sys.Config.Moneda.DecimalesFinal = EntradaMonedaDecimalesFinal.ValueInt;

                        Lfx.Workspace.Master.CurrentConfig.Empresa.SucursalActual = EntradaSucursal.ValueInt;


                        Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Configurado", "1", 0);

                        if (this.PrimeraVez) {
                                // Hago cambios referentes al país donde está configurado el sistema

                                Lbl.Entidades.Pais Pais = EntradaPais.Elemento as Lbl.Entidades.Pais;
                                if (Pais != null)
                                        Lbl.Sys.Config.CambiarPais(Pais);

                                using (System.Data.IDbTransaction Trans = this.Connection.BeginTransaction()) {
                                        // Cambio la sucursal 1 y el cliente consumidor final a la localidad proporcionada
                                        Lbl.Entidades.Localidad Loc = EntradaLocalidad.Elemento as Lbl.Entidades.Localidad;
                                        if (Loc != null) {
                                                Lbl.Entidades.Sucursal Suc1 = new Lbl.Entidades.Sucursal(this.Connection, 1);
                                                Suc1.Localidad = Loc;
                                                Suc1.Guardar();

                                                Lbl.Personas.Persona ConsFinal = new Lbl.Personas.Persona(this.Connection, 999);
                                                ConsFinal.Localidad = Loc;
                                                ConsFinal.Guardar();
                                        }
                                        Trans.Commit();
                                }

                                Lbl.Sys.Config.Cargar();

                                this.PrimeraVez = false;
                        }

                        return false;
                }
Example #20
0
        public override Lfx.Types.OperationResult ValidarControl()
        {
            if (EntradaTipo.ValueInt <= 0)
            {
                return(new Lfx.Types.FailureOperationResult("Seleccione el tipo de cliente"));
            }

            Lbl.Personas.Persona Cliente = this.Elemento as Lbl.Personas.Persona;

            if (EntradaNombreFantasia.Text.Length > 0 && EntradaRazonSocial.Text.Length == 0)
            {
                return(new Lfx.Types.FailureOperationResult("Escriba la razón social"));
            }

            if (EntradaRazonSocial.Text.Length == 0 && EntradaNombre.Text.Length == 0 && EntradaApellido.Text.Length == 0)
            {
                return(new Lfx.Types.FailureOperationResult("Escriba el nombre y el apellido o la razón social"));
            }
            else
            {
                //Busco un cliente con datos similares
                Lfx.Data.Row ClienteDup = null;
                string       Sql        = @"SELECT id_persona, nombre_visible, domicilio, telefono, cuit, email FROM personas WHERE (";
                if (this.Text.Length > 0)
                {
                    Sql += @"nombre_visible LIKE '%" + this.Connection.EscapeString(this.Text.Replace("%", "").Replace("_", "")) + @"%'";
                }
                if (EntradaDomicilio.Text.Length > 0)
                {
                    Sql += @" OR domicilio LIKE '%" + Lfx.Workspace.Master.MasterConnection.EscapeString(EntradaDomicilio.Text) + @"%'";
                }

                if (EntradaNumDoc.Text.Length > 0)
                {
                    Sql += @" OR REPLACE(num_doc, '.', '') LIKE '%" + Lfx.Workspace.Master.MasterConnection.EscapeString(EntradaNumDoc.Text.Replace(".", "")) + @"%'";
                }

                if (EntradaTelefono.Text.Length > 0)
                {
                    string         Telefono  = EntradaTelefono.Text.Replace(" -", "").Replace("- ", "").Replace("/", " ").Replace(",", " ").Replace(".", " ").Replace("  ", " ").Replace("%", "").Replace("_", "");
                    IList <string> Telefonos = Lfx.Types.Strings.SplitDelimitedString(Telefono, ";");
                    if (Telefonos != null && Telefonos.Count > 0)
                    {
                        foreach (string Tel in Telefonos)
                        {
                            if (Tel != null && Tel.Length > 4)
                            {
                                Sql += @" OR telefono LIKE '%" + Lfx.Workspace.Master.MasterConnection.EscapeString(Tel.Replace("%", "").Replace("_", "")) + @"%'";
                            }
                        }
                    }
                }
                if (EntradaEmail.Text.Length > 0)
                {
                    Sql += @" OR email LIKE '%" + Lfx.Workspace.Master.MasterConnection.EscapeString(EntradaEmail.Text.Replace("%", "").Replace("_", "")) + @"%'";
                }
                if (EntradaClaveTributaria.Text.Length > 0)
                {
                    Sql += @" OR cuit='" + Lfx.Workspace.Master.MasterConnection.EscapeString(EntradaClaveTributaria.Text.Replace("%", "").Replace("_", "")) + @"'";
                }
                Sql += @") AND id_persona<>" + this.Elemento.Id.ToString();

                ClienteDup = this.Connection.FirstRowFromSelect(Sql);
                if (ClienteDup != null)
                {
                    if (Cliente != null && Cliente.Existe == false)
                    {
                        AltaDuplicada FormAltaDuplicada = new AltaDuplicada();
                        ListViewItem  itm;
                        itm = FormAltaDuplicada.ListaComparacion.Items.Add("Nombre");
                        itm.SubItems.Add(ClienteDup["nombre_visible"].ToString());
                        itm.SubItems.Add(this.Text);
                        itm = FormAltaDuplicada.ListaComparacion.Items.Add("Domicilio");
                        itm.SubItems.Add(ClienteDup["domicilio"].ToString());
                        itm.SubItems.Add(EntradaDomicilio.Text);
                        itm = FormAltaDuplicada.ListaComparacion.Items.Add("Teléfono");
                        itm.SubItems.Add(ClienteDup["telefono"].ToString());
                        itm.SubItems.Add(EntradaTelefono.Text);
                        itm = FormAltaDuplicada.ListaComparacion.Items.Add(Lbl.Sys.Config.Pais.ClavePersonasJuridicas.Nombre);
                        if (ClienteDup["cuit"] != null)
                        {
                            itm.SubItems.Add(ClienteDup["cuit"].ToString());
                        }
                        else
                        {
                            itm.SubItems.Add("");
                        }
                        itm.SubItems.Add(EntradaClaveTributaria.Text);
                        itm = FormAltaDuplicada.ListaComparacion.Items.Add("E-mail");
                        if (ClienteDup["email"] != null)
                        {
                            itm.SubItems.Add(ClienteDup["email"].ToString());
                        }
                        else
                        {
                            itm.SubItems.Add("");
                        }
                        itm.SubItems.Add(EntradaEmail.Text);

                        switch (FormAltaDuplicada.ShowDialog())
                        {
                        case DialogResult.Yes:
                            //Crear uno nuevo
                            return(new Lfx.Types.SuccessOperationResult());

                        case DialogResult.No:
                            //Actualizar
                            this.Elemento = new Lbl.Personas.Persona(this.Elemento.Connection, System.Convert.ToInt32(ClienteDup["id_persona"]));
                            return(new Lfx.Types.SuccessOperationResult());

                        case DialogResult.Cancel:
                            //Volver a la edición
                            return(new Lfx.Types.CancelOperationResult());
                        }
                    }
                }
            }

            switch (Lbl.Sys.Config.Pais.ClaveBancaria.Nombre)
            {
            case "CBU":
                if (EntradaClaveBancaria.Text.Length > 0 && Lbl.Bancos.Claves.Cbu.EsValido(EntradaClaveBancaria.Text) == false)
                {
                    return(new Lfx.Types.FailureOperationResult("La CBU es incorrecta."));
                }
                break;
            }


            if (Cliente.Existe == false && Cliente.Grupo != null && Cliente.Grupo.Id == 2 && (EntradaClaveBancaria.Text.Length > 0 || EntradaNumeroCuenta.Text.Length > 0) && EntradaTipoCuenta.TextKey == "0")
            {
                return(new Lfx.Types.FailureOperationResult("Por favor seleccione el tipo de cuenta bancaria."));
            }


            if (Lbl.Sys.Config.Pais.ClavePersonasJuridicas != null)
            {
                switch (Lbl.Sys.Config.Pais.ClavePersonasJuridicas.Nombre)
                {
                case "CUIT":
                    if (EntradaClaveTributaria.Text.Length > 0)
                    {
                        if (EntradaSituacion.ValueInt == 1)
                        {
                            return(new Lfx.Types.FailureOperationResult(@"Un Cliente con CUIT no debe estar en Situación de ""Consumidor Final""."));
                        }
                        if (System.Text.RegularExpressions.Regex.IsMatch(EntradaClaveTributaria.Text, @"^\d{11}$"))
                        {
                            EntradaClaveTributaria.Text = EntradaClaveTributaria.Text.Substring(0, 2) + "-" + EntradaClaveTributaria.Text.Substring(2, 8) + "-" + EntradaClaveTributaria.Text.Substring(10, 1);
                        }

                        //Agrego los guiones si no los tiene
                        if (EntradaClaveTributaria.Text.Length == 11)
                        {
                            EntradaClaveTributaria.Text = EntradaClaveTributaria.Text.Substring(0, 2) + "-" + EntradaClaveTributaria.Text.Substring(2, 8) + "-" + EntradaClaveTributaria.Text.Substring(10, 1);
                        }

                        if (Lbl.Personas.Claves.Cuit.EsValido(EntradaClaveTributaria.Text) == false)
                        {
                            return(new Lfx.Types.FailureOperationResult("La CUIT no es correcta." + Environment.NewLine + "El sistema le permite dejar la CUIT en blanco, pero no aceptará una incorrecta."));
                        }
                    }
                    break;
                }
            }

            if (EntradaClaveTributaria.Text.Length > 0)
            {
                Lfx.Data.Row RowPersMismaClave = this.Connection.FirstRowFromSelect("SELECT id_persona FROM personas WHERE cuit='" + EntradaClaveTributaria.Text + "' AND id_persona<>" + this.Elemento.Id.ToString());
                if (RowPersMismaClave != null)
                {
                    if (Cliente.Existe == false || System.Convert.ToInt32(RowPersMismaClave["id_persona"]) != this.Elemento.Id)
                    {
                        Lui.Forms.YesNoDialog Pregunta = new Lui.Forms.YesNoDialog("Ya existe una empresa o persona con esa clave tributaria (" + Lbl.Sys.Config.Pais.ClavePersonasJuridicas.Nombre + ") en la base de datos. ¿Desea continuar y crear una nueva de todos modos?", "Clave tributaria duplicada");
                        Pregunta.DialogButtons = Lui.Forms.DialogButtons.YesNo;
                        if (Pregunta.ShowDialog() != DialogResult.OK)
                        {
                            return(new Lfx.Types.FailureOperationResult("Cambie la Clave tributaria (" + Lbl.Sys.Config.Pais.ClavePersonasJuridicas.Nombre + ") para antes de continuar."));
                        }
                    }
                }
            }

            return(new Lfx.Types.SuccessOperationResult());
        }
Example #21
0
                private void ActualizarBarra()
                {
                        this.SuspendLayout();

                        switch (TablaSolicitada) {
                                case "articulo":
                                case "articulos":
                                        PanelProgreso.Visible = false;
                                        PanelAyuda.Visible = false;
                                        PanelPersona.Visible = false;
                                        PanelArticulo.Visible = true;
                                        Lbl.Articulos.Articulo Art;
                                        try {
                                                Art = new Lbl.Articulos.Articulo(this.DataBase, ItemSolicitado);
                                        } catch {
                                                Art = null;
                                        }
                                        if (Art != null && Art.Existe) {
                                                ElementoActual = Art;
                                                ItemActual = ItemSolicitado;
                                                TablaActual = TablaSolicitada;

                                                string Codigos = Art.Id.ToString();
                                                if (Art.Codigo1 != null && Art.Codigo1.Length > 0)
                                                        Codigos += System.Environment.NewLine + Art.Codigo1;
                                                if (Art.Codigo2 != null && Art.Codigo2.Length > 0)
                                                        Codigos += System.Environment.NewLine + Art.Codigo2;
                                                if (Art.Codigo3 != null && Art.Codigo3.Length > 0)
                                                        Codigos += System.Environment.NewLine + Art.Codigo3;
                                                if (Art.Codigo4 != null && Art.Codigo4.Length > 0)
                                                        Codigos += System.Environment.NewLine + Art.Codigo4;
                                                ArticuloCodigos.Text = Codigos;
                                                ArticuloNombre.Text = Art.ToString();
                                                ArticuloDescripcion.Text = Art.Descripcion;
                                                ArticuloPvp.Text = Lfx.Types.Formatting.FormatCurrency(Art.Pvp, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales);
                                                ArticuloStock.Text = Lfx.Types.Formatting.FormatCurrency(Art.Existencias, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales);
                                                PanelArticulo.Visible = true;
                                        }
                                        break;
                                case "persona":
                                case "personas":
                                        PanelProgreso.Visible = false;
                                        PanelAyuda.Visible = false;
                                        PanelPersona.Visible = true;
                                        PanelArticulo.Visible = false;
                                        Lbl.Personas.Persona Per;
                                        try {
                                                Per = new Lbl.Personas.Persona(this.DataBase, ItemSolicitado);
                                        } catch {
                                                Per = null;
                                        }
                                        if (Per != null && Per.Existe) {
                                                ElementoActual = Per;
                                                ItemActual = ItemSolicitado;
                                                TablaActual = TablaSolicitada;

                                                PersonaNombre.Text = Per.ToString();
                                                PersonaDomicilio.Text = Per.Domicilio;
                                                PersonaTelefono.Text = Per.Telefono;
                                                PersonaEmail.Text = Per.Email;
                                                if (Per.Grupo != null)
                                                        PersonaGrupo.Text = Per.Grupo.ToString();
                                                else
                                                        PersonaGrupo.Text = "-";
                                                decimal Saldo;
                                                try {
                                                        Saldo = Per.CuentaCorriente.ObtenerSaldo(false);
                                                } catch {
                                                        Saldo = 0;
                                                }
                                                if (Saldo > 0) {
                                                        PersonaComentario.Text = "Registra saldo impago en cuenta corriente por " + Lfx.Types.Formatting.FormatCurrency(Saldo, Lfx.Workspace.Master.CurrentConfig.Moneda.DecimalesFinal);
                                                        PersonaComentario.TextStyle = Lazaro.Pres.DisplayStyles.TextStyles.SmallWarning;
                                                        PersonaComentario.Visible = true;
                                                } else if (Saldo < 0) {
                                                        PersonaComentario.Text = "Registra saldo a favor en cuenta corriente por " + Lfx.Types.Formatting.FormatCurrency(-Saldo, Lfx.Workspace.Master.CurrentConfig.Moneda.DecimalesFinal);
                                                        PersonaComentario.TextStyle = Lazaro.Pres.DisplayStyles.TextStyles.Small;
                                                        PersonaComentario.Visible = true;
                                                } else {
                                                        PersonaComentario.Visible = false;
                                                }
                                                PersonaImagen.Image = Per.Imagen;
                                                PanelPersona.Visible = true;
                                        }
                                        break;
                        }
                        this.ResumeLayout();
                }
Example #22
0
                public override void OnFiltersChanged(Lazaro.Pres.Filters.FilterCollection filters)
                {
                        m_Rubro = filters["id_rubro"].Value as Lbl.Articulos.Rubro;
                        m_Categoria = filters["id_categoria"].Value as Lbl.Articulos.Categoria;
                        m_Marca = filters["id_marca"].Value as Lbl.Articulos.Marca;
                        m_Proveedor = filters["id_proveedor"].Value as Lbl.Personas.Persona;
                        m_Situacion = filters["id_situacion"].Value as Lbl.Articulos.Situacion;
                        m_Stock = filters["stock_actual"].Value as string;

                        base.OnFiltersChanged(filters);
                }