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(); } } }
private Lfx.Types.OperationResult EditarPago() { Lbl.Comprobantes.ComprobanteConArticulos Factura = this.Elemento as Lbl.Comprobantes.ComprobanteConArticulos; if (Factura.ImporteCancelado >= Factura.Total) { return(new Lfx.Types.FailureOperationResult("Este comprobante ya fue cancelado en su totalidad.")); } if (Factura.FormaDePago.Tipo == Lbl.Pagos.TiposFormasDePago.Efectivo) { using (IDbTransaction Trans = Factura.Connection.BeginTransaction()) { Factura.AsentarPago(false); Factura.MoverExistencias(false); Trans.Commit(); } this.PuedeEditarPago = false; } else if (Factura.FormaDePago.Tipo == Lbl.Pagos.TiposFormasDePago.CuentaCorriente) { CrearReciboParaEstaFactura(); } else { using (Comprobantes.Recibos.EditarCobro FormularioEditarPago = new Comprobantes.Recibos.EditarCobro()) { FormularioEditarPago.Cobro.FromCobro(new Lbl.Comprobantes.Cobro(this.Connection, Factura.FormaDePago)); FormularioEditarPago.Cobro.FormaDePagoEditable = true; FormularioEditarPago.Cobro.Importe = Factura.Total; FormularioEditarPago.Cobro.ImporteVisible = true; FormularioEditarPago.Cobro.ImporteEditable = false; if (FormularioEditarPago.ShowDialog() == DialogResult.OK) { Lbl.Comprobantes.Cobro MiCobro = FormularioEditarPago.Cobro.ToCobro(Factura.Connection); if (MiCobro.FormaDePago.Id != Factura.FormaDePago.Id) { // Tengo que actualizar la forma de pago using (IDbTransaction Trans = Factura.Connection.BeginTransaction()) { Factura.FormaDePago = MiCobro.FormaDePago; EntradaFormaPago.Elemento = MiCobro; Factura.Connection.FieldInt("UPDATE comprob SET id_formapago=" + MiCobro.FormaDePago.Id.ToString() + " WHERE id_comprob=" + Factura.Id.ToString()); if (MiCobro.FormaDePago.Tipo == Lbl.Pagos.TiposFormasDePago.CuentaCorriente) { // Si la nueva forma de pago es cta. cte., asiento el saldo // Y uso saldo a favor, si lo hay decimal Saldo = Factura.Cliente.CuentaCorriente.ObtenerSaldo(true); Factura.Cliente.CuentaCorriente.AsentarMovimiento(true, Lbl.Cajas.Concepto.IngresosPorFacturacion, "Saldo a Cta. Cte. s/" + Factura.ToString(), Factura.ImporteImpago, null, Factura, null, null); if (Saldo < 0) { Saldo = Math.Abs(Saldo); if (Saldo > Factura.Total) { Factura.CancelarImporte(Factura.Total, null); } else { Factura.CancelarImporte(Saldo, null); } } } Trans.Commit(); } } switch (Factura.FormaDePago.Tipo) { case Lbl.Pagos.TiposFormasDePago.Efectivo: using (IDbTransaction TransEfe = Factura.Connection.BeginTransaction()) { Lbl.Cajas.Caja CajaDiaria = new Lbl.Cajas.Caja(Factura.Connection, Lfx.Workspace.Master.CurrentConfig.Empresa.CajaDiaria); CajaDiaria.Movimiento(true, Lbl.Cajas.Concepto.IngresosPorFacturacion, Factura.ToString(), Factura.Cliente, Factura.ImporteImpago, Factura.Obs, Factura, null, null); Factura.CancelarImporte(Factura.Total, null); TransEfe.Commit(); } break; case Lbl.Pagos.TiposFormasDePago.CuentaCorriente: CrearReciboParaEstaFactura(); break; case Lbl.Pagos.TiposFormasDePago.ChequeTerceros: using (IDbTransaction TransCheTer = Factura.Connection.BeginTransaction()) { Lbl.Bancos.Cheque Cheque = MiCobro.Cheque; Cheque.Concepto = Lbl.Cajas.Concepto.IngresosPorFacturacion; Cheque.ConceptoTexto = "Cobro s/" + this.Elemento.ToString(); Cheque.Factura = Factura; Cheque.Guardar(); Factura.CancelarImporte(Factura.Total, null); TransCheTer.Commit(); } PuedeEditarPago = false; break; case Lbl.Pagos.TiposFormasDePago.Tarjeta: using (IDbTransaction TransTarj = Factura.Connection.BeginTransaction()) { Lbl.Pagos.Cupon CuponCredito = MiCobro.Cupon; CuponCredito.Concepto = Lbl.Cajas.Concepto.IngresosPorFacturacion; CuponCredito.ConceptoTexto = "Cobro s/" + Factura.ToString(); if (EntradaVendedor.ValueInt > 0) { CuponCredito.Vendedor = new Lbl.Personas.Persona(Factura.Connection, EntradaVendedor.ValueInt); } CuponCredito.Factura = Factura; CuponCredito.Guardar(); Factura.CancelarImporte(Factura.Total, null); TransTarj.Commit(); } PuedeEditarPago = false; break; case Lbl.Pagos.TiposFormasDePago.Caja: using (IDbTransaction TransCaja = Factura.Connection.BeginTransaction()) { Lbl.Cajas.Caja CajaDeposito = MiCobro.CajaDestino; CajaDeposito.Movimiento(true, Lbl.Cajas.Concepto.IngresosPorFacturacion, "Cobro s/" + Factura.ToString(), Factura.Cliente, MiCobro.Importe, MiCobro.Obs, Factura, null, null); Factura.CancelarImporte(Factura.Total, null); TransCaja.Commit(); } PuedeEditarPago = false; break; default: throw new NotImplementedException("No se reconoce la forma de pago " + Factura.FormaDePago.Tipo.ToString()); } } else { return(new Lfx.Types.SuccessOperationResult()); } } this.PuedeEditarPago = false; } return(new Lfx.Types.SuccessOperationResult()); }
private Lfx.Types.OperationResult EditarPago() { Lbl.Comprobantes.ComprobanteConArticulos Factura = this.Elemento as Lbl.Comprobantes.ComprobanteConArticulos; if (Factura.ImporteCancelado >= Factura.Total) return new Lfx.Types.FailureOperationResult("Este comprobante ya fue cancelado en su totalidad."); if (Factura.FormaDePago.Tipo == Lbl.Pagos.TiposFormasDePago.Efectivo) { using (IDbTransaction Trans = Factura.Connection.BeginTransaction()) { Factura.AsentarPago(false); Factura.MoverExistencias(false); Trans.Commit(); } this.PuedeEditarPago = false; } else if (Factura.FormaDePago.Tipo == Lbl.Pagos.TiposFormasDePago.CuentaCorriente) { CrearReciboParaEstaFactura(); } else { using (Comprobantes.Recibos.EditarCobro FormularioEditarPago = new Comprobantes.Recibos.EditarCobro()) { FormularioEditarPago.Cobro.FromCobro(new Lbl.Comprobantes.Cobro(this.Connection, Factura.FormaDePago)); FormularioEditarPago.Cobro.FormaDePagoEditable = true; FormularioEditarPago.Cobro.Importe = Factura.Total; FormularioEditarPago.Cobro.ImporteVisible = true; FormularioEditarPago.Cobro.ImporteEditable = false; if (FormularioEditarPago.ShowDialog() == DialogResult.OK) { Lbl.Comprobantes.Cobro MiCobro = FormularioEditarPago.Cobro.ToCobro(Factura.Connection); if (MiCobro.FormaDePago.Id != Factura.FormaDePago.Id) { // Tengo que actualizar la forma de pago using (IDbTransaction Trans = Factura.Connection.BeginTransaction()) { Factura.FormaDePago = MiCobro.FormaDePago; EntradaFormaPago.Elemento = MiCobro; Factura.Connection.FieldInt("UPDATE comprob SET id_formapago=" + MiCobro.FormaDePago.Id.ToString() + " WHERE id_comprob=" + Factura.Id.ToString()); if (MiCobro.FormaDePago.Tipo == Lbl.Pagos.TiposFormasDePago.CuentaCorriente) { // Si la nueva forma de pago es cta. cte., asiento el saldo // Y uso saldo a favor, si lo hay decimal Saldo = Factura.Cliente.CuentaCorriente.ObtenerSaldo(true); Factura.Cliente.CuentaCorriente.Movimiento(true, Lbl.Cajas.Concepto.IngresosPorFacturacion, "Saldo a Cta. Cte. s/" + Factura.ToString(), Factura.ImporteImpago, null, Factura, null, null); if (Saldo < 0) { Saldo = Math.Abs(Saldo); if (Saldo > Factura.Total) Factura.CancelarImporte(Factura.Total, null); else Factura.CancelarImporte(Saldo, null); } } Trans.Commit(); } } switch (Factura.FormaDePago.Tipo) { case Lbl.Pagos.TiposFormasDePago.Efectivo: using (IDbTransaction TransEfe = Factura.Connection.BeginTransaction()) { Lbl.Cajas.Caja CajaDiaria = new Lbl.Cajas.Caja(Factura.Connection, Lfx.Workspace.Master.CurrentConfig.Empresa.CajaDiaria); CajaDiaria.Movimiento(true, Lbl.Cajas.Concepto.IngresosPorFacturacion, Factura.ToString(), Factura.Cliente, Factura.ImporteImpago, Factura.Obs, Factura, null, null); Factura.CancelarImporte(Factura.Total, null); TransEfe.Commit(); } break; case Lbl.Pagos.TiposFormasDePago.CuentaCorriente: CrearReciboParaEstaFactura(); break; case Lbl.Pagos.TiposFormasDePago.ChequeTerceros: using (IDbTransaction TransCheTer = Factura.Connection.BeginTransaction()) { Lbl.Bancos.Cheque Cheque = MiCobro.Cheque; Cheque.Concepto = Lbl.Cajas.Concepto.IngresosPorFacturacion; Cheque.ConceptoTexto = "Cobro s/" + this.Elemento.ToString(); Cheque.Factura = Factura; Cheque.Guardar(); Factura.CancelarImporte(Factura.Total, null); TransCheTer.Commit(); } PuedeEditarPago = false; break; case Lbl.Pagos.TiposFormasDePago.Tarjeta: using (IDbTransaction TransTarj = Factura.Connection.BeginTransaction()) { Lbl.Pagos.Cupon CuponCredito = MiCobro.Cupon; CuponCredito.Concepto = Lbl.Cajas.Concepto.IngresosPorFacturacion; CuponCredito.ConceptoTexto = "Cobro s/" + Factura.ToString(); if (EntradaVendedor.ValueInt > 0) CuponCredito.Vendedor = new Lbl.Personas.Persona(Factura.Connection, EntradaVendedor.ValueInt); CuponCredito.Factura = Factura; CuponCredito.Guardar(); Factura.CancelarImporte(Factura.Total, null); TransTarj.Commit(); } PuedeEditarPago = false; break; case Lbl.Pagos.TiposFormasDePago.Caja: using (IDbTransaction TransCaja = Factura.Connection.BeginTransaction()) { Lbl.Cajas.Caja CajaDeposito = MiCobro.CajaDestino; CajaDeposito.Movimiento(true, Lbl.Cajas.Concepto.IngresosPorFacturacion, "Cobro s/" + Factura.ToString(), Factura.Cliente, MiCobro.Importe, MiCobro.Obs, Factura, null, null); Factura.CancelarImporte(Factura.Total, null); TransCaja.Commit(); } PuedeEditarPago = false; break; default: throw new NotImplementedException("No se reconoce la forma de pago " + Factura.FormaDePago.Tipo.ToString()); } } else { return new Lfx.Types.SuccessOperationResult(); } } this.PuedeEditarPago = false; } return new Lfx.Types.SuccessOperationResult(); }
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.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(); } } }