public void MostrarFacturas() { ListaFacturas.BeginUpdate(); ListaFacturas.Items.Clear(); Lbl.Comprobantes.Recibo Rec = this.Elemento as Lbl.Comprobantes.Recibo; foreach (Lbl.Comprobantes.ComprobanteImporte CompImp in Rec.Facturas) { Lbl.Comprobantes.ComprobanteConArticulos Fc = CompImp.Comprobante; ListViewItem AgregarFactura = ListaFacturas.Items.Add(Fc.GetHashCode().ToString()); AgregarFactura.SubItems.Add(new ListViewItem.ListViewSubItem(AgregarFactura, Fc.ToString())); AgregarFactura.SubItems.Add(new ListViewItem.ListViewSubItem(AgregarFactura, Lfx.Types.Formatting.FormatDate(Fc.Fecha))); AgregarFactura.SubItems.Add(new ListViewItem.ListViewSubItem(AgregarFactura, Lfx.Types.Formatting.FormatCurrency(Fc.Total, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales))); AgregarFactura.SubItems.Add(new ListViewItem.ListViewSubItem(AgregarFactura, Lfx.Types.Formatting.FormatCurrency(Fc.Total - Fc.ImporteCancelado, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales))); } LabelAgregarFacturas.Visible = ListaFacturas.Items.Count == 0 && this.Elemento.Existe == false; BotonQuitarFactura.Visible = ListaFacturas.Items.Count > 0; if (ListaFacturas.Items.Count > 0 && ListaFacturas.SelectedItems.Count == 0) { ListaFacturas.Items[ListaFacturas.Items.Count - 1].Selected = true; ListaFacturas.Items[ListaFacturas.Items.Count - 1].Focused = true; } EtiquetaFacturasImporte.Text = Lfx.Types.Formatting.FormatCurrency(Rec.Facturas.ImporteImpago, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales); ListaFacturas.EndUpdate(); }
internal Lfx.Types.OperationResult AgregarFactura(int idFactura) { Lbl.Comprobantes.Recibo Rec = this.Elemento as Lbl.Comprobantes.Recibo; if (Rec.Facturas == null) { Rec.Facturas = new Lbl.Comprobantes.ColeccionComprobanteImporte(); } else { foreach (Lbl.Comprobantes.ComprobanteImporte CompImp in Rec.Facturas) { Lbl.Comprobantes.ComprobanteConArticulos Fc = CompImp.Comprobante; if (Fc.Id == idFactura) { return(new Lfx.Types.FailureOperationResult("La factura seleccionada ya está en la lista.")); } } } Lbl.Comprobantes.ComprobanteConArticulos Fac = new Lbl.Comprobantes.ComprobanteConArticulos(Rec.Connection, idFactura); Rec.Facturas.AddWithValue(Fac, Fac.ImporteImpago); if (EntradaCliente.ValueInt <= 0) { EntradaCliente.Elemento = Fac.Cliente; } this.MostrarFacturas(); return(new Lfx.Types.SuccessOperationResult()); }
public Lfx.Types.OperationResult Entregar(Lbl.Comprobantes.Recibo reciboDePago) { this.Estado = 11; this.AgregarComentario("Entregado s/" + reciboDePago.ToString()); this.ReciboPago = reciboDePago; return(this.Guardar()); }
private void BotonValoresAgregar_Click(object sender, System.EventArgs e) { if (this.DePago) { Comprobantes.Recibos.EditarPago FormularioEditarPago = new Comprobantes.Recibos.EditarPago(); FormularioEditarPago.Connection = this.Connection; FormularioEditarPago.Pago.FromPago(new Lbl.Comprobantes.Pago(this.Connection, Lbl.Pagos.TiposFormasDePago.Efectivo)); FormularioEditarPago.Pago.ObsVisible = false; if (FormularioEditarPago.ShowDialog() == DialogResult.OK) { Lbl.Comprobantes.Pago MiPago = FormularioEditarPago.Pago.ToPago(this.Connection); Lbl.Comprobantes.Recibo Rec = this.Elemento as Lbl.Comprobantes.Recibo; Rec.Connection = this.Connection; Rec.Pagos.Add(MiPago); this.MostrarValores(); } } else { Comprobantes.Recibos.EditarCobro FormularioEditarCobro = new Comprobantes.Recibos.EditarCobro(); FormularioEditarCobro.Connection = this.Connection; FormularioEditarCobro.Cobro.FromCobro(new Lbl.Comprobantes.Cobro(this.Connection, Lbl.Pagos.TiposFormasDePago.Efectivo)); FormularioEditarCobro.Cobro.ObsVisible = false; if (FormularioEditarCobro.ShowDialog() == DialogResult.OK) { Lbl.Comprobantes.Cobro MiCobro = FormularioEditarCobro.Cobro.ToCobro(this.Connection); Lbl.Comprobantes.Recibo Rec = this.Elemento as Lbl.Comprobantes.Recibo; Rec.Cobros.Add(MiCobro); this.MostrarValores(); } } }
public void Cargar(int idRecibo) { Lbl.Comprobantes.Recibo Rec = null; if (idRecibo != 0) Rec = new Lbl.Comprobantes.Recibo(this.Connection, idRecibo); if (Rec != null && Rec.Existe) { EntradaFecha.Text = Lfx.Types.Formatting.FormatDate(Rec.Fecha); EntradaImporte.Text = Lfx.Types.Formatting.FormatCurrency(Rec.Total, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales); EntradaCliente.Text = Rec.Cliente.ToString(); EntradaPV.Text = Rec.PV.ToString(); EntradaNumero.Text = Rec.Numero.ToString(); EntradaTipo.TextKey = Rec.Tipo.Nomenclatura; if (Rec.Anulado) { EtiquetaAviso.Text = "El comprobante ya fue anulado y no puede anularse nuevamente."; OkButton.Visible = false; } else { EtiquetaAviso.Text = "Recuerde que necesitar archivar todas las copias del comprobante anulado."; OkButton.Visible = true; } } else { EtiquetaAviso.Text = ""; EntradaFecha.Text = ""; EntradaImporte.Text = ""; EntradaCliente.Text = ""; OkButton.Visible = false; } }
private void BotonFacturasQuitar_Click(object sender, System.EventArgs e) { if (ListaFacturas.SelectedItems.Count == 0 && ListaFacturas.Items.Count > 0) { ListaFacturas.Items[ListaFacturas.Items.Count].Selected = true; } if (ListaFacturas.SelectedItems.Count == 0) { Lui.Forms.MessageBox.Show("Debe seleccionar una factura para quitar.", "Error"); } else { Lbl.Comprobantes.Recibo Rec = this.Elemento as Lbl.Comprobantes.Recibo; string HashFacturaSeleccionada = ListaFacturas.SelectedItems[0].Text; for (int i = 0; i < Rec.Facturas.Count; i++) { if (Rec.Facturas[i].GetHashCode().ToString() == HashFacturaSeleccionada) { Rec.Facturas.RemoveAt(i); break; } } this.MostrarFacturas(); if (ListaFacturas.Items.Count == 1) { ListaFacturas.Items[0].Selected = true; } } }
public void 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) { if (Lbl.Sys.Config.Actual.UsuarioConectado.TienePermiso(this.Caja, 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.Caja.Id); InsertarMovimiento.ColumnValues.AddWithValue("id_sucursal", null); InsertarMovimiento.ColumnValues.AddWithValue("auto", auto ? 1 : 0); if (concepto == null) { InsertarMovimiento.ColumnValues.AddWithValue("id_concepto", null); } else { InsertarMovimiento.ColumnValues.AddWithValue("id_concepto", concepto.Id); } 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); //System.Data.IDbTransaction Trans =this.Connection.BeginTransaction(); this.Connection.ExecuteNonQuery(InsertarMovimiento); // Trans.Commit(); }
public override void AfterSave(IDbTransaction transaction) { Lbl.Comprobantes.Recibo Rec = this.Elemento as Lbl.Comprobantes.Recibo; if (Rec.Tipo.ImprimirAlGuardar) { Lazaro.Base.Util.Impresion.Comprobantes.ImpresorRecibo Impresor = new Lazaro.Base.Util.Impresion.Comprobantes.ImpresorRecibo(Rec, transaction); Impresor.Imprimir(); } base.AfterSave(transaction); }
public void 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) { 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.TableCommand InsertarMovimiento = new qGen.Insert(this.Connection, "cajas_movim"); InsertarMovimiento.Fields.AddWithValue("id_caja", this.Id); InsertarMovimiento.Fields.AddWithValue("auto", auto ? 1 : 0); if (concepto == null) { InsertarMovimiento.Fields.AddWithValue("id_concepto", null); } else { InsertarMovimiento.Fields.AddWithValue("id_concepto", concepto.Id); } InsertarMovimiento.Fields.AddWithValue("concepto", textoConcepto); InsertarMovimiento.Fields.AddWithValue("id_persona", Lbl.Sys.Config.Actual.UsuarioConectado.Id); if (cliente == null) { InsertarMovimiento.Fields.AddWithValue("id_cliente", null); } else { InsertarMovimiento.Fields.AddWithValue("id_cliente", cliente.Id); } InsertarMovimiento.Fields.AddWithValue("fecha", qGen.SqlFunctions.Now); InsertarMovimiento.Fields.AddWithValue("importe", importe); if (factura == null) { InsertarMovimiento.Fields.AddWithValue("id_comprob", null); } else { InsertarMovimiento.Fields.AddWithValue("id_comprob", factura.Id); } if (recibo == null) { InsertarMovimiento.Fields.AddWithValue("id_recibo", null); } else { InsertarMovimiento.Fields.AddWithValue("id_recibo", recibo.Id); } InsertarMovimiento.Fields.AddWithValue("comprob", comprobantes); InsertarMovimiento.Fields.AddWithValue("saldo", SaldoActual + importe); InsertarMovimiento.Fields.AddWithValue("obs", obs); this.Connection.Execute(InsertarMovimiento); }
public void Movimiento(bool auto, Lbl.Cajas.Concepto concepto, string textoConcepto, decimal importeDebito, string obs, Lbl.Comprobantes.ComprobanteConArticulos comprob, Lbl.Comprobantes.Recibo recibo, string textoComprob) { this.Movimiento(auto, concepto, textoConcepto, importeDebito, obs, comprob, recibo, textoComprob, null); }
public void 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) { CajaController = new Lazaro.Base.Controller.CajaController( new Lazaro.Orm.EntityManager(this.Connection, Lfx.Workspace.Master.MetadataFactory), this ); CajaController.Movimiento(auto, concepto, textoConcepto, cliente, importe, obs, factura, recibo, comprobantes); }
/// <summary> /// Asienta un movimiento en la cuenta corriente, y cancela comprobantes asociados. /// </summary> /// <param name="auto">Indica si es un movimiento automático (generado por el sistema) o manual (generado por el usuario).</param> /// <param name="concepto">El concepto bajo el cual se realiza el movimiento.</param> /// <param name="textoConcepto">El texto que describe al concepto.</param> /// <param name="importeDebito">El importe a debitar de la cuenta. Un importe negativo indica un crédito.</param> /// <param name="obs">Observaciones.</param> /// <param name="comprob">El comprobante asociado a este movimiento.</param> /// <param name="recibo">El recibo asociado a este movimiento.</param> /// <param name="textoComprob">Un texto sobre los comprobantes asociados al sistema.</param> /// <param name="extras">Colección de campos adicionales para el registro.</param> public void AsentarMovimiento(bool auto, Lbl.Cajas.Concepto concepto, string textoConcepto, decimal importeDebito, string obs, Lbl.Comprobantes.ComprobanteConArticulos comprob, Lbl.Comprobantes.Recibo recibo, string textoComprob, Dictionary <string, object> extras) { CtaCteController.AsentarMovimiento(auto, concepto, textoConcepto, importeDebito, obs, comprob, recibo, textoComprob, extras); }
public override void ActualizarElemento() { Lbl.Comprobantes.Recibo Rec = this.Elemento as Lbl.Comprobantes.Recibo; if (this.DePago) { foreach (Lbl.Comprobantes.Pago Pg in Rec.Pagos) { if (this.EntradaConceptoTexto.Text.Length > 0) { Pg.ConceptoTexto = this.EntradaConceptoTexto.Text; } else { Pg.ConceptoTexto = "Pago s/" + Rec.ToString(); } } } else { foreach (Lbl.Comprobantes.Cobro Cb in Rec.Cobros) { if (this.EntradaConceptoTexto.Text.Length > 0) { Cb.ConceptoTexto = this.EntradaConceptoTexto.Text; } else { Cb.ConceptoTexto = "Cobro s/" + Rec.ToString(); } } } Rec.PV = Lfx.Types.Parsing.ParseInt(EntradaPV.Text); Rec.Numero = Lfx.Types.Parsing.ParseInt(EntradaNumero.Text); Rec.Cliente = new Lbl.Personas.Persona(Rec.Connection, EntradaCliente.ValueInt); Rec.Vendedor = new Lbl.Personas.Persona(Rec.Connection, EntradaVendedor.ValueInt); Rec.ConceptoTexto = EntradaConceptoTexto.Text; if (EntradaConcepto.ValueInt > 0) { Rec.Concepto = new Lbl.Cajas.Concepto(Rec.Connection, EntradaConcepto.ValueInt); } else { Rec.Concepto = null; } Rec.Obs = null; base.ActualizarElemento(); }
public override Lfx.Types.OperationResult ValidarControl() { Lfx.Types.OperationResult validarReturn = new Lfx.Types.SuccessOperationResult(); Lbl.Comprobantes.Recibo Rec = this.Elemento as Lbl.Comprobantes.Recibo; if (EntradaCliente.ValueInt <= 0 || EntradaCliente.ValueInt == 999) { validarReturn.Success = false; validarReturn.Message = "Por favor seleccione un cliente válido." + Environment.NewLine; } if (EntradaConcepto.ValueInt <= 0) { validarReturn.Success = false; validarReturn.Message = "Por favor seleccione un concepto para el movimiento." + Environment.NewLine; } if (this.DePago) { // Recibo de pago if (Rec.Pagos.ImporteTotal <= 0) { validarReturn.Success = false; validarReturn.Message = "Debe especificar los valores de pago." + Environment.NewLine; } } else { // Recibo de cobro if (Rec.Cobros.ImporteTotal <= 0) { validarReturn.Success = false; validarReturn.Message = "Debe especificar los valores de cobro." + Environment.NewLine; } } if (this.Elemento.Existe == false && EntradaNumero.Text.ParseInt() != 0) { int bExiste = this.Connection.FieldInt("SELECT COUNT(id_recibo) FROM recibos WHERE estado<90 AND pv=" + EntradaPV.ValueInt.ToString() + " AND numero=" + EntradaNumero.ValueInt.ToString()); if (bExiste != 0) { validarReturn.Success = false; validarReturn.Message = "Ya existe un Recibo con ese número." + Environment.NewLine; } } return(validarReturn); }
private void BotonValoresQuitar_Click(object sender, System.EventArgs e) { if (ListaValores.SelectedItems.Count == 0 && ListaValores.Items.Count > 0) { ListaValores.Items[ListaValores.Items.Count - 1].Selected = true; } if (ListaValores.SelectedItems.Count == 0) { Lui.Forms.MessageBox.Show("Debe seleccionar un valor para quitar.", "Error"); } else { Lbl.Comprobantes.Recibo Rec = this.Elemento as Lbl.Comprobantes.Recibo; ListViewItem itm = ListaValores.SelectedItems[0]; if (this.DePago) { for (int i = 0; i < Rec.Pagos.Count; i++) { if (Rec.Pagos[i].GetHashCode().ToString() == itm.Text) { Rec.Pagos.RemoveAt(i); break; } } } else { for (int i = 0; i < Rec.Cobros.Count; i++) { if (Rec.Cobros[i].GetHashCode().ToString() == itm.Text) { Rec.Cobros.RemoveAt(i); break; } } } this.MostrarValores(); if (ListaValores.Items.Count == 1) { ListaValores.Items[0].Selected = true; } } }
public override Lfx.Types.OperationResult Ok() { if (Lui.LogOn.LogOnData.ValidateAccess(typeof(Lbl.Comprobantes.Recibo), Lbl.Sys.Permisos.Operaciones.Eliminar) == false) { return(new Lfx.Types.NoAccessOperationResult()); } Lui.Forms.YesNoDialog Pregunta = new Lui.Forms.YesNoDialog("Una vez anulado, el comprobante deberá ser archivado en todas sus copias y no podrá ser rehabilitado ni reutilizado.", "¿Está seguro de que desea anular el comprobante?"); Pregunta.DialogButtons = Lui.Forms.DialogButtons.YesNo; if (Pregunta.ShowDialog() == DialogResult.OK) { int Numero = Lfx.Types.Parsing.ParseInt(EntradaNumero.Text); int PV = Lfx.Types.Parsing.ParseInt(EntradaPV.Text); Lbl.Comprobantes.Recibo Rec = null; int IdRecibo = 0; if (Numero > 0) { IdRecibo = this.Connection.FieldInt("SELECT id_recibo FROM recibos WHERE tipo_fac='" + EntradaTipo.TextKey + "' AND pv=" + PV.ToString() + " AND numero=" + Numero.ToString()); } if (IdRecibo != 0) { Rec = new Lbl.Comprobantes.Recibo(this.Connection, IdRecibo); } if (Rec != null && Rec.Existe) { IDbTransaction Trans = Rec.Connection.BeginTransaction(IsolationLevel.Serializable); Rec.Anular(); Trans.Commit(); } EntradaNumero.Text = ""; EntradaNumero.Focus(); return(new Lfx.Types.SuccessOperationResult()); } else { return(new Lfx.Types.CancelOperationResult()); } }
public void Cargar(int idRecibo) { Lbl.Comprobantes.Recibo Rec = null; if (idRecibo != 0) { Rec = new Lbl.Comprobantes.Recibo(this.Connection, idRecibo); } if (Rec != null && Rec.Existe) { EntradaFecha.Text = Lfx.Types.Formatting.FormatDate(Rec.Fecha); EntradaImporte.Text = Lfx.Types.Formatting.FormatCurrency(Rec.Total, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales); EntradaCliente.Text = Rec.Cliente.ToString(); EntradaPV.Text = Rec.PV.ToString(); EntradaNumero.Text = Rec.Numero.ToString(); EntradaTipo.TextKey = Rec.Tipo.Nomenclatura; if (Rec.Anulado) { EtiquetaAviso.Text = "El comprobante ya fue anulado y no puede anularse nuevamente."; OkButton.Visible = false; } else { EtiquetaAviso.Text = "Recuerde que necesitar archivar todas las copias del comprobante anulado."; OkButton.Visible = true; } } else { EtiquetaAviso.Text = ""; EntradaFecha.Text = ""; EntradaImporte.Text = ""; EntradaCliente.Text = ""; OkButton.Visible = false; } }
public override void ActualizarControl() { Lbl.Comprobantes.Recibo Rec = this.Elemento as Lbl.Comprobantes.Recibo; EntradaPV.Text = Rec.PV.ToString(); EntradaNumero.Text = Rec.Numero.ToString(); EntradaVendedor.Elemento = Rec.Vendedor; EntradaCliente.Elemento = Rec.Cliente; EntradaConcepto.Elemento = Rec.Concepto; EntradaConceptoTexto.Text = Rec.ConceptoTexto; if (Rec.DePago) { BotonAgregarValor.Subtext = "F6"; BotonQuitarValor.Subtext = "F7"; } else { BotonAgregarValor.Subtext = "F4"; BotonQuitarValor.Subtext = "F5"; } this.MostrarFacturas(); this.MostrarValores(); if (Rec.Existe) { this.Text = Rec.ToString(); this.TemporaryReadOnly = true; } else { this.Text = Rec.Tipo.Nombre; } base.ActualizarControl(); }
internal Lfx.Types.OperationResult AgregarFactura(Lbl.Comprobantes.ComprobanteFacturable factura) { Lbl.Comprobantes.Recibo Rec = this.Elemento as Lbl.Comprobantes.Recibo; if (Rec.Facturas == null) { Rec.Facturas = new Lbl.Comprobantes.ColeccionComprobanteImporte(); } else { foreach (Lbl.Comprobantes.ComprobanteImporte CompImp in Rec.Facturas) { Lbl.Comprobantes.ComprobanteConArticulos Fc = CompImp.Comprobante; if (Fc.Id == factura.Id) { return(new Lfx.Types.FailureOperationResult("La factura seleccionada ya está en la lista.")); } } } Rec.Facturas.AddWithValue(factura, factura.ImporteImpago); this.MostrarFacturas(); return(new Lfx.Types.SuccessOperationResult()); }
/// <summary> /// Asienta un movimiento en la cuenta corriente, y cancela comprobantes asociados. /// </summary> /// <param name="auto">Indica si es un movimiento automático (generado por el sistema) o manual (generado por el usuario).</param> /// <param name="concepto">El concepto bajo el cual se realiza el movimiento.</param> /// <param name="textoConcepto">El texto que describe al concepto.</param> /// <param name="importeDebito">El importe a debitar de la cuenta. Un importe negativo indica un crédito.</param> /// <param name="obs">Observaciones.</param> /// <param name="comprob">El comprobante asociado a este movimiento.</param> /// <param name="recibo">El recibo asociado a este movimiento.</param> /// <param name="textoComprob">Un texto sobre los comprobantes asociados al sistema.</param> /// <param name="extras">Colección de campos adicionales para el registro.</param> public void Movimiento(bool auto, Lbl.Cajas.Concepto concepto, string textoConcepto, decimal importeDebito, string obs, Lbl.Comprobantes.ComprobanteConArticulos comprob, Lbl.Comprobantes.Recibo recibo, string textoComprob, Dictionary <string, object> extras) { decimal SaldoActual = this.ObtenerSaldo(true); decimal NuevoSaldo = SaldoActual + importeDebito; qGen.Insert ComandoInsertarMovimiento = new qGen.Insert(this.Connection, this.TablaDatos); ComandoInsertarMovimiento.Fields.AddWithValue("auto", auto ? (int)1 : (int)0); if (concepto == null) { ComandoInsertarMovimiento.Fields.AddWithValue("id_concepto", null); } else { ComandoInsertarMovimiento.Fields.AddWithValue("id_concepto", concepto.Id); } ComandoInsertarMovimiento.Fields.AddWithValue("concepto", textoConcepto); ComandoInsertarMovimiento.Fields.AddWithValue("id_cliente", this.Persona.Id); ComandoInsertarMovimiento.Fields.AddWithValue("fecha", qGen.SqlFunctions.Now); ComandoInsertarMovimiento.Fields.AddWithValue("importe", importeDebito); if (comprob == null) { ComandoInsertarMovimiento.Fields.AddWithValue("id_comprob", null); } else { ComandoInsertarMovimiento.Fields.AddWithValue("id_comprob", comprob.Id); } if (recibo == null) { ComandoInsertarMovimiento.Fields.AddWithValue("id_recibo", null); } else { ComandoInsertarMovimiento.Fields.AddWithValue("id_recibo", recibo.Id); } ComandoInsertarMovimiento.Fields.AddWithValue("comprob", textoComprob); ComandoInsertarMovimiento.Fields.AddWithValue("saldo", NuevoSaldo); ComandoInsertarMovimiento.Fields.AddWithValue("obs", obs); if (extras != null && extras.Count > 0) { foreach (KeyValuePair <string, object> extra in extras) { ComandoInsertarMovimiento.Fields.AddWithValue(extra.Key, extra.Value); } } this.Connection.Execute(ComandoInsertarMovimiento); qGen.Update ComandoActualizarCliente = new qGen.Update("personas"); ComandoActualizarCliente.Fields.AddWithValue("saldo_ctacte", NuevoSaldo); ComandoActualizarCliente.WhereClause = new qGen.Where("id_persona", this.Persona.Id); this.Connection.Execute(ComandoActualizarCliente); }
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 MostrarValores() { ListaValores.BeginUpdate(); ListaValores.Items.Clear(); Lbl.Comprobantes.Recibo Rec = this.Elemento as Lbl.Comprobantes.Recibo; if (this.DePago) { foreach (Lbl.Comprobantes.Pago Pg in Rec.Pagos) { ListViewItem itm = ListaValores.Items.Add(Pg.GetHashCode().ToString()); switch (Pg.FormaDePago.Tipo) { case Lbl.Pagos.TiposFormasDePago.Efectivo: itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Pg.FormaDePago.ToString())); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Lfx.Types.Formatting.FormatCurrency(Pg.Importe, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales))); break; case Lbl.Pagos.TiposFormasDePago.Caja: itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Pg.FormaDePago.ToString())); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Lfx.Types.Formatting.FormatCurrency(Pg.Importe, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales))); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, "Débito desde " + Pg.CajaOrigen.ToString())); break; default: itm.SubItems.Add(Pg.FormaDePago.ToString()); itm.SubItems.Add(Lfx.Types.Formatting.FormatCurrency(Pg.Importe, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales)); itm.SubItems.Add(Pg.ToString()); break; } } EtiquetaValoresImporte.Text = Lfx.Types.Formatting.FormatCurrency(Rec.Pagos.ImporteTotal, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales); } else { foreach (Lbl.Comprobantes.Cobro Cb in Rec.Cobros) { ListViewItem itm = ListaValores.Items.Add(Cb.GetHashCode().ToString()); switch (Cb.FormaDePago.Tipo) { case Lbl.Pagos.TiposFormasDePago.Efectivo: itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Cb.FormaDePago.ToString())); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Lfx.Types.Formatting.FormatCurrency(Cb.Importe, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales))); break; case Lbl.Pagos.TiposFormasDePago.Tarjeta: itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Cb.FormaDePago.ToString())); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Lfx.Types.Formatting.FormatCurrency(Cb.Importe, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales))); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, "Cupón Nº " + Cb.Cupon.Numero + " de " + Cb.Cupon.FormaDePago.ToString())); break; case Lbl.Pagos.TiposFormasDePago.Caja: itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Cb.FormaDePago.ToString())); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Lfx.Types.Formatting.FormatCurrency(Cb.Importe, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales))); itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, "Depósito en " + Cb.CajaDestino.ToString())); break; default: itm.SubItems.Add(Cb.FormaDePago.ToString()); itm.SubItems.Add(Lfx.Types.Formatting.FormatCurrency(Cb.Importe, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales)); itm.SubItems.Add(Cb.ToString()); break; } } EtiquetaValoresImporte.Text = Lfx.Types.Formatting.FormatCurrency(Rec.Cobros.ImporteTotal, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales); } LabelAgregarValores.Visible = ListaValores.Items.Count == 0 && this.Elemento.Existe == false; BotonQuitarValor.Visible = ListaValores.Items.Count > 0; if (ListaValores.Items.Count > 0 && ListaValores.SelectedItems.Count == 0) { ListaValores.Items[ListaValores.Items.Count - 1].Selected = true; ListaValores.Items[ListaValores.Items.Count - 1].Focused = true; } ListaValores.EndUpdate(); }
public override Lfx.Types.OperationResult Ok() { if (Lui.LogOn.LogOnData.ValidateAccess(typeof(Lbl.Comprobantes.Recibo), Lbl.Sys.Permisos.Operaciones.Eliminar) == false) return new Lfx.Types.NoAccessOperationResult(); Lui.Forms.YesNoDialog Pregunta = new Lui.Forms.YesNoDialog("Una vez anulado, el comprobante deberá ser archivado en todas sus copias y no podrá ser rehabilitado ni reutilizado.", "¿Está seguro de que desea anular el comprobante?"); Pregunta.DialogButtons = Lui.Forms.DialogButtons.YesNo; if (Pregunta.ShowDialog() == DialogResult.OK) { int Numero = Lfx.Types.Parsing.ParseInt(EntradaNumero.Text); int PV = Lfx.Types.Parsing.ParseInt(EntradaPV.Text); Lbl.Comprobantes.Recibo Rec = null; int IdRecibo = 0; if (Numero > 0) IdRecibo = this.Connection.FieldInt("SELECT id_recibo FROM recibos WHERE tipo_fac='" + EntradaTipo.TextKey + "' AND pv=" + PV.ToString() + " AND numero=" + Numero.ToString()); if (IdRecibo != 0) Rec = new Lbl.Comprobantes.Recibo(this.Connection, IdRecibo); if (Rec != null && Rec.Existe) { IDbTransaction Trans = Rec.Connection.BeginTransaction(IsolationLevel.Serializable); Rec.Anular(); Trans.Commit(); } EntradaNumero.Text = ""; EntradaNumero.Focus(); return new Lfx.Types.SuccessOperationResult(); } else { return new Lfx.Types.CancelOperationResult(); } }