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 void ActualizarElemento() { Lbl.Comprobantes.ComprobanteConArticulos Res = this.Elemento as Lbl.Comprobantes.ComprobanteConArticulos; //Agrego campos propios de esta instancia if (EntradaFormaPago.ValueInt > 0) { Res.FormaDePago = new Lbl.Pagos.FormaDePago(Res.Connection, EntradaFormaPago.ValueInt); } else { Res.FormaDePago = null; } if (PanelComprobanteOriginal.Visible) { Res.ComprobanteOriginal = EntradaComprobanteOriginal.Elemento as Lbl.Comprobantes.ComprobanteFacturable; } 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; } Res.IdRemito = 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"); } else { Res.IdRemito = 0; } base.ActualizarElemento(); }