protected override void OnDeleting()
        {
            base.OnDeleting();

            //caso especial: si estamos eliminando el interviniente, como parte de eliminar la poliza, lo permitimos siempre
            if (Session.IsObjectMarkedDeleted(Documento.Poliza))
            {
                return;
            }

            //bloquear la eliminación de intervinientes básicos de la póliza (referenciados en el objeto poliza)
            var ident = Identificadores.GetInstance(Session);

            if (Rol != null && ident.RolAseguradora != null && Rol.Oid == ident.RolAseguradora.Oid)
            {
                throw new UserFriendlyException(
                          "No se puede eliminar este registro porque define la aseguradora principal de la póliza");
            }
            if (Rol != null && ident.RolTomador != null && Rol.Oid == ident.RolTomador.Oid)
            {
                throw new UserFriendlyException(
                          "No se puede eliminar este registro porque define el tomador principal de la póliza");
            }
            if (Rol != null && ident.RolOrganizador != null && Rol.Oid == ident.RolOrganizador.Oid)
            {
                throw new UserFriendlyException(
                          "No se puede eliminar este registro porque define el organizador principal de la póliza");
            }
        }
示例#2
0
        public override void AfterConstruction()
        {
            base.AfterConstruction();

            //Valores iniciales
            Estado         = Identificadores.GetInstance(Session).DocumentoEstadoInicial;
            CantidadCuotas = 1;
        }
示例#3
0
        public void GenerarComprobanteVenta()
        {
            if (Comprobante != null)
            {
                throw new UserFriendlyException(
                          string.Format(
                              "No se puede pasar al estado {0}. El documento aún no tiene comprobante generado.\nEsto puede deberse a una configuración inválida. Comunique el error al Administrador.",
                              Estado.Nombre));
            }

            if (Cuotas.Count == 0)
            {
                throw new UserFriendlyException("Debe ingresar al menos una cuota.");
            }

            if (EmitidaFecha == null)
            {
                throw new UserFriendlyException("Debe ingresar la Fecha de Emisión.");
            }

            var talonario = Identificadores.GetInstance(Session).TalonarioDocumentos;

            if (talonario == null)
            {
                throw new UserFriendlyException(
                          "Debe indicar el talonario asignado para los comprobantes de venta de documentos.");
            }

            var nuevoComprobante = new Comprobante(Session)
            {
                Propio         = false,
                Destinatario   = Poliza.Tomador.Interviniente,
                Fecha          = EmitidaFecha.Value,
                Tipo           = talonario.ComprobanteTipo,
                Sector         = talonario.Sector,
                Especie        = Poliza.Especie,
                Cambio         = Poliza.Cambio,
                CantidadCuotas = CantidadCuotas,
                Estado         = ComprobanteEstado.Confirmado
            };

            ActualizarComprobanteVenta(nuevoComprobante);

            Comprobante = nuevoComprobante;
        }