public override void ActualizarControl() { Lbl.Pagos.FormaDePago Pag = this.Elemento as Lbl.Pagos.FormaDePago; EntradaNombre.Text = Pag.Nombre; EntradaCaja.Elemento = Pag.Caja; if (Pag.Registro["tipo"] != null) { EntradaTipo.TextKey = Pag.Registro["tipo"].ToString(); } EntradaPagos.TextKey = Pag.PuedeHacerPagos ? "1" : "0"; EntradaCobros.TextKey = Pag.PuedeHacerCobros ? "1" : "0"; EntradaRetenciones.ValueDecimal = Pag.Retencion; EntradaRecargo.ValueDecimal = Pag.Descuento; if (Pag.Concepto_Ingreso != null) { EntradaConceptoIngreso.ValueInt = Pag.Concepto_Ingreso.Id; } if (Pag.Concepto_Egreso != null) { EntradaConceptoEgreso.ValueInt = Pag.Concepto_Egreso.Id; } base.ActualizarControl(); }
public Cobro(Lfx.Data.Connection dataBase, Lbl.Pagos.TiposFormasDePago tipoFormaDePago) : this(dataBase) { switch (tipoFormaDePago) { case Lbl.Pagos.TiposFormasDePago.Efectivo: FormaDePago = new Lbl.Pagos.FormaDePago(dataBase, 1); break; case Lbl.Pagos.TiposFormasDePago.ChequePropio: FormaDePago = new Lbl.Pagos.FormaDePago(dataBase, 2); break; case Lbl.Pagos.TiposFormasDePago.CuentaCorriente: FormaDePago = new Lbl.Pagos.FormaDePago(dataBase, 3); break; case Lbl.Pagos.TiposFormasDePago.Tarjeta: FormaDePago = new Lbl.Pagos.FormaDePago(dataBase, 4); break; case Lbl.Pagos.TiposFormasDePago.Caja: FormaDePago = new Lbl.Pagos.FormaDePago(dataBase, 6); break; case Lbl.Pagos.TiposFormasDePago.ChequeTerceros: FormaDePago = new Lbl.Pagos.FormaDePago(dataBase, 8); break; default: FormaDePago = new Lbl.Pagos.FormaDePago(dataBase, (int)tipoFormaDePago); break; } }
public override void OnLoad() { if (this.Registro != null) { if (this.GetFieldValue<int>("id_formapago") > 0) this.FormaDePago = new Lbl.Pagos.FormaDePago(this.Connection, this.GetFieldValue<int>("id_formapago")); else this.FormaDePago = null; } base.OnLoad(); }
public override void OnLoad() { if (this.Registro != null) { if (this.GetFieldValue <int>("id_formapago") > 0) { this.FormaDePago = new Lbl.Pagos.FormaDePago(this.Connection, this.GetFieldValue <int>("id_formapago")); } else { this.FormaDePago = null; } } base.OnLoad(); }
public override void ActualizarElemento() { Lbl.Pagos.FormaDePago Pag = this.Elemento as Lbl.Pagos.FormaDePago; Pag.Nombre = EntradaNombre.Text; Pag.Caja = EntradaCaja.Elemento as Lbl.Cajas.Caja; Pag.Tipo = (Lbl.Pagos.TiposFormasDePago)(Lfx.Types.Parsing.ParseInt(EntradaTipo.TextKey)); Pag.PuedeHacerPagos = Lfx.Types.Parsing.ParseBool(EntradaPagos.TextKey); Pag.PuedeHacerCobros = Lfx.Types.Parsing.ParseBool(EntradaCobros.TextKey); Pag.Retencion = EntradaRetenciones.ValueDecimal; Pag.Descuento = EntradaRecargo.ValueDecimal; Pag.Concepto_Ingreso = EntradaConceptoIngreso.Elemento as Lbl.Cajas.Concepto; Pag.Concepto_Egreso = EntradaConceptoEgreso.Elemento as Lbl.Cajas.Concepto; base.ActualizarElemento(); }
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 Pago(Lfx.Data.Connection dataBase, Lbl.Pagos.TiposFormasDePago tipoFormaDePago) : this(dataBase) { FormaDePago = new Lbl.Pagos.FormaDePago(dataBase, tipoFormaDePago); FormaDePago.Cargar(); }
public Pago(Lfx.Data.Connection dataBase, Lbl.Pagos.FormaDePago formaDePago) : this(dataBase) { this.FormaDePago = formaDePago; }
public Cobro(Lfx.Data.IConnection dataBase, Lbl.Pagos.FormaDePago formaDePago) : this(dataBase) { FormaDePago = formaDePago; }
private void BotonAcreditar_Click(object sender, System.EventArgs e) { if (Listado.CheckedItems.Count == 0) { Lui.Forms.MessageBox.Show("Debe marcar uno o más cupones para acreditar.", "Acreditar"); return; } using (Lfc.Tarjetas.Cupones.Acreditar FormularioAcreditacion = new Lfc.Tarjetas.Cupones.Acreditar()) { Lfx.Types.OperationProgress Progreso = new Lfx.Types.OperationProgress("Acreditando cupones", "Se están marcando los cupones seleccionados como 'Acreditado'."); Progreso.Modal = false; decimal Total = 0; decimal TotalAcreditar = 0; int iCantidad = 0; System.Text.StringBuilder Cupones = new System.Text.StringBuilder(); decimal ComisionTarjeta = 0; decimal ComisionPlan = 0; decimal GestionDeCobro = 0; Progreso.Max = Listado.Items.Count + 2; Progreso.Begin(); Progreso.ChangeStatus("Analizando"); Lbl.Pagos.FormaDePago Tarjeta = null; foreach (System.Windows.Forms.ListViewItem itm in Listado.Items) { if (itm.Checked) { iCantidad++; Lbl.Pagos.Cupon Cupon = new Lbl.Pagos.Cupon(Connection, Lfx.Types.Parsing.ParseInt(itm.Text)); Total += Cupon.Importe; if (Cupones.Length > 0) { Cupones.Append("," + Cupon.Numero); } else { Cupones.Append(Cupon.Numero); } if (Cupon.FormaDePago != null) { if (Tarjeta == null) { Tarjeta = Cupon.FormaDePago; } else if (Tarjeta.Id != Cupon.FormaDePago.Id) { //Mezcla de tarjetas Progreso.End(); Lui.Forms.MessageBox.Show("No todos los cupones seleccionados pertenecen a la misma forma de pago.", "Error"); return; } ComisionTarjeta += Cupon.Importe * (Tarjeta.Retencion / 100); if (Cupon.Plan != null) { ComisionPlan += Cupon.Importe * (Cupon.Plan.Comision / 100); } } } Progreso.ChangeStatus(itm.Index); } FormularioAcreditacion.IgnorarCambios = true; FormularioAcreditacion.EntradaCuponesCantidad.Text = iCantidad.ToString(); FormularioAcreditacion.EntradaCuponesSubTotal.Text = Lfx.Types.Formatting.FormatCurrency(Total, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales); FormularioAcreditacion.EntradaComisionTarjeta.Text = Lfx.Types.Formatting.FormatCurrency(ComisionTarjeta, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales); FormularioAcreditacion.EntradaComisionPlan.Text = Lfx.Types.Formatting.FormatCurrency(ComisionPlan, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales); FormularioAcreditacion.EntradaComisionUsuario.Text = "0"; FormularioAcreditacion.EntradaTotal.Text = Lfx.Types.Formatting.FormatCurrency(Total - ComisionTarjeta - ComisionPlan, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales); FormularioAcreditacion.IgnorarCambios = false; bool Aceptar = false; Lfc.Comprobantes.Recibos.EditarCobro FormularioPago = new Lfc.Comprobantes.Recibos.EditarCobro(); do { if (FormularioAcreditacion.ShowDialog() == DialogResult.OK) { TotalAcreditar = Lfx.Types.Parsing.ParseCurrency(FormularioAcreditacion.EntradaTotal.Text); GestionDeCobro = Total - TotalAcreditar; FormularioPago.Cobro.FromCobro(new Lbl.Comprobantes.Cobro(this.Connection, ((Lbl.Pagos.TiposFormasDePago)(Lfx.Types.Parsing.ParseInt(FormularioAcreditacion.EntradaFormaPago.TextKey))))); FormularioPago.Cobro.FormaDePagoEditable = false; FormularioPago.Cobro.Importe = TotalAcreditar; FormularioPago.Cobro.ImporteEditable = false; if (Tarjeta != null && Tarjeta.Caja != null) { FormularioPago.Cobro.EntradaCaja.ValueInt = Tarjeta.Caja.Id; } FormularioPago.Cobro.Obs = "Cupones Nº " + Cupones.ToString(); FormularioPago.Cobro.ObsEditable = false; if (FormularioPago.ShowDialog() == DialogResult.OK) { Aceptar = true; break; } } else { Aceptar = false; break; } }while (true); if (Aceptar) { IDbTransaction Trans = Connection.BeginTransaction(IsolationLevel.Serializable); Progreso.ChangeStatus("Asentando el movimiento"); Progreso.Max = Listado.Items.Count + 2; Progreso.Begin(); // Marcar los cupones como acreditados foreach (System.Windows.Forms.ListViewItem itm in Listado.Items) { if (itm.Checked) { Lbl.Pagos.Cupon Cupon = new Lbl.Pagos.Cupon(this.Connection, Lfx.Types.Parsing.ParseInt(itm.Text)); if (Cupon.Estado == 0 || Cupon.Estado == 10) { Cupon.Acreditar(); } } Progreso.ChangeStatus(itm.Index); } Progreso.ChangeStatus("Acreditando el importe"); // Acreditar el dinero Lbl.Comprobantes.Cobro MiCobro = FormularioPago.Cobro.ToCobro(Connection); switch (FormularioPago.Cobro.FormaDePago.Tipo) { case Lbl.Pagos.TiposFormasDePago.Efectivo: Lbl.Cajas.Caja CajaDiaria = new Lbl.Cajas.Caja(Connection, Lfx.Workspace.Master.CurrentConfig.Empresa.CajaDiaria); CajaDiaria.Movimiento(true, Lbl.Cajas.Concepto.IngresosPorFacturacion, "Acreditación de Cupones", null, Total, "Cupones Nº " + Cupones.ToString(), null, null, null); CajaDiaria.Movimiento(true, new Lbl.Cajas.Concepto(this.Connection, 24010), "Gestión de Cobro de Cupones", null, -GestionDeCobro, "Cupones Nº " + Cupones.ToString(), null, null, null); break; case Lbl.Pagos.TiposFormasDePago.ChequePropio: Lbl.Bancos.Cheque Cheque = MiCobro.Cheque; Cheque.Concepto = Lbl.Cajas.Concepto.IngresosPorFacturacion; Cheque.ConceptoTexto = "Acreditación Tarjetas"; Cheque.Guardar(); break; case Lbl.Pagos.TiposFormasDePago.Caja: MiCobro.CajaDestino.Movimiento(true, Lbl.Cajas.Concepto.IngresosPorFacturacion, "Acreditación de Cupones", null, Total, "Cupones Nº " + Cupones.ToString(), null, null, null); MiCobro.CajaDestino.Movimiento(true, new Lbl.Cajas.Concepto(this.Connection, 24010), "Gestión de Cobro de Cupones", null, -GestionDeCobro, "Cupones Nº " + Cupones.ToString(), null, null, null); break; } Trans.Commit(); Progreso.End(); } } this.RefreshList(); }