public override Lbl.IElementoDeDatos Crear() { Lbl.Personas.Persona Item = new Lbl.Personas.Persona(this.Connection); Item.Crear(); Item.Tipo = 4; return Item; }
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); } }
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; } }
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); } }
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); }
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(); }
public CuentaCorriente(Lbl.Personas.Persona persona) { this.Persona = persona; }
public CuentaCorriente(Lbl.Personas.Persona persona) { this.Persona = persona; }
public CuentaCorrienteController(Lfx.Data.IConnection conn, Lbl.Personas.Persona Persona) { this.Connection = conn; this.Em = conn.Factory.GetEntityManager(conn.Name); this.Persona = Persona; }
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(); }
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); }
public NotificacionMemoria(Lbl.Personas.Persona destinatario, string estacionDestino) : this() { this.Destinatario = destinatario; this.EstacionDestino = estacionDestino; }
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); }
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); }
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(); }
public CuentaCorriente(Lbl.Personas.Persona persona) { this.Persona = persona; CtaCteController = new Lazaro.Base.Controller.CuentaCorrienteController(this.Connection, Persona); }
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(); }
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(); }
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; }
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()); }
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(); }
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); }