Beispiel #1
0
        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);
        }
Beispiel #2
0
        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();
        }